.scroll-reveal-image {
  position: relative;
  width: 90%;
  max-width: 800px;
  margin: 0 auto;
  overflow: hidden;
  border-radius: 2em;
  transform: scale(0.75);
  opacity: 0.5;
}

.scroll-reveal-image::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 90%;
  height: 90%;
  border: 1px solid #000;
  border-radius: inherit;
  background: transparent;
  z-index: 2;
  pointer-events: none;
  opacity: var(--frame-opacity, 1);
}

.scroll-reveal-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  border-radius: inherit;
}

.scroll-reveal-image canvas {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 90%;
  height: 90%;
  pointer-events: none;
  opacity: 0;
  z-index: 3;
  border-radius: 0.5em;
}