/* ==========================================================================
   SELF-HOSTED FONTS (Fraunces / Public Sans)
   Self-hosted so the browser fetches one same-origin woff2 per family, and
   preloaded from skin.php so the file is already in flight when the CSS is
   parsed.

   font-display: swap (was optional). With optional, a first-time visitor
   whose font wasn't ready within ~100ms was shown Times/Arial for the whole
   page view. The layout shift that made swap look flickery is handled by the
   "Fraunces Fallback" / "Public Sans Fallback" faces below: local Times New
   Roman / Arial, scaled (size-adjust) and re-spaced (ascent/descent-override)
   to the web fonts' measured average character width and vertical metrics,
   so text occupies almost the same space before and after the swap. Every
   font-family stack in styles.css lists the matching fallback face after the
   web font. Browsers without local Times New Roman / Arial (e.g. Android)
   skip the fallback face and use the generic serif / sans-serif as before.
   ========================================================================== */
@font-face {
    font-family: 'Public Sans';
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url('/skins/Flex/media/fonts/publicsans-latin-var.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: 'Fraunces';
    font-style: normal;
    font-weight: 300 700;
    font-display: swap;
    src: url('/skins/Flex/media/fonts/fraunces-normal-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: 'Fraunces';
    font-style: italic;
    font-weight: 300 600;
    font-display: swap;
    src: url('/skins/Flex/media/fonts/fraunces-italic-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;
}

/* ---- Metric-matched fallbacks (see header comment) ---- */
@font-face {
    font-family: 'Fraunces Fallback';
    font-style: normal;
    font-weight: 100 599;
    src: local('Times New Roman'), local('TimesNewRomanPSMT');
    size-adjust: 115.83%;
    ascent-override: 84.43%;
    descent-override: 22.01%;
    line-gap-override: 0%;
}

@font-face {
    font-family: 'Fraunces Fallback';
    font-style: normal;
    font-weight: 600 900;
    src: local('Times New Roman Bold'), local('TimesNewRomanPS-BoldMT');
    size-adjust: 110.64%;
    ascent-override: 88.40%;
    descent-override: 23.05%;
    line-gap-override: 0%;
}

@font-face {
    font-family: 'Fraunces Fallback';
    font-style: italic;
    font-weight: 100 900;
    src: local('Times New Roman Italic'), local('TimesNewRomanPS-ItalicMT');
    size-adjust: 110.17%;
    ascent-override: 88.77%;
    descent-override: 23.15%;
    line-gap-override: 0%;
}

@font-face {
    font-family: 'Public Sans Fallback';
    font-style: normal;
    font-weight: 100 599;
    src: local('Arial'), local('ArialMT');
    size-adjust: 105.22%;
    ascent-override: 90.28%;
    descent-override: 21.38%;
    line-gap-override: 0%;
}

@font-face {
    font-family: 'Public Sans Fallback';
    font-style: normal;
    font-weight: 600 900;
    src: local('Arial Bold'), local('Arial-BoldMT');
    size-adjust: 98.43%;
    ascent-override: 96.52%;
    descent-override: 22.86%;
    line-gap-override: 0%;
}
