/* Motion layers keep all responsive dimensions in the original stylesheet. */
.motion-line {display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.motion-line > span {display:block}
.motion-paused .dao-art,.motion-paused .crystal-wrap {animation-play-state:paused}
.dao-card,.feature,.step,.btn-glass {--light-x:50;--light-y:50}
.dao-card::after,.feature::after,.step::after,.btn-glass::after {
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(ellipse at calc(var(--light-x)*1%) calc(var(--light-y)*1%),#ffffff90,transparent 65%);
  opacity:0;transition:opacity .4s ease;
}
.btn {position:relative;overflow:hidden;transition:transform .2s ease,box-shadow .25s ease,background-color .25s ease}
.desktop-nav .nav-link,.footer-column a {position:relative}
.desktop-nav .nav-link::after,.footer-column a::after {content:"";position:absolute;bottom:0;left:0;height:1px;width:100%;background:#a8c7e2;transform:scaleX(0);transform-origin:left;transition:transform .3s ease}
.desktop-nav .nav-link.active::after,.footer-column a:hover::after,.footer-column a:focus-visible::after {transform:scaleX(1)}
.carousel-dots button {transition:width .25s ease,background-color .25s ease;border-radius:10px}
.carousel-dots button[aria-current="true"] {width:24px}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .dao-card:hover::after,.feature:hover::after,.step:hover::after,.btn-glass:hover::after {opacity:1}
  .feature-icon {transition:translate .3s ease}
  .feature:hover .feature-icon {translate:0 -3px}
  .btn:hover {transform:translateY(-2px)}
  .btn:active {transform:scale(.98)}
  .step:hover {box-shadow:inset 0 0 0 1px #ffffffb0}
  .btn-valios::after {content:"";position:absolute;inset:-100%;pointer-events:none;background:linear-gradient(115deg,transparent 42%,#ffffff35 50%,transparent 58%);transform:translateX(-80%)}
  .btn-valios:hover::after {animation:button-shine .7s ease-out}
}
@keyframes button-shine {to {transform:translateX(80%)}}
@media(prefers-reduced-motion:reduce) {
  .btn,.carousel-dots button,.desktop-nav .nav-link::after,.footer-column a::after {transition:none}
}
.feature {--scan:0;--scan-alpha:0}
.feature::before {
  content:"";position:absolute;inset:8px 12px;border-radius:28px;pointer-events:none;
  opacity:var(--scan-alpha);
  background:linear-gradient(105deg,transparent 35%,rgba(184,221,250,.12) 43%,rgba(255,255,255,.85) 49%,rgba(154,204,245,.4) 50%,transparent 59%);
  background-size:250% 100%;background-position:calc(var(--scan)*1%) 0;

}

.journey {--pulse-size:.65;--pulse-opacity:0}
.journey::before {
  content:"";position:absolute;width:72%;aspect-ratio:1;left:14%;top:10%;
  border-radius:50%;pointer-events:none;
  opacity:var(--pulse-opacity);transform:scale(var(--pulse-size));
  background:radial-gradient(circle,transparent 60%,rgba(255,255,255,.65) 66%,rgba(191,224,249,.2) 69%,transparent 73%);
}
/* Independent zoom preserves the artwork's permanent horizontal reflection.
   Overscan keeps blurred image boundaries outside the rounded panel. */
.journey-art {
  --journey-zoom:1.04;
  transform:scaleX(-1) scale(var(--journey-zoom));
  transform-origin:50% 50%;
}
.dao-art.v-assembling {animation:none}
.v-dust {
  position:absolute;pointer-events:none;
  background:linear-gradient(135deg,#fff 0%,#cfebff99 30%,#8bb7d94d 65%,#fff 100%);
  clip-path:polygon(12% 0,100% 18%,76% 100%,0 65%);
  box-shadow:inset 1px 1px 2px #fff;
}
.dao-art .v-shine {
  pointer-events:none;filter:brightness(1.8);
  mask-image:linear-gradient(115deg,transparent 43%,#000 50%,transparent 57%);
  mask-size:300% 100%;mask-position:calc(var(--shine-position)*1%) 0;
  -webkit-mask-image:linear-gradient(115deg,transparent 43%,#000 50%,transparent 57%);
  -webkit-mask-size:300% 100%;-webkit-mask-position:calc(var(--shine-position)*1%) 0;
}
/* Preserve the source's 1024:631 ratio instead of stretching both axes. */
.journey-art {
  height:auto;
  aspect-ratio:1024 / 631;
  top:50%;
  translate:0 -50%;
}
@media(max-width:767.98px) {
  .journey-art {
    width:1535.1px;
    height:auto;
    left:calc(50% - 767.55px);
  }
}
/* Anchor each reflection to its own card, rather than the shared steps track. */
.step {
  position:relative;
  isolation:isolate;
  overflow:hidden;
}
.step > * {position:relative;z-index:1}
.step::after {
  z-index:0;
  background:
    radial-gradient(ellipse at calc(var(--light-x)*1%) calc(var(--light-y)*1%),rgba(255,255,255,.75),rgba(227,244,255,.22) 48%,transparent 85%),
    linear-gradient(135deg,rgba(255,255,255,.16),rgba(191,222,246,.08));
}
@media(max-width:767.98px) {
  .hero-video {
    top:var(--mobile-video-offset,24px);
    bottom:auto;
    object-position:center top;
  }
}
@media(max-width:767.98px) {
  .hero-video {height:var(--mobile-video-height,100%)}
}
.feature-orb .pearl-canvas {position:absolute;left:28%;top:30.7%;width:44%;height:44%;z-index:3;pointer-events:auto;cursor:grab;touch-action:pan-y;opacity:0}
.feature-orb .pearl-canvas:active {cursor:grabbing}
.feature-orb.pearl-ready .orb-core {visibility:hidden!important}

/* Hide the baked-in pearl before JavaScript splits the original artwork. */
.feature-orb img {
  -webkit-mask-image:radial-gradient(ellipse 9% 9% at 50% 47.5%,transparent 99%,#000 100%);
  mask-image:radial-gradient(ellipse 9% 9% at 50% 47.5%,transparent 99%,#000 100%);
}
.feature-orb .orb-core {display:none!important}
