/* ════════════════════════════════════════════════════════════════════════════════════════════
   EAGLE — camada tipográfica v2. 24/08/2026.  Parte do design system.

   PORQUÊ
   A v1 declarava 12 faces com font-display:swap e ZERO compensação de métrica. O primeiro pintar
   saía com a fonte de recurso; quando a Saira e a Barlow chegavam (~1,3 s) a página refluía toda.
   Medido em produção, ecrã 390px, 4G lento e CPU estrangulada 4x:

       hub de ferramentas  CLS 0,321        ficha de composto   CLS 0,314
       biblioteca          CLS 0,280        Super Calculadora   CLS 0,275
       gate                CLS 0,153        (limite do Google: 0,100)

   No desktop era invisível (0,007–0,037). No telemóvel — 68% das encomendas do mercado — chegava
   a TRÊS VEZES o limite. A atribuição por PerformanceObserver mostrou um salto único de 0,266 aos
   ~1,4 s a mover main#principal de y=215 para y=169.

   A CAUSA, MEDIDA
   Métricas reais contra a fonte de recurso, a 100px:
       Saira Condensed 800   largura -25,6%   altura +41,1%
       Barlow 700            largura -22,4%   altura  +2,6%
       Barlow 400            largura  -6,2%   altura  +7,1%
   Um título 41% mais baixo que depois cresce empurra tudo o que vem abaixo.

   A CORREÇÃO E COMO SE CHEGOU A ELA
   Faces de recurso com size-adjust, ascent-override e descent-override calibrados por ITERAÇÃO no
   navegador: renderiza-se a mesma frase na fonte real e na de recurso, mede-se a caixa das duas,
   ajusta-se e repete-se até o desvio cair abaixo de 1%. Resultado: **menos de 0,85%** — sub-pixel.

   A calibração correu contra Liberation Sans e Liberation Sans Narrow, que são metricamente
   compatíveis com Arial e Arial Narrow por desenho. É por isso que os valores servem para o Arial
   que os utilizadores têm, e não só para o Linux onde foram medidos.

   Duas armadilhas encontradas pelo caminho, registadas para quem repetir:
     · o Chromium guarda a face em CACHE pelo nome da família — recalibrar com o mesmo nome faz
       com que ele ignore os descritores novos. Use nome único por iteração.
     · local('Arial') não resolve em Linux; a face fica inválida e os descritores não se aplicam,
       sem erro nenhum. O sintoma é o desvio ficar congelado entre iterações.

   O swap MANTÉM-SE. Com a métrica compensada ele é seguro: a fonte de recurso ocupa o mesmo
   espaço, portanto a troca não move nada.
   ════════════════════════════════════════════════════════════════════════════════════════════ */

@font-face{font-family:'Barlow';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/barlow-400-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:'Barlow';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/barlow-400-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:'Barlow';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/barlow-600-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:'Barlow';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/barlow-600-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:'Barlow';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/barlow-700-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:'Barlow';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/barlow-700-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:'Barlow';font-style:normal;font-weight:800;font-display:swap;src:url('/assets/fonts/barlow-800-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:'Barlow';font-style:normal;font-weight:800;font-display:swap;src:url('/assets/fonts/barlow-800-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:'Saira Condensed';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/saira-condensed-700-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:'Saira Condensed';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/saira-condensed-700-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:'Saira Condensed';font-style:normal;font-weight:800;font-display:swap;src:url('/assets/fonts/saira-condensed-800-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:'Saira Condensed';font-style:normal;font-weight:800;font-display:swap;src:url('/assets/fonts/saira-condensed-800-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}


/* ── Pesos acrescentados a 27/08/2026, por decisão do dono: escala completa, carregada
   SOB DEMANDA. Nenhum destes entra em `preload` — o navegador só baixa o arquivo se uma
   tela realmente pedir aquele peso. Custo para quem visita hoje: zero byte.
   As faces de recurso abaixo tiveram as FAIXAS alargadas para os cobrir: um peso sem
   recurso métrico não tem compensação nenhuma, e foi exactamente isso que levou o CLS a
   0,321 no telemóvel antes da v2. A calibração foi medida em 400/700/800; fora desses
   pesos ela é aproximada — quem passar a usar 100–300 ou 900 a sério deve recalibrar
   pelo mesmo método descrito no cabeçalho. */
@font-face{font-family:'Barlow';font-style:normal;font-weight:100;font-display:swap;src:url('/assets/fonts/barlow-100-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:'Barlow';font-style:normal;font-weight:100;font-display:swap;src:url('/assets/fonts/barlow-100-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:'Barlow';font-style:normal;font-weight:200;font-display:swap;src:url('/assets/fonts/barlow-200-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:'Barlow';font-style:normal;font-weight:200;font-display:swap;src:url('/assets/fonts/barlow-200-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:'Barlow';font-style:normal;font-weight:300;font-display:swap;src:url('/assets/fonts/barlow-300-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:'Barlow';font-style:normal;font-weight:300;font-display:swap;src:url('/assets/fonts/barlow-300-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:'Barlow';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/barlow-500-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:'Barlow';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/barlow-500-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:'Barlow';font-style:normal;font-weight:900;font-display:swap;src:url('/assets/fonts/barlow-900-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:'Barlow';font-style:normal;font-weight:900;font-display:swap;src:url('/assets/fonts/barlow-900-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:'Saira Condensed';font-style:normal;font-weight:100;font-display:swap;src:url('/assets/fonts/saira-condensed-100-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:'Saira Condensed';font-style:normal;font-weight:100;font-display:swap;src:url('/assets/fonts/saira-condensed-100-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:'Saira Condensed';font-style:normal;font-weight:200;font-display:swap;src:url('/assets/fonts/saira-condensed-200-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:'Saira Condensed';font-style:normal;font-weight:200;font-display:swap;src:url('/assets/fonts/saira-condensed-200-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:'Saira Condensed';font-style:normal;font-weight:300;font-display:swap;src:url('/assets/fonts/saira-condensed-300-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:'Saira Condensed';font-style:normal;font-weight:300;font-display:swap;src:url('/assets/fonts/saira-condensed-300-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:'Saira Condensed';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/saira-condensed-400-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:'Saira Condensed';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/saira-condensed-400-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:'Saira Condensed';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/saira-condensed-500-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:'Saira Condensed';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/saira-condensed-500-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:'Saira Condensed';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/saira-condensed-600-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:'Saira Condensed';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/saira-condensed-600-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:'Saira Condensed';font-style:normal;font-weight:900;font-display:swap;src:url('/assets/fonts/saira-condensed-900-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:'Saira Condensed';font-style:normal;font-weight:900;font-display:swap;src:url('/assets/fonts/saira-condensed-900-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}
/* ── Faces de recurso com métrica compensada ─────────────────────────────────────────────────
   Não são fontes novas — é a fonte do sistema, ajustada para calçar a métrica da fonte real.
   Valores calibrados a 24/08/2026; desvio residual < 0,85%. */

@font-face {
  font-family: 'Barlow Recurso';
  src: local('Arial'), local('Liberation Sans'), local('Helvetica Neue'), local('Roboto');
  font-weight: 100 500;
  size-adjust: 96.17%;
  ascent-override: 102.86%;
  descent-override: 20.57%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Barlow Recurso';
  src: local('Arial Bold'), local('Arial'), local('Liberation Sans Bold'), local('Roboto');
  font-weight: 600 900;
  size-adjust: 92.91%;
  ascent-override: 107.33%;
  descent-override: 21.47%;
  line-gap-override: 0%;
}
/* Saira Condensed nos pesos LEVES (100–600). Antes de 27/08 a família só existia em 700 e 800,
   e a face de recurso cobria só essa faixa. Ao abrir a escala, os pesos leves ficariam SEM
   compensação métrica nenhuma — o defeito que a v2 existe para corrigir. Usa o Arial Narrow
   normal (não o negrito) e herda a mesma calibração de largura, que numa condensada varia pouco
   com o peso. É APROXIMAÇÃO: medida em 700/800, não em 100–600. */
@font-face {
  font-family: 'Saira Condensed Recurso';
  src: local('Arial Narrow'), local('Liberation Sans Narrow'), local('Roboto Condensed'), local('Arial');
  font-weight: 100 600;
  size-adjust: 86.58%;
  ascent-override: 132.25%;
  descent-override: 51.04%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Saira Condensed Recurso';
  src: local('Arial Narrow'), local('Liberation Sans Narrow'), local('Roboto Condensed'), local('Arial');
  font-weight: 700 900;
  size-adjust: 86.58%;
  ascent-override: 132.25%;
  descent-override: 51.04%;
  line-gap-override: 0%;
}

/* ── As pilhas oficiais ──────────────────────────────────────────────────────────────────────
   Nada no site deve nomear estas fontes fora daqui ou de eagle-ds.css. */
:root {
  --ep-fonte-titulo: 'Saira Condensed', 'Saira Condensed Recurso', 'Arial Narrow', Arial, sans-serif;
  --ep-fonte-texto:  'Barlow', 'Barlow Recurso', Arial, system-ui, sans-serif;
  --ep-fonte-mono:   ui-monospace, SFMono-Regular, Menlo, monospace;
}
