/* Fichier : style.css */

:root {
    --primary: #0ea5e9; /* Cyan / Blue accent */
    --bg-dark: #0f172a;
    --card-dark: #1e293b;
}
body {
    font-family: 'Poppins', sans-serif;
    background-color: var(--bg-dark);
    color: #f8fafc;
    overflow-x: hidden;
}
html[dir="rtl"] body {
    font-family: 'Cairo', sans-serif;
}
.glass-panel {
    background: rgba(30, 41, 59, 0.7);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

/* Highlight Keywords */
.keyword-highlight {
    color: #22d3ee;
    font-weight: 700;
    text-shadow: 0 0 12px rgba(34, 211, 238, 0.4);
    transition: all 0.3s ease;
}
.keyword-highlight:hover {
    text-shadow: 0 0 20px rgba(34, 211, 238, 0.8);
}

/* Animations on Scroll */
.reveal {
    opacity: 0;
    transform: translateY(40px);
    transition: all 0.8s cubic-bezier(0.5, 0, 0, 1);
}
.reveal.active {
    opacity: 1;
    transform: translateY(0);
}

/* Floating Animation */
@keyframes float {
    0% { transform: translateY(0px); }
    50% { transform: translateY(-10px); }
    100% { transform: translateY(0px); }
}
.animate-float {
    animation: float 4s ease-in-out infinite;
}
.animate-float-delayed {
    animation: float 4s ease-in-out 2s infinite;
}

/* Infinite Marquee */
@keyframes marquee {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}
html[dir="rtl"] @keyframes marquee {
    0% { transform: translateX(-50%); }
    100% { transform: translateX(0); }
}
.marquee-wrapper {
    overflow: hidden;
    display: flex;
    white-space: nowrap;
}
.marquee-content {
    display: flex;
    animation: marquee 25s linear infinite;
    width: 200%;
}
.marquee-item {
    flex: 0 0 auto;
    padding: 0 2rem;
    font-size: 1.25rem;
    font-weight: 600;
    color: #94a3b8;
    transition: color 0.3s ease;
}
.marquee-item:hover {
    color: #22d3ee;
}
/* --- Widget Flottant "Prêt à collaborer" Animé --- */

.collab-floating-widget {
    display: none;
}

@media (min-width: 1024px) {
    /* 1. Animation d'entrée : Glissement depuis la droite */
    @keyframes slideInWidget {
        0% { transform: translate(150%, -50%); opacity: 0; }
        100% { transform: translate(0, -50%); opacity: 1; }
    }

    /* 2. Animation continue : Pulsation lumineuse "Néon" */
    @keyframes neonPulse {
        0% { box-shadow: 0 15px 40px rgba(0, 0, 0, 0.6), 0 0 0 0 rgba(14, 165, 233, 0.4); }
        70% { box-shadow: 0 15px 40px rgba(0, 0, 0, 0.6), 0 0 0 15px rgba(14, 165, 233, 0); }
        100% { box-shadow: 0 15px 40px rgba(0, 0, 0, 0.6), 0 0 0 0 rgba(14, 165, 233, 0); }
    }

    .collab-floating-widget {
        display: block;
        position: fixed;
        top: 50%;
        right: 30px;
        transform: translateY(-50%);
        z-index: 9999;
        /* Déclenche l'animation d'entrée avec un effet rebond subtil (cubic-bezier) */
        animation: slideInWidget 1s cubic-bezier(0.16, 1, 0.3, 1) forwards;
    }

    .widget-content {
        padding: 25px;
        border-radius: 20px;
        border: 1px solid rgba(34, 211, 238, 0.4);
        background: rgba(15, 23, 42, 0.85);
        backdrop-filter: blur(12px);
        /* Déclenche la pulsation continue */
        animation: neonPulse 2.5s infinite;
        transition: all 0.4s ease; /* Prépare la transition fluide pour le survol */
    }

    /* 3. Effet au survol (Hover) de la boîte globale */
    .widget-content:hover {
        transform: scale(1.03) translateX(-10px); /* Grossit de 3% et se décale à gauche */
        border-color: rgba(34, 211, 238, 0.8);
        background: rgba(15, 23, 42, 0.95);
        animation: none; /* Stoppe la pulsation pour un style fixe au survol */
        box-shadow: 0 20px 50px rgba(0, 0, 0, 0.8), 0 0 20px rgba(14, 165, 233, 0.5);
    }
    
    /* Animation des icônes à l'intérieur des boutons quand on les survole */
    .widget-content a i {
        transition: transform 0.3s ease;
    }
    .widget-content a:hover i {
        transform: scale(1.2) rotate(-10deg); /* L'icône grossit et penche légèrement */
    }
}
/* --- Transition Diaporama "À propos" --- */

#about-slideshow {
    /* Assure que l'image est bien centrée et recouverte */
    object-position: center center;
    object-fit: cover;
    /* Prépare l'animation douce pour l'opacité ET la transformation (zoom) */
    transition: opacity 500ms ease-in-out, transform 500ms ease-in-out;
}

/* Ces classes seront ajoutées par JavaScript pour créer l'effet de zoom et de fondu */
#about-slideshow.fade-out {
    opacity: 0;
    transform: scale(1.05); /* Zoom léger de 5% pendant le fondu */
}

#about-slideshow.fade-in {
    opacity: 1;
    transform: scale(1); /* Revient à la taille normale */
}