@keyframes fadeInUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-40px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-40px)}to{opacity:1;transform:translate(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.88)}to{opacity:1;transform:scale(1)}}@keyframes fadeInBlur{0%{opacity:0;filter:blur(12px)}to{opacity:1;filter:blur(0)}}.anim-fade-in-up{animation:fadeInUp .7s cubic-bezier(.16,1,.3,1) forwards;opacity:0;will-change:transform,opacity}.anim-fade-in-down{animation:fadeInDown .7s cubic-bezier(.16,1,.3,1) forwards;opacity:0;will-change:transform,opacity}.anim-fade-in-left{animation:fadeInLeft .7s cubic-bezier(.16,1,.3,1) forwards;opacity:0;will-change:transform,opacity}.anim-fade-in-right{animation:fadeInRight .7s cubic-bezier(.16,1,.3,1) forwards;opacity:0;will-change:transform,opacity}.anim-fade-in-scale{animation:fadeInScale .55s cubic-bezier(.16,1,.3,1) forwards;opacity:0;will-change:transform,opacity}.anim-fade-in-blur{animation:fadeInBlur .8s cubic-bezier(.16,1,.3,1) forwards;opacity:0;will-change:transform,opacity,filter}.anim-delay-100{animation-delay:.1s}.anim-delay-200{animation-delay:.2s}.anim-delay-300{animation-delay:.3s}.anim-delay-400{animation-delay:.4s}.anim-delay-500{animation-delay:.5s}.anim-delay-600{animation-delay:.6s}.anim-delay-700{animation-delay:.7s}.anim-delay-800{animation-delay:.8s}.anim-delay-900{animation-delay:.9s}.anim-delay-1000{animation-delay:1s}@keyframes listItemEnter{0%{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.anim-list-item{animation:listItemEnter .5s cubic-bezier(.16,1,.3,1) forwards;opacity:0;will-change:transform,opacity}.card-hover-enhanced{transition:all .4s cubic-bezier(.16,1,.3,1);will-change:transform,box-shadow}.card-hover-enhanced:hover{transform:translateY(-8px) scale(1.01);box-shadow:0 30px 60px -12px #00000026}.btn-ripple{position:relative;overflow:hidden}.btn-ripple:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:#fff6;border-radius:50%;transform:translate(-50%,-50%);transition:width .6s ease,height .6s ease,opacity .6s ease;opacity:0;pointer-events:none}.btn-ripple:active:after{width:300px;height:300px;opacity:1;transition:0s}.btn-press{transition:transform .12s cubic-bezier(.4,0,.2,1),box-shadow .12s ease}.btn-press:active{transform:scale(.96)}@keyframes progressGrow{0%{width:0%}}.anim-progress-bar{animation:progressGrow 1.2s cubic-bezier(.16,1,.3,1) forwards;will-change:width}.anim-number{display:inline-block;font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}@keyframes modalBackdropIn{0%{opacity:0}to{opacity:1}}@keyframes modalBackdropOut{0%{opacity:1}to{opacity:0}}@keyframes modalContentIn{0%{opacity:0;transform:scale(.92) translateY(30px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes modalContentOut{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.92) translateY(30px)}}.modal-backdrop-enter{animation:modalBackdropIn .3s cubic-bezier(.16,1,.3,1) forwards}.modal-backdrop-leave{animation:modalBackdropOut .2s ease forwards}.modal-content-enter{animation:modalContentIn .4s cubic-bezier(.16,1,.3,1) forwards}.modal-content-leave{animation:modalContentOut .25s cubic-bezier(.16,1,.3,1) forwards}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,#f1f5f9 25%,#e2e8f0,#f1f5f9 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:8px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.anim-spin{animation:spin 1s linear infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}.anim-bounce{animation:bounce .6s ease infinite}@keyframes pulseGlow{0%,to{box-shadow:0 0 #6366f180}50%{box-shadow:0 0 0 12px #6366f100}}.anim-pulse-glow{animation:pulseGlow 2s ease infinite}@keyframes checkmark{0%{transform:scale(0) rotate(-45deg);opacity:0}50%{transform:scale(1.2) rotate(0)}to{transform:scale(1) rotate(0);opacity:1}}.anim-checkmark{animation:checkmark .5s cubic-bezier(.16,1,.3,1) forwards}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-6px)}20%,40%,60%,80%{transform:translate(6px)}}.anim-shake{animation:shake .5s cubic-bezier(.16,1,.3,1)}@keyframes breathe{0%,to{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.03)}}.anim-breathe{animation:breathe 3s ease-in-out infinite}@keyframes tableRowEnter{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}.anim-table-row{animation:tableRowEnter .5s cubic-bezier(.16,1,.3,1) forwards;opacity:0;will-change:transform,opacity}@keyframes tableRowFadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes countPop{0%{transform:scale(.5);opacity:0}60%{transform:scale(1.15)}to{transform:scale(1);opacity:1}}.anim-count-pop{animation:countPop .6s cubic-bezier(.16,1,.3,1) forwards}.page-loader{position:fixed;top:0;right:0;bottom:0;left:0;background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:99999;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:all .3s ease}.page-loader.active{opacity:1;visibility:visible}.page-loader-spinner{width:48px;height:48px;border:4px solid #e2e8f0;border-top-color:#4f46e5;border-radius:50%;animation:spin .8s linear infinite}.anim-on-scroll{opacity:0;transform:translateY(30px);transition:all .8s cubic-bezier(.16,1,.3,1);will-change:transform,opacity}.anim-on-scroll.visible{opacity:1;transform:translateY(0)}.anim-on-scroll.scale{transform:scale(.94)}.anim-on-scroll.scale.visible{transform:scale(1)}.anim-filter-transition{animation:filterTransition .5s cubic-bezier(.16,1,.3,1)}@keyframes filterTransition{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.tag-hover{transition:all .3s cubic-bezier(.16,1,.3,1)}.tag-hover:hover{transform:translateY(-2px) scale(1.05);box-shadow:0 6px 16px #0000001a}.icon-spin-hover{transition:transform .4s cubic-bezier(.16,1,.3,1)}.group:hover .icon-spin-hover,.icon-spin-hover:hover{transform:rotate(12deg) scale(1.1)}.input-glow{transition:all .3s cubic-bezier(.16,1,.3,1)}.input-glow:focus{transform:translateY(-1px);box-shadow:0 8px 25px #6366f126}@keyframes emptyStateFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.anim-empty-state{animation:emptyStateFloat 3s ease-in-out infinite}.tilt-3d{transition:transform .3s ease;transform-style:preserve-3d;will-change:transform}@keyframes revealUp{0%{opacity:0;clip-path:inset(100% 0 0 0);transform:translateY(20px)}to{opacity:1;clip-path:inset(0 0 0 0);transform:translateY(0)}}.anim-reveal-up{animation:revealUp .7s cubic-bezier(.16,1,.3,1) forwards;opacity:0}.magnetic-btn{transition:transform .2s ease-out;will-change:transform}@keyframes toastSlideIn{0%{opacity:0;transform:translate(100%) scale(.9)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes toastSlideOut{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(100%) scale(.9)}}.toast-enter{animation:toastSlideIn .4s cubic-bezier(.16,1,.3,1) forwards}.toast-leave{animation:toastSlideOut .3s cubic-bezier(.4,0,1,1) forwards}@keyframes floatParticle{0%,to{transform:translateY(0) translate(0);opacity:.3}33%{transform:translateY(-20px) translate(10px);opacity:.6}66%{transform:translateY(10px) translate(-10px);opacity:.4}}.float-particle{animation:floatParticle 8s ease-in-out infinite}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.anim-on-scroll{opacity:1;transform:none}.anim-list-item,.anim-table-row,.anim-fade-in-up,.anim-fade-in-down,.anim-fade-in-left,.anim-fade-in-right,.anim-fade-in-scale,.anim-fade-in-blur{opacity:1;transform:none;filter:none;animation:none}}@media(max-width:640px){.anim-fade-in-up,.anim-fade-in-down{animation-duration:.5s}.modal-content-enter{animation:modalContentIn .35s cubic-bezier(.16,1,.3,1) forwards}@keyframes modalContentIn{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes modalContentOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(100%)}}}
