# Capture speech, clear the recorder, return an editable draft **Manual DaVinci Resolve / Fusion construction guide. Review open.** No native project, import macro or verified Resolve execution is included. No source-quality, independent moving or native application parity is claimed. Both Original and Adaptation previews are Remotion renders, not the source film. ## Clock and source gates Create a1920×1080 progressive composition with196 frames, local0..195, at exact24000/1001fps. Duration is196196/24000=8.174833333seconds. If the installed Resolve setup cannot retain that rational cadence, stop and resolve the setup; do not round to24, add holds, interpolate new frames or include source1746. Fusion global frame equals composition start plus local frame. `source-timing.json` binds source0qK3KqvtRrg[1550,1746), native timebase1/24000, 1001ticks per frame. Source masters and research excerpts are not input assets. `controls.csv` is the per-frame construction authority; `waveform.csv` supplies every visible original bar. Numeric and file checks do not prove a native render. | Local | Source | Required visible state | | --- | --- | --- | |0..4|1550..1554|Empty composer, regular toolbar, microphone hover and disabled Send.| |5..11|1555..1561|Capture controls replace regular toolbar; timer0:00; no waveform yet.| |12..168|1562..1718|Original waveform history accumulates/scrolls; timer follows anchors.| |169|1719|Waveform clears, timer resets0:00; Send still enabled.| |170..175|1720..1725|Empty reset holds; Send disabled; no editable text.| |176..195|1726..1745|Full three-line editable draft, ordinary toolbar and caret; left-only reflow.| All mode changes use held keys. Text arrives together; no typewriter animation, spinner, backend message, submitted bubble or generated result is added. The source starts this selection with a presenter-to-UI cut. Its endpoint is before Send, not a film cut. A separate source presenter overlay fades before reset; it is omitted here explicitly, without a synthesized replacement or narration. ## Inputs, font and original artwork Use bundled `public/fonts/Geist.ttf`, included with its OFL license. Pixel font sizes below are Remotion values. Match native Text+ metrics by visible height, advance and line spacing; no numeric Text+ Size equivalence is asserted. Do not silently scale copy to fit. Reject over-width text at the listed weight. | Field | Size / weight | Width budget | | --- | --- | --- | |heroTitle|64 /700|875px| |heroSubtitle|25 /400|860px| |artifactTitle|33 /570|300px| |placeholder|36 /400|820px| |modelLabel|29 /400|312px| |paneTitle|23 /700|585px| |teamLabel|44 /400|600px| |each of three draftLines|36 /400|920px| |each row label / detail|31 /630;25 /400|630px each| Hero title has authored-1px tracking. Pane title has1.5px tracking. Keep the explicit three draft lines at56px baselines; no auto-wrap or ellipsis. Place the caret after the full third line, using its measured advance plus3px. `inputs/default.json` and `inputs/adaptation.json` contain complete Garden and Studio text and four nonfinancial rows. `scripts/build-art.py` is the full source of the two hero SVGs: a leaf arrangement versus a film-reel arrangement. Rebuild the documented paths as native masks/shapes or use an import route verified in the installed application. This guide does not promise arbitrary SVG Loader support. The inline icons and pointer paths are fully specified in `Scene.tsx`. Do not replace the editable scene with a flattened reference still or source clip. ## Node branches and coordinates All geometry uses top-left1920×1080 pixels. A centered rectangle at(left,top,width, height) maps to normalized center((left+width/2)/1920, 1-(top+height/2)/1080), width/1920,height/1080. A point maps to(x/1920,1-y/1080). Apply this conversion consistently when native controls use bottom-left origins. Validate frame orientation in the installed application before keying. Merge branches in this order: 1. Desktop gradient: diagonal teal/navy field `#152e31`, `#173746`, `#071b23`. 2. White application shell(64,-20,1900,1064), radius46, shadow0/20/60px at#0005. 3. **Left stack**, clipped to(64,0,1094,1044), bottom-left radius46. Build the following in global coordinates, then apply only `leftStackY` to this stack: hero(108,-124,1002,438), radius36; artifact(108,346,1002,184), radius30; action row(115,555,446,45). All three move up45px at176, with no ease. 4. **Right pane**, independent of the left-stack transform: (1158,0,762,1044), background#f6f7f3,2px#e7e9e4 left edge. Clip its contents to this pane. 5. Composer shell/text/controls/waveform. Do not parent these to the left stack. 6. Tooltip and the original pointer, in output coordinates. Hero text global position: title(164,12,886,90), subtitle(166,104,860,44), notebook label pill(166,165,280,46),18px type,2px tracking and22px horizontal padding; its236px inner width is measured with tracking and never wrapped. All move with the left stack. Hero SVG uses its full1002×438 viewBox; art stays a separate branch beneath live text. Artifact:2px#e8eae7 edge, white fill; icon well(142,383,110,110), radius24, fill#f3f5f1. Use the original Garden leaf or Studio slate path at65×65 centered. Title(282,383,300,51); lock plus Workspace only at(284,450,310,38),30px gray. Open in pill(602,399,242,76), radius24,2px edge; Share(866,399,210,76), radius24, dark fill. Fixed icon paths in `Scene.tsx` are original line drawings, not font glyphs. Action row has36px icons and45px gaps, color#91958e. Right card global(1216,20,744,742), radius27,2px#dde2da edge and#fdfefb fill. Pane title at(1252,49,650,51). Row index0..3 has top117+161×index, height161, 2px upper separator; text starts1252, rowTop+36. Detail follows with11px gap. The card overflows the canvas at right deliberately and is clipped, not rescaled. Team card(1216,810,744,320), radius28,48px inset,44px title. At title+43px gap, add2px rule then30px inset and a66px original initial avatar beside Rowan. No right-pane content moves at176. Composer x108,width1002,bottom1000,radius56,2px#e6e9e2 edge, white fill, subtle0/7/24px shadow. Before176 its top725,height275; from176 top680,height320. Use held shape-size keys, not a transform that scales text or controls. Before draft: placeholder(144,770,820,58),36px#c2c7bd. Draft: text begins (144,725), three56px rows,36px ink#202522. Full string changes in one held key. Plus icon is at(151,920),36px. Ordinary controls: secondary icon(245,919),42px; model label(512,914,355,52),29px and25px chevron; microphone(930,919),36px. Hide these except the plus during capture/reset. Capture timer(800,916,86,50), 34px tabular digits#6d7568; Stop square(938,926,22,22), radius4,#b1b7ac. Send(1010,898,80,80),radius44,39px up-arrow. Fill#202522 when`sendEnabled`=1, otherwise#aeb5a8. The plus is#a5aaa1 during capture/reset, ink otherwise. Initial tooltip(813,846,260,43),radius12,dark fill,20px centered Click to dictate; visible only0..4. Do not add a second tooltip at the endpoint. ## Waveform, counter and pointer The waveform is a **silent original fixture**, not audio-derived or transcription proof. For each row of `waveform.csv`, create a3px capsule of the listed height, top-left(x,y),radius1.5,fill#8b9485. There are at most48 visible slots, in output coordinates, without left-stack motion. Animate slot visibility and heights from the exact per-frame table with held keys. Every bar clears at169. Equivalent generator: at local>=12 and<169,head=floor((frame-12)×0.65), count=min(48,head+1). Slot0..count-1 uses sample=head-slot, height=4+round(22×abs(sin(sample×1.71)×cos(sample×0.39))), x=782-8×slot,y=939-height/2,width3. Trigonometry is in radians. The exact CSV avoids cross-application rounding ambiguity. There are no visible bars outside this interval, no imported sound and no synthetic voice. Timer value changes at local5→0,25→1,45→2,65→3,85→4,105→5,125→6,146→7, 166→8,169→0. Display0:00..0:08. These labels were inspected in timer-only source crops; do not replace them with floor(local/fps). Pointer vector viewBox65×84 and path are in `Scene.tsx`. Its top-left is (`pointerX`-14,`pointerY`-8), with scale about local(14,8), shadow1/4/3px#0005. Use `controls.csv` values exactly; paths are authored approximations. Visibility is1 before18 and from160 onward, otherwise0. X stays948 until181 then moves to1050 by189 with smoothstep; Y=938+8×(1-smoothstep160..165). Scale is0.94 at5 and169, otherwise1. Do not add a Send click at195. Caret is visible at176..187 and hidden188..195; all text remains. The source hand and path are not traced. ## Verification and rejection Render both complete content variants at native cadence. Inspect4/5,11/12, 168/169/170,175/176 and195 at full size. Check silent audio-track absence, exact196frame count, fit, waveform clearing, simultaneous three-line appearance, fixed composer bottom and unchanged right pane. Compare the paired movies and source excerpt as separate references, never use that excerpt in a render. Reject missing reset frames, text before176, type-on transcription, an invented result, floating right pane, resized lettering, rounded cadence, extended holds, source asset reuse or claims of real product/backend behavior. The source UI, photography, waveform, detailed cursor and optical texture are not reproduced. Neither tests nor decoded stills close perceived moving or source-fidelity review. Native Resolve execution must be performed and evidenced separately.