/* ═══════════════════════════════════════════════════════════════════
   VEGA ONE — vegaone.css
   Styles de la page de jeu
   Écho du Vide — Ito Studio
   ═══════════════════════════════════════════════════════════════════ */


/* ── Reset global ───────────────────────────────────────────────────
   Neutralise les styles par défaut du navigateur et de Kadence
   Ne pas modifier sauf si tu sais ce que tu fais
   ─────────────────────────────────────────────────────────────────── */
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    overflow: hidden;        /* Empêche le scroll sur la page du jeu */
    background: #04030a;     /* Couleur de fond — noir profond */
}

@font-face {
    font-family: 'FiraCode-Retina';
    src: url('../fonts/fira-code/FiraCode-Retina.otf') format('opentype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Orbitron';
    src: url('../fonts/orbitron/Orbitron-Regular.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Orbitron';
    src: url('../fonts/orbitron/Orbitron-Medium.ttf') format('truetype');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Orbitron';
    src: url('../fonts/orbitron/Orbitron-Bold.ttf') format('truetype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Orbitron';
    src: url('../fonts/orbitron/Orbitron-Black.ttf') format('truetype');
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}


/* ── Conteneur principal du jeu ─────────────────────────────────────
   Centrage du canvas dans la page
   ─────────────────────────────────────────────────────────────────── */
#gc {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100vw !important;
    height: 100vh !important;
}




/* ── Canvas — zone de jeu ───────────────────────────────────────────
   Le canvas lui-même — ne pas modifier width/height ici
   La taille est gérée par JavaScript (1440×900)
   ─────────────────────────────────────────────────────────────────── */
#c {
    display: block;
    cursor: crosshair;       /* Curseur en croix pour l'immersion */
    image-rendering: pixelated; /* Rendu net sans flou */
}


/* ═══════════════════════════════════════════════════════════════════
   OVERLAY GAME OVER & CLASSEMENT
   S'affiche par-dessus le canvas quand le joueur perd
   ═══════════════════════════════════════════════════════════════════ */

/* ── Conteneur overlay ──────────────────────────────────────────────
   Caché par défaut, affiché via la classe .vis ajoutée par JS
   ─────────────────────────────────────────────────────────────────── */
#ov {
    display: none;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(3, 1, 10, .94);
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    z-index: 100;
}

#ov.vis {
    display: flex;
}


/* ── Titre principal (ex: "VEGA ONE EST TOMBÉ") ─────────────────────
   Modifier font-size pour changer la taille du titre
   Modifier color pour changer la couleur (rose par défaut)
   ─────────────────────────────────────────────────────────────────── */
.ot {
    font: bold 36px 'Orbitron', monospace;
    color: #ff00d9;
    text-shadow: 0 0 24px #ff00d9;
    text-align: center;
    margin-bottom: 16px;
}


/* ── Sous-titre (ex: "GAME OVER") ───────────────────────────────────
   Texte en dessous du titre principal
   ─────────────────────────────────────────────────────────────────── */
.os {
    font: 10px 'Orbitron', monospace;
    color: rgba(255, 0, 217, .5);
    letter-spacing: .16em;
    text-align: center;
    margin-bottom: 20px;
}


/* ── Score final ────────────────────────────────────────────────────
   Grand nombre affiché au centre de l'overlay
   Modifier font-size pour ajuster la taille du score
   ─────────────────────────────────────────────────────────────────── */
.osc {
    font: bold 72px 'Orbitron', monospace;
    color: #fff;
    text-shadow: 0 0 16px #ff00d9;
    text-align: center;
    margin: 16px 0 20px;
}


/* ── Tier Overclock atteint (ex: "⚡ FUSION LVL 11") ───────────────
   ─────────────────────────────────────────────────────────────────── */
.otier {
    font: 11px 'Orbitron', monospace;
    text-align: center;
    margin-bottom: 12px;
}

/* ── Meilleur score précédent ───────────────────────────────────────
   ─────────────────────────────────────────────────────────────────── */
.orec {
    font: 11px 'Orbitron', monospace;
    color: rgba(255, 0, 217, .4);
    text-align: center;
    margin-bottom: 28px;
}


/* ── Formulaire saisie du nom ───────────────────────────────────────
   Conteneur du champ de saisie + boutons
   ─────────────────────────────────────────────────────────────────── */
.oform {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    margin-top: 10px;
}


/* ── Label au-dessus du champ (ex: "TON NOM DANS LA GRILLE") ────────
   ─────────────────────────────────────────────────────────────────── */
.olbl {
    font: 9px 'Orbitron', monospace;
    color: rgb(255, 255, 255);
    letter-spacing: .1em;
    margin-bottom: 6px;
}



/* ── Champ de saisie du nom ─────────────────────────────────────────
   Modifier width pour changer la largeur du champ
   Modifier font-size pour changer la taille du texte saisi
   ─────────────────────────────────────────────────────────────────── */
#nmi {
    background: transparent;
    border: 1px solid rgba(255, 0, 217, .5);
    border-radius: 3px;
    color: #fff;
    font-family: 'Orbitron', monospace !important;
    font-size: 16px !important;
    text-align: center;
    padding: 10px 20px !important;
    outline: none;
    width: 260px !important;
    letter-spacing: .06em;
}

#nmi:focus {
    border-color: #ff00d9;
    box-shadow: 0 0 10px rgba(255, 0, 217, .3);
}


/* ── Boutons (Valider / Nouvelle partie) ────────────────────────────
   .obtn    = style de base commun aux deux boutons
   .obtn.nb = style spécifique au bouton "Nouvelle partie"
   ─────────────────────────────────────────────────────────────────── */
.obtn {
    background: transparent;
    border: 1px solid rgba(255, 0, 217, .55);
    border-radius: 3px;
    color: #fff;
    font-family: 'Orbitron', monospace;
    font-size: 11px;
    padding: 9px 28px;
    cursor: pointer;
    letter-spacing: .06em;
    transition: background .15s;
}

.obtn:hover {
    background: rgba(255, 0, 217, .12);  /* Survol — légère teinte rose */
}

.obtn.nb {
    border-color: rgb(255, 255, 255);
    margin-top: 12px;
    font-size: 10px;
}


/* ── Séparateur horizontal ──────────────────────────────────────────
   Ligne fine entre le formulaire et le classement
   ─────────────────────────────────────────────────────────────────── */
.hdiv {
    width: 60%;
    height: .5px;
    background: rgba(255, 0, 217, .2);
    margin: 24px 0;
}


/* ═══════════════════════════════════════════════════════════════════
   CLASSEMENT (LEADERBOARD)
   ═══════════════════════════════════════════════════════════════════ */

/* ── Titre du classement (ex: "CLASSEMENT — GRILLE DU VIDE") ────────
   ─────────────────────────────────────────────────────────────────── */
.lbt {
    font: bold 10px 'Orbitron', monospace;
    color: rgba(255, 0, 217, .65);
    text-align: center;
    letter-spacing: .14em;
    margin-bottom: 10px;
}


/* ── Conteneur liste du classement ─────────────────────────────────
   Modifier width pour changer la largeur de la liste
   ─────────────────────────────────────────────────────────────────── */
.lb {
    width: 500px;
}


/* ── Ligne du classement ────────────────────────────────────────────
   Une ligne = un joueur dans le classement
   ─────────────────────────────────────────────────────────────────── */
.lr {
    display: flex;
    align-items: center;
    padding: 6px 10px;
    border-bottom: .5px solid rgba(255, 255, 255, .05);
    font: 9px 'Orbitron', monospace;
    gap: 6px;
}

/* Ligne surlignée pour le joueur actuel */
.lr.me {
    background: rgba(255, 0, 217, .07);
    border-color: rgba(255, 0, 217, .25);
}


/* ── Éléments d'une ligne du classement ─────────────────────────────
   .lrk = rang (1, 2, 3...)
   .lrn = nom du joueur
   .lro = titre / tier Overclock (badge coloré)
   .lrs = score
   ─────────────────────────────────────────────────────────────────── */
.lrk {
    color: rgb(255, 255, 255);
    width: 24px;
    flex-shrink: 0;
}

.lrn {
    color: #fff;
    flex: 1;
}

.lro {
    padding: 2px 6px;
    border-radius: 2px;
    font-size: 7px;
    flex-shrink: 0;
    /* background et color sont définis dynamiquement par JS selon le tier */
}

.lrs {
    color: rgba(255, 0, 217, .85);
    flex-shrink: 0;
    font-size: 11px;
}


/* ── Message "aucun score" ──────────────────────────────────────────
   Affiché quand le classement est vide
   ─────────────────────────────────────────────────────────────────── */
.empty {
    color: rgb(255, 255, 255);
    text-align: center;
    padding: 16px;
    font: 9px 'Orbitron', monospace;
}


/* ── Conteneur page classement ──────────────────────────────────────
   Caché par défaut, affiché par JS après soumission du score
   ─────────────────────────────────────────────────────────────────── */
#lbp {
    display: none;
    flex-direction: column;
    align-items: center;
}

/* ── Reset forcé overlay — neutralise Kadence et WordPress ── */
#ov, #ov * {
    box-sizing: border-box !important;
    font-family: 'Orbitron', monospace !important;
    line-height: normal !important;
    text-transform: none !important;
}

#gop, #lbp {
    all: unset;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
}

.obtn {
    all: unset !important;
    display: inline-block !important;
    background: transparent !important;
    border: 1px solid rgba(255, 0, 217, .55) !important;
    border-radius: 3px !important;
    color: #fff !important;
    font-family: 'Orbitron', monospace !important;
    font-size: 11px !important;
    padding: 9px 28px !important;
    cursor: pointer !important;
    letter-spacing: .06em !important;
    text-align: center !important;
    box-shadow: none !important;
}

.obtn:hover {
    background: rgba(255, 0, 217, .12) !important;
}

.obtn.nb {
    border-color: rgba(255, 255, 255, .3) !important;
    margin-top: 12px !important;
    font-size: 10px !important;
}

.osc {
    font-size: 72px !important;
    line-height: 1 !important;
    margin: 4px 0 8px !important;
}

.ot {
    font-size: 36px !important;
    line-height: 1.2 !important;
}

#nmi {
    all: unset !important;
    display: block !important;
    background: transparent !important;
    border: 1px solid rgba(255, 0, 217, .5) !important;
    border-radius: 3px !important;
    color: #fff !important;
    font-family: 'Orbitron', monospace !important;
    font-size: 16px !important;
    text-align: center !important;
    padding: 10px 20px !important;
    width: 260px !important;
    letter-spacing: .06em !important;
}

#nmi:focus {
    border-color: #ff00d9 !important;
    box-shadow: 0 0 10px rgba(255, 0, 217, .3) !important;
    outline: none !important;
}


/* ──  ──────────────────────────────────────
   bouton retour en arriere
   ─────────────────────────────────────────────────────────────────── */

