/* Local CJK serif candidates are optional: no font downloads are introduced.
 * iOS may not have Songti / AppleMyungjo installed. Generic fallback stays valid. */
:root {
    --font-serif: ui-serif, Georgia, serif;
    --font-display: 'Playfair Display', var(--font-serif);
}
:root:lang(zh) {
    --font-serif: 'Songti SC', 'Songti TC', ui-serif, serif;
}
:root:lang(zh-TW), :root:lang(zh-Hant), :root:lang(zh-HK), :root:lang(zh-MO) {
    --font-serif: 'Songti TC', 'Songti SC', ui-serif, serif;
}
:root:lang(ja) {
    --font-serif: 'Hiragino Mincho ProN', 'Yu Mincho', serif;
}
:root:lang(ko) {
    --font-serif: 'AppleMyungjo', 'Batang', ui-serif, serif;
}

/* First-party web fonts. CJK glyphs use the device-native font stack so a
 * mobile visit does not need to download full Chinese, Japanese, and Korean families. */
@font-face {
    font-family: 'JetBrains Mono';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('/assets/fonts/jetbrains-mono-latin-400-normal.woff2') format('woff2');
}

@font-face {
    font-family: 'JetBrains Mono';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('/assets/fonts/jetbrains-mono-latin-500-normal.woff2') format('woff2');
}

@font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('/assets/fonts/playfair-display-latin-400-normal.woff2') format('woff2');
}

@font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('/assets/fonts/playfair-display-latin-500-normal.woff2') format('woff2');
}

@font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url('/assets/fonts/playfair-display-latin-600-normal.woff2') format('woff2');
}

@font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('/assets/fonts/playfair-display-latin-700-normal.woff2') format('woff2');
}
