/* ═══ Product Card Hover Glitch — Text Only, One-Shot ═══ */

.product-card-glitch .glitch-title {
  position: relative;
  display: inline-block;
}

.product-card-glitch .glitch-title::before,
.product-card-glitch .glitch-title::after {
  content: attr(data-glitch);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
  color: inherit;
}

.product-card-glitch .glitch-title::before {
  text-shadow: -2px 0 #94656C;
}

.product-card-glitch .glitch-title::after {
  text-shadow: 2px 0 #b8838a;
}

/* Trigger once on hover */
.product-card-glitch:hover .glitch-title::before {
  animation: pcg-before 0.4s linear forwards;
}

.product-card-glitch:hover .glitch-title::after {
  animation: pcg-after 0.4s linear forwards;
}

@keyframes pcg-before {
  0%   { opacity: 0.8; clip-path: inset(10% 0 80% 0); transform: translate(-3px, 0); }
  15%  { opacity: 0.8; clip-path: inset(50% 0 20% 0); transform: translate(3px, 0);  }
  30%  { opacity: 0.8; clip-path: inset(20% 0 50% 0); transform: translate(-2px, 0); }
  45%  { opacity: 0.8; clip-path: inset(70% 0 10% 0); transform: translate(2px, 0);  }
  60%  { opacity: 0.8; clip-path: inset(30% 0 40% 0); transform: translate(-1px, 0); }
  75%  { opacity: 0.4; clip-path: inset(5% 0 60% 0);  transform: translate(1px, 0);  }
  100% { opacity: 0;   clip-path: inset(0 0 0 0);      transform: translate(0, 0);    }
}

@keyframes pcg-after {
  0%   { opacity: 0.8; clip-path: inset(60% 0 5% 0);  transform: translate(3px, 0);  }
  15%  { opacity: 0.8; clip-path: inset(10% 0 40% 0); transform: translate(-3px, 0); }
  30%  { opacity: 0.8; clip-path: inset(40% 0 30% 0); transform: translate(2px, 0);  }
  45%  { opacity: 0.8; clip-path: inset(5% 0 70% 0);  transform: translate(-2px, 0); }
  60%  { opacity: 0.8; clip-path: inset(45% 0 15% 0); transform: translate(1px, 0);  }
  75%  { opacity: 0.4; clip-path: inset(15% 0 55% 0); transform: translate(-1px, 0); }
  100% { opacity: 0;   clip-path: inset(0 0 0 0);      transform: translate(0, 0);    }
}