@keyframes float {
    0%, 100% {
        transform: translateY(0) rotate(0deg);
    }
    50% {
        transform: translateY(-20px) rotate(5deg);
    }
}

@keyframes float-delay {
    0%, 100% {
        transform: translateY(0) rotate(0deg);
    }
    50% {
        transform: translateY(-15px) rotate(-3deg);
    }
}

@keyframes float-delay-2 {
    0%, 100% {
        transform: translateY(0) rotate(0deg);
    }
    50% {
        transform: translateY(-25px) rotate(8deg);
    }
}

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

.animate-float-delay {
    animation: float-delay 5s ease-in-out infinite;
    animation-delay: 0.5s;
}

.animate-float-delay-2 {
    animation: float-delay-2 6s ease-in-out infinite;
    animation-delay: 1s;
}

.feature-card:hover {
    transform: translateY(-5px);
}

.mockup-phone {
    perspective: 1000px;
}

.phone-frame {
    transform: rotateY(-15deg) rotateX(5deg);
    transition: transform 0.5s ease;
}

.mockup-phone:hover .phone-frame {
    transform: rotateY(-5deg) rotateX(2deg);
}

/* Graffiti elements */
.graffiti-element {
    transition: opacity 1s ease, transform 1s ease;
    will-change: opacity, transform;
}

.graffiti-element.active {
    opacity: 0.5;
}