.card-holo {
  position: relative;
  width: 100%;
  height: 100%;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
  transform-style: preserve-3d;
  transition: transform 0.1s ease-out, box-shadow 0.1s ease-out;
  cursor: pointer;
  user-select: none;
  display: block;
}

.card-holo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.card-holo::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    115deg,
    transparent 20%,
    rgba(255, 0, 150, 0.4) 40%,
    rgba(0, 255, 255, 0.4) 60%,
    transparent 80%
  );
  background-size: 200% 200%;
  background-position: var(--holo-x, 50%) var(--holo-y, 50%);
  mix-blend-mode: color-dodge;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
  z-index: 2;
}

.card-holo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(
    circle at var(--mouse-x, 50%) var(--mouse-y, 50%),
    rgba(255, 255, 255, 0.4) 0%,
    transparent 60%
  );
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
  z-index: 3;
}

.card-holo:hover::before,
.card-holo:hover::after {
  opacity: 1;
}