/* ==========================================================================
   IBM Plex Mono — code monospace (pair B)
   Static WOFF2 (weight 400, latin × normal + italic). Plex Mono ships no
   official variable build, so italic is loaded as a true italic file rather
   than synthesised. The syntax-tinting scheme only renders weight 400, so
   one weight is enough.
   ========================================================================== */

/* Real-face metric overrides pinned to Plex Mono's own hhea (ascent 1025,
   descent 275, line-gap 0, UPM 1000). Parallel to the Literata/Fraunces
   serif pins — Plex Mono's natural 1.30em strut sits below our 1.6em
   line-height so it doesn't drift today, but carry the overrides for
   parity and forward-safety against future browser metric-table changes. */
@font-face {
    font-family: 'IBM Plex Mono';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('fonts/ibm-plex-mono-latin-400-normal.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;
    ascent-override: 102.5%;
    descent-override: 27.5%;
    line-gap-override: 0%;
}

@font-face {
    font-family: 'IBM Plex Mono';
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url('fonts/ibm-plex-mono-latin-400-italic.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;
    ascent-override: 102.5%;
    descent-override: 27.5%;
    line-gap-override: 0%;
}

/* Metric-matched fallback face. Same shape as JetBrains Mono Fallback:
   chains SF Mono → Menlo → Courier so the override binds to whichever
   system mono is present. Regenerate with `npm run metrics`. */
@font-face {
    font-family: 'IBM Plex Mono Fallback';
    src: local('SF Mono'), local('Menlo'), local('Courier');
    size-adjust: 100%;
    ascent-override: 102.5%;
    descent-override: 27.5%;
    line-gap-override: 0%;
}

/* SF Mono / Consolas no longer needed — the Fallback face binds to SF Mono
   via local() and carries measured metrics with it. */
:root {
    --font-mono: 'IBM Plex Mono', 'IBM Plex Mono Fallback', monospace;
}

.simulate-fout {
    --font-mono: 'IBM Plex Mono Fallback', 'Courier New', monospace;
}
