.sso-stage{position:relative;display:grid;place-items:center;width:168px;height:168px;margin:0 auto}.sso-ring{position:absolute;inset:0;margin:auto;width:96px;height:96px;border-radius:9999px;border:2px solid currentColor;opacity:0;animation:sso-ring 2.6s ease-out infinite}.sso-ring:nth-child(2){animation-delay:.9s}.sso-ring:nth-child(3){animation-delay:1.8s}@keyframes sso-ring{0%{transform:scale(.55);opacity:.55}to{transform:scale(1.9);opacity:0}}.sso-glow{position:absolute;inset:0;margin:auto;width:110px;height:110px;border-radius:9999px;background:radial-gradient(circle,currentColor 0%,transparent 68%);opacity:.14;filter:blur(6px);animation:sso-pulse 2s ease-in-out infinite}@keyframes sso-pulse{0%,to{transform:scale(.9);opacity:.1}50%{transform:scale(1.08);opacity:.22}}.sso-lock{position:relative;width:96px;height:96px;animation:sso-bob 2.4s ease-in-out infinite}@keyframes sso-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.sso-lock svg{width:100%;height:100%;display:block}.sso-shackle{transform-box:fill-box;transform-origin:88% 100%;transition:transform .7s cubic-bezier(.34,1.56,.5,1)}.sso-stage.is-success .sso-shackle{transform:rotate(26deg) translateY(-2px)}.sso-key{position:absolute;left:50%;top:58%;width:56px;margin-left:-28px;color:#fde68a;transform-origin:84% 50%;animation:sso-turn 1.8s ease-in-out infinite;filter:drop-shadow(0 1px 2px rgba(0,0,0,.25))}@keyframes sso-turn{0%,to{transform:rotate(-14deg)}50%{transform:rotate(20deg)}}.sso-stage.is-success .sso-key,.sso-stage.is-error .sso-key{display:none}.sso-stage.is-success .sso-lock{animation:sso-pop .6s ease forwards}@keyframes sso-pop{0%{transform:scale(1)}40%{transform:scale(1.12)}to{transform:scale(1)}}.sso-stage.is-error .sso-lock{animation:sso-shake .5s ease}@keyframes sso-shake{10%,90%{transform:translate(-2px)}20%,80%{transform:translate(3px)}30%,50%,70%{transform:translate(-6px)}40%,60%{transform:translate(6px)}}.sso-particle{position:absolute;border-radius:9999px;background:currentColor;opacity:.25;animation:sso-float 7s ease-in-out infinite}@keyframes sso-float{0%,to{transform:translateY(0);opacity:.12}50%{transform:translateY(-22px);opacity:.35}}@media(prefers-reduced-motion:reduce){.sso-ring,.sso-glow,.sso-lock,.sso-key,.sso-particle{animation:none}}
