/* ═══════════════════════════════════════════════════════════════
   RVM · Design System compartilhado (subpáginas)
   Tokens vivem em /assets/tokens.css (fonte unica). Nao redefina :root aqui.
   ═══════════════════════════════════════════════════════════════ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

html{scroll-behavior:smooth}
body{font-family:var(--body);background:var(--n1);color:var(--t1);font-size:var(--fs-body);line-height:1.6;
  overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{text-decoration:none;color:inherit}
img{max-width:100%}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.hidden{display:none!important}

a:focus-visible,button:focus-visible,input:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--g1);outline-offset:2px;border-radius:4px}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important}
}

/* grade tech de fundo */
body::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:0;
  background-image:linear-gradient(rgba(255,255,255,.016) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.016) 1px,transparent 1px);
  background-size:58px 58px}

/* ── NAV ── */
nav{position:sticky;top:0;z-index:100;background:rgba(0,0,0,.7);
  backdrop-filter:blur(18px) saturate(1.2);border-bottom:1px solid var(--bd1);transition:background .3s,border-color .3s}
nav.scrolled{background:rgba(0,0,0,.9);border-bottom-color:var(--bd2)}
.nav-in{max-width:1180px;margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;height:72px}
.nav-logo-img{height:34px;display:flex;align-items:center}
.nav-logo-img img{height:100%;width:auto;object-fit:contain;display:block}
.nav-menu{display:flex;align-items:center;gap:34px;list-style:none}
.nav-menu a{font-family:var(--mono);font-size:var(--fs-xs);font-weight:500;color:var(--t3);
  transition:color .2s;letter-spacing:.04em;text-transform:uppercase}
.nav-menu a:hover,.nav-menu a.active{color:var(--t1)}
.nav-btn{background:var(--g1);color:#000;padding:11px 22px;border-radius:9999px;
  font-size:var(--fs-sm);font-weight:700;transition:all .2s;position:relative;overflow:hidden;isolation:isolate}
.nav-btn:hover{background:var(--g2);color:#000;box-shadow:0 8px 22px rgba(34,197,94,.28)}
.nav-cta-mobile{display:none}
.nav-ham{display:none;flex-direction:column;justify-content:center;gap:5px;width:38px;height:38px;
  background:none;border:1px solid var(--bd1);border-radius:9px;cursor:pointer;padding:8px}
.nav-ham span{display:block;height:2px;background:var(--t2);border-radius:2px;transition:all .25s}
.nav-ham.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-ham.open span:nth-child(2){opacity:0}
.nav-ham.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(max-width:960px){
  .nav-ham{display:flex}
  .nav-menu{display:none;flex-direction:column;align-items:flex-start;gap:0;position:fixed;top:72px;left:0;right:0;
    z-index:999;background:rgba(0,0,0,.98);border-bottom:1px solid var(--bd2);padding:12px 24px 20px;
    box-shadow:0 8px 32px rgba(0,0,0,.7);backdrop-filter:blur(18px)}
  .nav-menu.open{display:flex}
  .nav-menu li{width:100%}
  .nav-menu a{display:block;padding:14px 0;font-size:var(--fs-md);border-bottom:1px solid var(--bd1)}
  .nav-menu li:last-child a{border-bottom:none}
  .nav-btn{display:none}
  .nav-cta-mobile{display:block}
  .nav-cta-mobile a{margin-top:12px;padding:13px 0;text-align:center;background:var(--g1);color:#000;
    font-weight:700;border-radius:9999px;border-bottom:none}
}

/* ── TIPOGRAFIA / SEÇÕES ── */
.sec{padding:82px 24px;position:relative}
.stag{display:inline-flex;align-items:center;gap:11px;font-family:var(--mono);font-size:var(--fs-xs);font-weight:500;
  color:var(--g1);text-transform:uppercase;letter-spacing:.18em;margin-bottom:18px}
.stag::before{content:'';width:26px;height:1px;background:var(--g1)}
.sh1{font-family:var(--disp);font-size:var(--fs-display);font-weight:400;line-height:1.07;letter-spacing:-.5px;margin-bottom:20px}
.sh2{font-family:var(--disp);font-size:var(--fs-h2);font-weight:400;letter-spacing:-.5px;line-height:1.1;margin-bottom:20px}
.sh1 em,.sh2 em{font-family:var(--serif);font-style:italic;font-weight:700;font-size:1.05em;
  background:linear-gradient(120deg,var(--g2),var(--g1));-webkit-background-clip:text;
  -webkit-text-fill-color:transparent;background-clip:text}
.sp{font-size:var(--fs-lead);color:var(--t2);line-height:1.7;max-width:620px;margin-bottom:44px}
@media(max-width:640px){.sh1{font-size:var(--fs-h1-sm)}.sh2{font-size:var(--fs-h2-sm)}.sp{font-size:var(--fs-body)}}

/* ── BOTÕES ── */
.cta-btn-g{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:linear-gradient(120deg,var(--g1),var(--g3));color:#000;padding:15px 32px;border-radius:9999px;
  font-weight:700;font-size:var(--fs-ui);border:none;cursor:pointer;transition:all .2s;
  position:relative;overflow:hidden;isolation:isolate}
.cta-btn-g:hover{box-shadow:0 14px 36px rgba(34,197,94,.4);color:#000}
.cta-btn-o{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:transparent;
  border:1px solid var(--bd2);color:var(--t1);padding:14px 28px;border-radius:9999px;font-weight:600;
  font-size:var(--fs-ui);transition:all .2s}
.cta-btn-o:hover{border-color:var(--g1);color:var(--g1)}

/* ── CARDS ── */
.card{background:var(--n3);border:1px solid var(--bd1);border-radius:16px;padding:28px 26px;
  transition:transform .3s cubic-bezier(.23,1,.32,1),border-color .3s,box-shadow .3s}
.card:hover{border-color:var(--bdg)}

/* ── FOOTER ── */
footer{background:var(--n2);border-top:1px solid var(--bd1);padding:54px 24px 30px}
.f-in{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:36px}
.f-logo{height:32px;margin-bottom:14px}
.f-p{font-size:var(--fs-md);color:var(--t3);line-height:1.7;max-width:330px}
.f-h{font-family:var(--mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--t3);margin-bottom:14px}
.f-l{list-style:none;display:flex;flex-direction:column;gap:9px}
.f-l a{font-size:var(--fs-md);color:var(--t2);transition:color .2s}
.f-l a:hover{color:var(--g1)}
.f-bot{max-width:1180px;margin:34px auto 0;padding-top:20px;border-top:1px solid var(--bd1);
  font-family:var(--mono);font-size:var(--fs-2xs);color:var(--t4);display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}
@media(max-width:760px){.f-in{grid-template-columns:1fr}}

/* ═══ EMPILHAMENTO ═══
   Brilho do cursor, grão, tilt/spotlight, botão magnético, varredura de luz e barra de progresso saíram
   na repaginada (13/09/2026); os efeitos agora são do /assets/tema-fx.js. A regra abaixo continua como
   estava: tirá-la faria o nav das subpáginas passar de relative para sticky. */
nav,main,footer,.above{position:relative;z-index:3}

/* REVEAL — progressive enhancement: o estado escondido só existe se o JS
   adicionar .js-reveal no <html>. Sem JS, com JS quebrado, ou com o documento
   oculto (IntersectionObserver não dispara), o conteúdo aparece normalmente. */
html.js-reveal .reveal{opacity:0;transform:translateY(22px);filter:blur(8px);
  transition:opacity .6s ease,transform .6s cubic-bezier(.23,1,.32,1),filter .6s ease}
html.js-reveal .reveal.show{opacity:1;transform:none;filter:none}

@media (hover:none),(prefers-reduced-motion:reduce){
  html.js-reveal .reveal{opacity:1;transform:none;filter:none}
}
