/* How to Play page. Layers on top of app.css (theme variables, .piece,
   .quint-only, .color-*, .tool-button). */

.rules-shell {
  --mini-cell-size: clamp(26px, 8vw, 34px);
  max-width: 720px;
  margin: 0 auto;
  padding: clamp(28px, 7vw, 40px) clamp(14px, 5vw, 20px) 72px;
}

.rules-header {
  margin-bottom: 12px;
}

.rules-shell h1 {
  margin: 0 0 12px;
  font-family: Marcellus, Georgia, serif;
  font-size: clamp(28px, 5vw, 40px);
  font-weight: 400;
  letter-spacing: 0.01em;
}

.rules-shell h2 {
  margin: 40px 0 10px;
  font-family: Marcellus, Georgia, serif;
  font-size: clamp(21px, 5vw, 23px);
  font-weight: 400;
  letter-spacing: 0.01em;
}

.rules-shell p,
.rules-shell li {
  line-height: 1.65;
  color: var(--ink);
}

.rules-tagline {
  color: var(--muted);
  font-size: clamp(15px, 4vw, 17px);
  max-width: 56ch;
}

.rules-callout {
  padding: 14px clamp(14px, 4vw, 18px);
  border: 1px solid var(--line);
  border-left: 3px solid var(--purple);
  border-radius: 8px;
  background: var(--surface);
  font-size: clamp(15px, 4vw, 17px);
}

.rules-play-button {
  display: inline-flex;
  align-items: center;
  margin-top: 8px;
  padding: 10px 22px;
  text-decoration: none;
  font-size: 15px;
}

.threshold-list {
  display: grid;
  gap: 8px;
  margin: 14px 0;
  padding: 0;
  list-style: none;
}

.threshold-list li {
  display: flex;
  align-items: center;
  gap: 10px;
}

.threshold-list .race-dot {
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: currentColor;
  box-shadow: 0 0 0 2px color-mix(in srgb, currentColor 26%, transparent);
}

/* ---- Mini board diagrams ---- */

.rules-shell figure {
  max-width: 100%;
  margin: 20px 0;
}

.rules-shell figcaption {
  margin-top: 10px;
  max-width: 46ch;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.55;
}

.diagram-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 248px), 1fr));
  gap: 8px 36px;
  align-items: flex-start;
}

.diagram-row figure {
  margin: 12px 0;
}

.mini-board {
  display: grid;
  grid-template-columns: repeat(7, var(--mini-cell-size));
  grid-auto-rows: var(--mini-cell-size);
  gap: 2px;
  padding: 6px;
  width: fit-content;
  max-width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.mini-cell {
  position: relative;
  display: grid;
  place-items: center;
  border-radius: 5px;
  background: var(--surface-2);
}

.mini-cell-alt {
  background: var(--surface-3);
}

.mini-cell .piece {
  width: 74%;
}

.mini-cell .piece.has-quint::after {
  inset: -5px;
  border-width: 2px;
}

.mini-cell .quint-only {
  width: 46%;
  border-width: 2px;
}

.mini-highlight {
  color: var(--focus);
  background-image: linear-gradient(
    color-mix(in srgb, currentColor 16%, transparent),
    color-mix(in srgb, currentColor 16%, transparent)
  );
  box-shadow: inset 0 0 0 2px color-mix(in srgb, currentColor 55%, transparent);
}

/* Re-assert the app.css color classes: this sheet loads after app.css, so
   .mini-highlight's default color would otherwise win over .color-*. */
.mini-cell.color-blue,
.mini-x.color-blue {
  color: var(--blue);
}

.mini-cell.color-red,
.mini-x.color-red {
  color: var(--red);
}

.mini-cell.color-green,
.mini-x.color-green {
  color: var(--green);
}

.mini-cell.color-brown,
.mini-x.color-brown {
  color: var(--brown);
}

.mini-cell.color-purple,
.mini-x.color-purple {
  color: var(--purple);
}

.mini-placed {
  box-shadow: inset 0 0 0 2px rgba(255, 209, 102, 0.55);
}

.mini-x {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  font-size: 19px;
  font-weight: 700;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.6);
}

/* Coordinate labels (start/opening diagrams) */

.mini-frame {
  display: grid;
  grid-template-columns: auto minmax(0, max-content);
  gap: 4px;
  width: fit-content;
  max-width: 100%;
}

.mini-ranks {
  display: grid;
  grid-auto-rows: var(--mini-cell-size);
  align-items: center;
  padding: 6px 2px;
  row-gap: 2px;
}

.mini-files {
  display: grid;
  grid-template-columns: repeat(7, var(--mini-cell-size));
  justify-items: center;
  padding: 0 6px;
  column-gap: 2px;
}

.mini-ranks span,
.mini-files span {
  color: var(--muted);
  font-size: 11px;
}

.rules-footer {
  margin-top: 56px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
}

.rules-footer p {
  color: var(--muted);
  font-size: 14px;
}
