/* ==========================================================================
   Self-hosted variable fonts — all OFL-1.1, latin subset, woff2.
   Served from our own origin: no render-blocking request to a font CDN.

   Archivo carries a wdth axis (62–125), so the hero's Expanded setting and the
   normal-width headings come from a single file rather than two downloads.
   ========================================================================== */

/* Display face — Plus Jakarta Sans. Replaced Archivo: the expanded all-caps
   treatment read as harsh rather than premium. Jakarta is a refined geometric
   sans used in sentence case throughout. */
@font-face {
  font-family: 'Plus Jakarta Sans Variable';
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url('/fonts/jakarta-var.woff2?v=1') format('woff2');
}

@font-face {
  font-family: 'Inter Variable';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/fonts/inter-var.woff2?v=1') format('woff2');
}

/* Alias. The legacy styles.css asks for 'Inter' (previously supplied by the
   Google Fonts CDN); without this it would silently fall back to a system sans.
   Same URL, so the browser downloads the file once. Remove this once styles.css
   has been fully replaced by the token-based components. */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/fonts/inter-var.woff2?v=1') format('woff2');
}

/* Only needed once results render, so it is never preloaded. */
@font-face {
  font-family: 'JetBrains Mono Variable';
  font-style: normal;
  font-weight: 100 800;
  font-display: swap;
  src: url('/fonts/jetbrains-mono-var.woff2?v=1') format('woff2');
}
