canvas {
  background: var(--bg-soft);
  border: 2px solid var(--border);
  border-radius: var(--radius);
  display: block;
  /* largura própria: cabe na tela do celular sem estourar */
  width: min(400px, 100vw - 40px);
  height: auto;
  touch-action: none;
  image-rendering: pixelated;
  box-shadow: inset 0 0 20px rgba(124, 92, 255, 0.15);
}

.message {
  min-height: 1.4em;
  font-family: var(--font-display);
  font-size: 0.85rem;
  color: var(--amber);
  text-align: center;
  text-shadow: 0 0 8px rgba(255, 207, 77, 0.6);
}

.dpad {
  display: grid;
  grid-template-columns: repeat(3, 56px);
  grid-template-rows: repeat(2, 56px);
  gap: 6px;
  justify-content: center;
}

.dpad-btn {
  touch-action: manipulation;
  user-select: none;
  -webkit-user-select: none;
  border: 2px solid var(--border);
  background: var(--bg-soft);
  color: var(--accent-3);
  border-radius: var(--radius);
  font-size: 1.2rem;
  cursor: pointer;
}

.dpad-btn:active {
  background: var(--card-hover);
}

.dpad-btn.up { grid-column: 2; grid-row: 1; }
.dpad-btn.left { grid-column: 1; grid-row: 2; }
.dpad-btn.right { grid-column: 3; grid-row: 2; }
.dpad-btn.down { grid-column: 2; grid-row: 2; }

@media (min-width: 640px) and (hover: hover) and (pointer: fine) {
  .dpad {
    display: none;
  }
}
