/* Local/system fonts only. Language tags select glyph families; they never
 * translate text or change the language sent to an AI provider. A nested lang
 * (including an English fallback) keeps its own typography. */
:root, [lang] {
    --dream-font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", sans-serif;
    --dream-font-serif: Georgia, "Times New Roman", serif;
    --dream-script-line-height: 1.5;
    font-family: var(--dream-font-sans);
    line-height: var(--dream-script-line-height);
}
:lang(zh-Hant), :lang(zh-TW) {
    --dream-font-sans: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;
    --dream-font-serif: "Noto Serif TC", "Songti TC", "PMingLiU", serif;
}
:lang(zh-Hant-HK), :lang(zh-HK) {
    --dream-font-sans: "Noto Sans HK", "PingFang HK", "Microsoft JhengHei", "Noto Sans TC", sans-serif;
    --dream-font-serif: "Noto Serif HK", "Songti TC", "PMingLiU", serif;
}
:lang(zh-Hans), :lang(zh-CN) {
    --dream-font-sans: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;
    --dream-font-serif: "Noto Serif SC", "Songti SC", "SimSun", serif;
}
:lang(ja) {
    --dream-font-sans: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
    --dream-font-serif: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
}
:lang(ko) {
    --dream-font-sans: "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
    --dream-font-serif: "Noto Serif KR", "AppleMyungjo", Batang, serif;
}
:lang(ar) {
    --dream-font-sans: "Noto Sans Arabic", "Geeza Pro", Tahoma, "Segoe UI", sans-serif;
    --dream-font-serif: "Noto Naskh Arabic", "Geeza Pro", "Traditional Arabic", serif;
    --dream-script-line-height: 1.7;
}
:lang(ur) {
    --dream-font-sans: "Noto Naskh Arabic", "Geeza Pro", Tahoma, "Segoe UI", sans-serif;
    --dream-font-serif: "Noto Naskh Arabic", "Geeza Pro", "Traditional Arabic", serif;
    --dream-script-line-height: 1.85;
}
:lang(he) {
    --dream-font-sans: "Noto Sans Hebrew", "Arial Hebrew", Arial, sans-serif;
    --dream-font-serif: "Noto Serif Hebrew", "Times New Roman", serif;
    --dream-script-line-height: 1.6;
}
:lang(th) {
    --dream-font-sans: "Noto Sans Thai", "Thonburi", "Leelawadee UI", Tahoma, sans-serif;
    --dream-font-serif: "Noto Serif Thai", "Thonburi", "Leelawadee UI", serif;
    --dream-script-line-height: 1.75;
}
:lang(hi), :lang(mr) {
    --dream-font-sans: "Noto Sans Devanagari", "Kohinoor Devanagari", "Nirmala UI", Mangal, sans-serif;
    --dream-font-serif: "Noto Serif Devanagari", "Kohinoor Devanagari", "Nirmala UI", serif;
    --dream-script-line-height: 1.75;
}
:lang(bn) {
    --dream-font-sans: "Noto Sans Bengali", "Kohinoor Bangla", "Nirmala UI", Vrinda, sans-serif;
    --dream-font-serif: "Noto Serif Bengali", "Kohinoor Bangla", "Nirmala UI", serif;
    --dream-script-line-height: 1.75;
}
:lang(gu) {
    --dream-font-sans: "Noto Sans Gujarati", "Gujarati Sangam MN", "Nirmala UI", Shruti, sans-serif;
    --dream-font-serif: "Noto Serif Gujarati", "Gujarati Sangam MN", "Nirmala UI", serif;
    --dream-script-line-height: 1.75;
}
:lang(pa) {
    --dream-font-sans: "Noto Sans Gurmukhi", "Gurmukhi MN", "Nirmala UI", Raavi, sans-serif;
    --dream-font-serif: "Noto Serif Gurmukhi", "Gurmukhi MN", "Nirmala UI", serif;
    --dream-script-line-height: 1.75;
}
/* Registry scripts currently unavailable in the consumer menu remain covered
 * if shown in a language option or explicitly tagged authored content. */
:lang(am) { --dream-font-sans: "Noto Sans Ethiopic", Nyala, sans-serif; --dream-font-serif: var(--dream-font-sans); --dream-script-line-height: 1.7; }
:lang(kn) { --dream-font-sans: "Noto Sans Kannada", "Kannada Sangam MN", "Nirmala UI", sans-serif; --dream-font-serif: var(--dream-font-sans); --dream-script-line-height: 1.75; }
:lang(ml) { --dream-font-sans: "Noto Sans Malayalam", "Malayalam Sangam MN", "Nirmala UI", sans-serif; --dream-font-serif: var(--dream-font-sans); --dream-script-line-height: 1.75; }
:lang(or) { --dream-font-sans: "Noto Sans Oriya", "Oriya Sangam MN", "Nirmala UI", sans-serif; --dream-font-serif: var(--dream-font-sans); --dream-script-line-height: 1.75; }
:lang(ta) { --dream-font-sans: "Noto Sans Tamil", "Tamil Sangam MN", "Nirmala UI", sans-serif; --dream-font-serif: var(--dream-font-sans); --dream-script-line-height: 1.75; }
:lang(te) { --dream-font-sans: "Noto Sans Telugu", "Telugu Sangam MN", "Nirmala UI", sans-serif; --dream-font-serif: var(--dream-font-sans); --dream-script-line-height: 1.75; }

/* Native controls otherwise keep the browser's unrelated default font. */
button, input, textarea, select, option { font-family: var(--dream-font-sans); }
body { line-height: var(--dream-script-line-height); }
:root [lang] {
    font-family: var(--dream-font-sans);
    line-height: var(--dream-script-line-height);
}

/* Chat source can differ from the interface and can mix scripts. The renderer
 * explicitly marks unknown source language; do not infer it from UI locale. */
.dream-chat-view [lang=""] {
    --dream-script-line-height: 1.65;
    font-family: var(--dream-font-sans);
    line-height: var(--dream-script-line-height);
    letter-spacing: normal;
}
.dream-chat-view[data-reading-font="serif"] [lang=""] {
    font-family: var(--dream-font-serif);
}

/* Connected letters and combining marks need natural spacing and headroom.
 * Use intrinsic/minimum control heights, never a fixed-height glyph box.
 * :lang respects nested source-language labels, even within an RTL UI. */
:root :is(:lang(ar), :lang(ur), :lang(he), :lang(th), :lang(hi), :lang(mr), :lang(bn), :lang(gu), :lang(pa), :lang(am), :lang(kn), :lang(ml), :lang(or), :lang(ta), :lang(te)):where(
    h1, h2, h3, h4, p, label, button, input, textarea, select, option, summary, li, a,
    .member-name, .eyebrow, .dream-chat-bubble, .dream-chat-part,
    .dream-chat-mode-trigger__label, .dream-chat-mode-trigger__current,
    .dream-chat-mode-trigger__cost, .dream-chat-host-style-card__title,
    .dream-chat-host-style-card__summary, .dream-chat-mode-card__description,
    .dream-chat-mode-card__price, .dream-chat-memory__summary-text
) {
    line-height: var(--dream-script-line-height);
    letter-spacing: normal;
}
/* A language select can contain many scripts at once. */
option[lang] { line-height: normal; }
