/* The supplied 2048 × 1152 artwork defines the desktop composition. */
.overview.cosmic-roadmap {
  --roadmap-play: paused;
  position: relative;
  padding: 0;
  background: #08091d;
  scroll-margin-top: 56px;
}
.roadmap-scene {
  position: relative;
  height: max(420px, 56.25vw);
  overflow: hidden;
  isolation: isolate;
}
.roadmap-scene::before,
.roadmap-scene::after {
  content: '';
  position: absolute;
  z-index: 2;
  left: 0;
  right: 0;
  pointer-events: none;
}
.roadmap-scene::before {
  top: 0;
  height: 18%;
  background: linear-gradient(180deg, #02020a 0%, rgba(2,2,10,.78) 24%, rgba(2,2,10,.24) 68%, transparent 100%);
}
.roadmap-scene::after {
  bottom: 0;
  height: 30%;
  background: linear-gradient(180deg,
    transparent 0%,
    rgba(8,8,18,.14) 22%,
    rgba(8,8,16,.48) 56%,
    rgba(9,9,15,.84) 82%,
    #09090f 100%);
}
.roadmap-composition {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 100%;
  aspect-ratio: 16 / 9;
  transform: translate(-50%, -50%);
  container-type: inline-size;
}
.roadmap-media, .roadmap-media img, .roadmap-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
.roadmap-media {
  z-index: -1;
  background: #050719;
}
.roadmap-media img, .roadmap-video {
  display: block;
  object-fit: cover;
  object-position: center;
}
.roadmap-media img {
  z-index: 0;
  transform: translateZ(0);
  animation: roadmap-media-drift 9s ease-in-out infinite alternate;
  animation-play-state: var(--roadmap-play);
  transition: opacity .9s ease;
}
.roadmap-video {
  z-index: 1;
  display: block;
  opacity: 0;
  transform: translateZ(0) scale(1.008);
  filter: saturate(.94) contrast(1.03);
  transition: opacity .9s ease;
}
.roadmap-media.is-video-ready img {
  opacity: .22;
  animation-play-state: paused;
}
.roadmap-media.is-video-ready .roadmap-video {
  opacity: .94;
}
@keyframes roadmap-media-drift {
  from { transform: translate3d(-.25%, 0, 0) scale(1.006); }
  to { transform: translate3d(.25%, -.2%, 0) scale(1.016); }
}
.roadmap-heading { position: absolute; left: 5.8%; top: 9.7%; right: 5%; }
.roadmap-heading h2 {
  width: fit-content;
  max-width: 100%;
  color: #fff;
  font-size: 3.32cqw;
  font-weight: 500;
  line-height: 1.32;
  letter-spacing: .025em;
}
.roadmap-heading h2 > .roadmap-accent { color: inherit; }
.roadmap-heading p {
  display: flex;
  align-items: baseline;
  gap: 1.05cqw;
  margin-top: .95cqw;
  font-size: 1.16cqw;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: .015em;
  color: #e1dfed;
}
.roadmap-heading p > i {
  flex: none;
  width: .64cqw;
  height: .64cqw;
  background: #9662ff;
  transform: rotate(45deg);
}
.roadmap-heading .reveal-char {
  display: inline-block;
  opacity: 0;
  transform: translateY(.42em);
  filter: blur(5px);
  transition:
    opacity .48s ease var(--char-delay),
    transform .58s cubic-bezier(.22,1,.36,1) var(--char-delay),
    filter .48s ease var(--char-delay);
}
.roadmap-heading h2 .reveal-char { color: var(--char-color, #fff); }
.roadmap-heading.is-copy-visible .reveal-char {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}
.roadmap-stage {
  position: absolute;
  display: block;
  width: 16.4%;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  color: #fff;
  text-align: left;
  font: inherit;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.roadmap-stage:nth-child(1) { left: 9%; top: 49%; }
.roadmap-stage:nth-child(2) { left: 26.65%; top: 42%; }
.roadmap-stage:nth-child(3) { left: 44.45%; top: 35.25%; }
.roadmap-stage:nth-child(4) { left: 62.4%; top: 26.6%; }
.roadmap-stage:nth-child(5) { left: 79.9%; top: 18%; }
.roadmap-stage > span { display: block; }
.roadmap-number {
  position: relative;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 3.515625cqw;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -.015em;
}
.roadmap-dots {
  position: absolute;
  display: flex;
  flex-direction: column;
  gap: .36cqw;
  left: -1.82cqw;
  top: .64cqw;
}
.roadmap-dots i {
  width: .29cqw;
  height: .29cqw;
  border-radius: 50%;
  background: #9b65fa;
  box-shadow: 0 0 .23cqw #a272ff66;
  animation: roadmap-sparkle 3.6s ease-in-out infinite;
  animation-play-state: var(--roadmap-play);
}
.roadmap-dots i:nth-child(2) { animation-delay: .2s; }
.roadmap-dots i:nth-child(3) { animation-delay: .4s; }
.roadmap-dots i:nth-child(4) { animation-delay: .6s; }
.roadmap-rule {
  width: 2.73cqw;
  height: .195cqw;
  margin: .98cqw 0 .88cqw;
  background: #9665f6;
  box-shadow: 0 .1cqw .14cqw #9b6aff38;
  transform-origin: left;
  transition: transform .3s ease, box-shadow .3s ease;
}
.roadmap-name {
  font-size: 1.5625cqw;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: .025em;
  transition: color .25s ease, text-shadow .25s ease;
}
.roadmap-label {
  margin-top: .3cqw;
  font-family: Arial, Helvetica, sans-serif;
  font-size: .78125cqw;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: .065em;
  color: #b49bed;
}
.roadmap-description {
  margin-top: 1.18cqw;
  font-size: .9765625cqw;
  font-weight: 400;
  line-height: 1.5;
  color: #ada5c8;
  letter-spacing: .015em;
}
.roadmap-stage:hover .roadmap-name, .roadmap-stage:focus-visible .roadmap-name {
  color: #e1d0ff;
  text-shadow: 0 0 18px #9a68ff66;
}
.roadmap-stage:hover .roadmap-rule, .roadmap-stage:focus-visible .roadmap-rule {
  transform: scaleX(1.3);
  box-shadow: 0 0 12px #aa78ffaa;
}
.roadmap-stage:focus-visible { outline: 2px solid #b992ff; outline-offset: 12px; }

/* Scroll controls the copy; the original video supplies the moving light. */
.cosmic-roadmap.is-scroll-roadmap { height: var(--roadmap-scroll-height); }
.is-scroll-roadmap .roadmap-scene {
  position: sticky;
  top: 56px;
  height: var(--roadmap-scene-height);
}
.is-scroll-roadmap .roadmap-composition {
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
}
.is-scroll-roadmap .roadmap-stage {
  opacity: var(--stage-opacity, 0);
  transform: translate3d(0, var(--stage-y, 32px), 0);
  filter: blur(var(--stage-blur, 4px));
}
.is-scroll-roadmap .roadmap-stage[aria-hidden="true"] { pointer-events: none; }
@keyframes roadmap-sparkle {
  0%, 100% { opacity: .7; }
  50% { opacity: 1; box-shadow: 0 0 .5cqw #b181ffbb; }
}

/* Keep readable type on portrait screens, revealing one stage per scroll beat. */
@media (max-width: 700px) {
  .roadmap-scene { height: auto; min-height: 1320px; }
  .roadmap-composition {
    position: relative;
    top: auto;
    left: auto;
    width: 100%;
    height: 100%;
    min-height: inherit;
    aspect-ratio: auto;
    transform: none;
    padding: 42px 30px 70px;
  }
  .roadmap-media { overflow: hidden; }
  .roadmap-media img, .roadmap-video { object-position: 70% center; }
  .roadmap-media::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, #06081988, #06081955 55%, transparent);
  }
  .roadmap-heading { position: relative; inset: auto; }
  .roadmap-heading h2 { font-size: clamp(25px, 7.7vw, 42px); letter-spacing: .015em; }
  .roadmap-heading h2 > .roadmap-accent { display: block; }
  .roadmap-heading p { gap: 12px; margin-top: 18px; font-size: 12px; line-height: 1.9; }
  .roadmap-heading p > i { width: 6px; height: 6px; }
  .roadmap-stages { padding: 38px 0 0 24px; }
  .roadmap-stage:nth-child(n) { position: relative; inset: auto; width: 100%; margin-bottom: 42px; }
  .roadmap-number { font-size: 56px; }
  .roadmap-dots { left: -22px; top: 9px; gap: 6px; }
  .roadmap-dots i { width: 4px; height: 4px; }
  .roadmap-rule { width: 42px; height: 3px; margin: 17px 0 15px; }
  .roadmap-name { font-size: 24px; }
  .roadmap-label { font-size: 11px; margin-top: 7px; }
  .roadmap-description { font-size: 14px; margin-top: 18px; }
  .is-scroll-roadmap .roadmap-scene { min-height: 0; }
  .is-scroll-roadmap .roadmap-composition { width: 100%; min-height: 0; padding: 6% 8%; }
  .is-scroll-roadmap .roadmap-stage:nth-child(n) { position: absolute; left: 14%; top: 37%; width: 78%; margin: 0; }
  .is-scroll-roadmap .roadmap-stages { padding: 0; }
  .is-scroll-roadmap .roadmap-media img, .is-scroll-roadmap .roadmap-video {
    object-position: 70% bottom;
    object-fit: cover;
  }
}
@media (max-width: 700px) and (max-height: 650px) {
  .is-scroll-roadmap .roadmap-composition { padding-top: 20px; }
  .roadmap-heading h2 > .roadmap-accent { display: inline; }
  .roadmap-heading h2 { font-size: 25px; }
  .roadmap-heading p { margin-top: 9px; font-size: 11px; }
  .roadmap-number { font-size: 44px; }
  .roadmap-rule { margin: 12px 0; }
  .roadmap-description { margin-top: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .roadmap-video { display: none; }
  .roadmap-media img { opacity: 1; }
  .cosmic-roadmap *, .cosmic-roadmap *::before, .cosmic-roadmap *::after { animation: none; transition: none; }
  .roadmap-heading .reveal-char { opacity: 1; transform: none; filter: none; }
}
