/* ========================================================================
   BLOBZ — KAWAII CARTOON B (charte flotte, style B valide porteur
   2026-09-11) : aplats francs, contours nets, ombres "sticker" PLATES
   (zero flou/backdrop-filter), reliefs doux, formes rondes. Remplace
   l'ancien habillage "glassmorphism" (backdrop-filter + fond fige, AUCUN
   mode clair — meme piege deja documente fleet-wide, cf BACKLOG.md).

   Theme pilote par html[data-theme] (/_kit/theme.js, cf <head>) : chaque
   token colore de ce fichier a sa variante claire ci-dessous — remplace la
   dependance directe aux tokens --cb-* du kit (qui restent sombres partout,
   cf kit-design.css "MODE CLAIR (future, prepare)"). Le decor d'arene
   (--blobz-*) reste pilote par src/arenas.js + src/game.js `applyArenaTheme`
   (suit lui aussi le theme explicite, cf `isDarkTheme()`), pas seulement
   l'OS.
   ======================================================================== */

:root{
  --ink:#f3f6fb;            /* texte principal, adaptatif */
  --ink-dark:#0a0c14;       /* texte TOUJOURS fonce (pose sur du vif) */
  --muted:#9aa4bd;
  --panel: linear-gradient(160deg, #232b45 0%, #131826 100%);
  --panel-2: linear-gradient(150deg, #1c2338 0%, #0f1420 100%);
  --surface: #141a29;
  --border: rgba(255,255,255,.14);
  --border-strong: rgba(255,255,255,.22);
  --overlay-bg: rgba(6,9,16,.62);
  --danger:#ff6b63; --danger-dark:#c1423a;
  --gold:#ffc20e; --gold-dark:#c98f00; --gold-ink:#241900;

  /* Ombres "sticker" : PLATES, zero flou — une marche d'escalier encre. */
  --shadow-xs:0 2px 0 var(--ink-dark);
  --shadow-sm:0 3px 0 var(--ink-dark);
  --shadow-md:0 4px 0 var(--ink-dark);
  --shadow-lg:0 6px 0 var(--ink-dark);
  --shadow-xl:0 8px 0 var(--ink-dark), 0 18px 32px rgba(0,0,0,.35);

  /* Decor d'arene (surcharge par src/arenas.js + game.js selon le choix et
     le theme, cf `applyArenaTheme`). Valeurs par defaut = arene Meadow. */
  --blobz-bg-0: #0c1a12;
  --blobz-bg-1: #122619;
  --blobz-grid: rgba(120,220,150,.10);
  --blobz-accent: #5ce07a;
  --blobz-accent-dark: #2fa758;

  color-scheme: dark;
}

html[data-theme="light"]{
  --ink:#131826; --ink-dark:#131826; --muted:#5b6688;
  --panel:#ffffff; --panel-2:#f2f4fb; --surface:#e7eaf7;
  --border: rgba(19,24,38,.14); --border-strong: rgba(19,24,38,.22);
  --overlay-bg: rgba(19,24,38,.32);
  --danger:#c1423a; --danger-dark:#8a1f1f;
  --gold:#a5710a; --gold-dark:#7a5406; --gold-ink:#ffffff;

  --shadow-xl:0 8px 0 var(--ink-dark), 0 18px 32px rgba(19,24,38,.14);
  color-scheme: light;
}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;min-height:100%;overflow-x:hidden}
body{
  background: linear-gradient(160deg, var(--blobz-bg-0) 0%, var(--blobz-bg-1) 100%);
  color: var(--ink);
  font-family: var(--cb-font-family);
  display:flex;flex-direction:column;align-items:center;min-height:100vh;
  padding: max(var(--cb-space-8), env(safe-area-inset-top)) var(--cb-space-6) max(var(--cb-space-16), env(safe-area-inset-bottom));
  gap: var(--cb-gap-md);
  -webkit-user-select:none;user-select:none;
  transition: background var(--cb-duration-slow) var(--cb-easing-in-out), color var(--cb-duration-slow) var(--cb-easing-in-out);
}

/* Icones SVG trait fin (regle design galaxie SANTVIA) : taille sur l'em du
   conteneur, jamais de police emoji. */
.ic{display:inline-block;width:1.1em;height:1.1em;vertical-align:-0.16em}
.ic svg{display:block;width:100%;height:100%}

.topbar{width:min(680px,100%);display:flex;align-items:center;gap:var(--cb-gap-md);padding:0 var(--cb-space-4)}
.brand{flex:1;display:flex;align-items:baseline;gap:var(--cb-space-5);min-width:0}
.brand h1{
  margin:0;font-size:var(--cb-heading-lg);letter-spacing:var(--cb-letter-spacing-caps);
  font-weight:var(--cb-font-black);color:var(--ink)
}
.brand .tag{color:var(--muted);font-size:var(--cb-text-xs);font-weight:var(--cb-font-bold);
  letter-spacing:var(--cb-letter-spacing-label);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.icon-btn{
  font:inherit;font-weight:var(--cb-font-bold);font-size:var(--cb-text-sm);color:var(--ink);
  cursor:pointer;border:2px solid var(--border-strong);background:var(--panel-2);
  border-radius:var(--cb-radius-btn);padding:var(--cb-space-5) var(--cb-space-6);white-space:nowrap;
  display:inline-flex;align-items:center;gap:6px;
  transition:transform var(--cb-duration-fast) var(--cb-easing-in-out);box-shadow:var(--shadow-xs)
}
.icon-btn:hover{transform:translateY(-2px)}
.icon-btn:active{transform:translateY(0)}
.icon-btn:focus-visible{outline:var(--cb-focus-ring);outline-offset:var(--cb-focus-offset)}
.icon-btn.sm{padding:var(--cb-space-4) var(--cb-space-6);font-size:var(--cb-text-xs)}
.icon-btn.wide{width:100%;justify-content:center;text-align:center;margin-top:var(--cb-space-6)}

/* ---------- Menu ---------- */
#screen-menu{width:min(460px,100%);display:flex;flex-direction:column;gap:var(--cb-gap-lg);align-items:center}
.hero{text-align:center;animation:fadeInUp .5s cubic-bezier(.16,1,.3,1)}
.hero .logo{font-size:clamp(2.2rem,12vw,3.4rem);font-weight:var(--cb-font-black);letter-spacing:var(--cb-letter-spacing-caps);color:var(--ink)}
.hero .sub{color:var(--muted);font-size:var(--cb-text-base);font-weight:var(--cb-font-semibold);margin-top:var(--cb-space-4)}
.mini-blob{
  width:76px;height:76px;margin:var(--cb-space-10) auto 0;border-radius:50%;
  background:radial-gradient(circle at 32% 28%, #a8f5b8, var(--blobz-accent) 55%, var(--blobz-accent-dark));
  border:3px solid var(--ink-dark);
  box-shadow:var(--shadow-md);
  animation:blobFloat 3.2s ease-in-out infinite
}
@keyframes blobFloat{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-8px) scale(1.04)}}

.stats-row{display:flex;gap:var(--cb-gap-sm);width:100%}
.stat-chip{flex:1;display:flex;flex-direction:column;align-items:center;gap:var(--cb-space-1);
  background:var(--panel-2);border:2px solid var(--border);border-radius:var(--cb-radius-md);
  padding:var(--cb-space-6);box-shadow:var(--shadow-xs)}
.stat-chip .lbl{font-size:var(--cb-text-xs);color:var(--muted);font-weight:var(--cb-font-bold);
  letter-spacing:var(--cb-letter-spacing-label);text-transform:uppercase}
.stat-chip .val{font-size:var(--cb-heading-xs);font-weight:var(--cb-font-black);color:var(--ink);display:flex;align-items:center;gap:4px}

.menu-card{
  width:100%;background:var(--panel);border:2px solid var(--border-strong);border-radius:var(--cb-radius-card);
  padding:var(--cb-pad-lg);box-shadow:var(--shadow-lg);
  animation:fadeInUp .5s cubic-bezier(.16,1,.3,1) .15s both
}
.menu-card h2{margin:0 0 var(--cb-space-8);font-size:var(--cb-heading-xs);font-weight:var(--cb-font-black);color:var(--ink)}

.arena-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--cb-gap-sm);margin-bottom:var(--cb-space-10)}
.arena-card{
  position:relative;border-radius:var(--cb-radius-md);padding:var(--cb-space-8) var(--cb-space-4);text-align:center;
  background:var(--panel-2);border:2px solid var(--border);cursor:pointer;
  transition:transform var(--cb-duration-normal) var(--cb-easing-in-out);
  overflow:hidden;font-family:inherit
}
.arena-card .emoji{font-size:1.6rem;display:block;margin-bottom:var(--cb-space-2);color:var(--blobz-accent)}
.arena-card .name{font-size:var(--cb-text-xs);font-weight:var(--cb-font-bold);color:var(--ink)}
.arena-card.on{border-color:var(--gold);box-shadow:0 0 0 2px var(--gold)}
.arena-card:not(.locked):hover{transform:translateY(-2px)}
.arena-card.locked{opacity:.55;cursor:not-allowed}
.arena-card.locked .name{color:var(--muted)}
.arena-card .lock{position:absolute;top:6px;right:8px;width:.85em;height:.85em}
.arena-card .unlock-hint{display:block;font-size:.65rem;color:var(--muted);margin-top:2px}

.big-btn{
  width:100%;font:inherit;font-weight:var(--cb-font-black);font-size:var(--cb-text-base);cursor:pointer;
  border:2px solid var(--ink-dark);border-radius:var(--cb-radius-card);padding:var(--cb-space-12) var(--cb-space-8);
  color:var(--gold-ink);
  background:linear-gradient(135deg, var(--blobz-accent), var(--blobz-accent-dark));
  box-shadow:var(--shadow-lg);
  transition:transform var(--cb-duration-normal) var(--cb-easing-in-out)
}
.big-btn:hover{transform:translateY(-3px)}
.big-btn:active{transform:translateY(0)}
.big-btn:focus-visible{outline:var(--cb-focus-ring);outline-offset:2px}

.hint-line{color:var(--muted);font-size:var(--cb-text-xs);text-align:center;margin:0}

/* ---------- Game screen ---------- */
#screen-game{display:none;width:min(1100px,100%);flex-direction:column;gap:var(--cb-gap-sm);align-items:center;flex:1}
#screen-game.show{display:flex;animation:fadeIn .3s ease-out}
body.playing #screen-menu{display:none}
body.playing .topbar{display:none}

.hud-top{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--cb-gap-sm);padding:0 var(--cb-space-2)}
.hud-stats{display:flex;gap:var(--cb-gap-sm);flex-wrap:wrap;justify-content:flex-end}
.hud-chip{
  background:var(--panel-2);border:2px solid var(--border);border-radius:var(--cb-radius-pill);
  padding:var(--cb-space-3) var(--cb-space-8);font-size:var(--cb-text-xs);font-weight:var(--cb-font-bold);
  color:var(--muted)
}
.hud-chip b{color:var(--ink);font-weight:var(--cb-font-black);margin-left:4px;display:inline-flex;align-items:center;gap:3px}
.hud-chip.coins b{color:var(--gold)}

.canvas-wrap{position:relative;width:100%;aspect-ratio:4/3;max-height:70vh;border-radius:var(--cb-radius-lg);
  overflow:hidden;border:2px solid var(--ink-dark);box-shadow:var(--shadow-lg);background:#000}
#canvas{display:block;width:100%;height:100%;touch-action:none;cursor:crosshair}

#edge-warnings{position:absolute;inset:0;pointer-events:none}
.edge-warn{position:absolute;width:22px;height:22px;color:var(--danger);animation:warnPulse 1s ease-in-out infinite}
@keyframes warnPulse{0%,100%{opacity:.55;transform:translate(-50%,-50%) scale(1)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.25)}}

.toolbar{display:flex;gap:var(--cb-gap-sm);flex-wrap:wrap;justify-content:center;width:100%;padding:var(--cb-space-2) 0}
.tool-btn{
  position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:58px;
  background:var(--panel-2);border:2px solid var(--border);border-radius:var(--cb-radius-md);
  padding:var(--cb-space-4) var(--cb-space-5);cursor:pointer;font-family:inherit;color:var(--ink);
  transition:transform var(--cb-duration-fast) var(--cb-easing-in-out)
}
.tool-btn .ic{font-size:1.25rem}
.tool-btn .ct{font-size:var(--cb-text-xs);font-weight:var(--cb-font-black);color:var(--blobz-accent)}
.tool-btn .key{position:absolute;top:2px;left:5px;font-size:.6rem;color:var(--muted)}
.tool-btn:hover:not(.empty){transform:translateY(-2px)}
.tool-btn:active:not(.empty){transform:translateY(0) scale(.96)}
.tool-btn.active{border-color:var(--blobz-accent);background:rgba(92,224,122,.14)}
.tool-btn.empty{opacity:.5}
.tool-btn.empty .ct{color:var(--danger)}

/* ---------- Overlays ---------- */
.ov{position:fixed;inset:0;display:none;align-items:center;justify-content:center;z-index:60;padding:var(--cb-space-8);
  background:var(--overlay-bg);animation:fadeIn .3s ease-out}
.ov.show{display:flex}
.dialog{
  width:min(94vw,440px);max-height:88vh;overflow-y:auto;background:var(--panel);border:2px solid var(--border-strong);
  border-radius:var(--cb-radius-card);padding:var(--cb-pad-lg);text-align:center;
  animation:popBounce .5s cubic-bezier(.2,.9,.3,1.2);
  box-shadow:var(--shadow-xl)
}
.dialog h2{margin:0 0 var(--cb-space-4);font-size:var(--cb-heading-md);font-weight:var(--cb-font-black);color:var(--ink)}
.dialog p{margin:0 0 var(--cb-space-8);color:var(--muted);font-size:var(--cb-text-sm);line-height:var(--cb-line-height-relaxed)}
.dialog .big-num{font-weight:var(--cb-font-black);font-size:var(--cb-heading-xl);color:var(--ink);
  margin:var(--cb-space-4) 0;font-variant-numeric:tabular-nums}
.dialog .record-badge{display:inline-block;background:linear-gradient(135deg,var(--gold),var(--gold-dark));color:var(--gold-ink);
  font-weight:var(--cb-font-black);font-size:var(--cb-text-xs);padding:var(--cb-space-3) var(--cb-space-8);
  border-radius:var(--cb-radius-pill);margin-bottom:var(--cb-space-8);border:2px solid var(--ink-dark);
  animation:popBounce .5s cubic-bezier(.2,.9,.3,1.2)}
.dialog .over-emoji{width:2.6rem;height:2.6rem;margin:0 auto var(--cb-space-4);color:var(--danger)}
.dialog .wallet-line{color:var(--ink);font-size:var(--cb-text-sm)}
.dialog .wallet-line b{color:var(--gold)}

.btn{
  display:block;width:100%;font:inherit;font-weight:var(--cb-font-black);border:2px solid var(--ink-dark);border-radius:var(--cb-radius-btn);
  padding:var(--cb-space-8) var(--cb-space-10);cursor:pointer;color:var(--gold-ink);
  background:linear-gradient(135deg, var(--blobz-accent), var(--blobz-accent-dark));margin-top:var(--cb-space-6);
  transition:transform var(--cb-duration-fast) var(--cb-easing-in-out);
  box-shadow:var(--shadow-md)
}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn:focus-visible{outline:var(--cb-focus-ring);outline-offset:2px}
.btn.alt{background:linear-gradient(135deg,var(--gold),var(--gold-dark));color:var(--gold-ink)}
.btn.ghost{color:var(--ink);background:var(--surface);border:2px solid var(--border)}
.btn.ghost:hover{filter:brightness(1.08)}
.btn.wide{margin-top:var(--cb-space-6)}

.tool-list{display:flex;flex-direction:column;gap:var(--cb-gap-sm);margin:var(--cb-space-8) 0;text-align:start}
.shop-tool{display:flex;align-items:center;gap:var(--cb-gap-md);background:var(--surface);
  border:2px solid var(--border);border-radius:var(--cb-radius-md);padding:var(--cb-space-6)}
.shop-tool .ic{font-size:1.5rem;width:34px;height:34px;text-align:center;flex:0 0 auto;color:var(--blobz-accent)}
.shop-tool .info{flex:1;min-width:0}
.shop-tool .info b{display:block;font-size:var(--cb-text-sm);color:var(--ink)}
.shop-tool .info span{display:block;font-size:var(--cb-text-xs);color:var(--muted)}
.shop-tool .info .own{color:var(--blobz-accent);font-weight:var(--cb-font-bold)}
.shop-tool .actions{display:flex;flex-direction:column;gap:var(--cb-space-2)}
.shop-tool .actions button{
  font:inherit;font-weight:var(--cb-font-bold);font-size:var(--cb-text-xs);border:2px solid var(--ink-dark);border-radius:var(--cb-radius-sm);
  padding:var(--cb-space-3) var(--cb-space-6);cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:4px;
  transition:transform var(--cb-duration-fast) var(--cb-easing-in-out)
}
.shop-tool .buy-btn{background:linear-gradient(135deg, var(--blobz-accent), var(--blobz-accent-dark));color:var(--gold-ink)}
.shop-tool .buy-btn:hover{transform:translateY(-1px)}
.shop-tool .ad-btn{background:var(--surface);color:var(--ink);border:2px solid var(--border)}
.shop-tool .ad-btn:hover{transform:translateY(-1px)}

#toast{
  position:fixed;left:50%;bottom:max(var(--cb-space-12), env(safe-area-inset-bottom));transform:translateX(-50%);
  background:var(--panel-2);border:2px solid var(--border-strong);color:var(--ink);
  padding:var(--cb-space-8) var(--cb-space-10);border-radius:var(--cb-radius-btn);font-weight:var(--cb-font-bold);
  font-size:var(--cb-text-sm);z-index:2147483000;opacity:0;pointer-events:none;transition:all var(--cb-duration-normal);
  box-shadow:var(--shadow-md);max-width:86vw;text-align:center
}
#toast.show{opacity:1;pointer-events:auto;animation:slideUpFade .4s cubic-bezier(.16,1,.3,1)}

/* ---------- Animations ---------- */
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes fadeInUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideUpFade{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes popBounce{0%{opacity:0;transform:scale(.88)}60%{transform:scale(1.06)}100%{opacity:1;transform:scale(1)}}

/* ---------- Responsive ---------- */
@media (max-width:640px){
  body{padding:max(var(--cb-space-6), env(safe-area-inset-top)) var(--cb-space-4) max(var(--cb-space-12), env(safe-area-inset-bottom))}
  .topbar{gap:var(--cb-gap-sm);flex-wrap:wrap}
  .brand{width:100%;justify-content:center}
  .canvas-wrap{aspect-ratio:3/4;max-height:60vh}
  .menu-card{padding:var(--cb-pad-md)}
  .arena-grid{grid-template-columns:repeat(3,1fr)}
}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
}
