/*
 * CarTraceAI type — self-hosted Noto superfamily, 2026-08-24.
 *
 * Until now the site declared no webfont at all. Every locale resolved to
 * whatever the visitor's operating system happened to carry, and for Georgian
 * that meant Sylfaen on Windows, a last-resort fallback on macOS and Noto on
 * Android — three different faces for the same page. Sylfaen ships Regular and
 * Bold only, so the design system's seventeen distinct font-weights collapsed
 * into two and the whole typographic hierarchy disappeared on Georgian pages.
 *
 * Two families are declared here, each assembled from the Noto superfamily so
 * that Latin, Cyrillic, Georgian and Armenian share one set of proportions:
 *
 *   CarTrace Sans   — interface and body text   (Noto Sans / Georgian / Armenian)
 *   CarTrace Serif  — display headings          (Noto Serif / Georgian / Armenian)
 *
 * Script selection happens through unicode-range, per character, not through
 * :lang(). A visitor downloads only the ranges their page actually contains,
 * and a Georgian page that says "VIN" gets Georgian and Latin from the same
 * design without any language-scoped font-family rule. That also removes the
 * long-standing problem where the language switcher's own labels inherited the
 * surrounding page's script stack.
 *
 * Both families carry a real 400-800 weight axis, so 500, 620 and 780 are now
 * distinct rendered weights on every platform and in every script.
 *
 * Files are subset woff2 served from this origin. The site CSP is
 * `default-src 'self'`, which covers font-src, so no policy change is needed
 * and no third party observes a visitor loading a page.
 *
 * Licence: SIL Open Font License 1.1 — see fonts/OFL.txt and fonts/README.md.
 */

/* ---- CarTrace Sans ---- */

/* latin — Noto Sans */
@font-face {
    font-family: "CarTrace Sans";
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
    src: url("/assets/fonts/cartrace-sans-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;
}

/* latin-ext — Noto Sans */
@font-face {
    font-family: "CarTrace Sans";
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
    src: url("/assets/fonts/cartrace-sans-latin-ext.woff2") format("woff2");
    unicode-range: U+11E-11F, U+130-131, U+15E-15F, U+18F, U+259;
}

/* cyrillic — Noto Sans */
@font-face {
    font-family: "CarTrace Sans";
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
    src: url("/assets/fonts/cartrace-sans-cyrillic.woff2") format("woff2");
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* cyrillic-ext — Noto Sans */
@font-face {
    font-family: "CarTrace Sans";
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
    src: url("/assets/fonts/cartrace-sans-cyrillic-ext.woff2") format("woff2");
    unicode-range: U+492-493, U+49A-49B, U+4A2-4A3, U+4AE-4AF, U+4BA-4BB, U+4D8-4D9, U+4E8-4E9;
}

/* georgian — Noto Sans Georgian */
@font-face {
    font-family: "CarTrace Sans";
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
    src: url("/assets/fonts/cartrace-sans-georgian.woff2") format("woff2");
    unicode-range: U+0589, U+10A0-10FF, U+1C90-1CBA, U+1CBD-1CBF, U+205A, U+2D00-2D2F, U+2E31;
}

/* armenian — Noto Sans Armenian */
@font-face {
    font-family: "CarTrace Sans";
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
    src: url("/assets/fonts/cartrace-sans-armenian.woff2") format("woff2");
    unicode-range: U+0308, U+0530-058F, U+2010, U+2024, U+25CC, U+FB13-FB17;
}

/* ---- CarTrace Serif ---- */

/* latin — Noto Serif */
@font-face {
    font-family: "CarTrace Serif";
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
    src: url("/assets/fonts/cartrace-serif-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;
}

/* latin-ext — Noto Serif */
@font-face {
    font-family: "CarTrace Serif";
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
    src: url("/assets/fonts/cartrace-serif-latin-ext.woff2") format("woff2");
    unicode-range: U+11E-11F, U+130-131, U+15E-15F, U+18F, U+259;
}

/* cyrillic — Noto Serif */
@font-face {
    font-family: "CarTrace Serif";
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
    src: url("/assets/fonts/cartrace-serif-cyrillic.woff2") format("woff2");
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* cyrillic-ext — Noto Serif */
@font-face {
    font-family: "CarTrace Serif";
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
    src: url("/assets/fonts/cartrace-serif-cyrillic-ext.woff2") format("woff2");
    unicode-range: U+492-493, U+49A-49B, U+4A2-4A3, U+4AE-4AF, U+4BA-4BB, U+4D8-4D9, U+4E8-4E9;
}

/* georgian — Noto Serif Georgian */
@font-face {
    font-family: "CarTrace Serif";
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
    src: url("/assets/fonts/cartrace-serif-georgian.woff2") format("woff2");
    unicode-range: U+0589, U+10A0-10FF, U+1C90-1CBA, U+1CBD-1CBF, U+205A, U+2D00-2D2F, U+2E31;
}

/* armenian — Noto Serif Armenian */
@font-face {
    font-family: "CarTrace Serif";
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
    src: url("/assets/fonts/cartrace-serif-armenian.woff2") format("woff2");
    unicode-range: U+0308, U+0530-058F, U+2010, U+2024, U+25CC, U+FB13-FB17;
}

