/* Forensic radial trace graph — scoped via .frtg-wrap */

.frtg-wrap {
  width: 100%;
  height: clamp(560px, 68vh, 820px);
  min-height: clamp(560px, 68vh, 820px);
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  box-sizing: border-box;
}

.frtg-svg {
  display: block;
  width: 100%;
  height: 100%;
  vertical-align: top;
}

.frtg-hub-pulse {
  animation: frtg-hub-pulse 2.4s ease-in-out infinite;
}

@keyframes frtg-hub-pulse {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.88;
  }
}

.frtg-edge-dash-anim {
  animation: frtg-dash 2.8s linear infinite;
}

@keyframes frtg-dash {
  to {
    stroke-dashoffset: -48;
  }
}

.frtg-particle {
  filter: url(#frtg-cyanGlow);
}

.frtg-svg.frtg-live-pulse {
  filter: drop-shadow(0 0 20px rgba(15, 168, 157, 0.12));
  transition: filter 0.35s ease;
}
