✓ 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
Solid ASCII-art implementation with correct physics (gold 19.3 g/cm³, alloy 13.0 g/cm³, same 1000 g mass), live data panels, splash particles, and Heureka trigger — but the slider direction is inverted (value=0 at top maps to crowns in air, which is visually correct, but the vertical slider's native rendering puts min at bottom, meaning slider top = 0 = air is actually correct... however the `-webkit-appearance: slider-vertical` with `direction: rtl` makes the top of the slider physically correspond to max value = water, inverting intent), and there is no smooth fall animation — crown position jumps discretely with slider movement only.
Solid ASCII-art implementation with correct physics (gold 19.3 g/cm³, alloy 13.0 g/cm³, same 1000 g mass), live data panels, splash particles, and Heureka trigger — but the slider direction is inverted (value=0 at top maps to crowns in air, which is visually correct, but the vertical slider's native rendering puts min at bottom, meaning slider top = 0 = air is actually correct... however the `-webkit-appearance: slider-vertical` with `direction: rtl` makes the top of the slider physically correspond to max value = water, inverting intent), and there is no smooth fall animation — crown position jumps discretely with slider movement only.