/**
 * Aidem Edge Glow Controller
 *
 * The controller injects an SVG perimeter into each managed target.
 * No pseudo-elements are consumed, so glass utility classes remain compatible.
 */

.aeg-controller {
  width: 100%;
  height: 0;
  min-height: 0;
  overflow: visible;
  pointer-events: none;
}

.aeg-controller__editor-label {
  display: none;
}

.elementor-editor-active .aeg-controller {
  display: flex;
  align-items: center;
  justify-content: center;
  height: auto;
  min-height: 36px;
  padding: 8px 12px;
  border: 1px dashed rgba(140, 95, 245, 0.58);
  border-radius: 6px;
  background: rgba(12, 10, 24, 0.72);
}

.elementor-editor-active .aeg-controller__editor-label {
  display: inline-block;
  color: #ceff25;
  font: 600 11px/1.2 "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.aeg-target {
  isolation: isolate;
}

.aeg-target.aeg-positioned {
  position: relative !important;
}

.aeg-overlay {
  position: absolute;
  inset: 0;
  z-index: var(--aeg-layer, 30);
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
  opacity: 0;
  transition: opacity 320ms ease;
  contain: layout style paint;
}

.aeg-overlay.is-running,
.aeg-overlay.is-looping {
  opacity: 1;
}

.aeg-overlay rect {
  fill: none;
  vector-effect: non-scaling-stroke;
  shape-rendering: geometricPrecision;
}

.aeg-overlay__track {
  stroke: var(--aeg-track-colour, #8c5ff5);
  stroke-width: var(--aeg-track-width, 1px);
  opacity: var(--aeg-track-opacity, 0.12);
}

.aeg-overlay__trace {
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dashoffset: 0;
}

.aeg-overlay__trace--glow {
  stroke-width: var(--aeg-glow-width, 5px);
  opacity: var(--aeg-glow-opacity, 0.42);
  filter: blur(var(--aeg-glow-blur, 4px));
}

.aeg-overlay__trace--core {
  stroke-width: var(--aeg-stroke-width, 1.35px);
  opacity: var(--aeg-trace-opacity, 0.94);
  filter:
    drop-shadow(0 0 2px var(--aeg-primary, #8c5ff5))
    drop-shadow(0 0 5px color-mix(in srgb, var(--aeg-secondary, #ceff25) 36%, transparent));
}

.aeg-overlay.is-running .aeg-overlay__trace,
.aeg-overlay.is-looping .aeg-overlay__trace {
  animation-name: aegPerimeterClockwise;
  animation-duration: var(--aeg-duration, 8000ms);
  animation-timing-function: linear;
  animation-fill-mode: both;
}

.aeg-overlay.is-running .aeg-overlay__trace {
  animation-iteration-count: 1;
}

.aeg-overlay.is-looping .aeg-overlay__trace {
  animation-iteration-count: infinite;
}

.aeg-overlay[data-aeg-direction="counter-clockwise"].is-running .aeg-overlay__trace,
.aeg-overlay[data-aeg-direction="counter-clockwise"].is-looping .aeg-overlay__trace {
  animation-name: aegPerimeterCounterClockwise;
}

@keyframes aegPerimeterClockwise {
  0% {
    stroke-dashoffset: 0;
    opacity: 0;
  }
  7% {
    opacity: 1;
  }
  90% {
    opacity: 1;
  }
  100% {
    stroke-dashoffset: -100;
    opacity: 0;
  }
}

@keyframes aegPerimeterCounterClockwise {
  0% {
    stroke-dashoffset: 0;
    opacity: 0;
  }
  7% {
    opacity: 1;
  }
  90% {
    opacity: 1;
  }
  100% {
    stroke-dashoffset: 100;
    opacity: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .aeg-overlay,
  .aeg-overlay__trace {
    animation: none !important;
    opacity: 0 !important;
  }
}
