/* Local Tajawal — vendored from Google Fonts (TTF, ~55KB per weight). */
@font-face {
    font-family: 'Tajawal';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('/assets/fonts/tajawal-400.ttf') format('truetype');
}
@font-face {
    font-family: 'Tajawal';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('/assets/fonts/tajawal-500.ttf') format('truetype');
}
@font-face {
    font-family: 'Tajawal';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('/assets/fonts/tajawal-700.ttf') format('truetype');
}
@font-face {
    font-family: 'Tajawal';
    font-style: normal;
    font-weight: 800;
    font-display: swap;
    src: url('/assets/fonts/tajawal-800.ttf') format('truetype');
}

/* Maalcards numerals — digits-only subset OTF.
 *
 * `unicode-range` restricts this face to Latin (0-9), Arabic-Indic
 * (٠-٩) and Extended Arabic-Indic (۰-۹) digits, so it is automatically
 * applied to every number in the project while all other glyphs fall
 * back to Tajawal. Listed first in --font-arabic / --font-mono. */
@font-face {
    font-family: 'MaalcardsNumerals';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('/assets/fonts/maalcards-numerals.otf') format('opentype');
    unicode-range: U+0030-0039, U+0660-0669, U+06F0-06F9;
}

/* Rubik — Google Fonts' English UI face, vendored locally so the
 * same-origin font-src CSP keeps working. The `unicode-range` limits
 * each weight to Basic Latin letters so Arabic text continues to use
 * Tajawal — Rubik only paints for non-Arabic characters (series codes
 * like "BATCH-3-MOW2IB2Q-E85GY0", brand codes, English UI labels, etc.).
 *
 * Per design, English body text renders at the Medium weight, so the
 * normal (400) face is mapped to Rubik Medium; 500/600/700 stay
 * available for headings and emphasis. */
@font-face {
    font-family: 'Rubik';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('/assets/fonts/rubik-500.ttf') format('truetype');
    unicode-range: U+0041-005A, U+0061-007A;
}
@font-face {
    font-family: 'Rubik';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('/assets/fonts/rubik-500.ttf') format('truetype');
    unicode-range: U+0041-005A, U+0061-007A;
}
@font-face {
    font-family: 'Rubik';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url('/assets/fonts/rubik-600.ttf') format('truetype');
    unicode-range: U+0041-005A, U+0061-007A;
}
@font-face {
    font-family: 'Rubik';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('/assets/fonts/rubik-700.ttf') format('truetype');
    unicode-range: U+0041-005A, U+0061-007A;
}
