/* Aeterna Collection — self-hosted fonts (Sprint 6).
 *
 * Replaces the Google Fonts CDN <link rel="stylesheet" href="fonts.googleapis.com/...">
 * that every public HTML used to load. Eliminates two cross-origin DNS+TLS
 * round trips (~400ms each on Slow 4G) and lets Cloudflare cache the woff/2
 * files for 1 year via the Sprint 5.10 long-cache rule on /assets/*.
 *
 * Three files cover Aeterna's typography:
 *   Cormorant Garamond — regular + italic (editorial body + headings)
 *   Raleway         — regular (UI labels, body uppercase)
 *
 * Multiple CSS font-weight rules (400, 500, 600, 700) map to the single
 * regular face; the browser synthesises bolder weights when needed.
 * Aeterna's design language uses Cormorant primarily at 400 and Raleway
 * at 400/500 so the visual delta from synthesis is minimal.
 *
 * font-display: swap shows the fallback (system serif / sans) until the
 * web font arrives — kills FOIT (flash of invisible text) and helps LCP.
 */

@font-face {
    font-family: 'Cormorant Garamond';
    font-style: normal;
    font-weight: 300 700;
    font-display: swap;
    src: url('/assets/fonts/cormorant-garamond-regular.woff2') format('woff2');
}

@font-face {
    font-family: 'Cormorant Garamond';
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url('/assets/fonts/cormorant-garamond-italic.woff') format('woff');
}

/* Raleway (Google Fonts, OFL) — self-hosted variable font. Three subsets
   (latin + latin-ext + cyrillic) preserve the EN/IT/ES + RU coverage that the
   previous single Montserrat file bundled. AR is handled separately (Tajawal).
   One variable file per subset covers the 400/500/600/700 weights in use. */
@font-face {
    font-family: 'Raleway';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('/assets/fonts/raleway-regular.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: 'Raleway';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('/assets/fonts/raleway-latinext.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: 'Raleway';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('/assets/fonts/raleway-cyrillic.woff2') format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* Canela Thin (Commercial Type) — display face for page titles. Licensed web font
   (owner-provided, v1.1 2016). Covers Latin + Western-European accents; no Cyrillic,
   so title selectors fall back to Cormorant Garamond for RU glyphs. */
@font-face {
    font-family: 'Canela Thin';
    font-style: normal;
    font-weight: 100 400;
    font-display: swap;
    src: url('/assets/fonts/canela-thin.woff2') format('woff2');
}

/* Bodoni Moda (Google Fonts, OFL) — self-hosted. Redesign V4 display
   typeface (docs/planning/REDESIGN_SPEC.md §1) for headline/title copy
   across the public site (.display / .caps-display). Two static faces —
   upright + italic — cover editorial usage; a single variable-ish weight
   (400) is enough since the redesign never asks for a bold Bodoni. No
   unicode-range split needed: unlike Raleway (which ships three subset
   files), this is a single file covering the six live locales' Latin/
   Cyrillic/CJK-fallback needs the same way Cormorant/Canela/Geist do. */
@font-face {
    font-family: 'Bodoni Moda';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('/assets/fonts/bodoni.woff2') format('woff2');
}
@font-face {
    font-family: 'Bodoni Moda';
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url('/assets/fonts/bodoni-italic.woff2') format('woff2');
}

/* Geist (Vercel, OFL) — self-hosted. v3 design-language body font, matching
   the admin panel + email templates. Three static weights cover the UI's
   range (300 light / 400 regular / 500 medium); the browser synthesises
   bolder weights where a component still asks for 600/700. */
@font-face {
    font-family: 'Geist';
    font-style: normal;
    font-weight: 300;
    font-display: swap;
    src: url('/assets/fonts/geist-Light.woff2') format('woff2');
}
@font-face {
    font-family: 'Geist';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('/assets/fonts/geist-Regular.woff2') format('woff2');
}
@font-face {
    font-family: 'Geist';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('/assets/fonts/geist-Medium.woff2') format('woff2');
}
