/* The Reserve List — self-hosted webfonts.
 *
 * ===========================================================================
 * Why these are not loaded from Google
 * ===========================================================================
 *
 * All 42 source files carried this line:
 *
 *   <link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600
 *               &family=Space+Grotesk:wght@400;500;600;700&display=swap" rel="stylesheet">
 *
 * Loading a font from fonts.googleapis.com transmits every visitor's IP address
 * to Google on page load, without consent. That is a third-country transfer of
 * personal data, and a German court awarded damages over exactly this in 2022
 * (LG München I, 3 O 17493/20). For a site whose footer makes a point of GDPR
 * Article 9, shipping it would be incoherent.
 *
 * Self-hosting also removes a third-party request from the critical path and
 * makes the pages work offline, which matters for a site people use on the
 * train.
 *
 * ===========================================================================
 * The files
 * ===========================================================================
 *
 * Five woff2 subsets in /assets/fonts/, latin only, roughly 14 KB each — about
 * 71 KB for the set, against two DNS lookups and a third-party round trip for
 * the Google version.
 *
 * Both families are under the SIL Open Font License 1.1, which permits
 * redistribution and requires the licence to travel with the files. Both
 * licences are in /assets/fonts/ for that reason. Do not delete them.
 *
 * Taken from the @fontsource packages, which are the upstream projects'
 * own distributions:
 *   IBM Plex Mono   Copyright 2017 IBM Corp.
 *   Space Grotesk   Copyright 2020 The Space Grotesk Project Authors
 *
 * The stacks in tokens.css still name real system fallbacks rather than a bare
 * `monospace`, so the site stays legible if a font fails to load — it just is
 * not the intended typeface.
 *
 * font-display:swap matches what the Google URL requested, and keeps text
 * visible while the font loads rather than flashing invisible.
 */

@font-face {
  font-family: 'IBM Plex Mono';
  src: url('/assets/fonts/ibm-plex-mono-400.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'IBM Plex Mono';
  src: url('/assets/fonts/ibm-plex-mono-500.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'IBM Plex Mono';
  src: url('/assets/fonts/ibm-plex-mono-600.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Space Grotesk';
  src: url('/assets/fonts/space-grotesk-400.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Space Grotesk';
  src: url('/assets/fonts/space-grotesk-700.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
