/* --- CSS PERSONNALISÉ (Dark Mode Tech) --- */
        :root {
            --accent-color: #00f2ea; /* Cyberpunk Cyan */
            --danger-color: #ff4b4b; /* Alert Red */
            --warning-color: #f7b731;
            --text-main: #e0e6ed;
            --bg-dark: #1a1a1a;
            --tc-heading-sub-title-margin-top: 50px;
        }
        /*
        body { background-color: var(--bg-dark); }
        .reveal { font-family: 'Inter', 'Segoe UI', sans-serif; color: var(--text-main); }
        */
        /* Titres */
        /*
        .reveal h1 { color: var(--accent-color); font-size: 2.5em; text-shadow: 0 0 20px rgba(0, 242, 234, 0.3); text-transform: none; line-height: 1.2; }
        .reveal h2 { color: white; border-bottom: 2px solid var(--accent-color); display: inline-block; padding-bottom: 10px; text-transform: none; }
        .reveal h3 { color: #a0aec0; text-transform: none; font-weight: 300; margin-top: 50px;}
        .reveal ul { font-size: 0.9em; line-height: 1.6; }
        .reveal strong { color: var(--accent-color); }
        */
        .text-danger { color: var(--danger-color) !important; }
        .text-warning { color: var(--warning-color) !important; }
        .text-muted { color: #64748b !important; }
        
        /* Composants Visuels (Cartes) */
        .card-container { display: flex; gap: 20px; justify-content: center; flex-wrap: wrap; margin-top: 30px; }
        .card { 
            background: var(--card-bg); padding: 20px; border-radius: 10px; width: 300px; 
            box-shadow: 0 4px 6px rgba(0,0,0,0.05); border: 1px solid var(--card-border);
            text-align: center;
        }
        
        /* Timeline pour l'acte 0 */
        .timeline-step { border-left: 3px solid var(--accent-color); padding-left: 20px; margin-bottom: 30px; text-align: left; }
        .timeline-step h4 { margin: 0; color: var(--text-main); font-weight: bold; }
        
        /* Composant "Headlines" (Intro) */
        .headline-box {
            background: white; color: black; padding: 15px; font-family: serif; 
            transform: rotate(-2deg); margin: 15px auto; width: 80%;
            font-weight: bold; font-size: 0.9em; 
            box-shadow: 0 4px 15px rgba(0,0,0,0.1); /* Ombre plus douce */
            border: 1px solid #e2e8f0;
        }
        
        /* Composant Entonnoir (Funnel) */
        .funnel-container { display: flex; flex-direction: column; align-items: center; margin-top: 20px; }
        .funnel-top { width: 80%; padding: 15px; background: linear-gradient(90deg, #3b82f6, #60a5fa); color: white; font-weight: bold; border-radius: 5px 5px 0 0; }
        .funnel-bottom { width: 30%; padding: 15px; background: #ef4444; color: white; font-weight: bold; border-radius: 0 0 5px 5px; margin-top: 10px; }

        /* Gros Chiffres */
        .big-stat { font-size: 3em !important; font-weight: 800; color: var(--warning-color); display: block; line-height: 1; }
        
        /* Slide de séparation d'Acte (garder sombre pour le contraste) */
        .transition h1 { color: white; border-color: #60a5fa; font-size: 3.5em; }
        .transition h3, .transition p{ color: #cbd5e1; }
/* --- NEW: Horizontal Timeline Styles --- */
        .h-timeline {
            display: flex;
            justify-content: space-between;
            position: relative;
            margin-top: 60px;
            padding: 0 20px;
        }
        /* La ligne grise derrière */
        .h-timeline::before {
            content: '';
            position: absolute;
            top: 25px; /* Ajuster selon la taille du marqueur */
            left: 50px;
            right: 50px;
            height: 4px;
            background: #e2e8f0;
            z-index: 0;
        }
        .h-timeline-item {
            position: relative;
            z-index: 1;
            width: 30%;
            text-align: center;
        }
        .h-marker {
            width: 100px;
            height: 100px;
            background: white;
            border: 5px solid var(--accent-color);
            border-radius: 50%;
            margin: 0 auto 20px auto;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.2em;
            color: var(--accent-color);
            transition: all 0.3s ease;
        }
        .h-content {
            background: white;
            border: 1px solid var(--card-border);
            border-radius: 8px;
            padding: 15px;
            box-shadow: 0 4px 6px rgba(0,0,0,0.05);
        }
        .h-year {
            font-size: 0.9em;
            color: #64748b;
            font-weight: bold;
            margin-bottom: 5px;
            display: block;
        }
        .h-title {
            font-weight: 800;
            color: var(--text-main);
            margin-bottom: 5px;
            display: block;
        }
        /* Style spécial pour la dernière étape (Agent) */
        .h-timeline-item:last-child .h-marker {
            background: var(--accent-color);
            color: white;
            box-shadow: 0 0 0 5px rgba(37, 99, 235, 0.2);
        }
        .h-timeline-item:last-child .h-content {
            border: 2px solid var(--accent-color);
            background: #eff6ff;
        }
