/*
 * Fontes do modelo "alto padrão" — servidas por nós, não pelo Google.
 *
 * POR QUE SELF-HOSTED: o Google Fonts é um terceiro na cadeia crítica (mais um DNS, mais um TLS,
 * mais uma origem que pode estar lenta) e, desde que o cache compartilhado entre sites acabou, não
 * dá mais nenhuma vantagem de cache. Servidas daqui, elas saem da mesma conexão do HTML.
 *
 * ESCOLHA DAS FAMÍLIAS: serifada editorial de display + grotesca neutra + monoespaçada só para
 * número. É a gramática do topo do mercado, verificada arquivo por arquivo (Inigo usa Big Caslon +
 * Söhne; Knight Frank, Tiempos Headline + Suisse Int'l; Aucoot, Copernicus + Maison Neue). Em
 * oposição ao vocabulário do template, que é Playfair Display, Inter, Raleway, Didot e Bodoni —
 * medidos em imobiliária de alto padrão real. Ver docs/site-novo/DECISOES_DESIGN.md.
 *
 * DUAS DECISÕES MEDIDAS AQUI, e uma delas corrige a recomendação da pesquisa:
 *
 * 1. **O eixo óptico do Newsreader ficou de fora.** A pesquisa o chamou de "ganho de graça". Não é:
 *    medido no próprio arquivo do Google, `Newsreader:opsz,wght@6..72,200..800` no subconjunto latin
 *    pesa **131.848 bytes** e `Newsreader:wght@400..700` pesa **58.152** — o eixo custa 73 KB,
 *    127% mais. O orçamento do hero inteiro é 120–180 KB. Num título que vai de 18px a 72px o
 *    ganho do eixo é real mas fino; 73 KB não são finos.
 *
 * 2. **O IBM Plex Mono entra em DOIS pesos estáticos, não na variável.** A variável existe
 *    (`@ibm/plex-mono-variable@1.0.0`, ~32 KB) e os dois estáticos somam 35 KB — praticamente
 *    empate em bytes. O desempate é outro: com arquivos separados o navegador **só baixa o peso
 *    que uma regra usa de verdade**. Página que não tem preço em destaque não baixa o SemiBold.
 *    A variável sempre traz tudo.
 *
 * MÉTRICA CASADA: cada família tem uma "… fallback" com `size-adjust` e os overrides calculados dos
 * arquivos reais (altura-x para as proporcionais, largura de avanço para a monoespaçada, que é
 * exata). Com isso a reserva do sistema ocupa quase o mesmo espaço da fonte final, e a troca não
 * empurra o texto — que é a causa mais comum de deslocamento de layout com fonte de display.
 *
 * `font-display: swap`: a fonte APARECE. `optional` daria zero deslocamento, mas em conexão lenta
 * simplesmente não troca — pagar 58 KB por uma fonte que o visitante de celular não vê é pior.
 * O deslocamento fica resolvido pela métrica casada, que é o instrumento certo para isso.
 */

/* ---------------------------------------------------------------- Newsreader */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/fontes/newsreader-latin.woff2') format('woff2');
  /* latin: cobre todo o português (ã ç õ á é í ó ú â ê ô estão em U+0080–00FF). */
  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: 'Newsreader fallback';
  src: local('Times New Roman'), local('Times'), local('Liberation Serif');
  size-adjust: 95.25%;
  ascent-override: 77.17%;
  descent-override: 27.82%;
  line-gap-override: 0%;
}

/* ----------------------------------------------------------- Instrument Sans */
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/fontes/instrument-sans-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 Sans fallback';
  src: local('Arial'), local('Helvetica'), local('Liberation Sans');
  size-adjust: 98.35%;
  ascent-override: 98.63%;
  descent-override: 25.42%;
  line-gap-override: 0%;
}

/* ------------------------------------------------------------- IBM Plex Mono */
/* Só dois pesos, e cada um em arquivo próprio: 400 para metadado (m², dormitórios) e 600 para
   preço. O navegador baixa o 600 só nas páginas que têm preço em destaque. */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fontes/plex-mono-Regular.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+2000-206F, U+2122, U+2212, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/fontes/plex-mono-SemiBold.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+2000-206F, U+2122, U+2212, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Mono fallback';
  src: local('Courier New'), local('Courier'), local('Liberation Mono');
  size-adjust: 99.98%;
  ascent-override: 78.01%;
  descent-override: 22%;
  line-gap-override: 30%;
}
