/* the shared button hover (js/fx.js tags each button .mc-fx and gives it a .mc-shine span).
   Tripled class so it outranks each button's own :hover from the earlier sheets. */
.mc-fx { transition: transform .28s cubic-bezier(.2,.8,.2,1), filter .28s ease; will-change: transform; }
.mc-fx.mc-fx.mc-fx:hover { transform: translateY(-2px) scale(1.025); filter: brightness(1.07) drop-shadow(0 10px 22px rgba(92,118,255,.42)); }
.mc-fx.mc-fx.mc-fx:active { transform: translateY(0) scale(.98); transition-duration: .08s; }
.mc-fx.mc-fx.mc-fx:disabled, .mc-fx.mc-fx.mc-fx[aria-disabled="true"] { transform: none; filter: none; }
.mc-fx > svg:last-of-type { transition: transform .28s cubic-bezier(.2,.8,.2,1); }
.mc-fx:hover > svg:last-of-type { transform: translateX(4px); }
.mc-shine { position: absolute; inset: 0; border-radius: inherit; overflow: hidden; pointer-events: none; z-index: 1; }
.mc-shine::before { content: ""; position: absolute; top: -40%; bottom: -40%; left: -70%; width: 50%; transform: skewX(-22deg);
  background: linear-gradient(90deg, transparent, rgba(150,170,255,.22) 30%, rgba(255,255,255,.55) 50%, rgba(150,170,255,.22) 70%, transparent); }
.mc-fx:hover > .mc-shine::before { animation: mcShine .8s cubic-bezier(.3,.6,.2,1) forwards; }
@keyframes mcShine { to { left: 130%; } }
@media (prefers-reduced-motion: reduce) {
  .mc-fx.mc-fx.mc-fx:hover { transform: none; }
  .mc-fx:hover > .mc-shine::before { animation: none; }
  .mc-fx:hover > svg:last-of-type { transform: none; }
}
/* touch (T2.5): a tap would leave the hover lift stuck on; the :active press stays as the tap's feedback */
@media (hover: none) {
  .mc-fx.mc-fx.mc-fx:hover { transform: none; filter: none; }
  .mc-fx:hover > svg:last-of-type { transform: none; }
  .mc-fx:hover > .mc-shine::before { animation: none; }
  .mc-fx.mc-fx.mc-fx:active { transform: scale(.98); }
}
