/* Animações de cenário e peixes (SVG) — compartilhado entre o site e o jogo */
.wave { animation: wave 7s linear infinite; }
.wave.w2 { animation-duration: 4.5s; animation-direction: reverse; }
@keyframes wave { to { transform: translateX(130px); } }
.sway { transform-box: fill-box; transform-origin: 50% 100%; animation: sway 4.5s ease-in-out infinite alternate; }
@keyframes sway { from { transform: rotate(-3deg); } to { transform: rotate(3deg); } }
.fly { animation: fly 26s linear infinite; }
@keyframes fly { from { transform: translateX(-70px); } to { transform: translateX(440px); } }
.drift { animation: drift 60s ease-in-out infinite alternate; }
@keyframes drift { from { transform: translateX(-26px); } to { transform: translateX(26px); } }
.mist { animation: drift 18s ease-in-out infinite alternate; }
.mist.m2 { animation-direction: alternate-reverse; }
.ray { animation: ray 6s ease-in-out infinite alternate; }
@keyframes ray { to { opacity: .02; } }
.bubble { animation: bubble 9s linear infinite; }
@keyframes bubble { 0% { transform: translateY(0); opacity: 0; } 10% { opacity: .4; } 100% { transform: translateY(-440px); opacity: 0; } }
.twinkle { animation: twinkle 2.4s ease-in-out infinite alternate; }
@keyframes twinkle { to { opacity: .15; } }
.swim { animation: swim 20s linear infinite; }
.swim.rev { animation-name: swim-rev; }
@keyframes swim { from { transform: translateX(-70px); } to { transform: translateX(460px); } }
@keyframes swim-rev { from { transform: translateX(460px); } to { transform: translateX(-70px); } }
.bob-anim { animation: bob 3.6s ease-in-out infinite alternate; }
@keyframes bob { from { transform: translateY(-2px); } to { transform: translateY(2.5px); } }
.float { animation: float 3.2s ease-in-out infinite alternate; }
@keyframes float { from { transform: translateY(-7px); } to { transform: translateY(7px); } }
.fish .f-tail { transform-origin: 46px 50px; animation: wag .7s ease-in-out infinite alternate; }
@keyframes wag { from { transform: scaleX(1); } to { transform: scaleX(.72); } }
.fish.amb { opacity: .5; }
.fish.silhouette * { fill: var(--sil, #0d2b36) !important; stroke: none !important; }
.fish.silhouette .f-line { fill: none !important; stroke: var(--sil, #0d2b36) !important; }
.fish.silhouette .f-tail { animation-duration: .35s; }
.splash ellipse { fill: none; stroke: #fff; stroke-width: 2; opacity: 0; transform-box: fill-box; transform-origin: center; }
.splash.go ellipse { animation: ripple .8s ease-out; }
.splash.go ellipse + ellipse { animation-delay: .12s; }
@keyframes ripple { from { opacity: .9; transform: scale(.2); } to { opacity: 0; transform: scale(1.6); } }
