/* ============ HERO SCROLL EXPERIENCE ============ */
.hero-scroll{height:560vh;position:relative}
.hero-pin{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;background:radial-gradient(120% 90% at 50% 0%,#07303c 0%,#041a22 55%,#03141b 100%)}
.hero-pin::after{content:"";position:absolute;left:0;right:0;bottom:0;height:14%;background:linear-gradient(transparent,var(--bg0));pointer-events:none;z-index:6}
#scene{position:absolute;inset:0;width:100%;height:100%;display:block}
.hero-bar{position:absolute;top:0;left:0;height:2px;width:0;background:linear-gradient(90deg,var(--green-dim),var(--green));z-index:8;opacity:.9}
.hero-intro{position:absolute;left:clamp(1.2rem,6vw,6rem);bottom:16vh;z-index:7;max-width:min(760px,90vw);pointer-events:none}
.hero-intro .kicker{margin-bottom:1.2rem}
.hero-intro h1{font-size:clamp(2.1rem,6.4vw,4.9rem);font-weight:700}
.hero-intro h1 .g{color:var(--green)}
.hero-intro p{margin-top:1.3rem;color:var(--ink-dim);max-width:52ch;font-size:clamp(.95rem,1.4vw,1.1rem)}
.hero-intro .cta-row{margin-top:2rem;display:flex;gap:1rem;flex-wrap:wrap;pointer-events:auto}
.hero-cue{position:absolute;left:50%;bottom:4.5vh;transform:translateX(-50%);z-index:7;display:flex;flex-direction:column;align-items:center;gap:.6rem;font-family:var(--fm);font-size:.66rem;letter-spacing:.28em;color:var(--ink-faint);text-transform:uppercase;pointer-events:none}
.hero-cue i{width:1px;height:44px;background:linear-gradient(var(--green),transparent);display:block;animation:cue 1.8s var(--ease) infinite;transform-origin:top}
@keyframes cue{0%{transform:scaleY(0)}45%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}
.act-cap{position:absolute;z-index:7;max-width:min(46ch,44vw);opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease),transform .7s var(--ease);pointer-events:none;text-shadow:0 2px 22px rgba(3,16,22,.85)}
.act-cap::before{content:"";position:absolute;inset:-2.4rem -3rem;z-index:-1;background:radial-gradient(60% 60% at 40% 50%,rgba(3,18,25,.72),transparent 75%);filter:blur(6px)}
.act-cap.on{opacity:1;transform:none}
.act-cap .ph{font-family:var(--fm);font-size:.68rem;letter-spacing:.24em;color:var(--green);text-transform:uppercase;display:block;margin-bottom:.8rem}
.act-cap h2{font-size:clamp(1.35rem,2.8vw,2.2rem);font-weight:700}
.act-cap p{margin-top:.8rem;color:var(--ink-dim);font-size:.98rem}
#cap1{left:clamp(1.2rem,6vw,6rem);bottom:20vh}
#cap2{right:clamp(1.2rem,6vw,6rem);top:16vh;text-align:right}
#cap2 .ph{justify-content:flex-end;display:flex}
#cap3{right:clamp(1.2rem,6vw,6rem);bottom:22vh;text-align:right}
#cap3 .ph{justify-content:flex-end;display:flex}
#cap4{left:50%;transform:translate(-50%,26px);bottom:13vh;text-align:center;max-width:min(62ch,90vw)}
#cap4.on{transform:translate(-50%,0)}
#cap4 h2{font-size:clamp(1.7rem,4.4vw,3.2rem)}
#cap4 .cta-row{margin-top:1.6rem;display:flex;gap:.9rem;justify-content:center;flex-wrap:wrap;pointer-events:auto}
.rail{position:absolute;right:clamp(1rem,2.4vw,2.2rem);top:50%;transform:translateY(-50%);z-index:7;display:flex;flex-direction:column;gap:1.15rem;align-items:flex-end;pointer-events:none}
.rail li{display:flex;align-items:center;gap:.6rem;font-family:var(--fm);font-size:.62rem;letter-spacing:.18em;color:var(--ink-faint);text-transform:uppercase;transition:color .4s}
.rail li b{font-weight:500}
.rail li::after{content:"";width:7px;height:7px;border-radius:50%;border:1px solid var(--ink-faint);transition:background .4s,border-color .4s,box-shadow .4s}
.rail li.on{color:var(--ink)}
.rail li.on::after{background:var(--green);border-color:var(--green);box-shadow:0 0 12px rgba(60,232,158,.7)}
.rm-steps{position:relative;z-index:2;padding:4rem 0 2rem}
.rm-steps article{max-width:64ch;margin:0 auto 3.2rem;padding:1.6rem 1.8rem;border:1px solid var(--line-soft);border-radius:var(--r);background:rgba(6,36,46,.5)}
.rm-steps .ph{font-family:var(--fm);font-size:.68rem;letter-spacing:.24em;color:var(--green);text-transform:uppercase}
.rm-steps h3{font-size:1.3rem;margin:.6rem 0 .5rem}
.rm-steps p{color:var(--ink-dim)}
html.rm .hero-scroll{height:auto}
html.rm .hero-pin{position:relative;height:100svh}
html.rm .act-cap,html.rm .hero-cue,html.rm .rail,html.rm .hero-bar{display:none}
html.rm .hero-intro{bottom:auto;top:50%;transform:translateY(-50%)}
