
/* ================================
   SPG WOW ADDON — UNIVERSAL v1.1.0
   Works with different classnames
================================ */

/* Stage zoom + global glow */
.spg3d-wrap .spg3d-photoStage,
.spg3d-wrap .spg3d-stage,
.spg3d-wrap .spg3d-canvasWrap{
  transform-origin: center center;
  transition: transform .38s ease, filter .38s ease;
  will-change: transform, filter;
  filter:
    drop-shadow(0 0 28px rgba(168,85,247,.22))
    drop-shadow(0 0 42px rgba(255,42,109,.14));
}

.spg3d-wrap .spg-wow-zoom{
  transform: scale(1.06);
  filter:
    drop-shadow(0 0 46px rgba(168,85,247,.34))
    drop-shadow(0 0 70px rgba(255,42,109,.24));
}

/* Dim overlay */
body.spg-wow-dim::before{
  content:"";
  position: fixed;
  inset:0;
  background: rgba(0,0,0,.38);
  z-index: 9990;
  pointer-events: none;
  opacity: 0;
  animation: spgWowFadeIn .20s ease forwards;
}
@keyframes spgWowFadeIn{ to{opacity:1;} }

/* Neon pulse — target any polygon inside SPG svg */
.spg3d-wrap svg polygon.is-active,
.spg3d-wrap svg polygon.spg-seg.is-active,
.spg3d-wrap svg polygon.spg3d-seg.is-active{
  animation: spgNeonPulse 1.8s ease-in-out infinite;
  transform-origin: center;
  transform: scale(1.05);
}

@keyframes spgNeonPulse{
  0%{
    filter: drop-shadow(0 0 10px rgba(168,85,247,.45))
            drop-shadow(0 0 16px rgba(255,42,109,.20));
    opacity: .92;
  }
  50%{
    filter: drop-shadow(0 0 18px rgba(168,85,247,.95))
            drop-shadow(0 0 34px rgba(255,42,109,.55));
    opacity: 1;
  }
  100%{
    filter: drop-shadow(0 0 10px rgba(168,85,247,.45))
            drop-shadow(0 0 16px rgba(255,42,109,.20));
    opacity: .92;
  }
}

/* Smooth list transition */
.spg3d-wrap .spg3d-list{
  transition: opacity .26s ease, transform .26s ease;
  will-change: opacity, transform;
}
.spg3d-wrap .spg3d-list.spg-wow-fade{
  opacity: 0;
  transform: translateY(10px);
}
