ui-polish group 6: smooth scrolling and caret motion — eased programmatic scrolls (ease-out cubic, generation-cancelled by wheel or superseding scrolls, ticks re-measure the remaining run against the live summary), scroll-to-focus driven from the focused editor's own prepaint with a 120px typeahead margin below the active line, and a Neovide-style caret glide (per-corner directional lag, stretched-polygon paint, cross-block handoff). En route: fixed the long-standing typing stall by registering focus handles via splice_focusable so off-screen focused rows stay laid out and interactive; fixed a sign inversion that had every scroll animation double-jumping and easing in reverse; made commits no-ops on unchanged content (pure arrow navigation was persisting to disk and resplicing every row per press, letting in-flight animation ticks walk a zeroed summary to the list end); gated the content observer's resplice on real content change; and preserved the scroll anchor across single-row splices. Scroll trajectories trace-verified monotonic at 4-5 presses/sec (TRAWLER_SCROLL_TRACE=1 on devtools builds). master