# Game mode selector revision

Checkpoint: **2026-10-13**. Standa requested a clear, consistent replacement for the launcher’s thin selected-mode underline.

## Implementation

- One dark, rounded segmented control replaces the two separate outlined buttons.
- The selected mode has a permanent gold fill, dark label and circular selection marker. Selection remains visible while Start or another action has focus.
- Keyboard/remote focus has its own three-pixel cream outline. Focusing the other segment does not change the selected mode.
- Both modes reuse the same rendering loop, existing textures, colors, translations and shared invisible button target. IDs 9605/9606, navigation, remembered choice and Story eligibility are preserved.
- Standa subsequently approved removing the redundant film/series challenge caption next to the selector. The launcher no longer displays this caption in either mode; other screens keep their existing labels.
- Edit `scripts/game_dialog/gen_modern_game.py`, then regenerate `resources/skins/Default/1080i/games/DialogMilionarGameModern.xml`. Never edit generated XML manually.

Design reference: [Apple Human Interface Guidelines: segmented controls](https://developer.apple.com/design/human-interface-guidelines/segmented-controls). The actual colors and textures follow this addon's existing dialog design.

## Verification and handoff

- `python3 tests/test_millionaire_modern.py`: **28 passed**.
- `python3 tests/test_story_game.py`: **16 passed**.
- `xmllint --noout resources/skins/Default/1080i/games/DialogMilionarGameModern.xml`: passed.
- Existing test ResourceWarnings about unclosed reads are unrelated to this change.
- **Visual verification is pending explicit GUI-test authorization.** No Kodi, browser or simulator test was performed for this revision. Once authorized, capture Millionaire and Story with focus on each segment and on Start; include an ineligible Story subject. Confirm that selection and focus remain distinct and compare aligned edges against the supplied screenshots.
- This selector revision is local and has not been published. The preceding complete catalog release is addon **2.1.66 / skin 1.3.53**; `.agents/state/release.json` is the release report. Deploy only on Standa's request through `python3 scripts/release.py publish`.

Lesson: selection and focus represent different states. Never use a tiny underline as the only persistent indication of the game that will start.
