/*
 * Self-hosted web fonts — zero external font hosts (air-gapped friendly).
 *
 * - Sora: Google ships this family as a variable font only; one file
 *   (wght axis 100-800, latin subset) serves every weight the site uses
 *   (400/500/600/700/800) with a single download.
 * - IBM Plex Mono: static latin instances per weight (400, 500).
 *
 * Both families are licensed under the SIL Open Font License 1.1.
 * Binaries fetched from the Google Fonts CDN (Sora v17, IBM Plex Mono v20).
 */

@font-face {
  font-family: "Sora";
  font-style: normal;
  font-weight: 100 800;
  font-display: swap;
  src: url("/fonts/sora-variable.woff2") format("woff2");
}

@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/plexmono-400.woff2") format("woff2");
}

@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/fonts/plexmono-500.woff2") format("woff2");
}

/*
 * Iliad theme port (2026-07-07): Inter + JetBrains Mono, both variable
 * fonts (Google ships one file covering their full weight range — same
 * pattern as Sora above). Iliad's own theme.css references these names
 * but never actually loads them anywhere in that codebase (no <link>, no
 * @font-face, no npm package) — every Iliad user who doesn't happen to
 * have them installed locally silently gets the fallback stack instead.
 * Loading them for real here is a deliberate improvement on the port,
 * not a deviation from it.
 */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/fonts/inter-variable.woff2") format("woff2");
}

@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/fonts/jetbrainsmono-variable.woff2") format("woff2");
}
