@font-face {
  font-family: "Tektur";
  src: url("/assets/tektur-latin.woff2") format("woff2");
  font-display: swap;
  font-style: normal;
  font-stretch: 75% 100%;
  font-weight: 400 900;
}

@font-face {
  font-family: "Instrument Sans";
  src: url("/assets/instrument-sans-latin.woff2") format("woff2");
  font-display: swap;
  font-style: normal;
  font-stretch: 75% 100%;
  font-weight: 400 700;
}

:root {
  --void: oklch(0.075 0.012 298);
  --void-deep: oklch(0.045 0.009 298);
  --graphite: oklch(0.135 0.018 298);
  --graphite-raised: oklch(0.18 0.022 298);
  --bone: oklch(0.955 0.012 294);
  --bone-soft: oklch(0.79 0.022 294);
  --bone-muted: oklch(0.65 0.025 294);
  --core: oklch(0.66 0.19 296);
  --core-bright: oklch(0.76 0.15 296);
  --core-dim: oklch(0.48 0.17 296);
  --success: oklch(0.73 0.17 158);
  --line: oklch(0.76 0.045 296 / 0.18);
  --line-strong: oklch(0.76 0.06 296 / 0.38);
  --display: "Tektur", "Arial Narrow", system-ui, sans-serif;
  --body: "Instrument Sans", "Segoe UI", system-ui, sans-serif;
  --radius: 0.75rem;
  --radius-control: 0.5rem;
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --header-height: 4.5rem;
  color-scheme: dark;
  font-synthesis: none;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  min-width: 20rem;
  background: var(--void);
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-height) + 1rem);
}

body {
  min-width: 20rem;
  margin: 0;
  overflow-x: hidden;
  background: var(--void);
  color: var(--bone);
  font-family: var(--body);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
img, svg { display: block; }
img { max-width: 100%; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 {
  font-family: var(--display);
  font-stretch: 92%;
  letter-spacing: -0.035em;
  line-height: 1.02;
  text-wrap: balance;
}
p, li { text-wrap: pretty; }

.skip-link {
  position: fixed;
  z-index: 100;
  top: 0.75rem;
  left: 0.75rem;
  padding: 0.75rem 1rem;
  border-radius: var(--radius-control);
  background: var(--bone);
  color: var(--void);
  font-weight: 700;
  transform: translateY(-160%);
  transition: transform 180ms var(--ease-out);
}

.skip-link:focus { transform: translateY(0); }
:focus-visible { outline: 2px solid var(--core-bright); outline-offset: 4px; }

.site-header {
  position: fixed;
  z-index: 20;
  inset: 0 0 auto;
  height: var(--header-height);
  border-bottom: 1px solid var(--line);
  background: oklch(0.075 0.012 298 / 0.88);
  backdrop-filter: blur(1rem) saturate(120%);
  -webkit-backdrop-filter: blur(1rem) saturate(120%);
}

.site-header__inner {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  width: min(100% - 2rem, 92rem);
  height: 100%;
  margin-inline: auto;
  gap: clamp(1.5rem, 3vw, 3rem);
}

.brand {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  gap: 0.65rem;
  font-family: var(--display);
  font-size: 1rem;
  font-stretch: 92%;
  font-weight: 650;
  letter-spacing: -0.02em;
}

.brand img { width: 2.1rem; height: 2.1rem; }
.primary-nav { display: flex; justify-content: center; gap: clamp(1rem, 2.4vw, 2.5rem); }
.header-actions { display: flex; align-items: center; gap: 1.25rem; }

.primary-nav a,
.login-link {
  position: relative;
  min-height: 2.75rem;
  color: var(--bone-soft);
  font-size: 0.9rem;
  font-weight: 550;
  line-height: 2.75rem;
  white-space: nowrap;
  transition: color 180ms ease;
}

.primary-nav a::after,
.login-link::after {
  position: absolute;
  right: 0;
  bottom: 0.4rem;
  left: 0;
  height: 1px;
  background: currentColor;
  content: "";
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 240ms var(--ease-out);
}

.primary-nav a:hover,
.login-link:hover { color: var(--bone); }
.primary-nav a:hover::after,
.login-link:hover::after { transform: scaleX(1); transform-origin: left; }

.header-cta,
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  border: 1px solid transparent;
  border-radius: var(--radius-control);
  font-weight: 680;
  white-space: nowrap;
  transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease, transform 180ms var(--ease-out);
}

.header-cta { padding: 0.65rem 1rem; background: var(--bone); color: var(--void); font-size: 0.84rem; }
.button { min-height: 3.4rem; padding: 0.85rem 1.45rem; font-size: 0.95rem; }
.button--primary { background: var(--core); color: var(--void-deep); }
.button--secondary { border-color: var(--line-strong); background: transparent; color: var(--bone); }
.header-cta:hover,
.button--primary:hover { background: var(--core-bright); color: var(--void-deep); }
.button--secondary:hover { border-color: var(--bone-soft); background: var(--graphite); }
.header-cta:active,
.button:active { transform: translateY(1px) scale(0.985); }

.hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(30rem, 1.08fr);
  align-items: center;
  width: min(100% - 3rem, 88rem);
  min-height: 100svh;
  margin-inline: auto;
  padding: calc(var(--header-height) + 5rem) 0 5rem;
  gap: clamp(3rem, 7vw, 7rem);
}

.hero::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--line-strong), transparent);
  content: "";
}

.hero__copy { position: relative; z-index: 2; }
.hero__signal {
  display: flex;
  align-items: center;
  margin-bottom: 1.5rem;
  gap: 0.65rem;
  color: var(--bone-soft);
  font-size: 0.82rem;
  font-weight: 650;
  letter-spacing: 0.035em;
}

.hero__signal span {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  background: var(--success);
  box-shadow: 0 0 0 0.3rem oklch(0.73 0.17 158 / 0.12);
}

.hero h1 { max-width: 13ch; margin-bottom: 1.75rem; font-size: clamp(3.1rem, 5.2vw, 5.6rem); }
.hero h1 strong { color: var(--core-bright); font-weight: 720; }
.hero__lead { max-width: 38rem; margin-bottom: 2rem; color: var(--bone-soft); font-size: clamp(1.06rem, 1.2vw, 1.22rem); line-height: 1.65; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 0.85rem; }
.hero__actions .button--secondary span { margin-left: 0.7rem; color: var(--core-bright); }
.hero__proof { display: flex; flex-wrap: wrap; margin: 2rem 0 0; padding: 0; gap: 0.8rem 1.3rem; color: var(--bone-muted); font-size: 0.84rem; list-style: none; }
.hero__proof span { margin-right: 0.35rem; color: var(--success); font-weight: 800; }

.hero__machine {
  --tilt-x: 0deg;
  --tilt-y: 0deg;
  position: relative;
  min-height: 39rem;
  overflow: clip;
  perspective: 80rem;
  transform-style: preserve-3d;
}

.machine__halo {
  position: absolute;
  top: 9%;
  left: 8%;
  width: 84%;
  aspect-ratio: 1;
  border: 1px solid var(--line);
  border-radius: 50%;
  opacity: 0.55;
  transform: rotateX(66deg) rotateZ(-8deg);
}

.machine__halo::before,
.machine__halo::after {
  position: absolute;
  border: 1px solid var(--line);
  border-radius: inherit;
  content: "";
}
.machine__halo::before { inset: 10%; }
.machine__halo::after { inset: 22%; border-color: var(--line-strong); }

.machine__crate {
  position: absolute;
  z-index: 3;
  top: 3.5rem;
  left: 50%;
  width: clamp(10rem, 16vw, 14rem);
  filter: drop-shadow(0 1.2rem 2rem oklch(0.48 0.17 296 / 0.28));
  transform: translateX(-50%) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));
  transition: transform 400ms var(--ease-out);
}

.machine__status {
  position: absolute;
  z-index: 4;
  top: 2.75rem;
  right: 1rem;
  display: flex;
  align-items: center;
  gap: 0.55rem;
  color: var(--bone-muted);
  font-family: var(--display);
  font-size: 0.68rem;
  letter-spacing: 0.08em;
}
.machine__status span { width: 0.45rem; height: 0.45rem; border-radius: 50%; background: var(--success); }

.machine__selector {
  position: absolute;
  z-index: 5;
  right: 0;
  bottom: 3.5rem;
  left: 3rem;
  padding: 1.25rem;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius);
  background: oklch(0.115 0.016 298 / 0.94);
  transform: rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translateZ(2rem);
  transition: transform 400ms var(--ease-out);
}

.machine__title,
.module-bar { display: flex; align-items: center; justify-content: space-between; }
.machine__title span,
.module-bar span { font-family: var(--display); font-size: 0.9rem; font-weight: 620; }
.machine__title small,
.module-bar small { color: var(--bone-muted); font-size: 0.72rem; }
.machine__games { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 1rem; gap: 0.65rem; }
.machine__games span,
.favorite i {
  display: block;
  aspect-ratio: 0.76;
  border: 1px solid var(--line);
  border-radius: 0.45rem;
  background-image: url("/assets/game-worlds-strip.webp");
  background-position: var(--crop) center;
  background-size: 400% 100%;
}
.crop-0 { --crop: 0%; }
.crop-1 { --crop: 33.33%; }
.crop-2 { --crop: 66.66%; }
.crop-3 { --crop: 100%; }
.machine__games span:first-child { border-color: var(--core-bright); }
.machine__queue { display: grid; grid-template-columns: auto 1fr auto; align-items: center; margin-top: 1rem; padding-top: 0.9rem; border-top: 1px solid var(--line); gap: 0.65rem; }
.machine__queue > span { width: 0.55rem; height: 0.55rem; border-radius: 50%; background: var(--success); }
.machine__queue b { font-size: 0.8rem; font-weight: 600; }
.machine__queue small { color: var(--core-bright); font-size: 0.68rem; }

.automation { position: relative; padding: 9rem 0 7rem; background: var(--void-deep); }
.automation__intro { width: min(100% - 3rem, 72rem); margin: 0 auto 6rem; }
.automation__intro > p:first-child { margin-bottom: 1rem; color: var(--core-bright); font-size: 0.88rem; font-weight: 650; }
.automation__intro h2 { max-width: 14ch; margin-bottom: 1.5rem; font-size: clamp(2.8rem, 5vw, 5rem); }
.automation__intro > p:last-child { max-width: 39rem; color: var(--bone-soft); font-size: 1.08rem; line-height: 1.7; }

.route { position: relative; width: min(100% - 3rem, 76rem); height: 115rem; margin-inline: auto; }
.route__map { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; overflow: visible; }
.route__base,
.route__progress { fill: none; stroke-linecap: round; stroke-linejoin: round; }
.route__base { stroke: var(--line); stroke-width: 3; }
.route__progress { stroke: var(--core); stroke-width: 5; filter: drop-shadow(0 0 0.55rem oklch(0.66 0.19 296 / 0.75)); }
.route__comet { fill: var(--bone); filter: drop-shadow(0 0 0.7rem var(--core-bright)); }

.route-step {
  position: absolute;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(12rem, 0.75fr) minmax(20rem, 1.25fr);
  align-items: center;
  width: min(100%, 50rem);
  gap: 2rem;
  opacity: 0.72;
  transform: translateY(2.5rem);
  transition: opacity 700ms ease, transform 900ms var(--ease-out);
}
.route-step.is-visible { opacity: 1; transform: translateY(0); }
.route-step--one { top: 2rem; right: 0; }
.route-step--two { top: 29rem; left: 0; }
.route-step--three { top: 58rem; right: 0; }
.route-step--four { top: 87rem; left: 0; }
.route-step__copy { position: relative; }
.step-index { display: block; margin-bottom: 0.75rem; color: var(--core-bright); font-family: var(--display); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.1em; }
.route-step h3 { margin-bottom: 0.9rem; font-size: clamp(1.65rem, 2.5vw, 2.45rem); }
.route-step__copy p { margin-bottom: 0; color: var(--bone-soft); font-size: 0.96rem; line-height: 1.65; }

.product-module {
  padding: 1.1rem;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius);
  background: var(--graphite);
  box-shadow: inset 0 1px 0 oklch(0.95 0.01 294 / 0.04);
  transition: border-color 300ms ease, transform 500ms var(--ease-out);
}
.route-step.is-visible .product-module { border-color: oklch(0.76 0.06 296 / 0.5); }
.product-module:hover { transform: translateY(-0.2rem); }
.module-bar { margin-bottom: 1rem; padding-bottom: 0.85rem; border-bottom: 1px solid var(--line); }

.favorite-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.6rem; }
.favorite { position: relative; min-width: 0; }
.favorite i { aspect-ratio: 0.88; }
.favorite span { display: block; margin-top: 0.45rem; overflow: hidden; color: var(--bone-muted); font-size: 0.67rem; text-overflow: ellipsis; white-space: nowrap; }
.favorite b { position: absolute; top: 0.35rem; right: 0.35rem; display: grid; width: 1.3rem; height: 1.3rem; place-items: center; border-radius: 0.25rem; background: var(--void); color: var(--bone); font-size: 0.62rem; }
.favorite--active i { border-color: var(--core-bright); }
.favorite-grid button { min-height: 4.8rem; border: 1px dashed var(--line-strong); border-radius: 0.45rem; background: transparent; color: var(--bone-muted); font-size: 1.4rem; cursor: pointer; }
.favorite-grid button:hover { border-color: var(--core-bright); color: var(--core-bright); }

.scan-line,
.progress-track { height: 0.35rem; overflow: hidden; border-radius: 999px; background: var(--void); }
.scan-line span { display: block; width: 72%; height: 100%; background: var(--core); transform: scaleX(0); transform-origin: left; transition: transform 1400ms var(--ease-out); }
.route-step.is-visible .scan-line span { transform: scaleX(1); }
.scan-result { display: grid; grid-template-columns: auto 1fr auto; align-items: center; margin-top: 1rem; padding: 0.85rem; border: 1px solid var(--line); border-radius: 0.5rem; gap: 0.65rem; }
.scan-result i { width: 0.55rem; height: 0.55rem; border-radius: 50%; background: var(--success); }
.scan-result span { font-size: 0.78rem; }
.scan-result b { color: var(--success); font-size: 0.62rem; letter-spacing: 0.06em; }
.scan-detail { display: flex; justify-content: space-between; margin-top: 0.8rem; color: var(--bone-muted); font-size: 0.68rem; }

.operation { display: grid; grid-template-columns: auto 1fr auto; align-items: center; padding: 0.75rem 0; border-bottom: 1px solid var(--line); gap: 0.75rem; }
.operation:last-child { border-bottom: 0; }
.operation i { width: 0.65rem; height: 0.65rem; border: 2px solid var(--bone-muted); border-radius: 50%; }
.operation.is-running i { border-color: var(--success); background: var(--success); box-shadow: 0 0 0 0.25rem oklch(0.73 0.17 158 / 0.1); }
.operation div { display: flex; min-width: 0; flex-direction: column; gap: 0.2rem; }
.operation b { font-size: 0.78rem; font-weight: 620; }
.operation span { overflow: hidden; color: var(--bone-muted); font-size: 0.67rem; text-overflow: ellipsis; white-space: nowrap; }
.operation em { color: var(--bone-muted); font-size: 0.58rem; font-style: normal; letter-spacing: 0.06em; }
.operation.is-running em { color: var(--success); }

.reward-line { display: grid; grid-template-columns: auto 1fr auto; align-items: center; margin-bottom: 1rem; gap: 0.8rem; }
.reward-icon { display: grid; width: 3rem; height: 3rem; place-items: center; border: 1px solid var(--line); border-radius: 0.55rem; background: var(--void); }
.reward-icon img { width: 2rem; }
.reward-line > div:nth-child(2) { display: flex; flex-direction: column; gap: 0.25rem; }
.reward-line b { font-size: 0.8rem; }
.reward-line span { color: var(--bone-muted); font-size: 0.68rem; }
.reward-line strong { font-family: var(--display); font-size: 1.5rem; }
.progress-track span { display: block; width: 68%; height: 100%; background: var(--core); transform: scaleX(0); transform-origin: left; transition: transform 1600ms var(--ease-out); }
.route-step.is-visible .progress-track span { transform: scaleX(1); }
.progress-meta { display: flex; justify-content: space-between; margin-top: 0.75rem; color: var(--bone-muted); font-size: 0.65rem; }

.control { width: min(100% - 3rem, 76rem); margin-inline: auto; padding: 8rem 0; }
.control__headline { display: grid; grid-template-columns: 1.1fr 0.9fr; align-items: end; padding-bottom: 3rem; border-bottom: 1px solid var(--line-strong); gap: 3rem; }
.control h2 { max-width: 13ch; margin-bottom: 0; font-size: clamp(2.5rem, 4.5vw, 4.6rem); }
.control__headline p { margin-bottom: 0; color: var(--bone-soft); font-size: 1.05rem; line-height: 1.7; }
.control__ledger > div { display: grid; grid-template-columns: 0.45fr 1fr; padding: 1.5rem 0; border-bottom: 1px solid var(--line); gap: 2rem; }
.control__ledger span { color: var(--bone-muted); font-size: 0.86rem; }
.control__ledger strong { font-size: 1rem; font-weight: 600; }

.security { display: grid; grid-template-columns: 15rem minmax(0, 42rem); align-items: center; justify-content: center; padding: 8rem 1.5rem; border-block: 1px solid var(--line); background: var(--graphite); gap: clamp(3rem, 8vw, 8rem); }
.security > img { width: 13rem; filter: drop-shadow(0 1rem 1.6rem oklch(0.48 0.17 296 / 0.28)); }
.security h2 { margin-bottom: 1.25rem; font-size: clamp(2.5rem, 4.2vw, 4.5rem); }
.security p { max-width: 39rem; color: var(--bone-soft); font-size: 1.06rem; line-height: 1.7; }
.security ul { display: flex; flex-wrap: wrap; margin: 1.75rem 0 0; padding: 0; gap: 0.8rem; list-style: none; }
.security li { padding: 0.6rem 0.8rem; border: 1px solid var(--line); border-radius: 0.35rem; color: var(--bone-soft); font-size: 0.78rem; }

.trial { display: grid; grid-template-columns: 1fr 18rem; align-items: center; width: min(100% - 3rem, 76rem); margin-inline: auto; padding: 9rem 0; gap: 5rem; }
.trial h2 { max-width: 15ch; margin-bottom: 1.3rem; font-size: clamp(2.8rem, 4.8vw, 5rem); }
.trial__copy > p { max-width: 38rem; margin-bottom: 2rem; color: var(--bone-soft); font-size: 1.08rem; line-height: 1.7; }
.trial__copy > small { display: block; margin-top: 1rem; color: var(--bone-muted); font-size: 0.75rem; }
.trial__crate { position: relative; display: grid; place-items: center; }
.trial__crate img { width: 17rem; opacity: 0.34; }
.trial__crate span { position: absolute; top: 50%; left: 50%; font-family: var(--display); font-size: 5.5rem; font-weight: 700; transform: translate(-50%, -58%); }
.trial__crate small { position: absolute; top: 68%; left: 50%; color: var(--core-bright); font-family: var(--display); font-weight: 700; letter-spacing: 0.16em; transform: translateX(-50%); }

.site-footer { display: grid; grid-template-columns: auto 1fr auto; align-items: center; padding: 2rem max(1.5rem, calc((100% - 76rem) / 2)); border-top: 1px solid var(--line); gap: 2rem; }
.site-footer p { max-width: 40rem; margin: 0; color: var(--bone-muted); font-size: 0.75rem; }
.site-footer > span { color: var(--bone-muted); font-size: 0.75rem; }

@media (max-width: 64rem) {
  .hero { grid-template-columns: minmax(0, 1fr) minmax(25rem, 0.85fr); gap: 2rem; }
  .hero__machine { min-height: 34rem; }
  .machine__selector { left: 0; }
  .route { width: min(100% - 2rem, 66rem); }
  .route-step { width: min(100%, 46rem); }
}

@media (max-width: 47.99rem) {
  :root { --header-height: 4rem; }
  .site-header__inner { grid-template-columns: 1fr auto; width: min(100% - 1.25rem, 42rem); }
  .primary-nav,
  .login-link { display: none; }
  .header-actions { gap: 0; }
  .header-cta { padding: 0.6rem 0.8rem; font-size: 0.74rem; }
  .brand { font-size: 0.9rem; }
  .brand img { width: 1.9rem; height: 1.9rem; }

  .hero { display: block; width: min(100% - 2rem, 38rem); min-height: auto; padding: calc(var(--header-height) + 4.5rem) 0 4rem; }
  .hero h1 { max-width: 12ch; font-size: clamp(2.7rem, 13vw, 4.2rem); }
  .hero__lead { font-size: 1rem; }
  .hero__proof { display: grid; }
  .hero__machine { min-height: 31rem; margin-top: 3rem; }
  .machine__crate { top: 2rem; width: 9.5rem; }
  .machine__status { top: 0.5rem; right: 0; }
  .machine__selector { right: 0; bottom: 1rem; left: 0; }

  .automation { padding: 6rem 0 4rem; }
  .automation__intro { width: min(100% - 2rem, 38rem); margin-bottom: 4rem; }
  .automation__intro h2 { font-size: clamp(2.5rem, 12vw, 4rem); }
  .route { width: min(100% - 2rem, 38rem); height: auto; padding-left: 1.5rem; }
  .route::before { position: absolute; top: 0; bottom: 0; left: 0.2rem; width: 3px; border-radius: 999px; background: var(--core); box-shadow: 0 0 0.6rem oklch(0.66 0.19 296 / 0.5); content: ""; }
  .route__map { display: none; }
  .route-step { position: relative; top: auto; right: auto; left: auto; display: block; width: 100%; margin-bottom: 6rem; opacity: 1; transform: none; }
  .route-step:last-child { margin-bottom: 1rem; }
  .route-step::before { position: absolute; top: 0.25rem; left: -1.75rem; width: 0.85rem; height: 0.85rem; border: 3px solid var(--void-deep); border-radius: 50%; background: var(--core-bright); box-shadow: 0 0 0.5rem var(--core); content: ""; }
  .route-step__copy { margin-bottom: 1.5rem; }
  .route-step h3 { font-size: 2rem; }
  .product-module { padding: 0.9rem; }
  .scan-detail,
  .progress-meta { display: grid; gap: 0.35rem; }

  .control { width: min(100% - 2rem, 38rem); padding: 6rem 0; }
  .control__headline { display: block; }
  .control h2 { margin-bottom: 1.5rem; font-size: 2.7rem; }
  .control__ledger > div { grid-template-columns: 1fr; gap: 0.55rem; }
  .security { display: block; padding: 6rem 1rem; }
  .security > img { width: 8rem; margin-bottom: 2.5rem; }
  .security h2 { font-size: 2.8rem; }
  .security ul { display: grid; }
  .trial { display: block; width: min(100% - 2rem, 38rem); padding: 6rem 0; }
  .trial h2 { font-size: 3rem; }
  .trial__crate { display: none; }
  .site-footer { display: flex; align-items: flex-start; flex-direction: column; padding: 2rem 1rem; gap: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
  .route__progress { stroke-dashoffset: 0 !important; }
  .route__comet { display: none; }
  .route-step { opacity: 1; transform: none; }
  .scan-line span,
  .progress-track span { transform: scaleX(1); }
}
