# Hover a board tile to reveal its action buttons, click it, and scale the image up into a lightbox

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 "Create campaign concepts and assets with Codex" (2ey7znf8SI0), published 2026-06-10.
Source interval [985, 1105) on the 60/1 fps master: 120 frames, 2.000000 s. Local frame 0 = source frame 985.
Create a 1920x1080 progressive timeline at 60/1 fps and a Fusion composition exactly 120 frames long. Keep integer frames; do not round the frame rate.
Background field: #3b3be0. Export silent H.264 yuv420p to match the intended playback container.

## Observation
An app window shows a left text column and a five-by-three image board. The pointer rests on one tile; at ~f10 two small round action buttons appear on the tile's top corners. At ~f30 the pointer clicks and the tile grows into a centred lightbox with prev/next arrows and an action bar beneath, the board fading behind it (~f30–f45). Around ~f80 the left column's text is replaced with a new paragraph while the lightbox stays.

## Mechanism
Hover-disclosed tile actions, then a click that scales the tile into a lightbox overlay while the side column updates asynchronously.

## Phases (local frames)
- 0: Pointer resting on tile
- 10: Tile action buttons appear
- 30: Click: tile scales into lightbox
- 45: Lightbox settled
- 80: Left column text swaps

## Layer inventory (absolute 1920x1080 top-left pixels, back to front)
- bg [rect] at (0, 0) size 1920x1080 fill #3b3be0
- glow [ellipse] at (900, -200) size 1400x1200 fill #8a5cf5
- window [group] at (160, 60) size 1600x960 radius 16 fill #ffffff stroke #d8d8e0 1px
  - tl-r [ellipse] at (176, 74) size 12x12 fill #ff5f57
  - tl-y [ellipse] at (194, 74) size 12x12 fill #febc2e
  - tl-g [ellipse] at (212, 74) size 12x12 fill #28c840
  - tab [rect] at (460, 68) size 220x26 radius 7 fill #f0f0f3
  - tab-t [text] at (476, 72) text "Creative Producer" 15px weight 500 #3a3a3a
  - left-plate [rect] at (184, 110) size 360x700 fill #ffffff
  - li-0 [text] at (200, 120) text "• Citrus ganache shell" 17px weight 400 #3a3a3a
  - li-1 [text] at (200, 148) text "• Pistachio praline" 17px weight 400 #3a3a3a
  - li-2 [text] at (200, 176) text "• Rose petit gateau" 17px weight 400 #3a3a3a
  - li-3 [text] at (200, 204) text "• Chef finishing detail" 17px weight 400 #3a3a3a
  - li-4 [text] at (200, 232) text "• Summer table arrival" 17px weight 400 #3a3a3a
  - li-5 [text] at (200, 260) text "• Boutique retail counter" 17px weight 400 #3a3a3a
  - heading [text] at (580, 98) text "Maison Fève: Solstice board" 18px weight 600 #1c1c1c visible [0, 30)
  - tile-0 [rect] at (580, 130) size 200x200 radius 10 fill #e9dccb
  - tile-1 [rect] at (796, 130) size 200x200 radius 10 fill #efe4d6
  - tile-2 [rect] at (1012, 130) size 200x200 radius 10 fill #5a3a2a
  - tile-3 [rect] at (1228, 130) size 200x200 radius 10 fill #7a4a35
  - tile-4 [rect] at (1444, 130) size 200x200 radius 10 fill #c99a7a
  - tile-5 [rect] at (580, 346) size 200x200 radius 10 fill #e9dccb
  - tile-6 [rect] at (796, 346) size 200x200 radius 10 fill #efe4d6
  - tile-7 [rect] at (1012, 346) size 200x200 radius 10 fill #5a3a2a
  - tile-8 [rect] at (1228, 346) size 200x200 radius 10 fill #7a4a35
  - tile-9 [rect] at (1444, 346) size 200x200 radius 10 fill #c99a7a
  - tile-10 [rect] at (580, 562) size 200x200 radius 10 fill #e9dccb
  - tile-11 [rect] at (796, 562) size 200x200 radius 10 fill #efe4d6
  - tile-12 [rect] at (1012, 562) size 200x200 radius 10 fill #5a3a2a
  - tile-13 [rect] at (1228, 562) size 200x200 radius 10 fill #7a4a35
  - tile-14 [rect] at (1444, 562) size 200x200 radius 10 fill #c99a7a
  - grid-dim [rect] at (160, 60) size 1600x960 fill #ffffff
      keyframes opacity: f30=0, f45=0.92 (out)
  - act-a [ellipse] at (800, 136) size 26x26 fill #ffffff stroke #d0d0d0 1px visible [10, 30)
  - act-b [ellipse] at (960, 136) size 26x26 fill #ffffff stroke #d0d0d0 1px visible [10, 30)
  - lightbox [group] at (796, 130) size 200x200 visible [30, 120)
      keyframes x: f30=636, f45=520 (out)
      keyframes y: f30=70, f45=120 (out)
      keyframes scale: f30=1, f45=3.4 (out)
    - lb-img [rect] at (796, 130) size 200x200 radius 8 fill #e9dccb
    - lb-bonbon-a [ellipse] at (836, 240) size 50x50 fill #3a2418
    - lb-bonbon-b [ellipse] at (906, 250) size 50x50 fill #3a2418
    - lb-bonbon-c [ellipse] at (866, 180) size 50x50 fill #3a2418
  - lb-prev [text] at (600, 500) text "‹" 40px weight 400 #5a5a5a visible [40, 120)
  - lb-next [text] at (1290, 500) text "›" 40px weight 400 #5a5a5a visible [40, 120)
  - lb-close [text] at (1660, 120) text "×" 30px weight 400 #5a5a5a visible [40, 120)
  - bar [rect] at (780, 920) size 380x40 radius 12 fill #ffffff stroke #e0e0e0 1px visible [42, 120)
  - bar-t [text] at (780, 928) size 380x0 text "⤓ Attach     ⟲ Remix     ▢ Open in ⌄" 17px weight 500 #3a3a3a visible [42, 120)
  - left-plate-b [rect] at (184, 110) size 360x700 fill #ffffff visible [80, 120)
  - lb-0 [text] at (200, 120) text "These read stronger: the arch" 17px weight 400 #3a3a3a visible [80, 120)
  - lb-1 [text] at (200, 146) text "and medallion carry the most" 17px weight 400 #3a3a3a visible [80, 120)
  - lb-2 [text] at (200, 172) text "weight, so I am adding a set of" 17px weight 400 #3a3a3a visible [80, 120)
  - lb-3 [text] at (200, 198) text "engraved golden-rose variants." 17px weight 400 #3a3a3a visible [80, 120)
  - lb-4 [text] at (200, 224) visible [80, 120)
  - lb-5 [text] at (200, 250) text "Added four variants to the board." 17px weight 400 #3a3a3a visible [80, 120)
  - lb-6 [text] at (200, 276) text "The board now has 19 images." 17px weight 400 #3a3a3a visible [80, 120)
- pointer [cursor] at (896, 290) clicks at [30]
    keyframes tx: f0=0, f28=-40 (inOut), f60=-40, f100=-100 (inOut)
    keyframes ty: f0=0, f28=10 (inOut), f60=10, f100=600 (inOut)

## Construction steps
1. Timeline 1920x1080 at 60 fps; Fusion composition 120 frames. Local 0 = master frame 985.
2. Window: 1600x960 white plate with traffic lights and one tab, on a violet gradient background; board of 200px tiles at 216px pitch starting at window-local (420,70).
3. Tile actions: two 26px white discs on the hovered tile's top corners, visible frames 10–29.
4. Lightbox: duplicate the hovered tile, pivot top-left, keyframe Size 1→3.4 and Position (636,60)→(520,120) over frames 30–45 with ease out; underneath, a white plate Blend 0→0.92 over the same range dims the board.
5. Add arrows, close glyph and the 380x40 action bar from frames 40–42 once the scale has mostly settled.
6. Left column: at frame 80 hard-swap the bullet list for the new paragraph (no fade).
7. Easy mistake: growing the lightbox from the centre. It scales from the clicked tile's own position toward the centre.

## Content variants
Default copy:
- heading: Maison Fève: Solstice board
- attach: Attach
- remix: Remix
- open: Open in
Adaptation changes:
- heading: Atelier Nord: Winter board
- attach: Add
- remix: Variations
- open: Export to

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