:root {
  color-scheme: dark;
  --navy-950: #020712;
  --navy-900: #06101f;
  --navy-800: #0a1d33;
  --cream: #fff5dc;
  --sand: #e9b96f;
  --amber: #ff9d2f;
  --orange: #ff622e;
  --cyan: #33d7dc;
  --magenta: #f64acb;
  --line: rgba(255, 245, 220, .2);
}

* { box-sizing: border-box; }

html, body {
  width: 100%;
  height: 100%;
  margin: 0;
  overflow: hidden;
  background: var(--navy-950);
}

body {
  color: var(--cream);
  font-family: "Arial Narrow", "Roboto Condensed", Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}

button, input { font: inherit; }

button { color: inherit; }

button:focus-visible, a:focus-visible, input:focus-visible {
  outline: 3px solid var(--cyan);
  outline-offset: 4px;
}

[hidden] { display: none !important; }

.v3-app {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 100dvh;
  overflow: hidden;
  background: var(--navy-950);
  isolation: isolate;
}

.v3-app::after {
  position: absolute;
  z-index: 100;
  inset: 0;
  border: 1px solid rgba(255, 255, 255, .08);
  pointer-events: none;
  content: "";
}

.v3-bar {
  position: fixed;
  z-index: 90;
  top: 0;
  left: 0;
  right: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 68px;
  padding: 10px clamp(16px, 3vw, 42px);
  background: linear-gradient(180deg, rgba(2, 7, 18, .95), rgba(2, 7, 18, .25) 78%, transparent);
  pointer-events: none;
}

.v3-brand, .v3-actions { pointer-events: auto; }

.v3-brand {
  display: inline-flex;
  gap: 11px;
  align-items: center;
  color: var(--cream);
  text-decoration: none;
  letter-spacing: .11em;
}

.v3-brand img {
  width: 42px;
  height: 42px;
  object-fit: contain;
  filter: drop-shadow(0 0 12px rgba(255, 157, 47, .35));
}

.v3-brand span { display: grid; line-height: .95; }
.v3-brand b { font: 800 15px/1 "Arial Black", Impact, sans-serif; }
.v3-brand small { display: flex; justify-content: space-between; width: 100%; margin-top: 5px; color: var(--sand); font: 800 11px/1 Arial, sans-serif; }
.v3-brand small i { font-style: normal; }

.v3-actions { display: flex; gap: 8px; }

.v3-icon-btn, .v3-back-inline {
  min-height: 38px;
  padding: 8px 13px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(5, 14, 27, .7);
  color: rgba(255, 245, 220, .82);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
  backdrop-filter: blur(10px);
}

.v3-icon-btn:hover, .v3-back-inline:hover { border-color: var(--amber); color: #fff; }

.v3-main, .v3-screen { position: absolute; inset: 0; }

.v3-screen {
  z-index: 1;
  opacity: 0;
  visibility: hidden;
  transition: opacity .45s ease, visibility 0s linear .45s;
}

.v3-screen.is-active {
  opacity: 1;
  visibility: visible;
  transition: opacity .45s ease;
}

.v3-eyebrow, .v3-kicker {
  margin: 0 0 7px;
  color: var(--sand);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .28em;
  text-transform: uppercase;
}

/* The facade identity is part of the architecture; the billboard stays live
   so house campaigns can rotate without another exterior render. */
.v3-exterior { overflow: hidden; background: #07101d; }
.v3-exterior-bg, .v3-exterior-grade { position: absolute; inset: 0; width: 100%; height: 100%; }
.v3-exterior-bg { object-fit: cover; object-position: center; }
.v3-exterior-grade { background: linear-gradient(180deg, rgba(1, 7, 16, .04) 42%, rgba(1, 7, 16, .22) 67%, rgba(1, 7, 16, .88) 100%); pointer-events: none; }
.v3-exterior-billboard { position: absolute; z-index: 3; top: 45.45%; left: 76.82%; width: 21.55%; height: 11.75%; overflow: hidden; background: #020712; box-shadow: 0 0 20px rgba(62, 207, 220, .2); }
.v3-exterior-billboard::after { position: absolute; inset: 0; border: 1px solid rgba(255, 255, 255, .13); box-shadow: inset 0 0 18px rgba(0, 0, 0, .38); pointer-events: none; content: ""; }
.v3-exterior-billboard img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; opacity: 0; transition: opacity .75s ease; }
.v3-exterior-billboard img.is-active { opacity: 1; }
.v3-exterior-copy { position: absolute; z-index: 5; bottom: clamp(34px, 7vh, 78px); left: clamp(28px, 6vw, 100px); display: grid; justify-items: start; width: min(43vw, 640px); padding: 0; text-align: left; text-shadow: 0 3px 20px #000; }
.v3-exterior-copy h1 { margin: 0; color: #fff; font: 900 clamp(34px, 5vw, 78px)/.95 "Arial Black", Impact, sans-serif; letter-spacing: -.045em; }
.v3-exterior-intro { margin: 12px 0 10px; color: rgba(255, 245, 220, .86); font-size: clamp(14px, 1.1vw, 18px); line-height: 1.45; }
.v3-exterior-studio { margin: 0 0 16px; padding: 10px 13px; border-left: 3px solid var(--amber); background: rgba(3, 11, 22, .72); color: rgba(255, 245, 220, .78); font-size: clamp(12px, .95vw, 15px); line-height: 1.45; text-shadow: none; backdrop-filter: blur(8px); }
.v3-exterior-studio strong { color: var(--cream); }
.v3-exterior-mobile-note { display: none; }
.v3-exterior-actions { display: flex; flex-wrap: wrap; gap: 9px; }
.v3-exterior-actions .v3-secondary { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.v3-exterior-copy .v3-primary { min-width: 210px; box-shadow: 0 0 30px rgba(255, 126, 44, .34); }
.v3-outside { z-index: 8; }

.v3-primary, .v3-secondary {
  min-height: 48px;
  padding: 13px 22px;
  border-radius: 4px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
}

.v3-primary {
  border: 1px solid #ffc06a;
  background: linear-gradient(180deg, #ffb64c, #e76a23);
  color: #160b02;
  box-shadow: 0 10px 30px rgba(255, 111, 31, .25), inset 0 1px rgba(255, 255, 255, .45);
}

.v3-primary:hover { filter: brightness(1.12); transform: translateY(-1px); }

.v3-secondary {
  border: 1px solid var(--line);
  background: rgba(4, 14, 28, .74);
  color: var(--cream);
}

.v3-secondary:hover { border-color: var(--sand); }

/* Lobby background and hotspots share the same cover geometry. This keeps the
   cabinet controls aligned with the painted cabinets after wide-screen crops. */
.v3-lobby { background: #02050b; }

.v3-lobby-bg, .v3-room-grade, .v3-cabinets {
  position: absolute;
  top: 50%;
  left: 50%;
  width: max(100vw, 177.68vh);
  height: auto;
  aspect-ratio: 1672 / 941;
  transform: translate(-50%, -50%);
}

.v3-lobby-bg { object-fit: fill; }

.v3-room-grade {
  z-index: 2;
  background:
    linear-gradient(180deg, rgba(2, 7, 18, .58), transparent 25%, transparent 68%, rgba(2, 7, 18, .82)),
    radial-gradient(circle at 50% 48%, transparent 25%, rgba(0, 3, 10, .3) 85%);
  pointer-events: none;
}

.v3-lobby-heading {
  position: absolute;
  z-index: 6;
  top: clamp(82px, 10vh, 115px);
  left: clamp(18px, 4vw, 64px);
  max-width: min(720px, 62vw);
  text-shadow: 0 4px 22px #000;
}

.v3-lobby-heading h1 {
  max-width: 720px;
  margin: 0;
  font: 900 clamp(28px, 3vw, 48px)/.92 "Arial Black", Impact, sans-serif;
  letter-spacing: -.045em;
  text-transform: uppercase;
}

.v3-lobby-heading p:last-child { display: none; }

.v3-cabinets { z-index: 5; }

.v3-cabinet {
  position: absolute;
  border: 2px solid transparent;
  border-radius: 12px 12px 5px 5px;
  background: rgba(0, 0, 0, .02);
  color: #fff;
  opacity: .72;
  cursor: pointer;
  transition: opacity .2s ease, border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.v3-cabinet::after {
  position: absolute;
  inset: 10%;
  border-radius: 12px;
  background: radial-gradient(circle, rgba(255, 197, 96, .14), transparent 65%);
  content: "";
  opacity: 0;
  transition: opacity .2s ease;
}

.v3-cabinet:hover, .v3-cabinet.is-selected {
  z-index: 3;
  border-color: rgba(255, 196, 99, .92);
  box-shadow: 0 0 0 4px rgba(255, 157, 47, .16), 0 0 38px rgba(255, 157, 47, .34);
  opacity: 1;
  transform: translateY(-3px);
}

.v3-cabinet.is-selected::after { opacity: 1; }

.v3-cabinet .v3-marquee, .v3-cabinet small {
  position: absolute;
  z-index: 2;
  left: 10%;
  right: 10%;
  text-align: center;
  text-shadow: 0 1px 7px #000;
}

.v3-cabinet .v3-marquee {
  top: 3%;
  font: 900 clamp(9px, 1vw, 17px)/.86 "Arial Black", Impact, sans-serif;
  letter-spacing: -.03em;
}

.v3-cabinet small {
  top: 39%;
  color: rgba(255, 255, 255, .9);
  font-size: clamp(6px, .58vw, 10px);
  font-weight: 900;
  letter-spacing: .14em;
}

/* The selected game's art belongs to the physical marquee and CRT apertures.
   The first cabinet is angled, so its art is clipped to measured quadrilaterals
   and projected with the cabinet instead of floating as flat rectangles. */
.v3-cabinet-marquee-art, .v3-cabinet-screen-art {
  position: absolute;
  z-index: 2;
  display: block;
  pointer-events: none;
  user-select: none;
}

.v3-cabinet-waypoint-marquee, .v3-cabinet-waypoint-screen {
  position: absolute;
  z-index: 2;
  display: block;
  overflow: hidden;
  pointer-events: none;
  user-select: none;
}

.v3-cabinet-waypoint-marquee {
  top: 2%;
  left: 45.1%;
  width: 42.2%;
  height: 14.1%;
  clip-path: polygon(3% 0, 100% 29%, 98% 100%, 0 72%);
  background: rgba(5, 23, 28, .28);
}

.v3-cabinet-waypoint-marquee img {
  position: absolute;
  top: 9%;
  left: 2%;
  width: 96%;
  height: 82%;
  object-fit: contain;
  transform: rotate(10deg) scale(.91);
  filter: drop-shadow(0 2px 4px #000) drop-shadow(0 0 7px rgba(67, 235, 233, .32));
}

.v3-cabinet-waypoint-screen {
  top: 23.7%;
  left: 38.5%;
  width: 41.2%;
  height: 23.2%;
  clip-path: polygon(0 0, 93% 5%, 100% 100%, 16% 100%);
  background: #061013;
  box-shadow: inset 0 0 18px #000;
}

.v3-cabinet-waypoint-screen img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 52% center;
  transform: skewY(3deg) skewX(5deg) scale(1.1);
  filter: saturate(.88) contrast(1.08) brightness(.68);
}

.v3-cabinet-marquee-art {
  top: 3.2%;
  left: 6%;
  width: 88%;
  height: 11%;
  object-fit: contain;
  filter: drop-shadow(0 2px 4px #000) drop-shadow(0 0 8px rgba(255, 150, 42, .38));
}

.v3-cabinet-screen-art {
  top: 25.5%;
  left: 11.5%;
  width: 77%;
  height: 21%;
  border-radius: 7%;
  background: #0a0b0d;
  object-fit: cover;
  object-position: center;
  filter: brightness(.82) contrast(1.08) saturate(.9);
  box-shadow: inset 0 0 18px #000, 0 0 10px rgba(255, 170, 76, .2);
}

.v3-cabinet-rally small, .v3-cabinet-compass small, .v3-cabinet-atlas small {
  top: 38%;
  font-size: clamp(8px, .8vw, 14px);
  letter-spacing: .12em;
  text-shadow: 0 2px 8px #000, 0 0 14px currentColor;
}

.v3-cabinet-waypoint { left: 1.1%; top: 25.5%; width: 18.4%; height: 58%; color: #48f0e9; }
.v3-cabinet-rally { left: 17.9%; top: 28.1%; width: 13.6%; height: 53%; color: #ff75dc; }
.v3-cabinet-rivals { left: 40.4%; top: 18.2%; width: 20%; height: 73.4%; overflow: hidden; color: #ffc267; }
.v3-cabinet-compass { left: 68.2%; top: 28%; width: 14.5%; height: 53.6%; color: #ffbe61; }
.v3-cabinet-atlas { left: 82.4%; top: 28.1%; width: 16%; height: 56.5%; color: #4de5ff; }

.v3-game-card {
  position: absolute;
  z-index: 7;
  right: clamp(16px, 3.5vw, 58px);
  bottom: clamp(18px, 3vh, 36px);
  width: min(370px, 34vw);
  padding: 19px 20px;
  border: 1px solid rgba(255, 222, 160, .25);
  border-radius: 5px;
  background: linear-gradient(135deg, rgba(4, 13, 28, .94), rgba(10, 20, 32, .77));
  box-shadow: 0 20px 60px rgba(0, 0, 0, .46);
  backdrop-filter: blur(16px);
}

.v3-game-card h2 { margin: 0; font: 900 clamp(24px, 2.5vw, 38px)/1 "Arial Black", Impact, sans-serif; text-transform: uppercase; }
.v3-game-card > p:not(.v3-kicker):not(.v3-key-hint) { margin: 10px 0 16px; color: rgba(255, 245, 220, .74); line-height: 1.4; }
.v3-game-card .v3-primary { width: 100%; }
.v3-key-hint { margin: 10px 0 0; color: rgba(255, 255, 255, .45); font-size: 10px; font-weight: 800; letter-spacing: .1em; text-align: center; text-transform: uppercase; }
.v3-cabinet-rail { display: none; }

/* The intro uses live text over key art, so the title stays exact at every
   resolution and assistive technology never depends on image-generated copy. */
.v3-boot { background: #020712; }
.v3-boot-art { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.v3-boot-grade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(2, 7, 18, .22), rgba(2, 7, 18, .04) 42%, rgba(2, 7, 18, .93)), radial-gradient(circle at 50% 44%, transparent 22%, rgba(1, 5, 12, .42)); }
.v3-boot-copy { position: absolute; z-index: 3; left: 50%; bottom: clamp(52px, 7vh, 88px); width: min(720px, 92vw); transform: translateX(-50%); text-align: center; text-shadow: 0 4px 20px #000; }
.v3-boot-emblem { width: 74px; height: 74px; object-fit: contain; filter: drop-shadow(0 0 16px rgba(255, 178, 73, .55)); }
.v3-boot-copy > p:first-of-type { margin: 4px 0 4px; color: #fff; font-size: clamp(13px, 1.5vw, 20px); font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.v3-boot-copy h1 { margin: 0; color: var(--amber); font: 900 clamp(52px, 9vw, 132px)/.78 "Arial Black", Impact, sans-serif; letter-spacing: -.075em; text-transform: uppercase; }
.v3-boot-copy h1 span { color: var(--cream); }
.v3-boot-title-art { display: block; width: min(680px, 88vw); max-height: 29vh; margin: 0 auto; object-fit: contain; filter: drop-shadow(0 7px 22px rgba(0, 0, 0, .82)); }
.v3-boot-sub { margin: 16px auto 20px; color: rgba(255, 245, 220, .8); font-weight: 800; letter-spacing: .07em; }
.v3-boot-start { min-width: 220px; animation: v3-pulse 1.8s ease-in-out infinite; }
.v3-back { position: absolute; z-index: 6; left: 22px; bottom: 22px; border: 0; background: transparent; color: rgba(255, 255, 255, .7); font-weight: 900; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }

@keyframes v3-pulse { 50% { box-shadow: 0 0 0 8px rgba(255, 157, 47, .08), 0 12px 40px rgba(255, 111, 31, .55); } }

.v3-setup {
  overflow-y: auto;
  background: #06101f;
}

.v3-setup-backdrop {
  position: fixed;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(2, 7, 18, .42), #030915 88%),
    url("assets/dune-guide-adventures-oregon-key-art-v1.webp") center 22% / cover no-repeat;
  filter: saturate(.75);
  opacity: .45;
}

.v3-setup-shell {
  position: relative;
  z-index: 2;
  width: min(1420px, 94vw);
  min-height: 100%;
  margin: 0 auto;
  padding: clamp(88px, 11vh, 120px) 0 32px;
}

.v3-setup-head { display: flex; align-items: end; justify-content: space-between; gap: 20px; }
.v3-setup-head h1 { margin: 0; font: 900 clamp(33px, 4.5vw, 66px)/.95 "Arial Black", Impact, sans-serif; letter-spacing: -.04em; text-transform: uppercase; }

.v3-stepper {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 6px;
  margin: 24px 0 20px;
}

.v3-stepper span {
  padding: 9px 11px;
  border-top: 3px solid rgba(255, 255, 255, .16);
  color: rgba(255, 255, 255, .42);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.v3-stepper span.is-current { border-color: var(--amber); color: var(--cream); }
.v3-stepper span.is-complete { border-color: var(--cyan); color: rgba(255, 255, 255, .7); }

.v3-picker-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(8px, 1.2vw, 18px);
  min-height: 0;
}

.v3-pick-card {
  position: relative;
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 6px;
  background: linear-gradient(180deg, rgba(10, 29, 51, .94), rgba(3, 10, 21, .98));
  color: var(--cream);
  text-align: left;
  cursor: pointer;
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.v3-pick-card:hover, .v3-pick-card.is-selected {
  z-index: 2;
  border-color: var(--card-accent, var(--amber));
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--card-accent, var(--amber)) 20%, transparent), 0 20px 50px rgba(0, 0, 0, .42);
  transform: translateY(-5px);
}

.v3-pick-card:disabled {
  cursor: not-allowed;
}

.v3-pick-card.is-coming-soon {
  border-color: rgba(255, 255, 255, .1);
  color: rgba(255, 245, 220, .62);
}

.v3-pick-card.is-coming-soon:hover {
  z-index: auto;
  border-color: rgba(255, 255, 255, .16);
  box-shadow: none;
  transform: none;
}

.v3-pick-image {
  position: relative;
  display: block;
  height: clamp(190px, 30vh, 275px);
  overflow: hidden;
  background: radial-gradient(circle at 50% 35%, color-mix(in srgb, var(--card-accent, #e9b96f) 34%, #152235), #050b16 74%);
}

.v3-pick-image img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.v3-rider-card .v3-pick-image { display: grid; place-items: center; }
.v3-rider-card .v3-pick-image img { padding: 8px 4px 0; object-fit: contain; object-position: center bottom; filter: drop-shadow(0 15px 16px rgba(0, 0, 0, .58)); transform: scale(1.01); transition: transform .28s ease, filter .28s ease; }
.v3-rider-card:hover .v3-pick-image img, .v3-rider-card.is-selected .v3-pick-image img { filter: drop-shadow(0 18px 20px rgba(0, 0, 0, .65)) drop-shadow(0 0 10px color-mix(in srgb, var(--card-accent) 28%, transparent)); transform: scale(1.045); }

.v3-pick-copy { padding: 14px 15px 16px; }
.v3-pick-copy h2 { margin: 0 0 4px; font: 900 clamp(18px, 1.7vw, 28px)/1 "Arial Black", Impact, sans-serif; text-transform: uppercase; }
.v3-pick-copy p { min-height: 34px; margin: 0; color: rgba(255, 245, 220, .62); font-size: 12px; line-height: 1.35; }
.v3-pick-copy small { display: block; margin-top: 11px; color: var(--card-accent, var(--sand)); font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }

.v3-vehicle-card .v3-pick-image { display: grid; height: clamp(185px, 28vh, 250px); place-items: center; }
.v3-vehicle-card .v3-pick-image img { width: 100%; height: 100%; padding: 6px 4px 0; object-fit: contain; object-position: center; filter: drop-shadow(0 16px 18px rgba(0, 0, 0, .58)); transform: scale(1.03); transition: transform .28s ease, filter .28s ease; }
.v3-vehicle-card:hover .v3-pick-image img, .v3-vehicle-card.is-selected .v3-pick-image img { filter: drop-shadow(0 19px 22px rgba(0, 0, 0, .66)) drop-shadow(0 0 12px color-mix(in srgb, var(--card-accent) 28%, transparent)); transform: scale(1.075); }
.v3-vehicle-card[data-id="rail"] .v3-pick-image img, .v3-vehicle-card[data-id="truck"] .v3-pick-image img { transform: scale(.97); }
.v3-vehicle-card[data-id="rail"]:hover .v3-pick-image img, .v3-vehicle-card[data-id="rail"].is-selected .v3-pick-image img,
.v3-vehicle-card[data-id="truck"]:hover .v3-pick-image img, .v3-vehicle-card[data-id="truck"].is-selected .v3-pick-image img { transform: scale(1.02); }

.v3-course-card .v3-pick-image {
  height: clamp(120px, 18vh, 168px);
  background: #07101c;
}

.v3-course-card .v3-pick-image::after { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 44%, rgba(3, 10, 21, .42)); content: ""; pointer-events: none; }
.v3-course-card .v3-pick-image img { object-fit: cover; filter: saturate(.92) contrast(1.04); transform: scale(1.01); transition: filter .3s ease, transform .3s ease; }
.v3-course-card:hover .v3-pick-image img, .v3-course-card.is-selected .v3-pick-image img { filter: saturate(1.08) contrast(1.06); transform: scale(1.055); }
.v3-course-card.is-coming-soon .v3-pick-image img { filter: saturate(.32) brightness(.52) contrast(1.08); transform: scale(1.01); }
.v3-course-card.is-coming-soon:hover .v3-pick-image img { filter: saturate(.32) brightness(.52) contrast(1.08); transform: scale(1.01); }
.v3-pick-status { position: absolute; z-index: 3; top: 50%; left: 50%; padding: 8px 11px; border: 1px solid rgba(255, 210, 135, .58); border-radius: 3px; background: rgba(2, 7, 18, .84); color: var(--cream); font: 900 10px/1 "Arial Black", Impact, sans-serif; letter-spacing: .13em; text-align: center; text-transform: uppercase; transform: translate(-50%, -50%); box-shadow: 0 8px 24px rgba(0, 0, 0, .5); white-space: nowrap; }
.v3-pick-status.is-live { top: 12px; right: 12px; left: auto; border-color: rgba(79, 225, 177, .62); background: rgba(5, 47, 39, .88); color: #bfffe9; transform: none; }
.v3-course-card .v3-pick-copy p { min-height: 50px; }
.v3-course-card .v3-pick-copy { padding: 10px 11px 11px; }
.v3-course-card .v3-pick-copy h2 { font-size: clamp(17px, 1.55vw, 23px); }
.v3-course-card .v3-pick-copy p { min-height: 34px; font-size: 11px; }
.v3-course-card .v3-pick-copy small { margin-top: 6px; }

.v3-picker-grid.is-area-grid { grid-template-columns: repeat(3, minmax(240px, 1fr)); max-width: 1120px; margin-inline: auto; }
.v3-area-card .v3-pick-image { height: clamp(190px, 27vh, 260px); }
.v3-area-card.is-coming-soon, .v3-start-card.is-coming-soon { cursor: pointer; }
.v3-area-card.is-coming-soon.is-selected, .v3-area-card.is-coming-soon:hover,
.v3-start-card.is-coming-soon.is-selected, .v3-start-card.is-coming-soon:hover { z-index: 2; border-color: var(--card-accent, var(--amber)); box-shadow: 0 0 0 3px color-mix(in srgb, var(--card-accent, var(--amber)) 20%, transparent), 0 20px 50px rgba(0, 0, 0, .42); transform: translateY(-5px); }
.v3-area-name { position: absolute; z-index: 2; right: 15px; bottom: 13px; left: 15px; color: var(--cream); font: 900 clamp(25px, 3vw, 44px)/.9 "Arial Black", Impact, sans-serif; letter-spacing: -.04em; text-shadow: 0 3px 18px rgba(0, 0, 0, .88); text-transform: uppercase; }

.v3-picker-grid.is-start-grid { display: block; max-width: 1180px; margin-inline: auto; }
.v3-start-group + .v3-start-group { margin-top: 22px; }
.v3-start-group-head { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin: 0 2px 10px; padding-bottom: 8px; border-bottom: 1px solid rgba(255, 255, 255, .16); }
.v3-start-group-head .v3-eyebrow { margin: 0 0 3px; }
.v3-start-group-head h2 { margin: 0; color: var(--cream); font: 900 clamp(18px, 2vw, 25px)/1 "Arial Black", Impact, sans-serif; text-transform: uppercase; }
.v3-start-group-head > span { display: grid; width: 32px; height: 32px; border: 1px solid rgba(255, 210, 135, .35); border-radius: 50%; place-items: center; color: var(--sand); font-weight: 900; }
.v3-start-list { display: grid; grid-template-columns: repeat(3, minmax(230px, 1fr)); gap: clamp(8px, 1.2vw, 18px); }
.v3-start-card .v3-pick-image { height: clamp(145px, 20vh, 205px); }
.v3-start-card .v3-pick-image::after { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(2, 7, 18, .05), rgba(2, 7, 18, .72)); content: ""; }
.v3-start-card .v3-pick-image img { object-fit: cover; transition: filter .3s ease, transform .3s ease; }
.v3-start-card:hover .v3-pick-image img, .v3-start-card.is-selected .v3-pick-image img { filter: saturate(1.08); transform: scale(1.035); }
.v3-start-kind { position: absolute; z-index: 2; right: 12px; bottom: 12px; padding: 7px 9px; border: 1px solid rgba(255, 255, 255, .25); border-radius: 999px; background: rgba(3, 11, 22, .82); color: var(--cream); font-size: 9px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }

.v3-setup-foot {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 18px;
  margin-top: 22px;
  padding: 14px;
  border-top: 1px solid var(--line);
  background: rgba(2, 7, 18, .52);
  backdrop-filter: blur(12px);
}

.v3-setup-foot p { margin: 0; color: rgba(255, 245, 220, .72); font-weight: 800; text-align: center; }

.v3-grid-preview {
  display: grid;
  grid-template-columns: minmax(280px, 1.4fr) minmax(300px, 2fr);
  gap: 22px;
  height: min(410px, calc(100vh - 310px));
  min-height: 330px;
}

.v3-grid-preview.is-adventure { display: block; height: min(500px, calc(100vh - 300px)); min-height: 350px; }
.v3-adventure-hero { position: relative; height: 100%; overflow: hidden; border: 1px solid rgba(255, 210, 135, .32); border-radius: 7px; background: #07111e; isolation: isolate; }
.v3-adventure-hero > img { position: absolute; display: block; }
.v3-adventure-art { z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 44%; filter: saturate(.88) contrast(1.04); }
.v3-adventure-grade { position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(2, 7, 18, .96) 0, rgba(2, 7, 18, .78) 35%, rgba(2, 7, 18, .12) 68%), linear-gradient(0deg, rgba(2, 7, 18, .76), transparent 48%); }
.v3-adventure-ride { right: 2%; bottom: -3%; width: 46%; height: 62%; object-fit: contain; object-position: right bottom; filter: drop-shadow(0 22px 28px rgba(0, 0, 0, .72)); }
.v3-adventure-copy { position: absolute; z-index: 3; top: 50%; left: clamp(22px, 5vw, 72px); width: min(620px, 52%); transform: translateY(-50%); }
.v3-adventure-copy h2 { max-width: 610px; margin: 7px 0 13px; color: var(--cream); font: 900 clamp(34px, 5vw, 72px)/.9 "Arial Black", Impact, sans-serif; letter-spacing: -.04em; text-transform: uppercase; text-wrap: balance; }
.v3-adventure-copy > p:last-child { margin: 0; color: rgba(255, 245, 220, .78); font-size: clamp(14px, 1.5vw, 19px); line-height: 1.45; }
.v3-waypoint-hero .v3-adventure-art { object-position: center; filter: saturate(.96) contrast(1.08); }
.v3-waypoint-hero .v3-adventure-grade { background: linear-gradient(90deg, rgba(2, 7, 18, .94) 0, rgba(2, 7, 18, .67) 40%, rgba(2, 7, 18, .08) 74%), linear-gradient(0deg, rgba(2, 7, 18, .74), transparent 52%); }

/* The notice and facade branding are baked into one 3:2 image so their
   relationship cannot drift at different viewport sizes. */
.v3-project { overflow: hidden; background: #020712; }
.v3-project-poster {
  position: absolute;
  top: 50%;
  left: 50%;
  width: max(100vw, 150vh);
  height: auto;
  max-width: none;
  transform: translate(-50%, -50%);
}
.v3-project-actions {
  position: absolute;
  z-index: 5;
  bottom: clamp(18px, 3vh, 34px);
  left: 50%;
  transform: translateX(-50%);
}
.v3-project-actions .v3-primary { min-width: min(320px, calc(100vw - 36px)); box-shadow: 0 0 34px rgba(255, 126, 44, .44), 0 12px 30px rgba(0, 0, 0, .58); }
.v3-project .v3-back { text-shadow: 0 2px 10px #000; }

.v3-grid-hero, .v3-grid-rivals {
  border: 1px solid var(--line);
  border-radius: 6px;
  background: rgba(3, 11, 23, .84);
  overflow: hidden;
}

.v3-grid-hero { position: relative; min-height: 0; isolation: isolate; }
.v3-grid-hero > img { position: absolute; display: block; }
.v3-grid-hero .v3-entry-backdrop { z-index: -1; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .78; }
.v3-grid-hero .v3-entry-ride { z-index: 1; left: -3%; bottom: 52px; width: 69%; height: 64%; object-fit: contain; object-position: left bottom; filter: drop-shadow(0 22px 22px rgba(0, 0, 0, .72)); }
.v3-grid-hero .v3-entry-rider { z-index: 2; right: -2%; bottom: 34px; width: 48%; height: 94%; object-fit: contain; object-position: right bottom; filter: drop-shadow(0 20px 18px rgba(0, 0, 0, .74)); }
.v3-grid-hero[data-ride="bike"] .v3-entry-ride { left: 5%; width: 48%; }
.v3-grid-hero[data-ride="rail"] .v3-entry-ride, .v3-grid-hero[data-ride="truck"] .v3-entry-ride { left: -7%; width: 76%; }
.v3-grid-hero-copy { position: absolute; z-index: 3; inset: auto 0 0; padding: 32px 24px 20px; background: linear-gradient(transparent, rgba(2, 7, 18, .98) 42%); }
.v3-grid-hero-copy h2 { margin: 0; font: 900 clamp(30px, 4vw, 56px)/.9 "Arial Black", Impact, sans-serif; text-transform: uppercase; }
.v3-grid-hero-copy p { margin: 9px 0 0; color: rgba(255, 245, 220, .72); }
.v3-grid-rivals { padding: 20px; }
.v3-grid-rivals h2 { margin: 0 0 14px; font: 900 22px/1 "Arial Black", Impact, sans-serif; text-transform: uppercase; }
.v3-rival-row { display: grid; grid-template-columns: 44px 1fr auto; align-items: center; gap: 12px; padding: 9px 0; border-top: 1px solid rgba(255, 255, 255, .1); }
.v3-rival-row img { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; background: #081526; }
.v3-rival-row b { display: block; text-transform: uppercase; }
.v3-rival-row span { color: rgba(255, 245, 220, .55); font-size: 11px; }
.v3-rival-row em { color: var(--sand); font-size: 11px; font-style: normal; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }

.v3-race { background: #000; }
#raceCanvas { display: block; width: 100%; height: 100%; background: #091728; object-fit: cover; }
.v3-race-grade {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 50% 108%, rgba(255, 132, 51, .09), transparent 42%),
    linear-gradient(105deg, rgba(0, 35, 55, .11), transparent 38%, rgba(255, 91, 33, .055));
  box-shadow: inset 0 0 150px rgba(0, 4, 12, .67), inset 0 -80px 110px rgba(0, 5, 12, .18);
  pointer-events: none;
}
.v3-race-hud { position: absolute; z-index: 3; top: 76px; left: 50%; display: flex; gap: 8px; transform: translateX(-50%); }
.v3-race-hud > div { display: grid; min-width: 112px; padding: 9px 13px; border: 1px solid rgba(255, 255, 255, .13); border-radius: 4px; background: rgba(3, 11, 22, .78); text-align: center; backdrop-filter: blur(9px); }
.v3-race-hud span { color: rgba(255, 245, 220, .52); font-size: 9px; font-weight: 900; letter-spacing: .16em; }
.v3-race-hud b { margin-top: 2px; color: #fff; font: 900 18px/1 "Arial Black", Impact, sans-serif; }
.v3-race-hud .v3-race-place b { color: var(--amber); font-size: 29px; }
.v3-race-hud.is-adventure > div:first-child, .v3-race-hud.is-adventure > div:nth-child(3) { display: none; }
.v3-race-hud.is-adventure > div:nth-child(2) { min-width: 250px; }
.v3-race-hud.is-adventure > div:nth-child(4) { min-width: 150px; }
.v3-rally-guide { position: absolute; z-index: 6; top: 158px; left: 50%; display: flex; align-items: center; gap: 10px; padding: 8px 14px; border: 1px solid rgba(255, 178, 70, .55); border-radius: 999px; background: rgba(3, 11, 22, .82); color: var(--cream); font: 900 13px/1 "Arial Black", Impact, sans-serif; letter-spacing: .09em; transform: translateX(-50%); box-shadow: 0 8px 28px rgba(0, 0, 0, .35); backdrop-filter: blur(9px); }
.v3-rally-guide[hidden] { display: none; }
.v3-rally-guide b { color: var(--amber); font-size: 25px; line-height: .7; }
.v3-race-call { position: absolute; z-index: 5; top: 30%; left: 50%; margin: 0; color: #fff; font: 900 clamp(24px, 4vw, 58px)/1 "Arial Black", Impact, sans-serif; letter-spacing: -.03em; text-shadow: 0 4px 20px #000; text-transform: uppercase; transform: translateX(-50%); opacity: 0; transition: opacity .15s ease, transform .25s ease; white-space: nowrap; }
.v3-race-call.is-visible { opacity: 1; transform: translate(-50%, -8px); }
.v3-countdown { position: absolute; z-index: 7; inset: 0; display: grid; place-items: center; color: var(--cream); font: 900 clamp(100px, 18vw, 250px)/1 "Arial Black", Impact, sans-serif; text-shadow: 0 8px 40px #000, 0 0 45px rgba(255, 157, 47, .5); pointer-events: none; }
.v3-countdown.is-adventure-intro { padding: 10vw; background: radial-gradient(circle, rgba(2, 7, 18, .18), rgba(2, 7, 18, .72)); color: var(--cream); font-size: clamp(38px, 7vw, 104px); line-height: .94; letter-spacing: -.04em; text-align: center; text-transform: uppercase; text-wrap: balance; }
.v3-pause { position: absolute; z-index: 4; top: 80px; right: 18px; min-height: 42px; padding: 8px 13px; border: 1px solid var(--line); border-radius: 3px; background: rgba(3, 11, 22, .72); color: var(--cream); font-weight: 900; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; }
.v3-pause-panel { position: absolute; z-index: 20; top: 50%; left: 50%; width: min(420px, 88vw); padding: 30px; border: 1px solid rgba(255, 210, 135, .35); border-radius: 6px; background: rgba(2, 7, 18, .96); box-shadow: 0 28px 100px #000; text-align: center; transform: translate(-50%, -50%); }
.v3-pause-panel h2 { margin: 0 0 22px; font: 900 34px/1 "Arial Black", Impact, sans-serif; text-transform: uppercase; }
.v3-pause-panel button { width: 100%; margin-top: 9px; }

.v3-touch-controls { position: absolute; z-index: 6; left: 0; right: 0; bottom: max(14px, env(safe-area-inset-bottom)); display: none; align-items: end; justify-content: space-between; padding: 0 16px; pointer-events: none; }
.v3-touch-controls button { width: 64px; height: 64px; border: 1px solid rgba(255, 255, 255, .28); border-radius: 50%; background: rgba(3, 11, 22, .62); color: #fff; font-weight: 900; pointer-events: auto; touch-action: none; backdrop-filter: blur(8px); }
.v3-touch-controls #touchBrake { margin-left: 6px; border-color: rgba(255, 101, 57, .58); }
.v3-touch-controls #touchThrottle { margin-left: auto; margin-right: 6px; border-color: rgba(69, 231, 187, .62); background: rgba(11, 82, 64, .64); }

.v3-results { overflow-y: auto; background: #020712; }
.v3-results-bg { position: fixed; inset: 0; background: linear-gradient(180deg, rgba(2, 7, 18, .32), #020712 88%), url("assets/dune-rally-key-art-v3.webp") center / cover no-repeat; filter: saturate(.62); opacity: .42; }
.v3-results-card { position: relative; z-index: 2; width: min(920px, 92vw); margin: 0 auto; padding: clamp(90px, 12vh, 130px) 0 40px; }
.v3-results-card > h1 { margin: 0; font: 900 clamp(42px, 7vw, 88px)/.9 "Arial Black", Impact, sans-serif; text-transform: uppercase; }
.v3-result-call { margin: 12px 0 22px; color: rgba(255, 245, 220, .72); font-size: 18px; }
.v3-standings { margin: 0; padding: 0; list-style: none; counter-reset: finish; }
.v3-standings li { counter-increment: finish; display: grid; grid-template-columns: 44px 50px 1fr auto; align-items: center; gap: 12px; min-height: 64px; padding: 8px 15px; border-top: 1px solid rgba(255, 255, 255, .11); background: rgba(3, 11, 22, .68); }
.v3-standings li::before { content: counter(finish); color: var(--sand); font: 900 24px/1 "Arial Black", Impact, sans-serif; }
.v3-standings li.is-player { background: linear-gradient(90deg, rgba(255, 133, 40, .22), rgba(3, 11, 22, .8)); }
.v3-standings img { width: 46px; height: 46px; border-radius: 50%; object-fit: cover; }
.v3-standings b { display: block; text-transform: uppercase; }
.v3-standings span { color: rgba(255, 245, 220, .55); font-size: 12px; }
.v3-standings em { color: var(--cream); font-style: normal; font-weight: 900; }
.v3-record, .v3-leaderboard { margin-top: 22px; padding: 18px; border: 1px solid var(--line); background: rgba(3, 11, 22, .72); }
.v3-record label { display: block; margin-bottom: 9px; color: rgba(255, 245, 220, .68); font-weight: 800; }
.v3-record > div { display: flex; gap: 8px; }
.v3-record input { flex: 1; min-width: 0; border: 1px solid rgba(255, 255, 255, .22); border-radius: 4px; background: #020712; color: #fff; padding: 12px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.v3-leaderboard h2 { margin: 0 0 10px; font: 900 20px/1 "Arial Black", Impact, sans-serif; text-transform: uppercase; }
.v3-board-row { display: grid; grid-template-columns: 32px 1fr auto auto; gap: 12px; padding: 8px 0; border-top: 1px solid rgba(255, 255, 255, .08); color: rgba(255, 245, 220, .7); }
.v3-board-row b { color: #fff; }
.v3-result-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 22px; }

.v3-asset-credit { display: inline-block; margin-top: 10px; color: rgba(255, 245, 220, .58); font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; text-underline-offset: 3px; }
.v3-asset-credit:hover, .v3-asset-credit:focus-visible { color: #fff; }

.v3-sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.v3-noscript { position: fixed; z-index: 200; inset: 20% 10%; display: grid; place-items: center; background: #071529; color: #fff; text-align: center; }

@media (max-width: 900px) {
  .v3-bar { min-height: 58px; padding: 8px 12px; }
  .v3-brand img { width: 34px; height: 34px; }
  .v3-brand b { font-size: 12px; }
  .v3-brand small { font-size: 9px; }
  .v3-icon-btn { min-height: 34px; padding: 6px 9px; font-size: 10px; }
  .v3-lobby-heading { top: 75px; left: 16px; max-width: calc(100vw - 32px); }
  .v3-lobby-heading h1 { max-width: min(650px, calc(100vw - 32px)); font-size: clamp(28px, 6vw, 42px); }
  .v3-lobby-heading p:last-child { display: none; }
  .v3-cabinets { opacity: .72; pointer-events: none; }
  .v3-cabinet .v3-marquee, .v3-cabinet small { display: none; }
  .v3-game-card { right: 14px; bottom: 82px; left: 14px; width: auto; padding: 15px; }
  .v3-game-card > p:not(.v3-kicker):not(.v3-key-hint) { display: none; }
  .v3-asset-credit { display: none; }
  .v3-game-card h2 { font-size: 25px; }
  .v3-key-hint { display: none; }
  .v3-cabinet-rail { position: absolute; z-index: 8; right: 10px; bottom: 18px; left: 10px; display: flex; gap: 6px; overflow-x: auto; padding: 4px; }
  .v3-cabinet-rail { scrollbar-width: none; }
  .v3-cabinet-rail::-webkit-scrollbar { display: none; }
  .v3-cabinet-rail button { flex: 0 0 auto; min-height: 42px; padding: 8px 12px; border: 1px solid rgba(255, 255, 255, .2); border-radius: 3px; background: rgba(3, 11, 22, .86); color: rgba(255, 255, 255, .72); font-size: 10px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
  .v3-cabinet-rail button.is-selected { border-color: var(--amber); color: #fff; }
  .v3-picker-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); min-height: 0; }
  .v3-picker-grid.is-area-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .v3-start-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .v3-pick-image { height: 220px; }
  .v3-course-card .v3-pick-image { height: 140px; }
  .v3-grid-preview { grid-template-columns: 1fr; }
  .v3-grid-hero { min-height: 330px; }
  .v3-adventure-copy { left: 28px; width: 58%; }
  .v3-adventure-ride { right: -3%; width: 50%; }
  .v3-race-hud { top: 63px; gap: 4px; width: calc(100% - 16px); }
  .v3-race-hud > div { flex: 1; min-width: 0; padding: 7px 4px; }
  .v3-race-hud.is-adventure > div:nth-child(2) { min-width: min(52vw, 280px); padding-inline: 9px; }
  .v3-race-hud.is-adventure > div:nth-child(4) { min-width: 120px; }
  .v3-race-hud b { font-size: 14px; }
  .v3-race-hud .v3-race-place b { font-size: 22px; }
  .v3-race-hud span { font-size: 7px; letter-spacing: .08em; }
  .v3-rally-guide { top: 132px; font-size: 11px; }
  .v3-pause { top: 118px; right: 8px; font-size: 10px; }
  .v3-touch-controls { display: flex; }
}

@media (max-width: 560px) {
  .v3-exterior-bg { object-position: 68% center; }
  .v3-exterior-billboard { top: auto; right: 14px; bottom: 180px; left: 14px; width: auto; height: auto; aspect-ratio: 3.2 / 1; }
  .v3-exterior-copy { right: 12px; bottom: 10px; left: 12px; justify-items: stretch; width: auto; padding: 12px 14px 14px; border: 1px solid rgba(255, 210, 135, .24); border-radius: 6px; background: rgba(2, 7, 18, .9); text-align: left; text-shadow: none; backdrop-filter: blur(10px); }
  .v3-exterior-copy h1, .v3-exterior-intro, .v3-exterior-studio { display: none; }
  .v3-exterior-copy .v3-eyebrow { margin: 0 0 6px; font-size: 9px; }
  .v3-exterior-mobile-note { display: block; margin: 0 0 10px; color: rgba(255, 245, 220, .82); font-size: 11px; line-height: 1.4; }
  .v3-exterior-actions { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 7px; }
  .v3-exterior-copy .v3-primary, .v3-exterior-copy .v3-secondary { min-width: 0; min-height: 42px; padding: 9px 8px; font-size: 10px; }
  .v3-actions { gap: 4px; }
  .v3-icon-btn { padding: 5px 7px; }
  .v3-icon-btn:first-child { display: none; }
  .v3-boot-copy { bottom: 44px; }
  .v3-boot-emblem { width: 54px; height: 54px; }
  .v3-boot-copy h1 { font-size: 58px; }
  .v3-boot-title-art { width: min(92vw, 560px); max-height: 24vh; }
  .v3-boot-sub { font-size: 12px; }
  .v3-setup-shell { width: calc(100vw - 20px); padding-top: 78px; }
  .v3-setup-head { align-items: start; }
  .v3-setup-head h1 { font-size: 32px; }
  .v3-back-inline { padding: 6px 9px; font-size: 9px; }
  .v3-stepper { margin-top: 16px; }
  .v3-stepper span { padding: 7px 4px; font-size: 8px; letter-spacing: .05em; }
  .v3-pick-image, .v3-vehicle-card .v3-pick-image { height: 178px; }
  .v3-picker-grid.is-area-grid { grid-template-columns: 1fr; }
  .v3-start-list { grid-template-columns: 1fr; }
  .v3-start-card .v3-pick-image { height: 190px; }
  .v3-pick-copy { padding: 11px; }
  .v3-pick-copy h2 { font-size: 17px; }
  .v3-pick-copy p { font-size: 10px; }
  .v3-setup-foot { position: sticky; bottom: 0; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 12px; padding: 9px 4px; }
  .v3-setup-foot p { grid-column: 1 / -1; grid-row: 1; }
  .v3-setup-foot #setupPrevious { grid-column: 1; grid-row: 2; }
  .v3-setup-foot #setupNext { grid-column: 2; grid-row: 2; }
  .v3-setup-foot button { min-height: 42px; padding: 10px 11px; font-size: 10px; }
  .v3-setup-foot p { font-size: 10px; }
  .v3-grid-preview.is-adventure { height: min(450px, calc(100vh - 290px)); min-height: 330px; }
  .v3-adventure-art { object-position: 57% center; }
  .v3-adventure-grade { background: linear-gradient(0deg, rgba(2, 7, 18, .98) 0, rgba(2, 7, 18, .77) 46%, rgba(2, 7, 18, .12) 82%); }
  .v3-adventure-ride { right: -9%; bottom: 23%; width: 61%; height: 47%; opacity: .72; }
  .v3-adventure-copy { top: auto; right: 18px; bottom: 22px; left: 18px; width: auto; transform: none; }
  .v3-adventure-copy h2 { font-size: clamp(30px, 9vw, 44px); }
  .v3-adventure-copy > p:last-child { font-size: 12px; }
  /* A controlled center crop enlarges the baked notice without separating it
     from the facade artwork on narrow portrait screens. */
  .v3-project-poster { width: 180vw; }
  .v3-project-actions { right: 12px; bottom: 14px; left: 12px; transform: none; }
  .v3-project-actions .v3-primary { width: 100%; min-width: 0; min-height: 44px; }
  .v3-project .v3-back { top: 66px; bottom: auto; left: 12px; padding: 8px 10px; border-radius: 3px; background: rgba(2, 7, 18, .72); font-size: 9px; }
  .v3-race-hud.is-adventure { right: 8px; left: 8px; width: auto; transform: none; }
  .v3-race-hud.is-adventure > div:nth-child(2) { min-width: 0; }
  .v3-race-hud.is-adventure > div:nth-child(4) { min-width: 86px; }
  .v3-countdown.is-adventure-intro { padding: 9vw; font-size: clamp(34px, 12vw, 64px); }
  .v3-results-card { padding-top: 78px; }
  .v3-results-card > h1 { font-size: 42px; }
  .v3-standings li { grid-template-columns: 27px 38px 1fr auto; gap: 8px; padding: 7px; }
  .v3-standings img { width: 38px; height: 38px; }
  .v3-record > div { flex-direction: column; }
  .v3-record button { width: 100%; }
  .v3-board-row { grid-template-columns: 24px 1fr auto; }
  .v3-board-row span:last-child { display: none; }
}

@media (max-height: 500px) {
  /* Short landscape screens keep the facade sign visible by cropping from the
     bottom instead of cutting the brand off beneath the fixed site header. */
  .v3-project-poster { top: 0; transform: translateX(-50%); }
  .v3-project-actions { bottom: 10px; }
}

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