/* Joker cards concept: "The Headliner". Every deck is a show bill starring the bride.
   One DOM, two themes, three levels, two media (print on white paper, screen in the room). */

@font-face {
  font-family: "Anton";
  src: url("../fonts/anton-latin-400-normal.woff2") format("woff2");
  font-weight: 400;
  font-display: block;
}
@font-face {
  font-family: "Bodoni Moda";
  src: url("../fonts/bodoni-moda-latin-400-normal.woff2") format("woff2");
  font-weight: 400;
  font-display: block;
}
@font-face {
  font-family: "Bodoni Moda";
  src: url("../fonts/bodoni-moda-latin-700-normal.woff2") format("woff2");
  font-weight: 700;
  font-display: block;
}
@font-face {
  font-family: "Inter";
  src: url("../fonts/inter-latin-400-normal.woff2") format("woff2");
  font-weight: 400;
  font-display: block;
}
@font-face {
  font-family: "Inter";
  src: url("../fonts/inter-latin-600-normal.woff2") format("woff2");
  font-weight: 600;
  font-display: block;
}
@font-face {
  font-family: "Inter";
  src: url("../fonts/inter-latin-800-normal.woff2") format("woff2");
  font-weight: 800;
  font-display: block;
}
@font-face {
  font-family: "Caveat";
  src: url("../fonts/caveat-latin-700-normal.woff2") format("woff2");
  font-weight: 700;
  font-display: block;
}

/* ---------- Theme tokens ---------- */

.t-mirrorball {
  --band-bg: var(--accent);
  --band-fg: #17121f;
  --paper: #ffffff;
  --ink: #17121f;
  --muted: #5b5468;
  --rule: #d9d4e2;
  --frame: #17121f;
  --display: "Anton", "Arial Narrow", sans-serif;
  --body: "Inter", system-ui, sans-serif;
  --prompt-font: var(--body);
  --prompt-weight: 800;
  --prompt-lh: 1.13;
  --prompt-track: -0.012em;
  --type-font: var(--display);
  --type-weight: 400;
  --type-size: 12.5cqw;
  --type-track: 0.01em;
  --type-case: uppercase;
  --align: left;
  --justify: center;
  --frame-w: 0.9cqw;
  --frame-r: 3cqw;
  --pip-r: 0.4cqw;
  --quote-font: var(--body);
  --quote-weight: 800;
  --quote-scale: 1;
}
.t-mirrorball.a-pink {
  --accent: #ff2e88;
  --accent-ink: #c8005f;
  --accent-soft: #ffd3e6;
}
.t-mirrorball.a-violet {
  --accent: #7b5cff;
  --accent-ink: #5233d6;
  --accent-soft: #e3dcff;
}
.t-mirrorball.a-gold {
  --accent: #f2b600;
  --accent-ink: #8c6300;
  --accent-soft: #ffecb0;
}
.t-mirrorball.a-teal {
  --accent: #00a8a8;
  --accent-ink: #006e6c;
  --accent-soft: #c6efed;
}
.t-mirrorball[data-medium="screen"] {
  --paper: #1d1729;
  --ink: #fbf6ff;
  --muted: #b8afca;
  --rule: #3a3149;
  --frame: #fbf6ff;
}
.t-mirrorball[data-medium="screen"].a-pink {
  --accent-ink: #ff6aac;
  --accent-soft: #5a1d3d;
}
.t-mirrorball[data-medium="screen"].a-violet {
  --accent-ink: #a996ff;
  --accent-soft: #2f2560;
}
.t-mirrorball[data-medium="screen"].a-gold {
  --accent-ink: #ffd25a;
  --accent-soft: #4d3b06;
}
.t-mirrorball[data-medium="screen"].a-teal {
  --accent-ink: #4fdcd9;
  --accent-soft: #0b4342;
}

.t-garden {
  --band-bg: var(--accent-ink);
  --band-fg: #ffffff;
  --paper: #ffffff;
  --ink: #1e3a2b;
  --muted: #587060;
  --rule: #c9d6cc;
  --frame: #1e3a2b;
  --display: "Bodoni Moda", Didot, serif;
  --body: "Inter", system-ui, sans-serif;
  --prompt-font: var(--display);
  --prompt-weight: 700;
  --prompt-lh: 1.16;
  --prompt-track: 0;
  --type-font: var(--display);
  --type-weight: 700;
  --type-size: 6.6cqw;
  --type-track: 0.16em;
  --type-case: uppercase;
  --align: center;
  --justify: center;
  --frame-w: 0.45cqw;
  --frame-r: 0;
  --pip-r: 50%;
  --quote-font: "Caveat", cursive;
  --quote-weight: 700;
  --quote-scale: 1.24;
}
.t-garden.a-coral {
  --accent: #e5634f;
  --accent-ink: #b33e2c;
  --accent-soft: #fbdcd5;
}
.t-garden.a-marigold {
  --accent: #e0a21b;
  --accent-ink: #855b00;
  --accent-soft: #f8e7b8;
}
.t-garden.a-sage {
  --accent: #6e9a6a;
  --accent-ink: #3c6739;
  --accent-soft: #dcebd7;
}
.t-garden.a-lilac {
  --accent: #9a7bb8;
  --accent-ink: #694b88;
  --accent-soft: #e9dff3;
}
.t-garden[data-medium="screen"] {
  --paper: #fffcf4;
}

/* ---------- Card base ---------- */

.card {
  position: relative;
  container-type: inline-size;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--body);
  -webkit-font-smoothing: antialiased;
  print-color-adjust: exact;
  -webkit-print-color-adjust: exact;
}
.card__frame {
  position: absolute;
  inset: 3.6cqw;
  display: flex;
  flex-direction: column;
  padding: 5.2cqw 5.6cqw 4.2cqw;
  border: var(--frame-w) solid var(--frame);
  border-radius: var(--frame-r);
}
.card__head {
  display: flex;
  flex-direction: column;
  gap: 1cqw;
}
.card__type-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 2cqw;
}
.card__type {
  font-family: var(--type-font);
  font-weight: var(--type-weight);
  font-size: var(--type-size);
  letter-spacing: var(--type-track);
  text-transform: var(--type-case);
  line-height: 0.92;
  color: var(--ink);
}
.card__cue {
  font: 600 3.7cqw/1.2 var(--body);
  color: var(--muted);
  letter-spacing: 0.01em;
}
.card__body {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: var(--justify);
  padding: 3cqw 0;
}
.card__prompt {
  margin: 0;
  font-family: var(--prompt-font);
  font-weight: var(--prompt-weight);
  font-size: var(--fs, 8.6cqw);
  line-height: var(--prompt-lh);
  letter-spacing: var(--prompt-track);
  text-align: var(--align);
  text-wrap: pretty;
  hyphens: manual;
  overflow-wrap: break-word;
}
.fs-0 {
  --fs: 8.6cqw;
}
.fs-1 {
  --fs: 7.9cqw;
}
.fs-2 {
  --fs: 7.3cqw;
}
.fs-3 {
  --fs: 6.8cqw;
}
.fs-4 {
  --fs: 6.3cqw;
}
.card__prompt .is-name {
  color: var(--accent-ink);
}
.card__prompt .is-supplied {
  font-family: var(--quote-font);
  font-weight: var(--quote-weight);
  font-size: calc(var(--quote-scale) * 1em);
  line-height: 1;
}
.card__answer {
  display: flex;
  flex-direction: column;
  gap: 0.6cqw;
  margin: 0 0 2.4cqw;
  padding: 2.2cqw 0 0;
  border-top: 0.35cqw dashed var(--rule);
  text-align: var(--align);
  transform: rotate(180deg);
}
.card__answer-label {
  font: 600 3.2cqw/1.1 var(--body);
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.card__answer-text {
  font:
    700 5.6cqw/1.05 "Caveat",
    cursive;
  color: var(--accent-ink);
}
.card__foot {
  display: flex;
  align-items: center;
  gap: 2cqw;
  padding-top: 2.4cqw;
  border-top: 0.35cqw solid var(--rule);
  font: 600 3.3cqw/1 var(--body);
  color: var(--muted);
}
.card__set {
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  letter-spacing: 0.02em;
}
.card__level {
  display: inline-flex;
  gap: 0.9cqw;
  color: var(--ink);
}
.card__level i {
  width: 2.5cqw;
  height: 2.5cqw;
  border: 0.45cqw solid currentColor;
  border-radius: var(--pip-r);
  box-sizing: border-box;
}
.card__level i.on {
  background: currentColor;
}
.card__mark {
  display: inline-flex;
  width: 4.6cqw;
  height: 4.6cqw;
  color: var(--accent-ink);
}
.card__mark .icon,
.card__motif .icon,
.card__sprig .icon {
  width: 100%;
  height: 100%;
}
.card__num {
  font-variant-numeric: tabular-nums;
}
.card__motif,
.card__sprig {
  display: none;
  flex: none;
}

/* Level band: color, name and pips say the same thing. */
.card__band {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: -5.2cqw -5.6cqw 4cqw;
  padding: 2cqw 5.6cqw;
  background: var(--band-bg);
  color: var(--band-fg);
  font: 800 3.5cqw/1 var(--body);
  text-transform: uppercase;
  letter-spacing: 0.14em;
  border-radius: calc(var(--frame-r) - var(--frame-w))
    calc(var(--frame-r) - var(--frame-w)) 0 0;
}
.lvl-3 .card__band {
  background: var(--ink);
  color: var(--paper);
}
.card__age {
  padding: 0.6cqw 1.4cqw;
  border: 0.4cqw solid currentColor;
  border-radius: 1cqw;
  letter-spacing: 0.04em;
}
.lvl-2 .card__frame {
  border-color: var(--accent);
}

/* ---------- Mirrorball: gig poster, left aligned, ticket notches, sparkle ---------- */

.t-mirrorball .card__motif {
  display: block;
  width: 8.5cqw;
  height: 8.5cqw;
  color: var(--accent);
  margin-top: -0.6cqw;
}
.t-mirrorball .card__type {
  color: var(--ink);
}
.t-mirrorball .lvl-1 .card__type {
  color: var(--ink);
}
.t-mirrorball .type-encore .card__type,
.t-mirrorball .type-guess .card__type {
  color: var(--accent-ink);
}
.t-mirrorball .card__prompt .is-supplied {
  background: linear-gradient(
    transparent 58%,
    var(--accent-soft) 58%,
    var(--accent-soft) 94%,
    transparent 94%
  );
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}
.t-mirrorball .card__level i {
  border-radius: var(--pip-r);
  transform: rotate(45deg);
  width: 2.2cqw;
  height: 2.2cqw;
}
.t-mirrorball .card__set {
  font: 400 4.1cqw/1 var(--display);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ink);
}

/* ---------- Garden: letterpress playbill, centered, double rule, sprigs ---------- */

.t-garden .card__frame {
  box-shadow:
    inset 0 0 0 1.3cqw var(--paper),
    inset 0 0 0 1.62cqw var(--frame);
  padding: 6.4cqw 6.8cqw 5.2cqw;
}
.t-garden .card__head {
  align-items: center;
  text-align: center;
}
.t-garden .card__type-row {
  position: relative;
  justify-content: center;
  width: 100%;
}
.t-garden .card__type {
  color: var(--accent-ink);
  padding: 0 6cqw;
}
.t-garden .card__sprig {
  display: block;
  position: absolute;
  width: 11cqw;
  height: 11cqw;
  color: var(--accent);
}
.t-garden .card__cue {
  font-style: normal;
}
.t-garden .card__foot {
  justify-content: center;
  margin: 0 10%;
  padding-top: 2.4cqw;
  border-top-width: 0.3cqw;
}
.t-garden .card__set {
  flex: none;
  font: 700 3.6cqw/1 var(--display);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink);
}
.t-garden .card__level {
  color: var(--accent-ink);
}
.t-garden .card__band {
  margin: -6.4cqw -6.8cqw 4.4cqw;
  padding: 2.3cqw 6.8cqw;
  justify-content: center;
  gap: 3cqw;
  border-radius: 0;
}
.t-garden .lvl-2 .card__frame {
  border-color: var(--frame);
  box-shadow:
    inset 0 0 0 1.3cqw var(--paper),
    inset 0 0 0 1.62cqw var(--accent);
}
.t-garden .card__answer-text {
  color: var(--accent-ink);
}
.t-garden .card__prompt .is-supplied {
  color: var(--ink);
}

/* ---------- Extras: rules and blank cards ---------- */

.card--rules .card__body {
  justify-content: flex-start;
}
.rules__list {
  margin: 0;
  padding: 0 0 0 5cqw;
  font: 600 4.35cqw/1.3 var(--body);
  text-align: left;
}
.rules__list li {
  margin: 0 0 1.5cqw;
  padding-left: 0.6cqw;
}
.rules__list li::marker {
  font-family: var(--display);
  color: var(--accent-ink);
}
.rules__list .is-name {
  color: var(--accent-ink);
}
.blank__lines {
  display: flex;
  flex-direction: column;
  justify-content: space-evenly;
  height: 100%;
}
.blank__lines span {
  display: block;
  border-bottom: 0.35cqw solid var(--rule);
  height: 1px;
}

/* ---------- Backs: the bride's icons, theme pattern, initial ---------- */

.card--back .card__frame {
  padding: 0;
  overflow: hidden;
  align-items: center;
  justify-content: center;
}
.back__medal {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1.5cqw;
  width: 48cqw;
  height: 48cqw;
  border-radius: 50%;
  background: var(--paper);
  border: var(--frame-w) solid var(--frame);
  box-shadow: 0 0 0 2.4cqw var(--paper);
}
.back__initial {
  font: 400 26cqw/0.8 var(--display);
  color: var(--ink);
}
.t-garden .back__initial {
  font-weight: 700;
  font-size: 22cqw;
}
.back__title {
  font: 800 3.3cqw/1 var(--body);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent-ink);
}

/* ---------- Posters: cover and encore board ---------- */

.poster {
  position: relative;
  container-type: inline-size;
  background: var(--paper);
  color: var(--ink);
  print-color-adjust: exact;
  -webkit-print-color-adjust: exact;
}
.poster__frame {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  height: 100%;
  padding: 7cqw 7cqw 6cqw;
  border: 0.9cqw solid var(--frame);
  border-radius: 2cqw;
  box-sizing: border-box;
  overflow: hidden;
}
.poster__kicker {
  margin: 0;
  font: 800 2.8cqw/1 var(--body);
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--accent-ink);
}
.poster__name {
  margin: 2cqw 0 0;
  font: 400 26cqw/0.84 var(--display);
  text-transform: uppercase;
  letter-spacing: -0.005em;
  color: var(--ink);
}
.poster__name.len-m {
  font-size: 21cqw;
}
.poster__name.len-l {
  font-size: 15cqw;
}
.poster__name.len-xl {
  font-size: 11cqw;
}
.poster__name .is-name {
  color: inherit;
}
.poster__heading {
  margin: 2cqw 0 0;
  font: 400 17cqw/0.88 var(--display);
  text-transform: uppercase;
}
.poster__sub {
  margin: 2.5cqw 0 0;
  font:
    700 6.5cqw/1.05 "Caveat",
    cursive;
  color: var(--accent-ink);
}
.poster__title {
  margin: 5cqw 0 0;
  padding: 1.6cqw 3cqw;
  font: 800 3.3cqw/1 var(--body);
  letter-spacing: 0.24em;
  text-transform: uppercase;
  background: var(--ink);
  color: var(--paper);
}
.poster__icons {
  display: flex;
  gap: 4cqw;
  margin: 6cqw 0 0;
  color: var(--accent);
}
.poster__icons .icon {
  width: 9cqw;
  height: 9cqw;
}
.poster__sets {
  list-style: none;
  margin: auto 0 0;
  padding: 0;
  width: 100%;
  border-top: 0.5cqw solid var(--ink);
}
.poster__sets li {
  display: grid;
  grid-template-columns: 6cqw 1fr auto auto;
  align-items: baseline;
  gap: 2.5cqw;
  padding: 2.1cqw 0;
  border-bottom: 0.25cqw solid var(--rule);
}
.poster__set-num {
  font: 400 5cqw/1 var(--display);
  color: var(--accent-ink);
}
.poster__set-title {
  font: 400 5.4cqw/1 var(--display);
  text-transform: uppercase;
  letter-spacing: 0.02em;
}
.poster__set-moment {
  font: 600 2.4cqw/1.2 var(--body);
  color: var(--muted);
  text-align: right;
}
.poster .card__level i {
  width: 1.8cqw;
  height: 1.8cqw;
  border-width: 0.3cqw;
}
.poster__foot {
  margin: 3.5cqw 0 0;
  font: 600 2.5cqw/1.3 var(--body);
  color: var(--muted);
  letter-spacing: 0.02em;
}
.poster__motif {
  position: absolute;
  top: 5cqw;
  right: 6cqw;
  display: flex;
  gap: 1cqw;
  color: var(--accent);
}
.poster__motif .icon {
  width: 7cqw;
  height: 7cqw;
}
.poster__motif .icon:nth-child(2) {
  width: 4cqw;
  height: 4cqw;
  margin-top: 8cqw;
}
.poster__motif .icon:nth-child(3) {
  width: 5cqw;
  height: 5cqw;
  margin-top: 2cqw;
}
.poster__sprigs {
  display: none;
}
.encore__rows {
  list-style: none;
  margin: 6cqw 0 0;
  padding: 0;
  width: 100%;
}
.encore__rows li {
  display: grid;
  grid-template-columns: 26cqw 1fr 1fr;
  gap: 3cqw;
  align-items: end;
  padding: 4cqw 0 2cqw;
  border-bottom: 0.25cqw solid var(--rule);
}
.encore__set {
  font: 400 5cqw/1 var(--display);
  text-transform: uppercase;
}
.encore__line {
  position: relative;
  height: 7cqw;
  border-bottom: 0.4cqw solid var(--ink);
}
.encore__hint {
  position: absolute;
  left: 0;
  top: -1cqw;
  font: 600 2.2cqw/1 var(--body);
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.12em;
}
.poster--encore .poster__icons {
  margin-top: auto;
}

.t-garden .poster__frame {
  align-items: center;
  text-align: center;
  border-width: 0.4cqw;
  border-radius: 0;
  box-shadow:
    inset 0 0 0 1.2cqw var(--paper),
    inset 0 0 0 1.5cqw var(--frame);
  padding-top: 9cqw;
}
.t-garden .poster__name {
  font-weight: 700;
  font-size: 22cqw;
  letter-spacing: 0.02em;
}
.t-garden .poster__name.len-m {
  font-size: 17cqw;
}
.t-garden .poster__name.len-l {
  font-size: 12.5cqw;
}
.t-garden .poster__name.len-xl {
  font-size: 9.5cqw;
}
.t-garden .poster__heading {
  font-weight: 700;
  font-size: 13cqw;
}
.t-garden .poster__set-num,
.t-garden .poster__set-title,
.t-garden .encore__set {
  font-weight: 700;
}
.t-garden .poster__set-title {
  font-size: 4.6cqw;
  text-transform: none;
}
.t-garden .poster__title {
  background: none;
  color: var(--accent-ink);
  border-top: 0.3cqw solid var(--accent);
  border-bottom: 0.3cqw solid var(--accent);
}
.t-garden .poster__motif {
  display: none;
}
.t-garden .poster__sprigs {
  display: block;
}
.t-garden .poster__sprigs .icon {
  position: absolute;
  width: 22cqw;
  height: 22cqw;
  color: var(--accent);
}
.t-garden .poster__sets li {
  text-align: left;
}
.t-garden .poster__set-moment {
  font-size: 2.3cqw;
}
.t-garden .poster__icons {
  justify-content: center;
}

/* ---------- Revision 2: ticket stub, sticker cue, garden corners, ring backs ---------- */

.t-mirrorball .card__head { position: relative; padding-bottom: 3.4cqw; border-bottom: 0.55cqw dashed var(--rule); }
.t-mirrorball .card__head::before,
.t-mirrorball .card__head::after {
  content: ""; position: absolute; bottom: -2.8cqw; width: 5cqw; height: 5cqw; border-radius: 50%;
  background: var(--paper); border: var(--frame-w) solid var(--frame); box-sizing: border-box;
}
.t-mirrorball .card__head::before { left: calc(-5.6cqw - var(--frame-w) / 2 - 2.5cqw); clip-path: inset(0 0 0 50%); }
.t-mirrorball .card__head::after { right: calc(-5.6cqw - var(--frame-w) / 2 - 2.5cqw); clip-path: inset(0 50% 0 0); }
.t-mirrorball .lvl-2 .card__head::before,
.t-mirrorball .lvl-2 .card__head::after { border-color: var(--accent); }
.t-mirrorball .card__cue {
  align-self: flex-start; margin-top: 1.4cqw; padding: 1.1cqw 2.2cqw 1cqw; border-radius: 1cqw;
  background: var(--accent); color: #17121f; font: 800 3.5cqw/1 var(--body);
  letter-spacing: 0.07em; text-transform: uppercase; transform: rotate(-2.5deg);
}
.t-garden .card__sprig { display: block; position: absolute; top: 1.6cqw; left: 1.6cqw; width: 10cqw; height: 10cqw; color: var(--accent); }
.t-garden .card__type-row { position: static; }
.t-garden .card__frame { position: absolute; }
.t-garden .poster__frame { padding-top: 16cqw; }
.t-garden .poster__title { margin-top: 3.5cqw; }
.t-garden .poster__icons { margin-top: 4cqw; }
.poster__sets li { grid-template-columns: 6cqw 1fr minmax(0, 30cqw) auto; }
.t-garden .poster__sprigs .icon { width: 16cqw; height: 16cqw; top: 3cqw; }
.t-garden .poster__sprigs .icon:first-child { left: 3cqw; }
.t-garden .poster__sprigs .icon:last-child { right: 3cqw; transform: scaleX(-1); }

.back__field { position: absolute; inset: 0; color: var(--accent); }
.back__cell {
  position: absolute; left: 50%; top: 50%; width: 12cqw; height: 12cqw; margin: -6cqw 0 0 -6cqw;
  display: flex; align-items: center; justify-content: center;
  transform: translate(calc(cos(var(--a)) * 31cqw), calc(sin(var(--a)) * 44cqw));
}
.back__cell .icon { width: 100%; height: 100%; }
.back__cell:nth-child(1) { --a: -90deg; } .back__cell:nth-child(2) { --a: -45deg; } .back__cell:nth-child(3) { --a: 0deg; }
.back__cell:nth-child(4) { --a: 45deg; } .back__cell:nth-child(5) { --a: 90deg; } .back__cell:nth-child(6) { --a: 135deg; }
.back__cell:nth-child(7) { --a: 180deg; } .back__cell:nth-child(8) { --a: 225deg; }
.back__cell:nth-child(even) { color: var(--ink); }
.back__corner { display: block; position: absolute; width: 7cqw; height: 7cqw; color: var(--accent); }
.back__corner .icon { width: 100%; height: 100%; }
.back__corner:nth-of-type(1) { top: 5cqw; left: 5cqw; } .back__corner:nth-of-type(2) { top: 5cqw; right: 5cqw; }
.back__corner:nth-of-type(3) { bottom: 5cqw; left: 5cqw; } .back__corner:nth-of-type(4) { bottom: 5cqw; right: 5cqw; }
.t-garden .back__corner:nth-of-type(2) { transform: scaleX(-1); } .t-garden .back__corner:nth-of-type(3) { transform: scaleY(-1); }
.t-garden .back__corner:nth-of-type(4) { transform: scale(-1, -1); }
.back__medal {
  position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.2cqw;
  width: 42cqw; height: 42cqw; border-radius: 50%; background: var(--paper); border: var(--frame-w) solid var(--frame);
}

.rules__list { font-size: 5.1cqw; line-height: 1.24; }
.card--rules.fs-1 .rules__list { font-size: 4.85cqw; }
.card--rules.fs-2 .rules__list,
.card--rules.fs-3 .rules__list,
.card--rules.fs-4 .rules__list { font-size: 4.6cqw; }
.card--rules .card__cue { display: none; }
.rules__list li { margin-bottom: 1.8cqw; }
.t-mirrorball .back__initial { font-size: 20cqw; }
.t-garden .poster--encore .poster__heading { font-size: 11cqw; }
.t-garden .encore__set { font-size: 4cqw; text-transform: none; letter-spacing: 0.01em; }
.t-garden .encore__rows li { padding: 3cqw 0 1.6cqw; text-align: left; }
.encore__rows li { grid-template-columns: 27cqw 1fr 1fr; }
