/* Self-hosted IBM Plex. Replaces the Google Fonts stylesheet that used to be
 * linked from <head>; see fonts/NOTICE.md for provenance and licence.
 *
 * These rules are a deliberate, structure-for-structure copy of what the
 * Google Fonts CSS API returned for
 *   IBM Plex Mono:wght@400;500;700 & IBM Plex Sans:wght@400;500;600;700
 * with the URLs rewritten to /fonts/*.woff2. Keeping the structure identical
 * is what makes the swap render-identically — see the two notes below, both of
 * which are load-bearing.
 *
 * 1. IBM Plex Sans is served as ONE variable font (fvar wght 100-700), and
 *    Google exposes it as four @font-face rules that all point at the same
 *    file with a *discrete* font-weight. That is reproduced here on purpose.
 *    The theme uses weights that are not in {400,500,600,700} — 550 on
 *    `.btn-ghost` and `.site-nav a`, 650 on `.faq-item summary` and
 *    `th`, 750 on every heading, 900 on the download page. Under discrete
 *    rules the browser snaps those to the next loaded face (550->600,
 *    650->700, 750->700, 900->700). Had this been written as a single
 *    `font-weight: 100 700` range, 550 and 650 would have *interpolated* to
 *    new shapes and every button and nav link would have changed. Do not
 *    "simplify" this into a weight range.
 * 2. No `local()` source. Google emits none for this family, so a machine
 *    with IBM Plex installed currently downloads the webfont anyway; adding
 *    `local()` would make rendering depend on whichever version happens to be
 *    installed, which is a fidelity regression, not an optimisation.
 *
 * Only the `latin` subset is shipped. The site's rendered text contains 29
 * distinct non-ASCII codepoints and every one of them is inside this range,
 * so the other subsets Google also offers (latin-ext, cyrillic, greek,
 * vietnamese) are never fetched and never needed. Characters outside the
 * range — the arrows (U+2190, U+2192) and the symbol/emoji glyphs — fall
 * back to a system font, which is exactly what happens today; shipping IBM's
 * "Pi" subset would have *changed* those 31 glyphs. See NOTICE.md.
 */

@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/ibm-plex-sans-3.201-var-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+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: 500;
  font-display: swap;
  src: url(/fonts/ibm-plex-sans-3.201-var-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+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: 600;
  font-display: swap;
  src: url(/fonts/ibm-plex-sans-3.201-var-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+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: 700;
  font-display: swap;
  src: url(/fonts/ibm-plex-sans-3.201-var-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+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(/fonts/ibm-plex-mono-2.3-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+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/ibm-plex-mono-2.3-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+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: 700;
  font-display: swap;
  src: url(/fonts/ibm-plex-mono-2.3-700-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+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
