/* aquacalc — TOKENS DO SITE PÚBLICO, direção «Linha d'água» (V-260, 29/09/2026)
   ============================================================================
   O PEDIDO DELE: «o nosso parece um pouco infantil», «preciso de um site que atraia as pessoas
   com design limpo, imagens lindas». Das três direções da rodada 1 ele escolheu a 2: «gostei da
   2 é por aí». A direção foi revista por cinco chapéus (produto, design e acessibilidade, voz,
   SEO e performance, aquarismo e direção de arte) — artefato «Direção Linha d'água».

   O QUE MEDIMOS NO SITE DE HOJE, e é o que este arquivo troca: uma fonte só (Bricolage
   Grotesque, peso 800 no título) em 283 elementos da home, cantos de 12 a 22 px, rótulos em
   cinco tamanhos, borda de campo com 1,4:1 de contraste e alvos de toque de 19 a 30 px.

   ELE NASCE AO LADO, NÃO NO LUGAR — igual ao tokens-loja.css. O tokens.css antigo continua
   carregado; os nomes daqui têm prefixo --ln- para nunca colidir com o --ink/--line/--bg dele.
   Uma página migra quando passa a carregar esta folha. A migração anda POR TIPO DE PÁGINA, com
   28 dias de Search Console entre um tipo e o seguinte (chapéu de SEO): esqueleto → home →
   ficha → guia → calculadora.

   FONTES AUTO-HOSPEDADAS (site/fontes/, licença SIL OFL 1.1 ao lado): 34,7 KB da Hanken Grotesk
   variável (300 a 500 no mesmo arquivo) + 21,2 KB da JetBrains Mono 400, subconjunto latino
   (cobre á, ã, ç, é, °, –). Teto do chapéu de SEO: 70 KB. Nenhum IP de visitante vai ao Google.

   FONTE DA VERDADE: interno/tokens-site.tokens.json. O bloco entre TOKENS:INICIO e TOKENS:FIM é
   GERADO por interno/ferramentas/gerar-tokens.py; a guarda tokens-site.test.js recalcula os
   pares de contraste declarados no JSON e reprova se o CSS divergir dele.
   ========================================================================= */

@font-face{
  font-family:"Hanken Grotesk";
  font-style:normal;
  font-display:swap;
  font-weight:300 500;
  src:url(fontes/hanken-grotesk-latin-wght-normal.woff2) format("woff2-variations"),
      url(fontes/hanken-grotesk-latin-wght-normal.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-display:swap;
  font-weight:400;
  src:url(fontes/jetbrains-mono-latin-400-normal.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;
}
/* V-907 (08/10). O manual da marca v1.0: Hanken 300 nos títulos grandes, 400 no texto, 500 em subtítulo e
   botão, e 700 «só para ênfase curta». A face "Hanken Grotesk" acima fica em 300–500 de propósito (as fichas
   do piloto, congeladas até 07/11, não podem ganhar negrito real). O negrito da casca nova é esta FACE À PARTE,
   do mesmo arquivo, que só o <b>/<strong> de .ln pede (linha.css). */
@font-face{
  font-family:"Hanken Grotesk Enfase";
  font-style:normal;
  font-display:swap;
  font-weight:300 700;
  src:url(fontes/hanken-grotesk-latin-wght-normal.woff2) format("woff2-variations"),
      url(fontes/hanken-grotesk-latin-wght-normal.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;
}

/* TOKENS:INICIO — gerado de interno/tokens-site.tokens.json por interno/ferramentas/gerar-tokens.py. Não edite à mão: edite o JSON e rode o gerador. */
:root{
  color-scheme: light;
  --ln-tinta:#0e2430;  /* texto; 15,99:1 sobre papel */
  --ln-texto-2:#56676e;  /* texto secundário; 5,9:1 */
  --ln-rotulo:#4a5a61;  /* rótulo mono de 12 px — mais escuro que o texto-2 porque é menor; 7,18:1 */
  --ln-papel:#ffffff;  /* superfície */
  --ln-fundo:#f1f6f7;  /* faixa clara, cartão de foto sem foto */
  --ln-suave:#e2efe8;  /* fundo do alerta e da aba aberta do menu */
  --ln-linha:#d2dde1;  /* régua decorativa (sem exigência de contraste) */
  --ln-ctl:#7d8f96;  /* borda de CONTROLE (campo, botão secundário); 3,36:1 — era 1,4:1 na v1 */
  --ln-marca:#2e7d4f;  /* ação do aquarista: botão, link; 5,05:1 */
  --ln-marca-hover:#1f5c3a;  /* botão com o mouse em cima — o verde profundo do manual da marca v1.0 (08/10; era #256a42) */
  --ln-sobre-marca:#ffffff;  /* texto sobre o botão */
  --ln-foco:#2e7d4f;  /* anel de foco */
  --ln-noite:#0e2430;  /* bloco escuro FIXO nos dois temas (números da home, degradê sobre foto) */
  --ln-sobre-noite:#ffffff;  /* texto sobre o bloco escuro fixo */
  --ln-destaque:#b9e3a4;  /* linha d'água do logo e unidade pequena sobre --ln-noite; 11,1:1 */
  --ln-est-ok-texto:#1f5c3a;  /* estado ok: texto (V-913, adendo ao manual) */
  --ln-est-ok-fundo:#e2efe8;  /* estado ok: fundo do selo e da caixa (V-913) */
  --ln-est-ok-borda:#9fc7b0;  /* estado ok: borda decorativa; o selo sempre tem texto (V-913) */
  --ln-est-atencao-texto:#7a4e00;  /* estado atenção: texto (V-913, adendo ao manual) */
  --ln-est-atencao-fundo:#fff3d6;  /* estado atenção: fundo do selo e da caixa (V-913) */
  --ln-est-atencao-borda:#e3b04b;  /* estado atenção: borda decorativa; o selo sempre tem texto (V-913) */
  --ln-est-alerta-texto:#a3341c;  /* estado alerta: texto (V-913, adendo ao manual) */
  --ln-est-alerta-fundo:#fbe8e3;  /* estado alerta: fundo do selo e da caixa (V-913) */
  --ln-est-alerta-borda:#e3a08f;  /* estado alerta: borda decorativa; o selo sempre tem texto (V-913) */
  --ln-fonte-texto:"Hanken Grotesk", system-ui, sans-serif;
  --ln-fonte-mono:"JetBrains Mono", ui-monospace, monospace;  /* SÓ para rótulo de 12 px, fonte citada e número de resultado; um tamanho só */
  --ln-peso-leve:300;
  --ln-peso-normal:400;
  --ln-peso-medio:500;  /* botão, link de ação, nome da loja */
  --ln-t-rotulo:.75rem;
  --ln-t-menor:.875rem;
  --ln-t-corpo:1rem;
  --ln-t-lead:1.125rem;
  --ln-t-h3:1.35rem;
  --ln-t-h2:1.5rem;
  --ln-t-dado:1.75rem;  /* número da ficha (54 L, 22–26 °C), peso leve e algarismo tabular */
  --ln-t-h1-celular:1.75rem;  /* título sobre foto no celular, peso normal */
  --ln-t-h1:2.4rem;
  --ln-t-hero:3.4rem;  /* só no computador */
  --ln-e1:.25rem;
  --ln-e2:.5rem;
  --ln-e3:.75rem;
  --ln-e4:1rem;  /* margem lateral do celular (16 px) */
  --ln-e5:1.5rem;
  --ln-e6:2rem;
  --ln-e7:3rem;
  --ln-r1:4px;
  --ln-alvo-toque:44px;
  --ln-alvo-botao:48px;
  --ln-col-pagina:77.5rem;  /* 1.240 px */
  --ln-col-texto:42rem;  /* linha de leitura do guia, ~72 caracteres */
}
/* TEMA ESCURO: só com data-tema="escuro" declarado — nunca pela preferência do sistema (24/09). */
:root[data-tema="escuro"], [data-tema="escuro"]{
  color-scheme: dark;
  --ln-tinta:#e6eef0;
  --ln-texto-2:#9fb2b8;
  --ln-rotulo:#9fb2b8;
  --ln-papel:#0e2430;
  --ln-fundo:#13303d;
  --ln-suave:#13303d;
  --ln-linha:#23404c;
  --ln-ctl:#6d8791;
  --ln-marca:#7cc79a;
  --ln-marca-hover:#95d4ad;
  --ln-sobre-marca:#0e2430;
  --ln-foco:#b9e3a4;
  --ln-est-ok-texto:#7cc79a;
  --ln-est-ok-fundo:#13303d;
  --ln-est-ok-borda:#7cc79a;
  --ln-est-atencao-texto:#f0c36a;
  --ln-est-atencao-fundo:#13303d;
  --ln-est-atencao-borda:#f0c36a;
  --ln-est-alerta-texto:#f29a85;
  --ln-est-alerta-fundo:#13303d;
  --ln-est-alerta-borda:#f29a85;
}
/* TOKENS:FIM */
