/* Gray values keep labels readable even where soft trail samples overlap. */
.button.primary.action-glow:not(.danger) {
  position:relative; isolation:isolate; --action-light:110 110 110;
  --action-rest:radial-gradient(ellipse calc(var(--action-radius,28px) * 1.6) var(--action-radius,28px) at 50% 50%,rgb(var(--action-light) / .24) 0%,rgb(var(--action-light) / .12) 40%,transparent 100%);
}
html[data-theme="dark"] .button.primary.action-glow { --action-light:170 170 170; }
.button.primary.action-glow::before {
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; border-radius:inherit;
  opacity:var(--action-opacity,0); transition:opacity 3200ms ease-in-out;
  background:var(--action-background,var(--action-rest));
}
.button.primary.action-glow:is(:hover,:focus-visible)::before { transition-duration:420ms; }
.button.primary.action-glow:focus-visible::before { opacity:.8; background:var(--action-rest); }
.button.primary.action-glow:active:not(:disabled):not([aria-disabled="true"]):not([aria-busy="true"]) { translate:0 1px; }
.button.primary.action-glow:is(:disabled,[aria-disabled="true"],[aria-busy="true"],.danger)::before { display:none; }
@media(prefers-reduced-motion:reduce) {
  .button.primary.action-glow::before { transition:none; }
  .button.primary.action-glow:active { translate:none !important; }
}
@media print { .button.primary.action-glow::before { display:none; } }
