/* ════════════════════════════════════════════════════════════════════════════
   AS FONTES — hospedadas aqui, e não num terceiro

   POR QUE SAIU DO GOOGLE FONTS. Vinte páginas chamavam `fonts.googleapis.com` e
   `fonts.gstatic.com`; dez não chamavam ninguém e renderizavam em Segoe UI. As
   duas metades tinham motivo:

     · `soma-link.html` e `aceite-tcle.html` são páginas de PACIENTE e evitam
       terceiro de propósito — `referrer: no-referrer`, `robots: noindex`, zero
       host externo no JS, pilhas de reserva de oito níveis. Pôr Google Fonts
       ali contrariava o desenho delas.
     · `privacidade.html` é a política de LGPD. Um `<link>` para o Google ali
       transmite o IP do visitante a um terceiro na própria página que explica
       o tratamento de dados.

   Hospedar resolve as duas metades de uma vez: as dez ganham a marca, e as
   outras vinte param de chamar terceiro.

   O QUE ISSO NÃO SIGNIFICA: não sobra requisição de FONTE a terceiro em página
   nenhuma — mas o site ainda tem terceiros de SCRIPT, que são outra frente e
   estão listados em `docs/DECISAO_FONTE.md`: `esm.sh` e `jsdelivr` em
   `editor-documentos.html`, `cdnjs` em `estrutura.html`, e o bundle do Sentry
   em `soma-sentry.js`, que acende se a variável de ambiente for ligada.

   ── O QUE ENTROU, E O QUE FICOU DE FORA ────────────────────────────────────
       Inter             variável 100–900, UMA face      130 KB
       Instrument Serif  400 normal + itálico             65 KB
       JetBrains Mono    variável 400–800, UMA face       42 KB
       ────────────────────────────────────────────────────────
       total                                             238 KB   (latin + latin-ext)

   A JETBRAINS ERA DUAS E VIROU UMA. O Google serve `wght@400;500` como dois
   arquivos, e os dois baixados eram BYTE A BYTE IDÊNTICOS — mesmo md5, mesmos
   31.432 bytes, ambos com `usWeightClass 400`. Eram 42 KB de download duplicado.
   O arquivo é variável de 400 a 800; uma face só cobre tudo, e de quebra
   devolve os pesos 600/700/800 que estavam caindo em negrito SINTÉTICO em 74
   regras de doze folhas.

   A FRAUNCES SAIU. Custava 273 KB — mais que as três juntas — e alcançava um
   seletor só: `.marquee-item`, em `index-v3.css:971`, com cinco `!important`.
   Varrido todo HTML e todo JS do repositório: `marquee` não aparece em lugar
   nenhum. Eram 273 KB baixados em vinte e uma páginas para uma regra que não
   casa com nada.

   Com ela saem também as duas serifas: **Instrument Serif é a serifa da
   marca**, sozinha. Era o que já estava em `--f-display` na fundação e é o que
   os onze títulos da landing usam. A ambiguidade que este arquivo registrava
   como «decisão pendente do dono» estava resolvida na tela o tempo todo — só
   não estava escrita.

   ── AS FONTES SÃO VARIÁVEIS, E ISSO MUDA UMA REGRA ─────────────────────────
   A Inter cobre 100 a 900 numa face; a JetBrains Mono, 400 a 800. As faixas
   declaradas são as REAIS dos arquivos — declarar menos grampeia o eixo, e uma
   primeira versão deste arquivo dizia `300 700` e fazia exatamente isso: 700,
   800 e 900 renderizavam o mesmo peso.

   `font-weight: 620` passa a renderizar 620 de verdade. A escala `--soma-w-*`
   continua sendo a régua; agora ela é escolha de projeto, não limite do arquivo.

   ── O EFEITO QUE ISSO TEVE, DECLARADO E NÃO ESCONDIDO ──────────────────────
   Antes, cada página pedia ao Google um conjunto de pesos diferente, e três
   conjuntos conviviam: `300;400;500;600`, `400;500;600;700` e
   `400;500;600;700;800`. Página que pedia um peso fora do próprio conjunto
   recebia o mais próximo — silenciosamente.

   Com uma face contínua, todo peso pedido passa a existir. O efeito é REAL e
   visível, e é o conserto do defeito, não um efeito colateral:

     · treze páginas (index, savyme, contato, checkout e as oito solucao-*)
       pediam `font-weight: 700` e recebiam a face 600. Agora recebem 700.
     · admin e jornadas pediam 800 e recebiam 800 do Google; a primeira versão
       desta folha os grampeava em 700. Com `100 900` voltam ao 800.

   Se em algum ponto o 700 real ficar pesado demais para o desenho, o conserto é
   na REGRA que pede 700 — não em grampear a fonte de novo.

   ── LICENÇA ────────────────────────────────────────────────────────────────
   As três são SIL Open Font License 1.1 — hospedar e redistribuir é permitido,
   sem atribuição na tela. Ver `assets/fonts/LICENCA.md`.

   ── SUBSTITUIR ─────────────────────────────────────────────────────────────
   Os arquivos vieram do Google Fonts nos subsets `latin` e `latin-ext`, com o
   `unicode-range` de origem preservado. `assets/fonts/_manifesto.json` guarda
   peso, estilo, subset e tamanho de cada um.
   ════════════════════════════════════════════════════════════════════════════ */

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('assets/fonts/inter-300-700-normal-latin.woff2') format('woff2');
  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: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('assets/fonts/inter-300-700-normal-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Instrument Serif';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('assets/fonts/instrument-400-normal-latin.woff2') format('woff2');
  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: 'Instrument Serif';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('assets/fonts/instrument-400-normal-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Instrument Serif';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('assets/fonts/instrument-400-italic-latin.woff2') format('woff2');
  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: 'Instrument Serif';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('assets/fonts/instrument-400-italic-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('assets/fonts/jetbrains-400-normal-latin.woff2') format('woff2');
  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: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('assets/fonts/jetbrains-400-normal-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

