.game-room {
  display: grid;
  grid-template-columns: minmax(260px, 0.45fr) minmax(0, 1fr);
  gap: clamp(34px, 6vw, 84px);
  align-items: center;
  padding: clamp(86px, 10vw, 140px) max(20px, calc((100vw - var(--max)) / 2));
  background: #fffaf2;
  border-block: 2px solid var(--ink);
}

.game-room-copy h2 {
  margin: 0;
  font-family: "Gowun Batang", serif;
  font-size: clamp(34px, 4.8vw, 66px);
  line-height: 1.12;
}

.game-room-copy p:not(.section-kicker) {
  margin: 22px 0 0;
  color: var(--muted);
  font-size: 17px;
  line-height: 1.75;
}

.game-shell {
  display: grid;
  gap: 14px;
  padding: clamp(16px, 3vw, 26px);
  background: var(--night);
  color: var(--white);
  border: 2px solid var(--ink);
  box-shadow: 14px 14px 0 var(--accent);
}

.game-topbar,
.game-controls,
.game-scoreboard {
  display: flex;
  align-items: center;
}

.game-topbar {
  justify-content: space-between;
  gap: 18px;
}

.game-topbar p {
  margin: 0 0 4px;
  color: rgba(255, 250, 242, 0.62);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.game-topbar strong {
  display: block;
  font-family: "Gowun Batang", serif;
  font-size: clamp(24px, 3vw, 34px);
}

.game-scoreboard {
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.game-scoreboard span {
  min-width: 82px;
  padding: 9px 12px;
  border: 1px solid rgba(255, 250, 242, 0.28);
  color: rgba(255, 250, 242, 0.7);
  font-size: 13px;
}

.game-scoreboard b {
  display: block;
  color: var(--white);
  font-size: 18px;
}

#game-canvas {
  width: 100%;
  aspect-ratio: 19 / 12;
  display: block;
  background: #fbf4e9;
  border: 2px solid rgba(255, 250, 242, 0.72);
  cursor: pointer;
  touch-action: none;
}

.game-controls {
  gap: 10px;
  flex-wrap: wrap;
}

.game-controls button {
  min-height: 42px;
  padding: 0 16px;
  border: 1px solid rgba(255, 250, 242, 0.42);
  background: transparent;
  color: var(--white);
  font: inherit;
  font-weight: 800;
  cursor: pointer;
  transition: transform 160ms ease, background 160ms ease;
}

.game-controls button:hover {
  transform: translateY(-2px);
}

.game-controls .active,
.game-action {
  background: var(--white);
  color: var(--ink);
}

.game-action {
  margin-left: auto;
  border-color: var(--white);
}

@media (max-width: 900px) {
  .game-room {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 560px) {
  .game-shell {
    box-shadow: 8px 8px 0 var(--accent);
  }

  .game-topbar {
    align-items: flex-start;
    flex-direction: column;
  }

  .game-scoreboard,
  .game-scoreboard span,
  .game-action {
    width: 100%;
  }

  .game-controls button {
    flex: 1 1 calc(50% - 10px);
  }
}
