/* ========================================================================
   BLOBZ — habillage premium avec le systeme de design du kit CB-Arcade.
   Palette : arene verte par defaut (surchargee par arenas.js selon le choix),
   accent or du hub (#ffc20e) sur les CTA, ombres et animations soignees.
   ======================================================================== */

:root{
  --blobz-bg-0: #0c1a12;
  --blobz-bg-1: #122619;
  --blobz-grid: rgba(120,220,150,.10);
  --blobz-accent: #5ce07a;
  --blobz-accent-dark: #2fa758;
}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;min-height:100%;overflow-x:hidden}
body{
  background: radial-gradient(circle at 25% 15%, rgba(92,224,122,.08), transparent 45%),
              linear-gradient(160deg, var(--blobz-bg-0) 0%, var(--blobz-bg-1) 100%);
  color: var(--cb-text-primary);
  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);
}

.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(--cb-text-primary);
  text-shadow:0 var(--cb-space-3) var(--cb-space-10) rgba(0,0,0,.35), 0 0 20px rgba(92,224,122,.3)
}
.brand .tag{color:var(--cb-text-secondary);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(--cb-text-primary);
  cursor:pointer;border:1px solid var(--cb-border-light);background:var(--cb-glass-bg);
  border-radius:var(--cb-radius-btn);padding:var(--cb-space-5) var(--cb-space-6);white-space:nowrap;
  transition:all var(--cb-duration-normal) var(--cb-easing-in-out);box-shadow:var(--cb-shadow-xs);
  backdrop-filter:var(--cb-glass-blur)
}
.icon-btn:hover{border-color:var(--cb-border-medium);background:rgba(255,255,255,.14);transform:translateY(-2px);
  box-shadow:var(--cb-shadow-md),0 0 16px rgba(92,224,122,.2)}
.icon-btn:active{transform:translateY(-1px)}
.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%;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(--cb-text-primary);text-shadow:0 var(--cb-space-8) var(--cb-space-20) rgba(47,167,88,.4), 0 0 32px rgba(92,224,122,.3)}
.hero .sub{color:var(--cb-text-secondary);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));
  box-shadow:var(--cb-shadow-lg), 0 0 30px rgba(92,224,122,.4), inset 0 -6px 14px rgba(0,0,0,.25);
  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(--cb-glass-bg);border:1px solid var(--cb-border-light);border-radius:var(--cb-radius-md);
  padding:var(--cb-space-6);backdrop-filter:var(--cb-glass-blur)}
.stat-chip .lbl{font-size:var(--cb-text-xs);color:var(--cb-text-secondary);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(--cb-text-primary)}

.menu-card{
  width:100%;background:var(--cb-glass-bg);border:1px solid var(--cb-border-light);border-radius:var(--cb-radius-card);
  padding:var(--cb-pad-lg);box-shadow:var(--cb-shadow-lg), 0 0 32px rgba(92,224,122,.1);
  animation:fadeInUp .5s cubic-bezier(.16,1,.3,1) .15s both;backdrop-filter:var(--cb-glass-blur)
}
.menu-card h2{margin:0 0 var(--cb-space-8);font-size:var(--cb-heading-xs);font-weight:var(--cb-font-black);color:var(--cb-text-primary)}

.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;
  border:1px solid var(--cb-border-light);cursor:pointer;transition:all 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)}
.arena-card .name{font-size:var(--cb-text-xs);font-weight:var(--cb-font-bold);color:var(--cb-text-primary)}
.arena-card.on{border-color:var(--cb-accent);box-shadow:0 0 0 2px rgba(212,175,55,.25), 0 0 20px rgba(212,175,55,.2)}
.arena-card:not(.locked):hover{transform:translateY(-2px);box-shadow:var(--cb-shadow-md)}
.arena-card.locked{opacity:.55;cursor:not-allowed}
.arena-card.locked .name{color:var(--cb-text-muted)}
.arena-card .lock{position:absolute;top:6px;right:8px;font-size:.75rem}
.arena-card .unlock-hint{display:block;font-size:.65rem;color:var(--cb-text-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:0;
  border-radius:var(--cb-radius-card);padding:var(--cb-space-12) var(--cb-space-8);color:var(--cb-text-on-primary);
  background:linear-gradient(135deg, var(--blobz-accent), var(--blobz-accent-dark));
  box-shadow:var(--cb-shadow-lg), 0 0 24px rgba(92,224,122,.3), inset 0 1px 0 rgba(255,255,255,.15);
  transition:all var(--cb-duration-normal) var(--cb-easing-in-out)
}
.big-btn:hover{transform:translateY(-4px);box-shadow:var(--cb-shadow-xl), 0 0 40px rgba(92,224,122,.45);filter:brightness(1.1)}
.big-btn:active{transform:translateY(-2px)}
.big-btn:focus-visible{outline:var(--cb-focus-ring);outline-offset:2px}

.hint-line{color:var(--cb-text-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(--cb-glass-bg);border:1px solid var(--cb-border-light);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(--cb-text-secondary);backdrop-filter:var(--cb-glass-blur)
}
.hud-chip b{color:var(--cb-text-primary);font-weight:var(--cb-font-black);margin-left:4px}
.hud-chip.coins b{color:#ffc20e}

.canvas-wrap{position:relative;width:100%;aspect-ratio:4/3;max-height:70vh;border-radius:var(--cb-radius-lg);
  overflow:hidden;box-shadow:var(--cb-shadow-2xl), inset 0 0 0 1px var(--cb-border-medium);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;font-size:1.1rem;filter:drop-shadow(0 0 6px rgba(255,80,60,.8));animation:warnPulse 1s ease-in-out infinite}
@keyframes warnPulse{0%,100%{opacity:.55;transform:scale(1)}50%{opacity:1;transform: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(--cb-glass-bg);border:1px solid var(--cb-border-light);border-radius:var(--cb-radius-md);
  padding:var(--cb-space-4) var(--cb-space-5);cursor:pointer;font-family:inherit;color:var(--cb-text-primary);
  transition:all var(--cb-duration-fast) var(--cb-easing-in-out);backdrop-filter:var(--cb-glass-blur)
}
.tool-btn .ic{font-size:1.25rem}
.tool-btn .ct{font-size:var(--cb-text-xs);font-weight:var(--cb-font-black);color:var(--cb-accent-light)}
.tool-btn .key{position:absolute;top:2px;left:5px;font-size:.6rem;color:var(--cb-text-muted)}
.tool-btn:hover:not(.empty){transform:translateY(-2px);border-color:var(--cb-border-medium);box-shadow:var(--cb-shadow-sm)}
.tool-btn:active:not(.empty){transform:translateY(0) scale(.96)}
.tool-btn.active{border-color:var(--blobz-accent);box-shadow:0 0 16px rgba(92,224,122,.4);background:rgba(92,224,122,.12)}
.tool-btn.empty{opacity:.5}
.tool-btn.empty .ct{color:var(--cb-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(--cb-overlay-bg);backdrop-filter:var(--cb-overlay-blur);animation:fadeIn .3s ease-out}
.ov.show{display:flex}
.dialog{
  width:min(94vw,440px);max-height:88vh;overflow-y:auto;background:var(--cb-glass-bg);border:1px solid var(--cb-border-light);
  border-radius:var(--cb-radius-card);padding:var(--cb-pad-lg);text-align:center;
  animation:popBounce .5s cubic-bezier(.2,.9,.3,1.2);backdrop-filter:var(--cb-glass-blur);
  box-shadow:var(--cb-shadow-2xl), 0 0 48px rgba(92,224,122,.15)
}
.dialog h2{margin:0 0 var(--cb-space-4);font-size:var(--cb-heading-md);font-weight:var(--cb-font-black);color:var(--cb-text-primary)}
.dialog p{margin:0 0 var(--cb-space-8);color:var(--cb-text-secondary);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(--cb-text-primary);
  margin:var(--cb-space-4) 0;font-variant-numeric:tabular-nums}
.dialog .record-badge{display:inline-block;background:linear-gradient(135deg,#ffc20e,#e0a300);color:#241900;
  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);box-shadow:0 0 16px rgba(255,194,14,.5);
  animation:popBounce .5s cubic-bezier(.2,.9,.3,1.2)}
.dialog .coins-earned{color:#ffc20e;font-weight:var(--cb-font-bold);font-size:var(--cb-text-base)}
.dialog .over-emoji{font-size:2.6rem;margin-bottom:var(--cb-space-4)}
.dialog .wallet-line{color:var(--cb-text-primary);font-size:var(--cb-text-sm)}
.dialog .wallet-line b{color:#ffc20e}

.btn{
  display:block;width:100%;font:inherit;font-weight:var(--cb-font-black);border:0;border-radius:var(--cb-radius-btn);
  padding:var(--cb-space-8) var(--cb-space-10);cursor:pointer;color:var(--cb-text-on-primary);
  background:linear-gradient(135deg, var(--blobz-accent), var(--blobz-accent-dark));margin-top:var(--cb-space-6);
  transition:all var(--cb-duration-fast) var(--cb-easing-in-out);
  box-shadow:var(--cb-shadow-md), 0 0 20px rgba(92,224,122,.2), inset 0 1px 0 rgba(255,255,255,.12)
}
.btn:hover{transform:translateY(-2px);box-shadow:var(--cb-shadow-lg), 0 0 32px rgba(92,224,122,.35);filter:brightness(1.08)}
.btn:active{transform:translateY(-1px)}
.btn:focus-visible{outline:var(--cb-focus-ring);outline-offset:2px}
.btn.alt{background:linear-gradient(135deg,#ffc20e,#c98f00);color:#241900;box-shadow:var(--cb-shadow-md),0 0 20px rgba(255,194,14,.25)}
.btn.ghost{color:var(--cb-text-primary);background:var(--cb-surface-1);border:1px solid var(--cb-border-light);box-shadow:var(--cb-shadow-xs)}
.btn.ghost:hover{background:rgba(255,255,255,.1)}
.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:rgba(255,255,255,.04);
  border:1px solid var(--cb-border-medium);border-radius:var(--cb-radius-md);padding:var(--cb-space-6)}
.shop-tool .ic{font-size:1.5rem;width:34px;text-align:center;flex:0 0 auto}
.shop-tool .info{flex:1;min-width:0}
.shop-tool .info b{display:block;font-size:var(--cb-text-sm);color:var(--cb-text-primary)}
.shop-tool .info span{display:block;font-size:var(--cb-text-xs);color:var(--cb-text-secondary)}
.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:0;border-radius:var(--cb-radius-sm);
  padding:var(--cb-space-3) var(--cb-space-6);cursor:pointer;white-space:nowrap;
  transition:all 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(--cb-text-on-primary)}
.shop-tool .buy-btn:hover{filter:brightness(1.1)}
.shop-tool .ad-btn{background:var(--cb-surface-2);color:var(--cb-text-primary);border:1px solid var(--cb-border-light)}
.shop-tool .ad-btn:hover{background:rgba(255,255,255,.1)}

#toast{
  position:fixed;left:50%;bottom:max(var(--cb-space-12), env(safe-area-inset-bottom));transform:translateX(-50%);
  background:var(--cb-glass-bg);border:1px solid var(--cb-border-light);color:var(--cb-text-primary);
  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(--cb-shadow-lg);max-width:86vw;text-align:center;backdrop-filter:var(--cb-glass-blur)
}
#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}
}
