NEW TASK from Kavan: FIX ROUND 4 (small). Do this AFTER you finish the current job (player.html and its report); if you already finished it, start now. Three independent fresh reviewers checked your round-3 final.mp4 at 21 new times: they confirmed your round-3 fixes (exhaust valve train mirrored at x=944 and over the chamber, both ports mirror images, dial tick and labels, spark flash inside the chamber, under-deck steps symmetric, rod outline). Well done. ONE round-3 item is NOT fixed and all three reviewers agree: 1. CALLOUT LEADER LINES (visible). Each callout leader must end with a VISIBLE dot ON the part it labels. Today (a) the intake-close leader (callout A/A2) and the exhaust-opens leader (C/C2) end on the valve STEM, about 35-40 px above the valve head, and you cannot see the dot because it is #8E99A6, the same grey as the steel stem/plug it sits on; the line just seems to vanish into the stem; (b) the spark leader (B/B2) dot sits on the plug body 34-48 px above the plug tip; (c) the between-valves leader (D1/D2) dot is 16 px above the roof; (d) the lines take odd long routes: the intake leader goes from the pill up to y=125, across to x=790 and down over the casting and port; the exhaust and overlap leaders make a V-bend at about (1000,308) that scratches back across the red exhaust particle trail and in front of the exhaust stem and spring. Fix: give every leader dot a clearly visible look against steel (for example a bright fill such as #FFD23F or white with a 2 px dark outline #0E1116, radius 6-7), draw the dots above all engine parts, and anchor them: A/A2 and C/C2 at the CENTRE OF THE VALVE HEAD (the anchor must follow the head as it opens downward, not stay at a fixed mm point above it), B/B2 at the plug tip (or the lowest visible part of the plug), D1/D2 at the roof between the valves on the bore axis. Route the lines so they do not run over the red/blue port particle trails, the springs or the gas; a simple elbow is fine. Keep the spec anchor points in mind (SPEC.md line 112) but visibility and landing on the labelled part win; note any deviation in REPORT.md. MEASURING TOOL (it was extended): node measure_engine.mjs now has THREE leader checks (dot on top, dot contrasts with the steel, dot lands on its part: valve heads <= 8 px, plug <= 40 px from the spark centre, between valves <= 14 px). It only looks at leaders whose callout is showing, so run it with times inside the callout windows: --times 5.5,7.33,8,11.5,16,21.5,24,27.5,31 (windows 4.4-6.6, 6.8-9, 10.4-12.6, 15-17.2, 20.4-22.6, 22.8-25, 26.4-28.6, 30-32). Right now the contrast and landing checks FAIL on your current index.html; all other checks pass and must keep passing. Add --shots DIR and look at head crops at 5.5, 7.33, 11.5, 16 by eye (vision_analyze is for text and colour only). 2. Cosmetic, quick: the dial needle SHAFT runs through the letters of 'IN' (near t=1.9) and 'EX' (near t=11 and t=26). Draw the IN/EX labels above the needle (z-order) or nudge them so the shaft does not strike through them. 3. The HUD truncates instead of rounding (329.85 shows 329, 22.5 shows 22). Check SPEC.md for the rule; if the spec says round, fix it; if it says floor or is silent, leave it and say which. THEN: re-run measure_engine.mjs at the 12+ times (ALL checks must pass, including the new leader ones), back up final.mp4 to final_v3.mp4 and review.mp4 to review_v3.mp4 BEFORE rendering, render review.mp4 and final.mp4, ffprobe gate (h264, 1 video stream, 1920x1080, 30/1, 32.0 s +/-0.05, no audio), append round-4 numbers to REVIEW.md/REPORT.md/NOTES.md, and REBUILD player.html from the finished index.html (keep the build in a small script so it can be regenerated) and repeat the 3-time screenshot comparison against the new final.mp4. Final report: per item fixed or not fixed with the tool output, the gate, the player test, files written; be honest about anything still imperfect.