/* Shared native-dialog entrance and exit, including the scrim. */
.arcade-dialog { transform-origin: 50% 80%; }
.arcade-dialog[data-motion="opening"] { animation: arcade-dialog-in 320ms cubic-bezier(.16,1,.3,1) both; }
.arcade-dialog[data-motion="closing"] { animation: arcade-dialog-out 180ms cubic-bezier(.4,0,1,1) both; pointer-events: none; }
.arcade-dialog[data-motion="opening"]::backdrop { animation: arcade-scrim-in 240ms ease-out both; }
.arcade-dialog[data-motion="closing"]::backdrop { animation: arcade-scrim-out 180ms ease-in both; }
@keyframes arcade-dialog-in { from { opacity: 0; transform: translateY(28px) scale(.96); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes arcade-dialog-out { from { opacity: 1; transform: translateY(0) scale(1); } to { opacity: 0; transform: translateY(18px) scale(.97); } }
@keyframes arcade-scrim-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes arcade-scrim-out { from { opacity: 1; } to { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .arcade-dialog[data-motion], .arcade-dialog[data-motion]::backdrop { animation: none; } }
