✓ 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
Direction is inverted: slider label says "Luft ↑ top / Wasser ↓ bottom" but the input value at max=100 (slider thumb at bottom) maps dipFrac=1.0 (water), which is visually correct for native vertical slider appearance but depends on browser's rendering of writing-mode/direction tricks — effectively the labeling is correct yet the `direction: rtl` + `writing-mode: vertical-lr` combo on a range input is non-standard and browser-inconsistent, making the true thumb direction unreliable; all other features (ASCII two-container scene, live data panel, physics values, splash, heureka, rising water) are solidly implemented.
Direction is inverted: slider label says "Luft ↑ top / Wasser ↓ bottom" but the input value at max=100 (slider thumb at bottom) maps dipFrac=1.0 (water), which is visually correct for native vertical slider appearance but depends on browser's rendering of writing-mode/direction tricks — effectively the labeling is correct yet the `direction: rtl` + `writing-mode: vertical-lr` combo on a range input is non-standard and browser-inconsistent, making the true thumb direction unreliable; all other features (ASCII two-container scene, live data panel, physics values, splash, heureka, rising water) are solidly implemented.