* {
    margin: 0; padding: 0; box-sizing: border-box;
    font-family: 'Plus Jakarta Sans', sans-serif;
}

html { scroll-behavior: smooth; }

body {
    background-color: var(--bg-main);
    color: var(--primary-color);
    overflow-x: hidden;
    line-height: 1.6;
    transition: background-color 0.3s, color 0.3s;
    position: relative;
}

/* LE VRAI FOND MARBRÉ GRIS/NOIR (SANS CASSER LA GRILLE) */
body::before {
    content: "";
    position: fixed;
    inset: 0;
    /* Texture de vrai marbre noir et gris */
    background-image: url('https://images.unsplash.com/photo-1606836591695-4d58a73eba1e?q=80&w=2000&auto=format&fit=crop');
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    opacity: 0.35;
    z-index: -3; /* Reste tout au fond, ne touche à aucune marge */
    pointer-events: none;
}

/* Voile d'assombrissement pour garder le texte lisible par dessus le marbre */
body::after {
    content: "";
    position: fixed;
    inset: 0;
    background: linear-gradient(to bottom, rgba(15, 15, 20, 0.4), rgba(15, 15, 20, 0.95));
    z-index: -2;
    pointer-events: none;
}

.ambient-background {
    position: fixed; top: 0; left: 0;
    width: 100vw; height: 100vh; overflow: hidden;
    z-index: -1; pointer-events: none;
}

.orb {
    position: absolute; border-radius: 50%;
    filter: blur(80px); opacity: 0.5;
    animation: float 20s infinite ease-in-out alternate;
}

.orb-1 { width: 400px; height: 400px; top: -10%; left: -10%; background: rgba(16, 185, 129, 0.3); }
.orb-2 { width: 500px; height: 500px; bottom: -20%; right: -10%; background: rgba(59, 130, 246, 0.3); animation-delay: -5s; }
.orb-3 { width: 300px; height: 300px; top: 40%; left: 50%; background: rgba(168, 85, 247, 0.2); animation-delay: -10s; }

@keyframes float {
    0% { transform: translate(0, 0) scale(1); }
    33% { transform: translate(30px, -50px) scale(1.1); }
    66% { transform: translate(-20px, 20px) scale(0.9); }
    100% { transform: translate(0, 0) scale(1); }
}

::selection { background: var(--accent-color); color: #fff; }
::-moz-selection { background: var(--accent-color); color: #fff; }