/**
 * Animations
 * Keyframes and animation utilities
 */

/* Float random */
@keyframes float-random {
    0%, 100% { transform: translate(0, 0) rotate(0deg); }
    25% { transform: translate(10px, -15px) rotate(5deg); }
    50% { transform: translate(-5px, -25px) rotate(-5deg); }
    75% { transform: translate(-15px, -10px) rotate(2deg); }
}

.float-random {
    animation: float-random 8s ease-in-out infinite;
}

.float-random-slow {
    animation: float-random 12s ease-in-out infinite reverse;
}

/* Dashboard pulse */
@keyframes dash-pulse {
    0%, 100% { opacity: 0.5; transform: scale(1); }
    50% { opacity: 1; transform: scale(1.05); }
}

.dash-pulse {
    animation: dash-pulse 3s ease-in-out infinite;
}

/* Floating animation */
@keyframes float {
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-10px); }
}

.float {
    animation: float 3s ease-in-out infinite;
}

.float-delay {
    animation: float 3s ease-in-out infinite;
    animation-delay: 1s;
}

/* Pulse glow effect */
@keyframes pulse-glow {
    0%, 100% { box-shadow: 0 0 20px rgba(59, 130, 246, 0.3); }
    50% { box-shadow: 0 0 40px rgba(59, 130, 246, 0.5); }
}

.pulse-glow {
    animation: pulse-glow 2s ease-in-out infinite;
}

/* Bounce animation for scroll indicator */
@keyframes bounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(8px); }
}

.bounce {
    animation: bounce 2s ease-in-out infinite;
}

/* Ticker animation for social proof */
@keyframes ticker {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

.ticker-content {
    display: flex;
    gap: 3rem;
    align-items: center;
    animation: ticker 30s linear infinite;
    white-space: nowrap;
}

.ticker-content:hover {
    animation-play-state: paused;
}

.ticker-content > * {
    flex-shrink: 0;
}
