/* ── IBM Plex, self-hosted. Six files, and the shape was MEASURED rather than assumed. ────────────
 *
 * 🥇 PLEX SANS IS A VARIABLE FONT, WHICH IS WHY ONE FILE COVERS FOUR WEIGHTS. Google's API returns
 *    the SAME woff2 for `wght@400;500;600;700` — verified by md5: four identical 45 KB files.
 *    Shipping them as four static faces would have been 137 KB of exact duplicates. Declared as a
 *    RANGE here, one file serves all four natively with nothing synthesised.
 * ⚠️ PLEX MONO IS STATIC — 500 and 600 are genuinely different files, so both ship.
 *
 * 🔴 THE WEIGHTS ARE THE ONES THE APPROVED DESIGN ACTUALLY USES, counted across `ea.css` and all
 *    twelve pages: Sans 400 (×11), 500 (×23), 600 (×155), 700 (×8); Mono 500, 600. Plan 44 asked for
 *    FOUR static faces — Sans 400/600 + Mono 500/600 — which would have left the browser to
 *    SYNTHESISE Sans 500 and 700. Faux-bold smears, in exactly the place a 65+ audience needs crisp
 *    high contrast.
 *
 * 🔑 `unicode-range` IS WHY latin-ext COSTS NOTHING PER PAGE: the browser fetches it only if a page
 *    actually contains an extended glyph. An English page downloads `latin` alone — about 60 KB.
 *
 * ⚠️ NOT A CDN, AND THIS IS THE DISTINCTION THAT MATTERS: the files were downloaded ONCE into the
 *    repository. The mockups' `<link>` to fonts.googleapis.com is precisely what §11 of the design
 *    spec says must never ship, and a runtime CDN request is a third-party dependency on every page
 *    load as well as a CSP exception.
 */
@font-face {
    font-family: 'IBM Plex Sans';
    font-style: normal;
    /* 🔴 A RANGE, not a value — this is the variable axis. */
    font-weight: 400 700;
    font-display: swap;
    src: url("../fonts/plex-sans-var-latin-RssxsJZ.woff2") format('woff2-variations');
    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+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'IBM Plex Sans';
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url("../fonts/plex-sans-var-latin-ext-6jrsEWt.woff2") format('woff2-variations');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'IBM Plex Mono';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url("../fonts/plex-mono-500-latin-QJNNIVc.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+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'IBM Plex Mono';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url("../fonts/plex-mono-500-latin-ext-Uqu9TNw.woff2") format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'IBM Plex Mono';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url("../fonts/plex-mono-600-latin-uhfYm1a.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+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'IBM Plex Mono';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url("../fonts/plex-mono-600-latin-ext-Wa6oxBk.woff2") format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
