/* Shared, bounded decorative handoff. No focus trap or authentication state. */
.zrelay-transition { position: fixed; inset: 0; z-index: 2147483000; display: grid; place-items: center; background: #1b1612; color: #f7f2e9; pointer-events: none; visibility: hidden; clip-path: inset(100% 0 0); font: 600 36px/1 system-ui, sans-serif; }
.zrelay-transition-brand { display: flex; align-items: center; gap: 14px; }
.zrelay-transition-brand svg { width: 40px; height: 40px; }
.zrelay-nav-cover .zrelay-transition-brand { animation: zrelay-brand 150ms ease both; }
@keyframes zrelay-brand { from { opacity: 0; } to { opacity: 1; } }
.zrelay-nav-cover .zrelay-transition { visibility: visible; pointer-events: auto; animation: zrelay-cover 340ms cubic-bezier(.76,0,.24,1) forwards, zrelay-expire 1ms 2s forwards; }
.zrelay-nav-arrive .zrelay-transition { visibility: visible; pointer-events: auto; clip-path: inset(0); animation: zrelay-expire 1ms 2s forwards; }
.zrelay-nav-reveal .zrelay-transition { animation: zrelay-reveal 380ms cubic-bezier(.76,0,.24,1) forwards, zrelay-expire 1ms 2s forwards; }
@keyframes zrelay-cover { from { clip-path: inset(100% 0 0); } to { clip-path: inset(0); } }
@keyframes zrelay-reveal { from { clip-path: inset(0); } to { clip-path: inset(0 0 100%); } }
@keyframes zrelay-expire { to { visibility: hidden; pointer-events: none; } }
@media (prefers-reduced-motion: reduce) { .zrelay-transition { display: none; } }
