/*!
 * fonts.css — tipografia local do Leroy Academy (substitui o fonts.googleapis.com)
 * -------------------------------------------------------------------------------
 * PORQUÊ: as páginas pedem `font-family:'Inter',sans-serif` e 'JetBrains Mono', que vinham
 * do Google Fonts. O ART_BRIEF proíbe CDN em produção, e sem rede o layout caía direto no
 * sans-serif genérico — texto ~7% mais estreito e caixas do HUD desalinhadas.
 *
 * COMO FUNCIONA: não há arquivo de fonte aqui (não temos acesso à internet para baixar o
 * Inter original, e redistribuí-lo exigiria embarcar a licença OFL). Em vez disso,
 * publicamos a MELHOR pilha de fontes de sistema disponível SOB O NOME 'Inter', via
 * @font-face com `src: local(...)`. Para o HTML nada muda: quem pedir 'Inter' recebe
 * Segoe UI Variable no Windows 11, Segoe UI no Windows 10, Roboto no Android,
 * Helvetica Neue no macOS — e o Inter de verdade, se estiver instalado.
 *
 * POR QUE AS REGRAS ESTÃO EM ORDEM "PIOR PRIMEIRO":
 * quando várias @font-face declaram a MESMA família e o MESMO peso, o navegador usa a
 * ÚLTIMA que conseguir carregar e volta para a anterior quando o `local()` falha.
 * (Medido neste projeto no Chrome: regra com local('Arial') + size-adjust:200% declarada
 * ANTES de uma regra que falha resultou em Arial a 200% — houve cascata; e com as duas
 * funcionando, venceu a ÚLTIMA.) Por isso: genérico primeiro, Windows depois, Inter real
 * por último. Assim cada plataforma recebe o size-adjust calibrado para ELA, em vez de um
 * único valor de compromisso.
 *
 * CALIBRAGEM (é isto que impede o layout de "pular" ao trocar o CDN pelo arquivo local):
 *   size-adjust     = largura média de avanço do Inter ÷ a da fonte substituta
 *   ascent-override = 1984/2048 ÷ size-adjust      (ascendente hhea do Inter = 0,96875 em)
 *   descent-override=  494/2048 ÷ size-adjust      (descendente hhea do Inter = 0,24121 em)
 *   line-gap-override = 0%                          (o Inter tem lineGap 0)
 * A divisão pelo size-adjust é necessária porque o CSS aplica os overrides sobre o em JÁ
 * escalado — sem ela a altura de linha mudaria junto com a largura.
 *
 * Origem dos números de largura:
 *   - Inter ÷ Arial = 1,0740 — razão publicada e conferida: 0,9020 × 1,0740 = 0,96875,
 *     que bate exatamente com o ascendente hhea do Inter.
 *   - Arial ÷ Segoe UI = 1,0333 e Arial ÷ Segoe UI Variable Text = 1,0383 — MEDIDOS neste
 *     projeto (canvas measureText, 100px, amostra de texto pt-BR do jogo, Windows 11).
 *     Logo: Inter ÷ Segoe UI = 1,1111 e Inter ÷ Segoe UI Variable = 1,1151; usamos 111,3%
 *     para as duas (erro máximo de 0,2%, imperceptível).
 *
 * LIMITAÇÃO CONHECIDA E NÃO VALIDADA: as razões de macOS (Helvetica Neue) e Android
 * (Roboto) não puderam ser medidas — não há essas fontes nesta máquina. Elas usam o valor
 * do Arial (107,40%), do qual diferem pouco. Se um dia houver acesso a essas plataformas,
 * refaça a medição com o mesmo método descrito acima.
 */

/* =====================================================================
   INTER — nível 1: fallback genérico (macOS, Android, Linux, Windows antigo)
   size-adjust 107,40%  ->  ascent 0,96875/1,0740 = 90,20% | descent 0,24121/1,0740 = 22,46%
   ===================================================================== */
@font-face{font-family:'Inter';font-style:normal;font-weight:300;src:local('Helvetica Neue Light'),local('Roboto Light'),local('Arial');size-adjust:107.40%;ascent-override:90.20%;descent-override:22.46%;line-gap-override:0%}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;src:local('Helvetica Neue'),local('Roboto'),local('Arial');size-adjust:107.40%;ascent-override:90.20%;descent-override:22.46%;line-gap-override:0%}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;src:local('Helvetica Neue Medium'),local('Roboto Medium'),local('Arial');size-adjust:107.40%;ascent-override:90.20%;descent-override:22.46%;line-gap-override:0%}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;src:local('Helvetica Neue Medium'),local('Roboto Medium'),local('Arial Bold'),local('Arial');size-adjust:107.40%;ascent-override:90.20%;descent-override:22.46%;line-gap-override:0%}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;src:local('Helvetica Neue Bold'),local('Roboto Bold'),local('Arial Bold'),local('Arial');size-adjust:107.40%;ascent-override:90.20%;descent-override:22.46%;line-gap-override:0%}
@font-face{font-family:'Inter';font-style:normal;font-weight:800;src:local('Helvetica Neue Bold'),local('Roboto Black'),local('Arial Black'),local('Arial Bold'),local('Arial');size-adjust:107.40%;ascent-override:90.20%;descent-override:22.46%;line-gap-override:0%}
@font-face{font-family:'Inter';font-style:normal;font-weight:900;src:local('Roboto Black'),local('Arial Black'),local('Arial Bold'),local('Arial');size-adjust:107.40%;ascent-override:90.20%;descent-override:22.46%;line-gap-override:0%}
@font-face{font-family:'Inter';font-style:italic;font-weight:100 900;src:local('Helvetica Neue Italic'),local('Roboto Italic'),local('Arial Italic');size-adjust:107.40%;ascent-override:90.20%;descent-override:22.46%;line-gap-override:0%}

/* =====================================================================
   INTER — nível 2: Windows (vence o nível 1 quando as fontes existem)
   Cada peso aponta para a família Segoe correspondente, então 600/700/800/900 saem com
   desenho real de semibold/bold/black — e não com negrito sintético, que borra o HUD.
   size-adjust 111,30%  ->  ascent 0,96875/1,1130 = 87,04% | descent 0,24121/1,1130 = 21,67%
   ===================================================================== */
@font-face{font-family:'Inter';font-style:normal;font-weight:300;src:local('Segoe UI Variable Text Light'),local('Segoe UI Light'),local('Segoe UI Semilight');size-adjust:111.30%;ascent-override:87.04%;descent-override:21.67%;line-gap-override:0%}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;src:local('Segoe UI Variable Text'),local('Segoe UI Variable Text Regular'),local('Segoe UI');size-adjust:111.30%;ascent-override:87.04%;descent-override:21.67%;line-gap-override:0%}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;src:local('Segoe UI Variable Text Medium'),local('Segoe UI Variable Text'),local('Segoe UI');size-adjust:111.30%;ascent-override:87.04%;descent-override:21.67%;line-gap-override:0%}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;src:local('Segoe UI Variable Text Semibold'),local('Segoe UI Semibold'),local('Segoe UI Bold');size-adjust:111.30%;ascent-override:87.04%;descent-override:21.67%;line-gap-override:0%}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;src:local('Segoe UI Variable Display Bold'),local('Segoe UI Bold'),local('Segoe UI Semibold');size-adjust:111.30%;ascent-override:87.04%;descent-override:21.67%;line-gap-override:0%}
@font-face{font-family:'Inter';font-style:normal;font-weight:800;src:local('Segoe UI Variable Display Bold'),local('Segoe UI Black'),local('Segoe UI Bold');size-adjust:111.30%;ascent-override:87.04%;descent-override:21.67%;line-gap-override:0%}
@font-face{font-family:'Inter';font-style:normal;font-weight:900;src:local('Segoe UI Black'),local('Segoe UI Variable Display Bold'),local('Segoe UI Bold');size-adjust:111.30%;ascent-override:87.04%;descent-override:21.67%;line-gap-override:0%}
@font-face{font-family:'Inter';font-style:italic;font-weight:100 900;src:local('Segoe UI Italic');size-adjust:111.30%;ascent-override:87.04%;descent-override:21.67%;line-gap-override:0%}

/* =====================================================================
   INTER — nível 3: o Inter de verdade, se estiver instalado na máquina.
   Sem nenhum ajuste: as métricas nativas já são o alvo.
   ===================================================================== */
@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;src:local('Inter Variable'),local('InterVariable'),local('Inter')}
@font-face{font-family:'Inter';font-style:normal;font-weight:300;src:local('Inter Light')}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;src:local('Inter Regular'),local('Inter')}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;src:local('Inter Medium')}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;src:local('Inter SemiBold'),local('Inter Semibold')}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;src:local('Inter Bold')}
@font-face{font-family:'Inter';font-style:normal;font-weight:800;src:local('Inter ExtraBold'),local('Inter Extrabold')}
@font-face{font-family:'Inter';font-style:normal;font-weight:900;src:local('Inter Black')}
@font-face{font-family:'Inter';font-style:italic;font-weight:100 900;src:local('Inter Italic')}

/* =====================================================================
   JETBRAINS MONO — usada nas etiquetas técnicas do HUD (.key, .df-time, .email-addr,
   .password-display...). Vinha do mesmo <link> do Google Fonts, então precisa de
   substituto local ou essas caixas encolhem junto com o texto.
   Alvo (JetBrains Mono): avanço 0,600 em · ascendente 1,020 em · descendente 0,300 em.
     genérico (avanço 0,600 em, igual)      -> size-adjust 100%    · asc 102,00% · desc 30,00%
     Consolas (avanço 1126/2048 = 0,5498)   -> size-adjust 109,13% · asc  93,47% · desc 27,49%
     Cascadia Mono (1200/2048 = 0,5859)     -> size-adjust 102,41% · asc  99,60% · desc 29,29%
   (o avanço do Cascadia Mono foi confirmado por medição nesta máquina: 0,586 em)
   ===================================================================== */
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;src:local('SF Mono Regular'),local('Menlo'),local('Roboto Mono'),local('DejaVu Sans Mono'),local('Courier New');size-adjust:100%;ascent-override:102.00%;descent-override:30.00%;line-gap-override:0%}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;src:local('SF Mono Medium'),local('Menlo'),local('Roboto Mono Medium'),local('DejaVu Sans Mono'),local('Courier New');size-adjust:100%;ascent-override:102.00%;descent-override:30.00%;line-gap-override:0%}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:700;src:local('SF Mono Bold'),local('Menlo Bold'),local('Roboto Mono Bold'),local('Courier New Bold'),local('Courier New');size-adjust:100%;ascent-override:102.00%;descent-override:30.00%;line-gap-override:0%}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;src:local('Consolas');size-adjust:109.13%;ascent-override:93.47%;descent-override:27.49%;line-gap-override:0%}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;src:local('Consolas');size-adjust:109.13%;ascent-override:93.47%;descent-override:27.49%;line-gap-override:0%}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:700;src:local('Consolas Bold'),local('Consolas');size-adjust:109.13%;ascent-override:93.47%;descent-override:27.49%;line-gap-override:0%}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;src:local('Cascadia Mono'),local('Cascadia Code');size-adjust:102.41%;ascent-override:99.60%;descent-override:29.29%;line-gap-override:0%}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;src:local('Cascadia Mono SemiBold'),local('Cascadia Mono'),local('Cascadia Code');size-adjust:102.41%;ascent-override:99.60%;descent-override:29.29%;line-gap-override:0%}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:700;src:local('Cascadia Mono Bold'),local('Cascadia Code Bold'),local('Cascadia Mono');size-adjust:102.41%;ascent-override:99.60%;descent-override:29.29%;line-gap-override:0%}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:100 900;src:local('JetBrains Mono'),local('JetBrainsMono-Regular')}

/* =====================================================================
   RAJDHANI — usada só nos títulos da landing (index.php). Substituto de melhor esforço:
   Bahnschrift (Windows) tem o mesmo espírito geométrico-condensado.
   SEM calibragem de métrica: não há Rajdhani nesta máquina para medir a razão de largura,
   e chutar um size-adjust seria pior do que não ter nenhum. Títulos curtos toleram isto.
   ===================================================================== */
@font-face{font-family:'Rajdhani';font-style:normal;font-weight:400 500;src:local('Bahnschrift'),local('Roboto Condensed'),local('Arial Narrow'),local('Segoe UI')}
@font-face{font-family:'Rajdhani';font-style:normal;font-weight:600 900;src:local('Bahnschrift SemiBold'),local('Bahnschrift'),local('Roboto Condensed Bold'),local('Arial Narrow Bold'),local('Segoe UI Semibold')}
@font-face{font-family:'Rajdhani';font-style:normal;font-weight:400 900;src:local('Rajdhani')}

/* =====================================================================
   ORBITRON — usada só em grafico_personagens.html (documento de apoio, fora do
   fluxo do jogo), que a importa do Google Fonts dentro do próprio <style>.
   Está aqui para que esse arquivo também possa ficar offline sem virar
   "monospace genérico" no meio dos números. Mesmo critério do Rajdhani:
   nenhuma calibragem de largura, porque não há Orbitron nesta máquina para medir.
   ===================================================================== */
@font-face{font-family:'Orbitron';font-style:normal;font-weight:400 500;src:local('Bahnschrift'),local('Eurostile'),local('Segoe UI Variable Display'),local('Segoe UI')}
@font-face{font-family:'Orbitron';font-style:normal;font-weight:600 900;src:local('Bahnschrift SemiBold'),local('Segoe UI Variable Display Bold'),local('Segoe UI Bold')}
/* Por último, como no resto do arquivo: o Orbitron de verdade vence se existir. */
@font-face{font-family:'Orbitron';font-style:normal;font-weight:400 900;src:local('Orbitron')}
