:root{--ink: #f2f4f7;--muted: #aeb7c4;--line: rgba(255,255,255,.12);--orange: #f97316;--blue: #60a5fa;--body: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--ease: cubic-bezier(.2,.7,.2,1);--scene: image-set(url(/assets/lab-scene.avif.svg) type("image/avif"), url(/assets/lab-scene.webp.svg) type("image/webp"));--scene-small: image-set(url(/assets/lab-scene-960.avif.svg) type("image/avif"), url(/assets/lab-scene-960.webp.svg) type("image/webp"));color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{background:#06090d}body{margin:0;color:var(--ink);font:400 16px/24px var(--body)}a{color:var(--ink)}:focus-visible{outline:2px solid var(--orange);outline-offset:2px}.skip{position:absolute;left:8px;top:8px;transform:translateY(-200%);background:#fff;color:#111;padding:8px 16px;z-index:20}.skip:focus{transform:none}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.short{display:none}.bar{display:flex;align-items:center;gap:16px;height:56px;padding:0 24px;background:#070b10 repeating-linear-gradient(0deg,rgba(255,255,255,.018) 0 1px,transparent 1px 3px);border-bottom:1px solid rgba(96,165,250,.22)}.mark{font:700 16px/24px var(--body);letter-spacing:.04em;text-transform:uppercase;text-decoration:none;white-space:nowrap}.mark .accent{color:var(--orange)}.readout{margin:0 auto 0 8px;display:flex;align-items:center;gap:8px;font:500 12px/16px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#93c5fd;white-space:nowrap;overflow:hidden}.readout .sep{color:#93c5fd66}.readout .clock{color:var(--muted);font-variant-numeric:tabular-nums}.readout .line{display:inline-block;animation:type .5s steps(18) both;overflow:hidden}@keyframes type{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}.dot{width:8px;height:8px;border-radius:50%;background:#34d399;animation:pulse 2.4s var(--ease) infinite}@keyframes pulse{50%{opacity:.35}}.contact{display:flex;gap:8px}.b{display:inline-flex;align-items:center;height:40px;padding:0 16px;border-radius:6px;background:var(--orange);color:#1a0c03;font:600 14px/1 var(--body);text-decoration:none;white-space:nowrap;transition:background-color .2s var(--ease),border-color .2s var(--ease)}.b:hover{background:#fb8a3c}.b-quiet{background:transparent;color:var(--ink);border:1px solid rgba(147,197,253,.3)}.b-quiet:hover{background:#ffffff0f;border-color:var(--blue)}.stage-wrap{background:#06090d}.stage{position:relative;width:min(100%,calc((100vh - 56px) * 1672 / 941));width:min(100%,calc((100svh - 56px) * 1672 / 941));margin:0 auto;aspect-ratio:1672 / 941;background:#06090d var(--scene) center / 100% 100% no-repeat;overflow:hidden}.go{position:absolute;border-radius:6px;pointer-events:none;outline:2px solid transparent;outline-offset:1px;transition:outline-color .2s var(--ease),box-shadow .2s var(--ease)}.hit.on .go,.hit a:focus-visible .go{outline-color:var(--c);box-shadow:0 0 14px var(--c)}.canvas{position:absolute!important;inset:0;opacity:0;transition:opacity .6s var(--ease)}.is-ready .canvas{opacity:1}.hits{list-style:none;margin:0;padding:0}.hit{position:absolute}.hit a{position:absolute;inset:0;display:block;border-radius:6px;outline:1px solid transparent;outline-offset:2px;transition:outline-color .2s var(--ease);overflow:hidden}.hit.orange{--c: var(--orange)}.hit.blue{--c: var(--blue)}.stage:not(.is-ready) .hit a:hover,.hit a:focus-visible{outline:1px solid var(--c)}.hit a:focus-visible{outline-width:2px}.stage:not(.is-ready) .hit a:after{content:"";position:absolute;top:0;bottom:0;left:-40%;width:30%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.22),transparent);transform:skew(-16deg);opacity:0}.stage:not(.is-ready) .hit a:hover:after,.stage:not(.is-ready) .hit a:focus-visible:after{animation:sweep .8s var(--ease)}@keyframes sweep{0%{left:-40%;opacity:1}to{left:120%;opacity:0}}.live{position:absolute;top:-2px;right:10px;transform:translateY(-100%);display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border:1px solid rgba(147,197,253,.3);border-bottom:0;border-radius:4px 4px 0 0;background:#060a0feb;font:600 11px/16px var(--mono);letter-spacing:.12em;color:#cfe0f5}.hit,.hit a{overflow:visible}.live i{width:6px;height:6px;border-radius:50%;background:#34d399;animation:pulse 1.8s var(--ease) infinite calc(var(--i) * .3s)}.is-3d .live{animation:rise .6s var(--ease) both calc(.9s + var(--i) * .14s)}.hit.on .live{border-color:var(--c);color:#fff}@keyframes rise{0%{opacity:0;transform:translateY(-60%)}}.tiles{display:none}.site-foot{display:flex;justify-content:space-between;gap:8px 16px;flex-wrap:wrap;padding:12px 24px;color:var(--muted);font-size:14px;line-height:20px;border-top:1px solid var(--line)}.site-foot nav{display:flex;gap:16px;flex-wrap:wrap}.site-foot a{color:var(--muted)}.site-foot a:hover{color:#fff}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media (max-width: 1100px){.readout{display:none}.contact{margin-left:auto}}@media (max-width: 760px){.full{display:none}.short{display:inline}.bar{padding:0 16px}.stage{background-image:var(--scene-small)}.hits{display:none}.tiles{display:grid;grid-template-columns:1fr 1fr;gap:8px;list-style:none;margin:0;padding:16px}.tile{--c: var(--orange);display:grid;gap:8px;height:100%;padding:16px;border:1px solid rgba(147,197,253,.22);border-radius:6px;text-decoration:none;background:#0a1017 repeating-linear-gradient(0deg,rgba(255,255,255,.02) 0 1px,transparent 1px 3px)}.tile.blue{--c: var(--blue)}.tile:hover,.tile:focus-visible{border-color:var(--c);outline:none}.t-c{font:600 11px/16px var(--mono);letter-spacing:.12em;color:#93c5fd}.t-n{font-weight:700;line-height:20px}.t-d{font-size:14px;line-height:20px;color:var(--muted)}.t-b{align-self:end;justify-self:start;height:32px;display:inline-flex;align-items:center;padding:0 12px;border:1px solid var(--c);border-radius:6px;font-size:14px;font-weight:600}}.side a{position:absolute;left:0;width:8.6%;height:3.4%;border-left:2px solid transparent;transition:border-color .2s var(--ease),background-color .2s var(--ease)}.side a:hover{border-left-color:var(--orange);background:#f973161a}
