.numdle-board {
  display: grid;
  gap: 8px;
  width: min(356px, 100%);
  margin: 4px auto 20px;
}

.numdle-row {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px;
}

.numdle-tile {
  display: grid;
  aspect-ratio: 1;
  place-items: center;
  border: 2px solid #36383c;
  border-radius: 7px;
  background: #17181a;
  font-size: clamp(22px, 7vw, 31px);
  font-weight: 900;
}

.numdle-tile.filled {
  border-color: #65676c;
}

.numdle-tile.correct {
  border-color: var(--green);
  background: var(--green);
}

.numdle-tile.present {
  border-color: var(--yellow);
  background: var(--yellow);
  color: #171717;
}

.numdle-tile.absent {
  border-color: var(--gray);
  background: var(--gray);
}

.numdle-row.shake {
  animation: shake .23s linear;
}

@keyframes shake {
  25% { transform: translateX(-5px); }
  75% { transform: translateX(5px); }
}

@media (max-height: 760px) {
  .game-heading {
    padding-block: 12px;
  }

  .numdle-board {
    width: min(290px, 80vw);
    gap: 5px;
    margin-bottom: 8px;
  }

  .numdle-row {
    gap: 5px;
  }

  .number-keyboard {
    margin-top: 8px;
  }
}
