✓ 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 puts crowns at top/air, increasing moves them down, but the label "Kronen in der Luft" is at the top and the slider's visual top corresponds to value=0 which is correct conceptually, yet `writing-mode: bt-lr` makes the physical top of the slider correspond to max=100/water — direction is likely inverted for a vertical slider); mass/volume/density values are static (not live/dynamic); no genuine fall animation (crown teleports with no easing); water height logic is a tautology (waterHeightLeft scales 1:1 with submergedPercent regardless of actual volume difference), so the two containers show identical absolute water-rise rather than correctly differing levels.
Slider direction is inverted (value=0 puts crowns at top/air, increasing moves them down, but the label "Kronen in der Luft" is at the top and the slider's visual top corresponds to value=0 which is correct conceptually, yet `writing-mode: bt-lr` makes the physical top of the slider correspond to max=100/water — direction is likely inverted for a vertical slider); mass/volume/density values are static (not live/dynamic); no genuine fall animation (crown teleports with no easing); water height logic is a tautology (waterHeightLeft scales 1:1 with submergedPercent regardless of actual volume difference), so the two containers show identical absolute water-rise rather than correctly differing levels.