
        @import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&family=Playfair+Display:wght@400;500;600;700&display=swap');
        
        :root {
            --primary: #1e3a8a;
            --secondary: #3b82f6;
            --accent: #0ea5e9;
            --light: #f0f9ff;
            --dark: #0f172a;
        }
        
        body {
            font-family: 'Montserrat', sans-serif;
            scroll-behavior: smooth;
            color: var(--dark);
             text-align: justify;
        }
        
        h1, h2, h3, h4 {
            font-family: 'Playfair Display', serif;
        }
        
        .project-card {
            transition: transform 0.3s ease, box-shadow 0.3s ease;
        }
        
        .project-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
        }
        
        .project-overlay {
            opacity: 0;
            transition: opacity 0.3s ease;
        }
        
        .project-card:hover .project-overlay {
            opacity: 1;
        }
        
        .fade-in {
            animation: fadeIn 0.5s ease-in-out;
        }
        
        @keyframes fadeIn {
            from { opacity: 0; transform: translateY(20px); }
            to { opacity: 1; transform: translateY(0); }
        }
        
        .scroll-indicator {
            height: 3px;
            background-color: var(--accent);
            position: fixed;
            top: 0;
            left: 0;
            z-index: 1000;
            width: 0%;
        }
        
        .cursor-dot {
            width: 8px;
            height: 8px;
            background-color: var(--accent);
            border-radius: 50%;
            position: fixed;
            pointer-events: none;
            z-index: 9999;
            transform: translate(-50%, -50%);
            transition: transform 0.1s ease;
        }
        
        .cursor-outline {
            width: 40px;
            height: 40px;
            border: 2px solid var(--accent);
            border-radius: 50%;
            position: fixed;
            pointer-events: none;
            z-index: 9998;
            transform: translate(-50%, -50%);
            transition: transform 0.2s ease, width 0.3s ease, height 0.3s ease;
        }
        
        a:hover ~ .cursor-outline,
        button:hover ~ .cursor-outline {
            width: 60px;
            height: 60px;
            border-color: var(--primary);
        }
        
        .video-container {
            position: relative;
            padding-bottom: 56.25%;
            height: 0;
            overflow: hidden;
        }
        
        .video-container iframe,
        .video-container video {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            border-radius: 0.5rem;
        }
        
        .modal {
            display: none;
            position: fixed;
            z-index: 1000;
            left: 0;
            top: 0;
            width: 100%;
            height: 100%;
            overflow: auto;
            background-color: rgba(0, 0, 0, 0.9);
            opacity: 0;
            transition: opacity 0.3s ease;
        }
        
        .modal-content {
            margin: auto;
            display: block;
            max-width: 90%;
            max-height: 90%;
            opacity: 0;
            transform: scale(0.8);
            transition: opacity 0.3s ease, transform 0.3s ease;
        }
        
        .modal.show {
            opacity: 1;
        }
        
        .modal.show .modal-content {
            opacity: 1;
            transform: scale(1);
        }
        
        .close {
            position: absolute;
            top: 20px;
            right: 30px;
            color: #f1f1f1;
            font-size: 40px;
            font-weight: bold;
            transition: 0.3s;
            z-index: 1001;
        }
        
        .close:hover,
        .close:focus {
            color: var(--accent);
            text-decoration: none;
            cursor: pointer;
        }
        
        /* Video Background */
        .video-bg {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            overflow: hidden;
            z-index: -1;
        }
        
        .video-bg::after {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0, 0, 50, 0.7); /* Dark blue overlay for better text readability */
            z-index: 1;
        }
        
        .video-bg video {
            position: absolute;
            min-width: 100%;
            min-height: 100%;
            width: auto;
            height: auto;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            object-fit: cover;
            z-index: 0;
        }
        
        /* Hero Button Hover Effect */
        .hero-btn {
            position: relative;
            overflow: hidden;
            z-index: 1;
            transition: all 0.4s ease;
        }
        
        .hero-btn::before {
            content: '';
            position: absolute;
            top: 0;
            left: -100%;
            width: 100%;
            height: 100%;
            background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
            transition: all 0.6s ease;
            z-index: -1;
        }
        
        .hero-btn:hover::before {
            left: 100%;
        }
        
        .hero-btn:hover {
            transform: translateY(-3px);
            box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
        }
        
        /* Animated Poster */
        .animated-poster {
            position: relative;
            overflow: hidden;
        }
        
        .animated-poster::before {
            content: 'Animée';
            position: absolute;
            top: 10px;
            right: 10px;
            background: var(--accent);
            color: white;
            padding: 5px 10px;
            border-radius: 4px;
            font-size: 12px;
            font-weight: bold;
            z-index: 2;
        }
        
        .animated-poster .poster-animation {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: linear-gradient(45deg, rgba(30, 58, 138, 0.3), rgba(14, 165, 233, 0.3));
            opacity: 0;
            transition: opacity 0.5s ease;
        }
        
        .animated-poster:hover .poster-animation {
            opacity: 1;
            animation: posterGlow 2s infinite alternate;
        }
        
        @keyframes posterGlow {
            0% { background-position: 0% 50%; }
            100% { background-position: 100% 50%; }
        }
    