/* =============================================================
   site.css — CASCO COMPARTILHADO (todas as páginas)
   Variáveis, campo WebGL, header, rodapé, motion e botões.
   Carregado uma vez e cacheado: as páginas internas deixam de
   rebaixar ~95 KB de CSS inline repetido.
   ============================================================= */

/* ============================================================
   VARIANTE C — "O Campo de Decisão"
   Homepage enxuta. O fundo é gerado em WebGL (shader procedural):
   sem bitmap, sem vídeo — ~0 byte de imagem, nítido em qualquer DPI.
   ============================================================ */
:root{
  --mist:#EFF3F4;
  --slate:#2E3A45;
  --soft:#5D6C77;
  --dusk:#4A6FA5;
  --gold:#C2A264;
  --glass:rgba(255,255,255,.5);
  --glass-line:rgba(255,255,255,.75);
  --line:rgba(46,58,69,.12);
  --maxw:1180px;
  --gutter:clamp(20px,4vw,56px);
  --ease:cubic-bezier(.16,.68,.24,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  background:var(--mist);color:var(--slate);
  font-family:'Figtree',system-ui,-apple-system,sans-serif;
  font-size:16.5px;line-height:1.68;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
h1,h2,h3,blockquote{font-family:'Newsreader',Georgia,serif;font-weight:300;line-height:1.12}
a{color:inherit}
:focus-visible{outline:2px solid var(--dusk);outline-offset:4px;border-radius:4px}
::selection{background:var(--dusk);color:#fff}
.skip-link{position:absolute;left:-9999px;top:0;z-index:200;background:var(--slate);color:#fff;padding:12px 22px;border-radius:0 0 12px 0;font-weight:600;font-size:14px;text-decoration:none}
.skip-link:focus{left:0}
.lbl{font-weight:600;font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--dusk)}
.fase-tag{display:inline-flex;align-items:baseline;gap:10px}
.fase-tag .rn{font-family:'Newsreader',serif;font-style:italic;font-size:20px;color:var(--gold)}

/* ===== 1. CAMPO GENERATIVO (WebGL) =====
   canvas fixo atrás de tudo; fallback CSS idêntico em espírito */
#field{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;
  background:
    radial-gradient(120vw 90vh at 12% -10%, #E4EDF4 0%, transparent 60%),
    radial-gradient(100vw 80vh at 92% 8%, #E7EDF5 0%, transparent 62%),
    radial-gradient(90vw 70vh at 45% 105%, #EAE6F0 0%, transparent 65%),
    var(--mist);
}
#gl{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0;transition:opacity 1.4s ease}
#gl.ready{opacity:1}
/* grão fino: tira o "digital" do gradiente */
#grain{position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.34;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0.4 0 0 0 0 0.42 0 0 0 0 0.45 0 0 0 0.045 0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E")}

/* ===== 2. HEADER ===== */
header{position:fixed;inset:0 0 auto 0;z-index:50;transition:background .5s var(--ease),box-shadow .5s}
header.scrolled{background:rgba(239,243,244,.7);backdrop-filter:blur(18px) saturate(1.2);-webkit-backdrop-filter:blur(18px) saturate(1.2);box-shadow:0 1px 0 var(--line)}
.header-in{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter);height:74px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand{text-decoration:none;font-family:'Newsreader',serif;font-size:17px;letter-spacing:.015em;white-space:nowrap;display:flex;align-items:center;gap:11px;min-width:0;overflow:hidden}
.brand span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.brand i{color:var(--dusk)}
.brand svg{flex:none;width:19px;height:19px;overflow:visible}
.brand svg .bar{stroke:var(--dusk);stroke-width:2;stroke-linecap:round}
.brand svg .nd{fill:none;stroke:var(--gold);stroke-width:1.8;transform-origin:center;animation:brandPulse 5.5s var(--ease) infinite}
@keyframes brandPulse{0%,72%,100%{transform:scale(1);opacity:1}84%{transform:scale(1.25);opacity:.55}}
header nav{display:flex;gap:28px;align-items:center}
header nav a{font-size:13.5px;font-weight:500;color:var(--soft);text-decoration:none;transition:color .3s;position:relative}
header nav a:not(.cta-mini)::after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:1px;background:var(--dusk);transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease)}
header nav a:not(.cta-mini):hover{color:var(--slate)}
header nav a:not(.cta-mini):hover::after{transform:scaleX(1);transform-origin:left}
.cta-mini{background:var(--slate);color:#fff!important;padding:10px 21px;border-radius:999px;font-weight:600;font-size:13px;transition:background .35s,transform .35s var(--ease);white-space:nowrap}
.cta-mini:hover{background:var(--dusk);transform:translateY(-1px)}
@media(max-width:880px){header nav a:not(.cta-mini){display:none}.brand{font-size:15px}.cta-mini{padding:10px 16px;font-size:12px}}

main{position:relative;z-index:3}
section{scroll-margin-top:94px}
.shell{max-width:var(--maxw);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}
.sect{padding-top:clamp(88px,12vh,140px);padding-bottom:clamp(88px,12vh,140px)}
.sect-head{margin-bottom:clamp(38px,6vh,62px)}
.sect-head .fase-tag{margin-bottom:14px}
.sect-head h2{font-size:clamp(29px,4vw,48px)}
.sect-head h2 i{color:var(--dusk)}
.sect-sub{color:var(--soft);font-size:15.5px;margin-top:14px;max-width:58ch}
.sect-sub b{color:var(--slate);font-weight:600}

/* ===== 3. MOTION PRIMITIVES ===== */
/* palavra a palavra, com desfoque que resolve */
.fw .w{display:inline-block;filter:blur(14px);transform:translateY(22px);
  transition:filter .8s var(--ease),transform .8s var(--ease)}
.fw.on .w{filter:blur(0);transform:none}
/* bloco que sobe */
.rv{opacity:0;transform:translateY(28px);transition:opacity 1.05s var(--ease),transform 1.05s var(--ease)}
.rv.on{opacity:1;transform:none}
.rv-d1{transition-delay:.12s}.rv-d2{transition-delay:.24s}.rv-d3{transition-delay:.36s}
@media (prefers-reduced-motion:reduce){
  .fw .w,.rv{opacity:1!important;filter:none!important;transform:none!important;transition:none!important}
}

/* ===== 4. BOTÕES ===== */
.btn{display:inline-block;text-decoration:none;font-weight:600;font-size:15px;padding:16px 32px;border-radius:999px;
  transition:transform .45s var(--ease),background .35s,box-shadow .45s;will-change:transform}
.btn-slate{background:var(--slate);color:#fff}
.btn-slate:hover{background:var(--dusk);box-shadow:0 14px 34px rgba(74,111,165,.26)}
.btn-glass{background:var(--glass);border:1px solid var(--glass-line);color:var(--slate);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.btn-glass:hover{background:rgba(255,255,255,.82)}
.glass{background:var(--glass);border:1px solid var(--glass-line);border-radius:22px;
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 18px 50px rgba(46,58,69,.075)}

/* ===== 12. FOOTER ===== */
.site-footer{background:var(--slate);color:#E8EDF1;position:relative;z-index:3}
.site-footer .top{max-width:var(--maxw);margin:0 auto;padding:clamp(46px,6vw,66px) var(--gutter) 38px;
  display:grid;grid-template-columns:minmax(0,4fr) minmax(0,2.6fr) minmax(0,3.2fr) minmax(0,3.6fr);gap:34px}
.site-footer .brandf{font-family:'Newsreader',serif;font-size:22px}
.site-footer .brandf i{color:#A8BEDC}
.site-footer .tagf{margin-top:12px;color:#AEBBC6;font-size:14.5px;max-width:40ch;font-family:'Newsreader',serif;font-style:italic;line-height:1.6}
.site-footer h2{font-family:'Figtree',system-ui,-apple-system,sans-serif;font-size:10.5px;line-height:inherit;letter-spacing:.26em;text-transform:uppercase;color:#95A9BB;margin-bottom:12px;font-weight:600}
.site-footer a{color:#C7D2DB;text-decoration:none;font-size:13.5px;line-height:2.1;display:block}
.site-footer a:hover{color:#fff;text-decoration:underline}
.site-footer .addr{color:#AEBBC6;font-size:13.5px;line-height:2.1}
.site-footer .bot{border-top:1px solid rgba(255,255,255,.12)}
.site-footer .bot-in{max-width:var(--maxw);margin:0 auto;padding:20px var(--gutter) 28px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.site-footer .bot p{color:#95A9BB;font-size:12px}
@media(max-width:1020px){.site-footer .top{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.site-footer .top{grid-template-columns:1fr;gap:28px}}

