✓ 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 bottom = in air, value=100 at top = in water for a bt-lr vertical slider, but mapped as 0%=air/100%=water which is correct conceptually, however the physical thumb movement goes up=submerged which is wrong UX); mass/volume/density displays are static hardcoded text rather than live-updating data-values, and crown movement uses a crude translateY offset that doesn't actually show a falling animation into the tank visual.
Slider direction is inverted (value=0 at bottom = in air, value=100 at top = in water for a bt-lr vertical slider, but mapped as 0%=air/100%=water which is correct conceptually, however the physical thumb movement goes up=submerged which is wrong UX); mass/volume/density displays are static hardcoded text rather than live-updating data-values, and crown movement uses a crude translateY offset that doesn't actually show a falling animation into the tank visual.