@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-fade-in{animation:.3s ease-out forwards fadeIn}.animate-slide-in-right{animation:.4s ease-out forwards slideInRight}.animate-slide-in-left{animation:.4s ease-out forwards slideInLeft}.animate-scale-in{animation:.3s ease-out forwards scaleIn}.animate-shimmer{background:linear-gradient(90deg,#fff0 0%,#fff3 50%,#fff0 100%) 0 0/1000px 100%;animation:2s infinite shimmer}.animate-pulse-slow{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}.animate-bounce-slow{animation:2s infinite bounce}.stagger-item{opacity:0;animation:.4s ease-out forwards fadeIn}.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(n+6){animation-delay:.3s}.hover-lift{transition:all .3s cubic-bezier(.4,0,.2,1)}.hover-lift:hover{transform:translateY(-4px);box-shadow:0 10px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.hover-glow{transition:all .3s;position:relative}.hover-glow:before{content:"";border-radius:inherit;opacity:0;background:radial-gradient(circle,#3b82f626 0%,#0000 70%);transition:opacity .3s;position:absolute;inset:0}.hover-glow:hover:before{opacity:1}.dark .hover-glow:before{background:radial-gradient(circle,#60a5fa33 0%,#0000 70%)}.gradient-bg-light{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%)}.gradient-bg-dark{background:linear-gradient(135deg,#4c1d95 0%,#5b21b6 100%)}.gradient-text{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.dark .gradient-text{background:linear-gradient(135deg,#818cf8 0%,#a78bfa 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.glass{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffb3;border:1px solid #fff3}.dark .glass{background:#111827b3;border:1px solid #4b556333}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%) 0 0/200% 100%;animation:2s infinite shimmer}.dark .skeleton{background:linear-gradient(90deg,#1f2937 25%,#374151 50%,#1f2937 75%) 0 0/200% 100%}.btn-shine{position:relative;overflow:hidden}.btn-shine:before{content:"";background:linear-gradient(90deg,#0000,#ffffff4d,#0000);width:100%;height:100%;transition:left .5s;position:absolute;top:0;left:-100%}.btn-shine:hover:before{left:100%}.card-hover{border:1px solid #0000;transition:all .3s cubic-bezier(.4,0,.2,1)}.card-hover:hover{border-color:#3b82f6;box-shadow:0 20px 25px -5px #3b82f61a,0 10px 10px -5px #3b82f60a}.dark .card-hover:hover{border-color:#60a5fa;box-shadow:0 20px 25px -5px #60a5fa1a,0 10px 10px -5px #60a5fa0a}.ripple{position:relative;overflow:hidden}.ripple:after{content:"";background:#ffffff80;border-radius:50%;width:0;height:0;transition:width .6s,height .6s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ripple:active:after{width:300px;height:300px}@keyframes float{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-20px)scale(1.1)}}@keyframes glow-pulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}@keyframes gradient-shift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.card-lift{transition:all .4s cubic-bezier(.175,.885,.32,1.275)}.card-lift:hover{transform:translateY(-12px)scale(1.02)}@keyframes shine-sweep{0%{transform:translate(-100%)translateY(-100%)rotate(30deg)}to{transform:translate(100%)translateY(100%)rotate(30deg)}}@keyframes icon-bounce{0%,to{transform:scale(1)}50%{transform:scale(1.2)rotate(5deg)}}
