/* GemRecap — base tokens */
:root {
  --gr-paper: #ffffff;
  --gr-tint: #f5f5f5;
  --gr-tint-soft: #fafafa;
  --gr-ink: #0b0b0b;
  --gr-ink-soft: #111111;
  --gr-mute: #5f5f5f;
  --gr-mute-2: #6b7280;
  --gr-line: #e5e5e5;
  --gr-line-strong: #cfcfcf;
  --gr-accent: #f0b100;

  --gr-font-display: 'Archivo', 'Helvetica Neue', Arial, sans-serif;
  --gr-font-body: 'Instrument Sans', 'Helvetica Neue', Arial, sans-serif;

  --gr-t-micro: 12px;
  --gr-t-caption: 14px;
  --gr-t-small: 16px;
  --gr-t-body: 18px;
  --gr-t-lead: clamp(19px, 2.1vw, 25px);
  --gr-t-sub: clamp(24px, 3vw, 36px);
  --gr-t-title: clamp(30px, 4.6vw, 45px);
  --gr-t-display: clamp(40px, 8.4vw, 89px);

  --gr-s-4: 4px;
  --gr-s-8: 8px;
  --gr-s-12: 12px;
  --gr-s-16: 16px;
  --gr-s-20: 20px;
  --gr-s-24: 24px;
  --gr-s-32: 32px;
  --gr-s-40: 40px;
  --gr-s-48: 48px;
  --gr-s-56: 56px;
  --gr-s-64: 64px;

  --gr-r-pill: 9999px;
  --gr-r-slab: 10px;
  --gr-r-big: 28px;
  --gr-r-input: 10px;

  --gr-shell-w: 1200px;
  --gr-shell-pad: clamp(20px, 5vw, 40px);
  --gr-head-h: 68px;
  --gr-hair: 1px solid var(--gr-line);
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--gr-paper);
  color: var(--gr-ink-soft);
  font-family: var(--gr-font-body);
  font-size: var(--gr-t-body);
  line-height: 1.5;
  letter-spacing: -0.007em;
  font-feature-settings: "calt";
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }

a { color: inherit; }

h1, h2, h3, h4 {
  font-family: var(--gr-font-display);
  color: var(--gr-ink);
  margin: 0;
  font-weight: 800;
  letter-spacing: -0.028em;
  line-height: 1.05;
}

p { margin: 0; }
ul, ol { margin: 0; padding: 0; }
li { list-style: none; }

:focus-visible {
  outline: 3px solid var(--gr-ink);
  outline-offset: 2px;
  border-radius: 2px;
}

::selection { background: var(--gr-accent); color: var(--gr-ink); }

.gr-shell {
  width: 100%;
  max-width: var(--gr-shell-w);
  margin-inline: auto;
  padding-inline: var(--gr-shell-pad);
}

.gr-skip {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 100;
  background: var(--gr-accent);
  color: var(--gr-ink);
  padding: 12px 20px;
  font-weight: 600;
  border-radius: 0 0 var(--gr-r-slab) 0;
}
.gr-skip:focus { left: 0; }

[id] { scroll-margin-top: calc(var(--gr-head-h) + 20px); }

/* ---------- shared bits ---------- */
.gr-pill {
  display: inline-flex;
  align-items: center;
  gap: var(--gr-s-8);
  border-radius: var(--gr-r-pill);
  border: 1px solid transparent;
  padding: 12px 24px;
  font-family: var(--gr-font-body);
  font-size: var(--gr-t-small);
  font-weight: 600;
  letter-spacing: -0.006em;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
  background: none;
  transition: background-color .16s ease, color .16s ease, border-color .16s ease;
}
.gr-pill--solid { background: var(--gr-accent); color: var(--gr-ink); }
.gr-pill--solid:hover { filter: brightness(0.92); }
.gr-pill--ghost { border-color: var(--gr-ink); color: var(--gr-ink); background: var(--gr-paper); }
.gr-pill--ghost:hover { background: var(--gr-ink); color: var(--gr-paper); }
.gr-pill--quiet { border-color: var(--gr-line-strong); color: var(--gr-ink); padding: 10px 18px; font-size: var(--gr-t-caption); }
.gr-pill--quiet:hover { border-color: var(--gr-ink); }
.gr-pill svg { width: 16px; height: 16px; flex: none; }

.gr-textlink {
  font-weight: 600;
  font-size: var(--gr-t-small);
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
  text-decoration-color: var(--gr-accent);
  color: var(--gr-ink);
}
.gr-textlink:hover { background: var(--gr-accent); }

.gr-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border-radius: var(--gr-r-pill);
  border: var(--gr-hair);
  padding: 6px 12px;
  font-size: var(--gr-t-micro);
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--gr-mute);
  background: var(--gr-paper);
  white-space: nowrap;
}
.gr-chip svg { width: 13px; height: 13px; flex: none; }
.gr-chip--flag { color: var(--gr-ink); border-color: var(--gr-ink); }

.gr-mark {
  background: var(--gr-accent);
  color: var(--gr-ink);
  padding: 0 0.1em;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

.gr-tinted { background: var(--gr-tint); }
.gr-tinted-soft { background: var(--gr-tint-soft); }

.gr-preamble { margin-bottom: var(--gr-s-40); }
.gr-preamble__kicker {
  display: block;
  font-size: var(--gr-t-micro);
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gr-mute);
  margin-bottom: var(--gr-s-12);
}
.gr-preamble__kicker::before {
  content: "";
  display: inline-block;
  width: 22px;
  height: 3px;
  background: var(--gr-accent);
  vertical-align: middle;
  margin-right: 10px;
}
.gr-preamble__title { font-size: var(--gr-t-title); font-weight: 800; }
.gr-preamble__note {
  margin-top: var(--gr-s-16);
  color: var(--gr-mute);
  max-width: 68ch;
  font-size: var(--gr-t-small);
}

.gr-stars { display: block; width: 104px; height: auto; }
.gr-stars--sm { width: 84px; }

/* ---------- masthead ---------- */
.gr-masthead {
  position: sticky;
  top: 0;
  z-index: 60;
  background: var(--gr-paper);
  border-bottom: var(--gr-hair);
}
.gr-masthead__inner {
  min-height: var(--gr-head-h);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--gr-s-16);
}
.gr-wordmark {
  font-family: var(--gr-font-display);
  font-weight: 900;
  font-size: 21px;
  letter-spacing: -0.03em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--gr-ink);
  line-height: 1;
  white-space: nowrap;
}
.gr-wordmark__tail { color: var(--gr-accent); }
.gr-wordmark--lg { font-size: 30px; }

.gr-masthead__links { display: none; }
.gr-masthead__list { display: flex; align-items: center; gap: var(--gr-s-4); }
.gr-masthead__link {
  display: inline-block;
  padding: 9px 14px;
  border-radius: var(--gr-r-pill);
  font-size: var(--gr-t-caption);
  font-weight: 600;
  color: var(--gr-ink);
  text-decoration: none;
  white-space: nowrap;
}
.gr-masthead__link:hover { background: var(--gr-tint); }
.gr-masthead__link--live { box-shadow: inset 0 -3px 0 var(--gr-accent); }
.gr-masthead__cta { display: none; }

.gr-burger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: var(--gr-hair);
  border-radius: var(--gr-r-pill);
  background: var(--gr-paper);
  color: var(--gr-ink);
  cursor: pointer;
}
.gr-burger svg { width: 20px; height: 20px; }
.gr-burger__close { display: none; }
.gr-burger[aria-expanded="true"] .gr-burger__open { display: none; }
.gr-burger[aria-expanded="true"] .gr-burger__close { display: block; }

.gr-drawer {
  display: none;
  border-top: var(--gr-hair);
  background: var(--gr-paper);
}
.gr-drawer[data-open="true"] { display: block; }
.gr-drawer__list { padding: var(--gr-s-12) 0 var(--gr-s-24); }
.gr-drawer__link {
  display: block;
  padding: 13px 0;
  border-bottom: var(--gr-hair);
  font-size: var(--gr-t-small);
  font-weight: 600;
  text-decoration: none;
  color: var(--gr-ink);
}
.gr-drawer__foot { padding-bottom: var(--gr-s-24); }

@media (min-width: 1024px) {
  .gr-masthead__links { display: block; }
  .gr-masthead__cta { display: inline-flex; }
  .gr-burger { display: none; }
  .gr-drawer { display: none !important; }
}
@media (min-width: 1024px) and (max-width: 1279px) {
  .gr-masthead__link { padding-inline: 9px; }
  .gr-masthead__cta { padding-inline: 18px; }
}

/* ---------- opener (hero) ---------- */
.gr-opener { padding-block: clamp(40px, 6vw, 72px) clamp(48px, 7vw, 88px); }
.gr-opener__inner { display: grid; gap: clamp(32px, 5vw, 56px); }
.gr-opener__inner > * { min-width: 0; }
.gr-opener__text { min-width: 0; }
.gr-opener__eyebrow {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--gr-s-8) var(--gr-s-12);
  font-size: var(--gr-t-micro);
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gr-mute);
  margin-bottom: var(--gr-s-24);
}
.gr-opener__dot { width: 5px; height: 5px; border-radius: 50%; background: var(--gr-accent); }
.gr-opener__headline {
  font-family: var(--gr-font-display);
  font-weight: 900;
  font-size: var(--gr-t-display);
  line-height: 0.88;
  letter-spacing: -0.04em;
  text-transform: uppercase;
  color: var(--gr-ink);
}
.gr-opener__lede {
  margin-top: var(--gr-s-24);
  font-size: var(--gr-t-lead);
  line-height: 1.4;
  color: var(--gr-mute);
  max-width: 46ch;
}
.gr-opener__actions {
  margin-top: var(--gr-s-32);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--gr-s-20);
}
.gr-opener__facts {
  margin-top: var(--gr-s-40);
  display: flex;
  flex-wrap: wrap;
  gap: var(--gr-s-32);
  padding-top: var(--gr-s-24);
  border-top: var(--gr-hair);
}
.gr-opener__fact { min-width: 96px; }
.gr-opener__factnum {
  font-family: var(--gr-font-display);
  font-weight: 900;
  font-size: 28px;
  letter-spacing: -0.03em;
  color: var(--gr-ink);
  line-height: 1;
}
.gr-opener__factlabel {
  display: block;
  margin-top: 6px;
  font-size: var(--gr-t-micro);
  color: var(--gr-mute);
  letter-spacing: 0.02em;
  text-transform: uppercase;
  font-weight: 600;
}

.gr-showcase {
  border: var(--gr-hair);
  border-radius: var(--gr-r-big);
  padding: var(--gr-s-16);
  background: var(--gr-paper);
  min-width: 0;
}
.gr-showcase__plate {
  border-radius: 20px;
  overflow: hidden;
  background: var(--gr-tint);
  aspect-ratio: 1 / 1;
}
.gr-showcase__plate img { width: 100%; height: 100%; object-fit: cover; }
.gr-showcase__rail {
  display: flex;
  align-items: center;
  gap: var(--gr-s-8);
  padding: var(--gr-s-16) var(--gr-s-8) var(--gr-s-4);
  overflow-x: auto;
  min-width: 0;
  scrollbar-width: thin;
}
.gr-showcase__rail img {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  border: var(--gr-hair);
  flex: none;
}
.gr-showcase__caption {
  padding: 0 var(--gr-s-8) var(--gr-s-8);
  font-size: var(--gr-t-micro);
  color: var(--gr-mute);
  letter-spacing: 0.02em;
  text-transform: uppercase;
  font-weight: 600;
}

@media (min-width: 1024px) {
  .gr-opener__inner { grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr); align-items: center; }
}

/* ---------- dossier (about) ---------- */
.gr-dossier { padding-block: clamp(48px, 7vw, 88px); border-top: var(--gr-hair); }
.gr-dossier__inner { display: grid; gap: clamp(28px, 4vw, 48px); }
.gr-dossier__inner > * { min-width: 0; }
.gr-dossier__body { display: grid; gap: var(--gr-s-20); }
.gr-dossier__body p { max-width: 72ch; color: var(--gr-ink-soft); }
.gr-dossier__panel {
  border: var(--gr-hair);
  border-radius: var(--gr-r-big);
  padding: var(--gr-s-32);
  background: var(--gr-paper);
  align-self: start;
}
.gr-dossier__ctitle {
  font-size: 20px;
  font-weight: 800;
  letter-spacing: -0.02em;
  margin-bottom: var(--gr-s-12);
}
.gr-dossier__ctext { font-size: var(--gr-t-small); color: var(--gr-mute); margin-bottom: var(--gr-s-16); }
.gr-dossier__mail {
  font-family: var(--gr-font-display);
  font-weight: 700;
  font-size: clamp(17px, 2vw, 21px);
  letter-spacing: -0.02em;
  color: var(--gr-ink);
  text-decoration: underline;
  text-decoration-thickness: 3px;
  text-underline-offset: 5px;
  text-decoration-color: var(--gr-accent);
  word-break: break-word;
}
.gr-dossier__mail:hover { background: var(--gr-accent); }
.gr-dossier__list { margin-top: var(--gr-s-24); display: grid; gap: var(--gr-s-12); }
.gr-dossier__row {
  display: flex;
  gap: var(--gr-s-12);
  font-size: var(--gr-t-caption);
  color: var(--gr-mute);
  padding-top: var(--gr-s-12);
  border-top: var(--gr-hair);
}
.gr-dossier__row b { color: var(--gr-ink); font-weight: 700; }

@media (min-width: 1024px) {
  .gr-dossier__inner { grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.65fr); }
}

/* ---------- ledger (catalogue) ---------- */
.gr-ledger { padding-block: clamp(48px, 7vw, 88px); }
.gr-ledger__list { display: grid; gap: var(--gr-s-20); width: 100%; }

.gr-entry {
  display: grid;
  gap: var(--gr-s-24);
  background: var(--gr-paper);
  border: var(--gr-hair);
  border-radius: var(--gr-r-big);
  padding: var(--gr-s-20);
}
.gr-entry__media { position: relative; }
.gr-entry__shot {
  aspect-ratio: 4 / 5;
  border-radius: 20px;
  background: var(--gr-tint);
  border: var(--gr-hair);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.gr-entry__shot img { width: 100%; height: 100%; object-fit: contain; }
.gr-entry__shot--wide img { object-fit: cover; object-position: center; }
.gr-entry__badge {
  position: absolute;
  left: 12px;
  bottom: 12px;
  width: 60px;
  height: 60px;
  border-radius: 16px;
  border: 3px solid var(--gr-paper);
  background: var(--gr-paper);
}
.gr-entry { min-width: 0; }
.gr-entry > * { min-width: 0; }
.gr-entry__body { display: grid; gap: var(--gr-s-20); align-content: start; }
.gr-entry__body > * { min-width: 0; }
.gr-entry__split > * { min-width: 0; }
.gr-entry__top { display: flex; align-items: baseline; gap: var(--gr-s-12); }
.gr-entry__index {
  font-family: var(--gr-font-display);
  font-weight: 900;
  font-size: var(--gr-t-micro);
  letter-spacing: 0.08em;
  color: var(--gr-ink);
  background: var(--gr-accent);
  border-radius: var(--gr-r-pill);
  padding: 3px 9px;
  flex: none;
}
.gr-entry__rule { flex: 1; height: 1px; background: var(--gr-line); }
.gr-entry__kind {
  font-size: var(--gr-t-micro);
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gr-mute);
  flex: none;
}
.gr-entry__title { font-size: clamp(21px, 2.6vw, 28px); font-weight: 800; letter-spacing: -0.03em; }
.gr-entry__dev { margin-top: 6px; font-size: var(--gr-t-caption); color: var(--gr-mute); }
.gr-entry__dev b { color: var(--gr-ink); font-weight: 600; }
.gr-entry__text { font-size: var(--gr-t-small); color: var(--gr-ink-soft); max-width: 62ch; }
.gr-entry__split { display: grid; gap: var(--gr-s-20); }
.gr-entry__gauge {
  display: flex;
  align-items: center;
  gap: var(--gr-s-16);
  padding-top: var(--gr-s-16);
  border-top: 1px solid var(--gr-line);
}
.gr-entry__score {
  font-family: var(--gr-font-display);
  font-weight: 900;
  font-size: 40px;
  line-height: 0.9;
  letter-spacing: -0.04em;
  color: var(--gr-ink);
}
.gr-entry__votes { display: block; margin-top: 8px; font-size: var(--gr-t-micro); color: var(--gr-mute); }
.gr-entry__source {
  display: block;
  font-size: var(--gr-t-micro);
  color: var(--gr-mute);
  letter-spacing: 0.02em;
}
.gr-entry__foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--gr-s-12);
  padding-top: var(--gr-s-16);
  border-top: var(--gr-hair);
}
.gr-entry__chips { display: flex; flex-wrap: wrap; gap: var(--gr-s-8); }
.gr-entry__store { margin-left: auto; }

@media (min-width: 768px) {
  .gr-entry { grid-template-columns: 232px minmax(0, 1fr); gap: var(--gr-s-32); padding: var(--gr-s-24); }
  .gr-entry__split { grid-template-columns: minmax(0, 1fr) 190px; gap: var(--gr-s-32); align-items: start; }
  .gr-entry__gauge {
    border-top: 0;
    border-left: 1px solid var(--gr-line);
    padding-top: 0;
    padding-left: var(--gr-s-24);
    display: block;
  }
  .gr-entry__gauge .gr-stars { margin-top: var(--gr-s-12); }
}
@media (min-width: 1024px) {
  .gr-entry { grid-template-columns: 264px minmax(0, 1fr); }
}

/* ---------- rubric (how we rate) ---------- */
.gr-rubric { padding-block: clamp(48px, 7vw, 88px); border-top: var(--gr-hair); }
.gr-rubric__list { display: grid; gap: var(--gr-s-24); width: 100%; }
.gr-rubric__item { padding-top: var(--gr-s-20); border-top: 3px solid var(--gr-ink); }
.gr-rubric__icon { display: block; color: var(--gr-ink); margin-bottom: var(--gr-s-16); }
.gr-rubric__icon svg { display: block; width: 26px; height: 26px; }
.gr-rubric__title { font-size: 19px; font-weight: 800; letter-spacing: -0.02em; margin-bottom: var(--gr-s-8); }
.gr-rubric__text { font-size: var(--gr-t-caption); color: var(--gr-mute); }
.gr-rubric__note {
  margin-top: var(--gr-s-40);
  border: var(--gr-hair);
  border-radius: var(--gr-r-big);
  padding: var(--gr-s-32);
  background: var(--gr-paper);
  display: grid;
  gap: var(--gr-s-16);
}
.gr-rubric__note p { font-size: var(--gr-t-small); color: var(--gr-mute); max-width: 78ch; }
.gr-rubric__note b { color: var(--gr-ink); font-weight: 600; }
.gr-rubric__notetitle { font-size: 20px; font-weight: 800; letter-spacing: -0.02em; }

@media (min-width: 768px) { .gr-rubric__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--gr-s-32); } }
@media (min-width: 1024px) { .gr-rubric__list { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--gr-s-24); } }

/* ---------- roster (membership) ---------- */
.gr-roster { padding-block: clamp(48px, 7vw, 88px); border-top: var(--gr-hair); }
.gr-roster__list { display: grid; gap: var(--gr-s-20); width: 100%; }
.gr-roster__list > * { min-width: 0; }
.gr-roster__fine {
  margin-top: var(--gr-s-24);
  padding-top: var(--gr-s-20);
  border-top: var(--gr-hair);
  font-size: var(--gr-t-caption);
  color: var(--gr-mute);
  max-width: 78ch;
}
.gr-roster__fine a { color: var(--gr-ink); text-decoration: underline; text-decoration-color: var(--gr-accent); text-decoration-thickness: 2px; text-underline-offset: 3px; }

.gr-seat {
  display: flex;
  flex-direction: column;
  border: var(--gr-hair);
  border-radius: var(--gr-r-big);
  padding: clamp(24px, 3.4vw, 36px);
  background: var(--gr-paper);
  min-width: 0;
}
.gr-seat--plus { border: 2px solid var(--gr-ink); }
.gr-seat__kind {
  align-self: start;
  font-family: var(--gr-font-display);
  font-weight: 900;
  font-size: var(--gr-t-micro);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gr-ink);
  border: 1px solid var(--gr-line-strong);
  border-radius: var(--gr-r-pill);
  padding: 4px 12px;
  line-height: 1.2;
}
.gr-seat--plus .gr-seat__kind { background: var(--gr-accent); border-color: var(--gr-accent); }
.gr-seat__price {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--gr-s-8) var(--gr-s-12);
  margin-top: var(--gr-s-20);
}
.gr-seat__amount {
  font-family: var(--gr-font-display);
  font-weight: 900;
  font-size: clamp(34px, 5vw, 48px);
  line-height: 0.9;
  letter-spacing: -0.04em;
  color: var(--gr-ink);
}
.gr-seat__term {
  font-size: var(--gr-t-micro);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gr-mute);
}
.gr-seat__alt { margin-top: var(--gr-s-8); font-size: var(--gr-t-caption); color: var(--gr-mute); }
.gr-seat__text { margin-top: var(--gr-s-16); font-size: var(--gr-t-small); color: var(--gr-mute); max-width: 44ch; }
.gr-seat__list {
  display: grid;
  align-content: start;
  gap: var(--gr-s-12);
  margin-top: var(--gr-s-24);
  padding-top: var(--gr-s-24);
  border-top: var(--gr-hair);
  flex: 1;
}
.gr-seat__row { display: flex; gap: var(--gr-s-12); font-size: var(--gr-t-small); color: var(--gr-ink-soft); }
.gr-seat__row svg { width: 18px; height: 18px; flex: none; margin-top: 4px; color: var(--gr-ink); }
.gr-seat__row span { min-width: 0; }
.gr-seat__cta { align-self: start; margin-top: var(--gr-s-24); }
@media (min-width: 768px) { .gr-roster__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--gr-s-24); align-items: stretch; } }

/* ---------- tally (stats) ---------- */
.gr-tally { padding-block: clamp(44px, 6vw, 72px); }
.gr-tally__list { display: grid; gap: var(--gr-s-24); width: 100%; }
.gr-tally__item { padding: var(--gr-s-24) 0 0; border-top: var(--gr-hair); }
.gr-tally__num {
  font-family: var(--gr-font-display);
  font-weight: 900;
  font-size: clamp(40px, 6vw, 61px);
  line-height: 0.9;
  letter-spacing: -0.045em;
  color: var(--gr-ink);
}
.gr-tally__label { display: block; margin-top: var(--gr-s-12); font-size: var(--gr-t-caption); color: var(--gr-mute); max-width: 26ch; }
@media (min-width: 640px) { .gr-tally__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--gr-s-32); } }
@media (min-width: 1024px) { .gr-tally__list { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* ---------- voices (reviews) ---------- */
.gr-voices { padding-block: clamp(48px, 7vw, 88px); border-top: var(--gr-hair); }
.gr-voices__list { display: grid; gap: var(--gr-s-20); width: 100%; }
.gr-voice {
  border: var(--gr-hair);
  border-radius: var(--gr-r-big);
  padding: var(--gr-s-24);
  background: var(--gr-paper);
  display: flex;
  flex-direction: column;
  gap: var(--gr-s-16);
}
.gr-voice__stars { color: var(--gr-accent); }
.gr-voice__quote { font-size: var(--gr-t-small); color: var(--gr-ink-soft); flex: 1; }
.gr-voice__quote q { quotes: "\201C" "\201D"; }
.gr-voice__who { display: flex; align-items: center; gap: var(--gr-s-12); padding-top: var(--gr-s-16); border-top: var(--gr-hair); }
.gr-voice__mono {
  width: 42px;
  height: 42px;
  flex: none;
  border-radius: var(--gr-r-slab);
  background: var(--gr-ink);
  color: var(--gr-paper);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--gr-font-display);
  font-weight: 800;
  font-size: var(--gr-t-caption);
  letter-spacing: 0.02em;
}
.gr-voice__name { font-size: var(--gr-t-caption); font-weight: 700; color: var(--gr-ink); }
.gr-voice__meta { display: block; font-size: var(--gr-t-micro); color: var(--gr-mute); margin-top: 3px; }
@media (min-width: 768px) { .gr-voices__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--gr-s-24); } }

/* ---------- dispatch (subscribe) ---------- */
.gr-dispatch { padding-block: clamp(48px, 7vw, 88px); }
.gr-dispatch__panel {
  width: 100%;
  border: var(--gr-hair);
  border-radius: var(--gr-r-big);
  background: var(--gr-paper);
  padding: clamp(24px, 4vw, 48px);
  display: grid;
  gap: clamp(24px, 3vw, 40px);
}
.gr-dispatch__title { font-size: var(--gr-t-sub); font-weight: 800; }
.gr-dispatch__text { margin-top: var(--gr-s-16); font-size: var(--gr-t-small); color: var(--gr-mute); max-width: 52ch; }
.gr-dispatch__panel > * { min-width: 0; }
.gr-dispatch__form { display: grid; gap: var(--gr-s-16); width: 100%; }
.gr-dispatch__pair > * { min-width: 0; }
.gr-dispatch__pair { display: grid; gap: var(--gr-s-16); }
.gr-dispatch__field { display: grid; gap: var(--gr-s-8); }
.gr-dispatch__label { font-size: var(--gr-t-micro); font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gr-mute); }
.gr-dispatch__input {
  width: 100%;
  border: 1px solid var(--gr-line-strong);
  border-radius: var(--gr-r-input);
  padding: 13px 16px;
  font-family: var(--gr-font-body);
  font-size: var(--gr-t-small);
  color: var(--gr-ink);
  background: var(--gr-paper);
}
.gr-dispatch__input:focus { border-color: var(--gr-ink); outline: 2px solid var(--gr-ink); outline-offset: 1px; }
.gr-dispatch__consent { display: flex; gap: var(--gr-s-12); align-items: flex-start; font-size: var(--gr-t-caption); color: var(--gr-mute); }
.gr-dispatch__consent input {
  width: 20px;
  height: 20px;
  margin: 2px 0 0;
  flex: none;
  accent-color: var(--gr-accent);
}
.gr-dispatch__consent a { color: var(--gr-ink); text-decoration: underline; text-decoration-color: var(--gr-accent); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.gr-dispatch__submit { justify-self: start; }
.gr-dispatch__ok {
  display: none;
  align-items: center;
  gap: var(--gr-s-12);
  border: 2px solid var(--gr-ink);
  border-radius: var(--gr-r-slab);
  padding: var(--gr-s-16);
  font-size: var(--gr-t-caption);
  font-weight: 600;
  color: var(--gr-ink);
}
.gr-dispatch__ok[data-shown="true"] { display: flex; }
.gr-dispatch__ok svg { width: 20px; height: 20px; flex: none; }
.gr-dispatch__fine { font-size: var(--gr-t-micro); color: var(--gr-mute); }
@media (min-width: 768px) { .gr-dispatch__pair { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .gr-dispatch__panel { grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); align-items: start; } }

/* ---------- queries (faq) ---------- */
.gr-queries { padding-block: clamp(48px, 7vw, 88px); border-top: var(--gr-hair); }
.gr-queries__list { width: 100%; border-top: 1px solid var(--gr-ink); }
.gr-query { border-bottom: 1px solid var(--gr-line); }
.gr-query__btn {
  width: 100%;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--gr-s-20);
  padding: var(--gr-s-24) 0;
  background: none;
  border: 0;
  cursor: pointer;
  text-align: left;
  font-family: var(--gr-font-display);
  font-weight: 700;
  font-size: clamp(17px, 2.1vw, 22px);
  letter-spacing: -0.02em;
  color: var(--gr-ink);
  line-height: 1.25;
}
.gr-query__sign {
  flex: none;
  width: 34px;
  height: 34px;
  border-radius: var(--gr-r-pill);
  border: 1px solid var(--gr-line-strong);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform .2s ease, background-color .2s ease, border-color .2s ease;
}
.gr-query__sign svg { width: 15px; height: 15px; }
.gr-query__btn[aria-expanded="true"] .gr-query__sign { transform: rotate(45deg); background: var(--gr-accent); border-color: var(--gr-accent); }
.gr-query__panel { display: none; padding: 0 0 var(--gr-s-24); }
.gr-query__panel[data-open="true"] { display: block; }
.gr-query__panel p { font-size: var(--gr-t-small); color: var(--gr-mute); max-width: 80ch; }
.gr-query__panel p + p { margin-top: var(--gr-s-12); }

/* ---------- arrivals (fresh) ---------- */
.gr-arrivals { padding-block: clamp(48px, 7vw, 88px); }
.gr-arrivals__list { display: grid; gap: var(--gr-s-16); width: 100%; }
.gr-arrival {
  display: flex;
  align-items: center;
  gap: var(--gr-s-16);
  border: var(--gr-hair);
  border-radius: var(--gr-r-big);
  padding: var(--gr-s-20);
  background: var(--gr-paper);
  text-decoration: none;
  transition: border-color .16s ease;
}
.gr-arrival:hover { border-color: var(--gr-ink); }
.gr-arrival img { width: 64px; height: 64px; border-radius: 16px; border: var(--gr-hair); flex: none; }
.gr-arrival__body { min-width: 0; flex: 1; }
.gr-arrival__tag {
  display: block;
  font-size: var(--gr-t-micro);
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gr-mute);
}
.gr-arrival__title {
  display: block;
  font-family: var(--gr-font-display);
  font-weight: 800;
  font-size: 17px;
  letter-spacing: -0.02em;
  color: var(--gr-ink);
  margin-top: 4px;
  overflow-wrap: anywhere;
}
.gr-arrival__score { display: block; margin-top: 6px; font-size: var(--gr-t-micro); color: var(--gr-mute); }
.gr-arrival__go { flex: none; color: var(--gr-ink); }
.gr-arrival__go svg { display: block; width: 22px; height: 22px; }
@media (min-width: 768px) { .gr-arrivals__list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gr-s-20); } }

/* ---------- colophon (footer) ---------- */
.gr-colophon { border-top: 1px solid var(--gr-ink); padding-block: clamp(44px, 6vw, 72px) var(--gr-s-32); }
.gr-colophon__top { display: grid; gap: clamp(28px, 4vw, 48px); }
.gr-colophon__blurb { margin-top: var(--gr-s-16); font-size: var(--gr-t-caption); color: var(--gr-mute); max-width: 40ch; }
.gr-colophon__title {
  font-size: var(--gr-t-micro);
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gr-mute);
  margin-bottom: var(--gr-s-16);
  font-family: var(--gr-font-body);
}
.gr-colophon__list { display: grid; gap: var(--gr-s-8); }
.gr-colophon__link {
  font-size: var(--gr-t-caption);
  font-weight: 500;
  color: var(--gr-ink);
  text-decoration: none;
}
.gr-colophon__link:hover { text-decoration: underline; text-decoration-color: var(--gr-accent); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.gr-colophon__mail {
  font-size: var(--gr-t-small);
  font-weight: 600;
  color: var(--gr-ink);
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
  text-decoration-color: var(--gr-accent);
  word-break: break-word;
}
.gr-colophon__mail:hover { background: var(--gr-accent); }
.gr-colophon__note { margin-top: var(--gr-s-12); font-size: var(--gr-t-micro); color: var(--gr-mute); max-width: 34ch; }
.gr-colophon__base {
  margin-top: clamp(32px, 5vw, 56px);
  padding-top: var(--gr-s-24);
  border-top: var(--gr-hair);
  display: flex;
  flex-wrap: wrap;
  gap: var(--gr-s-12) var(--gr-s-24);
  align-items: center;
  justify-content: space-between;
  font-size: var(--gr-t-micro);
  color: var(--gr-mute);
}
.gr-colophon__legal { display: flex; flex-wrap: wrap; gap: var(--gr-s-20); }
.gr-colophon__legal a { color: var(--gr-mute); text-decoration: none; }
.gr-colophon__legal a:hover { color: var(--gr-ink); }
@media (min-width: 768px) { .gr-colophon__top { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr); } }

/* ---------- notice (cookie banner) ---------- */
.gr-notice {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 80;
  background: var(--gr-paper);
  border-top: 1px solid var(--gr-ink);
  padding: var(--gr-s-16) 0;
  display: none;
}
.gr-notice[data-shown="true"] { display: block; }
.gr-notice__inner { display: flex; flex-wrap: wrap; align-items: center; gap: var(--gr-s-16); justify-content: space-between; }
.gr-notice__text { font-size: var(--gr-t-caption); color: var(--gr-mute); max-width: 74ch; }
.gr-notice__text a { color: var(--gr-ink); text-decoration: underline; text-decoration-color: var(--gr-accent); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.gr-notice__actions { display: flex; gap: var(--gr-s-12); flex-wrap: wrap; }

/* ---------- ascend (back to top) ---------- */
.gr-ascend {
  position: fixed;
  right: 18px;
  bottom: 88px;
  z-index: 70;
  width: 46px;
  height: 46px;
  border-radius: var(--gr-r-pill);
  border: 1px solid var(--gr-ink);
  background: var(--gr-paper);
  color: var(--gr-ink);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transition: opacity .2s ease, visibility .2s ease, background-color .16s ease;
}
.gr-ascend[data-shown="true"] { opacity: 1; visibility: visible; }
.gr-ascend:hover { background: var(--gr-accent); }
.gr-ascend svg { width: 18px; height: 18px; }

/* ---------- legal documents ---------- */
.gr-doc { padding-block: clamp(40px, 6vw, 72px) clamp(48px, 7vw, 88px); }
.gr-doc__inner { width: 100%; }
.gr-doc__back { margin-bottom: var(--gr-s-24); }
.gr-doc__title { font-size: var(--gr-t-title); font-weight: 900; letter-spacing: -0.035em; text-transform: uppercase; font-family: var(--gr-font-display); }
.gr-doc__stamp {
  margin-top: var(--gr-s-16);
  display: flex;
  flex-wrap: wrap;
  gap: var(--gr-s-8) var(--gr-s-20);
  font-size: var(--gr-t-micro);
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gr-mute);
  padding-bottom: var(--gr-s-24);
  border-bottom: 1px solid var(--gr-ink);
}
.gr-doc__body { margin-top: var(--gr-s-40); display: grid; gap: var(--gr-s-32); }
.gr-doc__body h2 { font-size: clamp(20px, 2.6vw, 26px); font-weight: 800; margin-bottom: var(--gr-s-12); }
.gr-doc__body h3 { font-size: 18px; font-weight: 700; margin: var(--gr-s-20) 0 var(--gr-s-8); }
.gr-doc__body p { font-size: var(--gr-t-small); color: var(--gr-ink-soft); max-width: 78ch; }
.gr-doc__body p + p { margin-top: var(--gr-s-12); }
.gr-doc__body a { color: var(--gr-ink); text-decoration: underline; text-decoration-color: var(--gr-accent); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.gr-doc__body ul { display: grid; gap: var(--gr-s-8); margin-top: var(--gr-s-12); max-width: 78ch; }
.gr-doc__body li { position: relative; padding-left: 22px; font-size: var(--gr-t-small); color: var(--gr-ink-soft); }
.gr-doc__body li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 11px;
  width: 10px;
  height: 3px;
  background: var(--gr-accent);
}
.gr-doc__block { border-top: var(--gr-hair); padding-top: var(--gr-s-24); }
.gr-doc__block:first-child { border-top: 0; padding-top: 0; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}
