@keyframes fadeInUp{from{opacity:0;transform:translateY(30px);}to{opacity:1;transform:translateY(0);}}@keyframes fadeInDown{from{opacity:0;transform:translateY(-30px);}to{opacity:1;transform:translateY(0);}}@keyframes slideInLeft{from{opacity:0;transform:translateX(-50px);}to{opacity:1;transform:translateX(0);}}@keyframes slideInRight{from{opacity:0;transform:translateX(50px);}to{opacity:1;transform:translateX(0);}}@keyframes scaleIn{from{opacity:0;transform:scale(0.8);}to{opacity:1;transform:scale(1);}}@keyframes bounceIn{0%{opacity:0;transform:scale(0.3);}50%{opacity:1;transform:scale(1.05);}70%{transform:scale(0.9);}100%{opacity:1;transform:scale(1);}}@keyframes pulse{0%{transform:scale(1);}50%{transform:scale(1.05);}100%{transform:scale(1);}}@keyframes shake{0%,100%{transform:translateX(0);}10%,30%,50%,70%,90%{transform:translateX(-5px);}20%,40%,60%,80%{transform:translateX(5px);}}@keyframes glow{0%,100%{box-shadow:0 0 5px rgba(139,0,0,0.3);}50%{box-shadow:0 0 20px rgba(139,0,0,0.6);}}@keyframes ripple{0%{transform:scale(0);opacity:1;}100%{transform:scale(4);opacity:0;}}.fade-in{animation:fadeInUp 0.6s ease-out forwards;}.fade-in-down{animation:fadeInDown 0.6s ease-out forwards;}.slide-in-left{animation:slideInLeft 0.8s ease-out forwards;}.slide-in-right{animation:slideInRight 0.8s ease-out forwards;}.scale-in{animation:scaleIn 0.5s ease-out forwards;}.bounce-in{animation:bounceIn 0.8s ease-out forwards;}.pulse-animation{animation:pulse 2s infinite;}.shake-animation{animation:shake 0.5s ease-in-out;}.glow-animation{animation:glow 2s ease-in-out infinite;}.micro-interaction{transition:all 0.3s cubic-bezier(0.4,0,0.2,1);}.micro-interaction:hover{transform:translateY(-2px);}.micro-interaction:active{transform:translateY(0);}.btn-ripple{position:relative;overflow:hidden;}.btn-ripple::before{content:'';position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:rgba(255,255,255,0.3);transform:translate(-50%,-50%);transition:width 0.6s,height 0.6s;}.btn-ripple:active::before{width:300px;height:300px;}.skeleton-loader{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;animation:loading 1.5s infinite;}@keyframes loading{0%{background-position:200% 0;}100%{background-position:-200% 0;}}.hover-lift{transition:all 0.3s cubic-bezier(0.4,0,0.2,1);}.hover-lift:hover{transform:translateY(-8px);box-shadow:0 12px 40px rgba(0,0,0,0.15);}.hover-glow:hover{box-shadow:0 0 30px rgba(139,0,0,0.4);}.hover-rotate:hover{transform:rotate(5deg);}.hover-scale:hover{transform:scale(1.05);}.smooth-transition{transition:all 0.4s cubic-bezier(0.4,0,0.2,1);}.focus-ring:focus{outline:none;box-shadow:0 0 0 3px rgba(139,0,0,0.3);}.spinner-modern{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #8B0000;border-radius:50%;animation:spin 1s linear infinite;}.dots-loading{display:inline-block;}.dots-loading::after{content:'';animation:dots 1.5s infinite;}@keyframes dots{0%,20%{content:'';}40%{content:'.';}60%{content:'..';}80%,100%{content:'...';}}.success-checkmark{width:50px;height:50px;border-radius:50%;background:#28a745;position:relative;animation:scaleIn 0.5s ease-out;}.success-checkmark::after{content:'✓';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:white;font-size:24px;font-weight:bold;}.error-x{width:50px;height:50px;border-radius:50%;background:#dc3545;position:relative;animation:shake 0.5s ease-out;}.error-x::after{content:'✕';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:white;font-size:24px;font-weight:bold;}@media (max-width:768px){.fade-in,.slide-in-left,.slide-in-right,.scale-in{animation-duration:0.4s;}.hover-lift:hover{transform:translateY(-4px);}}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;}.hover-lift:hover,.hover-scale:hover,.hover-rotate:hover{transform:none;}}