# M54 Contract UI Migration ## Stopping point Contract Choice uses the shared M52/M53 chibi hand-drawn UI language with measured modules and verified screenshots. Gameplay, Save, routing and domain services remain unchanged. ## Ordered steps 1. Extract responsive canvas and `ContractHeader`. 2. Extract `ContractBoard` and difficulty choice slots. 3. Extract `ContractPartySummary`, action dock and navigation. 4. Add the same SubViewport visual matrix for 760×360, 844×390 and 1280×720 in zh_CN/en. 5. Inspect static, dynamic and final renders; fix earliest failing boundary. ## Frozen scope No new content, battle rules, economy, Save schema, audio, packaging or device release work. ## Acceptance - Existing Contract View contract marker passes exactly once. - All six locale/viewport combinations render without clipping or overlap. - Every visible region has one owner: static master, runtime content or hit area. - Focused commit is pushed before the next step.