Composes
scale-bounce(on headline text)scale-bounce(on chip)element-handoff(when chip is a shared layer carrying into the next scene — most common case)
Layout
canvas: 1080x1920 (or pack-specified)
headline_zone:
anchor: top-left
origin: { x: 60, y: 240 }
max_width_pct: 70
align: left
transform_origin: "left top"
chip_zone: anchor: bottom-right origin: { x: canvas_w - 220, y: canvas_h - 220 } diameter: 160 reserved: true # no text may enter this zone
The `chip_zone` is the reserved decoration band — text in `headline_zone` may NOT extend into it. The impl-brief atom enforces this via `decoration_x_min = canvas_w - 220`.
## Choreography
```yaml
tier_1:
element: headline
effect: scale-bounce
delay_frames: 0
peak_frame: 14
settle_frame: 24
tier_2:
element: chip
effect: scale-bounce (if first scene with chip) | element-handoff (if continuing)
delay_frames: 6 # arrives after headline lands
peak_frame: 20
hold:
start_frame: 30
duration_frames: 30+ # at least 1.0s hold after motion
When the chip is a sharedLayer continuing from a prior scene, tier-2 becomes the chip's element-handoff entry — no pop, just a translate+rotate into the new position.
Style pack compatibility
supported: [SP-A, SP-B, SP-E, SP-G]
preferred_in: [SP-A]
incompatible: [SP-C, SP-D, SP-F]
SP-C (editorial-cinematic) and SP-D (editorial-magazine) don't use chips — they have different vocabularies (corner-ticker, brand-tag). SP-F (product-demo) replaces chips with the aurora-blob.
Duration range
duration_seconds: [1.6, 2.4]
Default 2.0s. Shorter than 1.6s feels rushed; longer than 2.4s loses snap.
Pack-specific param overrides
The impl-brief atom pulls these from each pack's motion-recipes.md. Defaults assume SP-A.
SP-A (marshmallow)
- headline: scale-bounce damping 12, overshoot 0.15
- chip: scale-bounce damping 14, overshoot 0.12
- bg: hard-cut on swap
SP-B (pinterest-saturated)
- headline: pop-in damping 18, overshoot 0.05 (softer, less candy-pop)
- chip: pinterest doesn't use chips → use a small sticker-chip-pop instead
- bg: hard-cut on bg-swap, with a doodle accent
SP-E (chaos-card)
- headline: scale-bounce + tilt -2° to +2°
- chip: scale-bounce + sticker-tilt-wobble after pop
- music_beat_anchor: required
SP-G (riso-illustration)
- headline: scale-bounce damping 16, overshoot 0.10
- chip: replaced with the recurring illustration object
- grain layer over both elements
Quality Checks
- Headline
font_size × pack.type.char_width_factor × char_count × (1 + pack.motion.spring_overshoot_pct) ≤ pack.container.padding_safe_area_pct × canvas_w - Chip x is in the reserved decoration zone (≥ canvas_w − 220 by default)
- Tier-2 delay ≥ pack's stagger_default_frames
- Hold phase ≥ 60% of total scene duration
Failure Modes
- Headline overflows safe area at spring peak → impl-brief reduces fontSize and logs the fix.
- Chip overlaps headline x-band → impl-brief halts with "chip x violates reserved zone".
- Tier-2 fires same frame as tier-1 → impl-brief logs warning; merges into tier-1 (no two-tier rhythm).