/* ==========================================================
   fonts.css - IBM Plex, auto-hébergé

   Servi depuis notre domaine plutôt que depuis Google Fonts.
   Trois raisons, dans l'ordre :

   1. Vie privée. Une requête vers fonts.gstatic.com envoie
      l'adresse IP du visiteur à un tiers sur chaque page. Un
      tribunal allemand a jugé cela contraire au RGPD en 2022.
      Notre page de confidentialité affirme qu'aucun tiers ne
      reçoit rien : ce fichier est ce qui rend l'affirmation vraie.
   2. Vitesse. Plus de résolution DNS ni de poignée de main TLS
      vers un domaine séparé avant le premier texte.
   3. Fiabilité. Le site ne dépend plus de la disponibilité d'un
      service qui n'est pas le nôtre.

   Sous-ensembles au latin et à la ponctuation réellement
   employée : 465 Ko de fichiers complets ramenés à 119 Ko.
   ========================================================== */

/* font-display: swap — le texte s'affiche immédiatement dans la
   police de secours, puis bascule. L'alternative, "block", laisse
   trois secondes de page blanche pour une raison typographique. */

@font-face {
  font-family: 'IBM Plex Sans';
  src: url('/assets/fonts/IBMPlexSans-Light.woff2') format('woff2');
  font-weight: 300; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'IBM Plex Sans';
  src: url('/assets/fonts/IBMPlexSans-Regular.woff2') format('woff2');
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'IBM Plex Sans';
  src: url('/assets/fonts/IBMPlexSans-Medium.woff2') format('woff2');
  font-weight: 500; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'IBM Plex Sans';
  src: url('/assets/fonts/IBMPlexSans-SemiBold.woff2') format('woff2');
  font-weight: 600; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'IBM Plex Sans';
  src: url('/assets/fonts/IBMPlexSans-Bold.woff2') format('woff2');
  font-weight: 700; font-style: normal; font-display: swap;
}

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

/* Métriques de la police de secours ajustées sur celles de Plex.
   Sans cela, le texte se décale au moment de la bascule et compte
   comme un décalage de mise en page. */
@font-face {
  font-family: 'Plex Fallback';
  src: local('Segoe UI'), local('Helvetica Neue'), local('Arial');
  size-adjust: 100%;
  ascent-override: 96%;
  descent-override: 26%;
  line-gap-override: 0%;
}
