# Read the diff, move closer, then open an anchored comment **Draft manual construction guide. Moving-source fidelity and native Resolve execution remain unverified.** Two original content variants form one example. ## Source and composition Official film `0e-Brv-gS9Q`, selected native interval [2218,2350), 24000/1001 fps. Use a silent 1920×1080 square-pixel composition containing local frames 0–131. Exact duration: 132132/24000 seconds (5.505500 s). Source ordinal = 2218 + local frame. No frame-rate rounding, extra opening pause, closing hold or narration belongs to this study. The comparison is a retained, hash-bound 960×540 research excerpt. Preserved native metadata and PTS ledgers bind its clock; the historical full master is absent, so this is not a fresh full-master decode. Samples informed the build. Intermediate paths and measured-looking coordinates below are authored reconstruction controls, not official product timing, latency or design tokens. ## Setup and common coordinate rules Verify the unmodified kit with `python3 verify_package.py`, then follow `project/README.md`. Choose either input JSON content set. Install the bundled licensed Geist font for Text+, and calibrate pixels, weight, tracking and baselines against the supplied MP4; a font name alone does not guarantee parity. Regenerate `docs/controls.csv` with `node --experimental-strip-types scripts/controls.mjs`. Each row includes the local frame, source ordinal and exact sampled controls. Fusion global frame = composition start + CSV frame. Coordinates here use pixels from top-left, Y down. For a point in normalized Fusion image coordinates, X=pixelX/1920 and Y=1−pixelY/1080; convert top-left rectangles through their centers. Check the installed tool's coordinate direction instead of assuming CSS and Fusion match. Parent transforms apply after local transforms. A uniform pivoted transform is pivot + scale×(point−pivot), followed by the stated translation. Convert angles to your tool's convention. CSS rotations are clockwise in this Y-down space. Continuous controls use the CSV per-frame values, not an unspecified default spline. Held gates, text prefixes, colors and row indexes use stepped keys. Smoothstep is t²(3−2t), with t clamped to [0,1]; linear progress is clamped t. Rectangle masks need pixel-correct width and height; normalized X/Y values are not interchangeable on a non-square raster. Match opacity, clipping and layer order before attempting a moving comparison. ## Allocate the pane, read, then insert an anchored comment Keep local 0–2 as a white centered chapter, 96-pixel weight-600 type. Hard-cut at 3 to the original app on a blue backdrop. The app starts at (252,24), 1376×1032, radius 12; its toolbar is 44 pixels high. Below the toolbar, a 292-pixel sidebar stays fixed. The initial conversation width is 1084 pixels. At local 29, hard-open a 516-pixel diff pane at app-local (860,44). Narrow the conversation to 568 pixels and narrow its right-aligned request bubble. Do not leave the pane hidden until the camera arrives: the split reading state is visible over 29–67. Use the original layout/code fixtures, not the source film's code, model names, repository or product marks. ### Camera hierarchy and hover Place the whole app and pointer in one camera group. Its pivot is (1360,100). Apply cameraScale first, then screen translation (cameraX,cameraY). Over 67–84 these reach scale 2.3, X=-550 and Y=115. Thus final screen point = (1360,100) + 2.3×(worldPoint−(1360,100)) + (-550,115). Use the CSV samples. cameraBlur is an authored 0→6→0-pixel Gaussian approximation. It is not an optical-shutter reconstruction; calibrate Fusion's blur radius independently. The pointer travels from world (1595,53) toward (1174,285) over 72–84, then to the changed-line gutter at (1143,274) over 84–94. The authored smoothstep path is not a measured source trajectory. Reveal the plus-hover square for 94–106 at diff-local (22,197), size 19×19. The pointer stays inside its world hitbox [1134,1153)×[265,284). Do not infer a submitted review from a hover. ### In-flow comment insertion The file header is 49 pixels high. The code block starts at diff-local Y=96, uses 13-pixel type with 24-pixel line spacing and a 52-pixel left text margin. Three context rows precede the red removed row and the green added row. The green row occupies world Y=[260,284); it remains registered during insertion. At 107, hard-show the empty comment box at diff-local (23,219), 469×100, with a thin blue-grey border and radius 7. Place the placeholder 12 pixels inside the box and a disabled-looking Comment affordance at its lower right. Set followingOffset=108 in the same frame: only the code below the changed row shifts down. The header and changed code do not move. This layer split is the contract; an overlay covering the lower code is not an equivalent edit. Over 118–129, move the pointer to (1225,314), inside the field. Use the I-beam from 129 through the final local 131. Leave the field empty. Do not add typed text, submission, acceptance, a commit or any resulting state. The panel chrome, number of context rows, code fixtures, pointer path, camera metrics, blur and precise insertion spacing differ. The original code example is illustrative, not evidence of a real repository modification. Resolve has not executed this construction; moving-source approval remains open. ## Verification boundary Inspect both actual exports at their native cadence, including entry/exit, hard gates, layering, width, masks and holds. Shipped code checks font loading and selected text-width budgets before rendering; it rejects oversized copy instead of silently shrinking it. This is not arbitrary-input readability approval or a guarantee that an independent Text+ rebuild fits. The kit contains editable original geometry, fixtures, controls and tests; source screenshots/movies are not renderer inputs. Native .drp execution, tested Resolve import, independent moving-source review and source-quality approval are not included. Existing matching pinned dependencies were used, not a clean dependency install. A modified input needs a new render and review.