✓ 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 (label "Luft" is at top of the vertical range but slider min=0/value=0 maps to crowns in air while dragging down increases depth — however the slider-labels place "Luft" at top and "Wasser" at bottom which is correct, but native vertical range inputs with writing-mode bt-lr typically invert this, making bottom=0/air and top=100/water in practice); crown drawing logic is incomplete (draws body segments but crown-top points are drawn below the base ellipse, and the in-water portion always starts at waterSurfacePixelY regardless of crown entry point), and splash fires continuously on every slider move rather than only on water-entry transition.
Slider direction is inverted (label "Luft" is at top of the vertical range but slider min=0/value=0 maps to crowns in air while dragging down increases depth — however the slider-labels place "Luft" at top and "Wasser" at bottom which is correct, but native vertical range inputs with writing-mode bt-lr typically invert this, making bottom=0/air and top=100/water in practice); crown drawing logic is incomplete (draws body segments but crown-top points are drawn below the base ellipse, and the in-water portion always starts at waterSurfacePixelY regardless of crown entry point), and splash fires continuously on every slider move rather than only on water-entry transition.