/* Animation des modules */
.module {
    animation: fadeInUp 0.5s forwards;
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Délais d'animation pour chaque module */
.module:nth-child(1) { animation-delay: 0.1s; }
.module:nth-child(2) { animation-delay: 0.2s; }
.module:nth-child(3) { animation-delay: 0.3s; }
.module:nth-child(4) { animation-delay: 0.4s; }
.module:nth-child(5) { animation-delay: 0.5s; }
.module:nth-child(6) { animation-delay: 0.6s; }
.module:nth-child(7) { animation-delay: 0.7s; }
.module:nth-child(8) { animation-delay: 0.8s; }

/* Animation des connecteurs */
.connection-path {
    animation: dash 1s ease-out forwards;
}

@keyframes dash {
    from {
        stroke-dasharray: 1000;
        stroke-dashoffset: 1000;
    }
    to {
        stroke-dashoffset: 0;
    }
}

/* Effet de survol sur les modules */
.module:hover {
    animation: pulse 1.5s infinite;
}

@keyframes pulse {
    0% {
        transform: translateY(-3px);
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    }
    50% {
        transform: translateY(-5px);
        box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
    }
    100% {
        transform: translateY(-3px);
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    }
}

/* Case Items Animation */
.rw-case-item {
    animation: fadeInUp 0.6s forwards;
    opacity: 0;
}

.rw-case-item:nth-child(1) { animation-delay: 0.1s; }
.rw-case-item:nth-child(2) { animation-delay: 0.2s; }
.rw-case-item:nth-child(3) { animation-delay: 0.3s; }
.rw-case-item:nth-child(4) { animation-delay: 0.4s; }
.rw-case-item:nth-child(5) { animation-delay: 0.5s; }
.rw-case-item:nth-child(6) { animation-delay: 0.6s; }