@keyframes gradient-shift {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}
.animate-gradient-shift {
    animation: gradient-shift 6s ease infinite;
}

@keyframes particle-field {
    from { transform: translateY(0) translateX(0); }
    to { transform: translateY(-50%) translateX(-50%); }
}
.animate-particle-field {
    animation: particle-field 20s linear infinite;
}

@keyframes pulse-slow {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}
.animate-pulse-slow {
    animation: pulse-slow 3s infinite;
}