.js-ready [data-reveal] {
  opacity: 0;
  transform: translate3d(0, 26px, 0);
  transition: opacity 600ms ease, transform 700ms cubic-bezier(.2,.7,.2,1);
}
.js-ready [data-reveal].is-visible { opacity: 1; transform: translate3d(0, 0, 0); }
.js-ready .economy-node { opacity: .28; transition: opacity 420ms ease, border-color 420ms ease, transform 420ms ease, background 420ms ease; }
.economy-node.is-active { opacity: 1; border-color: var(--nebula-blue); transform: translateY(-3px); background: rgba(74,168,255,.035); }
.facility-stage.is-switching,
.school-demo-stage.is-switching { opacity: .28; transform: translateY(8px); }
.facility-stage,
.school-demo-stage { transition: opacity 220ms ease, transform 220ms ease; }

.hero-orbit { animation: orbital-drift 24s linear infinite; }
@keyframes orbital-drift { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
  .js-ready [data-reveal] { opacity: 1; transform: none; }
  [data-parallax] { transform: none !important; }
  .js-ready .economy-node { opacity: 1; transform: none; }
}
