LOG EVIDENCE: 1. notVisible: wasVisible never set for entries already on screen at list load. Removed wasVisible guard — trackingActive (100pt scroll) is sufficient protection. 2. aboveVP: maxY never goes below 0. LazyVStack destroys views at ~maxY=0. Changed threshold from maxY<0 to maxY<30 (nearly off). 3. notDown flickering: per-entry deltas are ~1pt, causing direction to flip between down/not-down on every callback. Made direction sticky: scrollingDown stays true until 30pt of cumulative upward scroll is detected. Prevents jitter from sub-pixel noise. Removed debug logging. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>