/* IBM Plex fonts, self-hosted to avoid third-party CDN dependency.
 *
 * WOFF2 files live in /static/fonts/ and were extracted from the official
 * @ibm/plex-{serif,sans,mono} npm packages, which publish the SIL Open
 * Font License-licensed fonts.
 *
 * Weights match what the previous Google Fonts URL requested:
 *   - IBM Plex Serif: 400, 500, 600, italic 400
 *   - IBM Plex Sans:  400, 500, 600
 *   - IBM Plex Mono:  400, 500, 600
 *
 * font-display: swap renders the page immediately with the system fallback
 * and re-renders when the WOFF2 loads, matching the Google Fonts default.
 */

/* ---------- IBM Plex Serif ---------- */
@font-face {
    font-family: "IBM Plex Serif";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("/static/fonts/IBMPlexSerif-Regular.woff2") format("woff2");
}
@font-face {
    font-family: "IBM Plex Serif";
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url("/static/fonts/IBMPlexSerif-Medium.woff2") format("woff2");
}
@font-face {
    font-family: "IBM Plex Serif";
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url("/static/fonts/IBMPlexSerif-SemiBold.woff2") format("woff2");
}
@font-face {
    font-family: "IBM Plex Serif";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url("/static/fonts/IBMPlexSerif-Bold.woff2") format("woff2");
}
@font-face {
    font-family: "IBM Plex Serif";
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url("/static/fonts/IBMPlexSerif-Italic.woff2") format("woff2");
}

/* ---------- IBM Plex Sans ---------- */
@font-face {
    font-family: "IBM Plex Sans";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("/static/fonts/IBMPlexSans-Regular.woff2") format("woff2");
}
@font-face {
    font-family: "IBM Plex Sans";
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url("/static/fonts/IBMPlexSans-Medium.woff2") format("woff2");
}
@font-face {
    font-family: "IBM Plex Sans";
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url("/static/fonts/IBMPlexSans-SemiBold.woff2") format("woff2");
}
@font-face {
    font-family: "IBM Plex Sans";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url("/static/fonts/IBMPlexSans-Bold.woff2") format("woff2");
}

/* ---------- IBM Plex Mono ---------- */
@font-face {
    font-family: "IBM Plex Mono";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("/static/fonts/IBMPlexMono-Regular.woff2") format("woff2");
}
@font-face {
    font-family: "IBM Plex Mono";
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url("/static/fonts/IBMPlexMono-Medium.woff2") format("woff2");
}
@font-face {
    font-family: "IBM Plex Mono";
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url("/static/fonts/IBMPlexMono-SemiBold.woff2") format("woff2");
}
@font-face {
    font-family: "IBM Plex Mono";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url("/static/fonts/IBMPlexMono-Bold.woff2") format("woff2");
}
