:root {
  color-scheme: dark;
  --void: #07090a;
  --carbon: #12171a;
  --titanium: #dde4e6;
  --mist: #aab4b8;
  --frost: #f4f7f7;
  --hairline: #3a454a;
  --accent: #f0bd32;
  --accent-rgb: 240, 189, 50;
  --safe-x: clamp(22px, 3.25vw, 56px);
  --safe-y: clamp(20px, 3.1vw, 48px);
  --display: "Bahnschrift SemiCondensed", "DIN Alternate", "Arial Narrow", sans-serif;
  --body: MiSans, "HarmonyOS Sans SC", "Microsoft YaHei UI", sans-serif;
  --mono: "Cascadia Mono", "SFMono-Regular", Consolas, monospace;
}

* {
  box-sizing: border-box;
}

html,
body {
  width: 100%;
  height: 100%;
  margin: 0;
  overflow: hidden;
  overscroll-behavior: none;
  background: var(--void);
}

body {
  color: var(--titanium);
  font-family: var(--body);
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
}

button {
  color: inherit;
  font: inherit;
}

button:focus-visible {
  outline: 2px solid var(--frost);
  outline-offset: 4px;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.experience {
  position: fixed;
  inset: 0;
  isolation: isolate;
  min-height: 100svh;
  background:
    radial-gradient(circle at 52% 54%, #141a1d 0, #090c0e 38%, var(--void) 76%),
    var(--void);
}

.experience:focus {
  outline: none;
}

#carCanvas {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  background: var(--void);
  opacity: 0;
  transform: scale(1.006);
  transition: opacity 700ms ease, filter 170ms ease, transform 700ms cubic-bezier(.2,.7,.2,1);
}

body.is-entered #carCanvas {
  opacity: 1;
  transform: scale(1);
}

.environment,
.light-slit,
.optical-vignette,
.film-grain {
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
}

.environment {
  opacity: 0;
  mix-blend-mode: screen;
  transition: opacity 170ms ease;
}

.environment--yellow {
  background: radial-gradient(ellipse at 72% 86%, rgba(240, 189, 50, .055), transparent 34%);
}

.environment--silver {
  background: radial-gradient(ellipse at 72% 86%, rgba(195, 207, 212, .048), transparent 34%);
}

body[data-theme="yellow"] {
  --accent: #f0bd32;
  --accent-rgb: 240, 189, 50;
}

body[data-theme="silver"] {
  --accent: #d6dee1;
  --accent-rgb: 214, 222, 225;
}

body[data-theme="yellow"] .environment--yellow,
body[data-theme="silver"] .environment--silver {
  opacity: 1;
}

.light-slit {
  z-index: 2;
  inset: 12% -10% auto;
  height: 1px;
  opacity: .22;
  background: linear-gradient(90deg, transparent 8%, rgba(221, 228, 230, .2) 32%, rgba(var(--accent-rgb), .72) 70%, transparent 92%);
  transform: translateX(-10%) scaleX(.78);
  transform-origin: center;
  transition: background 170ms ease;
}

body.is-playing .light-slit {
  animation: slit-travel 2.4s cubic-bezier(.2,.72,.25,1) both;
}

@keyframes slit-travel {
  0% { transform: translateX(-12%) scaleX(.72); opacity: .2; }
  45% { opacity: .55; }
  100% { transform: translateX(12%) scaleX(.95); opacity: .22; }
}

.optical-vignette {
  z-index: 3;
  background:
    linear-gradient(180deg, rgba(3, 5, 6, .25), transparent 18%, transparent 76%, rgba(3, 5, 6, .46)),
    radial-gradient(ellipse at center, transparent 52%, rgba(2, 4, 5, .18) 100%);
}

.film-grain {
  z-index: 4;
  opacity: .014;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.86' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
  background-size: 240px 240px;
  mix-blend-mode: soft-light;
  animation: grain-shift .55s steps(2) infinite;
}

@keyframes grain-shift {
  0% { transform: translate3d(-1%, 1%, 0); }
  50% { transform: translate3d(1%, -1%, 0); }
  100% { transform: translate3d(0, 1%, 0); }
}

.topbar {
  position: absolute;
  z-index: 12;
  inset: var(--safe-y) var(--safe-x) auto;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 32px;
  opacity: 0;
  transform: translateY(-8px);
  transition: opacity 520ms 160ms ease, transform 520ms 160ms ease;
}

body.is-entered .topbar {
  opacity: 1;
  transform: none;
}

.identity {
  display: grid;
  gap: 4px;
  min-width: 160px;
  padding: 0;
  text-align: left;
  border: 0;
  background: none;
  cursor: pointer;
}

.identity__model {
  font-family: var(--display);
  font-size: .93rem;
  font-weight: 600;
  letter-spacing: .17em;
  color: var(--frost);
}

.identity__mode,
.paint-switcher__label {
  font-family: var(--mono);
  font-size: .58rem;
  letter-spacing: .13em;
  color: var(--mist);
}

.paint-switcher {
  display: grid;
  justify-items: end;
  gap: 9px;
}

.paint-switcher__options {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 3px;
  border: 1px solid rgba(221, 228, 230, .17);
  border-radius: 999px;
  background: rgba(7, 9, 10, .36);
  backdrop-filter: blur(12px);
}

.paint-option {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 34px;
  padding: 0 11px 0 8px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--mist);
  font-size: .7rem;
  white-space: nowrap;
  cursor: pointer;
  transition: color 160ms ease, background 160ms ease;
}

.paint-option:hover,
.paint-option.is-active {
  color: var(--frost);
  background: rgba(221, 228, 230, .08);
}

.paint-chip {
  position: relative;
  width: 17px;
  height: 17px;
  flex: 0 0 17px;
  border: 1px solid rgba(255,255,255,.38);
  border-radius: 50%;
  box-shadow: inset -4px -4px 7px rgba(0,0,0,.48), inset 4px 3px 5px rgba(255,255,255,.28);
}

.paint-chip::after {
  content: "";
  position: absolute;
  inset: 3px 5px auto 4px;
  height: 3px;
  border-radius: 50%;
  background: rgba(255,255,255,.62);
  filter: blur(1px);
}

.paint-chip--yellow { background: #f2bd1f; }
.paint-chip--silver { background: #aeb8bc; }
.paint-option.is-active .paint-chip {
  outline: 1px solid var(--titanium);
  outline-offset: 3px;
}

.caption {
  position: absolute;
  z-index: 10;
  left: var(--safe-x);
  bottom: clamp(142px, 18.5vh, 196px);
  width: min(36rem, 42vw);
  color: var(--titanium);
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 520ms 260ms ease, transform 520ms 260ms cubic-bezier(.2,.7,.2,1), left 400ms ease, right 400ms ease;
}

body.is-entered .caption:not(.is-hidden) {
  opacity: 1;
  transform: none;
}

.caption--right {
  right: var(--safe-x);
  left: auto;
}

.caption.is-hidden {
  opacity: 0 !important;
  transform: translateY(8px) !important;
  transition-delay: 0ms;
  transition-duration: 140ms;
}

.caption__rule {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
  font-family: var(--mono);
  font-size: .64rem;
  letter-spacing: .14em;
  color: var(--mist);
}

.caption__rule i {
  width: 32px;
  height: 1px;
  background: var(--accent);
  transition: background 170ms ease;
}

.caption__mask {
  overflow: hidden;
}

.caption__kicker {
  margin: 0 0 10px;
  font-family: var(--display);
  font-size: clamp(3.2rem, 5.7vw, 7.2rem);
  font-weight: 620;
  line-height: .84;
  letter-spacing: -.045em;
  color: var(--frost);
  text-shadow: 0 2px 28px rgba(0, 0, 0, .78);
  transform: translateY(112%);
  transition: transform 480ms 90ms cubic-bezier(.18,.72,.22,1);
}

.caption h2 {
  margin: 0;
  font-size: clamp(1.18rem, 1.7vw, 1.75rem);
  font-weight: 560;
  line-height: 1.28;
  letter-spacing: -.025em;
  text-shadow: 0 2px 20px rgba(0, 0, 0, .82);
  transform: translateY(112%);
  transition: transform 480ms 145ms cubic-bezier(.18,.72,.22,1);
}

body.is-entered .caption:not(.is-hidden) .caption__kicker,
body.is-entered .caption:not(.is-hidden) h2 {
  transform: none;
}

.caption__copy {
  max-width: 29rem;
  margin: 14px 0 0;
  color: #b7c0c3;
  font-size: clamp(.9rem, 1vw, 1.02rem);
  line-height: 1.66;
  text-shadow: 0 1px 14px rgba(0, 0, 0, .92);
  opacity: 0;
  transition: opacity 340ms 245ms ease;
}

.caption__note {
  width: fit-content;
  margin: 12px 0 0;
  padding-left: 9px;
  border-left: 2px solid var(--accent);
  color: var(--mist);
  font-family: var(--mono);
  font-size: .58rem;
  letter-spacing: .08em;
  opacity: 0;
  transition: opacity 340ms 270ms ease;
}

.caption__note[hidden] {
  display: none;
}

body.is-entered .caption:not(.is-hidden) .caption__copy {
  opacity: 1;
}

body.is-entered .caption:not(.is-hidden) .caption__note {
  opacity: 1;
}

.caption__facts {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 26px;
  margin-top: 20px;
  opacity: 0;
  transition: opacity 340ms 300ms ease;
}

body.is-entered .caption:not(.is-hidden) .caption__facts {
  opacity: 1;
}

.fact {
  display: grid;
  gap: 2px;
  min-width: 112px;
}

.fact strong {
  font-family: var(--mono);
  font-size: clamp(1rem, 1.25vw, 1.35rem);
  font-weight: 560;
  color: var(--titanium);
  text-shadow: 0 1px 12px rgba(0, 0, 0, .9);
}

.fact span {
  font-size: .62rem;
  letter-spacing: .1em;
  color: var(--mist);
  text-transform: uppercase;
}

.caption__copy:empty,
.caption__facts:empty {
  display: none;
}

body[data-layout="hero"] .caption {
  bottom: clamp(150px, 20vh, 224px);
}

body[data-layout="hero"] .caption__kicker {
  font-size: clamp(4.4rem, 7.4vw, 9rem);
}

body[data-layout="metric"] .caption {
  top: clamp(130px, 18vh, 190px);
  bottom: auto;
  width: min(33rem, 38vw);
}

body[data-layout="metric"] .caption__kicker,
body[data-layout="duo"] .caption__kicker {
  font-variant-numeric: tabular-nums;
  font-size: clamp(5rem, 8.3vw, 10.5rem);
  letter-spacing: -.075em;
}

body[data-layout="metric-top"] .caption {
  top: clamp(120px, 17vh, 178px);
  bottom: auto;
  width: min(31rem, 36vw);
}

body[data-layout="statement"] .caption {
  bottom: clamp(150px, 19vh, 210px);
}

body[data-layout="statement"] .caption__kicker {
  color: var(--frost);
  font-size: clamp(5.2rem, 9.2vw, 11rem);
}

body[data-layout="duo"] .caption {
  top: clamp(125px, 18vh, 188px);
  bottom: auto;
}

body[data-layout="duo"] .caption h2 {
  max-width: 22rem;
  font-size: clamp(1.5rem, 2.2vw, 2.35rem);
}

body[data-layout="minimal"] .caption__rule,
body[data-layout="minimal"] .caption__copy,
body[data-layout="minimal"] .caption__facts {
  display: none;
}

body[data-layout="minimal"] .caption__kicker {
  font-size: clamp(4rem, 7vw, 8.4rem);
}

.motion-feedback {
  position: absolute;
  z-index: 11;
  right: var(--safe-x);
  bottom: clamp(209px, 25vh, 274px);
  display: flex;
  align-items: center;
  gap: 14px;
  opacity: 0;
  transition: opacity 400ms 280ms ease;
}

body.is-entered .motion-feedback {
  opacity: 1;
}

.play-state {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 10px;
  border: 1px solid var(--hairline);
  border-radius: 2px;
  background: rgba(3, 8, 10, .58);
  backdrop-filter: blur(10px);
  font-family: var(--mono);
  font-size: .68rem;
  letter-spacing: .08em;
  color: var(--frost);
}

.play-state i {
  width: 5px;
  height: 5px;
  border: 1px solid var(--accent);
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(var(--accent-rgb), .55);
}

body.is-playing .play-state i {
  background: var(--accent);
  animation: status-pulse .8s ease-in-out infinite alternate;
}

.skip-motion {
  min-height: 34px;
  padding: 0 11px;
  border: 1px solid rgba(221, 228, 230, .34);
  border-radius: 0;
  background: rgba(7, 9, 10, .72);
  color: var(--frost);
  font-family: var(--mono);
  font-size: .61rem;
  letter-spacing: .07em;
  cursor: pointer;
  transition: color 160ms ease, border-color 160ms ease, background 160ms ease;
}

.skip-motion:hover {
  color: var(--void);
  border-color: var(--accent);
  background: var(--accent);
}

@keyframes status-pulse {
  to { transform: scale(1.8); opacity: .4; }
}

.chapter-controls {
  position: absolute;
  z-index: 14;
  right: var(--safe-x);
  bottom: clamp(145px, 18.4vh, 198px);
  display: grid;
  grid-template-columns: repeat(2, minmax(142px, 1fr));
  width: min(330px, calc(100vw - 2 * var(--safe-x)));
  border-top: 1px solid rgba(221, 228, 230, .28);
  border-bottom: 1px solid rgba(221, 228, 230, .16);
  background: linear-gradient(90deg, rgba(7, 9, 10, .92), rgba(7, 9, 10, .58));
  opacity: 0;
  transform: translateY(7px);
  transition: opacity 420ms 250ms ease, transform 420ms 250ms ease;
}

body.is-entered .chapter-controls {
  opacity: 1;
  transform: none;
}

.chapter-control {
  display: flex;
  align-items: center;
  gap: 11px;
  min-height: 56px;
  padding: 8px 13px;
  border: 0;
  background: transparent;
  color: var(--titanium);
  text-align: left;
  cursor: pointer;
  transition: color 160ms ease, background 160ms ease;
}

.chapter-control + .chapter-control {
  border-left: 1px solid rgba(221, 228, 230, .17);
}

.chapter-control--next {
  justify-content: space-between;
  background: rgba(var(--accent-rgb), .08);
}

.chapter-control:hover:not(:disabled) {
  color: var(--frost);
  background: rgba(var(--accent-rgb), .14);
}

.chapter-control:active:not(:disabled) {
  background: rgba(var(--accent-rgb), .24);
}

.chapter-control:disabled {
  color: #687277;
  cursor: default;
}

.chapter-control__copy {
  display: grid;
  gap: 3px;
}

.chapter-control__copy small {
  color: var(--mist);
  font-family: var(--mono);
  font-size: .53rem;
  letter-spacing: .1em;
}

.chapter-control__copy strong {
  font-size: .72rem;
  font-weight: 650;
  letter-spacing: .03em;
}

.chapter-control__arrow {
  color: var(--accent);
  font-family: var(--mono);
  font-size: .9rem;
}

.camera-route {
  position: absolute;
  z-index: 14;
  right: var(--safe-x);
  bottom: max(20px, env(safe-area-inset-bottom));
  left: var(--safe-x);
  height: 82px;
  opacity: 0;
  transform: translateY(9px);
  transition: opacity 520ms 210ms ease, transform 520ms 210ms ease;
}

body.is-entered .camera-route {
  opacity: 1;
  transform: none;
}

.camera-route__meta {
  display: flex;
  justify-content: space-between;
  font-family: var(--mono);
  font-size: .6rem;
  letter-spacing: .08em;
  color: var(--mist);
}

.camera-route__map {
  position: relative;
  height: 64px;
  margin-top: 3px;
}

.camera-route svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
}

.camera-route__base,
.camera-route__progress {
  fill: none;
  stroke-width: 1.25;
  vector-effect: non-scaling-stroke;
}

.camera-route__base {
  stroke: var(--hairline);
}

.camera-route__progress {
  stroke: var(--titanium);
  stroke-dasharray: 0 100;
  transition: stroke-dasharray 80ms linear;
}

.camera-route__lens {
  fill: var(--void);
  stroke: var(--accent);
  stroke-width: 2;
  vector-effect: non-scaling-stroke;
  transition: stroke 170ms ease;
}

.camera-route__nodes {
  position: absolute;
  inset: 0;
}

.route-node {
  position: absolute;
  display: grid;
  justify-items: center;
  align-content: start;
  gap: 5px;
  width: 62px;
  height: 44px;
  padding: 13px 0 0;
  border: 0;
  background: transparent;
  transform: translate(-50%, -16px);
  color: var(--mist);
  cursor: pointer;
}

.route-node i {
  width: 7px;
  height: 7px;
  border: 1px solid var(--hairline);
  border-radius: 50%;
  background: var(--void);
  transition: border-color 180ms ease, transform 180ms ease, background 180ms ease;
}

.route-node span {
  font-family: var(--mono);
  font-size: .6rem;
  letter-spacing: .06em;
  white-space: nowrap;
}

.route-node:hover,
.route-node.is-active {
  color: var(--titanium);
}

.route-node.is-active i {
  border-color: var(--accent);
  background: var(--accent);
  transform: scale(1.15);
}

.interaction-hint {
  position: absolute;
  z-index: 12;
  left: 50%;
  top: clamp(132px, 15vh, 170px);
  display: flex;
  align-items: center;
  gap: 13px;
  min-width: min(390px, calc(100vw - 2 * var(--safe-x)));
  padding: 12px 16px;
  border-block: 1px solid rgba(221, 228, 230, .22);
  background: linear-gradient(90deg, rgba(7, 9, 10, .9), rgba(7, 9, 10, .58));
  transform: translate(-50%, -42%);
  color: var(--mist);
  font-family: var(--mono);
  font-size: .62rem;
  letter-spacing: .05em;
  opacity: 0;
  pointer-events: none;
  transition: opacity 300ms ease, transform 300ms ease;
}

.interaction-hint.is-visible {
  opacity: 1;
  transform: translate(-50%, -50%);
}

.interaction-hint__wheel {
  position: relative;
  width: 19px;
  height: 29px;
  border: 1px solid rgba(221, 228, 230, .58);
  border-radius: 11px;
}

.interaction-hint__copy {
  display: grid;
  gap: 4px;
}

.interaction-hint__copy strong {
  color: var(--frost);
  font-family: var(--body);
  font-size: .82rem;
  letter-spacing: .02em;
}

.interaction-hint__copy small {
  color: rgba(221, 228, 230, .72);
  font-size: .62rem;
}

.interaction-hint__wheel i {
  position: absolute;
  top: 6px;
  left: 8px;
  width: 2px;
  height: 5px;
  border-radius: 1px;
  background: var(--accent);
  animation: wheel-dot 1.45s ease-in-out infinite;
}

@keyframes wheel-dot {
  0%, 100% { transform: translateY(0); opacity: .25; }
  45% { opacity: 1; }
  70% { transform: translateY(9px); opacity: .15; }
}

.frame-readout {
  position: absolute;
  z-index: 11;
  right: var(--safe-x);
  bottom: 118px;
  font-family: var(--mono);
  font-size: .52rem;
  letter-spacing: .12em;
  color: rgba(141, 152, 158, .7);
  opacity: 0;
  transition: opacity 400ms ease;
}

body.is-entered .frame-readout {
  opacity: 1;
}

.source-note {
  position: absolute;
  z-index: 11;
  left: var(--safe-x);
  bottom: 134px;
  margin: 0;
  color: rgba(141, 152, 158, .68);
  font-size: .54rem;
  letter-spacing: .05em;
  opacity: 0;
  transform: translateY(5px);
  transition: opacity 300ms ease, transform 300ms ease;
}

body[data-station="whole"] .source-note {
  opacity: 1;
  transform: none;
}

.loader {
  --load: 0%;
  position: fixed;
  z-index: 100;
  inset: 0;
  display: grid;
  align-items: end;
  background: #050607;
  overflow: hidden;
  transition: opacity 650ms cubic-bezier(.4,0,.2,1), visibility 650ms;
}

.loader__poster,
.loader__poster img,
.loader__poster-shade {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.loader__poster img {
  object-fit: cover;
  object-position: center;
}

.loader__poster-base {
  filter: grayscale(.88) brightness(.18) contrast(1.08);
  transform: scale(1.015);
}

.loader__poster-lit {
  clip-path: inset(0 calc(100% - var(--load)) 0 0);
  filter: saturate(.92) brightness(.66) contrast(1.04);
  transition: clip-path 120ms linear;
}

.loader__poster-shade {
  background:
    linear-gradient(90deg, rgba(4, 5, 6, .96) 0%, rgba(4, 5, 6, .74) 32%, rgba(4, 5, 6, .12) 70%),
    linear-gradient(0deg, rgba(4, 5, 6, .92) 0%, transparent 54%, rgba(4, 5, 6, .28) 100%);
}

.loader.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.loader__beam {
  position: absolute;
  z-index: 1;
  top: 0;
  bottom: 0;
  left: var(--load);
  width: clamp(36px, 5vw, 84px);
  opacity: .72;
  background: linear-gradient(90deg, transparent, rgba(240, 189, 50, .24), rgba(255, 247, 218, .72), transparent);
  filter: blur(12px);
  transform: translateX(-50%);
  transition: left 120ms linear;
}

.loader__inner {
  position: relative;
  z-index: 2;
  width: min(780px, calc(100vw - 2 * var(--safe-x)));
  margin: 0 0 clamp(40px, 8vh, 86px) var(--safe-x);
}

.loader__eyebrow,
.loader__status-row {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  font-family: var(--mono);
  font-size: .61rem;
  letter-spacing: .13em;
  color: rgba(244, 247, 247, .68);
}

.loader__signature {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: end;
  column-gap: clamp(18px, 2.4vw, 40px);
  margin: clamp(22px, 4.5vh, 48px) 0 clamp(28px, 5vh, 56px);
}

.loader__signature > p:first-child {
  grid-column: 1 / -1;
  margin: 0 0 4px;
  color: var(--accent);
  font-family: var(--mono);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .2em;
}

.loader h1 {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(5rem, 12vw, 11rem);
  font-weight: 760;
  line-height: .72;
  letter-spacing: -.07em;
  color: var(--frost);
}

.loader__statement {
  margin: 0 0 .2em;
  color: var(--frost);
  font-size: clamp(1.15rem, 2vw, 1.75rem);
  font-weight: 650;
  letter-spacing: -.035em;
}

.loader__message {
  display: grid;
  gap: 9px;
  align-self: end;
}

.loader__purpose {
  max-width: 28rem;
  margin: 0;
  color: rgba(221, 228, 230, .76);
  font-size: .72rem;
  line-height: 1.6;
  letter-spacing: .04em;
}

.loader__track {
  height: 1px;
  margin-bottom: 12px;
  overflow: hidden;
  background: var(--hairline);
}

.loader__track i {
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, #8c711f, var(--accent), #fff1bd);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 100ms linear;
}

.enter-button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: min(276px, 100%);
  min-height: 52px;
  margin-top: 26px;
  padding: 0 18px;
  border: 1px solid rgba(221, 228, 230, .32);
  border-radius: 0;
  background: rgba(5, 6, 7, .62);
  color: var(--titanium);
  font-size: .74rem;
  letter-spacing: .08em;
  cursor: pointer;
  transition: border-color 160ms ease, color 160ms ease, background 160ms ease;
}

.enter-button:disabled {
  color: #626c71;
  border-color: #252c30;
  cursor: wait;
}

.enter-button:not(:disabled):hover {
  color: var(--void);
  border-color: var(--accent);
  background: var(--accent);
}

.enter-button i {
  font-style: normal;
  font-size: 1rem;
}

@media (max-width: 900px) {
  :root {
    --safe-x: clamp(18px, 4.6vw, 34px);
    --safe-y: clamp(18px, 4.6vw, 32px);
  }

  .paint-switcher__label {
    display: none;
  }

  .paint-switcher__options {
    gap: 2px;
  }

  .paint-option {
    min-width: 62px;
    min-height: 38px;
    padding: 0 9px 0 7px;
  }

  .caption,
  .caption--right {
    right: var(--safe-x);
    bottom: 137px;
    left: var(--safe-x);
    width: auto;
    max-width: 31rem;
  }

  body[data-layout] .caption,
  body[data-layout] .caption--right {
    top: auto;
    right: var(--safe-x);
    bottom: 137px;
    left: var(--safe-x);
    width: auto;
  }

  body[data-layout] .caption__kicker {
    font-size: clamp(2.8rem, 10vw, 5rem);
  }

  body[data-layout="metric"] .caption__kicker,
  body[data-layout="duo"] .caption__kicker {
    font-size: clamp(3.8rem, 14vw, 6.5rem);
  }

  .caption__copy {
    max-width: 24rem;
  }

  .motion-feedback {
    top: 148px;
    right: var(--safe-x);
    bottom: auto;
  }

  .chapter-controls {
    top: 78px;
    right: var(--safe-x);
    bottom: auto;
  }

  .camera-route {
    height: 92px;
  }

  .route-node span {
    display: none;
  }

  .route-node.is-active span,
  .route-node.is-next span {
    display: block;
  }

  .route-node {
    width: 44px;
  }

  .interaction-hint {
    top: 226px;
    min-width: min(354px, calc(100vw - 2 * var(--safe-x)));
  }

  .frame-readout,
  .source-note {
    bottom: 104px;
  }

  .frame-readout {
    display: none;
  }
}

@media (max-width: 580px) {
  .topbar {
    gap: 12px;
  }

  .identity {
    min-width: 0;
  }

  .paint-switcher {
    flex: 0 0 auto;
  }

  .identity__mode {
    display: none;
  }

  .identity__model {
    font-size: .82rem;
  }

  .caption {
    bottom: 128px;
  }

  body[data-layout] .caption__kicker {
    font-size: clamp(2.35rem, 12vw, 4rem);
  }

  body[data-layout="metric"] .caption__kicker,
  body[data-layout="duo"] .caption__kicker {
    font-size: clamp(3rem, 16vw, 5.2rem);
  }

  .caption h2 {
    font-size: 1.08rem;
  }

  .caption__copy {
    display: -webkit-box;
    overflow: hidden;
    font-size: .84rem;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
  }

  .caption__facts {
    gap: 8px 14px;
    margin-top: 11px;
  }

  .fact {
    min-width: 72px;
  }

  .source-note {
    display: none;
  }

  .loader h1 {
    font-size: clamp(4.5rem, 23vw, 7.2rem);
    line-height: .76;
  }

  .loader__inner {
    margin-bottom: max(34px, env(safe-area-inset-bottom));
  }

  .loader__signature {
    grid-template-columns: 1fr;
    margin-bottom: 34px;
  }

  .loader__statement {
    margin-top: 18px;
  }

  .loader__message {
    gap: 7px;
  }

  .loader__poster img {
    object-position: 61% center;
  }

  .loader__poster-shade {
    background:
      linear-gradient(90deg, rgba(4, 5, 6, .8), rgba(4, 5, 6, .08)),
      linear-gradient(0deg, rgba(4, 5, 6, .98) 0%, rgba(4, 5, 6, .48) 52%, rgba(4, 5, 6, .24) 100%);
  }

  .loader__status-row {
    font-size: .53rem;
  }
}

@media (max-height: 650px) and (orientation: landscape) {
  .caption,
  .caption--right {
    bottom: 112px;
    max-width: 40vw;
  }

  body[data-layout] .caption,
  body[data-layout] .caption--right {
    top: auto;
    bottom: 112px;
  }

  .caption__copy {
    display: none;
  }

  .caption__facts {
    margin-top: 9px;
  }

  .camera-route {
    height: 82px;
  }

  .frame-readout,
  .source-note {
    display: none;
  }
}

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

  #carCanvas,
  .caption,
  .environment {
    transition-duration: 180ms !important;
  }
}

@media (prefers-contrast: more) {
  :root {
    --mist: #c4cccf;
    --hairline: #657177;
  }

  .optical-vignette,
  .film-grain {
    opacity: .02;
  }
}
