:root {
    --yellow: #FFDE03; --pink: #FF00E5; --blue: #00D1FF; --green: #00FF66; --black: #000000; --white: #FFFFFF;
}

/* Sécurité anti-débordement horizontal */
html, body {
    max-width: 100%;
    overflow-x: hidden;
}

body.dark-mode { --yellow: #1a1a1a; --white: #000000; --black: #ffffff; }

body.dark-mode .tagline {
    color: #ffffff !important;
    background-color: #000000 !important;
    border-color: #ffffff !important;
}
body.dark-mode .resume-subtitle, 
body.dark-mode .black-box, 
body.dark-mode .black-card { 
    background-color: #ffffff !important; 
}
body.dark-mode .resume-subtitle, 
body.dark-mode .black-box p, 
body.dark-mode .black-card p,
body.dark-mode .black-card strong,
body.dark-mode .info-box p { 
    color: #000000 !important; 
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { background-color: var(--yellow); font-family: 'Outfit', sans-serif; color: var(--black); cursor: none; transition: background-color 0.5s; }

/* Curseur */
.cursor-dot, .cursor-outline { pointer-events: none; position: fixed; top: 0; left: 0; border-radius: 50%; z-index: 9999; transform: translate(-50%, -50%); }
.cursor-dot { width: 8px; height: 8px; background-color: var(--black); }
.cursor-outline { width: 30px; height: 30px; border: 2px solid var(--black); transition: 0.2s; }
.cursor-active .cursor-outline { width: 60px; height: 60px; background-color: rgba(255, 0, 229, 0.1); border-color: var(--pink); }

.theme-btn { position: fixed; top: 120px; right: 20px; z-index: 1000; background: var(--black); color: var(--yellow); border: 3px solid var(--black); border-radius: 50%; width: 50px; height: 50px; font-size: 1.5rem; cursor: none; box-shadow: 5px 5px 0px var(--pink); transition: 0.3s; }

.reveal { opacity: 0; transform: translateY(50px); transition: all 0.8s ease-out; }
.reveal.active { opacity: 1; transform: translateY(0); }

/* --- NAVBAR FIXÉE --- */
.navbar { 
    display: flex; 
    justify-content: space-between; 
    align-items: center; 
    padding: 1rem 5%; 
    background: var(--white); 
    border-bottom: 5px solid var(--black); 
    position: fixed; 
    top: 0; 
    left: 0;
    width: 100%;
    z-index: 999; 
}

.logo { font-family: 'Archivo Black'; font-size: 2rem; }
.logo span { color: var(--pink); }
nav ul { display: flex; list-style: none; gap: 15px; }
nav ul li a { text-decoration: none; color: var(--black); font-weight: 900; text-transform: uppercase; padding: 8px 12px; cursor: none; }
nav ul li a:hover { background: var(--black); color: var(--yellow); transform: rotate(-5deg); }

.hero { 
    height: 100vh; 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    position: relative; 
    overflow: hidden; 
    background: var(--yellow); 
    padding-top: 80px; 
}

.firstname, .lastname { font-family: 'Archivo Black'; font-size: clamp(3rem, 10vw, 8rem); line-height: 0.8; -webkit-text-stroke: 2px var(--black); }
.firstname { color: var(--white); transform: rotate(-2deg); }
.lastname { color: var(--pink); transform: rotate(2deg); }
.tagline { background: var(--white); padding: 10px; border: 3px solid var(--black); font-weight: 900; margin-top: 20px; display: inline-block; box-shadow: 5px 5px 0px var(--black); color: black; transition: 0.3s; }

.shape { position: absolute; border: 5px solid var(--black); z-index: 5; transition: transform 0.1s ease-out; }
.circle { width: 100px; height: 100px; border-radius: 50%; background: var(--pink); top: 15%; left: 15%; }
.square { width: 90px; height: 90px; background: var(--green); bottom: 15%; right: 15%; }
.shape-triangle { width: 0; height: 0; border-left: 60px solid transparent; border-right: 60px solid transparent; border-bottom: 110px solid var(--blue); position: absolute; top: 30%; left: 8%; filter: drop-shadow(5px 5px 0 var(--black)); }

/* --- BOUTON PLAY & HOVER --- */
.play-btn { 
    background: var(--green); border: 4px solid var(--black); padding: 20px 55px; font-weight: 900; font-size: 1.8rem; box-shadow: 10px 10px 0px var(--black); cursor: none; display: inline-flex; transition: 0.3s; text-decoration: none; color: black;
    animation: pulse 2s infinite; 
}
.play-btn:hover { 
    background: var(--pink); 
    color: white; 
    transform: scale(1.1); 
    box-shadow: 15px 15px 0px var(--black);
}

@keyframes pulse {
    0% { transform: scale(1); }
    50% { transform: scale(1.05); }
    100% { transform: scale(1); }
}

/* --- STICKERS --- */
.sticker { position: absolute; font-size: 4rem; z-index: 5; animation: float 4s ease-in-out infinite; pointer-events: none; }
.sticker-1 { top: 20%; right: 15%; animation-delay: 0s; }
.sticker-2 { bottom: 25%; left: 10%; animation-delay: 1s; font-size: 3rem; }
.sticker-3 { top: 35%; left: 20%; animation-delay: 2s; font-size: 3.5rem; }

@keyframes float {
    0% { transform: translateY(0) rotate(0); }
    50% { transform: translateY(-20px) rotate(10deg); }
    100% { transform: translateY(0) rotate(0); }
}

/* --- MARQUEE --- */
.marquee {
    position: absolute; bottom: 0; left: 0; width: 100%; background: var(--black); color: var(--white);
    padding: 10px 0; overflow: hidden; white-space: nowrap; z-index: 15;
}
.marquee-content {
    display: inline-block; font-weight: 900; font-size: 1.2rem; text-transform: uppercase;
    animation: marquee 30s linear infinite;
}
@keyframes marquee {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}

/* --- SECTIONS & LIGHTBOX --- */
.section-title { font-family: 'Archivo Black'; font-size: 2.5rem; text-align: center; margin: 0 auto 50px auto; background: var(--pink); color: white !important; display: table; padding: 10px 35px; border: 5px solid var(--black); box-shadow: 10px 10px 0px var(--black); transform: rotate(-3deg); }

.about-section { background: var(--white); padding: 100px 5%; border-top: 5px solid var(--black); }
.about-grid { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: 40px; align-items: center; }
.about-card { border: 5px solid var(--black); padding: 40px; background: var(--green); box-shadow: 15px 15px 0px var(--black); font-size: 1.3rem; font-weight: 900; transform: rotate(-1deg); color: black; }
.bar { height: 25px; border: 4px solid var(--black); margin-bottom: 15px; box-shadow: 5px 5px 0px var(--black); }
.pink-bar { background: var(--pink); width: 100%; } .blue-bar { background: var(--blue); width: 85%; } .green-bar { background: var(--yellow); width: 65%; }

.resume-section { background: var(--blue); padding: 100px 5%; border-top: 5px solid var(--black); border-bottom: 5px solid var(--black); }
.resume-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.resume-subtitle { font-family: 'Archivo Black'; font-size: 1.5rem; background: var(--black); color: white; padding: 5px 15px; display: inline-block; margin: 20px 0 10px 0; }
.cv-card { background: white; border: 4px solid var(--black); padding: 25px; box-shadow: 10px 10px 0px var(--black); margin-bottom: 20px; font-weight: 900; color: black; }
.yellow-card { background: #FFDE03; } .pink-card { background: #FF00E5; } .green-card { background: #00FF66; } .black-card { background: #000; color: white; } .black-card hr { border-color: white; }

.gallery-section { background: var(--yellow); padding: 80px 0; overflow: hidden; border-top: 5px solid var(--black); }
.slider-wrapper { display: flex; align-items: center; justify-content: center; gap: 40px; width: 100%; padding: 0 5%; }
.slider-container { width: 100%; max-width: 950px; height: 680px; overflow: hidden; } 
.slider-track { display: flex; transition: transform 0.6s cubic-bezier(0.165, 0.84, 0.44, 1); height: 100%; }
.slide { min-width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; }
.photo-frame { background: white; padding: 20px 20px 55px 20px; border: 6px solid var(--black); box-shadow: 12px 12px 0px var(--black); width: 92%; height: 92%; display: flex; flex-direction: column; align-items: center; justify-content: center; color: black; }
.photo-frame img { max-width: 100%; max-height: 84%; object-fit: contain; border: 4px solid var(--black); cursor: none; }
.caption p { font-family: 'Archivo Black'; font-size: 1.3rem; text-transform: uppercase; margin-top: 12px; }
.slider-arrow { background: var(--pink); border: 5px solid var(--black); color: white; padding: 15px 22px; font-size: 2.1rem; cursor: none; box-shadow: 7px 7px 0px var(--black); transition: 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275); }

.design-section { background-color: var(--yellow); padding: 80px 5%; border-top: 5px solid var(--black); }
.design-subtitle { font-family: 'Archivo Black'; font-size: 1.8rem; margin: 40px 0 25px 0; background: white; padding: 5px 20px; border: 3px solid var(--black); box-shadow: 5px 5px 0px var(--black); display: inline-block; transform: rotate(2deg); color: black; }
.design-grid { display: grid; gap: 30px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.design-card { background: white; border: 5px solid var(--black); padding: 15px; box-shadow: 10px 10px 0px var(--black); transition: 0.3s; color: black; }
.design-card img { width: 100%; height: 250px; object-fit: cover; border: 3px solid var(--black); }

.lightbox { 
    display: none; position: fixed; z-index: 2000; left: 0; top: 0; width: 100%; height: 100%; 
    background: rgba(0,0,0,0.9); align-items: center; justify-content: center; cursor: auto;
}
.lightbox-container {
    display: flex; width: 90%; max-width: 1100px; height: 80vh; background: var(--white); 
    border: 5px solid var(--black); box-shadow: 15px 15px 0px var(--pink); overflow: hidden;
}
.lightbox-image-side { flex: 1.5; background: #111; display: flex; align-items: center; justify-content: center; padding: 20px; }
.lightbox-content { max-width: 100%; max-height: 100%; object-fit: contain; border: none; }
.lightbox-info-side { flex: 1; padding: 40px; background: var(--white); display: flex; flex-direction: column; justify-content: center; color: var(--black); }
#lightbox-title { font-family: 'Archivo Black'; text-transform: uppercase; font-size: 1.8rem; margin-bottom: 10px; }
.lightbox-bar { width: 50px; height: 6px; background: var(--pink); margin-bottom: 20px; border: 2px solid var(--black); }
#lightbox-description { font-family: 'Outfit'; font-size: 1.1rem; line-height: 1.5; font-weight: 500; }
.lightbox-close { position: absolute; top: 20px; right: 30px; color: white; font-size: 50px; cursor: pointer; z-index: 2001; }

.contact-section { background: #f3f3f3; padding: 80px 5%; border-top: 5px solid var(--black); }
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.info-box { border: 4px solid var(--black); padding: 20px; font-weight: 900; margin-bottom: 20px; box-shadow: 8px 8px 0px var(--black); background: white; color: black; }
.pink-box { background: var(--pink); color: white !important; } .blue-box { background: var(--blue); } .green-box { background: var(--green); } .black-box { background: var(--black); color: white !important; }
.pop-form { border: 5px solid var(--black); padding: 40px; background: var(--white); box-shadow: 15px 15px 0px var(--black); }
.big-input, textarea { border: 4px solid var(--black); padding: 20px; width: 100%; font-family: 'Outfit'; font-weight: 900; margin-bottom: 20px; outline: none; }

.footer { background: #000; color: white; text-align: center; padding: 40px; font-weight: 900; border-top: 5px solid var(--black); }

@media (max-width: 768px) {
    .navbar { flex-direction: column; padding: 1rem; position: relative; }
    .lightbox-container { flex-direction: column; height: 90vh; }
    .lightbox-image-side { flex: 1; }
    .lightbox-info-side { flex: 0.6; padding: 20px; }
    .cursor-dot, .cursor-outline { display: none; } 
    .sticker { display: none; }
    body { cursor: auto; }
}