First render leaked beat 1's sparkles into the reality scene: their twinkle tween was still running when the hard cut hid the scene, and a running tween re-asserts its values over a hide. The fix that failed first was stacking order (it masked the leak for the checker, not the viewer); the real fix was timing — the sparkles' last tween now ends before the cut. The whole story is in the prompt's gotchas, because every user of this template will hit it.
Both captions failed the checker's read-time floors on the first pass: the expectation caption arrived too late to be read before the cut, and the punchline held 1.5s against a 2s closing-line floor. The caption moved earlier and the punchline moved up to a full 2s+ hold.
Banned list ✓Beat grid ✓Build method ✓Self-review ✓
<direction>
A 9-second expectation-vs-reality comedy video about the birthday cake, 1280x720 landscape. Two beats, two registers, one hard cut — no transition, no crossfade. Beat 1 (EXPECTATION): warm gold radial light, letterspaced serif title, elegant italic caption. Beat 2 (REALITY): flat grey light, heavy sans title, deadpan caption. Same subject, same framing, both beats.
Banned: transitions of any kind between the beats, sad music cues described in type, extra props in beat 2 — the comedy is register and one failure, nothing else.
</direction>
<structure>
Beat 1 (0-4.2s): the subject assembles piece by piece, perfectly; sparkles; caption: What the recipe promised.. At 4.2s a HARD CUT with a one-frame camera jolt. Beat 2 (4.2-9s): the same subject, lopsided — every piece at its own angle; one small detail escapes, falls, bounces once, and stops; a wisp of smoke; caption: What came out of my oven.; punchline strip at the end: SAME RECIPE. SAME OVEN. (second half in the accent colour).
</structure>
<build>
One HyperFrames composition, both scenes stacked as top-level clips. The cut is a single-frame set that hides scene 1 (autoAlpha, so hidden elements leave the layout entirely) and shows scene 2. GSAP timeline, paused, seek-driven. Render at 30fps.
</build>
<gotchas>
Hard cuts have a hidden rule: every tween on the outgoing scene must be FINISHED before the cut frame, not merely faded. A still-running tween keeps re-asserting its values after the hide and leaks the old scene into the new one — our first render leaked beat 1's sparkles into beat 2 exactly this way. Time the outgoing scene's last tween to end before the cut, and hide with autoAlpha, not opacity alone.
</gotchas>
The oldest internet joke in two lighting registers. Beat one is a perfume advert: warm gold, serif type, and the subject assembling itself perfectly. Beat two is the same subject under grey light with the polish gone — and the joke is staged, not stated: nothing in beat two is animated except the one detail that gives up.