/* Shared performance fallback for every page using the Flexcore modern layout. */
html.motion-lite {
  scroll-behavior: auto;
}

/* This generic guard also covers new modern pages before their effects are audited. */
html.motion-lite *,
html.motion-lite *::before,
html.motion-lite *::after {
  animation-duration: .01ms !important;
  animation-delay: 0ms !important;
  animation-iteration-count: 1 !important;
}

/* Keep the circuit geometry, but remove continuously rendered current and scanners. */
html.motion-lite .charge-path,
html.motion-lite .chip-glint,
html.motion-lite .bridge-current,
html.motion-lite .section-circuit-current,
html.motion-lite .hero-circuit .current,
html.motion-lite .entry-circuit .signal,
html.motion-lite .entry-transition-circuit .transition-signal,
html.motion-lite .section-nav-list::after,
html.motion-lite .portfolio-transition-scan::after,
html.motion-lite .news-transition::after,
html.motion-lite .contact-transition::after,
html.motion-lite .commerce-flow::after,
html.motion-lite .trans-platform-panel::after,
html.motion-lite .footer-signal-rail::before,
html.motion-lite .footer-signal-rail::after,
html.motion-lite .folio-reel-scan,
html.motion-lite .folio-reel-orb-core::after,
html.motion-lite .folio-reel-media::before,
html.motion-lite .video-hero-art::after,
html.motion-lite .video-loader-line::after,
html.motion-lite .modal-lesson-button.is-active::after {
  display: none !important;
  animation: none !important;
  filter: none !important;
}

/* Preserve the static composition while stopping decorative background loops. */
html.motion-lite .mini-logo,
html.motion-lite .lesson-modal-logo,
html.motion-lite .footer-wordmark,
html.motion-lite .footer-signal-node::after,
html.motion-lite .footer-accreditation::before,
html.motion-lite .hero-circuit circle,
html.motion-lite .hero-circuit .node,
html.motion-lite .entry-circuit circle,
html.motion-lite .transition-node,
html.motion-lite .console-live::before,
html.motion-lite .bridge-node::after,
html.motion-lite .section-circuit-node,
html.motion-lite .cms-module,
html.motion-lite .route-line,
html.motion-lite .transplatforma-visual::after,
html.motion-lite .trans-platform-toolbar span::before,
html.motion-lite .trans-network-pin,
html.motion-lite .trans-ai-orbit::before,
html.motion-lite .trans-ai-orbit::after,
html.motion-lite .vestovoy-globe,
html.motion-lite .vestovoy-route::after,
html.motion-lite .vestovoy-arrows i,
html.motion-lite .news-badge::before,
html.motion-lite .contact-gate-meta span:last-child::before,
html.motion-lite .hero-halo::before,
html.motion-lite .hero-halo::after,
html.motion-lite .portfolio-cta::after,
html.motion-lite .folio-outro-orbit,
html.motion-lite .folio-tile,
html.motion-lite .folio-reel-orb-core::before,
html.motion-lite .case-story-brand,
html.motion-lite .story-ubc-machine::before,
html.motion-lite .story-ubc-machine::after,
html.motion-lite .story-ubc-machine.is-running img,
html.motion-lite .story-concept-logo,
html.motion-lite .story-drink-stage::before,
html.motion-lite .story-pearls i,
html.motion-lite .video-art-badge::before {
  animation: none !important;
}

/* The marquee is useful as a static gallery and is expensive only while moving. */
html.motion-lite .folio-marquee-track {
  animation-play-state: paused !important;
  will-change: auto !important;
}

html.motion-lite .folio-wall {
  will-change: auto !important;
}

/* Portfolio pointer previews and the cursor glow remain interactive in lite mode. */

/* Pointer parallax variables are reset when the runtime switches profiles. */
html.motion-lite .circuit-stage {
  --mx: 0px !important;
  --my: 0px !important;
  transform: none !important;
  transition: none !important;
}

html.motion-lite .lesson-shot-frame {
  --tilt-x: 0deg !important;
  --tilt-y: 0deg !important;
}
