/* Independent reflection bands and tapered surface highlights; no per-frame JS. */
.water-reflection-band{animation:water-refraction var(--period) cubic-bezier(.37,0,.63,1) var(--phase) infinite alternate}
.water-thread,.water-spark,.water-eddy{fill:none;stroke:url(#water-stroke);stroke-linecap:round;stroke-width:var(--weight,1.4px)}
.water-thread{opacity:0;animation:water-travel var(--period) linear var(--phase) infinite}
.water-thread-shadow{stroke:url(#water-shadow)}
.water-spark{opacity:0;animation:water-shimmer var(--period) ease-in-out var(--phase) infinite}
.water-light-pool{transform-origin:832px 760px;animation:water-glow 17s ease-in-out -4s infinite alternate}
.water-eddy{transform-box:fill-box;transform-origin:center;opacity:0;animation:water-unfurl var(--period) cubic-bezier(.22,.61,.36,1) var(--phase) infinite}
.water-eddy-small{stroke-width:1px}
@keyframes water-refraction{from{transform:translateX(var(--counter))}to{transform:translateX(var(--sway))}}
@keyframes water-travel{0%{opacity:0;transform:translate(calc(var(--drift) * -1),calc(var(--rise) * -1)) scaleX(.96)}25%{opacity:.65}65%{opacity:.5}100%{opacity:0;transform:translate(var(--drift),var(--rise)) scaleX(1.04)}}
@keyframes water-shimmer{0%,100%{opacity:0;transform:translateX(calc(var(--drift) * -1))}45%{opacity:.7}75%{opacity:.18}100%{transform:translateX(var(--drift))}}
@keyframes water-unfurl{0%{opacity:0;transform:scale(.75,.65)}28%{opacity:.5}90%,100%{opacity:0;transform:scale(1.3,1.6) translateY(3px)}}
@keyframes water-glow{from{opacity:.45;transform:translateX(-8px) scaleX(.91)}to{opacity:.8;transform:translateX(9px) scaleX(1.04)}}
@media(prefers-reduced-motion:reduce){.water-thread{opacity:.38}.water-spark{opacity:.28}.water-eddy{opacity:.22}}
/* A quiet static view is also complete when JavaScript is unavailable. */
[data-landscape]:not(.landscape-running):not(.landscape-paused) .water-thread{opacity:.38}
