/* Shared runtime performance helpers / Archwares */
html {
  scroll-behavior: auto;
}
img,
video {
  max-width: 100%;
  height: auto;
  /* Full-fidelity scaling from source assets */
  image-rendering: auto;
}
video {
  transform: translateZ(0);
  backface-visibility: hidden;
}

/* Media lock / deter casual drag / save / select */
img,
video,
picture,
svg:not(.icon-allow-interact),
canvas,
.hero-video,
.wd-hero-video,
.service-media-frame video,
.portfolio-card-image img,
.blogs-card img,
.bl-post-media img,
.bl-featured-media img,
.bp-cover img,
.testimonials-avatar img,
.reviews-avatar img {
  -webkit-user-drag: none;
  user-drag: none;
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}
img,
video {
  pointer-events: auto;
}

.wd-section,
.wd-cta,
.login-panel,
.about-section,
.blogs-section,
.careers-section,
.bp-page,
.bl-page main,
.bl-featured,
.bl-index {
  content-visibility: auto;
  contain-intrinsic-size: auto 720px;
}
.wd-hero,
.bp-hero,
.bl-hero,
.hero {
  content-visibility: visible;
  contain: layout style;
}
.wd-tech-item img,
.wd-tech-logo {
  content-visibility: auto;
  contain-intrinsic-size: 36px 36px;
}

/* Pause decorative CSS animations while off-screen or tab hidden */
.anim-pause-root.is-offscreen,
.anim-pause-root.is-offscreen *,
html.perf-hidden .anim-pause-root,
html.perf-hidden .anim-pause-root * {
  animation-play-state: paused !important;
}

/* GPU-friendly marquee tracks (toggled via JS when in view) */
.perf-marquee-track,
.blogs-track,
.hero-marquee-group,
.portfolio-ticker-track {
  transform: translateZ(0);
  backface-visibility: hidden;
  contain: layout style;
}
.perf-marquee-track.is-compositing,
.blogs-track.is-compositing,
.hero-marquee-group.is-compositing,
.portfolio-ticker-track.is-compositing {
  will-change: transform;
}

/* Blog / article media (static lists only / not animating marquees) */
.bl-post-media img,
.bl-featured-media img,
.bp-cover img {
  content-visibility: auto;
  contain-intrinsic-size: 400px 225px;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
@media (max-width: 809px) {
  .wd-fade-up {
    opacity: 1 !important;
    transform: none !important;
  }
}
