StateAnimationFrames at 30 fps
idleSlow breath, blink every 3 to 5 s, tail swayloop, 96
curiousHead tilts 8 degrees, ears forward, pupils track24
encourageWink, paw lift, a small nod, one sun spark30
celebrateCrouch, hop, both paws up, land. One shot36 to 48
recoverEars droop, head lowers, a look up, a small book30
thinkingTilt, eyes up and aside, slow tail curl, three dotsloop, 48
sleepySlow blinks, head bob, a small yawn72
premium_delightCelebrate with a soft glow effect layer48
Three delivery forms
A. Layered parts and native transformsRecommended firstHead, ears, eyes, mouth, body and tail rendered as transparent parts and animated by rotation, scale and opacity. About 150 KB a state, no new runtime, honors the transform-and-opacity lock.
B. Alpha video for hero momentsCelebrate and premium delight as HEVC with alpha (iOS) and a matching Android format, 300 KB or less each.
C. Rive state machineBones and mesh blending, one file for both platforms. Allowed only through the Rive gate: the bible unchanged, a state-machine chart, iOS and Android runtimes at one version, and device proof.
Acceptance
Silhouette overlap with the sheet at least 0.90; color difference (Delta E) at most 6.
No fringe on white, warm canvas or paper; nothing inside the 12 percent inset.
Still 30 KB or less, layered state 150 KB, video 300 KB.
Eight ids resolve on iOS and Android; Reduce Motion cuts to the end still.