:root {
  --bg: #080b1b;
  --panel: #11162d;
  --accent: #6fffe9;
  --accent-text: #061b1c;
  --page-glow: rgba(111, 255, 233, 0.16);
  --secondary-accent: #ff71ce;
}

body {
  background:
    radial-gradient(circle at 10% 12%, rgba(111, 255, 233, 0.17), transparent 26rem),
    radial-gradient(circle at 88% 16%, rgba(255, 113, 206, 0.14), transparent 23rem),
    linear-gradient(155deg, #0b1027 0%, #070916 54%, #050713 100%);
}

.stage,
.side-panel,
.camera-card,
.control-card {
  border-color: rgba(133, 157, 255, 0.2);
  background: rgba(11, 15, 35, 0.9);
}

.stage {
  box-shadow:
    0 26px 80px rgba(0, 0, 0, 0.36),
    inset 0 0 0 1px rgba(111, 255, 233, 0.03);
}

#game-canvas {
  min-height: 580px;
  background: #080b1b;
  touch-action: none;
}

.home-link {
  color: var(--accent);
  letter-spacing: 0.04em;
}

.camera-card__label,
.control-card__eyebrow {
  color: #8fa4c8;
  letter-spacing: 0.12em;
}

.control-card__eyebrow {
  margin: 0 0 0.4rem !important;
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
}

.control-card h1 {
  color: #f7fbff;
}

.direction-map {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-areas:
    ". up ."
    "left center right"
    ". down .";
  gap: 0.35rem;
  width: min(230px, 100%);
  margin: 1.1rem auto;
}

.direction-map > span {
  display: grid;
  min-height: 3.15rem;
  place-content: center;
  border: 1px solid rgba(111, 255, 233, 0.18);
  border-radius: 8px;
  background: rgba(111, 255, 233, 0.06);
  color: #dffefa;
  font-size: 1.25rem;
  font-weight: 900;
  line-height: 1;
  text-align: center;
}

.direction-map small {
  margin-top: 0.25rem;
  color: #8fa4c8;
  font-size: 0.62rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.direction-map__up {
  grid-area: up;
}

.direction-map__left {
  grid-area: left;
}

.direction-map__center {
  grid-area: center;
  border-color: rgba(255, 113, 206, 0.25) !important;
  background: rgba(255, 113, 206, 0.08) !important;
  color: var(--secondary-accent) !important;
  font-size: 0.8rem !important;
}

.direction-map__right {
  grid-area: right;
}

.direction-map__down {
  grid-area: down;
}

.overlay-card {
  border-color: rgba(111, 255, 233, 0.24);
  background: rgba(7, 10, 27, 0.93);
  box-shadow:
    0 26px 90px rgba(0, 0, 0, 0.55),
    0 0 42px rgba(111, 255, 233, 0.07);
}

.overlay-kicker {
  margin-bottom: 0.45rem !important;
  color: var(--accent) !important;
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.overlay-card h1,
.overlay-card h2 {
  font-size: clamp(1.65rem, 5vw, 2.5rem);
}

.overlay-hint {
  margin: 0.85rem 0 0 !important;
  font-size: 0.78rem;
}

.overlay-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.65rem;
}

.overlay-button {
  min-width: 9rem;
  box-shadow: 0 0 28px rgba(111, 255, 233, 0.16);
}

.overlay-button--secondary {
  border: 1px solid rgba(143, 164, 200, 0.35);
  background: rgba(143, 164, 200, 0.09);
  box-shadow: none;
  color: #e8f0ff;
}

.hud {
  align-items: flex-start;
}

.hud span {
  border-color: rgba(111, 255, 233, 0.18);
  background: rgba(5, 8, 24, 0.72);
  backdrop-filter: blur(8px);
}

.hud__label {
  display: block;
  margin-bottom: 0.14rem;
  color: #8fa4c8;
  font-size: 0.62rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.hud__value {
  display: block;
  color: #f7fbff;
  font-size: 1rem;
}

#camera-status[data-tone="ready"] {
  color: #9affed;
}

#camera-status[data-tone="error"] {
  color: #ffc1e8;
}

@media (max-width: 640px) {
  #game-canvas {
    min-height: 510px;
  }

  .hud {
    gap: 0.4rem;
    padding: 0.55rem;
  }

  .hud span {
    flex: 1 1 4.6rem;
    padding: 0.45rem 0.55rem;
  }

  .hud__value {
    font-size: 0.9rem;
  }

  .overlay-card {
    padding: 1.2rem;
  }
}
