:root{color-scheme:dark;--ink:#eaf8f8;--muted:#94b4c0;--accent:#ffb583}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none;background:#050e18;color:var(--ink);font-family:"Inter Variable",sans-serif}button,input{font:inherit}button{border:1px solid #71909d55;border-radius:6px;background:#0b1b26;color:var(--ink);min-height:44px;padding:0 16px;cursor:pointer;font-size:12px;font-weight:600}button:hover{background:#193441}button:focus-visible,input:focus-visible,canvas:focus-visible{outline:2px solid #ffbd8a;outline-offset:4px}button[aria-pressed=true]{background:#ffbd8a;color:#1c1720;border-color:#ffbd8a}#scene{position:fixed;inset:0;width:100vw;height:100vh;height:100dvh;display:block;touch-action:none;outline-offset:-4px}.vignette{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 55% 45%,transparent 36%,#02071066 100%)}[data-overlay]{position:fixed;z-index:2;pointer-events:none}.identity{left:36px;top:32px}.eyebrow{font:10px "JetBrains Mono Variable",monospace;letter-spacing:.18em;color:#8cc3cb;margin:0 0 12px}.identity h1{font:500 28px "Space Grotesk Variable",sans-serif;letter-spacing:-.06em;margin:0}.subline{color:var(--muted);font-size:12px;margin:10px 0 0}.specimen{right:36px;top:34px;display:flex;gap:12px;align-items:center;font:10px/1.8 "JetBrains Mono Variable",monospace;letter-spacing:.12em;color:#87b7bd}.specimen i{width:7px;height:7px;background:#57f3c6;border-radius:50%;box-shadow:0 0 18px #41e1c7}.specimen b{font-size:14px;font-weight:500;color:#d7f0ee}.anatomy{font-size:11px;line-height:1.9;border-left:1px solid #90b9c36b;padding-left:12px;white-space:nowrap}.anatomy b{display:block;font:10px "JetBrains Mono Variable",monospace;letter-spacing:.16em;color:#ffca9b}.anatomy span{color:#9bb6bf}.capsid-label{top:28%;left:68%}.membrane-label{top:66%;left:71%}.membrane-label b{color:#63ebcf}.annotation{left:36px;top:47%;display:flex;align-items:start;gap:18px}.hairline{display:block;width:25px;height:1px;background:#67acb9;margin-top:10px}.annotation p{font:400 18px/1.5 "Space Grotesk Variable",sans-serif;margin:0;letter-spacing:-.02em;color:#a5bdc8}.annotation em{font-style:normal;color:#f3f9f9}.transport{bottom:49px;left:50%;transform:translateX(-50%);width:min(640px,calc(100vw - 72px));background:linear-gradient(115deg,#122634df,#091723df);border:1px solid #64839542;padding:18px 20px 14px;backdrop-filter:blur(16px);border-radius:10px;pointer-events:auto;box-shadow:0 12px 60px #0004}.phase-copy{display:flex;align-items:baseline;gap:18px}.phase-copy>span{font:500 14px "Space Grotesk Variable",sans-serif;white-space:nowrap}.phase-copy p{font-size:11px;line-height:1.5;color:#a9c0cb;margin:0}.control-row{display:flex;gap:7px;align-items:center;margin-top:15px}.phase-buttons{display:flex;gap:6px;flex:1}.phase-buttons button{min-width:108px;font-family:"JetBrains Mono Variable",monospace;text-align:left;font-size:11px;padding:0 13px}.phase-buttons span{font:11px "Inter Variable",sans-serif;padding-left:8px}.progress{height:2px;background:#44606a66;margin-top:14px;border-radius:4px;overflow:hidden}.progress span{display:block;background:#ffc391;height:100%;width:0}.settings{bottom:220px;right:36px;width:280px;border:1px solid #779da355;border-radius:10px;background:#0d202dec;backdrop-filter:blur(20px);padding:16px;pointer-events:auto}.settings[hidden]{display:none}.settings>div{display:flex;justify-content:space-between;align-items:center}.settings strong{font-size:12px}.settings button{padding:0 10px;font-size:11px}.settings label{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;margin-top:13px}.settings input[type=range]{width:100px;accent-color:#ffc391}.settings .check{justify-content:start}.check input{accent-color:#ffc391;width:18px;height:18px}.settings p{font-size:10px;line-height:1.5;color:#aac1cb;margin:12px 0 0}.sample{bottom:14px;left:36px;color:#89a5b2;font:10px "JetBrains Mono Variable",monospace;letter-spacing:.015em;margin:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0)}.fallback{position:fixed;inset:30% 15%;font-size:16px;line-height:1.6;z-index:5;padding:28px;background:#0d2330}.fallback[hidden]{display:none}.capture *{transition:none!important}body.no-labels .anatomy{display:none}
@media(max-width:700px){.identity{top:max(22px,env(safe-area-inset-top));left:20px}.identity h1{font-size:24px}.eyebrow{font-size:9px;margin-bottom:9px}.subline{font-size:11px;margin-top:7px}.specimen{right:20px;top:116px;font-size:9px}.specimen b{font-size:12px}.specimen i{width:5px;height:5px}.annotation,.anatomy{display:none}.transport{bottom:max(47px,calc(env(safe-area-inset-bottom) + 28px));width:calc(100vw - 32px);padding:13px 12px 10px}.phase-copy{gap:0;display:block}.phase-copy>span{font-size:13px}.phase-copy p{font-size:10px;margin-top:5px;line-height:1.4;min-height:28px}.control-row{gap:5px;margin-top:10px}.phase-buttons{gap:4px}.phase-buttons button{min-width:0;flex:1;text-align:center;padding:0 8px;font-size:10px}.phase-buttons span{display:none}#pause,#settings-toggle{padding:0 12px;font-size:11px}.progress{margin-top:10px}.sample{left:20px;bottom:17px;font-size:8px;max-width:calc(100vw - 35px);line-height:1.5}.settings{right:16px;left:16px;bottom:225px;width:auto;padding:14px}.settings-open .identity,.settings-open .specimen{visibility:hidden}.settings p{font-size:10px}.fallback{inset:22% 6%;padding:20px;font-size:14px}}
/* Small scientific captions remain legible without consuming the specimen. */
.eyebrow,.specimen,.anatomy b,.sample,.settings p{font-size:11px}.phase-copy p{font-size:12px}.phase-buttons span{font-size:12px}.settings button{font-size:12px}
@media(max-width:700px){.eyebrow,.specimen,.sample,.phase-copy p{font-size:11px}.phase-buttons button{font-size:11px}#pause,#settings-toggle{font-size:12px}.sample{bottom:10px;line-height:1.35}.phase-copy p{min-height:31px}.settings p{font-size:11px}}
