@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOut{from{opacity:1}to{opacity:0}}@keyframes slideDown{from{opacity:0;transform:translate(-50%,-20px)}to{opacity:1;transform:translate(-50%,0)}}@keyframes slideUp{from{opacity:1;transform:translate(-50%,0)}to{opacity:0;transform:translate(-50%,-20px)}}.animate-slide-down{animation:.3s ease-out forwards slideDown}.animate-slide-up{animation:.3s ease-out forwards slideUp}@keyframes modalPop{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}100%{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes pulseGlow{0%,100%{box-shadow:0 0 0 0 rgba(37,99,235,.4)}50%{box-shadow:0 0 0 8px rgba(37,99,235,0)}}.animate-modal-pop{animation:.3s ease-out forwards modalPop}.animate-pulse-glow{animation:2s ease-in-out infinite pulseGlow}@keyframes slideInRight{from{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@keyframes slideInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideOutRight{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(100%)}}@keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}@keyframes scaleIn{from{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes shake{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-5px)}40%,80%{transform:translateX(5px)}}@keyframes ripple{0%{transform:scale(0);opacity:.5}100%{transform:scale(4);opacity:0}}@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}@keyframes confetti-fall{0%{transform:translateY(-100vh) rotate(0);opacity:1}100%{transform:translateY(100vh) rotate(720deg);opacity:0}}.animate-fade-in{animation:.3s forwards fadeIn}.animate-fade-out{animation:.3s forwards fadeOut}.animate-slide-in-up{animation:.4s forwards slideInUp}.animate-slide-in-right{animation:.3s forwards slideInRight}.animate-slide-out-right{animation:.3s forwards slideOutRight}.animate-spin{animation:1s linear infinite spin}.animate-pulse{animation:2s infinite pulse}.animate-scale-in{animation:.3s forwards scaleIn}.animate-bounce{animation:.5s bounce}.animate-shake{animation:.5s shake}.btn-hover{transition:.2s}.btn-hover:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 10px 25px -5px rgba(0,0,0,.2)}.btn-hover:active{transform:translateY(0) scale(.98)}.ripple-container{position:relative;overflow:hidden}.ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.4);transform:scale(0);animation:.6s ease-out ripple;pointer-events:none}.skeleton{background:linear-gradient(90deg,#e2e8f0 0,#f1f5f9 50%,#e2e8f0 100%);background-size:200% 100%;animation:1.5s infinite shimmer;border-radius:8px}.dark .skeleton{background:linear-gradient(90deg,#334155 0,#475569 50%,#334155 100%);background-size:200% 100%}.progress-bar{transition:width .3s}.progress-bar-indeterminate{background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);background-size:50% 100%;animation:1s linear infinite shimmer}.card-hover{transition:.2s}.card-hover:hover{transform:translateY(-4px);box-shadow:0 20px 40px -10px rgba(0,0,0,.15)}.icon-spin{animation:2s linear infinite spin}.icon-pulse{animation:1.5s ease-in-out infinite pulse}.icon-bounce{animation:1s infinite bounce}.stagger-item{opacity:0;animation:.4s forwards slideInUp}.stagger-item:first-child{animation-delay:50ms}.stagger-item:nth-child(2){animation-delay:.1s}.stagger-item:nth-child(3){animation-delay:.15s}.stagger-item:nth-child(4){animation-delay:.2s}.stagger-item:nth-child(5){animation-delay:.25s}.stagger-item:nth-child(6){animation-delay:.3s}.stagger-item:nth-child(7){animation-delay:.35s}.stagger-item:nth-child(8){animation-delay:.4s}.transition-fast{transition:.15s}.transition-normal{transition:.2s}.transition-slow{transition:.3s}.hover-scale:hover{transform:scale(1.05)}.hover-lift:hover{transform:translateY(-4px)}.focus-ring:focus{outline:0;box-shadow:0 0 0 4px rgba(37,99,235,.3)}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:0s!important;animation-iteration-count:1!important;transition-duration:0s!important}}.confetti-container{position:fixed;inset:0;pointer-events:none;z-index:300;overflow:hidden}.confetti-piece{position:absolute;width:10px;height:10px;top:-20px;animation:3s linear forwards confetti-fall}.checkmark-circle{stroke-dasharray:166;stroke-dashoffset:166;animation:.6s cubic-bezier(.65,0,.45,1) forwards stroke}.checkmark-check{stroke-dasharray:48;stroke-dashoffset:48;animation:.3s cubic-bezier(.65,0,.45,1) .6s forwards stroke}@keyframes stroke{100%{stroke-dashoffset:0}}.tooltip{opacity:0;visibility:hidden;transform:translateY(5px);transition:.2s}.tooltip-trigger:hover .tooltip{opacity:1;visibility:visible;transform:translateY(0)}.dropdown-content{opacity:0;visibility:hidden;transform:translateY(-10px);transition:.2s}.dropdown.open .dropdown-content{opacity:1;visibility:visible;transform:translateY(0)}.modal-enter{animation:.2s fadeIn}.modal-enter .modal-content{animation:.3s scaleIn}.modal-exit{animation:.2s forwards fadeOut}.image-loaded{animation:.5s fadeIn}.dragging{cursor:grabbing!important;user-select:none}.drag-target.drag-over{animation:.5s infinite pulse}