*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;min-height:100vh}img,picture,svg,canvas{max-width:100%;display:block}button,input,textarea,select{font:inherit;color:inherit;background:0 0;border:none}button{cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none}a{color:inherit;text-decoration:none}ul,ol{list-style:none}:focus-visible{outline:2px solid var(--mint);outline-offset:3px}@font-face{font-family:Michroma;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/michroma-400.woff2)format("woff2")}@font-face{font-family:Rajdhani;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/rajdhani-400.woff2)format("woff2")}@font-face{font-family:Rajdhani;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/rajdhani-500.woff2)format("woff2")}@font-face{font-family:Rajdhani;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/rajdhani-600.woff2)format("woff2")}@font-face{font-family:Spline Sans Mono;font-style:normal;font-weight:300 600;font-display:swap;src:url(/fonts/spline-sans-mono-var.woff2)format("woff2")}:root{--bg:#060809;--bg-2:#0a0d0e;--panel:#0f1314;--line:#1b2326;--text:#dfe7e5;--muted:#7d8c89;--faint:#65817d;--mint:#5ef2c8;--cyan:#58bbf5;--amber:#ffce6b;--coral:#ff7a66;--steel:#83999b;--accent:var(--mint);--disp:"Michroma", system-ui, sans-serif;--body:"Rajdhani", system-ui, sans-serif;--mono:"Spline Sans Mono", ui-monospace, "SF Mono", monospace;--ease-expo:cubic-bezier(.16, 1, .3, 1);--ease-back:cubic-bezier(.34, 1.56, .64, 1);--ease-inout:cubic-bezier(.65, 0, .35, 1);--pad:clamp(18px, 3.2vw, 44px);--rail:1px;--z-canvas:0;--z-overlay:10;--z-chrome:20;--z-preloader:50;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--body)}body{overscroll-behavior:none}#root{isolation:isolate;position:relative}.gl-canvas{width:100vw;height:100vh;height:100dvh;z-index:var(--z-canvas);touch-action:none;position:fixed;top:0;bottom:0;left:0;right:0}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:clip}::selection{background:var(--accent);color:var(--bg)}.vh{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{z-index:100;background:var(--panel);border:1px solid var(--accent);color:var(--text);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;transition:top .2s var(--ease-expo);padding:10px 16px;font-size:12px;position:fixed;top:-100px;left:12px}.skip-link:focus{top:12px}.skip-help{white-space:normal;text-transform:none;letter-spacing:.02em;max-width:min(440px,92vw);color:var(--muted);line-height:1.6}@media (prefers-reduced-motion:reduce){.lenis.lenis-smooth{scroll-behavior:auto!important}}.hud{z-index:var(--z-chrome);pointer-events:none;position:fixed;top:0;bottom:0;left:0;right:0}.hud>*{pointer-events:auto}.logo,.rail button,.placard .idx,.placard h2,.placard p,.placard .medium{text-shadow:0 0 3px #000c,0 1px 18px #000000a6}.logo{top:var(--pad);left:var(--pad);font-family:var(--disp);letter-spacing:.42em;color:var(--text);text-transform:uppercase;font-size:13px;position:fixed}.logo small{font-family:var(--mono);letter-spacing:.26em;color:var(--faint);margin-top:6px;font-size:8.5px;display:block}.rail{top:50%;right:var(--pad);flex-direction:column;align-items:flex-end;gap:14px;display:flex;position:fixed;transform:translateY(-50%)}.rail button{font-family:var(--mono);letter-spacing:.18em;color:var(--faint);transition:color .4s var(--ease-expo), letter-spacing .4s var(--ease-expo);align-items:center;gap:9px;font-size:11px;display:flex}.rail button:after{content:"";opacity:.5;width:16px;height:1px;transition:width .4s var(--ease-expo);background:currentColor}.rail button:hover{color:var(--text)}.rail button[data-active=true]{color:var(--accent);letter-spacing:.26em}.rail button[data-active=true]:after{opacity:1;width:34px}.placard{bottom:var(--pad);left:var(--pad);max-width:min(38ch,64vw);position:fixed}.placard .idx{font-family:var(--mono);letter-spacing:.3em;color:var(--accent);text-transform:uppercase;font-size:10px}.placard h2{font-family:var(--disp);letter-spacing:.06em;color:var(--text);margin:12px 0 10px;font-size:clamp(20px,3.2vw,34px);font-weight:400;line-height:1.05}.placard p{font-family:var(--body);color:var(--muted);max-width:36ch;font-size:15px;font-weight:500;line-height:1.5}.placard .medium{font-family:var(--mono);letter-spacing:.14em;color:var(--faint);text-transform:uppercase;margin-top:14px;font-size:9.5px}.reveal>*{opacity:0;animation:rise .8s var(--ease-expo) forwards;transform:translateY(14px)}.reveal>:first-child{animation-delay:50ms}.reveal>:nth-child(2){animation-delay:.13s}.reveal>:nth-child(3){animation-delay:.22s}.reveal>:nth-child(4){animation-delay:.32s}@keyframes rise{to{opacity:1;transform:translateY(0)}}.controls{top:var(--pad);right:var(--pad);gap:10px;display:flex;position:fixed}.control-btn{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0a0d0e80;padding:8px 11px;font-size:9.5px;transition:color .3s,border-color .3s}.control-btn:hover{color:var(--text);border-color:var(--accent)}.control-btn[data-on=true]{color:var(--accent);border-color:var(--accent)}.scroll-hint{bottom:calc(var(--pad) - 2px);font-family:var(--mono);letter-spacing:.3em;color:var(--faint);text-transform:uppercase;transition:opacity .6s var(--ease-expo);flex-direction:column;align-items:center;gap:8px;font-size:9px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.scroll-hint .chev{background:linear-gradient(var(--accent), transparent);width:1px;height:26px;animation:drop 1.8s var(--ease-inout) infinite}@keyframes drop{0%{transform-origin:top;opacity:0;transform:scaleY(0)}40%{opacity:1;transform:scaleY(1)}to{transform-origin:top;opacity:0;transform:scaleY(1)translateY(26px)}}.enter-prompt{bottom:calc(var(--pad) + 64px);font-family:var(--mono);letter-spacing:.24em;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:all .3s var(--ease-expo);background:#06080966;padding:9px 16px;font-size:10px;position:fixed;left:50%;transform:translate(-50%)}.enter-prompt:hover{background:var(--accent);color:var(--bg)}.atmosphere{z-index:1;pointer-events:none;width:100vw;height:100dvh;position:fixed;top:0;bottom:0;left:0;right:0}.hotspot-layer{pointer-events:none;opacity:0;z-index:var(--z-overlay);will-change:transform, opacity;position:fixed;top:0;bottom:0;left:0;right:0}.hotspot{width:0;height:0;position:absolute}.hs-node{background:var(--accent);width:5px;height:5px;box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);border-radius:50%;margin:-2.5px 0 0 -2.5px;position:absolute;top:0;left:0}.hs-leader{position:absolute;top:-33px;left:-1px;overflow:visible}.hs-leader line{stroke:var(--accent);stroke-width:1px;opacity:.55}.hs-tag{white-space:nowrap;font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--faint);text-shadow:0 0 3px #000c,0 1px 14px #0009;align-items:baseline;gap:7px;font-size:9.5px;display:flex;position:absolute;top:-42px;left:48px}.hs-tag b{color:var(--accent);font-weight:400}@media (max-width:720px){.hotspot-layer{display:none}}.colophon{z-index:var(--z-overlay);min-height:100vh;padding:10vh var(--pad);flex-direction:column;justify-content:center;gap:22px;max-width:720px;display:flex;position:relative}.colophon h3{font-family:var(--disp);letter-spacing:.08em;color:var(--text);font-size:clamp(22px,4vw,40px)}.colophon .manifesto{font-family:var(--body);color:var(--muted);max-width:48ch;font-size:17px;line-height:1.6}.colophon ul{gap:7px;display:grid}.colophon li{font-family:var(--mono);letter-spacing:.08em;color:var(--faint);font-size:11px}.colophon li b{color:var(--steel);font-weight:400}.reduced{z-index:var(--z-overlay);max-width:760px;padding:12vh var(--pad);gap:64px;margin:0 auto;display:grid;position:relative}.reduced section{border-left:1px solid var(--line);padding-left:22px}.webgl-fallback{text-align:center;padding:var(--pad);background:radial-gradient(60% 50% at 50% 42%, #0c2a28 0%, #070b0c 60%, var(--bg) 100%);place-items:center;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}@media (pointer:coarse){.control-btn{padding:12px 14px;font-size:10.5px}.rail{gap:4px}.rail button{padding:11px 6px;font-size:13px}.rail button:after{width:20px}.rail button[data-active=true]:after{width:30px}.enter-prompt{padding:15px 24px;font-size:11px}}@media (max-width:720px){.rail{gap:4px}.placard{max-width:80vw}.hud.has-interact .placard{bottom:calc(var(--pad) + 64px)}.logo small{display:none}.enter-prompt{left:auto;right:var(--pad);bottom:var(--pad);transform:none}.scroll-hint{display:none}}.preloader{z-index:var(--z-preloader);background:radial-gradient(60% 50% at 50% 46%, #0b1f1d 0%, #070b0c 58%, var(--bg) 100%);text-align:center;padding:var(--pad);flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.pl-dot{background:var(--mint);width:10px;height:10px;animation:beat 1.6s var(--ease-inout) infinite;border-radius:50%;box-shadow:0 0 30px 6px #5ef2c88c}@keyframes beat{0%,to{opacity:.7;transform:scale(.7)}45%{opacity:1;transform:scale(1.25)}}.pl-counter{font-family:var(--mono);letter-spacing:.22em;color:var(--faint);text-transform:uppercase;margin-top:10px;font-size:11px}.pl-title{font-family:var(--disp);letter-spacing:.16em;color:var(--text);margin-top:6px;font-size:clamp(30px,7vw,68px);font-weight:400}.pl-sub{font-family:var(--body);color:var(--muted);letter-spacing:.02em;font-size:16px}.pl-begin{font-family:var(--mono);letter-spacing:.3em;text-transform:uppercase;color:var(--bg);background:var(--mint);opacity:0;transition:opacity .6s var(--ease-expo), transform .6s var(--ease-expo), background .3s;margin-top:18px;padding:13px 30px;font-size:12px;transform:translateY(8px)}.pl-begin[data-ready=true]{opacity:1;transform:none}.pl-begin[disabled]{color:var(--faint);border:1px solid var(--line);cursor:default;background:0 0}.pl-begin:not([disabled]):hover{background:var(--cyan)}
