/**
 * V7 shared animated-SVG icon system.
 * Sprite: assets/svg/pwc-icons.svg (pwc-i-* symbol ids).
 * Mount via <svg class="pwc-icon"><use href="#pwc-i-*"/></svg> or window.pwcIcon.inject().
 * Keyframes prefixed pwcIcon* to avoid collisions with existing pingGlow/sweepGradient/orbitSpin.
 * Created: 2026-07-21
 */

.pwc-icon {
  width: 1em;
  height: 1em;
  display: inline-block;
  vertical-align: -0.125em;
  color: inherit;
  overflow: visible;
  flex-shrink: 0;
}

.pwc-icon * {
  vector-effect: non-scaling-stroke;
}

/* Draw-in: strokes hidden until .is-inview is added (by IO or ancestor [data-pwc-inview]) */
.pwc-anim-draw path,
.pwc-anim-draw line,
.pwc-anim-draw circle,
.pwc-anim-draw rect {
  stroke-dasharray: 64;
  stroke-dashoffset: 64;
  transition: stroke-dashoffset 0.9s cubic-bezier(0.2, 0.8, 0.2, 1);
  transition-delay: var(--pwc-draw-delay, 0s);
}

/* Filled dots (center marks) should not attempt to draw as strokes */
.pwc-anim-draw circle[fill="currentColor"] {
  stroke-dasharray: none;
  stroke-dashoffset: 0;
  opacity: 0;
  transition: opacity 0.4s ease;
  transition-delay: calc(var(--pwc-draw-delay, 0s) + 0.6s);
}

.pwc-anim-draw.is-inview path,
.pwc-anim-draw.is-inview line,
.pwc-anim-draw.is-inview circle,
.pwc-anim-draw.is-inview rect,
[data-pwc-inview].is-inview .pwc-anim-draw path,
[data-pwc-inview].is-inview .pwc-anim-draw line,
[data-pwc-inview].is-inview .pwc-anim-draw circle,
[data-pwc-inview].is-inview .pwc-anim-draw rect {
  stroke-dashoffset: 0;
}

.pwc-anim-draw.is-inview circle[fill="currentColor"],
[data-pwc-inview].is-inview .pwc-anim-draw circle[fill="currentColor"] {
  opacity: 1;
}

/* Hover loop: pulses while the interactive host is hovered/focused */
@keyframes pwcIconPulse {
  0%, 100% {
    opacity: 1;
    filter: drop-shadow(0 0 0 rgba(var(--accent-emerald-rgb, 5, 255, 114), 0));
  }
  50% {
    opacity: 0.72;
    filter: drop-shadow(0 0 6px currentColor);
  }
}

.pwc-icon-host:hover .pwc-anim-pulse,
.pwc-icon-host:focus-visible .pwc-anim-pulse {
  animation: pwcIconPulse 1.6s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
  .pwc-anim-draw path,
  .pwc-anim-draw line,
  .pwc-anim-draw circle,
  .pwc-anim-draw rect {
    stroke-dasharray: none !important;
    stroke-dashoffset: 0 !important;
    transition: none !important;
  }

  .pwc-anim-draw circle[fill="currentColor"] {
    opacity: 1 !important;
    transition: none !important;
  }

  .pwc-icon-host:hover .pwc-anim-pulse,
  .pwc-icon-host:focus-visible .pwc-anim-pulse {
    animation: none !important;
    opacity: 1 !important;
    filter: none !important;
  }
}
