@media (prefers-reduced-motion: reduce) {
  .polyomino-mini-shape {
    transition: none;
  }

  .polyomino-piece-pickup.is-opening,
  .polyomino-piece-pickup.is-closing,
  .polyomino-picked-shape.is-transforming,
  .polyomino-solve-moving-piece {
    animation: none;
  }
}

@media (max-width: 800px) {
  .admin-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .polyomino-layout {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 520px) {
  .playground-card,
  .eighteen-point-circle-board-panel,
  .eighteen-point-circle-simulation,
  .polyomino-board-panel,
  .polyomino-piece-tray {
    padding: var(--spacing-md);
  }

  .graph-game-heading,
  .eighteen-point-heading,
  .polyomino-puzzle-heading,
  .polyomino-board-heading,
  .polyomino-piece-tray-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .eighteen-point-mode-form {
    width: 100%;
    align-items: stretch;
    flex-direction: column;
  }

  .eighteen-point-entry,
  .eighteen-point-circle-entry {
    align-items: stretch;
    flex-direction: column;
  }

  .eighteen-point-circle-random-controls {
    align-items: stretch;
    flex-direction: column;
  }

  .eighteen-point-entry input,
  .eighteen-point-circle-entry input {
    width: 100%;
  }

  .eighteen-point-circle-simulation-controls {
    align-items: stretch;
    flex-direction: column;
  }

  .eighteen-point-circle-simulation-setting input {
    width: 100%;
  }

  .eighteen-point-circle-seed {
    width: 100%;
  }

  .eighteen-point-circle-visualization {
    grid-template-columns: 3rem minmax(0, 1fr);
    gap: var(--spacing-xs);
  }

  .eighteen-point-circle-magnifier-control {
    font-size: 0.72rem;
  }

  .eighteen-point-circle-magnifier-range {
    height: min(13rem, 48vw);
  }

  .polyomino-puzzle-heading-actions {
    justify-content: flex-start;
  }

  .polyomino-piece-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
