✓ 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/top = crowns at startY above water, but HTML vertical range slider with writing-mode bt-lr actually maps min at bottom, so top of slider = max = fully submerged, not in air); crowns are drawn as plain circles with a polygon outline rather than actual crown shapes; the water-rise calculation uses nonsensical units (divides cm³ volume by pixels) producing negligible/incorrect displacement; no genuine fall animation (positions jump instantly with slider); submersion logic is broken — calculateSubmersion returns 0 for both conditions when crown is above or below water surface, missing the fully-submerged case.
Slider direction is inverted (value=0/top = crowns at startY above water, but HTML vertical range slider with writing-mode bt-lr actually maps min at bottom, so top of slider = max = fully submerged, not in air); crowns are drawn as plain circles with a polygon outline rather than actual crown shapes; the water-rise calculation uses nonsensical units (divides cm³ volume by pixels) producing negligible/incorrect displacement; no genuine fall animation (positions jump instantly with slider); submersion logic is broken — calculateSubmersion returns 0 for both conditions when crown is above or below water surface, missing the fully-submerged case.