✓ 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 maps to 0% depth/air, but the range input at top reads 100% label while the code does `100 - value` — the visual slider thumb moves up for more submersion, opposite of the spec); no distinct fall animation (crowns teleport to position); splash particles use `style.--tx` which is a no-op in JS (CSS custom property not set correctly), so particles don't animate laterally; Heureka triggers only at exactly value=100 which works, but confetti is appended inside the overlay element without absolute positioning so layout is broken.
Slider direction is inverted (value=0 maps to 0% depth/air, but the range input at top reads 100% label while the code does `100 - value` — the visual slider thumb moves up for more submersion, opposite of the spec); no distinct fall animation (crowns teleport to position); splash particles use `style.--tx` which is a no-op in JS (CSS custom property not set correctly), so particles don't animate laterally; Heureka triggers only at exactly value=100 which works, but confetti is appended inside the overlay element without absolute positioning so layout is broken.