/* The font files behind the --font-* tokens in tokens.css, which named these families from #5
   onward with nothing on disk behind them. Self-hosted in /fonts so no request leaves the
   origin: this page accepts CVs, and a third-party font host in the waterfall is a thing to
   have to explain to a trust.

   Sources and licences, checked 28 Jul 2026 and unchanged 2 Aug 2026: Geist (Vercel) and DM Mono
   (Colophon), both under the SIL Open Font License, from Google Fonts' hosted woff2. The Geist
   files are the latin subset — pasted text outside latin falls back to system-ui, which is the
   stack's next entry and costs nothing.

   One sans and one mono since #58 — the third family the stackai reference brought with it is
   deleted, and Geist carries the whole UI. (README, Decisions, has the why.)

   Geist ships 400 and 600 — and NOTHING may ask for 500. Under the CSS font-matching algorithm a
   desired weight between 400 and 500 checks weights below the target first, so a 500 heading
   resolves DOWN to 400 and renders at regular weight rather than up to the 600 that is sitting
   right there. That is why app.css sets headings to 600 and why a 500 anywhere in this
   deployment is a silent bug rather than a rounding choice. */

@font-face {
  font-family: "Geist";
  src: url("/fonts/Geist-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Geist";
  src: url("/fonts/Geist-SemiBold.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "DM Mono";
  src: url("/fonts/DMMono-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
