@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{from{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}@keyframes fadeInRight{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}@keyframes scaleIn{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes scaleUp{from{transform:scale(1)}to{transform:scale(1.05)}}@keyframes slideInRight{from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes slideInLeft{from{transform:translateX(-100%);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes slideOutRight{from{transform:translateX(0);opacity:1}to{transform:translateX(100%);opacity:0}}@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}@keyframes pulseScale{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes bounce{0%,100%,20%,50%,80%{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}@keyframes shake{0%,100%{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-5px)}20%,40%,60%,80%{transform:translateX(5px)}}@keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}.fade-in{animation:.3s ease-in-out fadeIn}.fade-in-up{animation:.4s ease-out fadeInUp}.fade-in-down{animation:.4s ease-out fadeInDown}.fade-in-left{animation:.4s ease-out fadeInLeft}.fade-in-right{animation:.4s ease-out fadeInRight}.scale-in{animation:.3s cubic-bezier(.4,0,.2,1) scaleIn}.pulse{animation:1.5s infinite pulse}.bounce{animation:1s bounce}.shake{animation:.5s shake}.spin{animation:1s linear infinite spin}.transition-all{transition:.3s cubic-bezier(.4, 0, .2, 1)}.transition-fast{transition:.15s ease-in-out}.transition-slow{transition:.6s cubic-bezier(.4, 0, .2, 1)}.hover-lift{transition:transform .3s cubic-bezier(.4, 0, .2, 1)}.hover-lift:hover{transform:translateY(-4px)}.hover-scale{transition:transform .3s cubic-bezier(.4, 0, .2, 1)}.hover-scale:hover{transform:scale(1.05)}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:2000px 100%;animation:2s infinite shimmer}