/* Self-hosted Exo — replaces the render-blocking Google Fonts <link>.
 *
 * Why self-hosted: the Google Fonts stylesheet is a blocking request to a third
 * origin, which has to resolve DNS + negotiate TLS before it can even tell the
 * browser which font files to fetch, and only then does the font download start.
 * Serving from our own origin removes two cross-origin connections and one full
 * round-trip from the critical path.
 *
 * Why one variable font instead of six statics: the theme genuinely uses 300,
 * 400, 500, 600, 700 and 800. As static faces that is six files; as a variable
 * font it is one per unicode subset, and the browser interpolates every weight.
 *
 * font-display: swap keeps text painted in the fallback face immediately rather
 * than blocking first paint on the font — the same behaviour the old Google
 * Fonts URL requested with &display=swap.
 *
 * Generated by scripts/fetch-fonts.mjs — re-run it to refresh.
 */
@font-face {
  font-family: "Exo";
  font-style: normal;
  font-weight: 300 800;
  font-display: swap;
  src: url("/fonts/exo-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7,
    U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF,
    U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Exo";
  font-style: normal;
  font-weight: 300 800;
  font-display: swap;
  src: url("/fonts/exo-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;
}
