.registrant-login .auth-card{animation:portal-enter .65s cubic-bezier(.2,.75,.25,1) both}
.registrant-login .auth-visual img{animation:portal-photo 1.2s ease-out both}
.registrant-login .step-dots .active{animation:portal-step .65s ease-out both}
.registrant-login input[name="code"]{letter-spacing:.42em;font-size:22px;font-variant-numeric:tabular-nums;transition:box-shadow .2s,border-color .2s}
.registrant-login input[name="code"]:focus{box-shadow:0 0 0 5px #28616b14}
.access-orbit{position:relative;width:64px;height:64px;margin-bottom:22px;display:grid;place-items:center;color:#28616b}
.access-orbit b{display:grid;place-items:center;width:42px;height:42px;background:#eaf5f2;border-radius:14px;font-size:25px;font-weight:500;animation:portal-step .8s ease-out both}
.access-orbit span,.access-orbit i{position:absolute;inset:0;border:1px solid #28616b30;border-radius:50%;animation:portal-orbit 2s ease-out both}
.access-orbit i{inset:5px;border-style:dashed;animation-direction:reverse}
.access-orbit span:after{content:"";position:absolute;top:5px;left:8px;width:7px;height:7px;border-radius:50%;background:#409d89;box-shadow:0 0 12px #409d8950}
.is-verifying .access-orbit span,.is-verifying .access-orbit i{animation:portal-orbit 2s linear infinite}
.registrant-login .btn{transition:transform .18s,box-shadow .18s;display:flex;align-items:center;justify-content:center;gap:10px}
.registrant-login .btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #28616b22}
.registrant-login .btn:disabled{cursor:wait;opacity:.85}
.login-spinner{width:17px;height:17px;border:2px solid #ffffff55;border-top-color:#fff;border-radius:50%;animation:portal-orbit .75s linear infinite}
.login-progress{font-size:12px;color:#546863;margin:0;text-align:center}
.login-progress:empty{display:none}
.payment-success-page .result-card{position:relative;overflow:hidden;animation:portal-enter .7s cubic-bezier(.2,.75,.25,1) both}
.payment-success-page .success-seal{width:110px;height:110px;background:transparent;border:0;position:relative;z-index:1;animation:portal-step .8s cubic-bezier(.2,.8,.3,1) both}
.success-seal svg{width:100%;height:100%;overflow:visible}
.success-seal circle{fill:#eaf7ef;stroke:#2d9270;stroke-width:2;stroke-dasharray:271;stroke-dashoffset:0;animation:seal-circle .9s ease-out both}
.success-seal path{fill:none;stroke:#238764;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:70;stroke-dashoffset:0;animation:seal-check .55s .55s ease-out both}
.payment-success-page .eyebrow,.payment-success-page h1,.payment-success-page .receipt{position:relative;animation:portal-enter .65s .2s ease-out both}
.payment-celebration{position:absolute;inset:0;pointer-events:none}
.payment-celebration i{position:absolute;left:50%;top:95px;width:7px;height:12px;background:#3a9f83;border-radius:2px;opacity:0;--x:100px;--y:-70px;--r:120deg;animation:portal-confetti 1.9s .35s ease-out both}
.payment-celebration i:nth-child(2n){background:#c9a64d;width:6px;height:6px;border-radius:50%}
.payment-celebration i:nth-child(3n){background:#81b8ce}
.payment-celebration i:nth-child(1){--x:-180px;--y:-40px;--r:-190deg}
.payment-celebration i:nth-child(2){--x:-145px;--y:-85px;--r:240deg}
.payment-celebration i:nth-child(3){--x:-105px;--y:-110px;--r:-80deg}
.payment-celebration i:nth-child(4){--x:-60px;--y:-125px;--r:150deg}
.payment-celebration i:nth-child(5){--x:30px;--y:-115px;--r:-210deg}
.payment-celebration i:nth-child(6){--x:95px;--y:-105px;--r:180deg}
.payment-celebration i:nth-child(7){--x:145px;--y:-75px;--r:-120deg}
.payment-celebration i:nth-child(8){--x:180px;--y:-20px;--r:270deg}
.payment-celebration i:nth-child(9){--x:170px;--y:45px;--r:-240deg}
.payment-celebration i:nth-child(10){--x:-175px;--y:45px;--r:300deg}
.payment-celebration i:nth-child(11){--x:120px;--y:70px;--r:210deg}
.payment-celebration i:nth-child(12){--x:-120px;--y:75px;--r:-180deg}
@keyframes portal-enter{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes portal-photo{from{opacity:.4;transform:scale(1.035)}to{opacity:1;transform:scale(1)}}
@keyframes portal-step{from{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}
@keyframes portal-orbit{to{transform:rotate(360deg)}}
@keyframes seal-circle{from{stroke-dashoffset:271}to{stroke-dashoffset:0}}
@keyframes seal-check{from{stroke-dashoffset:70}to{stroke-dashoffset:0}}
@keyframes portal-confetti{0%{opacity:0;transform:translate(0,0) rotate(0)}15%{opacity:1}60%{opacity:.85;transform:translate(var(--x),var(--y)) rotate(var(--r))}100%{opacity:0;transform:translate(var(--x),calc(var(--y) + 85px)) rotate(var(--r))}}
@media(prefers-reduced-motion:reduce){.registrant-login *,.payment-success-page *{animation:none!important;transition:none!important}.payment-celebration{display:none}}
