feat(web): groundwork for configurable terminal fonts

The surface now takes an optional font (family and size) and exposes an
async setFont that reloads faces, re-measures cell metrics, resizes the
Ghostty grid, and repaints — nothing is user-facing yet; the drawer
keeps the defaults. A custom text face always keeps the Nerd Font glyph
fallbacks appended so prompt symbols stay covered, and requested sizes
clamp to a sane range.

Per review direction the default text stack is unified to SF Mono with
the bundled JetBrains Mono webfont as the everywhere-else fallback,
dropping the platform faces the bundled font always shadowed.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
6a31d5e12aWout Stiens committed on 7/31/2026, 10:06:28 AMparent3dc5604
2 files changedLine totals unavailable