/* Cinematic display type, geometric reading type, and a calmer editorial rhythm. */
:root {
  --sans: "Space Grotesk", "Segoe UI", Arial, sans-serif;
  --display: "Antonio", "Arial Narrow", Impact, sans-serif;
}
body {
  font-size: 17px;
  line-height: 1.65;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3 { font-kerning: normal; }
.window-caption h1 {
  font-size: clamp(96px, 14.2vw, 238px);
  font-weight: 600;
  line-height: 1.04;
  letter-spacing: -.045em;
}
.window-caption h1 > .hero-firstline {
  font-weight: 400;
  letter-spacing: -.035em;
}
.opening-baseline { margin-top: 38px; }
.opening-baseline > p {
  font-size: clamp(18px, 1.55vw, 24px);
  line-height: 1.55;
  letter-spacing: -.025em;
}
.identity-name { font-size: 11px; letter-spacing: .075em; }
.desktop-nav { font-size: 15px; font-weight: 500; letter-spacing: -.025em; }
.desktop-nav a > span { font-size: 12px; font-variant-numeric: tabular-nums; }
.mobile-nav { font-size: 19px; }

/* Section headings pair a quiet first line with an oversized display line. */
.choice-heading h2,
.project-index .index-heading h2 {
  font-family: var(--sans);
  font-size: clamp(25px, 3.1vw, 48px);
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: -.055em;
}
.choice-heading h2 br,
.project-index .index-heading h2 br { display: none; }
.choice-heading h2 > span,
.project-index .index-heading h2 > span {
  display: block;
  margin: 12px 0 0;
  font: 600 clamp(78px, 8.4vw, 144px)/1.08 var(--display);
  letter-spacing: -.035em;
  color: var(--experience);
}
.choice-heading .eyebrow { margin-bottom: 28px; }
.choice-heading .eyebrow::before,
.world-intro > .eyebrow::before,
.index-heading > .eyebrow::before {
  content: "";
  display: inline-block;
  width: 26px;
  height: 2px;
  margin: 0 12px 4px 0;
  background: linear-gradient(90deg, var(--film-accent), var(--game-accent));
}
.eyebrow, .choice-heading .eyebrow,
.choice-category, .index-collection-kicker {
  font-size: 12px;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: .13em;
}
.choice-instruction p,
.choice-heading > p,
.index-heading > p:not(.eyebrow):not(.sort-note) {
  font-size: 18px;
  line-height: 1.65;
  letter-spacing: -.025em;
}
.choice-instruction strong { font-weight: 600; }
#choose-world .choice-title {
  font-size: clamp(68px, 6.7vw, 114px);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -.035em;
}
#choose-world .choice-title > span,
#choose-world .choice-games .choice-title > span {
  font-family: var(--sans);
  font-size: .43em;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: -.055em;
  margin-top: 14px;
}
#choose-world .choice-description {
  font-size: 19px;
  line-height: 1.65;
  letter-spacing: -.02em;
  max-width: 35ch;
}
#choose-world .choice-count,
#choose-world .choice-selection { font-size: 12px; letter-spacing: .035em; }
#choose-world .choice-category { font-size: 12px; letter-spacing: .12em; }
#choose-world .choice-action { font-size: 14px; font-weight: 600; letter-spacing: .035em; }
.choice-status { font-size: 15px; }
.world-intro h2 {
  font-size: clamp(32px, 3.65vw, 60px);
  font-weight: 500;
  line-height: 1.18;
  letter-spacing: -.06em;
}

/* Keep native title spans and their independent scroll movement intact. */
.scene-copy h2,
.scene-reverse .scene-copy h2 {
  font-weight: 600;
  line-height: 1.08;
  letter-spacing: -.035em;
  text-shadow: 0 3px 28px #00000026;
}
.scene-copy h2 > .scene-title-line + .scene-title-line { margin-top: 8px; }
[data-theme="light"] .scene-copy h2,
[data-theme="light"] .scene-reverse .scene-copy h2 { text-shadow: none; }
/* Two-line titles reserve vertical room for descriptions on shorter monitors. */
@media (min-width: 761px) {
  .scene-copy h2:has(> .scene-title-line + .scene-title-line) {
    font-size: clamp(60px, min(var(--title-size), 13.5vh), 188px);
  }
  .scene-reverse .scene-copy h2:has(> .scene-title-line + .scene-title-line) {
    font-size: clamp(60px, min(calc(var(--title-size) * .87), 13.5vh), 174px);
  }
  /* Reserve room for the full edition name, description and link on short screens. */
  #world-mafia .scene-copy h2 {
    font-size: clamp(60px, min(var(--title-size), 9.5vh), 150px);
  }
}
.scene-kicker { margin-bottom: 24px; font-size: 13px; letter-spacing: -.005em; }
@media (min-width: 761px) and (max-height: 620px) {
  #world-mafia .scene-copy { top: 22%; }
  #world-mafia .scene-copy h2 { font-size: 50px; }
}
.scene-kicker > span {
  font-size: 12px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.scene-description,
.scene-reverse .scene-description {
  font-size: 19px;
  font-weight: 400;
  line-height: 1.65;
  letter-spacing: -.02em;
  max-width: 34ch;
  margin-top: 28px;
}
.project-link { margin-top: 24px; }
.text-link, .project-link, .round-link,
.world-intro-links .text-link, .index-change-world {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .035em;
}
.scene-topline, .release-stamp, .scene-bottomline,
.poster-caption, .choice-footnote {
  font-size: 12px;
  letter-spacing: .035em;
}
.release-stamp, .choice-count, .index-year,
.index-row > span:first-child, .index-collection-count { font-variant-numeric: tabular-nums; }
.index-collection-heading h3 {
  font-family: var(--sans);
  font-size: clamp(22px, 2.1vw, 34px);
  font-weight: 500;
  line-height: 1.15;
  letter-spacing: -.055em;
}
.index-collection .index-world {
  font-size: clamp(18px, 1.4vw, 23px);
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: -.03em;
}
.index-collection .index-year,
.index-collection .index-external { font-size: 12px; }
.about-content h2 {
  font-weight: 500;
  line-height: 1.08;
  letter-spacing: -.03em;
}
.about-description {
  font-size: clamp(19px, 1.6vw, 23px);
  line-height: 1.65;
  letter-spacing: -.025em;
  max-width: 42ch;
}
.about-facts strong { font-weight: 500; line-height: 1.2; }
.contact-headline h2 { font-weight: 500; line-height: 1.08; letter-spacing: -.04em; }
.contact-bottom { font-size: 18px; letter-spacing: -.025em; }
.site-footer { font-size: 14px; }

@media (min-width: 761px) and (max-width: 1100px) {
  .desktop-nav { gap: 18px; font-size: 14px; }
  .choice-heading { gap: 24px; }
  .choice-instruction p { font-size: 16px; }
  #choose-world .choice-description { font-size: 17px; }
  #choose-world .choice-count,
  #choose-world .choice-selection,
  #choose-world .choice-category { font-size: 11px; }
}
@media (max-width: 760px) {
  .window-caption h1 { font-size: 17.8vw; line-height: 1.1; letter-spacing: -.045em; }
  .opening-baseline { margin-top: 30px; }
  .opening-baseline > p { font-size: 18px; max-width: 28ch; }
  .choice-heading h2,
  .project-index .index-heading h2 { font-size: clamp(25px, 7vw, 39px); }
  .choice-heading h2 > span,
  .project-index .index-heading h2 > span {
    font-size: clamp(54px, 14.6vw, 105px);
    margin: 12px 0 0;
    line-height: 1.12;
  }
  #choose-world .choice-title { font-size: clamp(58px, 16vw, 100px); }
  #choose-world .choice-title > span,
  #choose-world .choice-games .choice-title > span { font-size: .43em; }
  #choose-world .choice-description { font-size: 17px; }
  #choose-world .choice-category { font-size: 11px; }
  #choose-world .choice-count,
  #choose-world .choice-selection { font-size: 10px; letter-spacing: .02em; }
  #choose-world .choice-action { font-size: 12px; letter-spacing: .025em; }
  .choice-instruction p,
  .choice-heading > p,
  .index-heading > p:not(.eyebrow):not(.sort-note) { font-size: 17px; }
  .scene-copy h2,
  .scene-reverse .scene-copy h2 { font-size: clamp(49px, calc(var(--title-size) * 1.32), 108px); }
  .scene-kicker { font-size: 11px; gap: 14px; margin-bottom: 20px; }
  .scene-description,
  .scene-reverse .scene-description { font-size: 17px; line-height: 1.65; margin-top: 24px; }
  .scene-topline, .release-stamp, .scene-bottomline, .poster-caption { font-size: 11px; }
  .text-link, .project-link, .round-link,
  .world-intro-links .text-link, .index-change-world { font-size: 12px; }
  .index-collection-heading h3 { font-size: 24px; }
  .index-collection .index-world { font-size: 17px; }
  .index-collection .index-year, .index-collection .index-external { font-size: 11px; }
  .about-description { font-size: 18px; }
  .contact-bottom { font-size: 16px; }
  .identity-name { font-size: 10px; }
}
@media (max-height: 650px) and (min-width: 761px) {
  .scene-copy h2, .scene-reverse .scene-copy h2 { line-height: 1; }
  .scene-description, .scene-reverse .scene-description { margin-top: 20px; font-size: 17px; }
}
