Files
multica/apps
Lambda c6a41b2ad0 fix(web): give landing CJK headlines a real serif stack
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>
2026-07-29 14:45:31 +08:00
..