# Pop a translucent caption card over the video on a segment click, then hard-swap it for the second card

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 [6884, 7100) on the 60/1 fps master: 216 frames, 3.600000 s. Local frame 0 = source frame 6884.
Create a 1920x1080 progressive timeline at 60/1 fps and a Fusion composition exactly 216 frames long. Keep integer frames; do not round the frame rate.
Background field: #a9b7be. Export silent H.264 yuv420p to match the intended playback container.

## Observation
A generated video (a red-crowned bird by a stream) fills the frame above a thin dark player bar with a progress track and two small storyboard-segment buttons. The pointer sits on the first segment button; at about local frame 8 it clicks, and by frame 9-10 (master 6893) a tall translucent dark card labelled '1' pops in over the left of the picture carrying the scene's caption in white; the progress marker jumps forward at the same time. The card holds while the video plays. At about frame 186 (master ~7070) the pointer has moved to the second button and the card is replaced in one frame by card '2' with a shorter caption; that holds to the end.

## Mechanism
Caption overlay bound to a segment control: the card enters with a two-frame fade and slight scale-up on the first click, and subsequent segments hard-swap the card contents rather than re-animating it.

## Phases (local frames)
- 0: Video, no card, pointer on segment 1
- 8: Click segment 1
- 9: Card 1 pops in, marker jumps
- 172: Pointer moves to segment 2
- 186: Card hard-swaps to 2
- 210: Hold

## Layer inventory (absolute 1920x1080 top-left pixels, back to front)
- water-top [rect] at (0, 0) size 1920x330 fill #b9a9a1
- water-mid [rect] at (0, 330) size 1920x650 fill #a9b7be
- bank [ellipse] at (900, 80) size 1100x360 fill #7c8f5b
- grass [ellipse] at (1150, 60) size 700x260 fill #a5b07a
- rapids-a [rect] at (0, 520) size 1920x60 fill #dde6ec
- rapids-b [rect] at (0, 700) size 1920x90 fill #e6edf1
- rapids-c [rect] at (0, 860) size 1920x60 fill #d3dde4
- rock-a [ellipse] at (200, 600) size 260x90 fill #6e6a66
- rock-b [ellipse] at (1300, 640) size 300x110 fill #5e5a58
- bird [ellipse] at (620, 20) size 200x380 fill #f3f3f0
- bird-head [ellipse] at (690, -10) size 80x60 fill #d63b2f
- player [rect] at (0, 980) size 1920x100 fill #0b0b0b
- pause [text] at (100, 1016) text "❚❚" 13px weight 400 #c9c9c9
- track [rect] at (140, 1030) size 1680x3 radius 2 fill #3a3a3a
- track-fill [rect] at (140, 1030) size 90x3 radius 2 fill #e8e8e8
    keyframes w: f8=90, f9=140 (hold)
- marker [ellipse] at (226, 1025) size 12x12 fill #ffffff
    keyframes x: f8=226, f9=276 (hold)
- end [text] at (1836, 1022) text "10s" 12px weight 400 #9a9a98
- seg-1 [rect] at (880, 998) size 34x28 radius 6 fill #1e1e1e stroke #5a5a5a 1px
    keyframes stroke: f8=#5a5a5a, f9=#ffffff (hold)
- seg-1-t [text] at (880, 1004) size 34x0 text "≡" 15px weight 400 #e8e8e8
- seg-2 [rect] at (924, 998) size 34x28 radius 6 fill #1e1e1e stroke #5a5a5a 1px
    keyframes stroke: f185=#5a5a5a, f186=#ffffff (hold)
- seg-2-t [text] at (924, 1004) size 34x0 text "–" 15px weight 400 #e8e8e8
- sb-label [text] at (972, 1004) text "Storyboard" 15px weight 400 #9a9a98
- card-1 [group] at (380, 60) size 560x880 radius 20 fill #2a2a2a visible [9, 186)
    keyframes opacity: f9=0, f11=1 (out)
    keyframes scale: f9=0.96, f13=1 (out)
  - card-1-n [text] at (406, 82) text "1" 20px weight 400 #ffffff
  - card-1-cap [text] at (410, 440) size 500x0 text "A red-crowned crane with a yellow tail stands by the stream with its head held high, looking around. The colours are pastel and there are slight reflections off the water." 22px weight 500 #ffffff
- card-2 [group] at (380, 60) size 560x880 radius 20 fill #2a2a2a visible [186, 216)
  - card-2-n [text] at (406, 82) text "2" 20px weight 400 #ffffff
  - card-2-cap [text] at (410, 440) size 500x0 text "The crane dips its head deep into the water." 22px weight 500 #ffffff
- pointer [cursor] at (892, 1010) clicks at [8, 185]
    keyframes tx: f172=0, f182=44 (inOut)

## Construction steps
1. Timeline 1920x1080 at 60 fps; Fusion composition 216 frames. Local 0 = master frame 6884.
2. Video plate full-frame above a 100 px dark player bar; segment buttons are two 34x28 squares at x=880 and 924, y=998; progress track at y=1030 with a 12 px marker.
3. Card: 560x880 rounded rectangle (radius 20) at (380,60), #2a2a2a at 86% opacity, number 20 px top-left, caption 22 px medium white with 30 px leading and 500 px wrap starting at y=380.
4. Card 1 in at frame 9: Blend 0 to 1 over 2 frames plus Size 0.96 to 1 over 4 frames, pivot centre. Progress fill and marker step forward at 9 (hold keys); segment 1 stroke turns white.
5. Card 2 at frame 186: cut card 1 off and card 2 on in the same frame; segment 2 stroke turns white. Pointer eases 44 px right over 172-182 and click rings at 8 and 185.
6. Easy mistake: re-running the pop for the second card; the source only animates the first appearance.

## Content variants
Default copy:
- label: Storyboard
- caption1: A red-crowned crane with a yellow tail stands by the stream with its head held high, looking around. The colours are pastel and there are slight reflections off the water.
- caption2: The crane dips its head deep into the water.
Adaptation changes:
- label: Shot list
- caption1: A grey heron waits at the edge of a tidal pool at dawn, perfectly still, with soft mist drifting over the water.
- caption2: The heron strikes and lifts a small fish.

## 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.
