/* ==========================================================================
 * Kulima Webfonts — Phase 18 component library
 * --------------------------------------------------------------------------
 * Self-hosted @font-face declarations for the two OFL typefaces the Kulima
 * design system uses. NO third-party CDN / network webfont is required at
 * runtime (bandwidth + offline use matter in rural Uganda).
 *
 * Typeface decision (stated before use, per Chwezi design doctrine):
 *   - Hanken Grotesk  -> headings/display: friendly-humanist grotesque, civic
 *     agriculture product voice; NOT an AI-slop banned face.
 *   - Atkinson Hyperlegible -> body/UI: purpose-built for maximum legibility in
 *     poor conditions (low-end screens, glare, low vision) — exactly the field
 *     conditions this product runs in; NOT an AI-slop banned face.
 * Both SIL OFL 1.1 — self-hosting and redistribution permitted. Full licence
 * notes + the exact file list live in ../fonts/kulima/README.md.
 *
 * Load order: this file may load at any point, but the TOKEN file
 * (kulima-tokens.css) owns the font-family STACKS. --kulima-font-heading /
 * --kulima-font-body already name "Hanken Grotesk" / "Atkinson Hyperlegible"
 * FIRST, then a device-common system fallback. So:
 *   - If these @font-face files load, the branded faces are used.
 *   - If a woff2 is missing, the browser silently falls back through the
 *     authored system stack — the UI stays fully usable. (Prefer not breaking
 *     anything over shipping a broken font ref.)
 *
 * font-display: swap -> text paints immediately in the fallback, then swaps to
 * the webfont when ready (no invisible-text flash on slow field connections).
 * The latin-ext faces carry a unicode-range so the browser only fetches them
 * when an extended-Latin glyph is actually needed.
 * ========================================================================== */

/* --------------------------------------------------------------------------
 * Hanken Grotesk — variable (weight 300..800), headings/display.
 * One woff2 per subset covers the whole weight axis.
 * ------------------------------------------------------------------------ */
@font-face {
  font-family: "Hanken Grotesk";
  font-style: normal;
  font-weight: 300 800; /* variable weight axis */
  font-display: swap;
  src: url("../fonts/kulima/hanken-grotesk-latin-var.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191,
    U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Hanken Grotesk";
  font-style: normal;
  font-weight: 300 800;
  font-display: swap;
  src: url("../fonts/kulima/hanken-grotesk-latin-ext-var.woff2") format("woff2");
  unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF,
    U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* --------------------------------------------------------------------------
 * Atkinson Hyperlegible — static 400 + 700, body/UI.
 * (Google Fonts ships only these two masters.)
 * ------------------------------------------------------------------------ */
@font-face {
  font-family: "Atkinson Hyperlegible";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/kulima/atkinson-hyperlegible-latin-400.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215,
    U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Atkinson Hyperlegible";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/kulima/atkinson-hyperlegible-latin-ext-400.woff2") format("woff2");
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB,
    U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Atkinson Hyperlegible";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/kulima/atkinson-hyperlegible-latin-700.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215,
    U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Atkinson Hyperlegible";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/kulima/atkinson-hyperlegible-latin-ext-700.woff2") format("woff2");
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB,
    U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
