/* Base: regras que valem para o documento inteiro. Só usa tokens. */

/* Fontes servidas pelo próprio site, e não pelo Google: o navegador do
   visitante não contata fonts.googleapis.com (que recebe o IP dele) antes
   de qualquer consentimento — requisito da Fase 5 (LGPD).
   Só o alfabeto latino, que cobre os acentos do português. Cinzel e Work
   Sans são fontes variáveis: um arquivo serve os dois pesos (faixa em
   font-weight). Licença SIL Open Font License, ver /fontes/LEIA-ME.txt. */
@font-face { font-family: 'Cinzel'; src: url('/fontes/cinzel.woff2') format('woff2'); font-weight: 400 600; font-style: normal; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Cinzel Decorative'; src: url('/fontes/cinzel-decorative-700.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Work Sans'; src: url('/fontes/work-sans.woff2') format('woff2'); font-weight: 400 600; font-style: normal; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Work Sans'; src: url('/fontes/work-sans-italico.woff2') format('woff2'); font-weight: 300; font-style: italic; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

*, *::before, *::after { box-sizing: border-box; }

/* hidden precisa vencer display:flex/grid dos componentes (senão o elemento
   "escondido" continua ocupando espaço). */
[hidden] { display: none !important; }

html {
  scroll-behavior: smooth;
  /* A navbar é fixa: sem isto, o título de uma âncora (#raizes) fica escondido atrás dela. */
  scroll-padding-top: calc(var(--altura-navbar) + var(--espaco-4));
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  background: var(--cor-creme);
  color: var(--cor-texto);
  font-family: var(--fonte-texto);
  /* 16 px, o padrão do navegador, como no export: as larguras em "em" dos
     blocos (ex.: 44em no texto do post) dependem deste valor. */
  font-size: var(--texto-base);
  /* Entrelinha normal no body, como no export: cada bloco de texto define a sua
     (--entrelinha-texto nos parágrafos). Um valor global mudava a altura de tudo. */
  line-height: normal;
  -webkit-font-smoothing: antialiased;
  /* clip, e não hidden: hidden transforma o body em container de rolagem e
     congela window.scrollY em zero, quebrando efeitos de scroll. */
  overflow-x: clip;
}

img, svg { max-width: 100%; display: block; }

a { color: var(--cor-celeste); text-decoration: none; }
a:hover { color: var(--cor-azul-noite); }

::selection { background: var(--cor-ouro); color: var(--cor-azul-noite); }

:focus-visible { outline: var(--foco-contorno); outline-offset: var(--foco-afastamento); }

/* Conteúdo só para leitor de tela (ex.: rótulos de ícones). */
.so-leitor {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* Link "pular para o conteúdo": primeiro item do teclado, visível só com foco. */
.pular-conteudo {
  position: absolute; left: var(--espaco-4); top: calc(-1 * var(--altura-navbar) * 2);
  z-index: 100; background: var(--cor-papel); color: var(--cor-azul-noite);
  padding: var(--espaco-2) var(--espaco-4); font-weight: 600;
}
.pular-conteudo:focus { top: var(--espaco-2); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}
