/*
 * **********************************************************************
 * Web Fonts — self-hosted @font-face declarations
 *
 * The three families are taken from the brand artwork rather than chosen
 * fresh: the welcome banner sets "Gallery" in a high-contrast Didone
 * serif and "Mahjongg" in a formal script, and those images sit directly
 * beside live HTML headings. Matching them is what makes the two read as
 * one page.
 *
 *   Playfair Display  — display serif, matches "Gallery" in the banner
 *   Source Sans 3     — body face, humanist sans with open apertures
 *   Alex Brush        — script accent, already used for .mah-script-word
 *
 * All three are SIL Open Font License 1.1; see fonts/LICENSE.md.
 *
 * Self-hosted rather than loaded from fonts.googleapis.com: it removes a
 * third-party origin from the critical path (extra DNS + TLS before any
 * text can render) and keeps visitor IPs off Google's servers. The two
 * variable fonts carry their whole weight range in one file each, so the
 * full set is ~101 KB.
 *
 * Latin subset only. Pages that use CJK — inc/spelling.php quotes 麻将
 * and 麻雀 — fall through to the system CJK font via unicode-range,
 * which is the intended behaviour.
 *
 * @version  1.0.0
 * @updated  2026-08-07
 * **********************************************************************
 */

/* =============================================================================
   Latin subset range — shared by every face below
   ============================================================================= */

/* U+0000-00FF Latin-1, plus the punctuation and symbols Google's latin
   subset includes. Anything outside it (CJK) falls back per-glyph. */

/* =============================================================================
   Playfair Display — variable, weight 400–900
   ============================================================================= */

@font-face {
	font-family: 'Playfair Display';
	font-style: normal;
	font-weight: 400 900;
	font-display: swap;
	src: url('../fonts/playfair-display-var-latin.woff2') format('woff2-variations'),
	     url('../fonts/playfair-display-var-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;
}

/* =============================================================================
   Source Sans 3 — variable, weight 300–700
   ============================================================================= */

@font-face {
	font-family: 'Source Sans 3';
	font-style: normal;
	font-weight: 300 700;
	font-display: swap;
	src: url('../fonts/source-sans-3-var-latin.woff2') format('woff2-variations'),
	     url('../fonts/source-sans-3-var-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;
}

@font-face {
	font-family: 'Source Sans 3';
	font-style: italic;
	font-weight: 400;
	font-display: swap;
	src: url('../fonts/source-sans-3-var-italic-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;
}

/* =============================================================================
   Alex Brush — script accent, single weight
   ============================================================================= */

@font-face {
	font-family: 'Alex Brush';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('../fonts/alex-brush-400-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;
}
