Make the entry screen a live fight against the dummy master
There is no title screen to press through any more. Booting starts a training round with its intro already spent, so you are playable on the first frame, and the wordmark floats over that fight rather than in front of it. Start lifts the word off; it does not begin the round, because the round was already running. Pal select is flagged out rather than deleted -- one PAL_SELECT const guards its three call sites and every function behind it stays whole and tested, because this UI is still moving and the wheel may come back. Every fight now enters through startFightAgainst(kind), which is where sign-in will sit: dummy is free and anonymous, while bot and ppl are the kinds that start a series, publish a match and upload a replay. Auth buys opponents, not entry. The wordmark is a toy. A letter under the pointer grows, lifts and shudders, hit-tested against its undrifted kerning cell so a swollen letter cannot chase the cursor or shove its neighbours, and start bounces letter by letter with each hop trailing the one before. The control legend draws as keys -- gray caps with a line around them that sink and brighten while held, read off the pad each fighter feels. Fixes a crash that legend introduced on the way in: drawKeycapRun reached for titleInk, which is local to gamePaint, so every round-intro frame threw a ReferenceError into the error card and drew the crash screen with no triangles at all. The test that caught it asserted only that debug drew more faces than the scene, which cannot tell an empty overlay from a frame that died halfway; it now checks that the frame completed and that debug adds faces only in the reserved depth band. Adds npm run xbox:play, which serves the working tree so a save is a reload rather than a deploy, and xbox/live/NEXT.md.