
/* =========================================================
   ShoreBuild V83 — GLOBAL POPUP OPEN/CLOSE MOTION
   Uses discrete display transitions so existing popup JS does
   not need to be rewritten just to animate closing.
========================================================= */

:where(
  .build-popup,
  .addon-popup,
  .sub-popup,
  .discord-login-popup,
  .building-process-popup,
  .feature-disabler-popup,
  .pwa-install-modal,
  .shore-discord-invite-popup,
  .customer-order-popup,
  .customer-reminder-modal,
  .order-participant-profile-modal,
  .admin-popup,
  .admin-user-popup,
  .interactive-preview-modal,
  .tutorial-preview-modal,
  .leave-shulker-modal,
  .shulker-enchant-modal,
  .shulker-quantity-modal,
  .stock-purchase-modal,
  .mineouts-modal,
  .spawner-selection-modal,
  .buildbucks-modal,
  .owned-item-popup,
  .name-appearance-popup,
  .buildnitro-perks-popup,
  .maintenance-game-popup,
  .future-search-popup,
  .buildnitro-popup,
  .marketplace-detail-popup
) {
  opacity: 0;
  visibility: hidden;
  transition:
    opacity .20s ease,
    visibility .20s ease,
    display .20s allow-discrete;
  transition-behavior: allow-discrete;
}

/* Existing open states */
:where(
  .build-popup.show,
  .addon-popup.show,
  .sub-popup.show,
  .discord-login-popup.show,
  .building-process-popup.show,
  .feature-disabler-popup.show,
  .pwa-install-modal.show,
  .shore-discord-invite-popup.show,
  .customer-order-popup.show,
  .customer-reminder-modal.show,
  .order-participant-profile-modal.show,
  .admin-popup.show,
  .admin-user-popup.show,
  .interactive-preview-modal.show,
  .tutorial-preview-modal.show,
  .leave-shulker-modal.show,
  .shulker-enchant-modal.show,
  .shulker-quantity-modal.show,
  .stock-purchase-modal.show,
  .mineouts-modal.show,
  .spawner-selection-modal.show,
  .buildbucks-modal.show,
  .owned-item-popup.show,
  .name-appearance-popup.show,
  .buildnitro-perks-popup.show,
  .maintenance-game-popup.show,
  .future-search-popup.show,
  .buildnitro-popup.show,
  .marketplace-detail-popup.show
),
:where(
  .build-popup:not([hidden]),
  .addon-popup:not([hidden]),
  .sub-popup:not([hidden]),
  .discord-login-popup:not([hidden]),
  .building-process-popup:not([hidden]),
  .feature-disabler-popup:not([hidden]),
  .pwa-install-modal:not([hidden]),
  .shore-discord-invite-popup:not([hidden]),
  .customer-order-popup:not([hidden]),
  .customer-reminder-modal:not([hidden]),
  .order-participant-profile-modal:not([hidden]),
  .admin-popup:not([hidden]),
  .admin-user-popup:not([hidden]),
  .interactive-preview-modal:not([hidden]),
  .tutorial-preview-modal:not([hidden]),
  .leave-shulker-modal:not([hidden]),
  .shulker-enchant-modal:not([hidden]),
  .shulker-quantity-modal:not([hidden]),
  .stock-purchase-modal:not([hidden]),
  .mineouts-modal:not([hidden]),
  .spawner-selection-modal:not([hidden]),
  .buildbucks-modal:not([hidden]),
  .owned-item-popup:not([hidden]),
  .name-appearance-popup:not([hidden]),
  .buildnitro-perks-popup:not([hidden]),
  .maintenance-game-popup:not([hidden]),
  .future-search-popup:not([hidden]),
  .buildnitro-popup:not([hidden]),
  .marketplace-detail-popup:not([hidden])
) {
  opacity: 1;
  visibility: visible;
}

/* Opening scale for the actual dialog/card */
:where(
  .popup-content,
  .addon-popup-content,
  .sub-popup-content,
  .discord-login-popup-content,
  .building-process-card,
  .feature-disabler-card,
  .pwa-install-modal-card,
  .shore-discord-invite-card,
  .customer-order-card,
  .customer-reminder-card,
  .order-participant-profile-card,
  .admin-popup-content,
  .admin-user-popup-card,
  .interactive-preview-modal-card,
  .tutorial-preview-modal-card,
  .leave-shulker-modal-card,
  .shulker-enchant-modal-card,
  .shulker-quantity-modal-card,
  .stock-purchase-modal-card,
  .buildbucks-modal-card,
  .owned-item-popup-card,
  .name-appearance-popup-card,
  .buildnitro-perks-popup-card,
  .maintenance-game-popup-card,
  .future-search-card,
  .buildnitro-popup-card,
  .marketplace-detail-card
) {
  transform: translateY(10px) scale(.975);
  transition: transform .22s cubic-bezier(.2,.85,.25,1);
}

:where(
  .show > .popup-content,
  .show > .addon-popup-content,
  .show > .sub-popup-content,
  .show > .discord-login-popup-content,
  .show > .building-process-card,
  .show > .feature-disabler-card,
  .show > .pwa-install-modal-card,
  .show > .shore-discord-invite-card,
  .show > .customer-order-card,
  .show > .customer-reminder-card,
  .show > .order-participant-profile-card,
  .show > .admin-popup-content,
  .show > .admin-user-popup-card,
  .show > .interactive-preview-modal-card,
  .show > .tutorial-preview-modal-card,
  .show > .leave-shulker-modal-card,
  .show > .shulker-enchant-modal-card,
  .show > .shulker-quantity-modal-card,
  .show > .stock-purchase-modal-card,
  .show > .buildbucks-modal-card,
  .show > .owned-item-popup-card,
  .show > .name-appearance-popup-card,
  .show > .buildnitro-perks-popup-card,
  .show > .maintenance-game-popup-card,
  .show > .future-search-card,
  .show > .buildnitro-popup-card,
  .show > .marketplace-detail-card
) {
  transform: translateY(0) scale(1);
}

@starting-style {
  :where(
    .build-popup.show,
    .addon-popup.show,
    .sub-popup.show,
    .discord-login-popup.show,
    .building-process-popup.show,
    .feature-disabler-popup.show,
    .pwa-install-modal.show,
    .shore-discord-invite-popup.show,
    .customer-order-popup.show,
    .customer-reminder-modal.show,
    .order-participant-profile-modal.show,
    .admin-popup.show,
    .admin-user-popup.show,
    .interactive-preview-modal.show,
    .tutorial-preview-modal.show,
    .leave-shulker-modal.show,
    .shulker-enchant-modal.show,
    .shulker-quantity-modal.show,
    .stock-purchase-modal.show,
    .mineouts-modal.show,
    .spawner-selection-modal.show,
    .buildbucks-modal.show,
    .owned-item-popup.show,
    .name-appearance-popup.show,
    .buildnitro-perks-popup.show,
    .maintenance-game-popup.show,
    .future-search-popup.show,
    .buildnitro-popup.show,
    .marketplace-detail-popup.show
  ) {
    opacity: 0;
  }
}

/* Respect reduced-motion settings. */
@media (prefers-reduced-motion: reduce) {
  :where(
    .build-popup,
    .addon-popup,
    .sub-popup,
    .discord-login-popup,
    .building-process-popup,
    .feature-disabler-popup,
    .pwa-install-modal,
    .shore-discord-invite-popup,
    .customer-order-popup,
    .customer-reminder-modal,
    .order-participant-profile-modal,
    .admin-popup,
    .admin-user-popup,
    .interactive-preview-modal,
    .tutorial-preview-modal,
    .leave-shulker-modal,
    .shulker-enchant-modal,
    .shulker-quantity-modal,
    .stock-purchase-modal,
    .mineouts-modal,
    .spawner-selection-modal,
    .buildbucks-modal,
    .owned-item-popup,
    .name-appearance-popup,
    .buildnitro-perks-popup,
    .maintenance-game-popup,
    .future-search-popup,
    .buildnitro-popup,
    .marketplace-detail-popup
  ) {
    transition-duration: .01ms !important;
  }
}
