/* Shared motion language. Never used to gate navigation or network requests. */
@view-transition { navigation:auto; }
::view-transition-group(root) { animation-duration:280ms; animation-timing-function:cubic-bezier(.22,.72,.2,1); }
::view-transition-old(root) { animation:flow-document-out 150ms ease-out both; }
::view-transition-new(root) { animation:flow-document-in 280ms 40ms cubic-bezier(.22,.72,.2,1) both; }
@keyframes flow-document-out { to { opacity:0;filter:blur(2px); } }
@keyframes flow-document-in { from { opacity:0;filter:blur(2px); } to { opacity:1;filter:blur(0); } }
[data-flow-focus]:focus { outline:none;box-shadow:none; }
.flow-snapshot,.flow-snapshot * { pointer-events:none!important;user-select:none!important; }
.login-page button,.guest-page button { -webkit-tap-highlight-color:transparent;transition:background-color 160ms,border-color 160ms,color 160ms,box-shadow 160ms,opacity 160ms,transform 140ms; }
.login-page button:active:not(:disabled),.guest-page:not(.is-menu) button:active:not(:disabled) { transform:translateY(1px); }
button.is-pending { position:relative;cursor:progress!important; }
button.is-pending::after { content:'';position:absolute;right:16px;top:50%;width:13px;height:13px;margin-top:-7px;border:1.5px solid currentColor;border-right-color:transparent;border-radius:50%;animation:flow-pending-spin 700ms linear infinite;pointer-events:none; }
.guest-entry-button.is-pending::after { top:auto;bottom:25px;right:22px;width:17px;height:17px; }
.guest-entry-button.is-pending .order-arrow { opacity:0; }
.flow-loading { display:flex;align-items:center;gap:12px;min-height:180px;color:#c2d5af;font-size:14px; }
.flow-loading::before { content:'';width:16px;height:16px;border:1.5px solid currentColor;border-right-color:transparent;border-radius:50%;animation:flow-pending-spin 700ms linear infinite; }
@keyframes flow-pending-spin { to { transform:rotate(360deg); } }
@media(prefers-reduced-motion:reduce) {
 ::view-transition-group(root) { animation-duration:130ms; }
 ::view-transition-old(root) { animation:flow-dissolve-out 90ms linear both; }
 ::view-transition-new(root) { animation:flow-dissolve-in 130ms linear both; }
 .login-page *, .login-page *::before, .login-page *::after, .guest-page *, .guest-page *::before, .guest-page *::after { animation:none!important;transition:none!important;scroll-behavior:auto!important; }
 .login-page button:active:not(:disabled),.guest-page button:active:not(:disabled) { transform:none!important; }
 button.is-pending::after,.flow-loading::before { border-right-color:currentColor;border-style:dotted; }
}
@keyframes flow-dissolve-out { to { opacity:0; } }
@keyframes flow-dissolve-in { from { opacity:0; } to { opacity:1; } }
