@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes scaleInBounce{0%{opacity:0;transform:scale(.8)}50%{transform:scale(1.05)}to{opacity:1;transform:scale(1)}}@keyframes slideInUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideInDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOutUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}@keyframes fadeOutDown{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(20px)}}@keyframes scaleOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes pulseSlow{0%,to{opacity:.3}50%{opacity:.6}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes shake{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-5px)}20%,40%,60%,80%{transform:translateX(5px)}}.animate-fade-in{animation:fadeIn .3s ease-out}.animate-fade-in-up{animation:fadeInUp .3s ease-out}.animate-fade-in-down{animation:fadeInDown .3s ease-out}.animate-fade-in-left{animation:fadeInLeft .3s ease-out}.animate-fade-in-right{animation:fadeInRight .3s ease-out}.animate-scale-in{animation:scaleIn .2s ease-out}.animate-scale-in-bounce{animation:scaleInBounce .4s ease-out}.animate-slide-in-up{animation:slideInUp .3s ease-out}.animate-slide-in-down{animation:slideInDown .3s ease-out}.animate-fade-out{animation:fadeOut .2s ease-in}.animate-fade-out-up{animation:fadeOutUp .2s ease-in}.animate-fade-out-down{animation:fadeOutDown .2s ease-in}.animate-scale-out{animation:scaleOut .2s ease-in}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-pulse-slow{animation:pulseSlow 4s cubic-bezier(.4,0,.6,1) infinite}.animate-spin{animation:spin 1s linear infinite}.animate-bounce{animation:bounce 1s ease-in-out infinite}.animate-shake{animation:shake .5s ease-in-out}.animate-delay-75{animation-delay:75ms}.animate-delay-100{animation-delay:.1s}.animate-delay-150{animation-delay:.15s}.animate-delay-200{animation-delay:.2s}.animate-delay-300{animation-delay:.3s}.animate-delay-500{animation-delay:.5s}.animate-duration-100{animation-duration:.1s}.animate-duration-200{animation-duration:.2s}.animate-duration-300{animation-duration:.3s}.animate-duration-500{animation-duration:.5s}.animate-duration-700{animation-duration:.7s}.animate-duration-1000{animation-duration:1s}.animate-fill-forwards{animation-fill-mode:forwards}.animate-fill-backwards{animation-fill-mode:backwards}.animate-fill-both{animation-fill-mode:both}.animate-ease-smooth{animation-timing-function:cubic-bezier(.4,0,.2,1)}.animate-ease-spring{animation-timing-function:cubic-bezier(.68,-.55,.265,1.55)}.animate-ease-bounce{animation-timing-function:cubic-bezier(.68,-.6,.32,1.6)}:root{--animation-fast:150ms;--animation-normal:300ms;--animation-slow:500ms;--easing-standard:cubic-bezier(0.4,0,0.2,1);--easing-decelerate:cubic-bezier(0,0,0.2,1);--easing-accelerate:cubic-bezier(0.4,0,1,1);--easing-bounce:cubic-bezier(0.68,-0.55,0.265,1.55)}@keyframes ripple{0%{transform:scale(0);opacity:.6}to{transform:scale(4);opacity:0}}.ripple-effect{position:relative;overflow:hidden}.ripple-effect:after{content:"";position:absolute;top:50%;left:50%;width:100px;height:100px;background:rgba(255,255,255,.3);border-radius:50%;transform:translate(-50%,-50%) scale(0);pointer-events:none}.ripple-effect:active:after{animation:ripple .6s var(--easing-decelerate)}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.skeleton{background:linear-gradient(90deg,rgba(255,255,255,.04),rgba(255,255,255,.08) 50%,rgba(255,255,255,.04));background-size:1000px 100%;animation:shimmer 2s infinite;border-radius:8px}.skeleton-text{height:1rem;margin-bottom:.5rem}.skeleton-title{height:1.5rem;margin-bottom:1rem;width:60%}.skeleton-avatar{width:3rem;height:3rem;border-radius:50%}@keyframes buttonPress{0%{transform:scale(1)}50%{transform:scale(.95)}to{transform:scale(1)}}.btn-press-effect:active{animation:buttonPress var(--animation-fast) var(--easing-standard)}@keyframes checkmarkDraw{0%{stroke-dashoffset:100}to{stroke-dashoffset:0}}.animate-checkmark{stroke-dasharray:100;animation:checkmarkDraw .5s var(--easing-standard) forwards}.hover-lift{transition:all var(--animation-normal) var(--easing-standard)}.hover-lift:hover{transform:translateY(-4px);box-shadow:0 12px 24px -8px rgba(0,0,0,.3)}.hover-lift-subtle{transition:all var(--animation-fast) var(--easing-standard)}.hover-lift-subtle:hover{translate:0 -2px;box-shadow:0 8px 16px -6px rgba(0,0,0,.2)}.hover-glow{position:relative;transition:all var(--animation-normal) var(--easing-standard)}.hover-glow:before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(135deg,rgba(255,255,255,.1),rgba(255,255,255,.05));opacity:0;transition:opacity var(--animation-normal) var(--easing-standard);pointer-events:none;z-index:-1}.hover-glow:hover:before{opacity:1}@keyframes toastSlideIn{0%{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes toastSlideOut{0%{transform:translateX(0);opacity:1}to{transform:translateX(100%);opacity:0}}.toast-enter{animation:toastSlideIn var(--animation-normal) var(--easing-decelerate)}.toast-exit{animation:toastSlideOut var(--animation-normal) var(--easing-accelerate)}@keyframes toastProgress{0%{width:100%}to{width:0}}.toast-progress{animation:toastProgress 5s linear forwards}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(20px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes backdropBlur{0%{backdrop-filter:blur(0);background-color:rgba(0,0,0,0)}to{backdrop-filter:blur(8px);background-color:rgba(0,0,0,.5)}}.modal-enter{animation:modalSlideUp .4s var(--easing-decelerate)}.modal-backdrop-enter{animation:backdropBlur .3s var(--easing-standard) forwards}.stagger-1{animation-delay:0s}.stagger-2{animation-delay:50ms}.stagger-3{animation-delay:.1s}.stagger-4{animation-delay:.15s}@keyframes dragGhost{0%{opacity:1}to{opacity:.7}}.dragging{opacity:.7;cursor:grabbing}.drop-zone-highlight{transition:all var(--animation-fast) var(--easing-standard)}.drop-zone-highlight.active{background-color:rgba(255,255,255,.05);border-color:rgba(255,255,255,.3);box-shadow:0 0 20px rgba(255,255,255,.1)}@keyframes snapIntoPlace{0%{transform:scale(.95)}50%{transform:scale(1.02)}to{transform:scale(1)}}.snap-animation{animation:snapIntoPlace var(--animation-normal) var(--easing-bounce)}@keyframes inputError{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-4px)}20%,40%,60%,80%{transform:translateX(4px)}}.input-error{animation:inputError .4s var(--easing-standard)}@keyframes inputSuccess{0%{transform:scale(0);opacity:0}50%{transform:scale(1.2)}to{transform:scale(1);opacity:1}}.input-success-icon{animation:inputSuccess .4s var(--easing-bounce)}@keyframes errorPulse{0%,to{box-shadow:0 0 0 0 rgba(239,68,68,.4)}50%{box-shadow:0 0 0 4px rgba(239,68,68,.1)}}.input-error-border{animation:errorPulse 1s ease-in-out;border-color:rgb(239,68,68)}@keyframes dotPulse{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1.2)}}.loading-dots span{display:inline-block;width:8px;height:8px;margin:0 2px;background-color:currentColor;border-radius:50%;animation:dotPulse 1.4s ease-in-out infinite both}.loading-dots span:first-child{animation-delay:-.32s}.loading-dots span:nth-child(2){animation-delay:-.16s}@keyframes spinnerRotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.spinner-brand{border:3px solid rgba(255,255,255,.1);border-top-color:rgba(255,255,255,.8);border-radius:50%;animation:spinnerRotate .8s linear infinite}@keyframes scrollReveal{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.scroll-reveal{animation:scrollReveal .6s var(--easing-decelerate)}@keyframes toggleBounce{0%{transform:translateX(0)}50%{transform:translateX(-2px)}to{transform:translateX(0)}}.toggle-knob{transition:transform var(--animation-normal) var(--easing-bounce)}.toggle-knob.active{animation:toggleBounce var(--animation-fast) var(--easing-standard)}.will-animate{will-change:transform,opacity}.gpu-accelerate{transform:translateZ(0);backface-visibility:hidden;perspective:1000px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}