/* ============================================================
   JUMP DIGITAL — DESIGN SYSTEM / TOKENS
   ============================================================ */
:root{
  /* color */
  --void:#050308;
  --ink:#09050F;
  --panel:#0F0919;
  --panel-2:#150D24;
  --line:rgba(168,128,255,.12);
  --line-2:rgba(168,128,255,.24);
  --purple:#7B2FD4;
  --violet:#A855F7;
  --magenta:#E01B74;
  --pink:#FF3D8F;
  --txt:#F3EFFC;
  --muted:#A79FC2;
  --dim:#6C648A;
  --grad:linear-gradient(100deg,#A855F7 0%,#7B2FD4 32%,#E01B74 72%,#FF3D8F 100%);
  --grad-soft:linear-gradient(140deg,rgba(168,85,247,.16),rgba(224,27,116,.10));

  /* space */
  --pad:clamp(20px,4.6vw,72px);
  --sec:clamp(78px,10vh,148px);
  --max:1480px;

  /* radius */
  --r-s:8px; --r-m:16px; --r-l:26px; --r-xl:38px;

  /* type */
  --f-dis:'Inter Tight','Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  --f-body:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  --f-mono:'JetBrains Mono',ui-monospace,'SF Mono',Menlo,monospace;
  --h1:clamp(2.7rem,7.6vw,8.6rem);
  --h2:clamp(2.1rem,5.4vw,5.4rem);
  --h3:clamp(1.55rem,2.7vw,2.6rem);
  --body:clamp(.98rem,1.06vw,1.16rem);

  /* motion */
  --e-out:cubic-bezier(.16,1,.3,1);
  --e-io:cubic-bezier(.66,0,.34,1);

  /* z */
  --z-bg:0; --z-content:10; --z-dock:60; --z-menu:86; --z-header:90; --z-cursor:95; --z-loader:100;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth}
body{
  margin:0; background:var(--void); color:var(--txt);
  font-family:var(--f-body); font-size:var(--body); line-height:1.6;
  font-weight:400; letter-spacing:-.005em;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
body.is-locked{overflow:hidden}
img{max-width:100%; display:block}
a{color:inherit; text-decoration:none}
button,input,select,textarea{font:inherit; color:inherit}
::selection{background:var(--magenta); color:#fff}

/* focus */
:focus-visible{outline:2px solid var(--violet); outline-offset:3px; border-radius:4px}

/* scrollbar */
::-webkit-scrollbar{width:10px}
::-webkit-scrollbar-track{background:var(--void)}
::-webkit-scrollbar-thumb{background:#2A1C40; border-radius:20px; border:3px solid var(--void)}
::-webkit-scrollbar-thumb:hover{background:#3E2A5E}

/* ---------- primitives ---------- */
.container{width:100%; max-width:var(--max); margin-inline:auto; padding-inline:var(--pad)}
.section{position:relative; padding-block:var(--sec); z-index:var(--z-content)}
.section--tight{padding-block:clamp(64px,8vh,120px)}

.eyebrow{
  display:inline-flex; align-items:center; gap:.7em;
  font-family:var(--f-mono); font-size:clamp(10px,.72vw,11.5px); font-weight:500;
  letter-spacing:.24em; text-transform:uppercase; color:var(--dim);
}
.eyebrow::before{content:''; width:26px; height:1px; background:linear-gradient(90deg,transparent,var(--magenta))}
.eyebrow--plain::before{display:none}

h1,h2,h3,h4{font-family:var(--f-dis); font-weight:800; line-height:.92; letter-spacing:-.038em; margin:0; text-wrap:balance}
.h1{font-size:var(--h1); font-weight:800; line-height:.9; letter-spacing:-.045em}
.h2{font-size:var(--h2); line-height:.93; letter-spacing:-.042em}
.h3{font-size:var(--h3); line-height:1.02; letter-spacing:-.03em; font-weight:700}
.lead{font-size:clamp(1.02rem,1.34vw,1.4rem); color:var(--muted); line-height:1.55; font-weight:300; max-width:62ch; text-wrap:pretty}
p{margin:0 0 1em}
.muted{color:var(--muted)} .dim{color:var(--dim)}
.g-text{background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent}
.outline-text{color:transparent; -webkit-text-stroke:1.2px rgba(243,239,252,.42)}

.rule{height:1px; background:linear-gradient(90deg,transparent,var(--line-2) 18%,var(--line-2) 82%,transparent); border:0; margin:0}

/* ---------- buttons ---------- */
.btn{
  --bg:transparent; --fg:var(--txt); --bd:var(--line-2);
  position:relative; display:inline-flex; align-items:center; justify-content:center; gap:.7em;
  padding:1.05em 1.9em; border-radius:100px; border:1px solid var(--bd);
  background:var(--bg); color:var(--fg); cursor:pointer;
  font-family:var(--f-dis); font-weight:600; font-size:.94rem; letter-spacing:.01em;
  text-transform:none; white-space:nowrap; overflow:hidden; isolation:isolate;
  transition:color .4s var(--e-out), border-color .4s var(--e-out), transform .5s var(--e-out), box-shadow .5s var(--e-out);
  will-change:transform;
}
.btn__label{position:relative; z-index:2; display:inline-flex; align-items:center; gap:.6em}
.btn::after{
  content:''; position:absolute; inset:0; z-index:1; background:var(--grad);
  transform:translateY(101%); transition:transform .55s var(--e-out);
}
.btn:hover::after{transform:translateY(0)}
.btn:hover{color:#fff; border-color:transparent; box-shadow:0 18px 50px -18px rgba(224,27,116,.65)}
.btn--primary{background:var(--grad); color:#fff; border-color:transparent; box-shadow:0 14px 44px -20px rgba(224,27,116,.9)}
.btn--primary::after{background:linear-gradient(100deg,#FF3D8F,#E01B74 40%,#7B2FD4 100%)}
.btn--ghost{background:rgba(255,255,255,.02); backdrop-filter:blur(10px)}
.btn--sm{padding:.78em 1.35em; font-size:.85rem}
.btn__arrow{transition:transform .5s var(--e-out)}
.btn:hover .btn__arrow{transform:translateX(4px)}

/* ---------- reveal ---------- */
[data-reveal]{opacity:0; transform:translateY(26px); transition:opacity .9s var(--e-out), transform .9s var(--e-out)}
[data-reveal].in{opacity:1; transform:none}
[data-reveal][data-d="1"]{transition-delay:.08s}
[data-reveal][data-d="2"]{transition-delay:.16s}
[data-reveal][data-d="3"]{transition-delay:.24s}
[data-reveal][data-d="4"]{transition-delay:.32s}
[data-reveal][data-d="5"]{transition-delay:.4s}
.split-line{display:block; overflow:hidden; padding-top:.14em; margin-top:-.14em}
.split-line > span{display:block; transform:translateY(112%); transition:transform 1.05s var(--e-out)}
.in .split-line > span, .split-line.in > span{transform:none}
.split-line:nth-child(2) > span{transition-delay:.07s}
.split-line:nth-child(3) > span{transition-delay:.14s}
.split-line:nth-child(4) > span{transition-delay:.21s}

/* ---------- ambient ---------- */
.grain{
  position:fixed; inset:0; z-index:2; pointer-events:none; opacity:.42; 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='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
}
.vignette{position:fixed; inset:0; z-index:0; pointer-events:none;
  background:radial-gradient(120% 90% at 50% 0%,transparent 35%,rgba(5,3,8,.55) 78%,rgba(5,3,8,.9) 100%)}
.glow{position:absolute; border-radius:50%; filter:blur(120px); pointer-events:none; z-index:0; opacity:.5}

/* ============================================================
   LOADER
   ============================================================ */
#loader{
  position:fixed; inset:0; z-index:var(--z-loader); background:var(--void);
  display:grid; place-items:center; transition:opacity .7s var(--e-out), visibility .7s;
}
#loader.done{opacity:0; visibility:hidden; pointer-events:none}
.ld{display:grid; place-items:center; gap:22px; text-align:center}
.ld__mark{width:64px; height:64px; opacity:.9; animation:ldpulse 2.2s var(--e-io) infinite}
@keyframes ldpulse{0%,100%{transform:scale(1); opacity:.85} 50%{transform:scale(1.07); opacity:1}}
.ld__word{font-family:var(--f-dis); font-weight:900; font-size:clamp(2.6rem,9vw,5.4rem); letter-spacing:-.05em; line-height:.9}
.ld__word span{display:inline-block; opacity:0; transform:translateY(.35em); animation:ldin .6s var(--e-out) forwards}
.ld__num{font-family:var(--f-mono); font-size:11px; letter-spacing:.3em; color:var(--dim)}
.ld__bar{width:min(320px,54vw); height:1px; background:rgba(168,128,255,.16); position:relative; overflow:hidden}
.ld__bar i{position:absolute; inset:0 auto 0 0; width:0%; background:var(--grad); transition:width .18s linear}
@keyframes ldin{to{opacity:1; transform:none}}

/* ============================================================
   CURSOR
   ============================================================ */
.cursor{position:fixed; top:0; left:0; z-index:var(--z-cursor); pointer-events:none; mix-blend-mode:difference;
  width:9px; height:9px; border-radius:50%; background:#fff; transform:translate(-50%,-50%); opacity:0;
  transition:opacity .3s, width .35s var(--e-out), height .35s var(--e-out)}
.cursor-ring{position:fixed; top:0; left:0; z-index:var(--z-cursor); pointer-events:none;
  width:38px; height:38px; border-radius:50%; border:1px solid rgba(200,170,255,.5); transform:translate(-50%,-50%);
  opacity:0; transition:opacity .3s, width .45s var(--e-out), height .45s var(--e-out), border-color .4s, background .4s}
.cursor-ring__txt{position:absolute; inset:0; display:grid; place-items:center; font-family:var(--f-mono); font-size:9px;
  letter-spacing:.16em; text-transform:uppercase; color:#fff; opacity:0; transition:opacity .3s}
body.cursor-on .cursor,body.cursor-on .cursor-ring{opacity:1}
body.cursor-hover .cursor{width:0; height:0}
body.cursor-hover .cursor-ring{width:74px; height:74px; background:rgba(224,27,116,.16); border-color:rgba(255,61,143,.75)}
body.cursor-hover .cursor-ring__txt{opacity:1}
@media (hover:none),(pointer:coarse){.cursor,.cursor-ring{display:none}}

/* scroll progress */
.progress{position:fixed; top:0; left:0; height:2px; width:100%; z-index:var(--z-header); pointer-events:none;
  transform-origin:0 50%; transform:scaleX(0); background:var(--grad)}

/* ============================================================
   HEADER
   ============================================================ */
.header{position:fixed; top:0; left:0; right:0; z-index:var(--z-header); transition:transform .5s var(--e-out)}
.header__in{
  display:flex; align-items:center; justify-content:space-between; gap:24px;
  height:clamp(68px,7vh,88px); padding-inline:var(--pad); max-width:var(--max); margin-inline:auto;
  position:relative;
}
.header::before{content:''; position:absolute; inset:0; backdrop-filter:blur(18px) saturate(1.4);
  background:rgba(8,5,15,.62); border-bottom:1px solid var(--line);
  opacity:0; transition:opacity .5s var(--e-out); pointer-events:none}
.header.scrolled::before{opacity:1}
.header.hidden{transform:translateY(-102%)}

.brand{display:inline-flex; align-items:center; gap:11px; position:relative; z-index:2}
.brand svg{width:32px; height:32px; flex:none}
.brand__word{font-family:var(--f-dis); font-weight:900; font-size:1.16rem; letter-spacing:-.045em; line-height:1}
.brand__sub{font-family:var(--f-mono); font-size:8.5px; letter-spacing:.34em; color:var(--dim); text-transform:uppercase; margin-top:2px}

.nav{display:flex; align-items:center; gap:2px; position:relative; z-index:2}
.nav a{position:relative; padding:.55em .9em; font-size:.875rem; font-weight:500; color:var(--muted); transition:color .35s}
.nav a::after{content:''; position:absolute; left:.9em; right:.9em; bottom:.34em; height:1px; background:var(--grad);
  transform:scaleX(0); transform-origin:0 50%; transition:transform .45s var(--e-out)}
.nav a:hover{color:var(--txt)} .nav a:hover::after{transform:scaleX(1)}
.header__cta{display:flex; align-items:center; gap:10px; position:relative; z-index:2}
.burger{display:none; width:44px; height:44px; border:1px solid var(--line-2); border-radius:50%; background:transparent;
  cursor:pointer; place-items:center; position:relative; z-index:2}
.burger i{display:block; width:16px; height:1.5px; background:var(--txt); border-radius:2px; transition:transform .45s var(--e-out), opacity .3s}
.burger i+i{margin-top:4.5px}
body.menu-open .burger i:first-child{transform:translateY(3px) rotate(45deg)}
body.menu-open .burger i:last-child{transform:translateY(-3px) rotate(-45deg)}
@media (max-width:1120px){.nav{display:none} .header__cta .btn{display:none} .burger{display:grid}}

/* mobile menu */
.menu{position:fixed; inset:0; z-index:var(--z-menu); background:radial-gradient(70% 50% at 80% 10%,rgba(124,47,212,.22),transparent 65%),radial-gradient(60% 45% at 10% 90%,rgba(224,27,116,.18),transparent 65%),var(--ink); display:flex; flex-direction:column;
  padding:calc(clamp(68px,7vh,88px) + 24px) var(--pad) var(--pad);
  clip-path:inset(0 0 100% 0); transition:clip-path .8s var(--e-out); visibility:hidden}
body.menu-open .menu{clip-path:inset(0 0 0 0); visibility:visible}
.menu__list{list-style:none; margin:0; padding:0; flex:1; display:flex; flex-direction:column; justify-content:center; gap:.14em}
.menu__list a{display:block; font-family:var(--f-dis); font-weight:800; font-size:clamp(2rem,9vw,3.4rem); letter-spacing:-.045em;
  line-height:1.2; opacity:0; transform:translateY(24px); transition:opacity .6s var(--e-out), transform .6s var(--e-out), color .3s}
body.menu-open .menu__list a{opacity:1; transform:none}
.menu__list li:nth-child(1) a{transition-delay:.14s} .menu__list li:nth-child(2) a{transition-delay:.19s}
.menu__list li:nth-child(3) a{transition-delay:.24s} .menu__list li:nth-child(4) a{transition-delay:.29s}
.menu__list li:nth-child(5) a{transition-delay:.34s} .menu__list li:nth-child(6) a{transition-delay:.39s}
.menu__list li:nth-child(7) a{transition-delay:.44s} .menu__list li:nth-child(8) a{transition-delay:.49s}
.menu__list a:hover{color:var(--pink)}
.menu__list em{font-family:var(--f-mono); font-style:normal; font-size:11px; color:var(--dim); margin-right:.8em; letter-spacing:.1em}
.menu__foot{display:flex; flex-wrap:wrap; gap:14px; align-items:center; justify-content:space-between; padding-top:24px; border-top:1px solid var(--line)}

/* ============================================================
   HERO
   ============================================================ */
.hero{position:relative; min-height:100svh; display:flex; align-items:flex-end; overflow:hidden; isolation:isolate}
#gl{position:absolute; inset:0; width:100%; height:100%; z-index:var(--z-bg); display:block}
.hero__scrim{position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(180deg,rgba(5,3,8,.72) 0%,rgba(5,3,8,.1) 26%,rgba(5,3,8,.18) 52%,rgba(5,3,8,.88) 92%,var(--void) 100%)}
.hero__in{position:relative; z-index:3; width:100%; padding-bottom:clamp(52px,7vh,86px); padding-top:clamp(104px,14vh,150px)}
.hero__grid{display:grid; gap:clamp(28px,3.4vw,52px); grid-template-columns:minmax(0,1.7fr) minmax(0,.62fr); align-items:end}
@media (max-width:1000px){.hero__grid{grid-template-columns:minmax(0,1fr)}}
.hero h1{font-size:clamp(1.7rem,4.5vw,5.2rem); font-weight:800; line-height:.88; letter-spacing:-.05em; margin:.34em 0 0}
@media (min-width:701px){.hero h1 .split-line > span{white-space:nowrap}}
.hero__stats{min-width:0}
.hero h1 .lite{font-weight:300; color:var(--muted); letter-spacing:-.03em}
.hero__sub{margin-top:1.5em; max-width:46ch}
.hero__actions{display:flex; flex-wrap:wrap; gap:12px; margin-top:2em}
.hero__side{display:flex; flex-direction:column; gap:20px; padding-bottom:.4em}
.hero__stats{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--r-m); overflow:hidden}
.hero__stat{background:rgba(12,7,22,.62); backdrop-filter:blur(14px); padding:18px 18px 16px}
.hero__stat b{display:block; font-family:var(--f-dis); font-weight:800; font-size:clamp(1.5rem,2.4vw,2.1rem); letter-spacing:-.04em; line-height:1}
.hero__stat span{display:block; margin-top:6px; font-family:var(--f-mono); font-size:9.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--dim)}
.hero__note{font-family:var(--f-mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--dim); line-height:1.8}
.hero__scroll{position:absolute; left:var(--pad); bottom:18px; z-index:3; display:flex; align-items:center; gap:10px;
  font-family:var(--f-mono); font-size:9.5px; letter-spacing:.24em; text-transform:uppercase; color:var(--dim)}
.hero__scroll i{display:block; width:1px; height:34px; background:linear-gradient(180deg,var(--magenta),transparent); animation:scrolln 2.4s var(--e-io) infinite}
@keyframes scrolln{0%{transform:scaleY(0); transform-origin:0 0} 45%{transform:scaleY(1); transform-origin:0 0} 55%{transform:scaleY(1); transform-origin:0 100%} 100%{transform:scaleY(0); transform-origin:0 100%}}
@media (max-width:700px){.hero__scroll{display:none}}

/* 3D satellite labels */
.sat-layer{position:absolute; inset:0; z-index:2; pointer-events:none}
.sat{position:absolute; transform:translate(-50%,-50%); display:flex; align-items:center; gap:7px; white-space:nowrap;
  font-family:var(--f-mono); font-size:9.5px; letter-spacing:.2em; text-transform:uppercase; color:rgba(220,208,250,.72);
  padding:4px 9px; border:1px solid rgba(168,128,255,.2); border-radius:100px; background:rgba(10,6,20,.42);
  backdrop-filter:blur(6px); transition:opacity .5s, color .4s, border-color .4s}
.sat i{width:4px; height:4px; border-radius:50%; background:var(--pink); box-shadow:0 0 8px var(--pink)}
@media (max-width:760px){.sat{font-size:8px; letter-spacing:.14em; padding:3px 7px}}
.webgl-fallback{position:absolute; inset:0; z-index:0;
  background:radial-gradient(60% 50% at 50% 45%,rgba(124,47,212,.32),transparent 70%),radial-gradient(45% 40% at 68% 62%,rgba(224,27,116,.26),transparent 70%),var(--void)}

/* ============================================================
   MANIFESTO
   ============================================================ */
.manifesto{position:relative}
.manifesto__head{font-family:var(--f-dis); font-weight:800; font-size:clamp(2.3rem,6.6vw,6.6rem); line-height:.92; letter-spacing:-.048em}
.manifesto__head .l2{color:var(--muted)}
.manifesto__body{display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(28px,5vw,80px); margin-top:clamp(44px,7vw,96px); align-items:start}
@media (max-width:900px){.manifesto__body{grid-template-columns:1fr; gap:32px}}
.fade-words{font-size:clamp(1.15rem,1.85vw,1.75rem); line-height:1.44; font-weight:300; letter-spacing:-.02em; color:var(--txt)}
.fade-words w{display:inline-block; opacity:.13; transition:opacity .5s linear; will-change:opacity}
.fade-words w.on{opacity:1}
.manifesto__aside{border-left:1px solid var(--line); padding-left:clamp(18px,2.4vw,34px); display:grid; gap:22px; align-content:start}
.manifesto__aside p{color:var(--muted); font-size:.98rem; max-width:40ch}
.kicker{font-family:var(--f-dis); font-weight:800; font-size:clamp(1.1rem,1.6vw,1.5rem); letter-spacing:-.03em; line-height:1.1}

/* ============================================================
   ECOSSISTEMA
   ============================================================ */
.eco__top{display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:clamp(38px,5vw,72px)}
.eco__wrap{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.62fr); gap:clamp(24px,3.4vw,56px); align-items:start}
@media (max-width:1000px){.eco__wrap{grid-template-columns:1fr}}
.eco__list{border-top:1px solid var(--line)}
.eco__item{position:relative; width:100%; text-align:left; background:transparent; border:0; border-bottom:1px solid var(--line);
  display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:clamp(14px,2vw,28px);
  padding:clamp(18px,2.2vw,26px) 6px; cursor:pointer; transition:padding .5s var(--e-out)}
.eco__item::before{content:''; position:absolute; left:0; right:0; top:0; bottom:0; z-index:-1;
  background:var(--grad-soft); opacity:0; transition:opacity .5s var(--e-out)}
.eco__item.active::before,.eco__item:hover::before{opacity:1}
.eco__item.active{padding-inline:clamp(10px,1.6vw,22px) }
.eco__num{font-family:var(--f-mono); font-size:11px; color:var(--dim); letter-spacing:.1em; transition:color .4s}
.eco__item.active .eco__num{color:var(--pink)}
.eco__name{font-family:var(--f-dis); font-weight:700; font-size:clamp(1.4rem,2.9vw,2.5rem); letter-spacing:-.04em; line-height:1;
  color:var(--muted); transition:color .45s var(--e-out), transform .55s var(--e-out); transform-origin:0 50%}
.eco__item.active .eco__name,.eco__item:hover .eco__name{color:var(--txt)}
.eco__tag{font-family:var(--f-mono); font-size:9.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--dim); text-align:right; max-width:26ch}
@media (max-width:640px){.eco__tag{display:none}}
.eco__panelwrap{position:sticky; top:clamp(92px,12vh,120px)}
.eco__panel{position:relative; border:1px solid var(--line); border-radius:var(--r-l); overflow:hidden; background:linear-gradient(160deg,var(--panel-2),var(--panel) 60%); min-height:440px}
.eco__panelglow{position:absolute; width:70%; aspect-ratio:1; border-radius:50%; filter:blur(90px); background:radial-gradient(circle,rgba(224,27,116,.5),transparent 70%); top:-18%; right:-18%; opacity:.75; transition:background .8s}
.eco__panelin{position:relative; padding:clamp(24px,2.6vw,38px); display:grid; gap:20px; align-content:start; min-height:440px}
.eco__panelnum{font-family:var(--f-dis); font-weight:900; font-size:clamp(3.4rem,7vw,6rem); line-height:.8; letter-spacing:-.06em;
  color:transparent; -webkit-text-stroke:1.3px rgba(243,239,252,.26)}
.eco__paneltitle{font-family:var(--f-dis); font-weight:800; font-size:clamp(1.5rem,2.3vw,2.1rem); letter-spacing:-.038em; line-height:1}
.eco__paneldesc{color:var(--muted); font-size:.98rem; line-height:1.6; max-width:44ch}
.eco__chips{display:flex; flex-wrap:wrap; gap:7px}
.eco__chips span{font-family:var(--f-mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted);
  border:1px solid var(--line-2); border-radius:100px; padding:.5em .85em; background:rgba(255,255,255,.02)}
.eco__panel .fx{opacity:0; transform:translateY(14px); animation:fxin .6s var(--e-out) forwards}
.eco__panel .fx:nth-child(2){animation-delay:.05s} .eco__panel .fx:nth-child(3){animation-delay:.1s}
.eco__panel .fx:nth-child(4){animation-delay:.15s} .eco__panel .fx:nth-child(5){animation-delay:.2s}
@keyframes fxin{to{opacity:1; transform:none}}

/* ============================================================
   FLOW / FUNIL
   ============================================================ */
.flow{position:relative; background:linear-gradient(180deg,var(--void),#08050F 40%,var(--void))}
.flow__grid{display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); gap:clamp(30px,4vw,72px); align-items:center}
@media (max-width:900px){.flow__grid{grid-template-columns:1fr}}
.pipe{position:relative; display:grid; gap:0; border:1px solid var(--line); border-radius:var(--r-l); overflow:hidden; background:rgba(12,7,22,.5)}
.pipe__row{position:relative; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:16px;
  padding:clamp(13px,1.5vw,17px) clamp(16px,2vw,26px); border-bottom:1px solid var(--line); overflow:hidden}
.pipe__row:last-child{border-bottom:0}
.pipe__row::before{content:''; position:absolute; inset:0; background:linear-gradient(90deg,rgba(168,85,247,.18),rgba(224,27,116,.1) 60%,transparent);
  transform:translateX(-101%); transition:transform .7s var(--e-out)}
.pipe__row.lit::before{transform:translateX(0)}
.pipe__i{position:relative; font-family:var(--f-mono); font-size:10px; color:var(--dim); letter-spacing:.1em}
.pipe__n{position:relative; font-family:var(--f-dis); font-weight:700; font-size:clamp(1rem,1.5vw,1.28rem); letter-spacing:-.02em; color:var(--muted); transition:color .5s}
.pipe__row.lit .pipe__n{color:var(--txt)}
.pipe__d{position:relative; font-family:var(--f-mono); font-size:9.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--dim); text-align:right}
@media (max-width:560px){.pipe__d{display:none}}
.pipe__rail{position:absolute; left:0; top:0; bottom:0; width:2px; background:var(--grad); transform-origin:50% 0; transform:scaleY(0); transition:transform .9s var(--e-out)}
.flow__last{margin-top:22px; display:flex; align-items:center; gap:12px; font-family:var(--f-mono); font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--dim)}

/* ============================================================
   METRICS
   ============================================================ */
.metrics__grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line);
  border-radius:var(--r-l); overflow:hidden; margin-top:clamp(38px,5vw,68px)}
@media (max-width:900px){.metrics__grid{grid-template-columns:repeat(2,1fr)}}
.metric{background:var(--ink); padding:clamp(26px,3vw,44px) clamp(20px,2vw,32px); position:relative; overflow:hidden; transition:background .5s}
.metric:hover{background:var(--panel-2)}
.metric::after{content:''; position:absolute; left:0; bottom:0; height:2px; width:100%; background:var(--grad); transform:scaleX(0); transform-origin:0 50%; transition:transform .8s var(--e-out)}
.metric.in::after{transform:scaleX(1)}
.metric b{display:block; font-family:var(--f-dis); font-weight:800; font-size:clamp(2.6rem,5.4vw,4.6rem); line-height:.88; letter-spacing:-.055em;
  background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; font-variant-numeric:tabular-nums}
.metric span{display:block; margin-top:14px; font-family:var(--f-mono); font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); line-height:1.7}
.metric em{display:block; margin-top:8px; font-style:normal; font-size:.86rem; color:var(--dim); line-height:1.5}

/* ============================================================
   CASES
   ============================================================ */
.filters{display:flex; flex-wrap:wrap; gap:8px; margin:clamp(28px,3.4vw,46px) 0}
.filter{font-family:var(--f-mono); font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--dim);
  border:1px solid var(--line); background:transparent; border-radius:100px; padding:.72em 1.15em; cursor:pointer;
  transition:color .35s, border-color .35s, background .35s}
.filter:hover{color:var(--txt); border-color:var(--line-2)}
.filter.on{color:#fff; border-color:transparent; background:var(--grad)}
.cases__grid{display:grid; grid-template-columns:repeat(6,1fr); gap:clamp(12px,1.4vw,20px)}
.case{position:relative; grid-column:span 3; border:1px solid var(--line); border-radius:var(--r-l); overflow:hidden;
  background:linear-gradient(165deg,var(--panel-2),var(--panel)); min-height:clamp(300px,34vw,440px); display:flex; flex-direction:column;
  justify-content:flex-end; padding:clamp(20px,2.4vw,34px); cursor:pointer; isolation:isolate;
  transition:transform .7s var(--e-out), border-color .5s, opacity .5s}
.case:nth-child(4n+1),.case:nth-child(4n+4){grid-column:span 3}
.case--wide{grid-column:span 6 !important}
@media (max-width:820px){.case,.case--wide{grid-column:span 6 !important; min-height:260px}}
.case:hover{transform:translateY(-6px); border-color:var(--line-2)}
.case::before{content:''; position:absolute; inset:0; z-index:-1; opacity:.6;
  background:radial-gradient(90% 80% at 20% 10%,rgba(124,47,212,.4),transparent 60%),radial-gradient(70% 70% at 90% 100%,rgba(224,27,116,.3),transparent 65%);
  transition:opacity .6s}
.case:hover::before{opacity:1}
.case__grid{position:absolute; inset:0; z-index:-1; opacity:.5;
  background-image:linear-gradient(rgba(168,128,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(168,128,255,.07) 1px,transparent 1px);
  background-size:44px 44px; mask-image:radial-gradient(80% 70% at 50% 30%,#000,transparent 75%)}
.case__seg{font-family:var(--f-mono); font-size:9.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--pink)}
.case__title{font-family:var(--f-dis); font-weight:800; font-size:clamp(1.35rem,2.3vw,2.15rem); letter-spacing:-.04em; line-height:1.02; margin:.5em 0 .35em}
.case__meta{color:var(--muted); font-size:.92rem; max-width:48ch}
.case__reveal{max-height:0; overflow:hidden; transition:max-height .7s var(--e-out), opacity .5s; opacity:0}
.case:hover .case__reveal{max-height:220px; opacity:1}
.case__reveal dl{display:grid; grid-template-columns:auto 1fr; gap:6px 16px; margin:18px 0 0; font-size:.86rem}
.case__reveal dt{font-family:var(--f-mono); font-size:9.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--dim); padding-top:3px}
.case__reveal dd{margin:0; color:var(--muted)}
.case__go{position:absolute; top:clamp(18px,2vw,26px); right:clamp(18px,2vw,26px); width:42px; height:42px; border-radius:50%;
  border:1px solid var(--line-2); display:grid; place-items:center; transition:background .45s, border-color .45s, transform .5s var(--e-out)}
.case:hover .case__go{background:var(--grad); border-color:transparent; transform:rotate(45deg)}
.ph{font-family:var(--f-mono); font-size:9.5px; letter-spacing:.12em; color:#FFB84D; border:1px dashed rgba(255,184,77,.4);
  border-radius:5px; padding:.25em .55em; display:inline-block; background:rgba(255,184,77,.06)}

/* ============================================================
   MARQUEE / CLIENTES
   ============================================================ */
.marquee{position:relative; overflow:hidden; padding-block:18px;
  mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.marquee__track{display:flex; gap:clamp(14px,1.6vw,26px); width:max-content; animation:mq 46s linear infinite}
.marquee--rev .marquee__track{animation-direction:reverse; animation-duration:56s}
.marquee:hover .marquee__track{animation-play-state:paused}
@keyframes mq{to{transform:translateX(-50%)}}
.logo-slot{flex:none; width:clamp(150px,15vw,208px); height:clamp(72px,7vw,96px); border:1px solid var(--line); border-radius:var(--r-m);
  display:grid; place-items:center; background:rgba(255,255,255,.015); transition:border-color .4s, background .4s}
.logo-slot:hover{border-color:var(--line-2); background:rgba(255,255,255,.04)}
.logo-slot span{font-family:var(--f-mono); font-size:9.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--dim); text-align:center; padding:0 10px; line-height:1.6}

/* ============================================================
   SEGMENTOS
   ============================================================ */
@media (max-width:900px){.seg__head{grid-template-columns:1fr !important}}
.seg__grid{display:flex; flex-wrap:wrap; gap:10px; margin-top:clamp(32px,4vw,56px)}
.seg{position:relative; overflow:hidden; border:1px solid var(--line); border-radius:100px; padding:.9em 1.5em;
  font-family:var(--f-dis); font-weight:600; font-size:clamp(.95rem,1.5vw,1.32rem); letter-spacing:-.02em; color:var(--muted);
  transition:color .45s var(--e-out), border-color .45s, transform .5s var(--e-out); isolation:isolate; cursor:default}
.seg::after{content:''; position:absolute; inset:0; z-index:-1; background:var(--grad); transform:translateY(101%); transition:transform .5s var(--e-out)}
.seg:hover{color:#fff; border-color:transparent; transform:translateY(-3px)}
.seg:hover::after{transform:none}

/* ============================================================
   PROCESSO
   ============================================================ */
.proc{position:relative}
.proc__track{position:relative; margin-top:clamp(40px,5vw,72px); border-top:1px solid var(--line)}
.proc__line{position:absolute; top:-1px; left:0; height:2px; width:100%; background:var(--grad); transform-origin:0 50%; transform:scaleX(0); transition:transform 1.4s var(--e-out)}
.proc__steps{display:grid; grid-template-columns:repeat(7,1fr); gap:1px; background:var(--line)}
@media (max-width:1080px){.proc__steps{grid-template-columns:repeat(3,1fr)}}
@media (max-width:620px){.proc__steps{grid-template-columns:repeat(2,1fr)}}
.proc__step{background:var(--void); padding:clamp(20px,2.2vw,30px) clamp(14px,1.4vw,20px); min-height:190px; display:flex; flex-direction:column; gap:12px;
  transition:background .5s}
.proc__step:hover{background:var(--panel)}
.proc__step b{font-family:var(--f-mono); font-size:11px; letter-spacing:.16em; color:var(--pink)}
.proc__step h4{font-family:var(--f-dis); font-weight:700; font-size:clamp(1rem,1.35vw,1.24rem); letter-spacing:-.03em; line-height:1.05}
.proc__step p{margin:0; font-size:.85rem; color:var(--dim); line-height:1.55}

/* ============================================================
   IA
   ============================================================ */
.ai{position:relative; overflow:hidden}
.ai__grid{display:grid; grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr); gap:clamp(30px,4.4vw,80px); align-items:center}
@media (max-width:940px){.ai__grid{grid-template-columns:1fr}}
.ai h2{font-size:clamp(2rem,4.8vw,4.4rem)}
.ai__caps{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--r-m); overflow:hidden; margin-top:clamp(26px,3vw,40px)}
.ai__cap{background:var(--ink); padding:16px 18px; display:flex; align-items:center; gap:10px; font-size:.9rem; color:var(--muted); transition:background .4s, color .4s}
.ai__cap:hover{background:var(--panel-2); color:var(--txt)}
.ai__cap i{width:5px; height:5px; border-radius:50%; background:var(--grad); flex:none}
.ai__viz{position:relative; aspect-ratio:1/1.02; border:1px solid var(--line); border-radius:var(--r-xl); overflow:hidden;
  background:radial-gradient(70% 60% at 50% 30%,rgba(124,47,212,.34),transparent 70%),var(--panel)}
.ai__viz img{width:100%; height:100%; object-fit:cover; opacity:.96; filter:contrast(1.06) saturate(1.12)}
.ai__vizover{position:absolute; inset:0; background:linear-gradient(180deg,transparent 40%,rgba(9,5,15,.9)),radial-gradient(60% 50% at 50% 40%,rgba(224,27,116,.28),transparent 70%)}
.ai__vizcap{position:absolute; left:clamp(16px,2vw,26px); right:clamp(16px,2vw,26px); bottom:clamp(16px,2vw,26px)}
.term-mini{font-family:var(--f-mono); font-size:10.5px; line-height:1.9; color:var(--muted)}
.term-mini b{color:var(--pink); font-weight:500}

/* ============================================================
   LAB
   ============================================================ */
.lab{background:linear-gradient(180deg,var(--void),#0A0614 50%,var(--void))}
.lab__grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line);
  border-radius:var(--r-l); overflow:hidden; margin-top:clamp(38px,4.6vw,64px)}
@media (max-width:1000px){.lab__grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.lab__grid{grid-template-columns:1fr}}
.lab__cell{background:var(--ink); padding:clamp(22px,2.4vw,32px); min-height:180px; display:flex; flex-direction:column; gap:10px;
  position:relative; overflow:hidden; transition:background .5s}
.lab__cell::before{content:''; position:absolute; inset:0; background:var(--grad-soft); opacity:0; transition:opacity .5s}
.lab__cell:hover::before{opacity:1}
.lab__cell b{position:relative; font-family:var(--f-mono); font-size:10px; letter-spacing:.18em; color:var(--dim)}
.lab__cell h4{position:relative; font-family:var(--f-dis); font-weight:700; font-size:1.16rem; letter-spacing:-.03em}
.lab__cell p{position:relative; margin:0; font-size:.86rem; color:var(--dim); line-height:1.55}

/* ============================================================
   CEO + EQUIPE
   ============================================================ */
.ceo__grid{display:grid; grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr); gap:clamp(28px,4vw,72px); align-items:center}
@media (max-width:900px){.ceo__grid{grid-template-columns:1fr}}
.ceo__ph{position:relative; border-radius:var(--r-xl); overflow:hidden; border:1px solid var(--line); background:var(--panel)}
.ceo__ph img{width:100%; aspect-ratio:3/3.8; object-fit:cover; object-position:50% 22%; filter:grayscale(.28) contrast(1.05)}
.ceo__ph::after{content:''; position:absolute; inset:0; background:linear-gradient(180deg,transparent 45%,rgba(9,5,15,.85)),linear-gradient(120deg,rgba(124,47,212,.22),rgba(224,27,116,.16)); mix-blend-mode:multiply}
.ceo__badge{position:absolute; left:18px; bottom:18px; z-index:2; display:flex; align-items:center; gap:9px;
  font-family:var(--f-mono); font-size:9.5px; letter-spacing:.18em; text-transform:uppercase; color:#fff;
  background:rgba(10,6,20,.6); backdrop-filter:blur(10px); border:1px solid var(--line-2); border-radius:100px; padding:.6em 1em}
.ceo__quote{font-family:var(--f-dis); font-weight:700; font-size:clamp(1.35rem,2.5vw,2.25rem); line-height:1.14; letter-spacing:-.035em; margin:0 0 .8em}
.ceo__roles{display:flex; flex-wrap:wrap; gap:7px; margin-top:22px}
.ceo__roles span{font-family:var(--f-mono); font-size:9.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted);
  border:1px solid var(--line-2); border-radius:100px; padding:.5em .85em}

.team__grid{display:grid; grid-template-columns:repeat(5,1fr); gap:clamp(10px,1.2vw,18px); margin-top:clamp(38px,4.6vw,64px)}
@media (max-width:1100px){.team__grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:640px){.team__grid{grid-template-columns:repeat(2,1fr)}}
.member{position:relative; border:1px solid var(--line); border-radius:var(--r-m); overflow:hidden; background:var(--panel);
  transition:transform .6s var(--e-out), border-color .5s}
.member:hover{transform:translateY(-5px); border-color:var(--line-2)}
.member__ph{position:relative; aspect-ratio:3/3.7; overflow:hidden; background:
  radial-gradient(70% 60% at 50% 20%,rgba(124,47,212,.34),transparent 70%),linear-gradient(180deg,var(--panel-2),var(--panel))}
.member__ph img{width:100%; height:100%; object-fit:cover; filter:grayscale(.5) contrast(1.06); transition:transform 1.1s var(--e-out), filter .6s}
.member:hover .member__ph img{transform:scale(1.055); filter:grayscale(0) contrast(1.02)}
.member__empty{position:absolute; inset:0; display:grid; place-items:center; gap:8px; text-align:center; padding:16px}
.member__initial{font-family:var(--f-dis); font-weight:900; font-size:clamp(2.4rem,4vw,3.4rem); letter-spacing:-.06em;
  color:transparent; -webkit-text-stroke:1.2px rgba(243,239,252,.3)}
.member__info{padding:14px 15px 16px; border-top:1px solid var(--line)}
.member__info b{display:block; font-family:var(--f-dis); font-weight:700; font-size:1.02rem; letter-spacing:-.028em; line-height:1.15}
.member__info span{display:block; margin-top:5px; font-family:var(--f-mono); font-size:9px; letter-spacing:.14em; text-transform:uppercase; color:var(--dim); line-height:1.7}

/* ============================================================
   DEPOIMENTOS
   ============================================================ */
.quotes__grid{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(12px,1.4vw,20px); margin-top:clamp(36px,4.4vw,60px)}
@media (max-width:900px){.quotes__grid{grid-template-columns:1fr}}
.quote{border:1px solid var(--line); border-radius:var(--r-l); padding:clamp(24px,2.6vw,34px); background:linear-gradient(165deg,var(--panel-2),var(--panel));
  display:flex; flex-direction:column; gap:18px; min-height:270px; transition:border-color .5s, transform .6s var(--e-out)}
.quote:hover{border-color:var(--line-2); transform:translateY(-4px)}
.quote__mark{font-family:var(--f-dis); font-weight:900; font-size:3rem; line-height:.6; background:var(--grad);
  -webkit-background-clip:text; background-clip:text; color:transparent}
.quote__body{flex:1; color:var(--muted); font-size:1rem; line-height:1.6}
.quote__who{display:flex; align-items:center; gap:12px; padding-top:16px; border-top:1px solid var(--line)}
.quote__av{width:38px; height:38px; border-radius:50%; background:var(--grad-soft); border:1px solid var(--line-2); flex:none}
.quote__who b{display:block; font-size:.92rem; font-weight:600}
.quote__who span{display:block; font-family:var(--f-mono); font-size:9px; letter-spacing:.14em; text-transform:uppercase; color:var(--dim); margin-top:3px}

/* ============================================================
   CTA + FORM
   ============================================================ */
.cta{position:relative; overflow:hidden; background:var(--ink); border-top:1px solid var(--line); border-bottom:1px solid var(--line)}
.cta__bg{position:absolute; inset:0; z-index:0;
  background:radial-gradient(60% 70% at 20% 0%,rgba(124,47,212,.34),transparent 62%),radial-gradient(55% 65% at 85% 100%,rgba(224,27,116,.3),transparent 62%)}
.cta__grid-lines{position:absolute; inset:0; z-index:0; opacity:.45;
  background-image:linear-gradient(rgba(168,128,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(168,128,255,.08) 1px,transparent 1px);
  background-size:60px 60px; mask-image:radial-gradient(70% 60% at 50% 50%,#000,transparent 80%)}
.cta__in{position:relative; z-index:2; text-align:center; display:grid; justify-items:center; gap:clamp(18px,2.2vw,30px)}
.cta h2{font-size:clamp(2.2rem,6.4vw,6.2rem)}
.cta__actions{display:flex; flex-wrap:wrap; gap:12px; justify-content:center}

.form{display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr); gap:clamp(28px,4vw,72px); align-items:start}
@media (max-width:940px){.form{grid-template-columns:1fr}}
.form__box{border:1px solid var(--line); border-radius:var(--r-l); background:linear-gradient(170deg,var(--panel-2),var(--panel)); padding:clamp(22px,2.8vw,40px)}
.field{display:grid; gap:8px; margin-bottom:18px}
.field label{font-family:var(--f-mono); font-size:9.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--dim)}
.field input,.field textarea,.field select{
  width:100%; background:rgba(255,255,255,.025); border:1px solid var(--line); border-radius:12px;
  padding:.95em 1.05em; font-size:.98rem; color:var(--txt); transition:border-color .35s, background .35s}
.field input::placeholder,.field textarea::placeholder{color:#544D6E}
.field input:focus,.field textarea:focus,.field select:focus{outline:0; border-color:rgba(224,27,116,.6); background:rgba(255,255,255,.045)}
.field textarea{resize:vertical; min-height:104px}
.field select{appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23A79FC2' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 1.05em center}
.field select option{background:#140D22}
.row2{display:grid; grid-template-columns:1fr 1fr; gap:14px}
@media (max-width:560px){.row2{grid-template-columns:1fr}}
.goals{display:flex; flex-wrap:wrap; gap:8px}
.goal{position:relative}
.goal input{position:absolute; opacity:0; width:0; height:0}
.goal span{display:inline-block; font-family:var(--f-mono); font-size:10px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--muted); border:1px solid var(--line); border-radius:100px; padding:.72em 1em; cursor:pointer; transition:all .35s}
.goal input:checked + span{color:#fff; border-color:transparent; background:var(--grad)}
.goal input:focus-visible + span{outline:2px solid var(--violet); outline-offset:2px}
.form__note{font-family:var(--f-mono); font-size:9.5px; letter-spacing:.1em; color:var(--dim); line-height:1.8; margin-top:14px}
.form__ok{display:none; text-align:center; padding:20px; border:1px solid rgba(120,255,190,.3); border-radius:14px; background:rgba(60,255,170,.06); color:#8DF5C6; font-size:.94rem}
.form.sent .form__ok{display:block} .form.sent form{display:none}
.form__aside{display:grid; gap:26px; align-content:start}
.form__item{display:grid; gap:6px; padding-bottom:20px; border-bottom:1px solid var(--line)}
.form__item b{font-family:var(--f-dis); font-weight:700; font-size:1.08rem; letter-spacing:-.03em}
.form__item span{color:var(--dim); font-size:.9rem}

/* ============================================================
   WHATSAPP DOCK
   ============================================================ */
.dock{position:fixed; right:clamp(14px,2vw,26px); bottom:clamp(14px,2vw,26px); z-index:var(--z-dock);
  display:flex; align-items:center; gap:0; border:1px solid var(--line-2); border-radius:100px; overflow:hidden;
  background:rgba(10,6,20,.72); backdrop-filter:blur(16px) saturate(1.4); box-shadow:0 20px 60px -24px rgba(0,0,0,.9);
  transform:translateY(140%); opacity:0; transition:transform .7s var(--e-out), opacity .5s, border-color .4s}
.dock.on{transform:none; opacity:1}
.dock__btn{display:flex; align-items:center; gap:9px; padding:.85em 1.25em; font-family:var(--f-dis); font-weight:600; font-size:.88rem; transition:background .4s}
.dock__btn:hover{background:rgba(255,255,255,.06)}
.dock__btn--wa{background:var(--grad); color:#fff}
.dock__btn--wa:hover{filter:brightness(1.1); background:var(--grad)}
.dock__btn svg{flex:none}
@media (max-width:560px){.dock__btn:not(.dock__btn--wa){display:none} .dock__btn{padding:.9em 1.15em}}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{position:relative; overflow:hidden; padding-top:clamp(60px,7vw,110px)}
.footer__top{display:grid; grid-template-columns:minmax(0,1.2fr) repeat(3,minmax(0,.6fr)); gap:clamp(24px,3vw,48px); padding-bottom:clamp(40px,5vw,72px)}
@media (max-width:900px){.footer__top{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.footer__top{grid-template-columns:1fr}}
.footer__claim{font-family:var(--f-dis); font-weight:800; font-size:clamp(1.5rem,2.6vw,2.3rem); line-height:1.02; letter-spacing:-.04em}
.footer__claim em{font-style:normal; color:var(--dim)}
.fcol h5{font-family:var(--f-mono); font-size:9.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--dim); margin:0 0 16px; font-weight:500}
.fcol ul{list-style:none; margin:0; padding:0; display:grid; gap:9px}
.fcol a{font-size:.92rem; color:var(--muted); transition:color .3s}
.fcol a:hover{color:var(--pink)}
.footer__word{position:relative; line-height:.76; text-align:center; padding-block:clamp(10px,2vw,26px);
  font-family:var(--f-dis); font-weight:900; font-size:clamp(4.2rem,20vw,17rem); letter-spacing:-.06em;
  background:linear-gradient(180deg,rgba(243,239,252,.16),rgba(243,239,252,.02)); -webkit-background-clip:text; background-clip:text; color:transparent;
  user-select:none}
.footer__bot{display:flex; flex-wrap:wrap; gap:14px; align-items:center; justify-content:space-between;
  padding-block:24px; border-top:1px solid var(--line); font-family:var(--f-mono); font-size:9.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--dim)}
.footer__bot a:hover{color:var(--muted)}

/* ============================================================
   EASTER EGG TERMINAL
   ============================================================ */
.term{position:fixed; inset:0; z-index:var(--z-loader); background:rgba(3,2,6,.86); backdrop-filter:blur(8px);
  display:grid; place-items:center; padding:var(--pad); opacity:0; visibility:hidden; transition:opacity .4s, visibility .4s}
.term.on{opacity:1; visibility:visible}
.term__box{width:min(620px,100%); border:1px solid rgba(120,255,190,.28); border-radius:14px; background:rgba(4,10,8,.94);
  box-shadow:0 0 80px -20px rgba(60,255,170,.35); overflow:hidden; transform:translateY(12px) scale(.98); transition:transform .5s var(--e-out)}
.term.on .term__box{transform:none}
.term__bar{display:flex; align-items:center; gap:7px; padding:11px 14px; border-bottom:1px solid rgba(120,255,190,.16)}
.term__bar i{width:9px; height:9px; border-radius:50%; background:#2C3A34}
.term__bar i:first-child{background:#FF5F57} .term__bar i:nth-child(2){background:#FEBC2E} .term__bar i:nth-child(3){background:#28C840}
.term__bar b{margin-left:8px; font-family:var(--f-mono); font-size:10px; letter-spacing:.16em; color:#5E7A6E; font-weight:400}
.term__body{padding:20px 18px 24px; font-family:var(--f-mono); font-size:12.5px; line-height:2; color:#7BF3B8; min-height:250px}
.term__body b{color:#E5FFF3; font-weight:500}
.term__close{margin:0 18px 18px; font-family:var(--f-mono); font-size:10px; letter-spacing:.16em; text-transform:uppercase;
  color:#5E7A6E; background:transparent; border:1px solid rgba(120,255,190,.2); border-radius:8px; padding:.6em 1em; cursor:pointer; transition:all .3s}
.term__close:hover{color:#7BF3B8; border-color:rgba(120,255,190,.5)}

/* ============================================================
   REDUCED MOTION
   ============================================================ */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important}
  [data-reveal]{opacity:1 !important; transform:none !important}
  .split-line > span{transform:none !important}
  .fade-words w{opacity:1 !important}
  .marquee__track{animation:none; transform:none}
  .cursor,.cursor-ring{display:none}
}

/* ============================================================
   BANDA DE MARCA (mockup do logo Jump)
   ============================================================ */
.brandband{position:relative; margin-block:clamp(20px,4vw,56px); overflow:hidden}
.brandband__in{position:relative; border-radius:var(--r-xl); overflow:hidden; border:1px solid var(--line);
  aspect-ratio:1500/860; max-height:min(62vh,640px)}
@media (max-width:760px){.brandband__in{aspect-ratio:4/3.4}}
.brandband__in img{width:100%; height:100%; object-fit:cover; object-position:44% 46%; filter:contrast(1.06) saturate(1.05)}
.brandband__over{position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(5,3,8,.42) 0%,rgba(5,3,8,.12) 40%,rgba(5,3,8,.92) 100%),
             linear-gradient(90deg,rgba(5,3,8,.55),transparent 55%)}
.brandband__cap{position:absolute; left:clamp(20px,3vw,44px); right:clamp(20px,3vw,44px); bottom:clamp(20px,3vw,40px); z-index:2}
.brandband__cap h3{font-family:var(--f-dis); font-weight:800; font-size:clamp(1.35rem,3.2vw,3rem); letter-spacing:-.042em; line-height:.98}
.brandband__cap p{margin:.7em 0 0; color:var(--muted); font-size:.95rem; max-width:46ch}

/* ============================================================
   CLIENTES — wordmarks
   ============================================================ */
.logo-slot b{font-family:var(--f-dis); font-weight:700; font-size:clamp(.86rem,1.05vw,1.02rem); letter-spacing:-.022em;
  color:var(--muted); text-align:center; padding:0 12px; line-height:1.25; transition:color .4s}
.logo-slot:hover b{color:var(--txt)}
.logo-slot img{max-height:62%; max-width:80%; width:auto; object-fit:contain;
  filter:brightness(0) invert(1); opacity:.5; transition:filter .45s var(--e-out), opacity .45s}
.logo-slot:hover img{filter:none; opacity:1}

/* ============================================================
   DEPOIMENTOS — estado rascunho
   ============================================================ */
.quote__badge{display:inline-flex; align-items:center; gap:.5em; align-self:flex-start;
  font-family:var(--f-mono); font-size:9px; letter-spacing:.14em; text-transform:uppercase;
  color:#FFB84D; border:1px dashed rgba(255,184,77,.45); background:rgba(255,184,77,.07);
  border-radius:100px; padding:.45em .8em}
.quote__seg{font-family:var(--f-mono); font-size:9px; letter-spacing:.18em; text-transform:uppercase; color:var(--pink)}
.quote--draft{border-style:dashed}

/* ============================================================
   BOTÃO VOLTAR AO TOPO
   ============================================================ */
.totop{position:fixed; left:clamp(14px,2vw,26px); bottom:clamp(14px,2vw,26px); z-index:var(--z-dock);
  width:52px; height:52px; border-radius:50%; border:1px solid var(--line-2); background:rgba(10,6,20,.72);
  backdrop-filter:blur(16px) saturate(1.4); cursor:pointer; display:grid; place-items:center; padding:0;
  box-shadow:0 18px 50px -26px rgba(0,0,0,.95);
  transform:translateY(140%) scale(.85); opacity:0; visibility:hidden;
  transition:transform .6s var(--e-out), opacity .45s, visibility .45s, border-color .4s, background .4s}
.totop.on{transform:none; opacity:1; visibility:visible}
.totop:hover{border-color:transparent; background:rgba(20,10,34,.9)}
.totop__ring{position:absolute; inset:-1px; width:calc(100% + 2px); height:calc(100% + 2px); transform:rotate(-90deg)}
.totop__ring circle{fill:none; stroke-width:2; stroke-linecap:round}
.totop__ring .bg{stroke:rgba(168,128,255,.10)}
.totop__ring .fg{stroke:url(#jg); stroke-dasharray:1 1; transition:stroke-dashoffset .15s linear}
.totop__ico{position:relative; z-index:2; transition:transform .45s var(--e-out)}
.totop:hover .totop__ico{transform:translateY(-2px)}
@media (max-width:560px){.totop{width:46px; height:46px}}

/* --- banda de marca em vídeo --- */
.brandband__video{width:100%; height:100%; object-fit:cover; object-position:50% 45%; display:block}
.brandband__play{position:absolute; top:clamp(14px,1.8vw,22px); right:clamp(14px,1.8vw,22px); z-index:3;
  width:38px; height:38px; border-radius:50%; border:1px solid var(--line-2); background:rgba(8,5,15,.6);
  backdrop-filter:blur(10px); color:var(--txt); display:grid; place-items:center; cursor:pointer;
  transition:background .35s, border-color .35s, opacity .35s; opacity:.7}
.brandband__play:hover{opacity:1; background:rgba(20,10,34,.85)}

/* --- banda de prova (render 3D) --- */
.proof{display:grid; grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr); gap:clamp(22px,3.2vw,56px);
  align-items:center; margin-top:clamp(44px,5.5vw,84px);
  border:1px solid var(--line); border-radius:var(--r-xl); overflow:hidden;
  background:linear-gradient(120deg,var(--panel-2),transparent 65%)}
@media (max-width:860px){.proof{grid-template-columns:1fr}}
.proof__img{position:relative; overflow:hidden; aspect-ratio:760/860; max-height:520px}
.proof__img img{width:100%; height:100%; object-fit:cover; object-position:50% 40%}
.proof__img::after{content:''; position:absolute; inset:0;
  background:linear-gradient(90deg,transparent 55%,rgba(15,9,25,.9)),linear-gradient(180deg,transparent 60%,rgba(15,9,25,.55))}
@media (max-width:860px){.proof__img::after{background:linear-gradient(180deg,transparent 45%,rgba(15,9,25,.92))}}
.proof__txt{padding:clamp(22px,2.6vw,44px) clamp(22px,2.6vw,44px) clamp(22px,2.6vw,44px) 0}
@media (max-width:860px){.proof__txt{padding:0 clamp(20px,4vw,32px) clamp(28px,4vw,36px)}}

/* ---------- form: estado de erro ---------- */
.form__err{margin:14px 0 0; padding:.9em 1.05em; border-radius:12px; font-size:.9rem; line-height:1.5;
  color:#FFB4C4; border:1px solid rgba(255,90,120,.35); background:rgba(255,90,120,.08)}
.btn[disabled]{opacity:.6; cursor:progress}
