/*
 * Self-hosted font faces + font utilities, loaded by BOTH base.twig and
 * basePublic.twig. Joyride is the display face and is reserved for TV/hero
 * surfaces (see --portal-font-display in portal-theme.css) — page titles in
 * the app use the system sans stack.
 *
 * font-display: swap on all four faces. JoyrideSTD.otf is 113KB and the faces
 * are only ever used by a hero or a wall display, i.e. the two places where a
 * cold cache is most likely and blank text is worst: the UA default (auto)
 * blocks painting for up to ~3s, so a venue Chromium coming up on a TV page
 * could hold an empty title for that long. Swap paints in the fallback and
 * exchanges it when the face lands; TV templates also preload the regular cut.
 */

/* Joyride Font Family */
@font-face {
    font-family: 'Joyride STD';
    src: url('/fonts/Joyride/JoyrideSTD.otf') format('opentype');
    font-weight: normal;
    font-display: swap;
    font-style: normal;
}

@font-face {
    font-family: 'Joyride STD';
    src: url('/fonts/Joyride/JoyrideSTDItalic.otf') format('opentype');
    font-weight: normal;
    font-display: swap;
    font-style: italic;
}

@font-face {
    font-family: 'Joyride STD Outline';
    src: url('/fonts/Joyride/JoyrideSTDOutline.otf') format('opentype');
    font-weight: normal;
    font-display: swap;
    font-style: normal;
}

@font-face {
    font-family: 'Joyride STD Outline';
    src: url('/fonts/Joyride/JoyrideSTDOutlineItalic.otf') format('opentype');
    font-weight: normal;
    font-display: swap;
    font-style: italic;
}

/* Utility classes for Joyride font */
.font-joyride {
    font-family: 'Joyride STD', sans-serif;
}

.font-joyride-outline {
    font-family: 'Joyride STD Outline', sans-serif;
}

/* ── Inter (v3 — the app face) ────────────────────────────────────────
 * Self-hosted Inter 4.1 variable (wght 100-900, opsz 14-32), latin subset
 * via pyftsubset. Version in the FILENAME (?v= is banned) — a new cut is a
 * new URL, which is what lets .htaccess mark woff2 immutable. Roman keeps
 * --layout-features='*' at 154KB; italic was 170KB with everything, so it
 * carries the reduced feature list from the plan (kern,liga,calt,case,
 * tnum,pnum,ss02,ss03,cv05,ccmp,locl,mark,mkmk) at 142KB. Ceiling: 160KB.
 *
 * "Inter Fallback" is Arial wearing Inter's metrics — the fontpie numbers
 * below were computed against the vendored binary (npx fontpie
 * InterVariable-4.1-latin.woff2 --fallback arial), not copied from a doc —
 * so the swap from fallback to face moves no line boxes. */
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('/fonts/inter/InterVariable-4.1-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0100-017F, U+0180-024F, U+2000-206F, U+2070-209F, U+20A0-20CF, U+2100-214F, U+2190-2199, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Inter';
    font-style: italic;
    font-weight: 100 900;
    font-display: swap;
    src: url('/fonts/inter/InterVariable-Italic-4.1-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0100-017F, U+0180-024F, U+2000-206F, U+2070-209F, U+20A0-20CF, U+2100-214F, U+2190-2199, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Inter Fallback';
    font-style: normal;
    font-weight: 100 900;
    src: local('Arial'), local('Liberation Sans'), local('Arimo');
    size-adjust: 107.89%;
    ascent-override: 89.79%;
    descent-override: 22.36%;
    line-gap-override: 0%;
}
