Pins ride THIS frame's camera (GFX_V2 shit list #7, 2026-08-21)
OsmView::ui paints every frame through a local camera copy with the frame's transitions replayed (the damped zoom tick, the drag, the glide); the Model self.camera catches up a frame later through Msg. The pin clusters (markers, labels, AccessKit hit rects) and the click hit-test were the ONE overlay still projected through self.camera, so during a zoom ease the basemap moved this frame and the pins the next — every pin slid off its anchor until the ease settled. clusters_for_cam(&cam, rect) / pin_screen_pos_cam take the frame camera; clusters_for (Model camera) stays for headless callers. Guard: tests/osm_pins.rs::pins_are_painted_from_the_frame_camera_during_a_zoom_ease reads the pin's AccessKit rect back against the frame camera's projection (RED on the old code: 47 px apart mid-ease; now < 1 px).