/* HuntFluence site styles v1 */
*,*::before,*::after{box-sizing:border-box}
html{overflow-x:hidden;overflow-x:clip;scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:72px}
body{margin:0;overflow-x:hidden;overflow-x:clip;background:var(--canvas);color:var(--ink);font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;animation:page-in .6s var(--ease-out) both}
@keyframes page-in{from{opacity:0}to{opacity:1}}
img,svg,canvas{display:block;max-width:100%}
a{color:inherit}
p{margin:0 0 var(--s-4)}
h1,h2,h3{margin:0;font-weight:400}
button{font:inherit;color:inherit}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.mono{font-family:var(--font-mono);font-size:var(--fs-mono);letter-spacing:.04em;text-transform:uppercase}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}

.skip{position:fixed;left:var(--s-4);top:-60px;z-index:100;background:var(--accent);color:var(--ink);padding:var(--s-3) var(--s-4);font-weight:700;text-decoration:none;transition:top var(--dur-1) var(--ease-out)}
.skip:focus{top:var(--s-4)}

/* environment layer: grain */
.grain{position:fixed;inset:-50%;z-index:90;pointer-events:none;opacity:.07;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 80s linear infinite;animation-delay:-20s}
@keyframes grain{to{transform:translate(8%,6%)}}

/* type */
.h-display{font-family:var(--font-display);font-size:var(--fs-h1);line-height:var(--lh-tight);letter-spacing:-.01em;text-transform:uppercase;margin:0;text-wrap:balance}
.h-mega{font-family:var(--font-display);font-size:clamp(1.9rem,7.2vw,7rem);line-height:.98;text-transform:uppercase;letter-spacing:-.015em;text-wrap:balance;max-width:16ch}
.h2{font-family:var(--font-display);font-size:clamp(1.65rem,4.2vw,4rem);line-height:1.02;text-transform:uppercase;text-wrap:balance;max-width:18ch}
.lead{font-size:var(--fs-lead);line-height:1.45;font-weight:500;max-width:46ch}
.kicker{margin:0 0 var(--s-5);color:var(--accent-ink)}
.dark .kicker{color:var(--accent)}
.strong{font-weight:700;max-width:40ch}

/* buttons */
.btn{--bh:52px;display:inline-flex;align-items:center;justify-content:center;gap:.7em;min-height:var(--bh);padding:0 1.35em;border:var(--border);border-radius:var(--radius);font-family:var(--font-mono);font-weight:700;font-size:.9rem;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;cursor:pointer;position:relative;
  transition:transform var(--dur-1) var(--ease-out),box-shadow var(--dur-1) var(--ease-out),background-color var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out)}
.btn .arr{display:inline-block;transition:transform var(--dur-2) var(--ease-out)}
.btn:hover .arr{transform:translateX(4px)}
.btn-sm{--bh:40px;font-size:.75rem;padding:0 .9em;border-width:2px}
.btn-lg{--bh:64px;font-size:1rem;padding:0 1.6em}
.btn-block{width:100%}
.btn-accent{background:var(--accent);color:var(--ink);border-color:var(--ink);box-shadow:var(--shadow-hard)}
.btn-accent:hover{background:var(--accent-hover);transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--ink)}
.btn-accent:active{transform:translate(4px,4px);box-shadow:2px 2px 0 var(--ink)}
.dark .btn-accent,.hero .btn-accent{box-shadow:6px 6px 0 var(--canvas)}
.dark .btn-accent:hover,.hero .btn-accent:hover{box-shadow:8px 8px 0 var(--canvas)}
.dark .btn-accent:active,.hero .btn-accent:active{box-shadow:2px 2px 0 var(--canvas)}
.btn-ghost-light{background:transparent;color:var(--canvas);border-color:var(--canvas)}
.btn-ghost-light:hover{background:var(--canvas);color:var(--ink)}
.btn-ink{background:var(--ink);color:var(--canvas);border-color:var(--ink);box-shadow:var(--shadow-hard-accent)}
.btn-ink:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--accent)}
.btn[disabled]{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
.ico{width:1.1em;height:1.1em}
@media (pointer:coarse){.btn{min-height:max(44px,var(--bh))}}

/* nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;height:64px;display:flex;align-items:center;justify-content:space-between;gap:var(--s-5);padding:0 var(--gutter);background:var(--ink);color:var(--canvas);border-bottom:2px solid var(--ink-3)}
.brand{display:inline-flex;align-items:center;gap:.55rem;text-decoration:none;color:inherit}
.mark{width:28px;height:28px;flex:none}
.mark-dot{fill:var(--accent);transform-origin:32px 32px;animation:dotpulse 4.8s var(--ease-io) infinite;animation-delay:-1.2s}
@keyframes dotpulse{0%,100%{opacity:1}50%{opacity:.45}}
.brand-word{font-family:var(--font-display);font-size:1.05rem;letter-spacing:.01em;line-height:1}
.brand-word b{font-weight:400;color:var(--accent)}
.nav-links{display:flex;gap:var(--s-6)}
.nav-links a{font-family:var(--font-mono);font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;text-decoration:none;color:var(--dim);padding:.5rem 0;position:relative;transition:color var(--dur-1) var(--ease-out)}
.nav-links a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform var(--dur-2) var(--ease-out)}
.nav-links a:hover{color:var(--canvas)}
.nav-links a:hover::after{transform:scaleX(1)}
.nav-right{display:flex;align-items:center;gap:var(--s-4)}
.lang{display:inline-flex;border:2px solid var(--dot);border-radius:var(--radius-pill);padding:2px}
.lang button{background:transparent;border:0;border-radius:var(--radius-pill);font-family:var(--font-mono);font-size:.72rem;font-weight:700;letter-spacing:.05em;color:var(--dim);padding:.35rem .6rem;cursor:pointer;transition:background-color var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out)}
.lang button:hover{color:var(--canvas)}
.lang button[aria-pressed="true"]{background:var(--canvas);color:var(--ink)}
@media (pointer:coarse){.lang button{min-height:40px;min-width:40px}}
@media (max-width:900px){.nav-links{display:none}}
@media (max-width:520px){.brand-word{display:none}.nav .btn-sm span{display:none}.nav .btn-sm{min-width:44px;padding:0}}

/* ============ HERO ============ */
.hero{position:relative;height:280vh;background:var(--ink);color:var(--canvas)}
.stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.dots{position:absolute;inset:0;width:100%;height:100%}
.scope{position:absolute;left:var(--scx,71%);top:var(--scy,50%);width:var(--ssz,min(70vh,44vw));height:var(--ssz,min(70vh,44vw));margin:calc(var(--ssz,min(70vh,44vw))/-2) 0 0 calc(var(--ssz,min(70vh,44vw))/-2);will-change:transform}
.scope{--ssz:min(68vh,42vw);--scx:73%}
.reticle{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.reticle *{vector-effect:non-scaling-stroke}
.ret-rot{transform-box:view-box;transform-origin:0 0}
.ret-ring{fill:none;stroke:var(--canvas);stroke-width:3}
.reticle .ret-draw,.reticle .ret-inner{vector-effect:none}
.ret-draw{stroke-width:2;stroke-dasharray:1;stroke-dashoffset:1;animation:draw .9s var(--ease-io) .05s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.ret-scale{stroke:var(--dim);stroke-width:1.5;fill:none;opacity:0;animation:fade .8s var(--ease-out) .35s forwards}
.ret-thin{stroke-width:1.5;stroke-dasharray:4 8;opacity:0;animation:fade .8s var(--ease-out) .45s forwards}
@keyframes fade{to{opacity:.6}}
.ret-ticks path{stroke:var(--canvas);stroke-width:3;fill:none;stroke-dasharray:74;stroke-dashoffset:74;animation:tick .7s var(--ease-out) .5s forwards;transition:stroke var(--dur-2) var(--ease-out)}
@keyframes tick{to{stroke-dashoffset:0}}
.hero.locked .ret-ticks path{stroke:var(--accent)}
.ret-inner{fill:none;stroke:var(--accent);stroke-width:1.8;stroke-dasharray:1;stroke-dashoffset:1}
.ret-core{fill:var(--accent);transform-box:fill-box;transform-origin:center;transform:scale(0)}
.ret-pulse{fill:none;stroke:var(--accent);stroke-width:2;opacity:0;transform-box:fill-box;transform-origin:center}
.hero.locked .ret-pulse{animation:pulse 2.8s var(--ease-out) infinite}
.hero.locked .ret-pulse.p2{animation-delay:1.4s}
@keyframes pulse{0%{transform:scale(1);opacity:.75}100%{transform:scale(3.4);opacity:0}}
.hero.locked .ret-core{animation:corepulse 2.8s var(--ease-io) infinite}
@keyframes corepulse{0%,100%{opacity:1}50%{opacity:.6}}
.sweep{position:absolute;inset:12.5%;border-radius:50%;background:conic-gradient(from 0deg,rgba(255,79,0,0) 0deg,rgba(255,79,0,0) 300deg,rgba(255,79,0,.32) 358deg,rgba(255,79,0,.6) 360deg);animation:spin 3.2s linear infinite;opacity:var(--sw,1)}
@keyframes spin{to{transform:rotate(360deg)}}
.guides span{position:absolute;opacity:0;animation:fade2 .9s var(--ease-out) .2s forwards}
@keyframes fade2{to{opacity:1}}
.g-h{left:0;right:0;top:var(--gy,50%);height:1px;background:repeating-linear-gradient(90deg,rgba(156,152,142,.35) 0 6px,transparent 6px 14px)}
.g-v{top:64px;bottom:0;left:var(--gx,71%);width:1px;background:repeating-linear-gradient(rgba(156,152,142,.35) 0 6px,transparent 6px 14px)}
.corners i{position:absolute;width:26px;height:26px;border:2px solid var(--dim);opacity:.8}
.corners i:nth-child(1){left:var(--gutter);top:88px;border-right:0;border-bottom:0}
.corners i:nth-child(2){right:var(--gutter);top:88px;border-left:0;border-bottom:0}
.corners i:nth-child(3){left:var(--gutter);bottom:var(--s-5);border-right:0;border-top:0}
.corners i:nth-child(4){right:var(--gutter);bottom:var(--s-5);border-left:0;border-top:0}
.hero.locked .corners i{border-color:var(--accent);transition:border-color var(--dur-2) var(--ease-out)}
.scrim{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(14,14,16,.78) 0%,rgba(14,14,16,.45) 38%,rgba(14,14,16,0) 58%)}

.bands{position:absolute;inset:0;pointer-events:none}
.band{position:absolute;left:var(--gutter);bottom:clamp(5rem,14vh,9rem);width:min(56vw,52rem);opacity:0;text-shadow:var(--tshadow);isolation:isolate}
.band::before{content:"";position:absolute;inset:-18% -14% -16% -10%;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 64% 60% at 42% 55%,rgba(14,14,16,.9) 0%,rgba(14,14,16,.78) 45%,rgba(14,14,16,0) 80%);opacity:calc(.35 + .65*var(--k,1))}
.band.b1{opacity:1}
.band a,.band button{pointer-events:auto}
.band .btn{text-shadow:none}
.b1 .h-display,.b2 .h-display{max-width:14ch}
.b1 .h-display{font-size:clamp(2rem,4.5vw,4.8rem)}
.b2 .h-display{font-size:clamp(2.2rem,5.5vw,5.8rem)}
.b2 .h-display .w:last-child{color:var(--accent)}
.slogan{color:var(--accent);font-size:clamp(.8rem,1.1vw,1rem);margin:0 0 var(--s-4);text-shadow:none}
.hero-name{font-family:var(--font-display);font-size:clamp(3rem,7vw,7.6rem);line-height:.86;letter-spacing:-.02em;margin:0 0 var(--s-6)}
.mask{display:block;overflow:hidden;padding:.06em .02em .1em;margin:-.06em 0 -.1em}
.hn{display:block;transform:translateY(calc((1 - var(--kh,0))*105%))}
.hn2{color:var(--accent);transform:translateY(calc((1 - var(--kh2,0))*105%))}
.hero-cta{display:flex;flex-wrap:wrap;gap:var(--s-4);opacity:var(--kb,0);transform:translateY(calc((1 - var(--kb,0))*16px))}

/* split text */
.w{display:inline-block;white-space:nowrap}
.c{display:inline-block}
.fx-rise .w{--kc:clamp(0,(var(--k,0) - var(--th,0))*2.6,1);opacity:var(--kc);transform:translateY(calc((1 - var(--kc))*.45em))}
.fx-punch .w{--kc:clamp(0,(var(--k,0) - var(--th,0))*3,1);--ks:clamp(0,(var(--k,0) - var(--th,0) - .12)*3,1);opacity:var(--kc);transform:scale(calc(.6 + .52*var(--kc) - .12*var(--ks)))}
.fx-punch .w:last-child{--ks:clamp(0,(var(--k,0) - var(--th,0) - .2)*2.4,1);transform:scale(calc(.6 + .64*var(--kc) - .24*var(--ks)))}
.split-c .c{--kc:clamp(0,(var(--k,0) - var(--th,0))*3,1);opacity:var(--kc);transform:translateX(calc((1 - var(--kc))*var(--jx,0px)))}

.hud{position:absolute;right:var(--gutter);bottom:var(--s-6);display:flex;gap:var(--s-5);padding:.55rem .85rem;background:rgba(14,14,16,.7);border:1px solid var(--dot);color:var(--dim)}
.hud i{font-style:normal}
.hud b{color:var(--canvas);font-weight:700;display:inline-block;min-width:3ch;text-align:right}
.hud .hud-lock{color:var(--accent)}
.cue{position:absolute;left:50%;bottom:var(--s-5);transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;color:var(--dim);opacity:var(--cue,1)}
.cue-line{width:2px;height:34px;background:linear-gradient(var(--accent),transparent);transform-origin:top;animation:cue 2.4s var(--ease-io) infinite}
@keyframes cue{0%{transform:scaleY(0)}50%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}
@media (max-height:560px){.hud,.cue{display:none}}

@media (max-width:900px){
  .hero{height:200vh}
  .scope{--ssz:min(80vw,42vh);--scx:50%;--scy:34%}
  .g-v{left:50%}
  .corners{display:none}
  .scrim{background:linear-gradient(0deg,rgba(14,14,16,.92) 0%,rgba(14,14,16,.7) 40%,rgba(14,14,16,0) 62%)}
  .band{width:auto;right:var(--gutter);bottom:clamp(2.2rem,7vh,4rem)}
  .h-display,.b1 .h-display{font-size:clamp(1.65rem,8.4vw,3.4rem)}
  .b2 .h-display{font-size:clamp(1.6rem,7.8vw,3.4rem);max-width:none}
  .fx-punch .w:last-child{transform-origin:left center}
  .hero-name{font-size:clamp(2.7rem,15.5vw,5rem);margin-bottom:var(--s-5)}
  .hero-cta .btn{flex:1 1 100%}
  .btn-lg{--bh:56px;font-size:.9rem}
  .hud{left:var(--gutter);right:auto;top:76px;bottom:auto;gap:var(--s-3);font-size:.68rem}
  .cue{display:none}
}
@media (orientation:landscape) and (pointer:coarse) and (max-height:560px){
  .hero{height:auto}
  .stage{position:relative;height:auto;min-height:100svh}
}

/* ============ PAIN ============ */
.pain{background:var(--accent);color:var(--ink);border-top:3px solid var(--ink);border-bottom:3px solid var(--ink);padding:var(--s-6) 0;overflow:hidden;position:relative}
.pain-label{padding:0 var(--gutter);margin:0 0 var(--s-4);font-weight:700}
.marquee{overflow:hidden;white-space:nowrap}
.track{display:inline-flex;gap:0;will-change:transform;animation:marq 48s linear infinite;animation-delay:-8s}
.rev .track{animation-direction:reverse;animation-duration:56s;animation-delay:-20s}
.track span{font-family:var(--font-display);font-size:clamp(2rem,5vw,4.6rem);line-height:1.12;text-transform:uppercase;padding-right:.6em;display:inline-flex;align-items:center}
.track span::after{content:"";display:inline-block;width:.34em;height:.34em;margin-left:.6em;background:var(--ink);transform:rotate(45deg)}
.track .tag{font-family:var(--font-mono);font-size:clamp(.8rem,1.1vw,1rem);font-weight:700;letter-spacing:.06em;background:var(--ink);color:var(--accent);padding:.3em .6em;margin-right:.8em;align-self:center}
.track .tag::after{display:none}
.rev .track span:not(.tag){-webkit-text-stroke:2px var(--ink);color:transparent}
@keyframes marq{to{transform:translateX(-50%)}}

/* ============ SECTIONS ============ */
.sect{padding:clamp(5rem,12vw,10rem) 0;position:relative}
.roles.sect{padding:clamp(4rem,8vw,7rem) 0}
.dark{background:var(--ink);color:var(--canvas)}

/* reveal choreography */
.js .reveal .rv{opacity:0;transform:translateY(28px);transition:opacity var(--dur-3) var(--ease-out),transform var(--dur-3) var(--ease-out)}
.js .reveal.in .rv{opacity:1;transform:none}
.js .reveal.in .rv:nth-child(2){transition-delay:.08s}
.js .reveal.in .rv:nth-child(3){transition-delay:.16s}
.js .reveal.in .rv:nth-child(4){transition-delay:.24s}
.js .reveal.in .rv:nth-child(5){transition-delay:.32s}
.js .reveal.done .rv,.js .reveal.done .rv:nth-child(2),.js .reveal.done .rv:nth-child(3),.js .reveal.done .rv:nth-child(4),.js .reveal.done .rv:nth-child(5){transition-delay:0s}

/* about */
.about .h-mega{margin-bottom:var(--s-8)}
.about-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:var(--s-8);align-items:end}
.about-text p{max-width:44ch}
.about-text .lead{max-width:34ch}
.stamp{display:inline-block;margin-top:var(--s-5);padding:.7rem 1rem;border:3px solid var(--ink);font-weight:700;transform:rotate(-2deg);background:var(--canvas);box-shadow:var(--shadow-hard-accent)}
.sources{list-style:none;margin:0;padding:0;border-top:3px solid var(--ink)}
.src{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);border-bottom:3px solid var(--ink);padding:.35rem 0;overflow:hidden;position:relative;cursor:default}
.src::before{content:"";position:absolute;inset:0;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease-out);z-index:0}
.src-n{position:relative;z-index:1;color:var(--ink-2);font-weight:700;transition:color var(--dur-2) var(--ease-out)}
.src-w{position:relative;z-index:1;font-family:var(--font-display);font-size:clamp(3rem,7.4vw,7.2rem);line-height:.95;letter-spacing:-.01em;display:inline-block;transform:translateX(110%);transition:transform .9s var(--ease-out),color var(--dur-2) var(--ease-out)}
.src:nth-child(even) .src-w{color:transparent;-webkit-text-stroke:2px var(--ink)}
.reveal.in .src-w{transform:none}
.reveal.in .src:nth-child(2) .src-w{transition-delay:.08s,0s}
.reveal.in .src:nth-child(3) .src-w{transition-delay:.16s,0s}
.reveal.in .src:nth-child(4) .src-w{transition-delay:.24s,0s}
.reveal.in .src:nth-child(5) .src-w{transition-delay:.32s,0s}
.reveal.done .src .src-w{transition-delay:0s,0s}
@media (hover:hover){.src:hover::before{transform:scaleX(1)}}
@media (hover:hover){.src:hover .src-w{color:var(--accent);-webkit-text-stroke:0}}
@media (hover:hover){.src:hover .src-n{color:var(--accent)}}
.src.live::before{transform:scaleX(1)}
.src.live .src-w{color:var(--accent);-webkit-text-stroke:0}
.src.live .src-n{color:var(--accent)}
@media (max-width:900px){.about-grid{grid-template-columns:1fr}}

/* roles */
.switch{position:relative;display:grid;grid-template-columns:1fr 1fr;border:3px solid var(--canvas);margin:0 0 var(--s-7);max-width:860px}
.switch button{position:relative;z-index:1;background:transparent;border:0;cursor:pointer;font-family:var(--font-display);font-size:clamp(.85rem,2.2vw,2.2rem);min-width:0;white-space:nowrap;line-height:1.05;padding:clamp(1rem,2.4vw,1.8rem) var(--s-4);color:var(--canvas);text-transform:uppercase;transition:color var(--dur-2) var(--ease-out)}
.switch button[aria-selected="true"]{color:var(--ink)}
.switch{min-width:0}
.switch-thumb{position:absolute;top:0;bottom:0;left:0;width:50%;background:var(--accent);transform:translateX(calc(var(--pos,0)*100%));transition:transform .55s var(--ease-out)}
.panel[hidden]{display:none}
.panel{animation:panel-in .6s var(--ease-out) both}
@keyframes panel-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.panel .h2{margin-bottom:var(--s-6);color:var(--canvas)}
.panel-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:var(--s-7);align-items:stretch;margin-bottom:var(--s-6)}
.visual{display:flex;flex-direction:column;min-height:0}
.bigs{list-style:none;margin:0;padding:0;border-top:2px solid var(--dot);display:grid;grid-template-columns:max-content minmax(0,1fr);column-gap:var(--s-6);align-content:start}
.bigs li{display:grid;grid-column:1/-1;grid-template-columns:subgrid;row-gap:var(--s-2);align-items:center;padding:1.1rem 0;border-bottom:2px solid var(--dot)}
.bigs .big{font-family:var(--font-display);font-size:clamp(1.9rem,3vw,3rem);line-height:.9;padding-top:.06em;color:var(--accent);white-space:nowrap;min-width:3.2ch}
.bigs .txt{font-size:var(--fs-lead);line-height:1.4;max-width:34ch;margin:0}
.panel .bigs li{animation:li-in .7s var(--ease-out) both}
.panel .bigs li:nth-child(2){animation-delay:.08s}
.panel .bigs li:nth-child(3){animation-delay:.16s}
@keyframes li-in{from{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:none}}
.terms{justify-content:center;gap:var(--s-3)}
.terms-title{color:var(--ink);background:var(--accent);padding:.55rem .8rem;margin:0;font-weight:700;align-self:flex-start}
.terms-list{list-style:none;margin:0;padding:0;border:3px solid var(--canvas);border-top:0}
.terms-list li{display:flex;align-items:baseline;gap:var(--s-4);padding:1rem var(--s-5);border-top:3px solid var(--canvas)}
.terms-list li:first-child{border-top:0;padding-top:1.1rem}
.t-n{color:var(--dim);font-weight:700;flex:none}
.t-w{font-family:var(--font-display);font-size:clamp(1.3rem,2vw,1.9rem);line-height:1;text-transform:uppercase}
.terms-list li{animation:li-in .7s var(--ease-out) both}
.terms-list li:nth-child(2){animation-delay:.1s}
.terms-list li:nth-child(3){animation-delay:.2s}
.dimtext{color:var(--dim);margin-top:var(--s-3)}
.meter-title{color:var(--dim);margin-bottom:var(--s-3)}
.funnel{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--s-4);border:3px solid var(--canvas);padding:var(--s-5);flex:1}
.fn-in,.fn-out{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.fn-out{grid-template-columns:repeat(2,1fr);justify-self:center}
.funnel i{display:block;width:16px;height:16px;border-radius:50%;background:var(--dot)}
.fn-out i{background:var(--accent);width:22px;height:22px;animation:blink 4.4s var(--ease-io) infinite}
.fn-out i:nth-child(2){animation-delay:-1.1s}.fn-out i:nth-child(3){animation-delay:-2.2s}.fn-out i:nth-child(4){animation-delay:-3.3s}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.5}}
.fn-gate{width:6px;align-self:stretch;background:repeating-linear-gradient(var(--canvas) 0 10px,transparent 10px 18px)}
.meter-legend{display:flex;gap:var(--s-5);margin-top:var(--s-3);color:var(--dim)}
.meter-legend>span{display:inline-flex;align-items:center;gap:.4rem}
.lg{display:inline-block;width:10px;height:10px;border-radius:50%}
.lg-grey{background:var(--dot)}.lg-or{background:var(--accent)}
@media (max-width:900px){.panel-grid{grid-template-columns:1fr;gap:var(--s-6)}.visual{max-width:460px}}
@media (max-width:520px){.switch button{padding:1rem .4rem}}
@media (max-width:1180px){.bigs{grid-template-columns:1fr}.bigs li{grid-template-columns:1fr}}

/* steps */
.steps-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:var(--s-5);margin-bottom:var(--s-7)}
.steps-head .kicker{order:2;margin:0}
.rail{height:4px;background:var(--panel);margin-bottom:var(--s-6);position:relative}
.rail span{position:absolute;inset:0;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform 1.8s var(--ease-io) .2s}
.reveal.in .rail span{transform:scaleX(1)}
.step-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-5)}
.step{position:relative;padding-top:var(--s-5)}
.step::before{content:"";position:absolute;top:calc(-1 * var(--s-6) - 8px);left:0;width:16px;height:16px;background:var(--canvas);border:4px solid var(--ink);transform:rotate(45deg);transition:background-color var(--dur-2) var(--ease-out)}
.reveal.in .step::before{background:var(--accent)}
.step-n{font-family:var(--font-display);font-size:clamp(3.6rem,6vw,6rem);line-height:.9;color:transparent;-webkit-text-stroke:2px var(--ink);display:block;margin-bottom:var(--s-4);transition:color var(--dur-2) var(--ease-out)}
.step:hover .step-n{color:var(--accent)}
.step h3{font-family:var(--font-display);font-size:var(--fs-h3);text-transform:uppercase;margin-bottom:var(--s-3)}
.step p{color:var(--ink-2);max-width:28ch}
@media (max-width:900px){.step-list{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:var(--s-7)}.rail{display:none}.step::before{top:0}.step{padding-top:var(--s-6)}}
@media (max-width:520px){.step-list{grid-template-columns:1fr}}

/* mission */
@keyframes dash{to{stroke-dashoffset:-56}}
.mission{background:var(--accent);color:var(--ink);border-top:3px solid var(--ink);border-bottom:3px solid var(--ink);overflow:hidden}
.mission .kicker{color:var(--ink)}
.mission-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:var(--s-7);align-items:center;margin-bottom:var(--s-7)}
.wins{display:flex;flex-direction:column;margin:0}
.win{display:flex;align-items:baseline;gap:var(--s-4);overflow:hidden;padding:.04em 0 .1em;margin:-.04em 0 -.1em}
.win-w{font-family:var(--font-display);font-size:clamp(4rem,14vw,13rem);line-height:.9;letter-spacing:-.03em;display:inline-block;transform:translateY(105%);transition:transform 1s var(--ease-out)}
.win:nth-child(2) .win-w{transition-delay:.12s;-webkit-text-stroke:3px var(--ink);color:transparent}
.win:nth-child(3) .win-w{transition-delay:.24s}
.win-l{font-weight:700;background:var(--ink);color:var(--accent);padding:.3em .6em;opacity:0;transition:opacity .6s var(--ease-out) .7s}
.reveal.in .win-w{transform:none}
.reveal.in .win-l{opacity:1}
.tri{margin:0}
.tri svg{width:100%;height:auto;overflow:visible}
.tri-line{fill:none;stroke:var(--ink);stroke-width:5;stroke-linejoin:round;stroke-dasharray:760;stroke-dashoffset:760;transition:stroke-dashoffset 1.8s var(--ease-io) .3s}
.reveal.in .tri-line{stroke-dashoffset:0}
.tri-node{fill:var(--canvas);stroke:var(--ink);stroke-width:5}
.tri-core{fill:var(--ink);transform-box:fill-box;transform-origin:center;animation:corepulse 4.2s var(--ease-io) infinite;animation-delay:-2s}
.tri-spoke{stroke:var(--ink);stroke-width:3;stroke-dasharray:3 9;stroke-linecap:round;animation:dash 5s linear infinite}
.mission-text{max-width:40ch;font-size:clamp(1.2rem,2vw,1.7rem);font-weight:700}
@media (max-width:760px){.mission-grid{grid-template-columns:1fr}.tri{max-width:260px}}

/* faq */
.faq-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:var(--s-8);align-items:start}
.faq-head{position:sticky;top:96px;min-width:0}
.faq-head .h2{font-size:clamp(1.7rem,2.9vw,2.9rem);overflow-wrap:break-word;hyphens:auto}
.faq-list{border-top:3px solid var(--ink)}
.qa{border-bottom:3px solid var(--ink)}
.qa summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:var(--s-4);padding:var(--s-5) 0;font-family:var(--font-display);font-size:clamp(1.1rem,1.8vw,1.55rem);line-height:1.15;text-transform:uppercase;min-height:44px}
.qa summary::-webkit-details-marker{display:none}
.qa .pm{flex:none;width:36px;height:36px;border:3px solid var(--ink);position:relative;transition:background-color var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out)}
.qa .pm::before,.qa .pm::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:3px;background:var(--ink);transform:translate(-50%,-50%)}
.qa .pm::after{transform:translate(-50%,-50%) rotate(90deg);transition:transform var(--dur-2) var(--ease-out)}
.qa[open] .pm{background:var(--accent);transform:rotate(180deg)}
.qa[open] .pm::after{transform:translate(-50%,-50%) rotate(0deg)}
.qa summary:hover .pm{background:var(--accent)}
.qa .ans{padding:0 0 var(--s-5);max-width:58ch;color:var(--ink-2);font-size:1.075rem}
.qa[open] .ans{animation:panel-in .5s var(--ease-out) both}
@media (max-width:900px){.faq-grid{grid-template-columns:1fr;gap:var(--s-6)}.faq-head{position:static}}

/* contact */
.contact-grid{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:var(--s-8);align-items:start}
.contact-left{min-width:0}
.contact .h-mega{margin-bottom:var(--s-6);font-size:clamp(1.8rem,4.3vw,4.4rem)}
.channels{display:grid;gap:var(--s-4);max-width:560px}
.channels>*{min-width:0}
.chan{display:flex;align-items:center;gap:var(--s-4);border:3px solid var(--canvas);color:var(--canvas);text-decoration:none;position:relative;min-height:84px;transition:background-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out),transform var(--dur-1) var(--ease-out),box-shadow var(--dur-1) var(--ease-out)}
a.chan,.chan-link{padding:var(--s-4) var(--s-5)}
.chan-link{display:flex;align-items:center;gap:var(--s-4);flex:1;min-width:0;color:inherit;text-decoration:none;align-self:stretch}
.chan-ico{flex:none;width:48px;height:48px;display:grid;place-items:center;background:var(--accent);color:var(--ink)}
.chan-ico svg{width:24px;height:24px}
.chan-body{display:flex;flex-direction:column;gap:.15rem;min-width:0;flex:1}
.chan-label{color:var(--dim);font-size:.72rem}
.chan-val{font-family:var(--font-body);font-weight:600;font-size:clamp(1.05rem,1.7vw,1.4rem);line-height:1.2;letter-spacing:-.005em;overflow-wrap:anywhere}
.chan-act{flex:none;font-weight:700;font-size:.75rem;display:inline-flex;align-items:center;gap:.35rem;white-space:nowrap}
a.chan .chan-act{color:var(--accent)}
.chan-tg{background:var(--canvas);color:var(--ink);box-shadow:6px 6px 0 var(--accent)}
.chan-tg .chan-label{color:var(--ink-2)}
.chan-tg .chan-act{color:var(--accent-ink)}
.chan-tg .chan-ico{background:var(--ink);color:var(--accent)}
.chan-tg:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--accent)}
.chan-tg:hover .arr{transform:translate(3px,-3px)}
.chan-tg:active{transform:translate(4px,4px);box-shadow:2px 2px 0 var(--accent)}
@media (hover:hover){.chan-mail:hover{border-color:var(--accent)}}
@media (hover:hover){.chan-mail:hover .chan-val{color:var(--accent)}}
.chan-copy{align-self:stretch;background:transparent;border:0;border-left:3px solid var(--canvas);color:var(--canvas);padding:0 var(--s-5);cursor:pointer;min-width:7.5rem;justify-content:center;transition:background-color var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out)}
@media (hover:hover){.chan-copy:hover{background:var(--canvas);color:var(--ink)}}
.chan-copy.ok{background:var(--accent);color:var(--ink)}
.copy-ico{display:none;width:22px;height:22px}
@media (max-width:520px){
  .chan-tg .chan-act span:not(.arr){display:none}
  .chan-tg .chan-act .arr{font-size:1.3rem}
  .chan-copy{min-width:56px;padding:0 var(--s-3)}
  .chan-copy .copy-ico{display:block}
  .chan-copy .copy-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
  .chan-ico{width:38px;height:38px}
  a.chan,.chan-link{padding:var(--s-3) var(--s-4);gap:var(--s-3)}
  .chan-val{font-size:.98rem;overflow-wrap:normal;word-break:normal}
  .seg span{font-size:.82rem}
}
.form{background:var(--canvas);color:var(--ink);border:3px solid var(--canvas);padding:clamp(1.25rem,3vw,2.25rem);box-shadow:10px 10px 0 var(--accent)}
.hp{position:absolute;left:-9999px}
.seg{border:0;padding:0;margin:0 0 var(--s-5);display:grid;grid-template-columns:1fr 1fr;gap:0}
.seg legend{padding:0;margin-bottom:var(--s-2);color:var(--ink-2)}
.seg label{position:relative;cursor:pointer}
.seg input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.seg span{display:flex;align-items:center;justify-content:center;min-height:52px;border:3px solid var(--ink);font-family:var(--font-display);font-size:1.05rem;text-transform:uppercase;transition:background-color var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out)}
.seg label+label span{border-left:0}
.seg input:checked+span{background:var(--ink);color:var(--accent)}
.seg input:focus-visible+span{outline:3px solid var(--accent);outline-offset:2px}
.field{margin-bottom:var(--s-4)}
.field label{display:block;margin-bottom:var(--s-2);color:var(--ink-2)}
.field input,.field textarea{width:100%;font:inherit;font-size:1.05rem;color:var(--ink);background:#F7F5F0;border:3px solid var(--ink);border-radius:0;padding:.8rem .9rem;min-height:52px;transition:box-shadow var(--dur-1) var(--ease-out),border-color var(--dur-1) var(--ease-out)}
.field textarea{resize:vertical;min-height:110px}
.field input::placeholder,.field textarea::placeholder{color:#6F6C65}
.field input:focus,.field textarea:focus{outline:none;box-shadow:4px 4px 0 var(--accent)}
.field input[aria-invalid="true"]{border-color:var(--accent-ink);box-shadow:4px 4px 0 var(--accent-ink)}
.field-err{margin:.4rem 0 0;color:var(--accent-ink);font-weight:700;font-size:.95rem}
.form-status{margin:var(--s-4) 0 0;font-weight:700;min-height:1.5em}
.form-status.ok{color:var(--ink);background:var(--accent);padding:.8rem 1rem;border:3px solid var(--ink)}
.form-status.err{color:var(--accent-ink)}
.form.sent .field,.form.sent .seg,.form.sent button{opacity:.4;pointer-events:none}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr}}

/* footer */
.footer{background:var(--ink);color:var(--dim);border-top:2px solid var(--ink-3);overflow:hidden}
.foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-4);padding-top:var(--s-6);padding-bottom:var(--s-6);color:var(--dim)}
.foot .brand{color:var(--canvas)}
.foot p{margin:0}
.uplink{text-decoration:none;padding:.6rem 0;min-height:44px;display:inline-flex;align-items:center}
.uplink:hover{color:var(--accent)}
.foot-mega{display:block;width:calc(100% - 2*var(--gutter));height:auto;margin:0 auto -.4%;overflow:visible;user-select:none}
.foot-mega text{font-family:var(--font-display);font-size:150px;fill:var(--ink-3)}

/* paused tabs */
body.paused *,body.paused *::before,body.paused *::after{animation-play-state:paused!important}
.offscreen,.offscreen *{animation-play-state:paused!important}

/* ============ REDUCED MOTION ============ */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important;transition-delay:0s!important}
  .hero{height:auto}
  .stage{position:relative;height:auto;min-height:100svh;padding:110px 0 var(--s-7);display:flex;align-items:flex-end}
  .bands{position:relative;inset:auto;width:100%;padding:0 var(--gutter);pointer-events:auto}
  .band{position:relative;left:auto;right:auto;bottom:auto;opacity:1!important;width:auto;max-width:60rem;margin-bottom:var(--s-5)}
  .b1 .h-display,.b2 .h-display{font-size:clamp(1.5rem,3.2vw,2.6rem)}
  .w,.c{opacity:1!important;transform:none!important}
  .hn,.hn2{transform:none!important}
  .hero-cta{opacity:1!important;transform:none!important}
  .ret-core{transform:scale(1)}
  .ret-inner{stroke-dashoffset:0}
  .ret-draw,.ret-ticks path{stroke-dashoffset:0}
  .ret-scale,.ret-thin{opacity:.6}
  .guides span{opacity:1}
  .sweep{display:none}
  .cue{display:none}
  .js .reveal .rv{opacity:1;transform:none}
  .tri-line{stroke-dashoffset:0}
  .src-w{transform:none}
  .win-w{transform:none}.win-l{opacity:1}
  .rail span{transform:scaleX(1)}
  .track{transform:none}
  .grain{display:none}
}
@media (prefers-reduced-motion:reduce) and (max-width:900px){
  .stage{padding-top:calc(90px + 80vw)}
  .scope{--scy:calc(80px + 40vw)}
  .g-h{top:calc(80px + 40vw)}
}
