/* Self-hosted variable fonts (latin) + Capsize metric-matched fallbacks.
   Self-hosting removes the render-blocking Google Fonts round-trip; the
   *-Fallback faces occupy the same space as the web font, so there's no
   layout shift (CLS) when the real font swaps in. */

@font-face {
  font-family: "Hanken Grotesk";
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/assets/fonts/hanken-grotesk-latin-wght-normal.woff2") format("woff2-variations");
}
@font-face {
  font-family: "Source Serif 4";
  font-style: normal;
  font-display: swap;
  font-weight: 200 900;
  src: url("/assets/fonts/source-serif-4-latin-wght-normal.woff2") format("woff2-variations");
}
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-display: swap;
  font-weight: 100 800;
  src: url("/assets/fonts/jetbrains-mono-latin-wght-normal.woff2") format("woff2-variations");
}

/* ---- Metric-matched fallbacks (Capsize) ---- */
@font-face {
  font-family: "Hanken Grotesk Fallback";
  src: local('Arial'), local('ArialMT');
  ascent-override: 99.0668%;
  descent-override: 30.0173%;
  line-gap-override: 0%;
  size-adjust: 100.9419%;
}
@font-face {
  font-family: "Source Serif 4 Fallback";
  src: local('Georgia');
  ascent-override: 96.4195%;
  descent-override: 31.1781%;
  size-adjust: 107.4471%;
}
@font-face {
  font-family: "JetBrains Mono Fallback";
  src: local('Courier New'), local('CourierNewPSMT');
  ascent-override: 102.0166%;
  descent-override: 30.0049%;
  size-adjust: 99.9837%;
}
