/* ===== scroll engine ===== */
.pbar{position:fixed;top:0;left:0;right:0;height:3px;z-index:60;background:var(--lime);transform-origin:0 50%;transform:scaleX(var(--sp,0))}
[data-pin]{position:relative}
.stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;perspective:1400px}
html.rm [data-pin]{height:auto!important}html.rm .stage{position:relative;height:auto;min-height:100svh}
.ramp{--r:clamp(0,calc((var(--p) - var(--a,0)) / (var(--b,1) - var(--a,0))),1)}
/* headline word rise */
.wd{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.12em;margin-bottom:-.12em}
.wd>i{display:inline-block;font-style:normal;transform:translateY(112%);animation:rise 1.1s var(--ease) forwards;animation-delay:var(--d,0s)}
@keyframes rise{to{transform:none}}
html.rm .wd>i{transform:none;animation:none}
/* sweep text */
.sw{color:rgba(255,255,255,.2);transition:color .35s}.sw.lit{color:#fff}.sw.lit.hl{color:var(--lime)}
/* marquee */
.mq{overflow:hidden;white-space:nowrap;border-block:1px solid var(--hair);padding-block:clamp(14px,2.4vw,26px);user-select:none}
.mq>div{display:inline-flex;gap:clamp(24px,4vw,56px);animation:mq 32s linear infinite;padding-right:clamp(24px,4vw,56px)}
.mq.rv2>div{animation-direction:reverse}
.mq span{font:800 clamp(2.4rem,8vw,7rem)/1 var(--font);letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.55)}
.mq span.f{color:var(--lime);-webkit-text-stroke:0}
@keyframes mq{to{transform:translateX(-50%)}}
html.rm .mq>div{animation:none}
/* cards: spotlight + tilt */
.spot{position:relative;overflow:hidden}
.spot::before{content:"";position:absolute;inset:0;background:radial-gradient(380px circle at var(--mx,50%) var(--my,0%),rgba(184,240,48,.18),transparent 60%);opacity:0;transition:opacity .3s;pointer-events:none}
.spot:hover::before{opacity:1}
[data-tilt]{transition:transform .25s var(--ease);will-change:transform}
/* horizontal scroll */
.hs .track{display:flex;gap:clamp(16px,2.4vw,32px);padding-inline:max(var(--gut),calc((100vw - 1120px)/2));align-items:center;height:100%;width:max-content}
html.rm .hs .track{transform:none;overflow-x:auto;width:auto}
/* sticky stacked cards */
.stk{display:grid;gap:0}.stk>.sc{position:sticky;top:calc(var(--nav-h) + 24px + var(--i,0) * 22px);margin-bottom:clamp(24px,5vw,56px)}
@media(max-width:700px){.stk>.sc{position:relative;top:auto}}
/* eyebrow variant */
.kicker{font:500 .8rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--g2)}
.scroll-cue{display:inline-flex;align-items:center;gap:10px;font:500 .75rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--g)}
.scroll-cue::after{content:"";width:1px;height:34px;background:linear-gradient(var(--lime),transparent);animation:cue 1.8s infinite}
@keyframes cue{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}}

.hs .stage{height:auto;padding-block:clamp(56px,9vh,110px)}.hs .track{height:auto}
