/*
 * Brand fonts, self-hosted (no Google Fonts dependency).
 *
 * "HQ Text" is the composite face used for running text: Persian, digits and
 * punctuation from Ravi; Latin letters from IBM Plex Sans (brand rule: Latin
 * runs inside Persian text are set in Plex at the same weight).
 * Ravi (fontiran.com): HarmoniQ holds an unrestricted licence, so the files are
 * published with the site and bundled in the Claude skill and the fonts zip.
 */

/* ---------- Ravi: all eight weights ---------- */
@font-face { font-family: 'Ravi'; src: url('/fonts/ravi/Ravi-Thin.woff2') format('woff2'); font-weight: 100; font-display: swap; }
@font-face { font-family: 'Ravi'; src: url('/fonts/ravi/Ravi-Light.woff2') format('woff2'); font-weight: 300; font-display: swap; }
@font-face { font-family: 'Ravi'; src: url('/fonts/ravi/Ravi-Regular.woff2') format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Ravi'; src: url('/fonts/ravi/Ravi-Medium.woff2') format('woff2'); font-weight: 500; font-display: swap; }
@font-face { font-family: 'Ravi'; src: url('/fonts/ravi/Ravi-SemiBold.woff2') format('woff2'); font-weight: 600; font-display: swap; }
@font-face { font-family: 'Ravi'; src: url('/fonts/ravi/Ravi-Bold.woff2') format('woff2'); font-weight: 700; font-display: swap; }
@font-face { font-family: 'Ravi'; src: url('/fonts/ravi/Ravi-Black.woff2') format('woff2'); font-weight: 900; font-display: swap; }
@font-face { font-family: 'Ravi'; src: url('/fonts/ravi/Ravi-ExtraBlack.woff2') format('woff2'); font-weight: 950; font-display: swap; }

/* ---------- IBM Plex (Latin subset, OFL) ---------- */
@font-face { font-family: 'IBM Plex Sans'; src: url('/fonts/plex/ibm-plex-sans-latin-300-normal.woff2') format('woff2'); font-weight: 300; font-display: swap; }
@font-face { font-family: 'IBM Plex Sans'; src: url('/fonts/plex/ibm-plex-sans-latin-400-normal.woff2') format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'IBM Plex Sans'; src: url('/fonts/plex/ibm-plex-sans-latin-500-normal.woff2') format('woff2'); font-weight: 500; font-display: swap; }
@font-face { font-family: 'IBM Plex Sans'; src: url('/fonts/plex/ibm-plex-sans-latin-600-normal.woff2') format('woff2'); font-weight: 600; font-display: swap; }
@font-face { font-family: 'IBM Plex Sans'; src: url('/fonts/plex/ibm-plex-sans-latin-700-normal.woff2') format('woff2'); font-weight: 700; font-display: swap; }
@font-face { font-family: 'IBM Plex Serif'; src: url('/fonts/plex/ibm-plex-serif-latin-400-normal.woff2') format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'IBM Plex Serif'; src: url('/fonts/plex/ibm-plex-serif-latin-700-normal.woff2') format('woff2'); font-weight: 700; font-display: swap; }
@font-face { font-family: 'IBM Plex Mono'; src: url('/fonts/plex/ibm-plex-mono-latin-400-normal.woff2') format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'IBM Plex Mono'; src: url('/fonts/plex/ibm-plex-mono-latin-600-normal.woff2') format('woff2'); font-weight: 600; font-display: swap; }

/* ---------- HQ Text: Plex for Latin letters, Ravi for everything else ---------- */
/* A–Z, a–z and Latin accented letters only; digits, spaces and punctuation stay in Ravi so Persian runs are never split. */
@font-face { font-family: 'HQ Text'; src: url('/fonts/plex/ibm-plex-sans-latin-300-normal.woff2') format('woff2'); font-weight: 100 300; unicode-range: U+0041-005A, U+0061-007A, U+00C0-00FF; font-display: swap; }
@font-face { font-family: 'HQ Text'; src: url('/fonts/plex/ibm-plex-sans-latin-400-normal.woff2') format('woff2'); font-weight: 400; unicode-range: U+0041-005A, U+0061-007A, U+00C0-00FF; font-display: swap; }
@font-face { font-family: 'HQ Text'; src: url('/fonts/plex/ibm-plex-sans-latin-500-normal.woff2') format('woff2'); font-weight: 500; unicode-range: U+0041-005A, U+0061-007A, U+00C0-00FF; font-display: swap; }
@font-face { font-family: 'HQ Text'; src: url('/fonts/plex/ibm-plex-sans-latin-600-normal.woff2') format('woff2'); font-weight: 600; unicode-range: U+0041-005A, U+0061-007A, U+00C0-00FF; font-display: swap; }
@font-face { font-family: 'HQ Text'; src: url('/fonts/plex/ibm-plex-sans-latin-700-normal.woff2') format('woff2'); font-weight: 700 950; unicode-range: U+0041-005A, U+0061-007A, U+00C0-00FF; font-display: swap; }
