/* wm-shimmer: a sheen crosses the main button. Adapted from Watermelon UI (MIT), shimmer-button (white/20 sweep,
   -100% -> 100%, 700 ms on hover) and hero-13 (shimmer every 3.5 s). Vanilla port by SilverLion. */
.wm-shimmer { position: relative; overflow: hidden; isolation: isolate; transition: transform 0.16s var(--wm-ease-ui, cubic-bezier(0.23, 1, 0.32, 1)); }
.wm-shimmer::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(100deg, transparent 20%, var(--wm-sheen, rgba(255, 255, 255, 0.22)) 50%, transparent 80%);
  transform: translate3d(-110%, 0, 0); }
.wm-shimmer:active { transform: scale(0.97); }
@media (hover: hover) and (pointer: fine) {
  .wm-shimmer:hover::after, .wm-shimmer:focus-visible::after { transform: translate3d(110%, 0, 0); transition: transform 0.7s var(--wm-ease, cubic-bezier(0.16, 1, 0.3, 1)); }
}
.wm-shimmer.wm-sweep::after { animation: wm-sheen 3.5s var(--wm-ease, cubic-bezier(0.16, 1, 0.3, 1)) infinite; }
.wm-shimmer.wm-sweep.wm-off::after { animation-play-state: paused; }
@keyframes wm-sheen { 0% { transform: translate3d(-110%, 0, 0); } 25%, 100% { transform: translate3d(110%, 0, 0); } }
@media (prefers-reduced-motion: reduce) { .wm-shimmer::after { display: none; } .wm-shimmer:active { transform: none; } }
