/* Exit reverses modalCardIn and modalFadeIn, including overlays hidden by an
   attribute rather than the shared modal close functions. */
body .modal.is-modal-leaving,
body .bulk-student-import-saving-mask.is-modal-leaving,
body .delete-saving-mask.is-modal-leaving {
  display: var(--modal-motion-display, flex) !important;
  animation: web-modal-mask-exit 0.18s ease-in both !important;
}
.is-modal-leaving > .modal-card,
.is-modal-leaving > .modal-panel,
.is-modal-leaving > .bulk-student-import-saving-card,
.is-modal-leaving > .delete-saving-card {
  animation: web-modal-card-exit 0.22s cubic-bezier(.8,0,.8,.2) both !important;
  pointer-events: none;
}
.is-modal-leaving { cursor: default; }
.is-modal-leaving * { pointer-events: none !important; }
.modal.is-open,
.bulk-student-import-saving-mask:not([hidden]),
.delete-saving-mask:not([hidden]) {
  animation: web-modal-mask-enter 0.18s ease-out both !important;
}
.modal.is-open > .modal-card,
.modal.is-open > .modal-panel,
.bulk-student-import-saving-mask:not([hidden]) > .bulk-student-import-saving-card,
.delete-saving-mask:not([hidden]) > .delete-saving-card {
  animation: web-modal-card-enter 0.22s cubic-bezier(.2,.8,.2,1) both !important;
}

@keyframes web-modal-mask-enter { from { opacity: 0; } to { opacity: 1; } }
@keyframes web-modal-mask-exit { from { opacity: 1; } to { opacity: 0; } }
@keyframes web-modal-card-exit {
  from { opacity: 1; transform: translateY(0) scale(1); }
  to { opacity: 0; transform: translateY(var(--modal-motion-offset, 14px)) scale(var(--modal-motion-scale, 0.98)); }
}
@keyframes web-modal-card-enter {
  from { opacity: 0; transform: translateY(var(--modal-motion-offset, 14px)) scale(var(--modal-motion-scale, 0.98)); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  .modal.is-open, .modal.is-open .modal-card, .modal.is-open > .modal-panel, .is-modal-leaving,
  .is-modal-leaving > .modal-card, .is-modal-leaving > .modal-panel,
  .bulk-student-import-saving-mask, .delete-saving-mask,
  .bulk-student-import-saving-mask > .bulk-student-import-saving-card,
  .delete-saving-mask > .delete-saving-card {
    animation: none !important;
  }
}
