/* ── BORDER GLOW — RUNNS.io cyan palette ── */

[data-glow] {
  --edge-proximity:    0;
  --cursor-angle:      45deg;
  --edge-sensitivity:  25;
  --color-sensitivity: 45;
  --glow-padding:      18px;
  --cone-spread:       25;
  --fill-opacity:      0.12;
  --card-bg:           var(--clr-surface, #f0f0f0);

  /* Cyan accent — #38bdf8 ≈ HSL(200 92% 60%) */
  --glow-color:    hsl(200deg 92% 55% / 100%);
  --glow-color-60: hsl(200deg 92% 55% / 60%);
  --glow-color-50: hsl(200deg 92% 55% / 50%);
  --glow-color-40: hsl(200deg 92% 55% / 40%);
  --glow-color-30: hsl(200deg 92% 55% / 30%);
  --glow-color-20: hsl(200deg 92% 55% / 20%);
  --glow-color-10: hsl(200deg 92% 55% / 10%);

  /* Cyan mesh gradients */
  --gradient-one:   radial-gradient(at 80% 55%, #38bdf8 0px, transparent 50%);
  --gradient-two:   radial-gradient(at 69% 34%, #0ea5e9 0px, transparent 50%);
  --gradient-three: radial-gradient(at  8%  6%, #7dd3fc 0px, transparent 50%);
  --gradient-four:  radial-gradient(at 41% 38%, #38bdf8 0px, transparent 50%);
  --gradient-five:  radial-gradient(at 86% 85%, #0ea5e9 0px, transparent 50%);
  --gradient-six:   radial-gradient(at 82% 18%, #7dd3fc 0px, transparent 50%);
  --gradient-seven: radial-gradient(at 51%  4%, #38bdf8 0px, transparent 50%);
  --gradient-base:  linear-gradient(#38bdf8 0 100%);

  position: relative !important;
  isolation: isolate;
  overflow: visible !important;
}

/* Cancel translateY hover lifts from styles.css */
[data-glow]:hover {
  transform: none !important;
}

/* ── BASE: always hidden ── */
[data-glow]::before,
[data-glow]::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  z-index: -1;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.75s ease-in-out;
}

/* ── HOVER: fade in fast, proximity-driven opacity ── */
[data-glow]:hover::before,
[data-glow]:hover::after {
  transition: opacity 0.25s ease-out;
}

/* Colored mesh-gradient BORDER — conic mask follows cursor */
[data-glow]::before {
  border: 1.5px solid transparent;
  background:
    linear-gradient(var(--card-bg) 0 100%) padding-box,
    linear-gradient(rgb(255 255 255 / 0%) 0% 100%) border-box,
    var(--gradient-one)   border-box,
    var(--gradient-two)   border-box,
    var(--gradient-three) border-box,
    var(--gradient-four)  border-box,
    var(--gradient-five)  border-box,
    var(--gradient-six)   border-box,
    var(--gradient-seven) border-box,
    var(--gradient-base)  border-box;

  mask-image: conic-gradient(
    from var(--cursor-angle) at center,
    black       calc(var(--cone-spread) * 1%),
    transparent calc((var(--cone-spread) + 15) * 1%),
    transparent calc((100 - var(--cone-spread) - 15) * 1%),
    black       calc((100 - var(--cone-spread)) * 1%)
  );
}

[data-glow]:hover::before {
  opacity: calc(
    (var(--edge-proximity) - var(--color-sensitivity)) /
    (100 - var(--color-sensitivity))
  );
}

/* Colored mesh-gradient FILL near edges */
[data-glow]::after {
  background:
    var(--gradient-one)   padding-box,
    var(--gradient-two)   padding-box,
    var(--gradient-three) padding-box,
    var(--gradient-four)  padding-box,
    var(--gradient-five)  padding-box,
    var(--gradient-six)   padding-box,
    var(--gradient-seven) padding-box,
    var(--gradient-base)  padding-box;

  mask-image:
    linear-gradient(to bottom, black, black),
    radial-gradient(ellipse at 50% 50%, black 40%, transparent 65%),
    radial-gradient(ellipse at 66% 66%, black  5%, transparent 40%),
    radial-gradient(ellipse at 33% 33%, black  5%, transparent 40%),
    radial-gradient(ellipse at 66% 33%, black  5%, transparent 40%),
    radial-gradient(ellipse at 33% 66%, black  5%, transparent 40%),
    conic-gradient(
      from var(--cursor-angle) at center,
      transparent 5%, black 15%, black 85%, transparent 95%
    );

  mask-composite: subtract, add, add, add, add, add;
  mix-blend-mode: overlay;
}

[data-glow]:hover::after {
  opacity: calc(
    var(--fill-opacity) *
    (var(--edge-proximity) - var(--color-sensitivity)) /
    (100 - var(--color-sensitivity))
  );
}

/* ── OUTER GLOW — extends beyond card boundary ── */
[data-glow] > .edge-light {
  position: absolute;
  inset: calc(var(--glow-padding) * -1);
  border-radius: inherit;
  pointer-events: none;
  z-index: 1;
  opacity: 0;
  transition: opacity 0.75s ease-in-out;

  mask-image: conic-gradient(
    from var(--cursor-angle) at center,
    black 2.5%, transparent 10%, transparent 90%, black 97.5%
  );
}

[data-glow]:hover > .edge-light {
  opacity: calc(
    (var(--edge-proximity) - var(--edge-sensitivity)) /
    (100 - var(--edge-sensitivity))
  );
  transition: opacity 0.25s ease-out;
}

[data-glow] > .edge-light::before {
  content: "";
  position: absolute;
  inset: var(--glow-padding);
  border-radius: inherit;
  box-shadow:
    inset 0 0  0  1px var(--glow-color),
    inset 0 0  1px 0  var(--glow-color-60),
    inset 0 0  3px 0  var(--glow-color-50),
    inset 0 0  6px 0  var(--glow-color-40),
    inset 0 0 15px 0  var(--glow-color-30),
    inset 0 0 25px 2px var(--glow-color-20),
          0 0  1px 0  var(--glow-color-60),
          0 0  3px 0  var(--glow-color-50),
          0 0  6px 0  var(--glow-color-40),
          0 0 15px 0  var(--glow-color-30),
          0 0 25px 2px var(--glow-color-20);
}
