Ship a metric-overridden local() fallback face per default family (Fontaine /
next-font model): before the webfont loads, the browser uses a system font
(Arial / Georgia / Courier New) resized via size-adjust + ascent/descent/
line-gap-override to match the webfont's geometry, so text doesn't reflow when
the variable woff2 swaps in — zero CLS.
Values precomputed from @capsizecss/metrics (each webfont vs its system fallback)
and set in the config's `fallback` field (theme data — the sanctioned home, not
magic numbers in CSS). The engine emits the '{family} Fallback' @font-face and
injects it into the --font-family-* stack after the real family. Display repeats
Lora's fallback so its own token (hero/h1/h2, where CLS is most visible) is
covered without emitting a duplicate face.
Verified: the 3 fallback faces register in the browser; the stacks inject
'{family} Fallback'; tests 99/99; npm run check src/ = 9-error baseline, 0 new.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>