/* ==========================================================
   NEXACORE V6.5.0.2 · CONTRIBUTE OVERFLOW FIX
   The old ::before used inset:-120% -35%, which visually clipped
   correctly but still enlarged the anchor's scrollWidth.
   This version keeps the animation box INSIDE the button.
   ========================================================== */

.nexa-support-btn{
  overflow:hidden!important;
  overflow:clip!important;
  contain:paint!important;
}

/* Keep the decorative layer exactly inside the button bounds.
   Animate only background-position, never the element geometry. */
.nexa-support-btn::before{
  inset:0!important;
  left:0!important;
  right:0!important;
  top:0!important;
  bottom:0!important;
  width:auto!important;
  height:auto!important;

  transform:none!important;

  background:
    linear-gradient(
      112deg,
      transparent 0%,
      transparent 35%,
      rgba(255,255,255,.05) 42%,
      rgba(255,255,255,.28) 50%,
      rgba(255,255,255,.05) 58%,
      transparent 65%,
      transparent 100%
    )!important;

  background-size:260% 100%!important;
  background-position:130% 0!important;

  animation:nexa6502ContribSweep 4.8s cubic-bezier(.35,.1,.25,1) infinite!important;
}

/* Bottom accent rail already fits inside, explicitly keep it bounded. */
.nexa-support-btn::after{
  max-width:64%!important;
  margin-inline:auto!important;
}

@keyframes nexa6502ContribSweep{
  0%,68%{
    background-position:130% 0;
    opacity:0;
  }
  73%{
    opacity:1;
  }
  90%,100%{
    background-position:-130% 0;
    opacity:0;
  }
}

@media(max-width:860px){
  .nexa-support-btn{
    overflow:hidden!important;
    overflow:clip!important;
  }
}

@media(prefers-reduced-motion:reduce){
  .nexa-support-btn::before{
    animation:none!important;
    opacity:0!important;
  }
}

/* ==========================================================
   END V6.5.0.2
   ========================================================== */
