html.pe-home-motion-ready {
  --pe-motion-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --pe-motion-shadow: 0 22px 52px rgba(15, 23, 42, 0.12);
  --pe-motion-soft-shadow: 0 18px 45px rgba(15, 23, 42, 0.10);
}

@media (prefers-reduced-motion: reduce) {
  html.pe-home-motion-ready * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

html.pe-home-motion-ready:not(.pe-home-motion-reduced) [data-pe-motion] {
  opacity: 0;
  transform: translateY(24px);
  filter: none;
  transition-property: opacity, transform, filter;
  transition-duration: var(--pe-motion-duration, 760ms);
  transition-timing-function: var(--pe-motion-ease);
  transition-delay: var(--pe-motion-delay, 0ms);
  will-change: opacity, transform;
}

/* El hero debe ser legible de inmediato: sin reveal ni entradas teatrales. */
html.pe-home-motion-ready #hero .pe-hidden-scroll,
html.pe-home-motion-ready #hero [data-pe-motion],
html.pe-home-motion-ready [data-pe-motion-scope="hero"] .pe-hidden-scroll,
html.pe-home-motion-ready [data-pe-motion-scope="hero"] [data-pe-motion] {
  opacity: 1 !important;
  transform: none !important;
  filter: none !important;
  transition: none !important;
  animation: none !important;
  will-change: auto !important;
}

html.pe-home-motion-ready #hero .pe-motion-media img,
html.pe-home-motion-ready #hero .pe-motion-media video,
html.pe-home-motion-ready [data-pe-motion-scope="hero"] .pe-motion-media img,
html.pe-home-motion-ready [data-pe-motion-scope="hero"] .pe-motion-media video {
  transform: none !important;
  transition: none !important;
}

html.pe-home-motion-ready:not(.pe-home-motion-reduced) [data-pe-motion].pe-motion-visible {
  opacity: 1;
  transform: none;
  filter: none;
}

html.pe-home-motion-ready:not(.pe-home-motion-reduced) [data-pe-motion="fade-in"] {
  transform: none;
}

html.pe-home-motion-ready:not(.pe-home-motion-reduced) [data-pe-motion="slide-left"] {
  transform: translateX(24px);
}

html.pe-home-motion-ready:not(.pe-home-motion-reduced) [data-pe-motion="slide-right"] {
  transform: translateX(-24px);
}

html.pe-home-motion-ready:not(.pe-home-motion-reduced) [data-pe-motion="scale-reveal"] {
  transform: scale(1.04);
  filter: blur(4px);
}

html.pe-home-motion-ready:not(.pe-home-motion-reduced) .pe-motion-media {
  overflow: hidden;
  border-radius: var(--pe-motion-radius, 24px);
}

html.pe-home-motion-ready:not(.pe-home-motion-reduced) .pe-motion-media img,
html.pe-home-motion-ready:not(.pe-home-motion-reduced) .pe-motion-media video,
html.pe-home-motion-ready:not(.pe-home-motion-reduced) img.pe-motion-media,
html.pe-home-motion-ready:not(.pe-home-motion-reduced) video.pe-motion-media {
  transform: scale(1.04);
  transition: transform 1100ms var(--pe-motion-ease), filter 800ms var(--pe-motion-ease);
}

html.pe-home-motion-ready:not(.pe-home-motion-reduced) .pe-motion-media.pe-motion-visible img,
html.pe-home-motion-ready:not(.pe-home-motion-reduced) .pe-motion-media.pe-motion-visible video,
html.pe-home-motion-ready:not(.pe-home-motion-reduced) .pe-motion-visible .pe-motion-media img,
html.pe-home-motion-ready:not(.pe-home-motion-reduced) .pe-motion-visible .pe-motion-media video,
html.pe-home-motion-ready:not(.pe-home-motion-reduced) img.pe-motion-media.pe-motion-visible,
html.pe-home-motion-ready:not(.pe-home-motion-reduced) video.pe-motion-media.pe-motion-visible {
  transform: scale(1);
}

.pe-motion-underline {
  position: relative;
  display: inline-block;
}

.pe-motion-underline::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -0.12em;
  width: 100%;
  height: 0.14em;
  background: currentColor;
  opacity: 0.22;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 800ms var(--pe-motion-ease);
}

.pe-motion-visible .pe-motion-underline::after,
.pe-motion-underline.pe-motion-visible::after {
  transform: scaleX(1);
}

@keyframes peMotionSoftFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}

html.pe-home-motion-ready:not(.pe-home-motion-reduced) .pe-motion-float {
  animation: peMotionSoftFloat 6s ease-in-out infinite;
}

.pe-home-motion-target {
  will-change: opacity, transform;
}

.pe-home-motion-card {
  transition:
    transform 160ms ease-out,
    box-shadow 180ms ease-out,
    border-color 160ms ease,
    background-color 160ms ease;
  transform-origin: center center;
}

html.pe-home-motion-ready:not(.pe-home-motion-reduced) .pe-home-motion-card:hover {
  box-shadow: var(--pe-motion-shadow);
}

html.pe-home-motion-ready:not(.pe-home-motion-reduced) .pe-motion-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--pe-motion-soft-shadow);
}

[data-pe-motion-scope="hero"] .inline-flex,
[data-pe-motion-scope="routes"] article,
[data-pe-motion-scope="method"] article,
[data-pe-motion-scope="academy"] article,
[data-pe-motion-scope="comparison"] .grid > div,
[data-pe-motion-scope="zooki"] .grid > div {
  backface-visibility: hidden;
  transform: translateZ(0);
}

html.pe-home-motion-ready:not(.pe-home-motion-reduced) [data-pe-motion-scope="comparison"] .grid > div {
  will-change: transform, opacity;
}

html.pe-home-motion-ready:not(.pe-home-motion-reduced) [data-pe-motion-scope="zooki"] img {
  transition: transform 180ms ease-out, filter 180ms ease-out;
}

html.pe-home-motion-ready:not(.pe-home-motion-reduced) [data-pe-motion-scope="zooki"]:hover img {
  transform: translateY(-2px) scale(1.005);
  filter: saturate(1.03);
}

html.pe-home-motion-ready.pe-home-motion-reduced [data-pe-motion],
html.pe-home-motion-ready.pe-home-motion-reduced .pe-motion-card,
html.pe-home-motion-ready.pe-home-motion-reduced .pe-motion-media,
html.pe-home-motion-ready.pe-home-motion-reduced .pe-motion-media img,
html.pe-home-motion-ready.pe-home-motion-reduced .pe-motion-media video {
  opacity: 1 !important;
  transform: none !important;
  filter: none !important;
  transition: none !important;
  animation: none !important;
}

@media (max-width: 767px) {
  html.pe-home-motion-ready:not(.pe-home-motion-reduced) [data-pe-motion="slide-left"] {
    transform: translateX(14px);
  }

  html.pe-home-motion-ready:not(.pe-home-motion-reduced) [data-pe-motion="slide-right"] {
    transform: translateX(-14px);
  }
}
