# Hold a macro crop on the player's action row, then pull back in one eased move to the full app window

Manual DaVinci Resolve / Fusion construction guide generated from the recipe. It is not a tested .drp.
The accompanying Remotion project (recipe.json) is the executable definition; the numbers below are copied from it.
Neither construction establishes source fidelity: this is an original vector approximation of an inspected editing moment.

## Source and clock
Reference: OpenAI's "How to storyboard with Sora" (6PXWAvUG8Sg), published 2024-12-09.
Source interval [7970, 8080) on the 60/1 fps master: 110 frames, 1.833333 s. Local frame 0 = source frame 7970.
Create a 1920x1080 progressive timeline at 60/1 fps and a Fusion composition exactly 110 frames long. Keep integer frames; do not round the frame rate.
Background field: #050505. Export silent H.264 yuv420p to match the intended playback container.

## Observation
Macro crop on the bottom of a video player: the picture fills the top half, below it a thin progress track, two segment buttons with a 'Storyboard' label, and an action row (Edit story, Re-cut, Remix, Blend, Loop) with a tooltip 'Revise storyboard and create new videos' and an 'E' key chip above the first item. The tooltip fades out by about local frame 12 (master 7982) and the pointer drifts away. From ~28 (master 7998) the whole frame scales down and re-centres in one eased move, landing by ~60 (master 8030) on the full app view: header text and icons at top, the video as a 1520x760 window, the same controls now small beneath it, and coloured glows at the frame edges. It holds to the end.

## Mechanism
Single eased camera pull-back from a detail crop to the full screen: scale and translation are keyed together so the action row travels from centre-frame to its true position while everything else is revealed around it.

## Phases (local frames)
- 0: Macro on action row with tooltip
- 12: Tooltip gone, pointer drifts
- 28: Pull-back begins
- 60: Full app window
- 100: Hold

## Layer inventory (absolute 1920x1080 top-left pixels, back to front)
- glow-top [rect] at (0, 0) size 1920x90 fill #2c3f8f
- glow-top-o [rect] at (1000, 0) size 920x90 fill #d97a3a
- glow-bot [rect] at (0, 1040) size 1920x40 fill #2c3f8f
- hdr [text] at (0, 26) size 1920x0 text "All videos   ·   Cranes by the stream" 15px weight 400 #c9c9c9
- hdr-meta [text] at (0, 48) size 1920x0 text "480p   ·   Dec 8, 12:19 PM" 12px weight 400 #7a7a78
- hdr-icons [text] at (1720, 26) text "♡   ↥   ⊕   ⊖   ◔" 15px weight 400 #c9c9c9
- video [rect] at (200, 110) size 1520x760 radius 4 fill #a9b7be
- v-top [rect] at (200, 110) size 1520x230 fill #b9a9a1
- v-bank [ellipse] at (900, 160) size 800x260 fill #7c8f5b
- v-grass [ellipse] at (1100, 150) size 500x190 fill #a5b07a
- v-rapids-a [rect] at (200, 480) size 1520x50 fill #dde6ec
- v-rapids-b [rect] at (200, 640) size 1520x70 fill #e6edf1
- v-rapids-c [rect] at (200, 790) size 1520x50 fill #d3dde4
- v-bird [ellipse] at (880, 200) size 140x300 fill #f3f3f0
- v-bird-head [ellipse] at (930, 460) size 50x40 fill #d63b2f
- pause [text] at (220, 922) text "❚❚" 11px weight 400 #c9c9c9
- track [rect] at (260, 930) size 1440x2 radius 1 fill #3a3a3a
- track-fill [rect] at (260, 930) size 380x2 radius 1 fill #e8e8e8
- marker [ellipse] at (634, 926) size 10x10 fill #ffffff
- end [text] at (1712, 918) text "10s" 10px weight 400 #9a9a98
- seg-1 [rect] at (900, 946) size 26x20 radius 4 fill #1e1e1e stroke #5a5a5a 1px
- seg-2 [rect] at (934, 946) size 26x20 radius 4 fill #1e1e1e stroke #5a5a5a 1px
- sb-label [text] at (970, 948) text "Storyboard" 12px weight 400 #9a9a98
- act-sel [rect] at (762, 958) size 76x50 radius 8 fill #1e1e1e
- act-g-0 [text] at (760, 966) size 80x0 text "✎" 16px weight 400 #e8e8e8
- act-0 [text] at (760, 992) size 80x0 text "Edit story" 11px weight 400 #c9c9c9
- act-g-1 [text] at (840, 966) size 80x0 text "✂" 16px weight 400 #e8e8e8
- act-1 [text] at (840, 992) size 80x0 text "Re-cut" 11px weight 400 #c9c9c9
- act-g-2 [text] at (920, 966) size 80x0 text "◎" 16px weight 400 #e8e8e8
- act-2 [text] at (920, 992) size 80x0 text "Remix" 11px weight 400 #c9c9c9
- act-g-3 [text] at (1000, 966) size 80x0 text "▣" 16px weight 400 #e8e8e8
- act-3 [text] at (1000, 992) size 80x0 text "Blend" 11px weight 400 #c9c9c9
- act-g-4 [text] at (1080, 966) size 80x0 text "⟳" 16px weight 400 #e8e8e8
- act-4 [text] at (1080, 992) size 80x0 text "Loop" 11px weight 400 #c9c9c9
- thumbs-a [rect] at (1600, 950) size 34x24 radius 3 fill #3a3a3a
- thumbs-b [rect] at (1640, 950) size 34x24 radius 3 fill #3a3a3a
- thumbs-c [rect] at (1680, 950) size 34x24 radius 3 fill #5a5a5a stroke #ffffff 1px
- tooltip [group] at (560, 916) size 470x34 radius 8 fill #262626 visible [0, 13)
    keyframes opacity: f9=1, f12=0 (out)
  - tt [text] at (574, 924) text "Revise storyboard and create new videos" 14px weight 400 #ffffff
  - kbd [rect] at (990, 923) size 24x20 radius 4 fill #4a4a4a
  - kbd-t [text] at (990, 926) size 24x0 text "E" 11px weight 400 #e8e8e8
- pointer [cursor] at (800, 990)
    keyframes tx: f10=0, f24=-60 (inOut)
    keyframes ty: f10=0, f24=-50 (inOut)

## Camera (whole scene, about canvas centre)
- scale: f28=2.4, f60=1 (out)
- tx: f28=384, f60=0 (out)
- ty: f28=-744, f60=0 (out)

## Construction steps
1. Timeline 1920x1080 at 60 fps; Fusion composition 110 frames. Local 0 = master frame 7970.
2. Build the full app frame once: header text at y=26, 1520x760 video at (200,110), progress track at y=930, segment buttons at y=946, action row with 80 px pitch starting x=760 at y=966-1000, edge glows. Parent everything to one Transform.
3. Transform: Size 2.4 with Center offset (384, -744) px from frame 0 to 28, then Size 1 and offset (0,0) at frame 60 with ease-out. This keeps 'Edit story' under the pointer at macro scale.
4. Tooltip: 470x34 dark pill above the action row with an 'E' key chip; Blend 1 to 0 over frames 9-12.
5. Pointer eases 60 px left and 50 px up over frames 10-24, then stays fixed in scene space so it shrinks with the pull-back.
6. Easy mistake: keying scale and position on different curves; both must share the same ease-out so the row appears to slide and shrink as one.

## Content variants
Default copy:
- videoTitle: Cranes by the stream
- label: Storyboard
- tooltip: Revise storyboard and create new videos
Adaptation changes:
- videoTitle: Heron at the tide pool
- label: Shot list
- tooltip: Edit the shot list and render new takes

## Limits
Easing names map to Fusion spline shapes: linear = linear, in/out/inOut = ease curves on the same frames, hold = step, spring/overshoot = slight overshoot past the target before settling.
Text reveal frames give the first and last unit; distribute characters/words evenly between them. Cursor click rings last 14 frames.
Vector illustration is an approximation of layout and motion, not the product UI or recovered production assets.
