/* 前台弹窗统一入场动效 */
:root {
  --public-modal-overlay-duration: 180ms;
  --public-modal-dialog-duration: 220ms;
  --public-modal-dialog-easing: cubic-bezier(.2, .8, .2, 1);
}

@keyframes public-modal-overlay-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes public-modal-dialog-in {
  from {
    opacity: 0;
    transform: translateY(12px) scale(.97);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.auth-modal,
.pay-modal,
.quota-modal,
.history-modal,
.wechat-auth-modal,
.modal,
.modal-backdrop,
.layui-layer-shade {
  animation: public-modal-overlay-in var(--public-modal-overlay-duration) ease-out both;
}

.auth-dialog,
.pay-dialog,
.quota-dialog,
.history-dialog,
.wechat-auth-dialog,
.modal-dialog,
.layui-layer-dialog.layer-anim,
.layui-layer-page.layer-anim,
.layui-layer-iframe.layer-anim {
  animation: public-modal-dialog-in var(--public-modal-dialog-duration) var(--public-modal-dialog-easing) both;
}

@media (prefers-reduced-motion: reduce) {
  .auth-modal,
  .pay-modal,
  .quota-modal,
  .history-modal,
  .wechat-auth-modal,
  .modal,
  .modal-backdrop,
  .layui-layer-shade,
  .auth-dialog,
  .pay-dialog,
  .quota-dialog,
  .history-dialog,
  .wechat-auth-dialog,
  .modal-dialog,
  .layui-layer-dialog.layer-anim,
  .layui-layer-page.layer-anim,
  .layui-layer-iframe.layer-anim {
    animation-duration: 1ms;
  }
}
