/* --- Media reveal --- */

.manta-ir-root {
  position: relative;
  padding-top: var(--manta-ir-padding-top, 0);
  padding-bottom: var(--manta-ir-padding-bottom, 0);
  background: var(--manta-ir-bg, transparent);
}

.manta-ir-media-wrap {
  border-radius: var(--manta-ir-border-radius, 0);
  overflow: hidden;
}

.manta-ir-media {
  height: auto;
  width: 100%;
  object-fit: cover;
  display: block;
  transform-origin: center center;
}

.manta-ir-placeholder.manta-ir-media {
  display: flex;
  object-fit: unset;
}

.manta-ir-placeholder {
  width: 100%;
  min-height: 260px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px dashed rgba(0, 0, 0, 0.25);
  background: rgba(0, 0, 0, 0.03);
  color: rgba(0, 0, 0, 0.6);
  font-size: 14px;
  line-height: 1.4;
  text-align: center;
  padding: 16px;
  box-sizing: border-box;
  border-radius: var(--manta-ir-border-radius, 0);
}

/* --- Animation timing (from text-reveal) --- */

.manta-ir-timing-ease {
  --manta-ir-easing: cubic-bezier(0.551, 0.127, 0, 1.064);
}

.manta-ir-timing-linear {
  --manta-ir-easing: linear;
}

.manta-ir-timing-elastic {
  --manta-ir-easing: linear(
    0,
    0.029 1.3%,
    0.119 2.8%,
    0.659 8.7%,
    0.871 11.6%,
    1.009 14.6%,
    1.052 16.2%,
    1.078 17.9%,
    1.088 19.7%,
    1.085 21.7%,
    1.014 31.4%,
    0.993 38%,
    1.001 57.6%,
    1
  );
}

.manta-ir-timing-bouncy {
  --manta-ir-easing: linear(
    0,
    0.12 8.2%,
    0.195 12.8%,
    0.275 16.9%,
    0.366 20.7%,
    0.47 24.3%,
    0.598 28%,
    0.735 31.5%,
    1 37.8%,
    0.842 41.9%,
    0.786 43.6%,
    0.742 45.2%,
    0.706 46.8%,
    0.682 48.3%,
    0.668 49.8%,
    0.665 50.5%,
    0.664 51.2%,
    0.668 52.5%,
    0.681 53.9%,
    0.702 55.3%,
    0.733 56.8%,
    0.807 59.5%,
    0.999 65.5%,
    0.939 67.7%,
    0.899 69.7%,
    0.885 70.7%,
    0.876 71.6%,
    0.87 72.6%,
    0.868 73.6%,
    0.869 74.4%,
    0.874 75.3%,
    0.892 77.2%,
    0.915 78.9%,
    0.977 82.8%,
    1 84.5%,
    0.987 85.8%,
    0.978 87%,
    0.973 88.2%,
    0.971 89.5%,
    0.975 91.6%,
    0.996 96.8%,
    0.999 98.3%,
    1
  );
}

.manta-ir-timing-overshoot {
  --manta-ir-easing: linear(
    0,
    0.528 7%,
    0.921 14.4%,
    1.07 18.3%,
    1.19 22.4%,
    1.28 26.7%,
    1.34 31.2%,
    1.366 34.5%,
    1.378 38%,
    1.377 41.7%,
    1.363 45.6%,
    1.308 53.3%,
    1.13 71.3%,
    1.059 80.1%,
    1.013 89.7%,
    1
  );
}

/* --- Animation types: initial state --- */

.manta-ir-media-wrap.manta-ir-anim-blur,
.manta-ir-media-wrap.manta-ir-anim-shrink,
.manta-ir-media-wrap.manta-ir-anim-grow,
.manta-ir-media-wrap.manta-ir-anim-slide {
  position: relative;
  opacity: 0;
  transition-property: opacity;
  transition-duration: var(--manta-ir-duration, 1200ms);
  transition-delay: var(--manta-ir-delay, 0ms);
  transition-timing-function: var(--manta-ir-easing, cubic-bezier(0.16, 1, 0.3, 1));
}

.manta-ir-media-wrap.manta-ir-anim-blur .manta-ir-media,
.manta-ir-media-wrap.manta-ir-anim-shrink .manta-ir-media,
.manta-ir-media-wrap.manta-ir-anim-grow .manta-ir-media,
.manta-ir-media-wrap.manta-ir-anim-slide .manta-ir-media {
  will-change: transform, filter;
}

.manta-ir-media-wrap.manta-ir-anim-open {
  position: relative;
  opacity: 1;
}

.manta-ir-media-wrap.manta-ir-anim-open .manta-ir-media {
  will-change: clip-path;
  clip-path: circle(0% at 50% 50%);
}

.manta-ir-media-wrap.manta-ir-anim-reveal {
  display: grid;
  grid-template-rows: 0fr;
  position: relative;
  transition-property: grid-template-rows;
  transition-duration: var(--manta-ir-duration, 1200ms);
  transition-delay: var(--manta-ir-delay, 0ms);
  transition-timing-function: var(--manta-ir-easing, cubic-bezier(0.16, 1, 0.3, 1));
}

.manta-ir-media-wrap.manta-ir-anim-reveal .manta-ir-media {
  min-height: 0;
  overflow: hidden;
  transform: translateY(calc((var(--manta-ir-intensity, 100) - 100) * 1%));
  transition-property: transform;
  transition-duration: var(--manta-ir-duration, 1200ms);
  transition-delay: var(--manta-ir-delay, 0ms);
  transition-timing-function: var(--manta-ir-easing, cubic-bezier(0.16, 1, 0.3, 1));
}

.manta-ir-media-wrap.manta-ir-anim-reveal.manta-ir-animated {
  grid-template-rows: 1fr;
}

.manta-ir-media-wrap.manta-ir-anim-reveal.manta-ir-animated .manta-ir-media {
  transform: translateY(0);
}

/* --- Activated (JS adds .manta-ir-animated) --- */
/* Match text-reveal: parent gets activated class; motion runs on .manta-ir-media child. */

.manta-ir-media-wrap.manta-ir-anim-blur.manta-ir-animated,
.manta-ir-media-wrap.manta-ir-anim-shrink.manta-ir-animated,
.manta-ir-media-wrap.manta-ir-anim-grow.manta-ir-animated,
.manta-ir-media-wrap.manta-ir-anim-slide.manta-ir-animated {
  opacity: 1;
}

.manta-ir-media-wrap.manta-ir-anim-blur.manta-ir-animated .manta-ir-media,
.manta-ir-media-wrap.manta-ir-anim-shrink.manta-ir-animated .manta-ir-media,
.manta-ir-media-wrap.manta-ir-anim-grow.manta-ir-animated .manta-ir-media,
.manta-ir-media-wrap.manta-ir-anim-slide.manta-ir-animated .manta-ir-media,
.manta-ir-media-wrap.manta-ir-anim-open.manta-ir-animated .manta-ir-media {
  animation-duration: var(--manta-ir-duration, 1200ms);
  animation-delay: var(--manta-ir-delay, 0ms);
  animation-fill-mode: forwards;
  animation-timing-function: var(--manta-ir-easing, cubic-bezier(0.16, 1, 0.3, 1));
}

.manta-ir-media-wrap.manta-ir-anim-blur.manta-ir-animated .manta-ir-media {
  animation-name: manta-ir-blur;
}

.manta-ir-media-wrap.manta-ir-anim-shrink.manta-ir-animated .manta-ir-media {
  animation-name: manta-ir-shrink;
}

.manta-ir-media-wrap.manta-ir-anim-grow.manta-ir-animated .manta-ir-media {
  animation-name: manta-ir-grow;
}

.manta-ir-media-wrap.manta-ir-anim-slide.manta-ir-animated .manta-ir-media {
  animation-name: manta-ir-slide;
}

.manta-ir-media-wrap.manta-ir-anim-open.manta-ir-animated .manta-ir-media {
  animation-name: manta-ir-open;
  animation-fill-mode: both;
}

@keyframes manta-ir-shrink {
  from {
    transform: scale(calc(1 + (1 + var(--manta-ir-intensity, 100)) * 0.01));
  }
  to {
    transform: scale(1);
  }
}

@keyframes manta-ir-grow {
  from {
    transform: scale(calc(1 - var(--manta-ir-intensity, 100) * 0.003));
  }
  to {
    transform: scale(1);
  }
}

@keyframes manta-ir-slide {
  from {
    transform: translateY(calc(var(--manta-ir-intensity, 100) * 0.5%));
  }
  to {
    transform: translateY(0);
  }
}

@keyframes manta-ir-blur {
  from {
    filter: blur(var(--manta-ir-blur, 10px));
  }
  to {
    filter: blur(0);
  }
}

@keyframes manta-ir-open {
  from {
    clip-path: circle(0% at 50% 50%);
  }
  to {
    clip-path: circle(100% at 50% 50%);
  }
}

/* Final state without animation: also for printing. */
@media (prefers-reduced-motion: reduce), print {
  .manta-ir-media-wrap.manta-ir-anim-blur,
  .manta-ir-media-wrap.manta-ir-anim-shrink,
  .manta-ir-media-wrap.manta-ir-anim-grow,
  .manta-ir-media-wrap.manta-ir-anim-slide,
  .manta-ir-media-wrap.manta-ir-anim-open,
  .manta-ir-media-wrap.manta-ir-anim-reveal {
    animation: none !important;
    opacity: 1 !important;
    filter: none !important;
    clip-path: none !important;
    transform: none !important;
    transition: none !important;
  }

  .manta-ir-media-wrap.manta-ir-anim-reveal {
    grid-template-rows: 1fr !important;
  }

  .manta-ir-media-wrap.manta-ir-anim-reveal .manta-ir-media {
    transform: none !important;
  }

  .manta-ir-media-wrap .manta-ir-media {
    animation: none !important;
    transform: none !important;
    filter: none !important;
    clip-path: none !important;
  }
}
