@keyframes idle-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes idle-sway { 0%, 100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
@keyframes blink { 0%, 92%, 100% { transform: scaleY(1); } 96% { transform: scaleY(.1); } }
@keyframes press { 0% { transform: scale(1); } 40% { transform: scale(.92); } 70% { transform: scale(1.06); } 100% { transform: scale(1); } }
@keyframes pop { 0% { transform: scale(1); } 40% { transform: scale(1.18); } 100% { transform: scale(1); } }
@keyframes wobble { 0%, 100% { transform: rotate(0); } 20% { transform: rotate(-6deg); } 40% { transform: rotate(6deg); } 60% { transform: rotate(-4deg); } 80% { transform: rotate(4deg); } }
@keyframes glow-pulse { 0%, 100% { filter: drop-shadow(0 0 0 rgb(255 183 3 / 0)); transform: scale(1); } 50% { filter: drop-shadow(0 0 18px rgb(255 183 3 / .9)); transform: scale(1.06); } }
@keyframes bloom { 0% { transform: scale(0) rotate(-30deg); opacity: 0; } 60% { transform: scale(1.15) rotate(4deg); opacity: 1; } 100% { transform: scale(1) rotate(0); } }
@keyframes rise-fade { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes flutter { 0%, 100% { transform: scaleX(1); } 50% { transform: scaleX(.55); } }
@keyframes jump { 0%, 100% { transform: translateY(0) scale(1); } 30% { transform: translateY(-22px) scale(1.06, .94); } 60% { transform: translateY(0) scale(.96, 1.04); } }
@keyframes drift { from { transform: translateX(0); } to { transform: translateX(-60px); } }
@keyframes float-up { 0% { transform: translateY(0); opacity: 0; } 20% { opacity: 1; } 100% { transform: translateY(-40px); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .16s !important; animation-iteration-count: 1 !important; transition-duration: .1s !important; } }
:root[data-motion="reduced"] *, :root[data-motion="reduced"] *::before, :root[data-motion="reduced"] *::after { animation-duration: .16s !important; animation-iteration-count: 1 !important; transition-duration: .1s !important; }
