/* Center every shared modal throughout entry and exit, including the game menu. */
.app-dialog:is([role="dialog"],[role="alertdialog"]) {
  inset: auto !important;
  top: 50% !important;
  left: 50% !important;
  right: auto !important;
  bottom: auto !important;
  margin: 0 !important;
  transform: translate(-50%, -50%) !important;
  transform-origin: center center;
  transition-property: opacity;
}
.app-dialog:is([role="dialog"],[role="alertdialog"])[data-state="open"] {
  animation: locus-modal-center-in 160ms ease-out both !important;
}
.app-dialog:is([role="dialog"],[role="alertdialog"])[data-state="closed"] {
  animation: locus-modal-center-out 120ms ease-in both !important;
}
@keyframes locus-modal-center-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes locus-modal-center-out { from { opacity: 1; } to { opacity: 0; } }
.app-dialog.locus-onboarding {
  display: flex;
  flex-direction: column;
  width: calc(100% - 2rem);
  max-width: 32rem;
  height: min(80dvh, 48rem);
  max-height: 85dvh;
  gap: 0;
  padding: 0;
  overflow: hidden;
  border-radius: 1rem;
}
.locus-onboarding > .dialog-close { display: none; }
.locus-object-dialog { transform-origin: center center; }
@media (prefers-reduced-motion: reduce) {
  .app-dialog:is([role="dialog"],[role="alertdialog"])[data-state] {
    animation-duration: 0.01ms !important;
    transition: none !important;
  }
  .locus-object-dialog { transform: none !important; }
}
