/* ============================================================
   Self-hosted fonts — Michael's Beverly case-file site
   Per UI-UX-GUIDANCE.md §1.3 (Typography). All SIL Open Font
   License. Self-hosted deliberately: no third-party font CDN,
   so visitor IPs are never leaked to Google/Adobe on page load.

   Primary pairing:
     - Source Serif 4  -> long-form reading (body, incident write-ups)
     - Inter           -> UI, navigation, labels, tables, headings
     - IBM Plex Mono   -> metadata, case IDs, timestamps, stamps
     - Courier Prime   -> optional stamp/typewriter accent ONLY
     - Anton           -> REDESIGN 2026-07-03: the ONE display face for
                          major (h1) headings only, added to evoke the
                          hero banner's bold, high-contrast headline mood
                          without resorting to a grunge/distressed font
                          file. Self-hosted the same way as every other
                          face here: fetched once from Google Fonts'
                          static host (fonts.gstatic.com, the same
                          origin Google Fonts itself serves the .woff2
                          bytes from), vendored into this directory, and
                          never referenced remotely at runtime — the
                          shipped site makes zero third-party requests.
                          SIL OFL 1.1, by Vernon Adams, same license
                          family as every other font below.

   url() paths are relative to THIS file. If you move fonts.css
   away from the .woff2 files, update the paths (or serve from /fonts/).
   ============================================================ */

/* ---------- Source Serif 4 (body / reading) ---------- */
@font-face {
  font-family: "Source Serif 4";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("./source-serif-4-latin-400-normal.woff2") format("woff2");
}
@font-face {
  font-family: "Source Serif 4";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("./source-serif-4-latin-400-italic.woff2") format("woff2");
}
@font-face {
  font-family: "Source Serif 4";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("./source-serif-4-latin-600-normal.woff2") format("woff2");
}

/* ---------- Inter (UI / headings) ---------- */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("./inter-latin-400-normal.woff2") format("woff2");
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("./inter-latin-500-normal.woff2") format("woff2");
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("./inter-latin-600-normal.woff2") format("woff2");
}

/* ---------- IBM Plex Mono (metadata / stamps) ---------- */
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("./ibm-plex-mono-latin-400-normal.woff2") format("woff2");
}
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("./ibm-plex-mono-latin-500-normal.woff2") format("woff2");
}

/* ---------- Anton (display headline face — h1 only) ---------- */
@font-face {
  font-family: "Anton";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("./anton-latin-400-normal.woff2") format("woff2");
}

/* ---------- Courier Prime (stamp accent only) ---------- */
@font-face {
  font-family: "Courier Prime";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("./courier-prime-latin-400-normal.woff2") format("woff2");
}
@font-face {
  font-family: "Courier Prime";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("./courier-prime-latin-700-normal.woff2") format("woff2");
}

/* ---------- Role tokens + system fallbacks ---------- */
:root {
  --font-serif: "Source Serif 4", Georgia, "Times New Roman", serif;
  --font-sans:  "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --font-mono:  "IBM Plex Mono", ui-monospace, "Cascadia Code", Consolas, "Courier New", monospace;
  --font-stamp: "Courier Prime", "IBM Plex Mono", monospace;
  /* Condensed system fallbacks so a page still reads "headline-bold" even
     before Anton loads / if it fails to load. */
  --font-display: "Anton", "Arial Narrow", "Franklin Gothic Bold", var(--font-sans);
}

/* Map to the type scale in §1.3:
     body / long-form  -> var(--font-serif)
     UI, nav, headings -> var(--font-sans)
     metadata, stamps  -> var(--font-mono)
     stamp accent only -> var(--font-stamp)
     h1 / major display headings only -> var(--font-display)
*/
