ViewModel now exposes onDrag/onDragEnd so BottomCard drives the collapse animation via detectVerticalDragGestures instead of a discrete collapse() call. Drag maps to 0–1 progress over 200dp; on release the animatable snaps to the nearest end with spring. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>