.opc-reading-progress {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 2px;
  z-index: 100;
  background: linear-gradient(90deg, #779baf, #b5f0d6);
  transform: scaleX(0);
  transform-origin: left;
  pointer-events: none;
}
.opc-pointer-surface {
  position: relative;
  isolation: isolate;
}
.opc-pointer-surface::after {
  content: "";
  position: absolute;
  inset: 0;
  display: block;
  overflow: hidden;
  border-radius: inherit;
  pointer-events: none;
  opacity: 0;
  z-index: 2;
  background: radial-gradient(
    circle at var(--pointer-x, 50%) var(--pointer-y, 50%),
    #d6f7ed18,
    transparent 62%
  );
  transition: opacity 300ms ease;
}
.opc-detail-motion .scene-visual img {
  animation: none;
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .opc-detail-motion .opc-pointer-surface {
    transform: perspective(1000px) rotateX(var(--pointer-rx, 0deg))
      rotateY(var(--pointer-ry, 0deg));
    transition:
      transform 300ms cubic-bezier(0.2, 0.75, 0.25, 1),
      color 200ms,
      background 200ms,
      border-color 200ms;
  }
  .opc-detail-motion .opc-pointer-surface.opc-pointer-active {
    transition:
      transform 100ms ease-out,
      color 200ms,
      background 200ms,
      border-color 200ms;
  }
  .opc-pointer-active::after {
    opacity: 1;
  }
}
@media (prefers-reduced-motion: reduce) {
  .opc-pointer-surface::after {
    transition: none;
  }
  .opc-pointer-surface::after {
    display: none;
  }
}
