# Motion grammar — Poyo (`poyo`)
Status: DRAFT 2026-10-31 (kuu motion, agent-written). Pablo flips Status; agents never write APPROVED. Not yet in `_shared/brands/poyo/` — promote on approval.
Sources: `_shared/brands/poyo/brand.md` · `design-language.md` (PY-01..06) · `tokens/poyo.tokens.json` · brief 2026-10-31 ("precise, operational, cue-like"). Values below are first-proof choices from `src/PoyoSting.tsx`, not measured from a prior reference [?].

## Frame policy
- Delivered at 30 fps, continuous (not stepped) motion.
- Cuts between scenes, never dissolves.

## Entrance vocabulary
- mask-up (display lines / wordmark): translateY(110%) -> 0, 8 f, expo-out `cubic-bezier(0.16,1,0.3,1)`, 6 f line stagger.
- type-on (mono labels): one character per frame, hard, no fade — reads like a call sheet being filled.
- wipe (mascot field): clip-path inset left-to-right, 6 f, expo-out. Mascot appears on the wipe's last frame (hard).
- beam sweep: signal polygon translates in, 18 f, linear.
- cue blink: signal square on/off every 6 f, hard.

## Ground
- Ink ground, static. Surface (#0E0E0E) only as mascot field or diagonal split (PY-05). No grain, no gradient, no glow.

## Signal (yellow)
- One signal element per frame: the cue square, OR the beam, OR the URL dot. Never text, never on paper, never in the mascot field.

## Furniture
- Burn-in: 1px paper rule + mono `POYO / <PIECE>` left, running TC right. 9x16: top 150 px, 64 px inset. 16x9: top 56 px, 72 px inset.
- Section labels are cue indexes `NN / LABEL` (PY-02).

## Scene timing
- Sting 13 s: cue 2 s · line 3 s · mascot 3 s · beam 2.5 s · end card 2.5 s.
- Headline fully in by 0.9 s into its scene.

## Type in motion
- Display Unbounded 700 caps, tracking 0, lh .96, 150 px at 1080 wide; wordmark POYO 300 px, −0.11em, paper only.
- Mono IBM Plex Mono 500 caps +0.04em, 22–64 px.
- No outline/hollow text.

## Mascot
- Alone in surface field, `image-rendering: pixelated`, exact 1/2 scale (591x665; 1x does not fit ≤84% of a 1080 field), no rotation, no motion of the image itself.

## Forbidden
- Dissolves, blur transitions, glows, gradients, rounded corners, parallax, bounce/overshoot, two signal elements in one frame, emoji.

```yaml machine
status: DRAFT
fpsDelivery: 30
durEnter: 267       # ms (8 f)
easeEnter: "cubic-bezier(0.16,1,0.3,1)"
easeExit: "cut"
safeStoryTop: 150
safeStoryBottom: 250   # [?] not measured against IG UI
forbidden: [dissolve, blur-transitions, glow, gradient, radius, parallax, overshoot, double-signal, emoji, outline-text]
learned_rules: []
```
