/* Scale is separate from transform so existing popup positioning is preserved. */
@keyframes bp-popup-open {
    0% { opacity:0; scale:.14 .04; }
    40% { opacity:1; scale:1 .12; }
    100% { opacity:1; scale:1; }
}
@keyframes bp-popup-close {
    0% { opacity:1; scale:1; }
    60% { opacity:1; scale:1 .1; }
    100% { opacity:0; scale:.14 .03; }
}
.modal.bp-popup-motion-modal.fade { transition:opacity .12s ease; }
.modal.bp-popup-motion-modal.fade .modal-dialog { transition:none !important; }
/* Suppress Bootstrap's closing slide; the content supplies the shared motion. */
.modal.bp-popup-motion-modal.fade:not(.in) .modal-dialog { transform:translate(0,0); }
.modal.bp-popup-motion-modal.in > .modal-dialog > .modal-content,
.bp-popup-motion-open {
    transform-origin:center;
    animation:bp-popup-open .18s cubic-bezier(.18,.88,.28,1.08);
}
.modal.bp-popup-motion-modal:not(.in) > .modal-dialog > .modal-content,
.bp-popup-motion-closing {
    transform-origin:center;
    animation:bp-popup-close .12s ease-in forwards;
    pointer-events:none !important;
}
.bp-popup-motion-closing { visibility:visible !important; }
.modal-backdrop.fade { transition:opacity .1s ease; }
.popover.fade { transition:opacity .12s ease; }
.event-qr-scanner.bp-popup-motion-open,
.event-qr-scanner.bp-popup-motion-closing { animation:none; }
.event-qr-scanner.bp-popup-motion-open .event-qr-scanner-panel { animation:bp-popup-open .18s cubic-bezier(.18,.88,.28,1.08); }
.event-qr-scanner.bp-popup-motion-closing .event-qr-scanner-panel { animation:bp-popup-close .12s ease-in forwards; }
.lity { transition:opacity .12s ease !important; }
.lity .lity-content { transition:none !important; transform:scale(1) !important; }
.lity.lity-opened:not(.lity-loading) .lity-content {
    animation:bp-popup-open .18s cubic-bezier(.18,.88,.28,1.08);
}
.lity.lity-closed .lity-content { animation:bp-popup-close .12s ease-in forwards; }
[data-bp-popup-measuring] { scale:1 !important; }
@media (prefers-reduced-motion:reduce) {
    .modal.bp-popup-motion-modal.fade,
    .modal.bp-popup-motion-modal .modal-content,
    .modal-backdrop.fade,
    .lity, .lity .lity-content,
    .bp-popup-motion-open, .bp-popup-motion-closing,
    .popover, .event-qr-scanner .event-qr-scanner-panel {
        animation:none !important;
        transition:none !important;
    }
}
