/* iOS Bouncy Animations */

:root {
    --ease-ios-bounce: cubic-bezier(0.175, 0.885, 0.32, 1.15); /* Slightly less extreme bounce for a cleaner look */
    --ease-smooth: cubic-bezier(0.25, 1, 0.5, 1);
}

.hidden-anim {
    opacity: 0;
}

.anim-fade-up {
    opacity: 0;
    transform: translateY(20px);
    animation: fadeUpBouncy 0.8s var(--ease-ios-bounce) forwards;
}

.anim-fade-in {
    opacity: 0;
    animation: fadeIn 0.6s var(--ease-smooth) forwards;
}

.anim-scale-in {
    opacity: 0;
    transform: scale(0.95);
    animation: scaleInBouncy 0.7s var(--ease-ios-bounce) forwards;
}

.anim-slide-left {
    opacity: 0;
    transform: translateX(30px);
    animation: slideLeftBouncy 0.8s var(--ease-ios-bounce) forwards;
}

.anim-slide-right {
    opacity: 0;
    transform: translateX(-30px);
    animation: slideRightBouncy 0.8s var(--ease-ios-bounce) forwards;
}

/* Delays */
.delay-100 { animation-delay: 100ms; }
.delay-200 { animation-delay: 200ms; }
.delay-300 { animation-delay: 300ms; }
.delay-400 { animation-delay: 400ms; }
.delay-500 { animation-delay: 500ms; }

@keyframes fadeUpBouncy {
    0% {
        opacity: 0;
        transform: translateY(20px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeIn {
    0% { opacity: 0; }
    100% { opacity: 1; }
}

@keyframes scaleInBouncy {
    0% {
        opacity: 0;
        transform: scale(0.95);
    }
    100% {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes slideLeftBouncy {
    0% {
        opacity: 0;
        transform: translateX(30px);
    }
    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes slideRightBouncy {
    0% {
        opacity: 0;
        transform: translateX(-30px);
    }
    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

.anim-float {
    animation: floatBouncy 6s ease-in-out infinite;
}

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