/* Thai readability (Primal World, 2026-09-26). Only while the page is in Thai (i18n.js sets html[lang]); English is
   untouched. Information text takes the Thai face with no tracking and no upper-casing, 1.5 px more size (the sizes
   below are the house sheets' own values + 1.5), more line height, and dim copy is lifted to the body colour.
   Headings keep the display face. */
html[lang="th"] :is(main,footer) :is(p,li,dd,dt,label,small,figcaption,.lede,.kicker,.eyebrow,.note,.hint,.muted,.fg-dim,.status-note,.notice,.admin-hint,.admin-note,.join-hint,.save-note){font-family:'Noto Sans Thai','Inter',sans-serif;letter-spacing:0;text-transform:none}
html[lang="th"] :is(main,footer) :is(p,dd,.lede,.status-note,.notice){line-height:1.75}
html[lang="th"] :is(main,footer) :is(span,dt,small,label){letter-spacing:0}
:where(html[lang="th"]) :where(main,footer) :where(p,li,dd):not(:where(p,li,dd) *){font-size:calc(1em + 1.5px)}
html[lang="th"] .hero .lede{font-size:18px}
html[lang="th"] .hero .kicker{font-size:13.5px}
html[lang="th"] .hero:has(.vp-conn-row) .lede{font-size:16.5px}
html[lang="th"] .hero:has(.vp-conn-row) .kicker{font-size:12px;letter-spacing:0}
@media (max-width:720px){html[lang="th"] .hero .kicker{font-size:12.5px}}
html[lang="th"] :is(.page-head,.sec-head:has(>.page-h1))>p:not(.eyebrow){font-size:calc(clamp(15px,1.05vw,17px) + 1.5px)}
html[lang="th"] :is(.card p,.news-body p){font-size:16.1px}
html[lang="th"] .gate p{font-size:16px}
html[lang="th"] .steps li{font-size:15.5px}
html[lang="th"] :is(.status-note,.join-hint,.feat p){font-size:15px}
html[lang="th"] .rec-gate-body{font-size:14.5px}
html[lang="th"] .eyebrow{font-size:12px}
html[lang="th"] :is(main,footer) :is(.lede,.kicker,.sec-head p,.card p,.feat p,.gate p,.stage-gate p,.lvc-empty p,.steps li,.status-note,.notice,.muted,.fg-dim){color:var(--fg)}
