Add lockedRowHeightPx state that is only updated when fully expanded (p < 0.01f). During collapse, rowHeightPx uses the locked value instead of recalculating from the shrinking container height, which was causing rowH to drop from 137→0 and gridH to become 0 at p=1.0. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>