89a21c0587
The v0.22.3 hardware screenshot showed the 6-button action row (~510 px when laid out) overflowing into a 360 dp viewport from the right anchor, with Menu and Undo clipped off-screen left and Pause/Help/Modes/New_Game overlapping the left HUD column's Score / Moves / Timer text. Cap both clusters at `max_width: 50 %` so on mobile each takes half the viewport (~180 px) and on desktop the cap is wider than either cluster's natural width so the existing single-line layout is preserved. - Action button row: adds `flex_wrap: Wrap`, `row_gap`, and `justify_content: FlexEnd` so the row breaks to multiple right-aligned lines instead of clipping. 6 buttons become 2-3 lines of 2-3 buttons. - HUD column tier rows: add `flex_wrap: Wrap` and `row_gap` to the shared `row_node` helper so a long Mode/Challenge/Draw-cycle combo soft-wraps onto two lines instead of pushing into the action button column. Closes P0 #2 of docs/android/PLAYABILITY_TODO.md. All 854 engine tests pass; clippy clean. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>