@keyframes button-ripple{0%{transform:scale(0);opacity:1}to{transform:scale(4);opacity:0}}@keyframes button-press{0%{transform:scale(1)}50%{transform:scale(.98)}to{transform:scale(1)}}.btn-ripple:after{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.5);transform:scale(0);animation:button-ripple .6s ease-out;pointer-events:none}.btn-press{animation:button-press .2s ease-out}@keyframes count-up-roll{0%{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}.counter-increment{animation:count-up-roll .6s ease-out;font-weight:700;color:#10B981}@keyframes checkmark-draw{0%{stroke-dashoffset:100;opacity:0}50%{opacity:1}to{stroke-dashoffset:0;opacity:1}}@keyframes checkmark-scale{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}.checkmark-animate{animation:checkmark-scale .4s cubic-bezier(.34,1.56,.64,1)}@keyframes progress-fill{0%{width:var(--progress-from,0)}to{width:var(--progress-to,100%)}}@keyframes progress-pulse{0%,to{opacity:1}50%{opacity:.8}}.progress-bar-fill{animation:progress-fill .3s ease-out}.progress-complete{animation:progress-pulse .5s ease-in-out}@keyframes card-hover-lift{0%{transform:translateY(0);box-shadow:0 4px 6px -1px rgba(0,0,0,.1)}to{transform:translateY(-2px);box-shadow:0 10px 15px -3px rgba(0,0,0,.1)}}.card-hover-lift:hover{animation:card-hover-lift .2s ease-out forwards}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.5}}.skeleton-loader{background-color:#f3f4f6;animation:skeleton-pulse 2s cubic-bezier(.4,0,.6,1) infinite}.dark .skeleton-loader{background-color:#374151}@keyframes error-shake{0%,to{transform:translateX(0)}25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}.error-shake{animation:error-shake .2s ease-in-out;border-color:#EF4444!important}@keyframes input-focus-glow{0%{box-shadow:inset 0 0 0 0 rgba(16,185,129,.1)}to{box-shadow:inset 0 0 0 3px rgba(16,185,129,.1)}}.input-focus{animation:input-focus-glow .3s ease-out forwards;border-color:#10B981}@keyframes confetti-fall{0%{transform:translateY(-100px) rotate(0deg);opacity:1}to{transform:translateY(100vh) rotate(1turn);opacity:0}}.confetti-piece{position:fixed;pointer-events:none;animation:confetti-fall var(--duration,3s) ease-in forwards}@keyframes achievement-pop{0%{transform:scale(0) rotate(-10deg);opacity:0}50%{transform:scale(1.1) rotate(5deg)}to{transform:scale(1) rotate(0deg);opacity:1}}.achievement-unlock{animation:achievement-pop .5s cubic-bezier(.34,1.56,.64,1)}@keyframes toast-slide-in{0%{transform:translateX(400px);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes toast-slide-out{0%{transform:translateX(0);opacity:1}to{transform:translateX(400px);opacity:0}}.toast-enter{animation:toast-slide-in .3s ease-out}.toast-exit{animation:toast-slide-out .3s ease-in}@keyframes modal-overlay-fade{0%{opacity:0}to{opacity:1}}@keyframes modal-scale{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.modal-overlay-enter{animation:modal-overlay-fade .2s ease-out}.modal-enter{animation:modal-scale .3s cubic-bezier(.34,1.56,.64,1)}@keyframes modal-exit{0%{transform:scale(1);opacity:1}to{transform:scale(.95);opacity:0}}.modal-exit{animation:modal-exit .2s ease-in}@keyframes ring-fill{0%{stroke-dashoffset:565}to{stroke-dashoffset:0}}.progress-ring-animate{animation:ring-fill .6s ease-out forwards;transform-origin:50% 50%}@keyframes milestone-pulse{0%,to{transform:scale(1);box-shadow:0 0 0 0 rgba(16,185,129,.7)}50%{transform:scale(1.05);box-shadow:0 0 0 8px rgba(16,185,129,0)}}.milestone-current{animation:milestone-pulse 2s infinite}@keyframes xp-glow-pulse{0%,to{box-shadow:0 0 20px rgba(16,185,129,.3)}50%{box-shadow:0 0 30px rgba(16,185,129,.5)}}.xp-counter-glow{animation:xp-glow-pulse 2s ease-in-out infinite}@keyframes list-item-slide{0%{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}.list-item-stagger{animation:list-item-slide .3s ease-out}@keyframes page-fade-in{0%{opacity:0}to{opacity:1}}@keyframes page-slide-up{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.page-enter{animation:page-fade-in .2s ease-out,page-slide-up .3s ease-out}@keyframes marquee-bounce{0%,14%{transform:translateX(0)}50%,64%{transform:translateX(var(--marquee-shift,0))}to{transform:translateX(0)}}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.marquee-bounce-inner{animation:none!important;white-space:normal!important;overflow-wrap:anywhere}}a,button,input,select,textarea{transition:all .15s ease-in-out}html{transition:background-color .3s ease-in-out,color .3s ease-in-out}@keyframes badge-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.badge-pulse{animation:badge-pulse 2s ease-in-out infinite}@keyframes gradient-shift{0%,to{background-position:0 50%}50%{background-position:100% 50%}}.gradient-animated{background-size:200% 200%;animation:gradient-shift 3s ease infinite}@keyframes spinner-rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.spinner{animation:spinner-rotate 1s linear infinite}@keyframes slideInRight{0%{opacity:.4;transform:translateX(18px)}to{opacity:1;transform:translateX(0)}}