@keyframes tw-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes tw-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes tw-shake{0%,to{transform:translate(0)}20%{transform:translate(-3px)}40%{transform:translate(3px)}60%{transform:translate(-2px)}80%{transform:translate(2px)}}@keyframes tw-glow{0%,to{box-shadow:0 0 0 0 hsl(var(--primary) / .5)}50%{box-shadow:0 0 0 8px hsl(var(--primary) / 0)}}@keyframes tw-float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.tw-eff-pulse{transform-origin:50%;animation:1.6s ease-in-out infinite tw-pulse}.tw-eff-bounce{animation:1.4s ease-in-out infinite tw-bounce}.tw-eff-shake{animation:2.2s ease-in-out infinite tw-shake}.tw-eff-glow{animation:1.8s ease-in-out infinite tw-glow}.tw-eff-float{animation:2.4s ease-in-out infinite tw-float}@media (prefers-reduced-motion:reduce){.tw-eff-pulse,.tw-eff-bounce,.tw-eff-shake,.tw-eff-glow,.tw-eff-float{animation:none!important}}
