/* Abra Media GSAP animation layer */
.abra-gsap-ready .abra-word {
  display: inline-block;
  overflow: hidden;
  vertical-align: top;
}

.abra-gsap-ready .abra-word > span {
  display: inline-block;
  will-change: transform;
}

.abra-page {
  position: relative;
  isolation: isolate;
  --abra-pointer-x: 50%;
  --abra-pointer-y: 18%;
}

.abra-page::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: .72;
  background:
    radial-gradient(circle at var(--abra-pointer-x) var(--abra-pointer-y), rgba(236, 72, 153, .24), transparent 18rem),
    radial-gradient(circle at calc(var(--abra-pointer-x) + 16%) calc(var(--abra-pointer-y) + 10%), rgba(37, 99, 235, .18), transparent 22rem);
  transition: opacity .35s ease;
}

.abra-visual,
.abra-media-tile {
  overflow: hidden;
  transform-style: preserve-3d;
}

.abra-visual img,
.abra-media-tile img {
  will-change: transform, clip-path;
  transform-origin: center;
}

.abra-service-row,
.abra-card,
.abra-tile,
.rank-math-list-item,
.abra-list li {
  will-change: transform, opacity;
}

.abra-btn,
.abra-card,
.abra-tile,
.abra-media-tile {
  backface-visibility: hidden;
}

.abra-media-tile::after,
.abra-visual::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(115deg, transparent 0%, rgba(255,255,255,.16) 42%, transparent 62%);
  transform: translateX(-120%);
  opacity: 0;
}

.abra-media-tile:hover::after,
.abra-visual:hover::after {
  animation: abra-shine 1.05s ease forwards;
}

@keyframes abra-shine {
  0% { opacity: 0; transform: translateX(-120%); }
  20% { opacity: 1; }
  100% { opacity: 0; transform: translateX(120%); }
}

@media (prefers-reduced-motion: reduce) {
  .abra-page::before,
  .abra-media-tile::after,
  .abra-visual::after {
    animation: none !important;
    transition: none !important;
  }

  .abra-visual img,
  .abra-media-tile img,
  .abra-service-row,
  .abra-card,
  .abra-tile,
  .rank-math-list-item,
  .abra-list li {
    transform: none !important;
  }
}
