.nem-motion-target {
  --nem-ent-x: 0px;
  --nem-ent-y: 0px;
  --nem-ent-scale: 1;
  --nem-ent-rotate: 0deg;
  --nem-ent-rx: 0deg;
  --nem-ent-ry: 0deg;
  --nem-scroll-x: 0px;
  --nem-scroll-y: 0px;
  --nem-scroll-scale: 1;
  --nem-scroll-rotate: 0deg;
  --nem-cont-x: 0px;
  --nem-cont-y: 0px;
  --nem-cont-scale: 1;
  --nem-cont-rotate: 0deg;
  --nem-hover-x: 0px;
  --nem-hover-y: 0px;
  --nem-hover-scale: 1;
  --nem-hover-rotate: 0deg;
  --nem-hover-rx: 0deg;
  --nem-hover-ry: 0deg;
  --nem-ent-blur: 0px;
  --nem-scroll-blur: 0px;
  --nem-gray: 0;
  --nem-brightness: 1;
  --nem-saturate: 1;
  transform:
    translate3d(var(--nem-ent-x), var(--nem-ent-y), 0)
    translate3d(var(--nem-scroll-x), var(--nem-scroll-y), 0)
    translate3d(var(--nem-cont-x), var(--nem-cont-y), 0)
    translate3d(var(--nem-hover-x), var(--nem-hover-y), 0)
    scale(var(--nem-ent-scale))
    scale(var(--nem-scroll-scale))
    scale(var(--nem-cont-scale))
    scale(var(--nem-hover-scale))
    rotate(var(--nem-ent-rotate))
    rotate(var(--nem-scroll-rotate))
    rotate(var(--nem-cont-rotate))
    rotate(var(--nem-hover-rotate))
    rotateX(var(--nem-ent-rx))
    rotateY(var(--nem-ent-ry))
    rotateX(var(--nem-hover-rx))
    rotateY(var(--nem-hover-ry));
  filter:
    blur(calc(var(--nem-ent-blur) + var(--nem-scroll-blur)))
    grayscale(var(--nem-gray))
    brightness(var(--nem-brightness))
    saturate(var(--nem-saturate));
  transform-style: preserve-3d;
  backface-visibility: hidden;
  will-change: transform, opacity, filter, clip-path;
}

.nem-overflow-hidden,
.nem-overflow-hidden > .elementor-widget-container,
.nem-overflow-hidden > .e-con-inner { overflow: hidden; }

.nem-split-word,
.nem-split-char { display: inline-block; white-space: pre; }

.nem-hover-shine { position: relative; overflow: hidden; }
.nem-hover-shine::after {
  content: "";
  position: absolute;
  inset: -40% auto -40% -70%;
  width: 38%;
  pointer-events: none;
  background: linear-gradient(110deg, transparent, rgba(255,255,255,.6), transparent);
  transform: skewX(-20deg);
  transition: left .65s ease;
  z-index: 3;
}
.nem-hover-shine:hover::after { left: 135%; }

.nem-motion-target img { backface-visibility: hidden; }
.nem-image-zoom-wrapper { overflow: hidden; }
.nem-image-zoom-wrapper img { transition: transform .55s cubic-bezier(.2,.7,.2,1); }
.nem-image-zoom-wrapper:hover img { transform: scale(1.08); }

#nem-page-transition-overlay {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  pointer-events: none;
  transform-origin: center;
  will-change: transform, opacity, clip-path, filter;
}

@media (prefers-reduced-motion: reduce) {
  .nem-respect-reduced-motion,
  .nem-respect-reduced-motion * {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
  }
}
