:root { color: #d7e9f8; background: #06111d; font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-synthesis: none; text-rendering: optimizeLegibility; } * { box-sizing: border-box; } html, body, .viewer { width: 100%; height: 100%; height: 100dvh; margin: 0; overflow: hidden; } .viewer { position: relative; background: #06111d; } .viewer::after { position: absolute; inset: 0; border: 2px solid transparent; content: ""; pointer-events: none; transition: border-color 140ms ease, background 140ms ease; } .viewer.is-dragging::after { border-color: #35a9ed; background: rgb(20 112 168 / 9%); } canvas { display: block; width: 100%; height: 100%; outline: none; touch-action: none; } .render-time { position: absolute; z-index: 2; top: 18px; left: 18px; display: flex; align-items: baseline; gap: 8px; padding: 9px 11px; color: #718da2; border: 1px solid #23435a; border-radius: 7px; background: rgb(8 25 39 / 82%); box-shadow: 0 8px 24px rgb(0 8 15 / 18%); font: 700 9px/1 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: 0.08em; pointer-events: none; text-transform: uppercase; backdrop-filter: blur(10px); } .render-time[hidden] { display: none; } .render-time strong { color: #8bd5fb; font-size: 11px; letter-spacing: 0; text-transform: none; } .drop-prompt { position: absolute; z-index: 3; top: 50%; left: 50%; display: grid; min-width: min(360px, calc(100% - 36px)); justify-items: center; gap: 8px; padding: 28px 32px; transform: translate(-50%, -50%); color: inherit; border: 1px solid transparent; border-radius: 14px; outline: none; background: transparent; cursor: pointer; text-align: center; } .drop-prompt:hover, .drop-prompt:focus-visible, .viewer.is-dragging .drop-prompt { border-color: #25577a; background: rgb(11 41 65 / 72%); box-shadow: 0 18px 50px rgb(0 10 18 / 22%); } .drop-prompt[hidden] { display: none; } .viewer.is-dragging .drop-prompt { display: grid; } .drop-icon { display: grid; width: 48px; height: 48px; margin-bottom: 7px; place-items: center; color: #54bdf6; border: 1px solid #25577a; border-radius: 13px; background: #0b2941; box-shadow: 0 0 34px rgb(46 171 238 / 15%); font: 700 19px/1 ui-monospace, monospace; } .drop-prompt strong { color: #c5d9e8; font-size: 14px; letter-spacing: -0.01em; } .drop-prompt small { color: #698297; font-size: 10px; } .drop-prompt.is-error .drop-icon { color: #f0a5a5; border-color: #6f3540; background: #351b27; box-shadow: 0 0 34px rgb(205 78 91 / 12%); } .drop-prompt.is-error strong { color: #e8b5b5; } @media (max-width: 560px) { .render-time { top: 12px; left: 12px; } .drop-prompt { padding: 24px 20px; } } @media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition-duration: 0.01ms !important; } }