/* ============================================================================
   index-promo.css — Mise en avant du projet INDEX sur Many Games
   Tout est préfixé .idx-* : aucune collision avec le CSS existant du site.
   Police auto-hébergée (CSP font-src 'self'). Chargé APRÈS style.css.
   ============================================================================ */

@font-face { font-family: 'Bebas Neue';    src: url('../fonts/BebasNeue-Regular.ttf') format('truetype'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Space Grotesk';  src: url('../fonts/SpaceGrotesk-400.ttf')  format('truetype'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Space Grotesk';  src: url('../fonts/SpaceGrotesk-600.ttf')  format('truetype'); font-weight: 600; font-display: swap; }
@font-face { font-family: 'JetBrains Mono'; src: url('../fonts/JetBrainsMono-500.ttf') format('truetype'); font-weight: 500; font-display: swap; }
@font-face { font-family: 'JetBrains Mono'; src: url('../fonts/JetBrainsMono-700.ttf') format('truetype'); font-weight: 700; font-display: swap; }

:root {
    --idx-bg: #090909;
    --idx-gold: #c9a96e;
    --idx-gold-rgb: 201, 169, 110;
    --idx-text: #f0eff0;
    --idx-muted: #b5b5b5;
    --idx-border: rgba(255, 255, 255, 0.09);
    --idx-ease: cubic-bezier(0.16, 1, 0.3, 1);
    --idx-font-display: 'Bebas Neue', 'Arial Narrow', sans-serif;
    --idx-font-body: 'Space Grotesk', system-ui, -apple-system, sans-serif;
    --idx-font-mono: 'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;
}

/* box-sizing scopé (ne touche pas le reste du site) */
.idx-takeover, .idx-takeover *, .idx-bar, .idx-bar * { box-sizing: border-box; }

/* ============================================================
   1. SECTION TAKEOVER INDEX
   ============================================================ */
.idx-takeover {
    position: relative;
    min-height: 64vh;
    display: flex;
    align-items: flex-start;   /* contenu ancré en haut → plus de vide au-dessus */
    justify-content: center;
    padding: 56px 32px 56px;
    /* Fond opaque qui se fond vers le transparent en bas → la transition
       avec la hero Many Games (image de fond fixe du body) devient fluide,
       plus de coupure nette. Seul le fond fond ; le contenu reste opaque. */
    background: linear-gradient(180deg,
        var(--idx-bg) 0%,
        var(--idx-bg) calc(100% - 180px),
        rgba(9, 9, 9, 0) 100%);
    color: var(--idx-text);
    overflow: hidden;
    isolation: isolate;
    /* Le site MG utilise scroll-snap-type: y mandatory (desktop) avec
       scroll-snap-align sur une liste de classes. On déclare cette section
       comme point de snap valide, sinon le navigateur snappe vers #hero. */
    scroll-snap-align: start;
    scroll-snap-stop: always;
}

/* Fonds d'ambiance (sobres) */
.idx-grid {
    position: absolute; inset: 0; z-index: -3;
    background-image:
        linear-gradient(rgba(var(--idx-gold-rgb), 0.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(var(--idx-gold-rgb), 0.04) 1px, transparent 1px);
    background-size: 64px 64px;
    -webkit-mask: radial-gradient(ellipse 80% 70% at 60% 45%, #000 0%, transparent 80%);
    mask: radial-gradient(ellipse 80% 70% at 60% 45%, #000 0%, transparent 80%);
}
.idx-glow {
    position: absolute; inset: 0; z-index: -3; pointer-events: none;
    background: radial-gradient(ellipse 50% 45% at 68% 42%, rgba(var(--idx-gold-rgb), 0.09), transparent 70%);
}
.idx-grain {
    position: absolute; inset: 0; z-index: -2; opacity: 0.025; pointer-events: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* Disposition éditoriale : texte | logo-grille */
.idx-inner {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: clamp(36px, 6vw, 84px);
    max-width: 1120px;
    width: 100%;
}

/* --- Colonne texte --- */
.idx-copy { max-width: 480px; }
.idx-kicker {
    display: inline-flex; align-items: center; gap: 11px;
    font-family: var(--idx-font-mono); font-weight: 500;
    font-size: 0.72rem; letter-spacing: 0.32em; text-transform: uppercase; color: var(--idx-gold);
}
.idx-kicker::before { content: ""; width: 28px; height: 1px; background: var(--idx-gold); opacity: 0.75; }
.idx-title {
    font-family: var(--idx-font-display);
    font-size: clamp(5.5rem, 13vw, 9.5rem);
    line-height: 0.84; letter-spacing: 0.04em; color: #fff;
    margin: 16px 0 8px; text-shadow: 0 0 70px rgba(var(--idx-gold-rgb), 0.2);
}
.idx-sub {
    font-family: var(--idx-font-mono); font-size: 0.8rem;
    letter-spacing: 0.3em; text-transform: uppercase; color: var(--idx-muted);
}
.idx-desc { font-family: var(--idx-font-body); font-weight: 400; font-size: 1.08rem; line-height: 1.6; color: #d7d7d7; margin: 22px 0 8px; }
.idx-desc strong { font-weight: 600; color: #fff; }
.idx-meta {
    font-family: var(--idx-font-mono); font-size: 0.8rem;
    letter-spacing: 0.13em; color: var(--idx-gold); margin-bottom: 28px;
}

.idx-actions { display: flex; gap: 14px; flex-wrap: wrap; }
.idx-btn {
    display: inline-flex; align-items: center; gap: 10px;
    padding: 15px 26px; border-radius: 2px;
    font-family: var(--idx-font-mono); font-weight: 700;
    font-size: 0.8rem; letter-spacing: 0.12em; text-transform: uppercase;
    text-decoration: none; cursor: pointer;
    transition: transform 0.3s var(--idx-ease), box-shadow 0.3s var(--idx-ease), border-color 0.3s var(--idx-ease);
}
.idx-btn-primary { background: var(--idx-gold); color: #0a0a0a; border: 1px solid var(--idx-gold); }
.idx-btn-primary:hover { transform: translateY(-3px); box-shadow: 0 12px 34px rgba(var(--idx-gold-rgb), 0.35); }
.idx-btn-primary .arrow { transition: transform 0.3s var(--idx-ease); }
.idx-btn-primary:hover .arrow { transform: translateX(5px); }
.idx-btn-ghost { background: rgba(255, 255, 255, 0.03); color: #fff; border: 1px solid var(--idx-border); }
.idx-btn-ghost:hover { transform: translateY(-3px); border-color: rgba(var(--idx-gold-rgb), 0.5); }
.idx-btn svg { width: 18px; height: 18px; }

/* --- Logo-grille : 4 carrés = 4 jeux --- */
.idx-mark {
    position: relative;
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr 1fr;
    gap: 12px;
    width: clamp(280px, 38vw, 440px);
    aspect-ratio: 1;
}
.idx-mark::before {
    content: ""; position: absolute; inset: -34px; z-index: -1;
    background: radial-gradient(circle, rgba(var(--idx-gold-rgb), 0.2), transparent 68%);
    filter: blur(24px);
}
.idx-cell {
    position: relative; overflow: hidden; border-radius: 10px;
    border: 1px solid rgba(255, 255, 255, 0.08); background: #0d0d0d;
}
.idx-cell img {
    width: 100%; height: 100%; object-fit: cover; display: block;
    transition: transform 0.7s var(--idx-ease), filter 0.5s ease;
}
.idx-cell::after {
    content: ""; position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.82) 0%, rgba(0, 0, 0, 0.1) 48%, transparent 70%);
}
.idx-cell.soon img { filter: grayscale(0.4) brightness(0.4); }
.idx-cell:hover img { transform: scale(1.06); }
.idx-cell.soon:hover img { filter: grayscale(0) brightness(0.62); }

/* Statut + nom */
.cell-meta {
    position: absolute; left: 15px; right: 15px; bottom: 13px; z-index: 2;
    display: flex; align-items: baseline; justify-content: space-between; gap: 10px;
}
.cell-name {
    font-family: var(--idx-font-display); font-size: 1.5rem; line-height: 1;
    letter-spacing: 0.03em; color: #fff;
}
.cell-status {
    display: inline-flex; align-items: center; gap: 6px;
    font-family: var(--idx-font-mono); font-weight: 500;
    font-size: 0.56rem; letter-spacing: 0.22em; text-transform: uppercase; flex-shrink: 0;
}
.idx-cell.live .cell-status { color: var(--idx-gold); }
.idx-cell.live .cell-status::before {
    content: ""; width: 7px; height: 7px; border-radius: 2px;
    background: var(--idx-gold); box-shadow: 0 0 10px rgba(var(--idx-gold-rgb), 0.7);
}
.idx-cell.soon .cell-status { color: #8c8c8c; }

/* Responsive : empilé et centré */
@media (max-width: 880px) {
    .idx-inner { grid-template-columns: 1fr; justify-items: center; text-align: center; gap: 42px; }
    .idx-copy { max-width: 540px; }
    .idx-kicker { justify-content: center; }
    .idx-actions { justify-content: center; }
    .idx-mark { width: min(360px, 82vw); order: -1; }
}

/* ============================================================
   2. BARRE D'ANNONCE (apparaît au scroll, en bas)
   ============================================================ */
.idx-bar {
    position: fixed; left: 50%; bottom: 22px; transform: translate(-50%, 160%);
    display: flex; align-items: center; gap: 14px; padding: 11px 12px 11px 18px;
    background: rgba(12, 12, 12, 0.92); border: 1px solid rgba(var(--idx-gold-rgb), 0.35);
    border-radius: 100px; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.5);
    z-index: 9500; opacity: 0; text-decoration: none;
    transition: transform 0.6s var(--idx-ease), opacity 0.5s ease;
}
.idx-bar.visible { transform: translate(-50%, 0); opacity: 1; }
.idx-bar__logo { width: 22px; height: 22px; flex-shrink: 0; }
.idx-bar__text { font-family: var(--idx-font-body); font-size: 0.84rem; color: #eaeaea; white-space: nowrap; }
.idx-bar__text b { color: #fff; font-weight: 600; }
.idx-bar__cta {
    font-family: var(--idx-font-mono); font-weight: 700; font-size: 0.72rem;
    letter-spacing: 0.1em; text-transform: uppercase; color: #0a0a0a;
    background: var(--idx-gold); padding: 7px 13px; border-radius: 100px; white-space: nowrap;
}
.idx-bar__close { background: transparent; border: 0; color: #888; cursor: pointer; font-size: 1.1rem; line-height: 1; padding: 4px 8px; }
.idx-bar__close:hover { color: #fff; }
@media (max-width: 540px) {
    .idx-bar { left: 12px; right: 12px; bottom: 12px; transform: translateY(160%); }
    .idx-bar.visible { transform: translateY(0); }
    .idx-bar__text { white-space: normal; font-size: 0.78rem; }
}
