/* Only real button surfaces are opted in by button-shine.js. */
.btn-shine[data-bostic-shine="static"] {
  position: relative;
}

.btn-shine[data-bostic-shine]::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(115deg, transparent 35%, rgb(255 161 29 / 20%) 46%, rgb(255 255 255 / 65%) 50%, rgb(255 161 29 / 20%) 54%, transparent 65%) no-repeat;
  background-size: 300% 100%;
  background-position: 150% 0;
  opacity: 0;
  pointer-events: none;
}

.btn-shine[data-bostic-shine]:not(:disabled, .disabled, [aria-disabled="true"], [aria-busy="true"]):is(:hover, :focus-visible)::before {
  animation: bosticButtonShine 850ms ease-out;
}

@keyframes bosticButtonShine {
  0% { background-position: 150% 0; opacity: 0; }
  15%, 85% { opacity: 1; }
  100% { background-position: -50% 0; opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .btn-shine[data-bostic-shine]::before {
    animation: none !important;
  }
}
