/* Crush Sort's own band on /games/crush-sort.

   Inside its page Crush Sort keeps the game's identity: the factory ground
   (#2F3A4A), the warm-yellow action colour (#F2C230) and the cream panel ink,
   all from the app's own palette (src/theme/tokens.ts in the game's
   repository). The band stays dark in both colour schemes because the
   screenshots under it are dark captures.

   Linked only by games/crush-sort.html, after the studio stylesheet, with a
   `?v=` query to bump whenever this file changes. Every rule is scoped to
   `.cs-band` or `.cs-page`, so nothing here styles the studio shell. The type
   is the studio's own (Big Shoulders and Atkinson Hyperlegible Next): no new
   font file ships for this page. */

.cs-band {
  --cs-ground: #2f3a4a;
  --cs-ink: #fff9ec; /* 11.0:1 on the ground */
  --cs-muted: #c4ccd6; /* 7.1:1 on the ground */
  --cs-accent: #f2c230; /* 6.9:1 on the ground */
  --cs-accent-hover: #f7d460;
  --cs-on-accent: #1f2430; /* 9.3:1 on the accent */
  --cs-edge: #a9b4c2; /* 5.5:1 on the ground */
  background: var(--cs-ground);
  color: var(--cs-muted);
  padding-block: clamp(3rem, 10vw, 6.5rem);
  color-scheme: dark;
  border-bottom: 6px solid var(--cs-accent);
}

.cs-band ::selection {
  background: var(--cs-accent);
  color: var(--cs-on-accent);
}

.cs-band .cs-title {
  margin: 0;
  color: var(--cs-ink);
  font-family: var(--font-display);
  font-size: clamp(3.5rem, 14vw, 7.5rem);
  font-weight: 800;
  letter-spacing: 0.01em;
  line-height: 0.95;
  text-transform: uppercase;
}

.cs-band .cs-title span {
  color: var(--cs-accent);
}

.cs-band .hero__lede {
  font-size: clamp(1.0625rem, 2.2vw, 1.25rem);
  line-height: 1.55;
  margin: clamp(1.5rem, 4vw, 2.25rem) 0 0;
  max-width: 38rem;
  color: var(--cs-muted);
}

.cs-band :focus-visible {
  outline: 2px solid var(--cs-ink);
  outline-offset: 3px;
}

.cs-band a {
  color: var(--cs-accent);
}

/* "Coming soon" is a label, not a button: it does nothing and is not
   focusable, so it carries no button styling. */
.cs-band .cs-soon {
  display: inline-block;
  padding: 0.5rem 1.1rem;
  border: 2px solid var(--cs-accent);
  border-radius: 999px;
  color: var(--cs-accent);
  font-weight: 700;
  line-height: 1.2;
}

.cs-band .btn--primary {
  background: var(--cs-accent);
  color: var(--cs-on-accent);
  border-radius: 10px;
}

.cs-band .btn--primary:hover {
  background: var(--cs-accent-hover);
}

.cs-band .btn-row .note {
  color: var(--cs-muted);
}

.facts {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.25rem;
  margin: 2rem 0 0;
  padding: 0;
  list-style: none;
  font-size: 0.9375rem;
}

.facts li {
  display: flex;
  align-items: center;
  gap: 0.6rem;
}

.facts li + li::before {
  content: "";
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--cs-edge, currentColor);
}

/* Four captures: one column, two, then four. The cap holds the width the
   PNGs are rastered for (720 px). */
.cs-page .shots {
  grid-template-columns: 1fr;
}

@media (min-width: 40rem) {
  .cs-page .shots {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 64rem) {
  .cs-page .shots {
    grid-template-columns: repeat(4, 1fr);
  }
}

.cs-page .shot__img {
  aspect-ratio: 720 / 1418;
  background: #2f3a4a;
}
