/* Self-hosted IBM Plex (latin subsets, SIL OFL). No third-party font requests.
   CJK (Sans SC) and Cyrillic subsets are added with the zh/ru locales (M3); until then
   those scripts fall back to the system stack declared in base.css. */

/* Sans — UI + body */
@font-face { font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('/assets/fonts/plex-sans-400.woff2') format('woff2'); }
@font-face { font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 500; font-display: swap;
  src: url('/assets/fonts/plex-sans-500.woff2') format('woff2'); }
@font-face { font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 600; font-display: swap;
  src: url('/assets/fonts/plex-sans-600.woff2') format('woff2'); }
@font-face { font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 700; font-display: swap;
  src: url('/assets/fonts/plex-sans-700.woff2') format('woff2'); }

/* Mono — data, labels, code, prices */
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('/assets/fonts/plex-mono-400.woff2') format('woff2'); }
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 500; font-display: swap;
  src: url('/assets/fonts/plex-mono-500.woff2') format('woff2'); }
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 600; font-display: swap;
  src: url('/assets/fonts/plex-mono-600.woff2') format('woff2'); }

/* Serif — editorial (blog article + about headings) */
@font-face { font-family: 'IBM Plex Serif'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('/assets/fonts/plex-serif-400.woff2') format('woff2'); }
@font-face { font-family: 'IBM Plex Serif'; font-style: normal; font-weight: 500; font-display: swap;
  src: url('/assets/fonts/plex-serif-500.woff2') format('woff2'); }

/* Cyrillic subsets (ru, uk) — unicode-range so Latin locales never fetch these */
@font-face { font-family: 'IBM Plex Sans'; font-weight: 400; font-display: swap; unicode-range: U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; src: url('/assets/fonts/plex-sans-cyr-400.woff2') format('woff2'); }
@font-face { font-family: 'IBM Plex Sans'; font-weight: 500; font-display: swap; unicode-range: U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; src: url('/assets/fonts/plex-sans-cyr-500.woff2') format('woff2'); }
@font-face { font-family: 'IBM Plex Sans'; font-weight: 600; font-display: swap; unicode-range: U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; src: url('/assets/fonts/plex-sans-cyr-600.woff2') format('woff2'); }
@font-face { font-family: 'IBM Plex Sans'; font-weight: 700; font-display: swap; unicode-range: U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; src: url('/assets/fonts/plex-sans-cyr-700.woff2') format('woff2'); }
@font-face { font-family: 'IBM Plex Mono'; font-weight: 400; font-display: swap; unicode-range: U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; src: url('/assets/fonts/plex-mono-cyr-400.woff2') format('woff2'); }
@font-face { font-family: 'IBM Plex Mono'; font-weight: 500; font-display: swap; unicode-range: U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; src: url('/assets/fonts/plex-mono-cyr-500.woff2') format('woff2'); }
@font-face { font-family: 'IBM Plex Mono'; font-weight: 600; font-display: swap; unicode-range: U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; src: url('/assets/fonts/plex-mono-cyr-600.woff2') format('woff2'); }
@font-face { font-family: 'IBM Plex Serif'; font-weight: 400; font-display: swap; unicode-range: U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; src: url('/assets/fonts/plex-serif-cyr-400.woff2') format('woff2'); }
@font-face { font-family: 'IBM Plex Serif'; font-weight: 500; font-display: swap; unicode-range: U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; src: url('/assets/fonts/plex-serif-cyr-500.woff2') format('woff2'); }
