/**
 * FHM self-hosted fonts (replaces the Google Fonts CDN).
 *
 * Three families, served from assets/fonts/ so there are zero requests to
 * fonts.googleapis.com / fonts.gstatic.com. Crimson Pro and Inter are variable
 * fonts (one file covers their whole weight range); IBM Plex Mono is static,
 * one file per weight. font-display: swap keeps text visible during load.
 *
 * Weights hosted match actual CSS usage (see FHM-055):
 *   Crimson Pro  300 / 400 / 500 / 600  + italic
 *   Inter        400 / 500 / 600
 *   IBM Plex Mono 400 / 500 / 600 / 700
 *
 * Latin subset only — its unicode-range covers the Latin letters plus the
 * general punctuation the site uses (curly quotes, en/em dashes, ellipsis).
 */

/* ── Crimson Pro (serif / display) — variable ── */
@font-face {
  font-family: 'Crimson Pro';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url('../fonts/crimson-pro.woff2') format('woff2');
}
@font-face {
  font-family: 'Crimson Pro';
  font-style: italic;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/crimson-pro-italic.woff2') format('woff2');
}

/* ── Inter (sans / body) — variable ── */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/inter.woff2') format('woff2');
}

/* ── IBM Plex Mono (data) — static per weight ── */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/ibm-plex-mono-400.woff2') format('woff2');
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/ibm-plex-mono-500.woff2') format('woff2');
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/ibm-plex-mono-600.woff2') format('woff2');
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/ibm-plex-mono-700.woff2') format('woff2');
}
