| Place | Still | Motion | Size | Decision |
|---|---|---|---|---|
| First-run welcome | idle | Breath, loops | 160 pt | Keep |
| Day kept | celebrate | One hop, sparks fade in and out | 176 pt | Keep |
| Return after two weeks or more | recover | One slow sink, then rests | 104 pt | New |
| Empty Saved, other empty states | idle | Breath, loops | 120 pt | Keep |
| Ask Qoloa header, thinking | idle, head crop | None | 36 pt | Change |
| Qoloa Plus | encourage | None | 160 pt | Keep |
| Word by word header, card reason slot, Loot header | none | The title is text. No mascot. | - | Remove |
At 34 to 40 pt the ledge reads as a cropped box with a head on it. A round head crop keeps the face, the stripes and the ears, and drops the prop.
A mascot that appears in every header is decoration. It appears where something happened.



Native transforms on the five approved stills, the appearance budget above, the head crop. No new art, no new runtime. Under Reduce Motion a state change is a cut.
A layered vector master of the approved art, rigged in Rive with one state machine for iOS and Android, or a commissioned artist for the eight states. Gate: side-by-side with the approved still at 96 and 200 pt, two people, every state reads as its name, 60 fps, one runtime version, device proof.
The Blender renders (qoloa3d_*) stay as reference. They pass the outline and colour tests and still read as a different, less appealing character. Nothing in the app loads them.