/* CCX Sticky Background - the fixed canvas and the background overrides that
 * only come into force once that canvas is alive.
 *
 * Everything here hangs off html.ccx-sbg-on. The script sets that class after
 * its first successful frame and takes it off again if the context is lost, so
 * a browser without WebGL, a phone, or a reader who asked for reduced motion
 * keeps exactly the page that shipped before this module existed.
 */

.ccx-sbg {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  pointer-events: none;
  display: block;
  opacity: 0;
}

/* Desktop only. The stage is the whole viewport, which is the one place where
 * a shader is worth paying for on a large screen and never worth it on a
 * phone. Below this width the page keeps its static artwork. */
@media (max-width: 1024px) {
  .ccx-sbg { display: none !important; }
}

@media (prefers-reduced-motion: reduce) {
  .ccx-sbg { display: none !important; }
}

/* ---------------------------------------------------------------------------
 * Background overrides
 *
 * Home section 788cf5ff carries the static diagonal artwork at the top of the
 * hero. The line waves take that role over, so the image steps aside while the
 * canvas is running. The other zone sections (164f1cdc testimonials, 7882a8a
 * about) carry no background of their own and need no rule; the card inside
 * the about section keeps its photograph.
 * ------------------------------------------------------------------------ */
@media (min-width: 1025px) {
  html.ccx-sbg-on .elementor-8073 [data-id="788cf5ff"] {
    background-image: none !important;
  }
}
