
.mb-wrapper{display:block}
.mb-wrapper.mb-align-left{text-align:left}
.mb-wrapper.mb-align-center{text-align:center}
.mb-wrapper.mb-align-right{text-align:right}

.mb-button{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  cursor:pointer;text-decoration:none;user-select:none;-webkit-tap-highlight-color:transparent;
  background:var(--mb-bg);color:var(--mb-color);
  border-radius:var(--mb-radius);padding:var(--mb-py) var(--mb-px);
  font-size:var(--mb-fs);font-weight:var(--mb-fw);letter-spacing:var(--mb-ls);
  box-shadow:var(--mb-shadow);
  transition:transform var(--mb-duration) var(--mb-easing),
             box-shadow var(--mb-duration) var(--mb-easing),
             background-color var(--mb-duration) var(--mb-easing),
             color var(--mb-duration) var(--mb-easing),
             filter var(--mb-duration) var(--mb-easing);
  position:relative;overflow:hidden;
}

.mb-button:hover,.mb-button:focus-visible{
  background:var(--mb-hover-bg);color:var(--mb-hover-color);
  box-shadow:var(--mb-hover-shadow);
}

.mb-anim-lift:hover,.mb-anim-lift:focus-visible{transform:translateY(-3px)}
.mb-anim-grow:hover,.mb-anim-grow:focus-visible{transform:scale(1.04)}
.mb-anim-tilt:hover,.mb-anim-tilt:focus-visible{transform:rotate(-1deg) translateY(-2px)}
.mb-anim-slide:hover,.mb-anim-slide:focus-visible{transform:translateX(4px)}
.mb-anim-glow:hover,.mb-anim-glow:focus-visible{filter:brightness(1.06)}

.mb-anim-fill::before{
  content:"";position:absolute;inset:0;background:var(--mb-hover-bg);
  transform:translateX(-110%);transition:transform var(--mb-duration) var(--mb-easing);z-index:0;
}
.mb-anim-fill>span{position:relative;z-index:1}
.mb-anim-fill:hover::before,.mb-anim-fill:focus-visible::before{transform:translateX(0%)}
.mb-anim-fill:hover,.mb-anim-fill:focus-visible{background:var(--mb-bg);color:var(--mb-hover-color)}

.mb-anim-underline::after{
  content:"";position:absolute;left:14px;right:14px;bottom:8px;height:2px;
  background:var(--mb-hover-color);transform:scaleX(0);transform-origin:left;
  transition:transform var(--mb-duration) var(--mb-easing);opacity:.9;
}
.mb-anim-underline:hover::after,.mb-anim-underline:focus-visible::after{transform:scaleX(1)}
