/* Ignite Cyber Solutions — The Spark
   Palette sampled from the ICS logo and the hero footage's world. */

:root{
  --canvas:#05071a;
  --panel:#0b0f2e;
  --panel-edge:#1a2050;
  --brand:#5865f2;
  --brand-soft:#a2aafb;
  --accent:#aef14d;
  --accent-hover:#c6f97e;
  --accent-muted:rgba(174,241,77,.28);
  --text-secondary:#9aa3d0;
  --text-primary:#f6f7fc;
  --tshadow:0 1px 2px rgba(5,5,10,.95),0 3px 12px rgba(5,5,10,.78),0 10px 44px rgba(5,5,10,.8);
  --ease:cubic-bezier(.22,.61,.2,1);
  --ease-punch:cubic-bezier(.34,1.4,.44,1);
  --font-d:"Bricolage Grotesque","Avenir Next",Avenir,"Segoe UI",sans-serif;
  --font-b:"Source Serif 4",Georgia,"Times New Roman",serif;
  --font-m:"IBM Plex Mono","Cascadia Mono",Consolas,monospace;
}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
html,body{overflow-x:hidden;overflow-x:clip}
body{
  margin:0;background:var(--canvas);color:var(--text-primary);
  font-family:var(--font-b);font-size:17px;line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:var(--brand-soft)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
h1,h2,h3,h4{font-family:var(--font-d);font-weight:700;line-height:1.12;margin:0}
p{margin:0}

.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--accent);color:#05071a;padding:.6em 1em;font-family:var(--font-m)}
.skip:focus{left:12px;top:12px}

/* ---- fixed environment layer: one place, breathing ---- */
.env{position:fixed;inset:0;z-index:-1;pointer-events:none;background:var(--canvas)}
.env::before{content:"";position:absolute;inset:-20%;
  background:
    radial-gradient(ellipse 42% 34% at 24% 28%,rgba(88,101,242,.10),transparent 70%),
    radial-gradient(ellipse 38% 30% at 78% 72%,rgba(88,101,242,.07),transparent 70%),
    radial-gradient(ellipse 20% 16% at 62% 18%,rgba(174,241,77,.04),transparent 70%);
  opacity:.9}
.env::after{content:"";position:absolute;inset:0;opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.6'/%3E%3C/svg%3E")}
.anim-ok .env::before{animation:envdrift 90s ease-in-out -30s infinite alternate}
@keyframes envdrift{from{transform:translate3d(-1.5%,-1%,0) scale(1)}to{transform:translate3d(1.5%,1.5%,0) scale(1.04)}}

/* ---- nav ---- */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;gap:1.6rem;
  padding:.8rem clamp(1rem,4vw,2.4rem);
  background:linear-gradient(rgba(5,7,26,.88),rgba(5,7,26,.55) 70%,transparent);
}
.nav-brand{display:flex;align-items:center;gap:.55rem;text-decoration:none}
.swirl{width:20px;height:28px}
.swirl-lg{width:34px;height:48px}
.lockup{display:flex;flex-direction:column;line-height:1}
.lockup-top{font-family:var(--font-d);font-weight:700;letter-spacing:.06em;font-size:1.15rem;color:var(--text-primary)}
.lockup-top em{font-style:normal;color:var(--accent);text-shadow:0 0 14px rgba(174,241,77,.65)}
.lockup-sub{margin-top:.28em;font-family:var(--font-m);font-size:.42rem;letter-spacing:.38em;text-transform:uppercase;color:var(--accent)}
.lockup-hero .lockup-top{font-size:2rem}
.lockup-hero .lockup-sub{font-size:.66rem}
.nav-links{display:flex;gap:1.4rem;margin-left:auto}
.nav-links a{font-family:var(--font-m);font-size:.8rem;letter-spacing:.06em;color:var(--text-secondary);text-decoration:none;transition:color .3s var(--ease)}
.nav-links a:hover{color:var(--text-primary)}

/* ---- buttons ---- */
.btn{display:inline-block;font-family:var(--font-m);font-size:.85rem;letter-spacing:.04em;text-decoration:none;
  padding:.72em 1.35em;border-radius:10px;transition:transform .35s var(--ease),background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease);text-shadow:none}
.btn-accent{background:var(--accent);color:#0a1002}
.btn-accent:hover{background:var(--accent-hover);transform:translateY(-2px)}
.btn-ghost{border:1px solid rgba(162,170,251,.45);color:var(--text-primary)}
.btn-ghost:hover{border-color:var(--brand-soft);transform:translateY(-2px)}
.btn-xl{font-size:1.02rem;padding:.95em 1.7em}
.nav-cta{white-space:nowrap}

/* ---- hero: press-to-play cinema ---- */
.hero{position:relative;height:100svh;min-height:560px}
.stage{position:relative;height:100%;overflow:hidden}
.poster{position:absolute;inset:0;background-size:cover;background-position:center;background-image:url('hero-still.jpg')}
#hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .9s var(--ease);transform:translateZ(0)}
.playing #hero-video{opacity:1}
.scrim{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 120% 90% at 50% 45%,rgba(5,7,26,0) 35%,rgba(5,7,26,.62) 100%)}
.ring{position:absolute;right:2rem;bottom:2rem;width:34px;height:34px;color:var(--brand-soft);transform:rotate(-90deg);opacity:0;transition:opacity .4s var(--ease)}
.playing.buffering .ring{opacity:1;animation:ringspin 1s linear infinite}
@keyframes ringspin{to{transform:rotate(270deg)}}
.nav{transition:opacity .6s var(--ease)}
body.filming .nav{opacity:0;pointer-events:none}
.hero-home{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;
  padding-bottom:7vh;text-align:center;text-shadow:var(--tshadow);transition:opacity .7s var(--ease)}
.playing .hero-home{opacity:0;pointer-events:none;visibility:hidden;transition:opacity .7s var(--ease),visibility 0s .7s}
/* the play orb: the flame is the invitation */
.play-orb{position:absolute;left:50%;top:35%;transform:translate(-50%,-50%) translateY(10px);z-index:3;
  display:flex;flex-direction:column;align-items:center;gap:.9rem;
  appearance:none;-webkit-appearance:none;background:none;border:0;padding:1rem;cursor:pointer;
  opacity:0;pointer-events:none;
  transition:opacity .9s var(--ease),transform .9s var(--ease)}
.stage.orb-in .play-orb{opacity:1;pointer-events:auto;transform:translate(-50%,-50%)}
.play-orb::before{content:"";position:absolute;inset:-14% -34%;z-index:-1;pointer-events:none;
  background:radial-gradient(ellipse 50% 50% at 50% 50%,rgba(5,5,16,.66) 0%,rgba(5,5,16,.38) 55%,rgba(5,5,16,0) 78%)}
.stage.playing .play-orb{opacity:0;pointer-events:none;visibility:hidden;transition:opacity .6s var(--ease),visibility 0s .6s}
.stage.watched .play-orb{display:none}
.watch-again{cursor:pointer;appearance:none;-webkit-appearance:none;background:rgba(8,8,20,.55)}
.po-ring{position:relative;display:flex;align-items:center;justify-content:center;width:88px;height:88px;border-radius:50%;
  border:1.5px solid rgba(162,170,251,.7);background:rgba(8,8,20,.5);
  box-shadow:0 4px 30px rgba(5,5,16,.55);
  transition:transform .4s var(--ease),border-color .4s var(--ease),background .4s var(--ease)}
.po-ring::after{content:"";position:absolute;inset:-1.5px;border-radius:50%;border:1.5px solid rgba(174,241,77,.7);
  opacity:0;transform:scale(1)}
.play-orb:hover .po-ring{transform:scale(1.08);border-color:var(--accent);background:rgba(8,8,20,.45)}
.anim-ok .play-orb:hover .po-ring::after,.anim-ok .attract .po-ring::after{animation:orbripple 1.4s var(--ease) 2}
@keyframes orbripple{0%{opacity:.8;transform:scale(1)}100%{opacity:0;transform:scale(1.65)}}
.anim-ok .po-ring{animation:orbidle 4.5s ease-in-out -1s infinite alternate}
@keyframes orbidle{from{transform:scale(1)}to{transform:scale(1.04)}}
.po-tri{width:0;height:0;border-style:solid;border-width:13px 0 13px 22px;border-color:transparent;
  border-left-color:var(--text-primary);margin-left:6px;filter:drop-shadow(0 0 8px rgba(246,247,252,.35))}
.po-label{font-family:var(--font-m);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--text-primary);
  text-shadow:0 1px 2px rgba(5,5,10,.95),0 3px 12px rgba(5,5,10,.85),0 8px 30px rgba(5,5,10,.8)}
.po-whisper{font-family:var(--font-b);font-style:italic;font-size:.95rem;color:#c6cbe8;
  text-shadow:0 1px 2px rgba(5,5,10,.95),0 3px 14px rgba(5,5,10,.85);opacity:0;transform:translateY(6px);
  transition:opacity .9s var(--ease),transform .9s var(--ease)}
.attract .po-whisper{opacity:1;transform:none}
.film-skip{position:absolute;top:5.2rem;right:1.6rem;z-index:6;cursor:pointer;pointer-events:auto;
  font-size:.72rem;letter-spacing:.14em;color:var(--text-secondary);border:1px solid rgba(96,96,126,.4)}
.film-skip:hover{color:var(--text-primary)}

.band{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;justify-content:center;
  padding:0 clamp(1.2rem,6vw,7rem);opacity:0;pointer-events:none;text-shadow:var(--tshadow)}
.band.on{pointer-events:auto}
.band::before{content:"";position:absolute;inset:-4%;pointer-events:none;z-index:-1;
  opacity:calc(.25 + .75*var(--k,1));
  background:radial-gradient(ellipse 74% 62% at var(--sx,50%) 50%,rgba(5,5,16,.66) 0%,rgba(5,5,16,.44) 46%,rgba(5,5,16,0) 76%)}
.side-l{align-items:flex-start;text-align:left}
.side-l::before{--sx:24%}
.side-r{align-items:flex-end;text-align:right}
.side-r::before{--sx:76%}
.side-l .bh,.side-r .bh{max-width:16ch}
.bh{font-family:var(--font-d);font-weight:700;font-size:clamp(1.7rem,4.2vw,3.4rem);line-height:1.14;color:var(--text-primary)}
.bh .em{font-style:normal;color:var(--accent);text-shadow:0 0 22px rgba(174,241,77,.55)}
.kicker{font-family:var(--font-m);font-size:.78rem;letter-spacing:.3em;text-transform:uppercase;color:var(--brand-soft);margin-bottom:1rem}
.kicker.after{margin:1.1rem 0 0;color:var(--text-secondary)}

.settle-cta{display:flex;gap:.9rem;margin-top:2.2rem;flex-wrap:wrap;justify-content:center}

/* the lockup build: letters land in ignition order, IT blooms green */
.settle-kick{--km:clamp(0,calc(var(--k,0)*2.5),1);opacity:var(--km);margin-bottom:1.2rem}
.logo-build{display:flex;flex-direction:column;align-items:center}
.lb-word{display:flex;font-family:var(--font-d);font-weight:700;font-size:clamp(2.6rem,7vw,5.6rem);letter-spacing:.06em;line-height:1;color:var(--text-primary)}
.lb-l{display:inline-block;
  --kl:clamp(0,calc((var(--k,0) - var(--i,0)*0.09)*4),1);
  --ks:clamp(0,calc((var(--k,0) - var(--i,0)*0.09 - .12)*3),1);
  opacity:var(--kl);
  transform:translateY(calc((1 - var(--kl))*34px)) scale(calc(.7 + .3*var(--kl)))}
.lb-it{color:var(--accent);
  text-shadow:0 0 calc((14px + 22px*(1 - var(--ks)))*var(--kl)) rgba(174,241,77,calc(.85*var(--kl)))}
.lb-sub{--k2:clamp(0,calc((var(--k,0) - .62)*5),1);
  margin-top:.9rem;font-family:var(--font-m);font-size:clamp(.7rem,1.5vw,1.05rem);letter-spacing:.42em;text-transform:uppercase;color:var(--accent);
  opacity:var(--k2);transform:scaleX(calc(1.12 - .12*var(--k2)))}
.lb-tag{--k3:clamp(0,calc((var(--k,0) - .74)*5),1);
  margin-top:1.1rem;font-family:var(--font-b);font-style:italic;font-size:clamp(1rem,2vw,1.35rem);color:var(--text-secondary);
  opacity:var(--k3);transform:translateY(calc((1 - var(--k3))*14px))}
.e-logo .settle-cta{--kb:clamp(0,calc((var(--k,0) - .84)*6),1);
  opacity:var(--kb);transform:translateY(calc((1 - var(--kb))*14px))}

.autoplay-btn{margin-top:1.8rem;cursor:pointer;font-size:.8rem;background:rgba(8,8,20,.55)}
/* perf: no backdrop blur over the repainting video */
.stage .chip{backdrop-filter:none;background:rgba(8,8,15,.78)}

/* ---- journey instrument layer (whisper level, aria-hidden) ---- */
.dust{position:absolute;inset:-20% 0;z-index:1;pointer-events:none;opacity:.5}
.dust-a,.dust-b{position:absolute;inset:0;background-repeat:repeat}
.dust-a{background-image:radial-gradient(1.5px 1.5px at 22% 31%,rgba(162,170,251,.5),transparent 60%),radial-gradient(1px 1px at 68% 12%,rgba(246,247,252,.4),transparent 60%),radial-gradient(1px 1px at 41% 74%,rgba(162,170,251,.35),transparent 60%),radial-gradient(1.5px 1.5px at 87% 55%,rgba(246,247,252,.3),transparent 60%);background-size:640px 540px;will-change:transform}
.dust-b{background-image:radial-gradient(2px 2px at 12% 62%,rgba(174,241,77,.22),transparent 60%),radial-gradient(1.5px 1.5px at 55% 41%,rgba(246,247,252,.35),transparent 60%),radial-gradient(2px 2px at 79% 83%,rgba(162,170,251,.4),transparent 60%);background-size:900px 760px;will-change:transform}
.slate{position:absolute;left:clamp(1.2rem,4vw,3rem);bottom:2.2rem;z-index:2;pointer-events:none;
  display:flex;align-items:baseline;gap:.8rem;opacity:.9}
.slate-num{font-family:var(--font-d);font-weight:700;font-size:clamp(2.6rem,5vw,4.2rem);line-height:1;color:transparent;
  -webkit-text-stroke:1px rgba(162,170,251,.34)}
.slate-label{font-family:var(--font-m);font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:rgba(154,163,208,.75);text-shadow:0 1px 3px rgba(5,5,10,.85)}
.vf{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:0;visibility:hidden}
.vf-c{position:absolute;width:34px;height:34px;border:1.5px solid rgba(162,170,251,.55)}
.vf-tl{top:9%;left:7%;border-right:0;border-bottom:0}
.vf-tr{top:9%;right:7%;border-left:0;border-bottom:0}
.vf-bl{bottom:9%;left:7%;border-right:0;border-top:0}
.vf-br{bottom:9%;right:7%;border-left:0;border-top:0}
.vf-tag{position:absolute;top:9.5%;right:calc(7% + 3.2rem);display:inline-flex;align-items:center;gap:.55em;font-size:.68rem;letter-spacing:.14em}
.vf-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px rgba(174,241,77,.8)}
.anim-ok .vf-dot{animation:vfblink 1.6s steps(2,start) infinite}
@keyframes vfblink{to{opacity:.25}}
.wf{position:absolute;right:clamp(1.2rem,4vw,3rem);bottom:2.6rem;z-index:2;pointer-events:none;
  display:inline-flex;align-items:center;gap:.7em;font-size:.68rem;letter-spacing:.14em;opacity:0;visibility:hidden}
.wf-bars{display:inline-flex;align-items:flex-end;gap:2px;height:12px}
.wf-bars i{width:3px;background:var(--accent);border-radius:1px;height:100%;transform-origin:bottom;transform:scaleY(.3)}
.anim-ok .wf-bars i{animation:wfb 1s ease-in-out infinite alternate}
.stat-chip{position:absolute;right:clamp(1.2rem,4vw,3rem);bottom:2.6rem;z-index:2;pointer-events:none;
  display:inline-flex;align-items:center;gap:.6em;font-size:.68rem;letter-spacing:.14em;opacity:0;visibility:hidden}
.stat-chip b{font-family:var(--font-d);font-weight:700;font-size:1rem;color:var(--accent)}
.stat-chip .stars{color:var(--accent);letter-spacing:.1em;text-shadow:0 0 8px rgba(174,241,77,.5)}
.wf-bars i:nth-child(1){animation-delay:-.2s}.wf-bars i:nth-child(2){animation-delay:-.55s}
.wf-bars i:nth-child(3){animation-delay:-.85s}.wf-bars i:nth-child(4){animation-delay:-.4s}
.wf-bars i:nth-child(5){animation-delay:-.7s}
@keyframes wfb{from{transform:scaleY(.2)}to{transform:scaleY(1)}}
.rail{position:absolute;right:1.4rem;top:18%;bottom:18%;z-index:3;width:2px;pointer-events:none;
  background:rgba(96,96,126,.28);border-radius:1px;opacity:.9}
.rail-fill{position:absolute;left:0;top:0;width:100%;height:100%;background:linear-gradient(var(--brand-soft),var(--accent));border-radius:1px;
  transform:scaleY(0);transform-origin:top}
.rail .rt{position:absolute;left:50%;top:calc(var(--rt)*100%);width:7px;height:7px;margin:-3.5px;border-radius:50%;
  background:var(--panel);border:1.5px solid rgba(162,170,251,.5)}

/* ---- hero life: the resting mark breathes ---- */
.settle-life{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:1;transition:opacity .9s var(--ease)}
.playing .settle-life{opacity:0;visibility:hidden;transition:opacity .9s var(--ease),visibility 0s .9s}
.sl-glow{position:absolute;left:50%;top:34%;width:46vmin;height:46vmin;margin:-23vmin 0 0 -23vmin;border-radius:50%;
  background:radial-gradient(circle,rgba(88,101,242,.15),transparent 65%)}
.sl-glow2{top:37%;width:22vmin;height:22vmin;margin:-11vmin 0 0 -11vmin;
  background:radial-gradient(circle,rgba(174,241,77,.11),transparent 60%)}
.anim-ok .stage.live .sl-glow{animation:slbreathe 5.5s ease-in-out -2s infinite alternate}
.anim-ok .stage.live .sl-glow2{animation:slbreathe 4.2s ease-in-out -3.1s infinite alternate}
@keyframes slbreathe{from{opacity:.45;transform:scale(.95)}to{opacity:.9;transform:scale(1.06)}}
.mote{position:absolute;left:calc(50% + var(--ox,0)*1px);top:52%;width:3px;height:3px;border-radius:50%;
  background:var(--brand-soft);box-shadow:0 0 6px rgba(162,170,251,.7);opacity:0}
.mote:nth-child(odd){background:var(--accent);box-shadow:0 0 6px rgba(174,241,77,.6)}
.anim-ok .stage.live .mote{animation:mrise var(--md,9s) linear var(--mdel,0s) infinite}
@keyframes mrise{0%{opacity:0;transform:translateY(0)}12%{opacity:.85}70%{opacity:.45}100%{opacity:0;transform:translateY(-44vh)}}
.ap-tri{display:inline-block;width:0;height:0;border-style:solid;border-width:5px 0 5px 8px;border-color:transparent;border-left-color:currentColor;margin-right:.6em}
.cue{position:absolute;left:50%;bottom:1.6rem;z-index:3;transform:translateX(-50%);width:22px;height:34px;border:1px solid rgba(162,170,251,.4);border-radius:12px;opacity:.7}
.cue span{position:absolute;left:50%;top:6px;width:3px;height:7px;margin-left:-1.5px;border-radius:2px;background:var(--brand-soft)}
.anim-ok .cue span{animation:cuedrop 2.4s var(--ease) -1.2s infinite}
@keyframes cuedrop{0%{transform:translateY(0);opacity:1}70%{transform:translateY(12px);opacity:0}100%{transform:translateY(0);opacity:0}}
.playing .cue{opacity:0;transition:opacity .5s}

/* character/word spans */
.w{display:inline-block;white-space:pre}
.c{display:inline-block;white-space:pre}

/* (a) scatter */
.e-scatter .c{--kc:clamp(0,calc((var(--k,0) - var(--th,0))*2.6),1);opacity:var(--kc);
  transform:translate(calc((1 - var(--kc))*var(--jx,0px)),calc((1 - var(--kc))*var(--jy,0px))) rotate(calc((1 - var(--kc))*var(--jr,0deg)))}
/* (f) drift-down */
.e-drift .w{--kc:clamp(0,calc((var(--k,0) - var(--th,0))*2.8),1);opacity:var(--kc);
  transform:translateY(calc((1 - var(--kc))*-24px))}
/* (d) word-punch */
.e-punch .w{--kc:clamp(0,calc((var(--k,0) - var(--th,0))*3),1);
  --ks:clamp(0,calc((var(--k,0) - var(--th,0) - var(--sd,.1))*var(--ss,3.2)),1);
  opacity:var(--kc);
  transform:scale(calc(0.6 + (0.4 + var(--ov,.12))*var(--kc) - var(--ov,.12)*var(--ks)))}
.e-punch .w.em-w{--ov:0.26;--sd:0.16;--ss:2.6}
/* (b) grid snap-align */
.e-grid .c{--kc:clamp(0,calc((var(--k,0) - var(--th,0))*2.6),1);opacity:var(--kc);
  transform:translateX(calc((1 - var(--kc))*var(--jx,0px)))}
/* (i) weave */
.e-weave .c{--kc:clamp(0,calc((var(--k,0) - var(--th,0))*2.6),1);opacity:var(--kc);
  transform:translateY(calc((1 - var(--kc))*var(--jy,0px)))}
/* (c) blur-to-sharp: two stacked copies, static blur on the soft one */
.blur-stack{position:relative}
.blur-stack .soft,.blur-stack .sharp{display:block}
.blur-stack .soft{position:absolute;inset:0;filter:blur(10px);opacity:calc(1 - var(--k,0))}
.blur-stack .sharp{opacity:var(--k,0)}
/* (g) approach-from-depth: the line grows into place */
.e-approach .bh{opacity:var(--k,0);transform:scale(calc(.82 + .18*var(--k,0)))}

/* ---- stats bar ---- */
.trust{padding:2.6rem clamp(1rem,4vw,2.4rem)}
.trust-row{display:flex;flex-wrap:wrap;gap:.7rem;justify-content:center;list-style:none;margin:0;padding:0}
.stats-row{gap:clamp(1.4rem,6vw,4.5rem);align-items:baseline}
.stat{display:flex;flex-direction:column;align-items:center;gap:.35rem;min-width:120px}
.stat-n{font-family:var(--font-d);font-weight:700;font-size:clamp(1.9rem,3.6vw,2.9rem);line-height:1;color:var(--text-primary)}
.stat-stars{color:var(--accent);font-size:clamp(1.4rem,2.6vw,2rem);letter-spacing:.12em;text-shadow:0 0 14px rgba(174,241,77,.4)}
.stat-l{font-family:var(--font-m);font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--text-secondary)}
.chip{font-family:var(--font-m);font-size:.78rem;letter-spacing:.06em;color:var(--text-secondary);
  background:rgba(8,8,20,.55);border:1px solid rgba(96,96,126,.3);border-radius:10px;padding:.45em .9em;
  backdrop-filter:blur(10px);text-shadow:0 1px 3px rgba(5,5,10,.85)}

/* ---- circuit spine ---- */
.spine{position:absolute;left:0;width:100%;z-index:0;pointer-events:none;overflow:visible}
.spine path{fill:none;stroke:rgba(88,101,242,.5);stroke-width:1.5}
.spine circle{fill:var(--accent);opacity:.15;transition:opacity .8s var(--ease)}
.spine circle.lit{opacity:.9;filter:drop-shadow(0 0 6px rgba(174,241,77,.8))}

/* ---- sections ---- */
.sec{position:relative;z-index:1;padding:clamp(4rem,9vw,7.5rem) clamp(1.2rem,5vw,3rem);max-width:1180px;margin:0 auto}
.sec-head{max-width:640px;margin-bottom:3rem}
.sec-head h2{font-size:clamp(1.7rem,3.4vw,2.7rem)}
.sec-head .kicker{margin-bottom:.8rem}
.lede{color:var(--text-secondary);margin-top:1rem;font-size:1.05rem}
.lede.center{text-align:center;margin:0 auto 2rem;max-width:52ch}

/* services */
.svc-featured{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:1.2rem;margin-bottom:1.2rem}
.svc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1.2rem}
.card{position:relative;background:linear-gradient(160deg,var(--panel),rgba(11,15,46,.55));border:1px solid rgba(88,101,242,.22);
  border-radius:16px;padding:1.5rem 1.4rem;overflow:hidden;transition:transform .45s var(--ease),border-color .45s var(--ease)}
.card:hover{transform:translateY(-4px);border-color:rgba(162,170,251,.5)}
.card h3{font-size:1.12rem;margin-bottom:.55rem}
.card p{color:var(--text-secondary);font-size:.95rem}
.card-lg{padding:2rem 1.8rem}
.card-lg h3{font-size:1.45rem}
.card-glow{position:absolute;top:-30%;right:-20%;width:60%;height:80%;border-radius:50%;pointer-events:none;
  background:radial-gradient(ellipse,rgba(88,101,242,.22),transparent 70%);opacity:0;transition:opacity 1s var(--ease)}
.card-lg:hover .card-glow{opacity:1}
.mono-list{list-style:none;margin:1.1rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.45rem}
.mono-list li{font-family:var(--font-m);font-size:.72rem;letter-spacing:.03em;color:var(--brand-soft);
  border:1px solid rgba(88,101,242,.3);border-radius:8px;padding:.3em .65em}

/* entrances (choreographed, retired after play) */
.rv .part{opacity:0;transform:translateY(22px)}
.rv.in .part{opacity:1;transform:none;transition:opacity .8s var(--ease),transform .8s var(--ease)}
.rv.in .part:nth-child(2){transition-delay:.09s}
.rv.in .part:nth-child(3){transition-delay:.18s}
.rv.in .part:nth-child(4){transition-delay:.27s}
.rv.in .part:nth-child(5){transition-delay:.36s}
.rv.in .part:nth-child(6){transition-delay:.45s}
.rv.in .part:nth-child(7){transition-delay:.54s}
.rv.done .part,.rv.done .part:nth-child(2),.rv.done .part:nth-child(3),.rv.done .part:nth-child(4),.rv.done .part:nth-child(5),.rv.done .part:nth-child(6),.rv.done .part:nth-child(7){transition-delay:0s}

/* how it works */
.steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2.6rem;counter-reset:step}
.step{display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,1.1fr);gap:2rem;align-items:center}
.step:nth-child(even){direction:rtl}
.step:nth-child(even)>*{direction:ltr}
.step-art{margin:0;border-radius:16px;overflow:hidden;border:1px solid rgba(88,101,242,.25);aspect-ratio:16/9;background:var(--panel)}
.step-art img{width:100%;height:100%;object-fit:cover}
.step-n{font-family:var(--font-m);font-size:.8rem;color:var(--accent);letter-spacing:.2em}
.step-body h3{font-size:1.5rem;margin:.5rem 0 .6rem}
.step-body p{color:var(--text-secondary)}

/* hold to ignite */
.ignite-sec{text-align:center}
.ignite-wrap{position:relative;padding:1rem 0 2rem}
.ignite-net{width:min(720px,92%);margin:0 auto;display:block}
.net-lines path{stroke-dasharray:var(--len,300);stroke-dashoffset:calc(var(--len,300)*(1 - var(--ig,0)));opacity:calc(.25 + .75*var(--ig,0))}
.net-nodes circle{opacity:calc(.2 + .8*var(--ig,0))}
.net-heart{filter:drop-shadow(0 0 calc(var(--ig,0)*14px) rgba(174,241,77,.9))}
.ignite-btn{position:relative;margin-top:1.6rem;font-family:var(--font-m);font-size:.9rem;letter-spacing:.06em;
  color:var(--text-primary);background:rgba(11,15,46,.8);border:1px solid rgba(162,170,251,.4);border-radius:999px;
  padding:1em 2.2em;cursor:pointer;overflow:hidden;transition:border-color .4s var(--ease);touch-action:manipulation;-webkit-user-select:none;user-select:none}
.ignite-btn:hover{border-color:var(--brand-soft)}
.ignite-fill{position:absolute;inset:0;transform:scaleX(var(--ig,0));transform-origin:left;background:linear-gradient(90deg,rgba(88,101,242,.35),rgba(174,241,77,.35));pointer-events:none}
.ignite-label{position:relative}
.ignite-done .ignite-label{color:var(--accent)}
.ignite-line{margin-top:1.4rem;font-family:var(--font-d);font-weight:700;font-size:clamp(1.2rem,2.4vw,1.7rem)}
.ignite-line .w{--kc:clamp(0,calc((var(--ig2,0) - var(--th,0))*3),1);opacity:var(--kc);transform:translateY(calc((1 - var(--kc))*14px))}

/* the wave payoff */
.ignite-follow{margin-top:1.8rem;opacity:0;transform:translateY(12px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.ignite-follow.show{opacity:1;transform:none}
.if-line{font-family:var(--font-b);font-style:italic;font-size:1.02rem;color:var(--text-secondary);margin-bottom:1rem}
.spark-pulse{fill:var(--accent);filter:drop-shadow(0 0 10px rgba(174,241,77,.95))}
.spine circle{transform-box:fill-box;transform-origin:center}
.anim-ok .spine circle.flare{animation:nodeflare .8s var(--ease)}
@keyframes nodeflare{0%{transform:scale(1)}35%{transform:scale(2.4)}100%{transform:scale(1)}}
.sec::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;
  background:radial-gradient(ellipse 62% 55% at 50% 50%,rgba(174,241,77,.08),transparent 72%);transition:opacity .55s var(--ease)}
.sec.wave::after{opacity:1}
.btn{position:relative}
.btn::after{content:"";position:absolute;inset:-5px;border-radius:14px;pointer-events:none;opacity:0;
  box-shadow:0 0 26px rgba(174,241,77,.85),0 0 60px rgba(174,241,77,.4)}
.anim-ok .btn.cta-pulse::after{animation:ctapulse 1.1s var(--ease) 3}
@keyframes ctapulse{0%{opacity:0}45%{opacity:1}100%{opacity:0}}

/* industries marquee */
.industries{max-width:none;padding-left:0;padding-right:0}
.marquee{overflow:hidden;border-top:1px solid rgba(88,101,242,.18);border-bottom:1px solid rgba(88,101,242,.18);padding:1.2rem 0;
  mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.marquee-track{display:flex;align-items:center;gap:2.6rem;width:max-content;font-family:var(--font-d);font-weight:500;font-size:1.25rem;color:var(--text-secondary)}
.anim-ok .marquee.live .marquee-track{animation:marq 46s linear infinite}
@keyframes marq{to{transform:translateX(-50%)}}
.dot{width:5px;height:5px;border-radius:50%;background:var(--accent-muted);flex:none}

/* testimonial */
.quote-sec{max-width:880px}
.quote{position:relative;margin:0;padding:2.6rem clamp(1.4rem,4vw,3rem);background:linear-gradient(165deg,var(--panel),rgba(11,15,46,.4));
  border:1px solid rgba(88,101,242,.22);border-radius:20px}
.quote-mark{position:absolute;top:-.35em;left:.35rem;font-family:var(--font-d);font-size:7rem;line-height:1;color:var(--brand);opacity:.5}
.anim-ok .quote-mark{animation:qpulse 6s ease-in-out -2s infinite alternate}
@keyframes qpulse{from{opacity:.35}to{opacity:.6}}
blockquote{margin:0;font-size:1.08rem}
.hl{font-style:normal;color:var(--accent)}
figcaption{margin-top:1.4rem;font-family:var(--font-m);font-size:.8rem;color:var(--text-secondary)}
figcaption strong{color:var(--text-primary)}

/* areas: the 250-mile radar */
.areas .sec-head{margin-inline:auto;text-align:center}
.area-map{max-width:760px;margin:0 auto}
.radar{position:relative;border-radius:20px;overflow:hidden;border:1px solid rgba(88,101,242,.22)}
.radar-terrain{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.5}
.radar::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 90% 90% at 50% 52%,transparent 40%,rgba(5,7,26,.85) 100%)}
.radar-svg{position:relative;z-index:1;width:100%;display:block}
.radar-rings circle,.radar-rings line{opacity:var(--dr,0)}
.radar-cities circle{opacity:calc(.1 + .9*var(--dr,0))}
.radar-labels text{opacity:calc(var(--dr,0)*.92);paint-order:stroke;stroke:rgba(5,7,26,.8);stroke-width:3px}
.rl-ring{fill:rgba(162,170,251,.65);letter-spacing:2px}
.radar-states text{opacity:calc(var(--dr,0)*.85)}
.radar-sweep{opacity:calc(var(--dr,0)*.9);transform-origin:360px 300px}
.anim-ok .radar.live .radar-sweep{animation:sweep 16s linear infinite}
@keyframes sweep{to{transform:rotate(360deg)}}
.rc-home{filter:drop-shadow(0 0 6px rgba(174,241,77,.9))}
.anim-ok .radar.live .rc-home{animation:qpulse 3.5s ease-in-out -1s infinite alternate}

/* faq */
.faq{max-width:820px}
.faq-list details{border-bottom:1px solid rgba(88,101,242,.22)}
.faq-list summary{position:relative;list-style:none;cursor:pointer;padding:1.15rem 2.4rem 1.15rem .2rem;
  font-family:var(--font-d);font-weight:500;font-size:1.08rem;transition:color .3s var(--ease)}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary:hover{color:var(--brand-soft)}
.fx{position:absolute;right:.4rem;top:50%;width:14px;height:14px;margin-top:-7px}
.fx::before,.fx::after{content:"";position:absolute;background:var(--brand-soft);transition:transform .4s var(--ease)}
.fx::before{left:0;top:6px;width:14px;height:2px}
.fx::after{left:6px;top:0;width:2px;height:14px}
details[open] .fx::after{transform:scaleY(0)}
.faq-list p{padding:0 .2rem 1.3rem;color:var(--text-secondary);max-width:62ch}

/* contact */
.contact{text-align:center}
.contact-inner{position:relative;padding:3.4rem clamp(1.2rem,4vw,3rem);border-radius:24px;overflow:hidden;
  background:radial-gradient(ellipse 90% 130% at 50% 115%,rgba(88,101,242,.16),transparent 60%),linear-gradient(165deg,var(--panel),rgba(11,15,46,.35));
  border:1px solid rgba(88,101,242,.25)}
.contact .sec-head{margin-inline:auto;text-align:center}
.contact-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:1.2rem}
.contact-note{margin-top:1.1rem;font-size:.85rem;color:var(--text-secondary)}
.addr{display:inline-block;margin-top:1.6rem}

/* footer */
.footer{position:relative;z-index:1;border-top:1px solid rgba(88,101,242,.2);padding:3rem clamp(1.2rem,5vw,3rem) 2rem;max-width:1180px;margin:0 auto}
.foot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:2rem}
.foot-brand p{margin-top:.8rem;font-size:.9rem;color:var(--text-secondary)}
.foot-col h4{font-family:var(--font-m);font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--brand-soft);margin-bottom:.8rem}
.foot-col p{font-size:.9rem;color:var(--text-secondary);margin:.3rem 0}
.foot-col a{color:var(--text-primary);text-decoration:none;border-bottom:1px solid rgba(162,170,251,.35)}
.foot-col a:hover{border-color:var(--accent)}
.foot-line{margin-top:2.6rem;font-family:var(--font-m);font-size:.72rem;color:var(--text-secondary);letter-spacing:.04em}

/* small screens: film still plays, corner instruments bow out */
@media (max-width:720px){.slate,.vf,.wf,.stat-chip,.rail{display:none}}
@media (max-height:560px){.cue,.slate,.vf,.wf,.rail,.stat-chip{display:none}}
/* reduced motion: keep the still hero fully assembled */
@media (prefers-reduced-motion: reduce){
  .e-logo .lb-l,.e-logo .lb-sub,.e-logo .lb-tag,.e-logo .settle-cta,.e-logo .settle-kick{opacity:1;transform:none}
  .lb-it{text-shadow:0 0 14px rgba(174,241,77,.75)}
}

/* phone layout */
@media (max-width:720px){
  .nav{gap:.8rem}
  .nav-links{display:none}
  .nav-cta{margin-left:auto;font-size:.75rem;padding:.6em 1em}
  .step,.step:nth-child(even){display:flex;flex-direction:column;direction:ltr;gap:1rem}
  .bh{font-size:1.5rem}
}
@media (pointer:coarse){
  .btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
  .faq-list summary{min-height:44px;display:flex;align-items:center}
  .film-skip{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
}

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

/* ---- reduced motion: final states, no drives ---- */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;transition-delay:0s!important}
  html{scroll-behavior:auto}
  .rv .part{opacity:1;transform:none}
  .net-lines path,.area-lines path{--ig:1;--dr:1;stroke-dashoffset:0}
  .net-nodes circle,.area-nodes circle,.area-labels text{opacity:1}
  .net-heart{filter:drop-shadow(0 0 14px rgba(174,241,77,.9))}
  .ignite-fill{transform:scaleX(1)}
  .ignite-line .w{opacity:1;transform:none}
  .spine circle{opacity:.9}
  .marquee-track{transform:none}
}
.quote-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.2rem;max-width:900px;margin:2.2rem auto 0}
.quote-mini p{font-size:.95rem;line-height:1.65;color:var(--text-secondary)}
.quote-mini .quote-who{margin-top:.9rem;font-family:var(--font-m);font-size:.72rem;letter-spacing:.05em;color:var(--brand-soft)}
.quote-mini .quote-who strong{color:var(--text-primary);font-weight:500}
.svc-price{margin-top:1rem;font-family:var(--font-m);font-size:.78rem;letter-spacing:.03em;color:var(--accent)}
