✓ Two crowns ✓ Same mass, different density ✓ Vertical slider ✓ Slider works ✓ Slider controls crowns — Slider direction correct ✓ Full slider range — Fall animation ✓ Water displacement ✓ Rising water level ✓ Splash effects ✓ Physics correct ✓ Live mass value ✓ Live volume value ✓ Live density value ✓ Live displaced water ✓ Gilded displaces more ✓ Heureka animation ✓ No external deps ✓ Light bg / dark text ✓ Self-contained HTML
Slider direction is inverted (value=0 at top maps to crowns in air, but the slider renders bottom-to-top so user dragging down raises value — the mapping itself works, but the crown X positions are computed at canvas setup before resize making them fixed at wrong values; more critically, no fall animation exists (crowns teleport to position), splash only triggers at 5% intervals rather than on water entry, and the canvas crown positions use hardcoded pre-resize values (crownGoldX/crownPlatedX computed from canvas.width=0 before first layout).
Slider direction is inverted (value=0 at top maps to crowns in air, but the slider renders bottom-to-top so user dragging down raises value — the mapping itself works, but the crown X positions are computed at canvas setup before resize making them fixed at wrong values; more critically, no fall animation exists (crowns teleport to position), splash only triggers at 5% intervals rather than on water entry, and the canvas crown positions use hardcoded pre-resize values (crownGoldX/crownPlatedX computed from canvas.width=0 before first layout).