A Flowering App Store Header
A silent, single-shot phone mockup lets tiny coloured marks bloom and recede across a product header.
By @itsnotchester for Things Take TimeSource onlineOriginal post ↗
Copies get_blueprint("REF-5066") for Claude. Connect Claude
Why it works
The full phone listing is legible from frame 0, while one continuous 1110-frame shot lets small changes inside the header carry the idea. The field becomes denser around 11–15 s and recedes thereafter, while measured camera scale stays ×1.000 and mean luma stays near 0.30, so attention stays on the motif.
Blueprint
15 plates that take the film apart, from its format to a recipe you can run. Claude reads the same plates over MCP.
Plate 01
The format in one breath
A fixed phone listing makes a product legible at once. A field of tiny original marks gradually changes density inside its header, making an abstract product idea visible in one continuous picture.
Why it works
- The listing and header are present from frame 0, so the viewer has context before noticing the marks.
- One measured shot spans all 1110 frames; attention shifts within the composition instead of through cuts.
- The mean luma stays around 0.30 (plate 6), keeping the pale listing a stable reading anchor.
Plate 02
Format card
| Platform · aspect · length | X · 449:360 · 898×720 source · 1348×1080 deliverable · 49.396 fps · 22.46 s |
| Pace | One continuous shot; zero cuts; 22.46 s median shot |
| Script | Picture led; wordless; the listing text is product information |
| Voice | None |
| On screen | One fixed phone and UI composition; procedural marks in the header |
| Type | Three measured levels: 37, 30–31, 23–24 px cap; enlarge essential small text |
| Sound | Reference silent; no pulse or cues; optional original bed in plate 8 |
| Structure | Four phases of one visual beat; no separate measured end card |
Tools you'll need: Remotion for motion graphics · Remotion or any video editor · Claude alone: yes
Frame sheets
Frame by frame
Stills taken at measured moments, each labelled with its time. Claude gets the same sheets over MCP.
Plate 03
The hook, frame by frame (first 3 seconds)
| Time | Picture | On-screen text | Words and sound | What it does |
|---|---|---|---|---|
| 0.00 | Fixed phone listing and sparse header marks | Product and listing | Silent | Establishes the object and field |
| 0.25–2.25 | Header gains small marks without moving the phone | Listing remains readable | Silent | Rewards close inspection |
| 2.50–2.75 | Field continues; small listing subtitle changes | Listing subtitle | Silent | Adds product context |
Hook formula (inferred): Show {{PRODUCT}} in a real or rebuilt listing while {{MOTIF}} begins to populate its header.
Why it holds (inferred): The viewer can understand the product immediately, then look again to detect the slow change.
Plate 04
Structure (beat sheet)
| # | Time (s) | Shots | Beat | What happens | Technique |
|---|---|---|---|---|---|
| 1 | 0–3 | 1 | Establish | Fixed phone and sparse field | Immediate UI context |
| 2 | 3–11 | 1 | Growth | Field becomes denser | Staggered mark entrances |
| 3 | 11–15 | 1 | Payoff | Dense field is visible | Density carries the idea |
| 4 | 15–22.46 | 1 | Release | Field thins toward its opening state | Staggered mark exits |
Retention map (inferred): One continuing visual question; payoff in beat 3; no measured in-video CTA. A new version can place a small text CTA in the final composition without a cut.
For agents: Shots
The measured data and build specs agents work from. Over MCP they get it all, with the full timeline as JSON.
Shots (measured)
One continuous shot, 22.46 s = 1110 frames at 49.396 fps. Frames are at 49.396 fps, first and last inclusive: a shot "33–70 · 38 f" is a Remotion <Sequence from={33} durationInFrames={38}>; at another frame rate, use the seconds.
| # | in–out (s) | frames @49.396 (first–last · count) | dur (s) | transition in | scales (inferred) |
|---|---|---|---|---|---|
| 1 | 0.00–22.47 | 0–1109 · 1110 f | 22.47 | start | scales |
scales: fixed = keep this shot's length when the film gets longer or shorter · scales = stretch or shrink it with the length · optional = drop it for the 15 s cut.
Measurement notes: no audio track
Frame sheets (measured): shots, one labelled frame per shot (labels S<n> m:ss.s; + = just after a change inside the shot) · the full-length timeline, the whole film at fixed steps (labels S<n> m:ss.s f<frame>), 2 pages: call get_frames('2116834831745376443'), or see them on the film page (Pro, or free films).
Plate 05
Shot grammar
Mix: One composited UI shot. Rhythm: No measured camera movement, cut, transition, or discrete picture change. The sheets show many tiny header marks changing within the fixed layout.
Rules this editor follows (inferred):
- Lock the phone, listing, and wordmark; animate only the field.
- Keep marks away from essential text and controls.
- Use irregular stagger rather than a uniform wipe.
For agents: Camera and motion · Transitions
The measured data and build specs agents work from. Over MCP they get it all, with the full timeline as JSON.
Camera and motion (measured)
Per shot, measured on the frames. "Camera move" names the camera's move; the numbers are the image's motion: pan in % of frame width (x) or height (y) per second, +x = content moves right (so a pan left), +y = content moves down; zoom per second > 1 = content grows (push in). "Over the shot" is the total, with px at 1348×1080. Speed is the move through the shot, about one character per 0.5 s (▁ still → █ its peak), then the peak in % of width per second. Cadence: "ones" = a new picture every frame, "twos" = each picture held two frames. Blur is relative to this film (0 = its sharpest shots, 1 = its blurriest); motion = share of the frame changing, 0–1. "?" = confidence under 0.5: a hint, check the sheets. The labels describe how the image moves, not where a 3D camera went: an object flying toward a still camera can read as a push in.
| # | camera move | pan x · y (%/s) | zoom (/s) | over the shot | ease | speed · peak | cadence | blur | motion | conf |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | static | +0.0 · +0.0 | ×1.000 | none | hold | ▂▂▂▁▁▁▂▂▂▂▃▄▄▅▁▁ · 0%/s | still | 0.26 | 0.00 | 1.00 |
Focus (measured): shot 1: sharp inside 8 · 14 · 75 · 86, no defocus (deep focus). Box = x · y · w · h % of the frame. In 2D, blur the layers outside the box by that many px; in 3D, set the focus distance on the box and open the aperture until the background blur matches. Locked-off shots: 1 of 1.
Transitions (measured)
One continuous shot: no cuts. Changes happen inside the shot (camera, light, layout).
What each shot shows (inferred from the sheets)
| # | Type | Framing | What's on screen | Text / overlay |
|---|---|---|---|---|
| 1 | Designed UI | Front-facing phone, cropped at bottom | Product header, small marks, app listing | Wordmark, product title, subtitle, status controls |
Plate 06
Visual style guide
- Look (inferred): Dark outer field, dark header surface, light listing, restrained accents. The reference uses near-black and deep green; map those roles to
{{BRAND_BG}}and{{BRAND_ACCENTS}}. - Graphics and overlays (inferred):
{{MOTIF}}repeats at small scale with varied rotation, opacity and stagger.{{UI_ASSETS}}supplies the real listing or a faithful code rebuild. - Transitions: None measured.
- Branding and end card (inferred): The reference has no separate end card. For a new film, reserve a small final text line for
{{LOGO}}and{{CTA_URL}}inside the same frame; keep the phone fixed.
At a glance
- Type scale (cap px): 37 · 30–31 · 23–24 (3 levels).
- Phone minimum: cap height ≥ 2% of frame width = 27 px at 1348×1080
- Whole film (time-weighted):
#13141347% ·#1A382A28% ·#F6F6F717% ·#636A655% ·#8B99923%. - Curve facts: average 0.30 · darkest 0.29 at 18.8 s · brightest 0.30 at 9.5 s.
For agents: Type · Type spec · Palette by shot · Brightness curve · Layout boxes · Material card
The measured data and build specs agents work from. Over MCP they get it all, with the full timeline as JSON.
Type (measured)
Sizes are cap height (the height of a capital letter) in px at the 1080p deliverable, 1348×1080. Font size ≈ cap ÷ 0.71 for a typical sans (Inter 0.73, Geist 0.71, SF Pro 0.70, Instrument Sans 0.72): check your own font's cap-height ratio. Cap heights are estimated from text-recognition boxes (median error about 11% on real text; text under about 13 px at 1080p and non-Latin scripts are not read). Box = x · y · w · h as % of the frame, from the top-left.
| text | shot | on screen (s) | cap px | ≈ font px | cap % of height | box x·y·w·h % | position |
|---|---|---|---|---|---|---|---|
| "9:41" | 1 | 0.0–22.3 | 30 | 42 | 2.8 | 27 · 22 · 6 · 3 | left, upper |
| "Things take time:" | 1 | 0.0–22.3 | 31 | 44 | 2.9 | 43 · 74 · 28 · 4 | centre, lower third |
| "Life tracker" | 1 | 0.0–22.3 | 37 | 52 | 3.4 | 43 · 79 · 18 · 4 | centre, bottom |
| "Chester How" | 1 | 0.0–2.3 | 24 | 34 | 2.2 | 43 · 85 · 14 · 3 | centre, bottom |
| "Progress & habit journal" | 1 | 2.5–22.3 | 23 | 32 | 2.1 | 43 · 85 · 26 · 3 | centre, bottom |
Type scale (cap px): 37 · 30–31 · 23–24 (3 levels).
Phone minimum: cap height ≥ 2% of frame width = 27 px at 1348×1080. Why: in a phone feed the film fills the screen width, about 390 pt, and 2% of that is 7.8 pt, the cap height of 11 pt text, Apple's smallest recommended text size. Words the viewer must read go at or above it; smaller text can only be decoration. Below it in the reference: "Progress & habit journal" (23 px, shot 1), "Chester How" (24 px, shot 1). Size these up in your version, or treat them as decoration.
Type spec (inferred)
Assume cap height = 0.71 × CSS font size. All essential words below use at least the 27 px phone minimum; use {{BRAND_FONT}}, with Inter as a free fallback for UI text.
| Level | Cap px at 1080p | Font size | Weight · case · tracking | Colour pair | Motion |
|---|---|---|---|---|---|
| Listing title | 37 | 52 px | 600 · sentence · −0.02 em | dark text / light surface | Fixed for shot 1 |
| Header/status and listing lead | 30–31 | 42–44 px | 500–600 · mixed or uppercase · 0 to 0.12 em | light text / {{BRAND_BG}}; dark / light | Fixed for shot 1 |
| Subtitle | Reference 23–24; set 27 minimum | 38 px minimum | 400 · sentence · 0 em | muted dark / light surface | Crossfade replacement over 12 f centred near 2.4 s; otherwise fixed |
Palette by shot (measured)
Colours measured on the frames, with their share of the frame; luma 0 = black, 1 = white. These are the reference's brand colours: map them onto {{BRAND_BG}} and {{BRAND_ACCENTS}} by role (background, surface, accent), don't reuse them as the format. Neighbouring shots with the same palette share a row.
| # | luma mean · p95 | colours (share of frame) | highlights (bright pixels) |
|---|---|---|---|
| 1 | 0.30 · 0.99 | #131413 47% · #1A382A 28% · #F6F6F7 17% · #636A65 5% · #8B9992 3% | #FCFCFE ≈6580 K 60% · #FDFDFD ≈6510 K 34% · #FEFCFD ≈6470 K 6% |
Whole film (time-weighted): #131413 47% · #1A382A 28% · #F6F6F7 17% · #636A65 5% · #8B9992 3%.
Brightness curve (measured)
Mean luma per 1 s, one character each, grouped in tens; p95 = the bright highlights. Scale: ▁ = 0 (black) → █ = 1.0 (white); luma runs 0–1.
0s 10s 20s
mean ▃▃▃▃▃▃▃▃▃▃ ▃▃▃▃▃▃▃▃▃▃ ▃▃▃
p95 ██████████ ██████████ ███
Curve facts: average 0.30 · darkest 0.29 at 18.8 s · brightest 0.30 at 9.5 s.
Layout boxes (inferred)
| Element | Shots | Box x · y · w · h (%) | Source · confidence | Notes |
|---|---|---|---|---|
| Status time | 1 | 27 · 22 · 6 · 3 | measured text box · high | Decorative UI |
| Listing lead | 1 | 43 · 74 · 28 · 4 | measured text box · high | Keep readable |
| Listing title | 1 | 43 · 79 · 18 · 4 | measured text box · high | Largest type |
| Subtitle | 1 | 43 · 85 · 26 · 3 | measured text box · high | Enlarge in new version |
| Header wordmark | 1 | 36 · 47 · 28 · 3 | measured text box · high | Keep motif clear |
| Phone silhouette | 1 | 17 · 14 · 67 · 86 | sheet tile at 0.00 · medium | Bottom runs off frame |
| Header field | 1 | 20 · 19 · 61 · 50 | sheet tile at 0.00 · medium | Clip marks inside phone |
| Final CTA text | 1 | 43 · 89 · 26 · 4 | estimate · low | New adaptation only; omit if crowded |
End card (inferred): No separate card in the source. In the adaptation, {{LOGO}} and {{CTA_URL}} can occupy the final listing line at ≥27 px cap; no additional shot or fade.
Material card (inferred)
:root { --brand-bg: {{BRAND_BG}}; --brand-accent: {{BRAND_ACCENTS}}; }
.stage { background: var(--brand-bg); }
.phone { border: 3px solid rgba(255,255,255,.58); border-radius: 64px; box-shadow: 0 12px 34px rgba(0,0,0,.42); overflow: hidden; }
.header { background: var(--brand-accent); overflow: hidden; }
.listing { background: #fff; color: #111; }
.mark { width: 4px; height: 4px; opacity: var(--mark-opacity); transform: rotate(var(--rotation)) scale(var(--mark-scale)); }
No 3D is needed. Use flat layers; deep focus matches plate 5. The phone border and silhouette can be code or a licensed device frame, with no generated UI.
Plate 07
Voice and delivery
Measured: No speech or audio track. Voice direction (inferred): No voice; the picture carries the idea. Keep product words short enough to read in the fixed listing.
Plate 08
Sound design
- Music: The reference is silent. Preserve silence for the closest version.
- Sound effects: None measured.
- Silence and space: Complete silence keeps the slow visual change unforced.
For agents: Sound grid · Original music bed
The measured data and build specs agents work from. Over MCP they get it all, with the full timeline as JSON.
Sound grid (measured)
No audio track: the reference plays silent. If your version needs sound, plate 8 says what fits; the platform loudness targets below still apply.
Loudness of the reference: not measured.
Loudness targets for your version (common practice per platform; the brief overrides them):
| where it plays | integrated | true peak max | note |
|---|---|---|---|
| YouTube | −14 LUFS | −1 dBTP | louder masters are turned down; quieter ones are not turned up |
| X, LinkedIn (this reference) | −14 LUFS | −1 dBTP | no published normalisation: the file plays as mastered |
| TikTok, Reels, Shorts | −14 to −10 LUFS | −1 dBTP | played on phone speakers; short-form is often mastered hotter |
| Website or app (autoplay) | −16 LUFS | −1 dBTP | often starts muted; keep the unmuted level comfortable |
| Broadcast (EBU R128) | −23 LUFS | −1 dBTP | only when the brief asks for it |
Original music bed (inferred)
For an audio adaptation only: 80 BPM, C major, soft sine pad, felt-key notes and a low filtered pulse. No steady pulse exists in the reference; 80 BPM gives generous space without forcing new cuts. Shots 1 / beats 1–2: sparse notes; beat 3: one higher sustained tone; beat 4: let it decay. There are no measured cue frames, so keep accents away from the subtitle change near frame 124. Music-model prompt: “Original restrained ambient loop, 80 BPM, C major, soft sine pad and felt keys, slow bloom then gentle decay, no vocals or dramatic hits.” Mix an X version to −14 LUFS and ≤−1 dBTP.
Plate 09
Packaging
- Title (inferred): “
{{PRODUCT}}header study:{{MOTIF}}in motion.” - Cover / thumbnail (inferred): Use the fixed phone composition with a legible listing and mid-density field; no extra headline.
- Post copy (inferred): One sentence about the concept, then
{{CTA_URL}}as text. - Audience signals: 5,221 views and 169 likes at capture; no replay data was supplied.
Plate 10
Script template
[beat 1 · shot 1 · on screen] {{PRODUCT}}; one short header wordmark.
[beat 2 · shot 1 · on screen] Keep the same listing; no editorial caption.
[beat 3 · shot 1 · on screen] Keep the same listing; the picture is the payoff.
[beat 4 · shot 1 · on screen] Optional final {{LOGO}} + {{CTA_URL}} text within the fixed layout.
No narration, captions, or spoken word budget. The subtitle should be at least 27 px cap if it carries meaning.
Plate 11
Production plan
Two routes (inferred)
Minimum: Claude alone. Remotion builds the phone, UI, and procedural {{MOTIF}} field in CSS/Canvas, then synthesises an optional original ambient WAV. It reaches the fixed composition and growth cycle while simplifying the physical phone rim and fine UI texture. The user supplies authentic {{UI_ASSETS}} or product details to rebuild; generated product screenshots are excluded.
Full: with the toolkit. Capture {{UI_ASSETS}} as a 1348×1080 PNG or rebuild the listing in Remotion; draw {{MOTIF}} as SVG, animate its instances in Remotion, composite the phone and render H.264 at 1348×1080 and 49.396 fps. Handoff: capture → Remotion as PNG with alpha at 1348×1080; motion plan → Remotion as JSON keyframes in source frames; optional music → Remotion as stereo WAV with a click track at 80 BPM. No Blender or image model is needed.
Asset honesty: Real product captures or the product's UI rebuilt in code; where none exists, a type tile says so. Never invent product screens, metrics, reviews, or outputs. The reference's tally icon and X-shaped flowers are identity assets; invent a different {{MOTIF}} and use {{LOGO}}.
Plate 12
Prompts
Script prompt
Write a wordless, picture-led four-phase motion brief for {{PRODUCT}}. Suggest an original {{MOTIF}} tied to the product idea. Keep the listing words brief and readable; supply no narration or editorial captions. Include {{LOGO}} and {{CTA_URL}} as optional final text within the same frame.
Music prompt
Original restrained ambient loop, 80 BPM, C major, soft sine pad and felt keys, slow bloom and decay, no vocals or dramatic hits.
Plate 13
Edit recipe
How it's built (inferred)
The signature move is a density change, not a camera push. In shot 1, render a fixed phone and clip a seeded field of {{MOTIF}} instances to the header. Give each instance an individual activation threshold, 8–16 f opacity ramp and scale from 0.65 to 1.0 with cubic-bezier(0.22,1,0.36,1). Raise the active fraction across beat 2, keep the densest state in beat 3, then reverse the thresholds across beat 4. Use per-frame interpolation (on ones) for these small marks; keep positions fixed so the texture does not drift. Avoid motion blur on the text and phone; a 1 px blur on fast mark scale changes is enough.
The phone camera remains static from frame 0 through 1109 (plate 5: ×1.000 and zero pan). The sheets suggest the subtitle switches around 2.3–2.5 s; the measurement records the first subtitle to 2.3 s and the second from 2.5 s, with no detected internal change. Implement this as a 12 f crossfade in the listing layer, without cutting or shifting the phone. The field itself changes incrementally; there is no measured cut, handoff, dip, or closing fade. The last frame should preserve the same composition and brightness role as the first.
Build order
- Build shot 1's fixed phone and listing from
{{UI_ASSETS}}or code; verify plate 6 boxes. - Add the seeded
{{MOTIF}}field and tune density for beats 1–4 against the sheets. - Animate the subtitle layer, then add any optional final
{{LOGO}}and{{CTA_URL}}text within shot 1. - Export at 1348×1080, 49.396 fps; check plate 14.
Plate 14
QA checklist
- Exactly one shot, frames 0–1109, with no inserted cut or fade.
- Phone silhouette, listing title, and header wordmark stay fixed across the shot.
- All essential text has cap height ≥27 px at 1348×1080; check the new subtitle and CTA.
- Mean luma stays near the measured 0.29–0.30 range; no global brightness pulse.
- Mark density is sparse in beat 1, strongest in beat 3, and lower again in beat 4.
- Silent export has no audio track; if using the optional bed on X, target −14 LUFS and ≤−1 dBTP.
- No reference palette, tally icon, X-flower mark, copy, or music remains.
Plate 15
Make it yours
Brand slots
| Slot | Replaces in the reference | Notes |
|---|---|---|
{{PRODUCT}} | Product name and listing text | Use actual product wording |
{{BRAND_FONT}} | Header and listing faces | Inter only as fallback |
{{BRAND_BG}} | Dark stage and header role | Pick your own hue |
{{BRAND_ACCENTS}} | Small field colours | Pick a restrained set |
{{LOGO}} | Tally-like app icon | Use your identity |
{{CTA_URL}} | External post link | Render as plain text |
{{MOTIF}} | Tiny X-shaped flower marks | Invent a new product metaphor |
{{UI_ASSETS}} | App listing and phone content | Capture or rebuild honestly |
What this film avoids: Voiceover, presenter, stock footage, feature list, editorial captions, cuts, camera moves, and a separate CTA card.
Brand-distance warning (inferred): A dark green header, tiny X-shaped flowers, tally icon, and original copy together would read as the reference brand. Change the motif first, then use your own palette and logo.
Adapt the aspect (inferred)
- 16:9: Re-lay out at 1920×1080; a centre crop loses the lower listing text and cuts 14.9% from top and bottom. Reduce the phone's vertical occupation, keep its listing visible, and make essential type ≥38 px cap; protect a 10% edge safe zone.
- 9:16: A centre crop keeps all measured text boxes, but scale and reposition the phone for 1080×1920 and keep controls outside top/bottom platform overlays; essential type ≥22 px cap and inside 10% side, 15% top/bottom safe zones.
- 1:1: A centre crop retains all measured text boxes; centre the phone and keep the listing above the bottom UI area. Essential type ≥22 px cap, inside a 10% edge safe zone.
Adapt the length (inferred)
- 15 s: Keep beats 1–4 and the single shot; compress the growth and release phases, while retaining the density peak.
- 30 s: Keep the same four beats; add more independent mark events in beats 2 and 4, not a static hold.
- 60 s: Add a second distinct motif behavior after beat 4, then return to the opening density; keep the phone and listing fixed.
The creator's signature (don't copy): The reference uses a specific product name, tally icon, tiny X-flower concept, dark green palette, and listing copy. The transferable format (do copy): Fixed product context plus one slow, procedural density cycle inside a bounded surface.
Source: https://x.com/itsnotchester/status/2116834831745376443 · measured 2026-11-04 · (measured) = read from film · (inferred) = construction reading
For agents: Aspect conversions · Length cuts
The measured data and build specs agents work from. Over MCP they get it all, with the full timeline as JSON.
Aspect conversions (computed from the measured boxes)
Aspect conversions (computed from the measured boxes): a centre crop of the reference frame, checked against its text boxes and moving elements.
| to | deliver at | a centre crop keeps | measured boxes kept | boxes a crop loses | phone minimum | so |
|---|---|---|---|---|---|---|
| 16:9 | 1920×1080 | middle 70.2% of the height (cut 14.9% top and bottom) | 3 of 5 | "Chester How", "Progress & habit journal" | 38 px cap | re-lay out: a crop loses too much |
| 9:16 | 1080×1920 | middle 45.1% of the width (cut 27.4% each side) | 5 of 5 | none | 22 px cap | a straight centre crop works |
| 1:1 | 1080×1080 | middle 80.2% of the width (cut 9.9% each side) | 5 of 5 | none | 22 px cap | a straight centre crop works |
Length cuts (computed from the scales flags)
Length cuts (computed from the scales flags): frames per shot at 49.396 fps; fixed shots keep their length, optional shots go first when the cut is shorter, the scaling shots share what is left. Snap each cut to the nearest beat when plate 8 has a steady pulse.
| # | flag | reference (f @49.396) | 15 s cut | 30 s cut | 60 s cut |
|---|---|---|---|---|---|
| 1 | scales | 1110 | 741 | 1482 | 1776 |
| total | 1110 f · 22.5 s | 741 f · 15.0 s | 1482 f · 30.0 s | 1776 f · 36.0 s + 24.0 s new beats |
60 s: stretching tops out at ×1.6 (36.0 s); add 24.0 s of new beats (more of the scaling beats' pattern with new content), never a longer hold on the fixed shots.
Recipe
One prompt that makes a film like this with Claude. Use the method; make the footage, words and brand your own.
Make a 22.46 s 449:360 film for {{PRODUCT}} in the format of 2116834831745376443 (growing field product header). Brand: font {{BRAND_FONT}}, background {{BRAND_BG}}, accents {{BRAND_ACCENTS}}, logo {{LOGO}}, call to action {{CTA_URL}}. Use an original small {{MOTIF}} and authentic {{UI_ASSETS}}. First load get_blueprint("2116834831745376443", format: "json") and follow its measured shot and motion plan. This is picture led and wordless: establish a fixed phone and sparse field, grow the field, reach peak density, then thin it. Keep the phone, listing and header text fixed. Animate only motif opacity and scale with 8–16 frame eased entrances; use one continuous shot and no global fade. Essential text must reach 27 px cap at the native 1348×1080 deliverable. Build in Remotion using CSS/Canvas and a seeded layout; the same stack is the minimum route. The reference is silent, so deliver silent by default; an optional original 80 BPM C-major ambient bed should target −14 LUFS and ≤−1 dBTP on X. Render 1348×1080 at 49.396 fps as H.264 MP4, about 22.46 s. End on text call to action: {{LOGO}} plus {{CTA_URL}} as text within the fixed layout. Use real captures of {{PRODUCT}} or rebuild its UI in code; never generated product UI, fake screenshots or fake results. Do not reuse reference colours, fonts, logo, motif, copy or music. No QR code or store badges unless requested.Films like this
Tagged app store headerphone mockupui motionsingle shotsilent videoorganic animationpastel accentsdark green