/* Brilho de borda interativo, adaptado do componente BorderGlow para o site estático. */
.border-glow-target {
  --border-glow-angle: 45deg;
  --border-glow-strength: 0;
  --border-glow-width: 1.5px;
  --border-glow-color: hsl(40deg 80% 80%);
  --border-glow-gradient: conic-gradient(
    from var(--border-glow-angle) at 50% 50%,
    transparent 0deg,
    transparent 210deg,
    #38bdf8 246deg,
    #f472b6 270deg,
    #c084fc 292deg,
    #f472b6 314deg,
    #38bdf8 338deg,
    transparent 360deg
  );

  position: relative;
  isolation: isolate;
}

.border-glow-target::before,
.border-glow-target::after {
  content: "";
  position: absolute;
  inset: 0;
  box-sizing: border-box;
  border-radius: inherit;
  clip-path: inherit;
  pointer-events: none;
  opacity: var(--border-glow-strength);
  transition: opacity 180ms ease-out;

  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  mask-composite: exclude;
}

/* Linha colorida que percorre o trecho da borda mais próximo do cursor. */
.border-glow-target::before {
  z-index: 6;
  padding: var(--border-glow-width);
  background: var(--border-glow-gradient);
  filter:
    drop-shadow(0 0 2px rgb(255 255 255 / 85%))
    drop-shadow(0 0 6px var(--border-glow-color));
}

/* Halo interno suave, mantido dentro do recorte original dos componentes. */
.border-glow-target::after {
  z-index: 5;
  padding: 3px;
  background: var(--border-glow-gradient);
  filter: blur(7px);
  opacity: calc(var(--border-glow-strength) * 0.72);
}

.border-glow-target--form {
  --border-glow-width: 2px;
}

.border-glow-target--form::after {
  padding: 5px;
  filter: blur(11px);
  opacity: calc(var(--border-glow-strength) * 0.58);
}

/* A borda continua perceptível ao navegar sem mouse. */
.border-glow-target:focus-visible,
.border-glow-target:focus-within {
  --border-glow-strength: 0.92;
}

@media (prefers-reduced-motion: reduce) {
  .border-glow-target::before,
  .border-glow-target::after {
    transition: none;
  }
}

