/* Variant C, "The Other Side". Three voices, three typefaces:
   Grenze Gotisch is King Grumbo proclaiming, Caveat Brush is a raider scribbling,
   Alegreya Sans is the plain truth about the game. */

@font-face { font-family: "Grenze Gotisch"; src: url("../fonts/grenze-gotisch-latin-wght-normal.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; }
@font-face { font-family: "Alegreya Sans"; src: url("../fonts/alegreya-sans-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Alegreya Sans"; src: url("../fonts/alegreya-sans-latin-400-italic.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "Alegreya Sans"; src: url("../fonts/alegreya-sans-latin-500-normal.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "Alegreya Sans"; src: url("../fonts/alegreya-sans-latin-700-normal.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Caveat Brush"; src: url("../fonts/caveat-brush-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }

:root {
  --sky: #58b6f2;
  --sky-pale: #eef8ff;
  --meadow: #55b33a;
  --red: #c8352b;
  --red-deep: #8c1f1a;
  --gold: #ffe59a;
  --ink: #2b1a10;
  --wood: #f0cc8b;
  --wood-mid: #c9955b;
  --wood-deep: #74451f;
  --note: #fff6c9;
  --stone: #cfd5dd;
  --stone-deep: #98a2b0;
  --display: "Grenze Gotisch", "Iowan Old Style", "Palatino Linotype", serif;
  --text: "Alegreya Sans", "Trebuchet MS", "Segoe UI", sans-serif;
  --hand: "Caveat Brush", "Segoe Print", "Comic Sans MS", cursive;
  --grain: repeating-linear-gradient(91deg, rgba(116, 69, 31, 0.09) 0 2px, transparent 2px 11px);
  --pad: 14px;
  --lane: 17%;   /* the strip of ground the road keeps to itself on a phone */
  --road: 28px;  /* road width */
  --fade: 90px;  /* how far one land's ground fades into the next; road.js reads it */
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { margin: 0; font: 400 1.1875rem/1.5 var(--text); color: var(--ink); background: var(--meadow); }
img, video { display: block; max-width: 100%; height: auto; }
h1, h2, h3, p, figure, blockquote, dl, dd, ul { margin: 0; }
ul { padding: 0; list-style: none; }
a { color: inherit; text-underline-offset: 0.15em; }
:focus-visible { outline: 3px solid #fff; outline-offset: 2px; box-shadow: 0 0 0 7px var(--ink); border-radius: 4px; }

.skip { position: absolute; left: 8px; top: -80px; z-index: 20; background: var(--note); color: var(--ink); padding: 0.5em 0.8em; border: 3px solid var(--ink); font-weight: 700; }
.skip:focus { top: 8px; }

/* ---------- shared pieces ---------- */

.sign {
  position: relative;
  background: var(--wood) var(--grain);
  border: 3px solid var(--ink);
  border-radius: 14px 10px 16px 12px / 12px 16px 10px 14px;
  padding: 20px 18px 22px;
  box-shadow: 0 6px 0 var(--wood-mid), 0 6px 0 3px var(--ink), 0 18px 22px rgba(20, 45, 12, 0.28);
}
.sign::before, .sign::after { content: ""; position: absolute; top: 9px; width: 9px; height: 9px; border-radius: 50%; background: var(--wood-deep); box-shadow: inset 0 -2px 0 rgba(0, 0, 0, 0.35); }
.sign::before { left: 10px; }
.sign::after { right: 10px; }
.sign h2 { font: 800 clamp(1.9rem, 7vw, 2.9rem)/1 var(--display); margin-bottom: 0.45em; text-wrap: balance; }
.sign p + p { margin-top: 0.6em; }
.sign--small { padding-bottom: 18px; }
.sign__line { font: 600 1.55rem/1.12 var(--display); }

.stop-tab { display: inline-block; margin-bottom: 0.75em; padding: 0.36em 0.7em 0.4em; background: var(--red); color: #fff5d6; border: 2px solid var(--ink); border-radius: 6px; font: 700 0.95rem/1 var(--text); transform: rotate(-1.5deg); }

.scrawl { font: 400 1.3rem/1.15 var(--hand); }
.fact { font-size: 1.0625rem; line-height: 1.38; }

.button {
  display: inline-block;
  padding: 0.5em 0.95em 0.56em;
  background: var(--red);
  color: #fff3c4;
  border: 3px solid var(--ink);
  border-radius: 12px;
  box-shadow: 0 5px 0 var(--red-deep), 0 5px 0 3px var(--ink);
  font: 800 1.6rem/1 var(--display);
  white-space: nowrap;
  text-decoration: none;
  transition: transform 0.08s, box-shadow 0.08s;
}
.button:hover { transform: translateY(2px); box-shadow: 0 3px 0 var(--red-deep), 0 3px 0 3px var(--ink); }
.button:active { transform: translateY(5px); box-shadow: 0 0 0 var(--red-deep), 0 0 0 3px var(--ink); }
.plain-link { font-weight: 700; }

/* ---------- the call ---------- */

.hero { position: relative; isolation: isolate; height: 100svh; min-height: 620px; max-height: 1100px; overflow: hidden; background: var(--sky); }
.hero__art { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
.hero__nav { position: absolute; inset: 0 0 auto; z-index: 2; display: flex; justify-content: space-between; align-items: flex-start; padding: 12px var(--pad); }
.hero__logo img { width: clamp(92px, 11vw, 150px); }
.arrow-sign { position: relative; z-index: 0; margin-top: 6px; padding: 0.3em 1.5em 0.36em 0.8em; font: 700 1rem/1.2 var(--text); text-decoration: none; filter: drop-shadow(0 3px 0 rgba(43, 26, 16, 0.85)); }
.arrow-sign::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--wood) var(--grain); clip-path: polygon(0 0, calc(100% - 15px) 0, 100% 50%, calc(100% - 15px) 100%, 0 100%); }
.arrow-sign:hover { text-decoration: underline; }

.hero__call { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; padding: 15svh var(--pad) 3svh; text-align: center; }
.banner { font: 900 clamp(3.5rem, 17vw, 5.2rem)/0.86 var(--display); color: var(--gold); filter: drop-shadow(0 6px 0 var(--red-deep)) drop-shadow(0 3px 0 rgba(43, 26, 16, 0.55)); }
.banner__cloth { display: inline-block; max-width: 6.2em; padding: 0.16em 0.62em 0.24em; background: var(--red); clip-path: polygon(0 0, 100% 0, calc(100% - 0.3em) 50%, 100% 100%, 0 100%, 0.3em 50%); text-shadow: 0 0.045em 0 var(--red-deep); }
.plaque { margin-top: 11svh; width: min(100%, 23rem); padding: 16px 16px 20px; }
.plaque__lead { font: 700 1.75rem/1.05 var(--display); text-wrap: balance; }
.plaque__by { margin-top: 0.3em; }
.plaque__actions { display: flex; flex-direction: column; align-items: center; gap: 14px; margin-top: 0.8em; }

.rail { position: relative; z-index: 4; padding: 0.75em var(--pad) 0.8em; background: var(--wood-deep) var(--grain); color: #fff3d0; border-block: 4px solid var(--ink); text-align: center; font-size: 1.125rem; line-height: 1.35; }

/* ---------- the march ---------- */

.march { position: relative; isolation: isolate; overflow: hidden; background: var(--meadow) url("../../media/world/meadow-ground.webp") 0 0 / 420px; }

.road { position: absolute; left: 0; top: 0; z-index: 1; width: 100%; height: 100%; pointer-events: none; }
.road use { fill: none; stroke-linecap: round; stroke-linejoin: round; }
.road__edge { stroke: rgba(74, 46, 18, 0.5); stroke-width: calc(var(--road) + 8px); }
.road__fill { stroke-width: var(--road); }
.road__trail { stroke: rgba(110, 70, 30, 0.4); stroke-width: 3px; stroke-dasharray: 1 14; }

.marchers { position: absolute; inset: 0; z-index: 3; pointer-events: none; }
.marcher { position: absolute; left: 0; top: 0; width: 40px; will-change: transform; }
.marcher--2 { width: 31px; }
.marcher--3 { width: 24px; }
.marcher img { width: 100%; transform-origin: 50% 100%; filter: drop-shadow(0 4px 2px rgba(20, 45, 12, 0.45)); }
/* The hop and the lean are set by road.js from the distance walked; only the turn is eased here. */
.marcher img { transition: transform 0.22s ease-in-out; }
.marcher[data-facing="left"] img { transform: scaleX(-1); }

.stop { position: relative; }
.stop, .turn, .game { scroll-margin-top: 12px; }

.gate { position: relative; height: 215px; padding-top: 14px; }
.gate img { position: relative; z-index: 2; width: 150px; margin: 0 auto; filter: drop-shadow(0 8px 5px rgba(20, 45, 12, 0.35)); }

.waypoint { position: absolute; left: var(--way); top: 50%; width: 0; height: 0; }
.waypoint--start { left: 50%; top: 92px; }
.waypoint--end { left: 50%; top: calc(100% - 2px); }
/* on a phone the road leaves the gate and swings straight into its lane, clear of the first sign */
.waypoint--lane { left: 8%; top: 100%; }

.row, .pair { position: relative; max-width: 1180px; margin-inline: auto; padding: 18px var(--pad) 18px calc(var(--pad) + var(--lane)); --way: 8%; }
.row--right, .pair--b, .pair--trap { --way: 12%; }
.row__content { position: relative; z-index: 2; }
.milestone { display: none; }

/* a framed picture nailed up beside the road */
.picture { position: relative; z-index: 2; width: min(100%, 300px); padding: 9px 9px 0; background: var(--wood-deep) var(--grain); border: 3px solid var(--ink); border-radius: 8px; box-shadow: 0 6px 0 rgba(43, 26, 16, 0.55), 0 18px 22px rgba(20, 45, 12, 0.28); }
.picture img { border: 3px solid var(--ink); border-radius: 3px; }
.picture figcaption { padding: 8px 4px 11px; color: #fff3c8; text-align: center; }
.picture--tilt-r { transform: rotate(1.6deg); }
.picture--tilt-l { transform: rotate(-1.6deg); }

/* the footage */
.footage { position: relative; z-index: 2; width: min(100%, 270px); }
.footage__frame { padding: 9px; background: var(--wood-deep) var(--grain); border: 3px solid var(--ink); border-radius: 14px; box-shadow: 0 6px 0 rgba(43, 26, 16, 0.55), 0 18px 22px rgba(20, 45, 12, 0.28); }
.footage__video { width: 100%; aspect-ratio: 9 / 16; object-fit: cover; background: #3f8f2b; border: 3px solid var(--ink); border-radius: 6px; }
.footage figcaption { margin-top: 14px; padding: 10px 12px 12px; background: var(--wood) var(--grain); border: 3px solid var(--ink); border-radius: 10px; box-shadow: 0 4px 0 var(--wood-mid), 0 4px 0 3px var(--ink); }
.footage figcaption span { display: block; }
.footage figcaption .scrawl { margin-top: 0.3em; }
.footage__toggle { margin-top: 16px; padding: 0.35em 0.8em 0.4em; background: var(--note); color: var(--ink); border: 3px solid var(--ink); border-radius: 8px; font: 700 1rem/1.2 var(--text); cursor: pointer; }
.footage__toggle:hover { background: #fff; }

/* hazards and raiders */
.hazard, .raider { position: relative; z-index: 2; display: flex; align-items: center; gap: 10px; }
.hazard + .hazard, .hazard + .waypoint + .hazard { margin-top: 20px; }
.hazard__art { flex: none; width: 74px; height: 96px; object-fit: contain; object-position: 50% 100%; filter: drop-shadow(0 6px 3px rgba(20, 45, 12, 0.4)); }
.tag { flex: 1 1 auto; min-width: 0; max-width: 19rem; padding: 9px 12px 12px; background: var(--wood) var(--grain); border: 3px solid var(--ink); border-radius: 10px; box-shadow: 0 4px 0 var(--wood-mid), 0 4px 0 3px var(--ink); text-align: left; }
.tag h3 { font: 700 1.4rem/1.1 var(--text); margin-bottom: 0.1em; }
.tag .scrawl { margin: 8px -5px -5px; padding: 6px 9px 7px; background: var(--note); border: 2px solid var(--ink); border-radius: 4px; transform: rotate(-0.8deg); }

.blockade { display: none; }
.blockade--1 { display: block; position: absolute; z-index: 2; left: 2px; top: 50%; width: 46px; margin-top: -24px; filter: drop-shadow(0 5px 3px rgba(20, 45, 12, 0.4)); }
.pair--wall { --way: 17.5%; }
.trap { position: absolute; z-index: 2; left: var(--way); top: 50%; width: 58px; transform: translate(-50%, -50%); filter: drop-shadow(0 4px 2px rgba(20, 45, 12, 0.4)); }
.pair--trap { min-height: 150px; display: flex; align-items: center; }

.raider { align-items: center; }
.raider + .raider, .raider + .waypoint + .raider { margin-top: 30px; }
.raider__art { flex: none; width: 84px; height: 96px; object-fit: contain; object-position: 50% 100%; filter: drop-shadow(0 6px 3px rgba(20, 45, 12, 0.4)); }
.raider--boss .raider__art { width: 104px; height: 112px; }
.raider__text { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column-reverse; align-items: flex-start; gap: 12px; }
.raider__title { font-weight: 700; line-height: 1.2; margin-bottom: 0.35em; }
.file { font-weight: 700; }
.bubble { position: relative; padding: 0.28em 0.7em 0.36em; background: #fff; border: 3px solid var(--ink); border-radius: 18px; font: 400 1.45rem/1.08 var(--hand); }
.bubble::after { content: ""; position: absolute; left: 16px; bottom: -10px; width: 15px; height: 15px; background: #fff; border-right: 3px solid var(--ink); border-bottom: 3px solid var(--ink); transform: rotate(45deg) skew(12deg, 12deg); }
.raider .bubble::after { left: -10px; bottom: 9px; border: 0; border-left: 3px solid var(--ink); border-bottom: 3px solid var(--ink); }

/* the five lands: each band lays its own ground over the meadow and fades in */
.land { position: relative; }
.land::before { content: ""; position: absolute; inset: calc(var(--fade) * -1) 0 0; z-index: 0; background: 0 0 / 420px; -webkit-mask-image: linear-gradient(transparent, #000 var(--fade)); mask-image: linear-gradient(transparent, #000 var(--fade)); pointer-events: none; }
.land--meadow::before { display: none; }
.land--autumn::before { background-image: url("../../media/world/autumn-ground.webp"); }
.land--frost::before { background-image: url("../../media/world/frost-ground.webp"); }
.land--desert::before { background-image: url("../../media/world/desert-ground.webp"); }
.land--ember::before { background-image: url("../../media/world/ember-ground.webp"); }
.land--home::before { background-image: url("../../media/world/meadow-ground.webp"); }
.land .row { padding-block: 34px; }
.land--home { padding-bottom: 170px; }

.postcard { position: relative; z-index: 2; width: min(100%, 420px); padding: 9px 9px 12px; background: #fff; border: 3px solid var(--ink); box-shadow: 0 6px 0 rgba(43, 26, 16, 0.4), 0 18px 22px rgba(20, 30, 12, 0.3); }
.postcard img { border: 2px solid var(--ink); }
.postcard figcaption { padding: 8px 4px 0; }
.postcard__name { display: block; font: 700 1.6rem/1.1 var(--text); margin-bottom: 0.1em; }
.postcard--tilt-l { transform: rotate(-1.4deg); }
.postcard--tilt-r { transform: rotate(1.4deg); }

.prop { display: none; }

/* ---------- the keep: the page turns ---------- */

.turn { position: relative; isolation: isolate; display: grid; place-items: end center; min-height: 660px; padding: 0 var(--pad) 46px; overflow: hidden; border-top: 16px solid var(--wood-deep); box-shadow: inset 0 4px 0 var(--ink), 0 -4px 0 var(--ink); background: #7fb9ee; }
.turn__art { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; object-fit: cover; object-position: 50% 20%; }
.notice { position: relative; width: min(100%, 31rem); padding: 26px 20px 24px; background: var(--note); border: 3px solid var(--ink); border-radius: 3px; box-shadow: 0 6px 0 rgba(43, 26, 16, 0.55); text-align: center; transform: rotate(-0.7deg); }
.notice::before { content: ""; position: absolute; left: 50%; top: 8px; width: 12px; height: 12px; margin-left: -6px; border-radius: 50%; background: var(--wood-deep); box-shadow: inset 0 -3px 0 rgba(0, 0, 0, 0.35); }
.notice h2 { font: 800 clamp(2.1rem, 8vw, 3.2rem)/0.98 var(--display); margin-bottom: 0.4em; text-wrap: balance; }
.notice__actions { margin-top: 0.9em; }

.battlement { position: relative; z-index: 2; height: 74px; margin-top: -40px; pointer-events: none; }
.battlement::before { content: ""; position: absolute; inset: 0 0 34px; background: linear-gradient(var(--ink) 0 3px, transparent 3px calc(100% - 9px), rgba(60, 70, 90, 0.22) calc(100% - 9px)), repeating-linear-gradient(90deg, var(--ink) 0 3px, var(--stone) 3px 63px, var(--ink) 63px 66px, var(--stone) 66px 120px); -webkit-mask-image: repeating-linear-gradient(90deg, #000 0 66px, transparent 66px 120px); mask-image: repeating-linear-gradient(90deg, #000 0 66px, transparent 66px 120px); }
.battlement::after { content: ""; position: absolute; inset: 40px 0 0; background: var(--stone); border-block: 3px solid var(--ink); box-shadow: inset 0 -9px 0 var(--stone-deep); }

/* ---------- inside the wall: plain voice ---------- */

.inside { background: var(--sky-pale); padding: 0 var(--pad) 56px; }
.inside h2 { font: 700 clamp(1.7rem, 6vw, 2.5rem)/1.1 var(--text); text-wrap: balance; }
.inside section { max-width: 1100px; margin-inline: auto; padding-top: 52px; }
.inside a { font-weight: 700; }

.game { display: grid; gap: 32px; }
.game__logo { width: 180px; margin-bottom: 12px; }
.game__lead h2 { margin-bottom: 0.5em; }
.game__lead p + p { margin-top: 0.7em; }
.game__lead p { max-width: 38rem; }
.status { font-weight: 700; }
.stores { display: flex; flex-wrap: wrap; gap: 12px; }
.store { display: inline-block; padding: 0.62em 1em 0.68em; border: 3px dashed var(--ink); border-radius: 12px; background: #fff; font-weight: 700; line-height: 1.2; text-decoration: none; }
.store[aria-disabled="true"] { cursor: default; }
.store.is-live { border-style: solid; background: var(--ink); color: #fff; box-shadow: 0 5px 0 rgba(43, 26, 16, 0.3); }
.store.is-live:hover { background: #000; }
.phone { width: min(72%, 270px); justify-self: center; border: 4px solid var(--ink); border-radius: 30px; overflow: hidden; box-shadow: 0 10px 0 rgba(43, 26, 16, 0.16); }

.shots__note { margin-top: 0.4em; }
.shots__strip { display: flex; gap: 16px; margin-top: 20px; padding: 4px 4px 16px; overflow-x: auto; scroll-snap-type: x proximity; }
.shots__strip li { flex: 0 0 min(58vw, 205px); scroll-snap-align: start; }
.shots__strip img { border: 3px solid var(--ink); border-radius: 20px; }
.shots__strip figcaption { margin-top: 0.5em; font-size: 1.0625rem; line-height: 1.3; }

.facts__list { display: grid; gap: 24px 56px; margin-top: 24px; }
.facts__list dt { font: 700 1.35rem/1.2 var(--text); }
.facts__list dd { margin-top: 0.25em; max-width: 34rem; }

.company { border-top: 3px solid var(--ink); margin-top: 56px; }
.inside .company { padding-top: 36px; }
.company p { margin-top: 0.6em; max-width: 38rem; }

.foot { background: var(--ink); color: #f6ead2; padding: 30px var(--pad) 40px; }
.foot > * { max-width: 1100px; margin-inline: auto; }
.foot__name { font-weight: 700; font-size: 1.25rem; }
.foot ul { display: flex; flex-wrap: wrap; gap: 6px 26px; margin-block: 12px 18px; }
.foot__small { font-size: 1rem; color: #dccdb0; }

/* ---------- legal pages ---------- */

.legal-page { display: flex; flex-direction: column; min-height: 100svh; background: var(--sky-pale); }
.legal-page .foot > * { max-width: none; }
.legal-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 24px; padding: 12px var(--pad); background: var(--wood) var(--grain); border-bottom: 4px solid var(--ink); }
.legal-head__home { display: flex; align-items: center; gap: 12px; font-weight: 700; }
.legal-head__home img { width: 84px; }
.legal-head ul { display: flex; flex-wrap: wrap; gap: 4px 22px; }
.legal-head [aria-current="page"] { text-decoration-thickness: 3px; font-weight: 700; }
.legal { flex: 1 0 auto; width: 100%; max-width: 44rem; margin-inline: auto; padding: 40px var(--pad) 72px; font-size: 1.1875rem; line-height: 1.62; overflow-wrap: break-word; }
.legal h1 { font: 700 clamp(2.2rem, 7vw, 3.1rem)/1.05 var(--text); margin-bottom: 0.5em; }
.legal h2 { font: 700 1.45rem/1.2 var(--text); margin: 1.9em 0 0.4em; }
.legal p + p { margin-top: 0.75em; }
.legal dl { margin: 1.2em 0; border-top: 2px solid var(--ink); }
.legal dt { padding-top: 0.7em; font-weight: 700; }
.legal dd { padding-bottom: 0.7em; border-bottom: 1px solid rgba(43, 26, 16, 0.3); }
.legal a { font-weight: 700; }
.gap { padding: 0 0.3em; background: var(--gold); border: 2px dashed var(--ink); border-radius: 4px; font-style: italic; }

/* ---------- wider screens: the road runs down the middle ---------- */

@media (orientation: landscape) and (min-width: 700px) {
  .hero__call { padding-top: 19svh; }
  .banner { font-size: clamp(4.4rem, 9.4vw, 8rem); }
  .banner__cloth { max-width: none; }
  .plaque { margin-top: auto; width: min(100%, 33rem); }
  .plaque__actions { flex-direction: row; justify-content: center; gap: 20px; }
}

@media (min-width: 900px) {
  :root { --pad: 32px; --road: 62px; }
  body { font-size: 1.25rem; }
  .fact { font-size: 1.125rem; }
  .scrawl { font-size: 1.4rem; }
  .rail { font-size: 1.25rem; }

  .marcher { width: 68px; }
  .marcher--2 { width: 52px; }
  .marcher--3 { width: 40px; }
  .road__trail { stroke-dasharray: 1 18; stroke-width: 4px; }

  .gate { height: 250px; }
  .gate img { width: 230px; }
  .waypoint--start { top: 150px; }
  .waypoint--lane { display: none; }

  .row { display: grid; grid-template-columns: repeat(12, 1fr); column-gap: 24px; align-items: center; padding: 46px var(--pad); --way: 66%; }
  .row--right { --way: 34%; }
  .row--left .row__content { grid-column: 1 / span 6; }
  .row--right .row__content { grid-column: 7 / span 6; }
  .row__content { display: grid; justify-items: center; }
  .row__content > * { max-width: 500px; }
  .land .row { padding-block: 58px; }
  .land--home { padding-bottom: 150px; }

  .sign { padding: 26px 26px 28px; }
  .milestone { display: block; position: absolute; z-index: 2; left: var(--way); top: 50%; width: 40px; height: 48px; margin: -24px 0 0 calc(var(--road) / 2 + 12px); background: var(--stone); border: 3px solid var(--ink); border-radius: 18px 18px 5px 5px; box-shadow: 0 4px 0 var(--stone-deep), 0 4px 0 3px var(--ink); font: 800 1.6rem/40px var(--display); text-align: center; }
  .row--right .milestone { margin-left: calc(var(--road) / -2 - 52px); }

  .picture { width: min(100%, 330px); }
  .footage { width: min(100%, 290px); }

  .pair { display: grid; grid-template-columns: 1fr 200px 1fr; align-items: center; padding: 26px var(--pad); --way: 46.5%; }
  .pair--b { --way: 53.5%; }
  .hazard + .hazard, .hazard + .waypoint + .hazard, .raider + .raider, .raider + .waypoint + .raider { margin-top: 0; }
  .hazard--l, .raider--l { grid-column: 1; justify-self: end; flex-direction: row-reverse; }
  .hazard--r, .raider--r { grid-column: 3; justify-self: start; }
  .hazard__art { width: 132px; height: 164px; }
  .hazard { gap: 16px; }

  .pair--wall { grid-template-columns: 1fr 340px 1fr; --way: 59.5%; padding-block: 44px; }
  .hazard--wall .hazard__art { display: none; }
  .blockade { display: block; position: absolute; z-index: 2; top: 50%; width: 92px; margin-top: -44px; filter: drop-shadow(0 6px 3px rgba(20, 45, 12, 0.4)); }
  .blockade--1 { left: calc(50% - 112px); margin-top: -50px; }
  .blockade--2 { left: calc(50% - 36px); margin-top: -40px; }
  .pair--trap { display: grid; min-height: 200px; --way: 50%; }
  .trap { width: 132px; }

  .raider { gap: 14px; }
  .raider__art { width: 150px; height: 160px; }
  .raider--boss .raider__art { width: 210px; height: 210px; }
  .raider--l .raider__text { align-items: flex-end; }
  .raider--l .bubble::after { left: auto; right: -10px; border: 0; border-right: 3px solid var(--ink); border-top: 3px solid var(--ink); }
  .bubble { font-size: 1.6rem; }
  .pair--bosses { padding-top: 44px; }

  .postcard { width: min(100%, 440px); }

  .turn { min-height: min(56.25vw, 100svh); padding-bottom: 5vw; }
  .turn__art { object-position: 50% 50%; }

  .game { grid-template-columns: 1.3fr 0.7fr; align-items: center; gap: 56px; }
  .game__logo { width: 220px; }
  .shots__strip { overflow: visible; }
  .shots__strip li { flex: 1 1 0; }
  .shots__note span { display: none; }
  .facts__list { grid-template-columns: 1fr 1fr; }
}

@media (min-width: 1180px) {
  .prop { display: block; position: absolute; z-index: 2; width: 120px; filter: drop-shadow(0 8px 4px rgba(20, 45, 12, 0.4)); }
  .prop--job-1 { right: calc(50% - 600px); top: 250px; width: 150px; }
  .prop--job-2 { left: calc(50% - 590px); top: 62%; }
  .prop--job-3 { left: calc(50% - 420px); top: 74%; width: 92px; }
  .prop--haz-1 { right: calc(50% - 590px); top: 70px; }
  .prop--haz-2 { left: calc(50% - 600px); top: 620px; width: 150px; }
  .prop--crew-1 { left: calc(50% - 560px); top: 120px; width: 110px; }
  .prop--crew-2 { right: calc(50% - 590px); top: 560px; width: 150px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .button { transition: none; }
  .marcher img { transition: none; }
}

/* 2026-11-13: the company's logo above its name in the footer. */
.foot__logo {
  display: inline-block;
  margin-bottom: 0.75rem;
}
.foot__logo img {
  display: block;
  width: auto;
  height: 1.875rem;
}
