## 1. Settings Persistence - [x] 1.1 Add sessionStorage read logic in `+page.svelte` to parse `poker-config` on mount - [x] 1.2 Apply parsed config values to `createInitialState` instead of hardcoding `trainingMix` preset - [x] 1.3 Add fallback to `trainingMix` preset when no config exists or parsing fails ## 2. Bot Timer Fix - [x] 2.1 Refactor `DecisionTimer.svelte` $effect to anchor only on `active` and `duration`, not `remaining` - [x] 2.2 Ensure interval callback updates `remaining` without triggering effect re-run - [x] 2.3 Verify countdown follows exact sequence (e.g., 10→9→8→...→0) without resets ## 3. Card Reveal Rules - [x] 3.1 Create `shouldRevealCards(player, gameState)` helper function in PokerTable or utility module - [x] 3.2 Implement showdown reveal: show cards when `bettingRound === 'showdown'` and player hasn't folded - [x] 3.3 Implement all-in reveal: detect when betting is no longer possible and all-in players should show - [x] 3.4 Pass `revealCards` boolean prop from PokerTable to each PlayerSeat - [x] 3.5 Update PlayerSeat to use `revealCards` prop instead of current `isHuman || holeCards.length === 0` check