Lower thirds and captions
Three lower thirds, social captions, and broadcast subtitles, at 16:9 and 9:16, moving by the sting's beat, curves, and order: rule, then name, then detail.

16:9, name and title, at rest. Pinned to the bottom left corner of title safe, sized by its copy, never wider than half the frame.

9:16, long name. On the reel safe line.
Build and exit
The navy plate wipes on left to right on the pace curve. The red rule travels in from off the plate one beat later, full length on every frame, the way the sting's bars do. The name rises through a fixed mask on the next beat and the detail line one beat after that. Nothing outside the plate is ever drawn, so no word or rule touches the picture during the build.
Two lower thirds never overlap. The second one starts on the frame after the first one clears. If they are for the same person, use one plate and a longer hold.
Long names
The plate never breaks and the type never squeezes below its minimum. The template runs these four steps in order and stops at the first one that fits. Step four is a refusal: the preview shows a white Will not export card, and build.sh stops with the reason instead of rendering a broken file.
Positions and sizes, in pixels
Left and bottom are the plate's outer edge. 16:9 uses title safe, 90%. 9:16 uses the reel safe box from the social tokens. Name sizes read as full, then the floor it may shrink to.
Photo robustness
The same template and the same copy on a tight interior, the busiest aerial in the set, a portrait original cropped hard, and a lot with a red boundary line burned in. Contrast never depends on the picture, because every word sits on navy. The full seven frame test for each photo is in renders/photo-interior.png, photo-aerial.png, photo-portrait.png, and photo-boundary.png.
Lot lines on Marathon's land listings are drawn in a red close to Marathon Red. If Marathon Red sat on the picture, the two reds would fight. So it never does: the rule and the eyebrow live inside the navy plate in Red Bright, the one red allowed on navy, and the caption highlight is a bar inside a navy box.
Reframe the footage so a face or a sign is not under the plate. Never move the plate off the safe line, never make it transparent, and never put the rule or the eyebrow on the footage to save space.
Social captions, burned in
For Reels, TikTok, Shorts, and the feed, where most people watch with the sound off. Spoken words are white, words still to come are 60% white, and a Red Bright bar sits under the current word. The bar slides to the next word in one beat on the standard curve. Pages cut, they do not animate, because speech sets the timing, not the grammar.
Broadcast subtitles
For YouTube, the website, client case studies, and anything a client may hand to a broadcaster. No colour, no highlight, no motion. White Montserrat SemiBold on an 82% navy box per line, centred on the safe line. A cue that will not fit two lines is split at its nearest clause, the type is never shrunk.
Rules
The case study cues at 16:9, as the template splits them
Import note for DaVinci Resolve
deliver/ are HD at 30p. For 24p or 60p run bash build.sh alpha 24, for UHD add uhd, as in bash build.sh alpha 30 uhd. Every key is on a beat, so the move is identical at every rate..mov from deliver/prores/ onto the track above the footage. ProRes 4444 carries alpha, Resolve reads it with Composite Mode Normal. Do not scale or reposition it, it is already on the safe line. Never put an HD file on a UHD timeline, render the UHD set instead.content.js, add the person, then run bash build.sh alpha. If the copy is too long, the build stops and tells you what to cut. Open stage.html?name=Jacob%20Dow&detail=Founder in Chrome to check a name before you render.content.js as { srt: '...' }, and run bash build.sh alpha. The word highlight then follows the real voice.Native values, HD 16:9
Files in this folder
Editor note, for Jacob to confirm before this ships