@font-face{font-family:"Space Grotesk";src:url(fonts/space-grotesk-latin-wght-normal.woff2) format("woff2");font-weight:300 700;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url(fonts/jetbrains-mono-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
:root{--bg:#04060a;--gold:#d9a948;--copper:#c27a3c;--cyan:#52f3ff;--ink:#eef3f7;--mute:#8d9aa6}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--bg);color:var(--ink);scroll-behavior:auto}
body{font-family:"Space Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden;background:var(--bg)}
#gl{position:fixed;inset:0;width:100vw;height:100vh;height:100lvh;display:block;z-index:0}
.vignette{position:fixed;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse at 50% 50%,transparent 45%,rgba(2,3,6,.55) 100%)}
.topbar{position:fixed;z-index:6;left:0;right:0;top:0;display:flex;justify-content:space-between;align-items:center;padding:18px clamp(16px,3vw,40px);pointer-events:none}
.mark{font-weight:600;letter-spacing:-.02em;font-size:22px}.mark b{color:var(--cyan);font-weight:600;text-shadow:0 0 14px rgba(82,243,255,.7)}
.demo-tag{font:400 11px "JetBrains Mono",monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);border:1px solid rgba(217,169,72,.35);padding:6px 10px;border-radius:99px;background:rgba(4,6,10,.45);backdrop-filter:blur(6px)}

#story{position:relative;height:700vh;z-index:2}
.stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.hero{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none;will-change:opacity,transform}
.headline{font-weight:500;font-size:clamp(110px,22vw,300px);line-height:.82;letter-spacing:-.065em;display:flex;
  background:linear-gradient(180deg,#fff 10%,#e7edf2 45%,#9fb0bd 100%);-webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 0 28px rgba(82,243,255,.18)) drop-shadow(0 2px 0 rgba(0,0,0,.4));padding:.06em .08em .1em}
.headline span{display:inline-block}
.headline .two{background:linear-gradient(180deg,#d9fcff 0%,var(--cyan) 55%,#16b7d6 100%);-webkit-background-clip:text;background-clip:text;color:transparent;margin:0 -.01em;filter:drop-shadow(0 0 22px rgba(82,243,255,.55))}
.tagline{margin-top:clamp(8px,1.6vw,22px);font-size:clamp(17px,2.2vw,30px);font-weight:300;letter-spacing:.22em;text-transform:lowercase;color:#dbe4ea;text-shadow:0 0 18px rgba(4,6,10,.9)}
.arrow{color:var(--gold);margin:0 .25em}
.cta{pointer-events:auto;margin-top:clamp(22px,3vw,40px);display:inline-flex;gap:10px;align-items:center;padding:13px 26px;border-radius:99px;font-size:15px;font-weight:500;letter-spacing:.02em;color:#04060a;text-decoration:none;
  background:linear-gradient(135deg,#f3d27a,var(--gold) 55%,var(--copper));box-shadow:0 0 0 1px rgba(255,230,160,.35) inset,0 10px 40px -8px rgba(217,169,72,.55);transition:transform .25s,box-shadow .25s}
.cta:hover{transform:translateY(-2px);box-shadow:0 0 0 1px rgba(255,230,160,.5) inset,0 14px 50px -6px rgba(217,169,72,.8)}
.cta:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}
.scroll-hint{position:absolute;bottom:28px;display:flex;flex-direction:column;align-items:center;gap:10px;font:400 11px "JetBrains Mono",monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--mute)}
.scroll-hint i{width:1px;height:34px;background:linear-gradient(var(--cyan),transparent);animation:drip 2s ease-in-out infinite}
@keyframes drip{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

.node{position:absolute;left:0;top:0;width:min(280px,72vw);padding:16px 18px;border-radius:14px;opacity:0;pointer-events:none;will-change:transform,opacity;
  background:linear-gradient(160deg,rgba(14,20,28,.78),rgba(6,9,14,.82));border:1px solid rgba(217,169,72,.4);backdrop-filter:blur(10px);box-shadow:0 0 0 1px rgba(82,243,255,.08),0 12px 50px -10px rgba(0,0,0,.8),0 0 40px -12px rgba(82,243,255,.35)}
.node::before{content:"";position:absolute;left:-1px;top:16px;bottom:16px;width:2px;background:linear-gradient(var(--cyan),var(--gold));border-radius:2px;box-shadow:0 0 12px var(--cyan)}
.node small{font:400 10.5px "JetBrains Mono",monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.node h3{font-size:26px;font-weight:600;letter-spacing:-.02em;margin:6px 0 6px}
.node p{font-size:14px;line-height:1.45;color:#aab7c2;font-weight:400}
.finale{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;opacity:0;pointer-events:none;padding:0 24px}
.finale::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 50%,rgba(4,6,10,.78),rgba(4,6,10,0) 62%)}
.finale>*{position:relative}
.finale h2{font-size:clamp(40px,7vw,96px);font-weight:600;letter-spacing:-.04em;text-shadow:0 0 40px rgba(82,243,255,.35),0 0 12px rgba(4,6,10,.9)}
.finale p{margin-top:14px;color:var(--mute);font:400 12px "JetBrains Mono",monospace;letter-spacing:.12em;text-transform:uppercase}
.progress{position:absolute;right:clamp(14px,2.4vw,34px);top:50%;height:120px;width:2px;margin-top:-60px;background:rgba(255,255,255,.12);border-radius:2px;overflow:hidden}
.progress i{display:block;width:100%;height:100%;background:linear-gradient(var(--cyan),var(--gold));transform-origin:top;transform:scaleY(0);box-shadow:0 0 10px var(--cyan)}
.foot{position:relative;z-index:3;background:var(--bg);border-top:1px solid rgba(217,169,72,.25);padding:56px 24px;text-align:center;color:var(--mute);font-size:14px}
.foot .mark{display:block;color:var(--ink);margin-bottom:10px;font-size:28px}
.ns{position:fixed;z-index:9;top:50%;left:0;right:0;text-align:center}

/* reduced motion / no-WebGL: static fallback */
.static #story{height:auto}
.static .stage{position:relative;height:auto;min-height:100svh;overflow:visible;display:flex;flex-direction:column}
.static #gl{position:absolute;height:100svh;z-index:0}
.static .hero{position:relative;min-height:100svh}
.static .scroll-hint,.static .progress,.static .finale{display:none}
.static .node{position:relative;opacity:1!important;transform:none!important;margin:16px auto;width:min(420px,88vw);z-index:3}
.static .stage{padding-bottom:40px}
.static .vignette{position:absolute;height:100svh}
.nogl body{background:radial-gradient(circle at 50% 45%,#10202a,#04060a 65%)}
@media (max-width:640px){.demo-tag{font-size:9.5px}.node{width:min(250px,70vw);padding:13px 15px}.node h3{font-size:22px}.progress{display:none}}
