/* ==================== 1. BLOQUER LA PAGE PRINCIPALE ==================== */
/* On interdit au navigateur de scroller lui-même */
html, body {
    margin: 0;
    padding: 0;
    height: 100%; /* Important : prend toute la hauteur */
    width: 100%;
    overflow: hidden; /* COUPE LE SCROLL NATIF */
    background-color: transparent !important;
}

/* 1. On applique le dégradé au body à la place du canvas */
body {
    /* On remplace le transparent par ton dégradé */
    background: radial-gradient(circle at center, #0a1226 0%, #02040a 100%) !important;
    /* Le reste ne change pas */
    min-height: 100vh;
    font-family: var(--font-body);
    color: var(--white);
    overflow-x: hidden;
}

/* ==================== 2. LE CONTENEUR MAGIQUE (.scroller) ==================== */
.scroller {
    height: 100vh;
    width: 100%;
    /* CORRECTION : On remet 'auto' pour que le système de scroll fonctionne */
    overflow-y: auto;
    /* On cache la barre de scroll visuellement (Chrome, Safari, Opera) */
    scrollbar-width: none; /* Firefox */
    -ms-overflow-style: none; /* IE/Edge */
}

.scroller::-webkit-scrollbar {
    display: none;
}

/* ==================== 3. LES SECTIONS ==================== */
section, .hero {
    height: 100vh;
    width: 100%;
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 0 3rem;
    box-sizing: border-box;
    /* IMPORTANT : Pas de scroll-snap CSS ici, c'est le JS qui gère */
}

/* ==================== 4. LE FOOTER ==================== */
footer {
    /* Le footer s'accroche en bas */
    scroll-snap-align: end;
    position: relative;
    z-index: 1;
    border-top: 1px solid var(--dark-gray);
    padding: 3rem;
    background: #000;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

/* ==================== RESTE DU DESIGN (HERO, TEXTES...) ==================== */
/* (Je remets tes styles ici pour ne rien casser) */

/* 2. Le canvas devient purement un conteneur d'acteurs (transparent) */
#bg-canvas {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    /* On enlève le background ici */
    background: transparent;
    pointer-events: none; /* Optionnel : permet de cliquer au travers si besoin */
}

.hero {
    /* 1. Mise en page (centrage du texte) */
    align-items: center;
    text-align: center;
    /* 2. LE FOND */
    /* Important : transparent pour que le canvas (axolotls) reste visible derrière */
    background-color: transparent;
    /* Ton image PNG qui se mettra "entre" le canvas et le texte */
    background-image: url('../images/hero-background.png');
    /* 3. RÉGLAGES DE L'IMAGE */
    /* 'cover' remplit tout l'écran, 'contain' affiche l'image entière sans couper */
    background-size: 15%;
    background-repeat: no-repeat;
    background-position: center;
    
}

.hero-title {
    font-family: var(--font-display);
    font-size: clamp(2rem, 8vw, 4rem);
    font-weight: 300;
    letter-spacing: 0.4em;
    text-transform: uppercase;
    margin-bottom: 1.5rem;
    line-height: 1.1;
}

.hero-subtitle {
    font-family: var(--font-ui);
    font-size: clamp(0.875rem, 2vw, 1rem);
    letter-spacing: 0.5em;
    text-transform: uppercase;
    color: var(--gray);
    margin-bottom: 3rem;
}

.scroll-indicator {
    position: absolute; bottom: 3rem; left: 50%;
    transform: translateX(-50%); display: flex; flex-direction: column;
    align-items: center; gap: 0.75rem; opacity: 0.5;
    animation: float 2s ease-in-out infinite;
}
.scroll-indicator span {
    font-family: Georgia, serif; font-size: 0.75rem;
    letter-spacing: 0.2em; text-transform: uppercase;
}
.scroll-indicator::after {
    content: ''; width: 1px; height: 40px;
    background: linear-gradient(to bottom, var(--white), transparent);
}

@keyframes float {
    0%, 100% { transform: translateX(-50%) translateY(0); }
    50% { transform: translateX(-50%) translateY(10px); }
}

.section-title, h3 {
    font-family: var(--font-second-display);
    font-size: clamp(1.5rem, 4vw, 2.5rem);
    font-weight: 300;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    margin-bottom: 3rem;
    text-align: center;
}

.section-content {
    font-size: 1rem; line-height: 2; color: var(--gray);
    max-width: 700px; margin: 0 auto; text-align: center;
}

.section-content, .game-card p {
    font-family: var(--font-body); /* Inter : Ultra propre */
    font-weight: 300; /* Version Light d'Inter, très élégant */
    line-height: 1.8;
}

.games-grid {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem; width: 100%; max-width: 1200px; margin: 0 auto;
}

.game-card {
    display: block;
    border: 1px solid var(--dark-gray); padding: 3rem 2rem;
    text-align: center; transition: all 0.3s ease;
    background: rgba(0,0,0,0.3);
    text-decoration: none;
    color: inherit;
    cursor: pointer;
}
.game-card:hover { border-color: var(--gray); transform: translateY(-5px); }

.game-card h3 {
    font-size: clamp(.75rem, 2vw, 1.25rem);
    letter-spacing: 0.2em; text-transform: uppercase; margin-bottom: 1rem;
}
.game-card p {
    color: var(--gray); line-height: 1.8;
}

.coming-soon {
    display: inline-block; margin-top: 1.5rem;
    font-family: Georgia, serif; font-size: 0.75rem;
    letter-spacing: 0.2em; text-transform: uppercase;
    color: var(--gray); border: 1px solid var(--dark-gray);
    padding: 0.5rem 1rem;
}

/* Responsive */
@media (max-width: 768px) {
    .scroller { scroll-snap-type: y proximity; } /* Moins violent sur mobile */
    section, .hero { height: auto; min-height: 100vh; padding: 6rem 1.5rem; }
    .hero-title { letter-spacing: 0.2em; }
    .games-grid { grid-template-columns: 1fr; }
}

/* ==================== ANIMATIONS D'APPARITION ==================== */
.reveal {
    opacity: 0 !important; /* Invisible au départ */
    /* Une courbe de bézier "ease-out" très douce pour l'effet "délicat" */
    transition: all 1.5s cubic-bezier(0.23, 1, 0.32, 1);
    will-change: opacity, transform;
}

    /* 2. L'état final : Visible et Centré */
    /* IMPORTANT : On force le reset du transform pour qu'il revienne au centre */
    .reveal.visible {
        opacity: 1 !important;
        transform: translate(0, 0) !important;
    }

/* --- Les positions de départ --- */

/* Vient de la GAUCHE (décalé vers la gauche) */
.reveal-from-left {
    transform: translateX(-250px); /* Tu peux ajuster cette valeur (ex: -150px pour plus de mouvement) */
}

/* Vient de la DROITE (décalé vers la droite) */
.reveal-from-right {
    transform: translateX(250px);
}

/* Optionnel : Si tu veux que le footer vienne toujours du bas pour changer */
footer .reveal {
    transform: translateY(50px);
}