@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-50px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(50px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes scaleOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes skeleton{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes glowPulse{0%,to{box-shadow:var(--glow-pink)}50%{box-shadow:var(--glow-purple)}}.fade-in{opacity:0;animation:fadeIn .6s cubic-bezier(.4,0,.2,1) forwards}.fade-in-up{opacity:0;animation:fadeInUp .8s cubic-bezier(.4,0,.2,1) forwards}.fade-in-down{opacity:0;animation:fadeInDown .8s cubic-bezier(.4,0,.2,1) forwards}.slide-in-left{opacity:0;animation:slideInLeft .8s cubic-bezier(.4,0,.2,1) forwards}.slide-in-right{opacity:0;animation:slideInRight .8s cubic-bezier(.4,0,.2,1) forwards}.scale-in{opacity:0;animation:scaleIn .5s cubic-bezier(.4,0,.2,1) forwards}.animate-spin{animation:spin 1s linear infinite}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-bounce{animation:bounce 1s infinite}.skeleton{background:linear-gradient(90deg,var(--glass-border) 0%,rgba(255,255,255,.2) 50%,var(--glass-border) 100%);background-size:200% 100%;animation:skeleton 1.5s ease-in-out infinite}[data-theme=dark] .skeleton{background:linear-gradient(90deg,#ffffff0d,#ffffff1a,#ffffff0d);background-size:200% 100%}.hover-lift{transition:transform var(--transition-base)}.hover-lift:hover{transform:translateY(-4px)}.hover-scale{transition:transform var(--transition-base)}.hover-scale:hover{transform:scale(1.05)}.hover-glow{transition:box-shadow var(--transition-base)}.hover-glow:hover{box-shadow:var(--glow-pink)}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-400{animation-delay:.4s}.delay-500{animation-delay:.5s}
