[hidden]{display:none !important}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;overflow-x:clip;scroll-behavior:smooth;scroll-padding-top:84px}
html.lenis{scroll-behavior:auto !important}
body{
  margin:0;background:var(--bg);color:var(--fg);overflow-x:clip;
  font-family:var(--f-body);font-size:var(--t-base);line-height:1.6;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img,video,svg{display:block;max-width:100%}
img,video{height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer;background:none;border:0;padding:0}
input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4{font-family:var(--f-display);font-weight:600;line-height:1.05;letter-spacing:-.025em;margin:0;color:var(--fg)}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
table{border-collapse:collapse;width:100%}
::selection{background:var(--rag-cyan);color:var(--ink-1000)}
:focus-visible{outline:2px solid var(--rag-cyan-ui);outline-offset:3px;border-radius:4px}

.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}
.sec{padding-top:var(--section);padding-bottom:var(--section);position:relative}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.mono{font-family:var(--f-mono);font-feature-settings:"tnum" 1,"zero" 0;letter-spacing:-.01em}
.skip{position:absolute;left:1rem;top:-3rem;z-index:100;background:var(--ink-900);color:#fff;padding:.6rem 1rem;border-radius:var(--r-sm)}
.skip:focus{top:1rem}

/* ---------- Animação: tudo vive sob .anim (que só o JS adiciona) ---------- */
.anim .rev{opacity:0;transform:translateY(22px);transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out);transition-delay:var(--d,0s)}
.anim .rev.vis{opacity:1;transform:none}
.anim .split .word{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.anim .split .word__inner{display:inline-block;transform:translateY(105%);transition:transform 1s var(--ease-out);transition-delay:var(--d,0s)}
.anim .split.vis .word__inner{transform:none}
.anim .draw path,.anim .draw circle,.anim .draw line,.anim .draw polyline,.anim .draw rect{transition:stroke-dashoffset 1.3s var(--ease-out) var(--d,0s)}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .anim .rev,.anim .rev.vis{opacity:1 !important;transform:none !important;transition:none !important}
  .anim .split .word__inner{transform:none !important;transition:none !important}
  .anim .draw path,.anim .draw circle,.anim .draw line,.anim .draw polyline,.anim .draw rect{stroke-dashoffset:0 !important;transition:none !important}
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important}
}
