/* ===== IDCO — Animations ===== */

@keyframes pulse {
    0%, 100% { opacity: 0.3; }
    50% { opacity: 1; }
}
@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(40px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes fadeInDown {
    from { opacity: 0; transform: translateY(-30px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes scrollLine {
    0% { opacity: 1; transform: scaleY(1); }
    50% { opacity: 0.3; transform: scaleY(0.5); }
    100% { opacity: 1; transform: scaleY(1); }
}
@keyframes typing {
    0%, 60%, 100% { transform: translateY(0); }
    30% { transform: translateY(-6px); }
}

/* Reveal au scroll */
.reveal {
    opacity: 0; transform: translateY(50px);
    transition: opacity 0.9s ease, transform 0.9s ease;
}
.reveal.visible { opacity: 1; transform: translateY(0); }
.reveal-left {
    opacity: 0; transform: translateX(-50px);
    transition: opacity 0.9s ease, transform 0.9s ease;
}
.reveal-left.visible { opacity: 1; transform: translateX(0); }
.reveal-right {
    opacity: 0; transform: translateX(50px);
    transition: opacity 0.9s ease, transform 0.9s ease;
}
.reveal-right.visible { opacity: 1; transform: translateX(0); }
