html.login-transition-active,
body.login-transition-active{
 overflow:hidden;
 overscroll-behavior:none;
}
.login-flow-screen{
 position:fixed;
 inset:0;
 z-index:9999;
 display:grid;
 place-items:center;
 width:100%;
 height:100dvh;
 min-height:100vh;
 box-sizing:border-box;
 padding:max(14px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));
 background:radial-gradient(circle at 50% 24%,#b99a5518,transparent 30%),linear-gradient(180deg,#0d131a 0%,#070a0e 100%);
 overflow:hidden;
}
.login-flow-screen .login-transition,
.login-flow-screen .welcome-sequence{
 width:100%;
 height:100%;
 min-height:0;
 box-sizing:border-box;
 align-content:center;
 justify-items:center;
 grid-auto-rows:max-content;
 border:0;
 box-shadow:none;
 background:transparent;
}
.login-transition,.welcome-sequence{display:grid;place-items:center;min-height:360px;padding:34px 24px;border:1px solid #323a45;background:linear-gradient(180deg,#111720,#0a0e13);box-shadow:inset 0 0 0 1px #171d25,0 22px 60px #0007;text-align:center;overflow:hidden}
.login-transition{animation:panelIn .55s cubic-bezier(.2,.7,.2,1) both}
.verify-row{width:min(100%,340px);margin:0 auto 12px;padding:13px 15px;border:1px solid #2d3743;background:#0f151c;color:#8f9aa5;font:12px var(--mono);letter-spacing:.09em;text-transform:uppercase;opacity:0;transform:translateY(10px);animation:rowIn .46s cubic-bezier(.2,.7,.2,1) forwards}
.verify-row:nth-child(1){animation-delay:.05s}
.verify-row:nth-child(2){animation-delay:.16s}
.verify-row:nth-child(3){animation-delay:.27s}
.verify-row:nth-child(4){animation-delay:.38s}
.verify-row.done{color:#c8d0d6;border-color:#44515f}
.verify-row.active{color:var(--gold-pale);border-color:#76643a;box-shadow:0 0 0 1px #433718 inset,0 0 20px #b99a5525;animation-name:rowIn,loginPulse;animation-duration:.46s,1.15s;animation-delay:.38s,.9s;animation-fill-mode:forwards,infinite}
.welcome-sequence{position:relative;gap:8px;isolation:isolate;animation:welcomePanel 3.3s cubic-bezier(.22,.68,.18,1) both}
.welcome-sequence:before{content:"";position:absolute;z-index:-2;inset:-20%;background:radial-gradient(circle at 50% 30%,#c8aa641f,transparent 30%),linear-gradient(115deg,transparent 35%,#ffffff05 50%,transparent 65%);animation:ambientDrift 3.3s ease both;pointer-events:none}
.welcome-sequence:after{content:"";position:absolute;z-index:5;inset:0;background:linear-gradient(90deg,transparent,#d9c58d16,transparent);transform:translateX(-110%);animation:finalSweep .8s 2.45s ease-in-out forwards;pointer-events:none}
.welcome-mark{display:grid;place-items:center;width:68px;height:68px;border:1px solid var(--gold);border-radius:50%;color:var(--gold-pale);font:500 34px var(--serif);box-shadow:0 0 32px #9d864133,inset 0 0 0 5px #10161d;opacity:0;transform:scale(.84);animation:markBloom .72s .08s cubic-bezier(.2,.75,.2,1) forwards}
.welcome-lead{color:#96a1ab;font:11px var(--mono);letter-spacing:.24em;text-transform:uppercase;opacity:0;transform:translateY(10px);animation:floatIn .55s .34s cubic-bezier(.2,.72,.2,1) forwards}
.welcome-name{margin:5px 0 0;font:600 clamp(31px,4.6vw,44px) var(--serif);letter-spacing:.09em;color:#f3eee4;text-shadow:0 8px 24px #000;opacity:0;transform:translateY(12px);animation:floatIn .62s .54s cubic-bezier(.2,.72,.2,1) forwards}
.welcome-suffix{margin:0;color:var(--gold-pale);font:14px var(--mono);letter-spacing:.34em;text-transform:uppercase;opacity:0;transform:translateY(8px);animation:floatIn .55s .76s cubic-bezier(.2,.72,.2,1) forwards}
.welcome-divider{width:100px;height:1px;margin:14px auto 5px;background:linear-gradient(90deg,transparent,var(--gold),transparent);transform:scaleX(0);animation:dividerGrow .62s .9s cubic-bezier(.2,.72,.2,1) forwards}
.welcome-detail{max-width:380px;margin:0;color:#9fa9b2;font-size:13px;line-height:1.85;opacity:0;transform:translateY(8px);animation:floatIn .55s 1.03s cubic-bezier(.2,.72,.2,1) forwards}
.welcome-progress{width:min(100%,240px);height:2px;margin-top:17px;background:#1b222a;overflow:hidden;opacity:0;animation:fadeOnly .4s 1.18s forwards}
.welcome-progress span{display:block;width:46%;height:100%;background:linear-gradient(90deg,transparent,var(--gold-pale),transparent);animation:scanMove 1.2s 1.18s linear infinite}
@keyframes panelIn{from{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:none}}
@keyframes rowIn{to{opacity:1;transform:none}}
@keyframes loginPulse{0%,100%{box-shadow:0 0 0 1px #433718 inset,0 0 12px #b99a5517}50%{box-shadow:0 0 0 1px #79663b inset,0 0 28px #b99a5533}}
@keyframes welcomePanel{0%{opacity:0;transform:translateY(12px) scale(.985)}12%,78%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-8px) scale(1.01)}}
@keyframes ambientDrift{from{transform:translateX(-4%) scale(1)}to{transform:translateX(4%) scale(1.05)}}
@keyframes floatIn{to{opacity:1;transform:none}}
@keyframes dividerGrow{to{transform:scaleX(1)}}
@keyframes markBloom{to{opacity:1;transform:scale(1)}}
@keyframes fadeOnly{to{opacity:1}}
@keyframes scanMove{0%{transform:translateX(-140%)}100%{transform:translateX(300%)}}
@keyframes finalSweep{to{transform:translateX(110%)}}
@media(prefers-reduced-motion:reduce){.login-transition,.welcome-sequence,.verify-row,.verify-row.active,.welcome-mark,.welcome-lead,.welcome-name,.welcome-suffix,.welcome-divider,.welcome-detail,.welcome-progress,.welcome-progress span,.welcome-sequence:before,.welcome-sequence:after{animation:none!important;opacity:1!important;transform:none!important}}