/* ============================================================
   Kyneria — fontes auto-hébergées (Inter + Fraunces)
   ============================================================

   🔴 POURQUOI CE FICHIER EXISTE (2026-08-06)

   Les 57 écrans opérateur chargeaient leurs fontes par un
   `<link rel="stylesheet" href="https://fonts.googleapis.com/…">`.
   Une feuille de style bloque l'analyse du document : tant qu'elle
   n'a pas répondu, aucun `<script>` placé après elle ne s'exécute,
   donc `DOMContentLoaded` ne se produit pas.

   Mesuré le 2026-08-06 : quand fonts.googleapis.com est injoignable,
   la page reste BLANCHE jusqu'au délai d'expiration du navigateur.
   Toutes les requêtes hors localhost coupées, la même page devient
   interactive en 653 ms.

   Conséquence produit : un hôtel avec une connexion instable, ou
   dans un pays qui bloque Google (Chine), n'ouvre pas l'application.
   Un logiciel de caisse et de réception ne peut pas dépendre d'un
   tiers pour s'afficher.

   Les fichiers sont dans `public/fonts/` (servi à la racine par
   Vite comme par serve.py), et le service worker en précharge les
   deux du chemin latin : la typographie survit au mode hors ligne.

   ── Inter est chargée en VERSION VARIABLE (un fichier, 100→900)
   plutôt qu'en 7 fichiers statiques. Ce n'est pas un raccourci :
   le code demande 13 graisses intermédiaires (320, 325, 330, 335,
   340, 350, 360, 380, 420, 430, 550, 560) que des fichiers statiques
   ne savent pas rendre — ils les arrondiraient à la graisse voisine.

   ── Trois alphabets seulement : latin, latin-ext (le turc a besoin
   de ş ğ İ) et cyrillic (le russe). Ce sont les seuls des 12 langues
   du produit qu'Inter couvre ; l'arabe, l'hindi, le japonais et le
   chinois tombent sur la fonte du système, comme aujourd'hui.
   Grâce à `unicode-range`, le navigateur ne télécharge QUE le
   fichier dont sa page a besoin : 48 Ko pour un écran français.

   ── Pas d'italique Inter : aucune page n'en demandait à Google.
   Le rendu reste identique (le navigateur la synthétise, comme avant).

   Fontes sous SIL Open Font License 1.1 — voir public/fonts/OFL.txt.
   ============================================================ */

/* ── Inter (corps de texte) — variable 100→900 ───────────────── */

@font-face {
  font-family: Inter;
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/fonts/inter-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

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

/* Déclaré en DERNIER : là où deux plages se recouvrent (U+0304, U+0308,
   U+0329), c'est la dernière règle qui l'emporte. Google sert ses blocs
   dans cet ordre — on le reproduit pour un rendu identique. */
@font-face {
  font-family: Inter;
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/fonts/inter-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;
}

/* ── Fraunces (titres) — variable 300→600, romain + italique ──
   Mêmes fichiers que les pages vitrine, qui les auto-hébergent
   depuis juillet. La graisse maximale utilisée par le produit est
   600 : la plage du fichier couvre tout ce que le code demande. */

@font-face {
  font-family: Fraunces;
  font-style: normal;
  font-weight: 300 600;
  font-display: swap;
  src: url('/fonts/fraunces-latin-roman.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: Fraunces;
  font-style: italic;
  font-weight: 300 600;
  font-display: swap;
  src: url('/fonts/fraunces-latin-italic.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;
}
