.fade-in{animation:fadeIn .5s ease-in}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.slide-in-right{animation:slideInRight .5s ease-out}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.slide-up{animation:slideUp .5s ease-out}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.pulse{animation:pulse 1.5s infinite}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.shake{animation:shake .5s ease-in-out}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-10px)}40%,80%{transform:translate(10px)}}.rotate{animation:rotate 1s linear infinite}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.bounce{animation:bounce 1s infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}.scale-in{animation:scaleIn .5s ease-out}@keyframes scaleIn{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.flip{animation:flip 1s ease-in-out;transform-style:preserve-3d}@keyframes flip{0%{transform:perspective(400px) rotateY(0)}to{transform:perspective(400px) rotateY(360deg)}}.spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-top:4px solid #3498db;border-radius:50%;width:40px;height:40px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.hover-grow{transition:transform .3s ease}.hover-grow:hover{transform:scale(1.1)}.hover-shadow{transition:box-shadow .3s ease}.hover-shadow:hover{box-shadow:0 5px 15px #0000004d}.btn-click{transition:transform .1s ease}.btn-click:active{transform:scale(.95)}.fade-out{animation:fadeOut .5s ease-out}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.animate-once{animation-iteration-count:1}.animate-infinite{animation-iteration-count:infinite}.animate-slow{animation-duration:2s}.animate-fast{animation-duration:.3s}.animate-pause{animation-play-state:paused}
