/* Basic layout */
.slw-snake {
  --bg: #0b0f14;
  --fg: #d1d5db;
  --accent: #10b981;
  --danger: #ef4444;
  outline: none;
  display: block;
  max-width: 520px;
  margin: 1rem auto;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  color: var(--fg);
  padding: 0.5rem;
  border-radius: 1rem;
  background: linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.02));
  box-shadow: 0 10px 30px rgba(0,0,0,0.25);
}

.slw-snake:focus {
  box-shadow: 0 0 0 3px rgba(16,185,129,.5), 0 10px 30px rgba(0,0,0,0.25);
}

/* HUD */
.slw-hud {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin-bottom: .5rem;
  font-size: 0.95rem;
}
.slw-label { opacity: .8; }
.slw-sep { opacity: .5; }
.slw-flex { flex: 1; }

.slw-btn {
  font: inherit;
  padding: .35rem .7rem;
  border-radius: .6rem;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.06);
  color: var(--fg);
  cursor: pointer;
  transition: transform .04s ease, background .15s ease;
}
.slw-btn:active { transform: translateY(1px) scale(.98); }
.slw-btn:hover { background: rgba(255,255,255,0.12); }

/* Stage */
.slw-stage {
  position: relative;
  display: grid;
  place-items: center;
  border-radius: .75rem;
  overflow: hidden;
}
.slw-canvas {
  display: block;
  width: 100%;
  height: auto;
  background: #0d1117;
}
.slw-overlay {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  font-weight: 700;
  font-size: 1.05rem;
  color: #e5e7eb;
  background: rgba(0,0,0,.45);
  transition: opacity .2s ease;
}
.slw-overlay.slw-hidden { opacity: 0; pointer-events: none; }
.slw-tap-to-play {
  position: absolute;
  inset: auto 1rem 1rem 1rem;
  padding: .6rem .9rem;
  border-radius: .75rem;
  border: 1px solid rgba(255,255,255,.15);
  background: rgba(0,0,0,.5);
  color: #e5e7eb;
  font-weight: 600;
  cursor: pointer;
}

/* Controls */
.slw-controls {
  margin-top: .5rem;
  display: grid;
  place-items: center;
  gap: .25rem;
  user-select: none;
}
.slw-controls .slw-row { display: flex; gap: .5rem; }
.slw-dir {
  width: 3rem; height: 3rem;
  display: grid; place-items: center;
  font-size: 1.1rem;
}

.slw-help {
  margin-top: .5rem;
  font-size: .85rem;
  opacity: .7;
  text-align: center;
}

/* Light theme variant (optional support via data-theme="light") */
.slw-snake[data-theme="light"] {
  --bg: #ffffff;
  --fg: #111827;
  background: linear-gradient(180deg, rgba(0,0,0,0.04), rgba(0,0,0,0.02));
}
.slw-snake[data-theme="light"] .slw-canvas { background: #f9fafb; }
