/* fonts.css — self-hosted STIX Two Text + IBM Plex Mono (subset, MN-complete).
 *
 * Replaces the Google Fonts CDN for the two workhorse families (STIX serif +
 * IBM Plex Mono). Doto (LED, landing/board only) stays on the CDN for now.
 *
 * Served at /system/fonts.css; woff2 files at /system/fonts/*.woff2 (the C
 * server sends font/woff2 + 1yr-immutable, http.c:440/995).
 *
 * MONGOLIAN COVERAGE — the whole reason this file is hand-authored:
 *   Google's stock "cyrillic" subset stops at ~U+045F and EXCLUDES the
 *   Mongolian-critical Ө/ө (U+04E8/9) Ү/ү (U+04AE/F) Ң/ң (U+04A2/3) — they live
 *   in "cyrillic-ext". Our IBM Plex Mono cyrillic file covers the WHOLE U+04xx
 *   block, so MN mono text (төгрөг, үнэ, өссөн) renders natively self-hosted.
 *   STIX Two Text has no Ө/Ү/Ң glyph in the typeface at all (verified against
 *   the 1281-glyph master) — so its cyrillic unicode-range advertises ONLY the
 *   codepoints STIX actually contains, letting those three letters fall through
 *   to Georgia/serif exactly as on the pre-self-host CDN. Advertising a range
 *   the file can't render would paint tofu instead of falling back.
 *
 * unicode-range mirrors Google's split (latin | cyrillic) so the browser fetches
 * only the file a given run of text needs. font-display:swap keeps text visible
 * during load (no invisible-text flash).
 */

/* ============================ IBM Plex Mono ============================ *
 * The data / tabular workhorse. Full MN Cyrillic (has Ө Ү Ң). 400/500/600.  */

@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal; font-weight: 400; font-display: swap;
  src: url(/system/fonts/IBMPlexMono-400-latin.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: 'IBM Plex Mono';
  font-style: normal; font-weight: 400; font-display: swap;
  src: url(/system/fonts/IBMPlexMono-400-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-04FF, U+2116;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal; font-weight: 500; font-display: swap;
  src: url(/system/fonts/IBMPlexMono-500-latin.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: 'IBM Plex Mono';
  font-style: normal; font-weight: 500; font-display: swap;
  src: url(/system/fonts/IBMPlexMono-500-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-04FF, U+2116;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal; font-weight: 600; font-display: swap;
  src: url(/system/fonts/IBMPlexMono-600-latin.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: 'IBM Plex Mono';
  font-style: normal; font-weight: 600; font-display: swap;
  src: url(/system/fonts/IBMPlexMono-600-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-04FF, U+2116;
}

/* ============================ STIX Two Text =========================== *
 * The editorial serif. Roman 400/500/600 + italic 400/500. Cyrillic range
 * advertises ONLY what STIX contains (no Ө/Ү/Ң) so they fall back to Georgia. */

@font-face {
  font-family: 'STIX Two Text';
  font-style: normal; font-weight: 400; font-display: swap;
  src: url(/system/fonts/STIXTwoText-400-latin.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: 'STIX Two Text';
  font-style: normal; font-weight: 400; font-display: swap;
  src: url(/system/fonts/STIXTwoText-400-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0462-0463, U+046A-046B, U+0472-0475, U+0490-0491, U+2116;
}
@font-face {
  font-family: 'STIX Two Text';
  font-style: normal; font-weight: 500; font-display: swap;
  src: url(/system/fonts/STIXTwoText-500-latin.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: 'STIX Two Text';
  font-style: normal; font-weight: 500; font-display: swap;
  src: url(/system/fonts/STIXTwoText-500-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0462-0463, U+046A-046B, U+0472-0475, U+0490-0491, U+2116;
}
@font-face {
  font-family: 'STIX Two Text';
  font-style: normal; font-weight: 600; font-display: swap;
  src: url(/system/fonts/STIXTwoText-600-latin.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: 'STIX Two Text';
  font-style: normal; font-weight: 600; font-display: swap;
  src: url(/system/fonts/STIXTwoText-600-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0462-0463, U+046A-046B, U+0472-0475, U+0490-0491, U+2116;
}
@font-face {
  font-family: 'STIX Two Text';
  font-style: italic; font-weight: 400; font-display: swap;
  src: url(/system/fonts/STIXTwoText-400i-latin.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: 'STIX Two Text';
  font-style: italic; font-weight: 400; font-display: swap;
  src: url(/system/fonts/STIXTwoText-400i-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0462-0463, U+046A-046B, U+0472-0475, U+0490-0491, U+2116;
}
@font-face {
  font-family: 'STIX Two Text';
  font-style: italic; font-weight: 500; font-display: swap;
  src: url(/system/fonts/STIXTwoText-500i-latin.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: 'STIX Two Text';
  font-style: italic; font-weight: 500; font-display: swap;
  src: url(/system/fonts/STIXTwoText-500i-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0462-0463, U+046A-046B, U+0472-0475, U+0490-0491, U+2116;
}
