- Add theme-raw.ts (no MUI/DOM deps) as the one source of theme values.
Each theme declares only surfaces, 3-tier text, borders, accent and
overlay shadow; legacy glass/gradient/glow/crt keys are derived as
flat values so existing call sites lose effects without edits.
- Tertiary text now clears 4.5:1 on every surface in all six themes
(label/inactive/dimLabel/muted alias it). Filled buttons use
accent.solid + accent.ink (5.17:1 on dark/light, was 3.68:1).
- theme-vars.ts derives popup CSS from the same raw values instead of a
hand copy, and defines the previously undefined --d3-overlay-strong
and --d3-accent-glow-dim.
- MUI: no ripple, global focus-visible ring and reduced-motion rule,
flat Card, status colors per theme, shape radius 16 -> 6.
- DS: flatten MetalCard/DoubleBezelCard/ScreenPanel/TiltCard, tone-based
PhysicalButton (500 weight, no lift), TactileBadge with zero tracking
and keyboard support, glow-free Led/StatRing, idle wave amplitude 0.
- PhosphorText drops mono/uppercase variants: mono has no Hangul glyphs,
which spaced out Korean labels.
- design.md: record the 2026-09-28 redesign brief, audit, IA and tokens.