/* Maxim Praxis — background drift
   A background layer that overhangs its container on the axis it travels,
   so no edge is ever exposed. Mirrors the effect on maximpraxis.com.
   Applied to the hero (horizontal) and the private-session band (vertical). */

.mp-hero-moving{ position:relative; overflow:hidden; }
.mp-hero-moving.mp-hero-swapped{ background-image:none !important; }

.mp-hero-bg{
  position:absolute;
  background-size:cover;
  background-position:center center;
  background-repeat:no-repeat;
  will-change:transform;
  z-index:0;
  pointer-events:none;
}

/* keep Elementor's overlay and the content above the moving layer */
.mp-hero-moving::before{ z-index:1; }
.mp-hero-moving > .e-con-inner,
.mp-hero-moving > .elementor-element,
.mp-hero-moving > .e-con{ position:relative; z-index:2; }

/* --- horizontal: left <-> right --- */
.mp-hero-bg--x{
  inset:0 -4%;
  transform:translate3d(-20px,0,0);
  animation:mpDriftX 20s ease-in-out infinite alternate;
}
@keyframes mpDriftX{
  from{ transform:translate3d(-20px,0,0); }
  to  { transform:translate3d( 20px,0,0); }
}

/* --- the hero: one long pan that comes to a standstill (25 Sep; even speed since 28 Sep) ---
   It waits here, on the teacup, until mp-motion.js has the photograph decoded; the script then
   runs the glide itself (Web Animations) and leaves it at rest on the framed quotation. */
.mp-hero-bg--pan{
  transform:translate3d(calc(-1 * var(--mp-pan,0px)),0,0);
}

/* --- vertical: rises from below --- */
.mp-hero-bg--y{
  inset:-4% 0;
  transform:translate3d(0,20px,0);
  animation:mpDriftY 20s ease-in-out infinite alternate;
}
@keyframes mpDriftY{
  from{ transform:translate3d(0, 20px,0); }
  to  { transform:translate3d(0,-20px,0); }
}

@media (max-width:767px){
  .mp-hero-bg--x{ inset:0 -6%; }
  .mp-hero-bg--y{ inset:-6% 0; }
  @keyframes mpDriftX{
    from{ transform:translate3d(-12px,0,0); }
    to  { transform:translate3d( 12px,0,0); }
  }
  @keyframes mpDriftY{
    from{ transform:translate3d(0, 12px,0); }
    to  { transform:translate3d(0,-12px,0); }
  }
}

@media (prefers-reduced-motion: reduce){
  .mp-hero-bg{ animation:none !important; transform:none !important; will-change:auto; }
}
/* The About and Contact head that lived here came out on 25 Sep: both pages are Elementor
   documents now and open with the same rule and title as every other page. */
