mirror of
https://github.com/multica-ai/multica.git
synced 2026-08-03 19:20:07 +02:00
The zh/ja/ko landing headlines were rendering in an unstyled system fallback. Three separate causes stacked on the same <h1>: - --font-serif-zh was dead code. Noto_Serif_SC was loaded and its variable attached to the landing wrapper, but nothing in the repo ever referenced it, and it was declared subsets: ["latin"] -- a Chinese serif loaded with only its Latin slice, so it could not have supplied Han glyphs even if it had been wired up. Removed. - With no CJK tail, --font-serif resolved to Instrument Serif, which has zero CJK coverage, so Han/Kana/Hangul dropped out of the family entirely and landed on whatever the UA picks -- beside Latin glyphs from another face. - tracking-[-0.038em] and leading-[0.93] are tuned for Latin display type. Han and Kana already fill their em box, so negative tracking crowds them and a sub-1 line-height collides lines -- landing-hero renders two <br />-separated lines at up to 6.4rem. Instrument Serif now exposes --font-instrument-serif and app/custom.css composes --font-serif from it plus a system Song/Mincho/Myeongjo tail, the same structure globals.css already uses for --font-sans (CSS-composed so it stays overridable per <html lang>, Chinese ahead of Korean because Han is one shared Unicode block, ja promoted separately). System faces, so zero download. The 15 localized headings move from the repeated font-[family-name:var(--font-serif)] to a .landing-display class, which gives the CJK metric reset a single hook. The footer wordmark keeps plain font-serif -- it is Latin-only and must not pick up that reset. Also mirrors the AA muted-foreground value into .landing-light, which re-declares the light palette. Co-authored-by: multica-agent <github@multica.ai>