/* ═══════════════════════════════════════════════════════════════════════════
   POLICES AUTO-HÉBERGÉES — Inter, et Geist Mono.

   ⚠ UNE FAMILLE DE TEXTE, ET UNE SEULE : INTER (2026-09-08).
   Le dépôt a porté six familles, puis deux. Il en porte une. Geist — sans —
   sort avec ses deux .woff2 ; Satoshi et Clash Display étaient déjà partis.

   L'argument n'est pas le goût. Deux familles qui diffèrent sans que le lecteur
   puisse dire POURQUOI ne sont pas une intention, ce sont deux couches
   sédimentées. Inter est dessinée pour l'interface à petite taille — c'est
   exactement ce que ce produit affiche : des étiquettes de 11 à 13 px au-dessus
   de chiffres. Elle porte des chiffres tabulaires (`tnum`) que systeme.css
   active sur <body> : les colonnes s'alignent SANS police chassée.

   ⚠ LA SECONDE FAMILLE EST UN CHOIX, PAS UN RESTE — GEIST MONO.
   Elle sert UN emploi et il est nommé : ce qui doit s'aligner caractère par
   caractère et non chiffre par chiffre — le ticker, le code ISIN, l'extrait de
   code, la colonne du Terminal où un `+1 234,50` et un `-12,04` doivent tomber
   l'un sous l'autre à la virgule près. `tnum` aligne les chiffres, pas les
   signes ni les lettres. Partout ailleurs — et c'est la majorité des chiffres
   du site — c'est Inter avec ses tabulaires.

   Pourquoi Geist Mono et pas une autre : Inter n'a pas de chassée sœur, et
   Geist Mono est dessinée sur un squelette dérivé d'Inter (même hauteur d'x,
   mêmes terminaisons coupées à l'horizontale). Elle est déjà chez nous, sous
   OFL 1.1, pour 38 Ko. Une troisième famille aurait été un ton étranger de plus
   au moment exact où le chiffre et la phrase doivent se lire ensemble.

   ⚠ LA RÈGLE DE 2026-08-28 TIENT : on copie la ressource, on n'ouvre JAMAIS un
   domaine dans la CSP pour la faire entrer. C'est ce qui avait été fait pour
   Chart.js et Lightweight Charts. Geist était chargée depuis fonts.googleapis
   par 32 gabarits — une dépendance externe sur le chemin critique de rendu de
   chaque page, qui ne cassait jamais assez fort pour se faire remarquer.

   ⚠ POLICES VARIABLES, AXE 100–900. Un seul fichier par jeu de caractères pour
   toutes les graisses ; `font-weight: 100 900` le déclare. Les déclarations en
   800 et 900 du dépôt sont rendues par la police, plus synthétisées depuis un
   700 par le navigateur.

   ⚠ SEULS `latin` ET `latin-ext` SONT EMBARQUÉS. `latin` (48 Ko) couvre les
   cinq langues du site ; `latin-ext` n'est téléchargé QUE si un glyphe de sa
   plage paraît — un nom d'émetteur tchèque ou polonais du catalogue — grâce au
   `unicode-range`. Le cyrillique, le grec et le vietnamien que Google sert par
   défaut ne servaient aucune des cinq langues. Si une sixième langue arrive et
   sort du latin, c'est ICI que ça se voit : la page rendra simplement des
   caractères de secours, sans lever d'erreur.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Inter — le texte, l'interface, les titres, et presque tous les chiffres ── */

@font-face {
  font-family: 'Inter';
  src: url('/static/fonts/inter-latin.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  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: 'Inter';
  src: url('/static/fonts/inter-latin-ext.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  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;
}

/* ── Geist Mono — la colonne, le ticker, le code. Et rien d'autre. ─────────── */

@font-face {
  font-family: 'Geist Mono';
  src: url('/static/fonts/geist-mono-latin.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  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: 'Geist Mono';
  src: url('/static/fonts/geist-mono-latin-ext.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  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;
}
