/* Performance tuning layer — loaded after laser.css */

/* Never lock scrolling on the page root of a long page */
html,
body {
  overflow-x: visible;
  overflow-y: visible;
  max-width: 100%;
}

/* Clip horizontal overflow only at section level and the main wrapper */
section,
.page-wrap {
  overflow-x: clip;
}

/* Pause offscreen animations (set by the runtime IntersectionObserver) */
.anim-paused,
.anim-paused * {
  animation-play-state: paused !important;
}

/* Carousel viewports scroll on the compositor */
[data-reviews-viewport] {
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
}

/* Avoid layout shift while images decode */
img:not([data-transparent]) {
  background-color: rgba(0, 0, 0, 0.02);
}


/* Low-power / reduced-motion devices: drop the expensive continuous effects */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
  .animate-scroll-x {
    animation: none !important;
  }
}

/* Coarse pointers (phones/tablets): lighter shadows + no infinite pulse */
@media (hover: none) and (pointer: coarse) {
  .animate-pulse {
    animation: none !important;
  }
  .shadow-2xl {
    box-shadow: 0 10px 20px -8px rgba(0, 0, 0, 0.25) !important;
  }
  .float-hero {
    animation-duration: 8s !important;
  }
}
