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

@keyframes gradient {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

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

.animate-gradient {
    background-size: 200% 200%;
    animation: gradient 3s ease infinite;
}

/* Smooth scrolling */
html {
    scroll-behavior: smooth;
}

/* Custom scrollbar */
::-webkit-scrollbar {
    height: 8px;
}

::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 10px;
}

::-webkit-scrollbar-thumb {
    background: #FF3366;
    border-radius: 10px;
}

::-webkit-scrollbar-thumb:hover {
    background: #e62958;
}

/* Snap scrolling for gallery */
.overflow-x-auto {
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
}

.overflow-x-auto > div > div {
    scroll-snap-align: start;
}

/* Pulse animation for buttons */
@keyframes pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.8; }
}