de4dba6f98
Phase 3 step 5c of the UX overhaul. Wraps the achievements list in the standard ui_modal scaffold, recolours every line via tokens, and replaces the "Press A to close" caption with a primary Done button. The achievements list itself keeps its previous shape (unlocked first then alphabetical, secret achievements hidden until unlocked, each row showing name + description + reward + unlock date). The visual changes: - Headline now comes from spawn_modal_header (TYPE_HEADLINE, TEXT_PRIMARY) — was bespoke 26px white. - Unlocked names use ACCENT_PRIMARY (yellow); descriptions in TEXT_PRIMARY at TYPE_BODY. - Locked names and descriptions use TEXT_DISABLED so they read as "future content" without disappearing. - Reward lines use STATE_SUCCESS (green) at TYPE_CAPTION. - Unlock dates use TEXT_SECONDARY at TYPE_CAPTION. - A subtle BORDER_SUBTLE separator follows each row instead of one big separator under the header — easier to scan a long list. - The "✓" / "○" status glyphs stay; their colours come from the per-state tokens. handle_achievements_close_button is the click counterpart to the A key. font_res threaded through toggle_achievements_screen. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>