/* ============================================================
   Polices — AUTO-HÉBERGÉES, jamais chargées depuis Google Fonts.
   ============================================================

   Le prototype référence `fonts.googleapis.com`. C'est le seul point du prototype qui est
   incompatible avec le socle, et la raison est le jour J : une requête vers un tiers, depuis
   mille téléphones, sur le Wi-Fi d'un amphithéâtre dont on sait déjà qu'il sera mauvais, un
   soir où il n'y a pas de correctif. Les fichiers sont donc servis par AssetMapper, avec le
   reste de l'application.

   `font-display: swap` partout, et ce n'est pas cosmétique : c'est ce qui garantit que le jeu
   reste JOUABLE avec zéro police chargée. Le texte s'affiche immédiatement dans la police
   système, et la police de marque le remplace si elle arrive. Un `block` ou un `optional`
   feraient dépendre la lisibilité d'un téléchargement.

   Sous-ensemble latin uniquement : trois familles en woff2 coûtent déjà une centaine de
   kilo-octets par téléphone au premier chargement, et c'est le moment de la vague d'arrivées.

   ⚠️⚠️ PIÈGE MESURÉ, à ne pas payer deux fois : AssetMapper résout les `url()` au rendu et
   ÉCHOUE EN DUR sur un fichier absent. Ce n'est pas la police qui manque, c'est TOUTE
   L'APPLICATION qui répond 500 — écran joueur, écran projeté, panneau animateur. Constaté en
   déclarant ces règles avant que les fichiers soient là.

   D'où la règle : **ne jamais committer une règle `@font-face` sans son fichier**, et ne jamais
   retirer un fichier sans retirer sa règle. Les deux vont ensemble ou pas du tout.

   Licences : les quatre fichiers sont sous SIL Open Font License 1.1, dont les textes
   accompagnent les polices dans `apps/back/assets/fonts/` — l'OFL l'exige.
*/

@font-face {
    font-family: 'Bodoni Moda';
    src: url("../fonts/BodoniModa-Variable-Meettz2.woff2") format('woff2');
    font-weight: 400 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'IBM Plex Sans';
    src: url("../fonts/IBMPlexSans-Regular-dCzU-sz.woff2") format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'IBM Plex Sans';
    src: url("../fonts/IBMPlexSans-SemiBold-pA5FLX3.woff2") format('woff2');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'IBM Plex Mono';
    src: url("../fonts/IBMPlexMono-Regular-78NWkmx.woff2") format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

/* Les deux faces ci-dessous sont ajoutées par la refonte de charte (#36). Elles ne sont pas
   du confort typographique : sans elles, le navigateur SYNTHÉTISE, et la synthèse se voit.

   Mono 600 porte les grands chiffres — chronos du téléphone, scores et décompte de l'écran
   projeté. Ce sont les caractères les plus regardés de la soirée, et un faux-gras sur du
   chiffre monospace épaissit les fûts sans épaissir les empattements : les chiffres perdent
   leur alignement optique en colonne, exactement ce que `tabular-nums` cherche à garantir.

   Bodoni italique porte les commentaires de la maquette — « Tu rejoins l'équipe », « Edison
   prend la tête », « reste assis ». Un faux italique est une oblique : la lettre est
   cisaillée, pas redessinée. Sur un Didone, dont tout le caractère tient au contraste entre
   pleins et déliés et à des empattements filiformes horizontaux, l'oblique casse justement
   ces empattements en biais. C'est la face dont l'absence se voyait le plus.

   Coût : +64 Ko, dont 54 pour l'italique. C'est plus que le romain (46 Ko), ce qui surprend
   pour une variante — l'italique de Bodoni Moda est un dessin séparé, pas une inclinaison,
   et il porte son propre jeu de glyphes complet.

   Plex Sans 700 de la maquette n'est PAS repris : l'écart avec le 600 déjà chargé ne se lit
   pas à bout de bras dans une salle sombre, et il coûterait 24 Ko à chaque téléphone au
   moment de la vague d'arrivées. */

@font-face {
    font-family: 'IBM Plex Mono';
    src: url("../fonts/IBMPlexMono-SemiBold-fzPWCu4.woff2") format('woff2');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Bodoni Moda';
    src: url("../fonts/BodoniModa-Italic-Variable-LR6KWsj.woff2") format('woff2');
    font-weight: 400 900;
    font-style: italic;
    font-display: swap;
}
