/* Ortak @keyframes tanımları (sahnenin genelinde kullanılır) */
/* ---------- Animasyonlar ---------- */
@keyframes wag2 { from { transform: rotate(-30deg) } to { transform: rotate(30deg) } }
@keyframes earflop2 { 0%,100% { transform: rotate(-2.5deg) } 50% { transform: rotate(3deg) } }
@keyframes blink2 { 0%,90%,100% { transform: scaleY(1) } 94% { transform: scaleY(.08) } }
@keyframes tonguewag { from { transform: rotate(-7deg) } to { transform: rotate(7deg) } }
@keyframes pant { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.14) } }
@keyframes pop  { from { opacity: 0; transform: scale(.85) translateY(12px) } to { opacity: 1; transform: none } }
@keyframes rise { from { opacity: 0; transform: translateY(10px) } to { opacity: 1; transform: none } }
@keyframes ping { 0% { box-shadow: 0 0 0 0 rgba(243,217,184,.7) } 80%,100% { box-shadow: 0 0 0 7px rgba(243,217,184,0) } }
@keyframes spin { to { transform: rotate(360deg) } }
@keyframes glow { 0%,100% { transform: scale(1) } 50% { transform: scale(1.07) } }
@keyframes drift { from { transform: translateX(-220px) } to { transform: translateX(calc(100vw + 40px)) } }
@keyframes fly { 0% { transform: translate(-120px,20px) } 50% { transform: translate(50vw,-10px) } 100% { transform: translate(calc(100vw + 60px),15px) } }
@keyframes flap { from { transform: scaleY(1) } to { transform: scaleY(-.4) } }
@keyframes fall {
  0% { transform: translate(0,0) rotate(0deg); opacity: 0 }
  8% { opacity: .75 }
  25% { transform: translate(40px,25vh) rotate(120deg) }
  50% { transform: translate(-20px,50vh) rotate(220deg) }
  75% { transform: translate(35px,75vh) rotate(330deg) }
  92% { opacity: .75 }
  100% { transform: translate(0,105vh) rotate(440deg); opacity: 0 }
}
@keyframes sway { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(2.5deg) } }
@keyframes grass { 0%,100% { transform: rotate(-6deg) } 50% { transform: rotate(6deg) } }
@keyframes roll { 0% { transform: translateX(-60px) } 45% { transform: translateX(calc(100vw + 60px)) } 100% { transform: translateX(calc(100vw + 60px)) } }
@keyframes bounce { from { translate: 0 0 } to { translate: 0 -14px } }
@keyframes wing { from { transform: scaleX(1) } to { transform: scaleX(.25) } }
@keyframes flutter {
  0%,100% { transform: translate(0,0) }
  20% { transform: translate(40px,-30px) }
  40% { transform: translate(90px,-10px) }
  60% { transform: translate(60px,-55px) }
  80% { transform: translate(15px,-25px) }
}
@keyframes roamR { from { transform: translateX(-200px) } to { transform: translateX(calc(100vw + 200px)) } }
@keyframes roamL { from { transform: translateX(calc(100vw + 200px)) scaleX(-1) } to { transform: translateX(-220px) scaleX(-1) } }
@keyframes trot { 0%,100% { transform: rotate(-20deg) } 50% { transform: rotate(20deg) } }
@keyframes bob { from { transform: translateY(0) } to { transform: translateY(-4px) } }
@keyframes sniff { 0%,100% { transform: rotate(0deg) } 30% { transform: rotate(7deg) } 60% { transform: rotate(-3deg) } }
@keyframes hop { 0%,100% { transform: translateY(0) } 35% { transform: translateY(-16px) } 70% { transform: translateY(0) } }
