✓ 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 (min=0 mapped to air, slider visually reads bottom→water but `writing-mode: vertical-lr; direction: rtl` with no explicit label swap makes top of physical slider = value 0 = air — actually orientation is ambiguous and depends on browser rendering of vertical slider, and the label says "Luft" at top / "Wasser" at bottom which is correct in intent, but the fall animation is purely slider-driven with no autonomous animation sequence, so there's no real "fall" without user input.
Slider direction is inverted (min=0 mapped to air, slider visually reads bottom→water but `writing-mode: vertical-lr; direction: rtl` with no explicit label swap makes top of physical slider = value 0 = air — actually orientation is ambiguous and depends on browser rendering of vertical slider, and the label says "Luft" at top / "Wasser" at bottom which is correct in intent, but the fall animation is purely slider-driven with no autonomous animation sequence, so there's no real "fall" without user input.