/* ===== tokens ===== */
:root{
  --u: calc(100vw / 1224);          /* 1 "true px" do vídeo (viewport ref 1224x701) */
  --c-blue: #0A16C8;
  --c-orange: #FC5E00;
  --bg-dark: #0C0C0C;
  --bg-grey: #F5F5F5;
  --c-ink: #0C0C0C;
  --font-display: 'Anybody', 'Michroma', sans-serif;
  --disp-wdth: 104;
  --disp-wght: 790;
  --font-mono: 'JetBrains Mono', ui-monospace, monospace;
  --font-body: 'Inter', 'Helvetica Neue', Arial, sans-serif;
  --gutter: calc(28 * var(--u));
  --bolt-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 24'><polygon points='12,0 0,14 8,14 6,24 20,9 11,9'/></svg>");   /* raio (logo de energia) */
  --vhu: var(--u);              /* rítmo vertical proporcional à largura (seções de altura fixa) */
  --vh1: calc(100vh / 701);       /* 1 px vertical do vídeo relativo à ALTURA (só composições 100vh) */
}
/* ===== reset ===== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scrollbar-width:none}
html::-webkit-scrollbar,body::-webkit-scrollbar{display:none;width:0}
body{
  background:#fff;color:var(--c-ink);
  font-family:var(--font-body);
  font-size:calc(12.5 * var(--u));
  line-height:1.28;
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;
}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{background:none;border:0;font:inherit;color:inherit;cursor:pointer}
ul,ol{list-style:none}
/* ===== type helpers ===== */
.display{
  font-family:var(--font-display);
  font-variation-settings:'wdth' var(--disp-wdth),'wght' var(--disp-wght);
  text-transform:uppercase;
  line-height:1;
  letter-spacing:0;
}
.mono-label{
  font-family:var(--font-mono);
  font-size:calc(7.5 * var(--u));
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:.1em;
}
.pill{
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:999px;
  font-family:var(--font-mono);
  font-size:calc(8 * var(--u));
  font-weight:500;text-transform:uppercase;letter-spacing:.1em;
  padding:calc(11*var(--u)) calc(21*var(--u));
  white-space:nowrap;
}
.pill--dark{background:#111;color:#fff}
/* ===== sweep reveal (spec C §7.1) ===== */
.sweep-line{display:block; width:fit-content}
.rv-line{
  color:transparent !important;
  -webkit-text-fill-color:transparent;
  background-image:linear-gradient(90deg,
    var(--final) 0%, var(--final) 37%,
    #1020D0 50%,
    rgba(16,32,208,0) 63%, rgba(16,32,208,0) 100%);
  background-size:270% 100%;
  background-repeat:no-repeat;
  background-position-x:100%;
  -webkit-background-clip:text; background-clip:text;
}
.is-shot *{animation-play-state:paused !important}
/* antes do boot (fontes + estados iniciais), os elementos com reveal ficam invisíveis */
html:not(.is-ready):not(.is-shot) :is(.story__copy,.story__imgw,.align__h2,.align__p1,.align__p2,.align__p3,.trusted__label,.trusted__divider,
  .wl__word,.wl__phrase,.wl__marker,.wl__label,.val__title,.val__intro,.val__row,.trade__h2,.trade__p1,.trade__p2,
  .team__title,.team__sub,.team__ctrl,.team__counter,.team__media,.team__bio,.cta__title,.cta__para,#footer .abs){visibility:hidden}
/* ===== sections shells ===== */
main{position:relative}
section{position:relative}
