✓ 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 crown in air, value=100 at bottom means submerged, which is nominally correct directionally, BUT the crown Y-position mapping uses `(100 - crownPosition)` so dragging DOWN moves the crown UP — effectively inverted UX); splash particles are generated in code but never rendered into the ASCII display; no smooth fall animation, just immediate position jumps.
Slider direction is inverted (value=0 at top means crown in air, value=100 at bottom means submerged, which is nominally correct directionally, BUT the crown Y-position mapping uses `(100 - crownPosition)` so dragging DOWN moves the crown UP — effectively inverted UX); splash particles are generated in code but never rendered into the ASCII display; no smooth fall animation, just immediate position jumps.