✓ 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 means crowns are in air, but as value increases crowns move down — however the crown position formula `(100-depth)*(TANK_HEIGHT/100)` means value=0 puts crowns near the bottom and value=100 at the top, which is backwards); no distinct fall animation — crowns just linearly translate; live mass display is static text, not a dynamic element; splash triggers only in the 30–70% depth band, missing entry/exit moments.
Slider direction is inverted (value=0 at top means crowns are in air, but as value increases crowns move down — however the crown position formula `(100-depth)*(TANK_HEIGHT/100)` means value=0 puts crowns near the bottom and value=100 at the top, which is backwards); no distinct fall animation — crowns just linearly translate; live mass display is static text, not a dynamic element; splash triggers only in the 30–70% depth band, missing entry/exit moments.