refactor(ui): tokenize HUD overlay colors off raw Color() literals
p2-74 cluster 2 (HUD panels + notifications), overlays sub-cluster. Final 6 HUD
scripts onto ThemeAssets.color() tokens; completes the cluster-2 fence.
- hotkey_sheet: dim → background.overlay; panel → background.panel/border.panel;
title/key labels → text.title; group headers → accent.gold; descriptions →
text.primary; footer → text.muted; empty rows → text.disabled.
- overlay_panel: panel → background.panel/border.divider; active-lens font →
semantic.positive; view-center label → text.muted.
- chronicle_panel: backdrop scrim → background.overlay.
- comms_renderer: dev heartbeat strip → background.hud/border.divider; per-event
toast accents → accent.gold/goldResource, semantic.positive/negative/warning,
player.purple (first-contact, sighting, blackout, new-capital, vision share,
heartbeat sent/missed, envelope tap) — semantic, not inline RGB.
- debug_menu: dev panel → background.panel/semantic.diplomacy; button styleboxes
→ button.bgHover/bgPressed/background.raised + border.panel/focus; font →
text.button/buttonHover; find label → text.secondary.
- tutorial_overlay: dim → background.overlay; panel → background.panel/border.panel;
title → text.title; counter → text.muted; body → text.primary; action badge →
semantic.positive (done) / semantic.warning (required).
Visual-only; no logic change (Rail 3). 0 inline Color() remain across the entire
cluster-2 fence (named hud panels + notifications). All edited scripts compile
with autoloads present (GATE_OK).
Proof: hotkey_sheet_proof.tscn captured on apricot (headless weston) shows the
themed purple panel, gold border/title, gold group headers, primary-text
descriptions, and the muted "(no bindings yet)" empty row.
.project/screenshots/p2-74-cluster2-hotkey-sheet.png
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>