@font-face{font-family:Space Grotesk;src:url(../fonts/SpaceGrotesk-Variable.ttf)format("truetype");font-weight:300 700;font-style:normal;font-display:swap}@font-face{font-family:Space Mono;src:url(../fonts/SpaceMono-Regular.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{--color-void:#050507;--color-indigo-deep:#0a0a1f;--color-indigo:#1a1450;--color-violet:#2d1b69;--color-neon:#3df0ff;--color-text:#f2f4f8;--color-text-dim:#f2f4f873;--font-display:"Space Grotesk", "Inter", system-ui, sans-serif;--font-mono:"Space Mono", "IBM Plex Mono", ui-monospace, monospace;--text-label:clamp(.625rem, .55rem + .3vw, .75rem);--text-hero:clamp(3.5rem, 1rem + 14vw, 18rem);--space-edge:clamp(1rem, .5rem + 2vw, 3rem);--duration-fast:.15s;--duration-normal:.36s;--duration-slow:.9s;--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--z-canvas:0;--z-scroll:1;--z-ui:10;--z-cursor:50;--z-fallback:100}*,:before,:after{box-sizing:border-box;margin:0;padding:0}[hidden]{display:none!important}html,body{background:var(--color-void);height:100%;color:var(--color-text);font-family:var(--font-mono);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}body{overflow-x:hidden}html,body{scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar{width:0;height:0;display:none}body::-webkit-scrollbar{width:0;height:0;display:none}#gl{width:100vw;height:100vh;z-index:var(--z-canvas);display:block;position:fixed;inset:0}#scroll{z-index:var(--z-scroll);pointer-events:none;position:relative}.spacer{height:100vh}.spacer--short{height:60vh}.ui{z-index:var(--z-ui);pointer-events:none;position:fixed;inset:0}.ui__sound,.ui__quality,.ui__time{top:var(--space-edge);right:var(--space-edge);font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:.18em;color:var(--color-text-dim);border:1px solid color-mix(in srgb, var(--color-text) 12%, transparent);cursor:pointer;pointer-events:auto;transition:color var(--duration-fast) var(--ease-out-expo), border-color var(--duration-fast) var(--ease-out-expo);background:0 0;border-radius:2px;align-items:baseline;gap:.5em;padding:.4em .6em;display:inline-flex;position:absolute}.ui__quality{top:calc(var(--space-edge) + 2.35rem)}.ui__time{top:calc(var(--space-edge) + 4.7rem)}.ui__sound:hover,.ui__quality:hover,.ui__time:hover{color:var(--color-neon);border-color:color-mix(in srgb, var(--color-neon) 40%, transparent)}.preloader{z-index:60;pointer-events:none;will-change:opacity;background:0 0;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.preloader[hidden]{display:none}.preloader__spark{background:var(--color-neon);width:12px;height:12px;box-shadow:0 0 12px 3px var(--color-neon), 0 0 36px 10px color-mix(in srgb, var(--color-neon) 60%, transparent), 0 0 90px 26px color-mix(in srgb, var(--color-neon) 28%, transparent);opacity:0;will-change:opacity, transform;border-radius:50%}.flash{z-index:70;opacity:0;pointer-events:none;will-change:opacity;background:#dffcff;position:fixed;inset:0}.flash[hidden]{display:none}.cursor{border:1px solid var(--color-neon);pointer-events:none;width:26px;height:26px;z-index:var(--z-cursor);mix-blend-mode:screen;transition:width var(--duration-normal) var(--ease-out-expo), height var(--duration-normal) var(--ease-out-expo), background-color var(--duration-normal) var(--ease-out-expo);border-radius:50%;position:fixed;top:0;left:0}.cursor--active{background-color:color-mix(in srgb, var(--color-neon) 14%, transparent);width:52px;height:52px}.cursor[hidden]{display:none}body.has-cursor,body.has-cursor *{cursor:none}body[data-scene=footer].has-cursor,body[data-scene=footer].has-cursor *{cursor:auto}body[data-scene=footer] .cursor{display:none}@media (pointer:coarse){.cursor{display:none}}.ui__sound-state[data-on=true],.ui__quality-state[data-on=true],.ui__time-state[data-on=true]{color:var(--color-neon)}.fallback{z-index:var(--z-fallback);text-align:center;background:var(--color-void);flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:2rem;display:flex;position:fixed;inset:0}.fallback[hidden]{display:none}.fallback__title{font-family:var(--font-display);letter-spacing:.1em;color:var(--color-text);font-size:clamp(2rem,8vw,4rem)}.fallback__body{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:.15em;color:var(--color-text-dim)}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:hidden}.overlay{opacity:0;pointer-events:none;transition:opacity var(--duration-slow) var(--ease-out-expo);position:fixed;inset:0}body[data-scene=hero] .overlay--hero,body[data-scene=index] .overlay--index,body[data-scene=closing] .overlay--closing{opacity:1}body[data-scene=index] .overlay--index,body[data-scene=closing] .overlay--closing{pointer-events:auto}.manifesto{left:var(--space-edge);bottom:var(--space-edge);max-width:22ch;font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:.12em;color:var(--color-text-dim);line-height:1.5;position:absolute}.scroll-hint{left:50%;bottom:var(--space-edge);font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:.3em;color:var(--color-text-dim);flex-direction:column;align-items:center;gap:.6em;display:flex;position:absolute;transform:translate(-50%)}.scroll-hint__line{background:linear-gradient(var(--color-neon), transparent);width:1px;height:2.5rem;animation:scrollPulse 2.4s var(--ease-out-expo) infinite;transform-origin:top}@keyframes scrollPulse{0%,to{opacity:.3;transform:scaleY(.4)}50%{opacity:1;transform:scaleY(1)}}.index-list{top:50%;right:var(--space-edge);text-align:right;flex-direction:column;gap:clamp(.5rem,1.5vw,1.5rem);list-style:none;display:flex;position:absolute;transform:translateY(-50%)}.index-item{font-family:var(--font-display);letter-spacing:.03em;color:var(--color-text);cursor:pointer;text-shadow:0 0 4px color-mix(in srgb, var(--color-neon) 60%, transparent), 0 0 14px color-mix(in srgb, var(--color-neon) 40%, transparent), 0 0 34px color-mix(in srgb, var(--color-neon) 22%, transparent);transform-origin:100%;transition:color var(--duration-normal) var(--ease-out-expo), letter-spacing var(--duration-normal) var(--ease-out-expo), text-shadow var(--duration-normal) var(--ease-out-expo), transform var(--duration-normal) var(--ease-out-expo);justify-content:flex-end;align-items:baseline;gap:.8em;font-size:clamp(1.1rem,2.6vw,2rem);font-weight:600;text-decoration:none;display:flex}.index-item:hover,.index-item:focus-visible{color:#fff;letter-spacing:.14em;text-shadow:0 0 6px var(--color-neon), 0 0 22px color-mix(in srgb, var(--color-neon) 60%, transparent), 0 0 52px color-mix(in srgb, var(--color-neon) 35%, transparent);transform:scaleX(1.06)translate(-.1em)}.index-item:focus-visible{outline:1px solid color-mix(in srgb, var(--color-neon) 50%, transparent);outline-offset:.3em}.index-id{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:.1em;color:var(--color-text-dim)}.closing-links{left:50%;bottom:calc(var(--space-edge) * 3.2 + 1rem);font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:.18em;white-space:nowrap;gap:clamp(1.2rem,3vw,2.6rem);list-style:none;display:flex;position:absolute;transform:translate(-50%)}.closing-links a{color:var(--color-text-dim);text-shadow:0 0 16px color-mix(in srgb, var(--color-neon) 12%, transparent);transition:color var(--duration-fast) var(--ease-out-expo), text-shadow var(--duration-fast) var(--ease-out-expo);text-decoration:none}.closing-links a:hover{color:var(--color-neon);text-shadow:0 0 8px color-mix(in srgb, var(--color-neon) 45%, transparent), 0 0 28px color-mix(in srgb, var(--color-neon) 22%, transparent)}@media (width<=520px){.closing-links{letter-spacing:.12em;gap:.9rem}}.footer-line{left:50%;bottom:var(--space-edge);font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:.22em;color:var(--color-text-dim);opacity:.18;transition:opacity var(--duration-slow) var(--ease-out-expo);pointer-events:none;white-space:nowrap;text-shadow:0 0 18px color-mix(in srgb, var(--color-neon) 14%, transparent);position:fixed;transform:translate(-50%)}body[data-scene=footer] .footer-line{opacity:.72}body[data-scene=closing] .footer-line{opacity:.32}body[data-scene=hero] .footer-line{opacity:0}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important}}
