/*
 * La página de catálogo de acertijos. Solo la usan `/puzzles/` y
 * `/puzzles/en/` — los acertijos en sí traen su propio CSS y no cargan esto.
 *
 * Comparte vocabulario con la portada (`site/assets/portada.css`): mismos
 * colores, mismas familias, mismo `kicker` + título. Que sean valores
 * repetidos y no tokens compartidos es la misma historia de siempre en este
 * repo — `site/` es HTML plano sin build y no hay hoja común (ver
 * `docs/design/tokens-compartidos.md`). Si cambia la paleta allí, cambia aquí.
 */

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  background:
    radial-gradient(70% 50% at 50% 0%, rgb(55 46 40 / 0.55), transparent 70%),
    #14100e;
  color: #efe3cb;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 1.1rem;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

.pz-wrap {
  max-width: 68rem;
  margin: 0 auto;
  padding: clamp(2rem, 6vw, 4rem) clamp(1rem, 4vw, 2rem) 3rem;
}

.pz-kicker {
  margin: 0 0 0.7rem;
  font-family: "Cinzel", Georgia, serif;
  font-size: 0.7rem;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  color: #b8934e;
}

.pz-h1 {
  margin: 0 0 1rem;
  font-family: "Cinzel", Georgia, serif;
  font-weight: 700;
  font-size: clamp(1.9rem, 1.2rem + 3vw, 3.2rem);
  line-height: 1.08;
}

.pz-lead {
  margin: 0 0 3rem;
  max-width: 54ch;
  color: #a2957c;
}

.pz-fam {
  margin: 0 0 2.4rem;
}

.pz-fam__t {
  margin: 0 0 0.9rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid rgb(184 147 78 / 0.28);
  font-family: "Cinzel", Georgia, serif;
  font-size: 0.78rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #b8934e;
}

/*
 * Columnas FIJAS por punto de corte y centradas, exactamente por el mismo
 * motivo que en el catálogo de salas del juego (`HomeScreen.module.css`): con
 * `auto-fit` y un mínimo cómodo, en 375px queda una sola columna; y con
 * `repeat(n, 1fr)` una familia de un solo acertijo deja la tarjeta
 * arrinconada a la izquierda con el resto de la fila vacío. Flex no crea
 * columnas que no existen.
 */
.pz-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.pz-grid > li {
  flex: 1 1 calc(50% - 0.3rem);
  max-width: 16rem;
  display: flex;
}

@media (min-width: 34rem) {
  .pz-grid > li {
    flex-basis: calc(33.333% - 0.4rem);
  }
}

@media (min-width: 52rem) {
  .pz-grid > li {
    flex-basis: calc(25% - 0.45rem);
  }
}

.pz-card {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  width: 100%;
  padding: 0.75rem 0.85rem 0.9rem;
  border: 1px solid rgb(184 147 78 / 0.28);
  border-radius: 6px;
  background: linear-gradient(180deg, #221c18, #191411);
  text-decoration: none;
  color: inherit;
  transition:
    border-color 0.25s ease,
    box-shadow 0.25s ease;
}

.pz-card:hover,
.pz-card:focus-visible {
  border-color: rgb(240 212 154 / 0.6);
  box-shadow: 0 0 16px rgb(255 181 71 / 0.12);
}

.pz-card__cod {
  font-family: "IBM Plex Mono", monospace;
  font-size: 0.66rem;
  letter-spacing: 0.1em;
  color: #b8934e;
}

.pz-card__t {
  font-family: "Cinzel", Georgia, serif;
  font-size: 0.95rem;
  line-height: 1.25;
  color: #efe3cb;
}

.pz-card__c {
  /* La «clase» es el VERBO del jugador («descubrir con luz y hacer
     coincidir»): dice qué vas a hacer, que es más útil para elegir que el
     nombre de la familia. */
  font-size: 0.88rem;
  line-height: 1.35;
  color: #a2957c;
}
