/* ==========================================================================
   KOSMOS — Salle de jeu : charte graphique commune
   Ce fichier est partagé par le hall et par tous les jeux.
   Un jeu ne redéfinit JAMAIS ces variables : il les utilise.
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Michroma&family=Inter:wght@400;600;800&display=swap');

:root{
  /* --- Signature KOSMOS (reprise du lecteur et du domino) --- */
  --cyan:      #2fe1ff;
  --magenta:   #ff5ce1;
  --violet:    #7c5cff;
  --gold:      #ffd23f;
  --grad:      linear-gradient(92deg, var(--cyan), var(--magenta));

  /* --- Fonds --- */
  --bg:        #05060f;
  --bg-deep:   radial-gradient(130% 100% at 50% -20%, #2a1b5e 0%, #160f38 42%, #0c0922 72%, #05060f 100%);
  --panel:     rgba(22, 15, 56, .62);
  --panel-hi:  rgba(44, 30, 92, .72);
  --line:      rgba(147, 112, 255, .28);
  --line-hi:   rgba(47, 225, 255, .55);

  /* --- Texte --- */
  --ink:       #eceafe;
  --dim:       #9d95d6;
  --faint:     #6b64a8;

  /* --- États --- */
  --ok:        #4ade80;
  --bad:       #ff6b6b;

  /* --- Mesures --- */
  --r:         14px;
  --bar-h:     58px;
}

*{ box-sizing:border-box; }

/* --- Socle minimal ------------------------------------------------------
   Hors WordPress, plus aucun thème ne fournit ces règles de base. Le domino
   dépendait sans le savoir de la feuille du thème Astra pour masquer ses
   fenêtres : sans elle, la modale restait ouverte par-dessus le jeu.
   Le kit prend le relais. Ne pas retirer.                                  */
[hidden]{ display:none !important; }
button, input, select, textarea{ font-family:inherit; }

html,body{
  margin:0; padding:0; min-height:100%;
  background:var(--bg); background-image:var(--bg-deep);
  background-attachment:fixed;
  color:var(--ink);
  font-family:Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  -webkit-font-smoothing:antialiased;
}

body{ padding-bottom:calc(var(--bar-h) + 12px); }

a{ color:var(--cyan); text-decoration:none; }

.k-title{
  font-family:Michroma, Michroma-fallback, sans-serif;
  letter-spacing:.06em; text-transform:uppercase;
}

.k-grad-text{
  background:var(--grad);
  -webkit-background-clip:text; background-clip:text;
  color:transparent;
}

/* --- Enveloppe de page ------------------------------------------------- */
.k-wrap{ max-width:1140px; margin:0 auto; padding:28px 20px 40px; }

/* --- En-tête ------------------------------------------------------------ */
.k-head{
  display:flex; align-items:center; gap:18px; flex-wrap:wrap;
  padding-bottom:22px; margin-bottom:26px;
  border-bottom:1px solid var(--line);
}
.k-head h1{ font-size:clamp(22px, 4vw, 34px); margin:0; line-height:1.15; }
.k-head p{ margin:6px 0 0; color:var(--dim); font-size:14px; max-width:52ch; }
.k-head .k-spacer{ flex:1 1 auto; }

/* --- Boutons ------------------------------------------------------------ */
.k-btn{
  display:inline-flex; align-items:center; gap:9px;
  padding:11px 20px; border:0; border-radius:999px; cursor:pointer;
  font:800 13px/1 Inter, system-ui, sans-serif; letter-spacing:.12em; text-transform:uppercase;
  background:var(--grad); color:#0b0620;
  transition:transform .12s ease, box-shadow .12s ease;
  box-shadow:0 6px 22px rgba(47,225,255,.18);
}
.k-btn:hover{ transform:translateY(-1px); box-shadow:0 9px 26px rgba(255,92,225,.26); }
.k-btn:active{ transform:translateY(1px); }

.k-btn.ghost{
  background:transparent; color:var(--cyan);
  border:1px solid var(--line-hi); box-shadow:none;
}
.k-btn.ghost:hover{ background:rgba(47,225,255,.08); box-shadow:none; }

/* --- Grille de jeux ----------------------------------------------------- */
.k-grid{
  display:grid; gap:20px;
  grid-template-columns:repeat(auto-fill, minmax(260px, 1fr));
}

.k-card{
  position:relative; display:flex; flex-direction:column;
  background:var(--panel); border:1px solid var(--line); border-radius:var(--r);
  overflow:hidden; color:inherit;
  transition:transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}
.k-card.live:hover{
  transform:translateY(-4px);
  border-color:var(--line-hi);
  box-shadow:0 16px 40px rgba(0,0,0,.45), 0 0 0 1px rgba(47,225,255,.12);
}
.k-card.soon{ opacity:.5; cursor:default; }

.k-card .art{
  aspect-ratio:16/10; width:100%; display:block;
  background:#0c0922; border-bottom:1px solid var(--line);
}
.k-card .body{ padding:16px 17px 18px; display:flex; flex-direction:column; gap:7px; flex:1; }
.k-card .body h3{ margin:0; font-size:16px; }
.k-card .body .sub{ margin:0; color:var(--dim); font-size:13px; line-height:1.45; flex:1; }

.k-card .meta{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  margin-top:6px; font-size:11px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--faint);
}
.k-card .best{ color:var(--gold); font-weight:800; }

.k-tag{
  position:absolute; top:12px; right:12px;
  padding:5px 11px; border-radius:999px;
  font:800 10px/1 Inter, sans-serif; letter-spacing:.14em; text-transform:uppercase;
}
.k-tag.on{ background:var(--grad); color:#0b0620; }
.k-tag.off{ background:rgba(157,149,214,.16); color:var(--dim); border:1px solid var(--line); }

/* --- Bandeau radio (bas d'écran, présent sur toutes les pages) ---------- */
.k-radiobar{
  position:fixed; left:0; right:0; bottom:0; z-index:9999;
  height:var(--bar-h);
  display:flex; align-items:center; gap:14px; padding:0 16px;
  background:rgba(8,6,22,.92); backdrop-filter:blur(10px);
  border-top:1px solid var(--line);
}
.k-radiobar .dot{
  width:9px; height:9px; border-radius:50%; background:var(--cyan); flex:none;
  box-shadow:0 0 0 0 rgba(47,225,255,.6); animation:k-pulse 2.4s infinite;
}
@keyframes k-pulse{
  0%{ box-shadow:0 0 0 0 rgba(47,225,255,.55); }
  70%{ box-shadow:0 0 0 12px rgba(47,225,255,0); }
  100%{ box-shadow:0 0 0 0 rgba(47,225,255,0); }
}
.k-radiobar .txt{ font-size:13px; color:var(--dim); line-height:1.3; }
.k-radiobar .txt b{ color:var(--ink); }
.k-radiobar .k-spacer{ flex:1 1 auto; }
.k-radiobar .k-btn{ padding:9px 16px; font-size:11px; }

@media (max-width:560px){
  .k-radiobar .txt{ font-size:11.5px; }
  .k-radiobar .txt .long{ display:none; }
}

/* --- Réglages (pseudo, son) -------------------------------------------- */
.k-settings{
  display:flex; align-items:center; gap:12px; flex-wrap:wrap;
  margin-top:34px; padding:16px 18px;
  background:var(--panel); border:1px solid var(--line); border-radius:var(--r);
}
.k-settings label{ font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--faint); }
.k-settings input[type=text]{
  background:rgba(5,6,15,.7); border:1px solid var(--line); border-radius:9px;
  color:var(--ink); font:600 14px Inter, sans-serif; padding:9px 13px; width:190px;
}
.k-settings input[type=text]:focus{ outline:none; border-color:var(--line-hi); }

.k-foot{ margin-top:30px; color:var(--faint); font-size:12px; line-height:1.7; }
