@keyframes celebration-pulse{0%,to{transform:scale(1);box-shadow:0 4px 6px -1px rgba(0,0,0,.1)}50%{transform:scale(1.02);box-shadow:0 20px 25px -5px rgba(34,197,94,.3)}}@keyframes celebration-glow{0%,to{background:linear-gradient(135deg,rgba(34,197,94,.1),rgba(16,185,129,.1))}50%{background:linear-gradient(135deg,rgba(34,197,94,.2),rgba(16,185,129,.2))}}@keyframes celebration-sparkle{0%{transform:scale(0) rotate(0deg);opacity:0}50%{transform:scale(1) rotate(180deg);opacity:1}to{transform:scale(0) rotate(1turn);opacity:0}}@keyframes celebration-bounce{0%,20%,53%,80%,to{transform:translateZ(0)}40%,43%{transform:translate3d(0,-8px,0)}70%{transform:translate3d(0,-4px,0)}90%{transform:translate3d(0,-2px,0)}}.celebration-pulse{animation:celebration-pulse 2s ease-in-out infinite}.celebration-glow{animation:celebration-glow 2s ease-in-out infinite}.celebration-sparkle{animation:celebration-sparkle 1.5s ease-in-out infinite}.celebration-bounce{animation:celebration-bounce 1s ease-in-out infinite}@keyframes slide-in-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.slide-in-up{animation:slide-in-up .3s ease-out}@keyframes status-update{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.status-update{animation:status-update .5s ease-in-out}