/* v260: direct scroll-paint optimization while preserving the full visual design. */

/* Update the progress indicator with transforms rather than layout width changes. */
.luminous-progress span {
  width: 100% !important;
  transform: scaleX(0);
  transform-origin: left center;
  will-change: transform;
}

/* During active scrolling, avoid live backdrop sampling on sticky glass layers.
   The matching translucent fills retain the same visual character, then the
   full blur returns as soon as scrolling stops. */
html.is-scrolling .site-header,
html.is-scrolling .site-header .nav-shell {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
html.is-scrolling .site-header .nav-shell {
  background: rgba(5, 13, 39, .96) !important;
}
html.is-scrolling .prelaunch-banner {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  background: linear-gradient(90deg, rgba(62,61,86,.98), rgba(48,49,82,.98), rgba(45,45,70,.98)) !important;
}

/* Large blurred decorative layers are expensive to repaint while the viewport
   moves. Preserve their final look but freeze blur animation/recalculation only
   during the brief scroll gesture. */
html.is-scrolling .process::after,
html.is-scrolling .services::after,
html.is-scrolling .booking::after,
html.is-scrolling .mouse-glow {
  animation-play-state: paused !important;
}
html.is-scrolling .mouse-glow {
  opacity: 0 !important;
}

/* Keep moving fixed layers on their own compositor surfaces. */
#starfield,
.site-header,
.prelaunch-banner,
.luminous-progress,
.lumi-cursor,
.lumi-cursor-glow {
  backface-visibility: hidden;
}
