/* Fontes locais (sem Google Fonts: não envia IP do visitante a terceiros). 900→Bold e mono 700→Medium por falta de arquivo. */
@font-face{font-family:"Unbounded";src:url("assets/fonts/Unbounded-Medium.ttf") format("truetype");font-weight:500;font-display:swap}
@font-face{font-family:"Unbounded";src:url("assets/fonts/Unbounded-Bold.ttf") format("truetype");font-weight:600 900;font-display:swap}
@font-face{font-family:"Space Grotesk";src:url("assets/fonts/SpaceGrotesk-Regular.ttf") format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:"Space Grotesk";src:url("assets/fonts/SpaceGrotesk-Medium.ttf") format("truetype");font-weight:500;font-display:swap}
@font-face{font-family:"Space Grotesk";src:url("assets/fonts/SpaceGrotesk-Bold.ttf") format("truetype");font-weight:600 900;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url("assets/fonts/JetBrainsMono-Medium.ttf") format("truetype");font-weight:400 900;font-display:swap}
:root{--void:#07080A;--grafite:#121418;--linha:#262A31;--volt:#C8FF2E;--sinal:#F2F4EF;--dado:#8B929C;--brasa:#FF5A1F;
--fd:"Unbounded",system-ui,sans-serif;--ft:"Space Grotesk",system-ui,sans-serif;--fm:"JetBrains Mono",ui-monospace,monospace;
--ease:cubic-bezier(.2,.8,.2,1)}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--void);color:var(--sinal);font:400 18px/1.55 var(--ft);overflow-x:hidden;-webkit-font-smoothing:antialiased}
::selection{background:var(--volt);color:var(--void)}
.wrap{width:min(1180px,100% - 48px);margin-inline:auto}
.mono{font:500 13px/1.3 var(--fm);letter-spacing:.12em}
.tiny{font-size:11px;letter-spacing:.06em}
.muted{color:var(--dado)} .small{font-size:14px}
.kicker{font:500 14px/1.2 var(--fm);letter-spacing:.12em;color:var(--volt);margin-bottom:18px}
h1,h2,h3{font-family:var(--fd);font-weight:700;letter-spacing:-.01em;line-height:1.08}
h1{font-size:clamp(34px,4.3vw,62px)} h1 em{font-style:normal;color:var(--volt)}
h2{font-size:clamp(28px,3.4vw,44px);margin-bottom:40px;max-width:22ch}
h3{font-size:20px;margin-bottom:8px}
.lead{color:var(--dado);font-size:clamp(17px,1.5vw,20px);max-width:54ch;margin-top:22px}

/* scanline global sutil */
.scanline{position:fixed;inset:0;pointer-events:none;z-index:50;background:linear-gradient(180deg,transparent 0,rgba(200,255,46,.035) 50%,transparent 100%);height:22vh;animation:scan 7s linear infinite}
@keyframes scan{from{transform:translateY(-25vh)}to{transform:translateY(110vh)}}

/* NAV */
.nav{position:sticky;top:0;z-index:40;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:rgba(7,8,10,.72);border-bottom:1px solid var(--linha);transition:background .3s}
.nav-in{display:flex;justify-content:space-between;align-items:center;padding:18px 0}
.nav.scrolled{background:rgba(7,8,10,.92)}

/* BOTÕES */
.btn{position:relative;display:inline-flex;align-items:center;gap:14px;background:var(--volt);color:var(--void);font:700 16px/1 var(--fd);
 text-transform:uppercase;text-decoration:none;padding:20px 26px;border-radius:12px;transition:transform .25s var(--ease),box-shadow .25s var(--ease);isolation:isolate;overflow:visible}
.btn-sm{padding:12px 16px;font-size:12px;white-space:nowrap} .btn-lg{padding:24px 34px;font-size:18px}
.arr{font-family:var(--ft);font-size:1.3em;transition:transform .25s var(--ease)}
.btn:hover .arr{transform:translateX(6px)}
.glow:hover{transform:translateY(-2px);box-shadow:0 0 0 1px var(--volt),0 10px 50px rgba(200,255,46,.45),0 0 120px rgba(200,255,46,.18)}
.btn::after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%);background-size:250% 100%;background-position:120% 0;mix-blend-mode:soft-light;transition:background-position .7s var(--ease)}
.btn:hover::after{background-position:-20% 0}
.pulse::before{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:0 0 0 0 rgba(200,255,46,.55);animation:ring 2.2s var(--ease) infinite;z-index:-1}
@keyframes ring{0%{box-shadow:0 0 0 0 rgba(200,255,46,.5)}80%,100%{box-shadow:0 0 0 18px rgba(200,255,46,0)}}

/* STATS */
.stats{border-block:1px solid var(--linha);background:linear-gradient(90deg,rgba(200,255,46,.04),transparent 40%,rgba(200,255,46,.04))}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.stat{padding:34px 20px;border-right:1px solid var(--linha)}
.stat:last-child{border-right:0}
.stat b{display:block;font:900 clamp(34px,4vw,54px)/1 var(--fd);color:var(--volt);font-variant-numeric:tabular-nums}
.stat span{display:block;margin-top:10px;font:500 13px var(--fm);letter-spacing:.1em;text-transform:uppercase;color:var(--dado)}

/* SEÇÕES */
.sec{position:relative;padding:110px 0}
.sec::before{content:"";position:absolute;top:0;left:50%;width:min(1180px,100% - 48px);height:1px;transform:translateX(-50%);
 background:linear-gradient(90deg,transparent,var(--linha) 20%,var(--volt) 50%,var(--linha) 80%,transparent);background-size:200% 100%;animation:sweep 6s linear infinite}
@keyframes sweep{from{background-position:100% 0}to{background-position:-100% 0}}
.grid3{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.card{position:relative;background:var(--grafite);border:1px solid var(--linha);border-radius:16px;padding:30px;overflow:hidden;transition:border-color .3s,transform .4s var(--ease)}
.card p{color:var(--dado)}
.card::before{content:"";position:absolute;inset:0;background:radial-gradient(320px circle at var(--mx,50%) var(--my,0%),rgba(200,255,46,.16),transparent 60%);opacity:0;transition:opacity .3s}
.card:hover{border-color:rgba(200,255,46,.6);transform:translateY(-4px)}
.card:hover::before{opacity:1}
.card>*{position:relative}
.num{display:block;font:700 15px var(--fm);color:var(--volt);margin-bottom:26px;letter-spacing:.1em}
.ico{display:inline-grid;place-items:center;width:44px;height:44px;border:1px solid var(--volt);border-radius:10px;color:var(--volt);margin-bottom:22px;font-size:18px}
.flowline{height:2px;background:var(--linha);margin:-14px 0 30px;position:relative;overflow:hidden;border-radius:2px}
.flowline i{position:absolute;inset:0;width:30%;background:linear-gradient(90deg,transparent,var(--volt),transparent);animation:travel 2.8s linear infinite}
@keyframes travel{from{transform:translateX(-100%)}to{transform:translateX(340%)}}

/* AO VIVO */
.live-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.term{background:#0C0E11;border:1px solid var(--linha);border-radius:16px;overflow:hidden;display:flex;flex-direction:column}
.term-top{display:flex;align-items:center;gap:8px;padding:14px 20px;border-bottom:1px solid var(--linha)}
.term-top i{width:11px;height:11px;border-radius:50%;background:var(--brasa)}.term-top i:nth-child(2){background:var(--dado)}.term-top i:nth-child(3){background:var(--volt)}
.term-top span{margin-left:auto;font-size:12px}
.term-body{font:500 14px/1.8 var(--fm);color:var(--sinal);padding:20px 22px;min-height:340px;white-space:pre-wrap;word-break:break-word}
.term-body .p{color:var(--volt)}.term-body .c{color:var(--dado)}.term-body .ok{color:var(--volt)}.term-body .w{color:var(--brasa)}
.term-body .car{display:inline-block;width:9px;height:1.05em;background:var(--volt);vertical-align:-2px;animation:blinkdot 1s steps(1) infinite}
.tasks ul{list-style:none;padding:6px 20px;flex:1}
.tasks li{position:relative;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:17px 0;border-bottom:1px dashed var(--linha);font-size:17px;overflow:hidden}
.tasks li:last-child{border:0}
.tasks li::after{content:"";position:absolute;left:0;top:0;bottom:0;width:40%;background:linear-gradient(90deg,transparent,rgba(200,255,46,.18),transparent);transform:translateX(-120%)}
.tasks li.scan::after{animation:rowscan .7s var(--ease)}
@keyframes rowscan{to{transform:translateX(320%)}}
.st{position:relative;width:86px;height:28px;font:700 12px var(--fm);letter-spacing:.08em}
.st em,.st b{position:absolute;inset:0;display:grid;place-items:center;border-radius:6px;transition:opacity .35s,transform .45s var(--ease)}
.st em{font-style:normal;color:var(--brasa);border:1px solid rgba(255,90,31,.5)}
.st b{background:var(--volt);color:var(--void);opacity:0;transform:translateY(12px)}
.tasks li.done .st em{opacity:0;transform:translateY(-12px)}
.tasks li.done .st b{opacity:1;transform:none;box-shadow:0 0 18px rgba(200,255,46,.45)}
.tasks li.done .t{color:var(--sinal)}
.tasks li .t{color:var(--dado);transition:color .4s}
.tasks-foot{padding:14px 20px;border-top:1px solid var(--linha);color:var(--volt)}

/* CTA FINAL */
.final{padding-top:80px}
.final-box{position:relative;text-align:center;border:1px solid var(--linha);border-radius:24px;padding:80px 28px;overflow:hidden;
 background:radial-gradient(circle at 50% 120%,rgba(200,255,46,.2),transparent 60%),var(--grafite)}
.final-grid{position:absolute;inset:0;background-image:linear-gradient(var(--linha) 1px,transparent 1px),linear-gradient(90deg,var(--linha) 1px,transparent 1px);background-size:48px 48px;opacity:.35;
 mask-image:radial-gradient(ellipse at 50% 100%,#000,transparent 70%);-webkit-mask-image:radial-gradient(ellipse at 50% 100%,#000,transparent 70%);animation:gridmove 4s linear infinite}
@keyframes gridmove{to{background-position:0 48px,0 0}}
.final-box>*:not(.final-grid){position:relative}
.emblem.sm{position:relative;inset:auto;width:96px;height:96px;margin:0 auto}
.final-box h2{margin:22px auto 0;max-width:20ch}.final-box .lead{margin:16px auto 34px}
.foot{border-top:1px solid var(--linha)}
.foot .wrap{display:grid;gap:14px;padding:40px 0 60px}

/* REVEAL */
.js .reveal{opacity:0;transform:translateY(28px);filter:blur(6px);transition:opacity .9s var(--ease),transform .9s var(--ease),filter .9s var(--ease)}
.js .reveal.in{opacity:1;transform:none;filter:none}
.d1{transition-delay:.12s!important}.d2{transition-delay:.24s!important}.d3{transition-delay:.36s!important}

/* MOBILE */
@media (max-width:860px){
 .grid3,.live-grid{grid-template-columns:1fr}
 .stats-grid{grid-template-columns:1fr 1fr}
 .stat{border-bottom:1px solid var(--linha)}.stat:nth-child(2n){border-right:0}
 .sec{padding:72px 0}
 .btn{width:100%;justify-content:space-between}
 .nav .btn{width:auto;padding:10px 11px;font-size:10px;letter-spacing:0}
 .nav img{height:21px;width:auto}
 .nav-in{gap:10px}
 .wrap{width:calc(100% - 36px)}
 .kicker{font-size:12px}
 .term-body{min-height:300px;font-size:12.5px}
 .tasks li{font-size:15px}
 .scanline{display:none}
}

/* MOVIMENTO REDUZIDO */
@media (prefers-reduced-motion:reduce){
 *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 .js .reveal{opacity:1;transform:none;filter:none}
 .scanline{display:none}
}

/* ===== PALCO DO PRÉDIO (rolagem com câmera) ===== */
.stage{position:relative;height:640vh}
.stage-sticky{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.stage-bg{position:absolute;inset:0;background-image:radial-gradient(var(--linha) 1.2px,transparent 1.4px);background-size:26px 26px;opacity:.7;
 mask-image:radial-gradient(ellipse at 65% 50%,#000 20%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse at 65% 50%,#000 20%,transparent 75%)}
.stage-halo{position:absolute;width:1100px;height:1100px;left:62%;top:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(200,255,46,.12),transparent 60%);pointer-events:none}
.cam{position:absolute;left:0;top:0;width:840px;transform-origin:0 0;will-change:transform}
.cam .bsvg{width:840px;height:auto;display:block}
.panel{position:absolute;left:max(24px,calc((100vw - 1180px)/2));top:50%;transform:translateY(-50%);width:min(470px,36vw);z-index:3}
.pstate{position:absolute;left:0;top:50%;width:100%;transform:translateY(-40%);opacity:0;visibility:hidden;transition:opacity .6s var(--ease),transform .8s var(--ease),visibility 0s .6s}
.pstate.cur{opacity:1;visibility:visible;transform:translateY(-50%);transition:opacity .6s var(--ease),transform .8s var(--ease),visibility 0s}
.pstate h1{font-size:clamp(32px,3.6vw,54px)}
.pstate h2{font-size:clamp(28px,2.8vw,42px);margin-bottom:14px}
.floor-tag{display:inline-flex;align-items:center;gap:10px;font:700 13px var(--fm);letter-spacing:.12em;color:var(--void);background:var(--volt);padding:7px 10px;border-radius:6px;margin-bottom:18px}
.rooms-list{list-style:none;display:grid;gap:10px;margin-top:24px}
.rooms-list li{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;background:rgba(18,20,24,.88);border:1px solid var(--linha);border-radius:12px;cursor:pointer;transition:border-color .3s,background .3s}
.rooms-list li b{font:700 12px var(--fm);letter-spacing:.08em;color:var(--volt);white-space:nowrap;margin-top:3px}
.rooms-list li span{color:var(--dado);font-size:16px}
.rooms-list li strong{display:block;color:var(--sinal);font-weight:700}
.rooms-list li.on{border-color:var(--volt);background:rgba(200,255,46,.08)}
.progress{position:absolute;right:max(20px,calc((100vw - 1180px)/2 - 40px));top:50%;transform:translateY(-50%);display:grid;gap:12px;z-index:3}
.progress i{width:3px;height:26px;background:var(--linha);border-radius:2px;transition:background .3s,height .3s}
.progress i.cur{background:var(--volt);height:44px}
.hint{position:absolute;left:50%;bottom:20px;transform:translateX(-50%);z-index:3;font:500 11px var(--fm);letter-spacing:.14em;color:var(--dado);display:flex;align-items:center;gap:10px;transition:opacity .4s}
.hint span{display:block;width:34px;height:1px;background:linear-gradient(90deg,var(--volt),transparent);animation:hintx 1.6s ease-in-out infinite}
@keyframes hintx{50%{transform:scaleX(.3)}}
.tip{position:absolute;z-index:4;pointer-events:none;background:var(--void);border:1px solid var(--volt);color:var(--sinal);padding:10px 12px;border-radius:10px;font-size:14px;max-width:240px;opacity:0;transform:translateY(6px);transition:opacity .2s,transform .2s;box-shadow:0 0 30px rgba(200,255,46,.25)}
.tip b{display:block;font:700 11px var(--fm);letter-spacing:.1em;color:var(--volt);margin-bottom:4px}
.tip.show{opacity:1;transform:none}
/* lista estática (fallback movimento reduzido) */
.static-floors{display:none}
@media (max-width:860px){
 .stage{height:720vh}
 .panel{left:18px;right:18px;width:auto;top:84px;transform:none}
 .pstate{top:0;transform:translateY(16px)}
 .pstate.cur{transform:none}
 .pstate h1{font-size:28px}
 .pstate .lead{font-size:15px;margin-top:12px}
 .pstate h2{font-size:24px;margin-bottom:8px}
 .pstate .cta-row{margin-top:18px}
 .floor-tag{font-size:11px;margin-bottom:10px}
 .rooms-list{margin-top:12px;gap:8px}
 .rooms-list li{padding:10px 12px}
 .rooms-list li span{font-size:13.5px}
 .progress{right:8px;top:auto;bottom:24px;transform:none;grid-auto-flow:column}
 .progress i{width:18px;height:3px}.progress i.cur{width:30px;height:3px}
 .hint{display:none}
 .stage-halo{left:50%;top:70%}
 .tip{display:none}
 .bsvg .r-label{display:none}
}
@media (prefers-reduced-motion:reduce){
 .stage{height:auto}
 .stage-sticky{position:relative;height:auto;overflow:visible;padding:40px 0 60px}
 .cam{position:relative;transform:none!important;width:min(840px,100%);margin:30px auto 0}
 .cam .bsvg{width:100%}
 .panel{position:relative;left:auto;top:auto;transform:none;width:min(1180px,100% - 48px);margin:0 auto}
 .pstate{display:none}.pstate.p0{display:block;position:relative;transform:none;opacity:1;visibility:visible}
 .progress,.hint{display:none}
 .static-floors{display:grid;gap:14px;width:min(1180px,100% - 48px);margin:30px auto 0}
}
@media (max-width:860px){
 .tip{display:block;position:fixed;left:18px;right:18px;bottom:22px;max-width:none}
}
.pstate .cta-row .mono{white-space:nowrap}
@media (max-width:860px){
 .panel::before{content:"";position:absolute;left:-18px;right:-18px;top:-90px;height:calc(100% + 150px);min-height:var(--ph,300px);background:linear-gradient(180deg,#07080A 0,#07080A calc(100% - 70px),rgba(7,8,10,0));z-index:-1;pointer-events:none}
}
@media (prefers-reduced-motion:reduce){
 .stage-sticky{display:flex;flex-direction:column}
 .panel{order:-1;height:auto!important}
 .panel::before{display:none}
 .tip{display:none!important}
}
@media (prefers-reduced-motion:reduce){ .stage-sticky{overflow:hidden} .stage-halo{display:none} }

/* BOTÃO "REDUZIR MOVIMENTO" — espelha as regras de prefers-reduced-motion sob html.reduce-motion */
.motion-toggle{appearance:none;cursor:pointer;font:500 11px/1 "JetBrains Mono",monospace;letter-spacing:.04em;color:#F2F4EF;background:rgba(18,20,24,.75);border:1px solid #262A31;border-radius:999px;padding:8px 11px;white-space:nowrap}
.motion-toggle:hover{border-color:rgba(200,255,46,.45)}
.motion-toggle[aria-pressed="true"]{color:#C8FF2E;border-color:rgba(200,255,46,.55)}
.motion-toggle:focus-visible{outline:2px solid #C8FF2E;outline-offset:2px}
.nav-actions{display:flex;gap:8px;align-items:center}
@media (max-width:520px){.motion-toggle{padding:7px 9px;font-size:10px}}
html.reduce-motion *,html.reduce-motion *::before,html.reduce-motion *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
html.reduce-motion.js .reveal{opacity:1;transform:none;filter:none}
html.reduce-motion .scanline{display:none}
html.reduce-motion .stage{height:auto}
html.reduce-motion .stage-sticky{position:relative;height:auto;overflow:hidden;padding:40px 0 60px;display:flex;flex-direction:column}
html.reduce-motion .cam{position:relative;transform:none!important;width:min(840px,100%);margin:30px auto 0}
html.reduce-motion .cam .bsvg{width:100%}
html.reduce-motion .panel{position:relative;left:auto;top:auto;transform:none;width:min(1180px,100% - 48px);margin:0 auto;order:-1;height:auto!important}
html.reduce-motion .panel::before{display:none}
html.reduce-motion .pstate{display:none}
html.reduce-motion .pstate.p0{display:block;position:relative;transform:none;opacity:1;visibility:visible}
html.reduce-motion .progress,html.reduce-motion .hint{display:none}
html.reduce-motion .static-floors{display:grid;gap:14px;width:min(1180px,100% - 48px);margin:30px auto 0}
html.reduce-motion .tip{display:none!important}
html.reduce-motion .stage-halo{display:none}
/* Celular estreito: o cabeçalho cabe em 360–480px (botão de movimento vira ícone; o nome acessível continua no texto). */
@media (max-width:480px){
 .motion-toggle{font-size:0;padding:7px 10px;line-height:1}
 .motion-toggle::before{content:"◐";font-size:15px;line-height:1}
 .nav-in{min-width:0}
 .nav .brand{flex:0 1 auto;min-width:0}
 .nav .brand img{max-width:104px;height:auto}
 .nav-actions{gap:6px;flex:0 0 auto}
 .nav .btn{padding:9px 10px;font-size:10px}
 html,body{overflow-x:clip}
}
