.login-page{z-index:10;pointer-events:none;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.login-card{pointer-events:auto;z-index:1;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:#000000a6;border:1px solid #ffffff14;border-radius:28px;width:100%;max-width:480px;padding:42px 40px 40px;transition:border-color 1s ease-out,box-shadow .6s cubic-bezier(.22,1,.36,1);animation:.85s forwards cardReveal,.6s forwards borderReveal;position:relative;box-shadow:0 20px 80px #00000073}@keyframes borderReveal{to{border-color:#ffffff14}}@keyframes blurReveal{0%{-webkit-backdrop-filter:blur();backdrop-filter:blur()}to{-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}}@keyframes cardReveal{0%{opacity:0;transform:translateY(16px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.login-avatar{justify-content:center;margin-bottom:24px;display:flex}.login-avatar img{border-radius:50%;animation:.9s .18s forwards avatarGlow;box-shadow:0 0 #03b5fc00}@keyframes avatarGlow{0%{box-shadow:0 0 #03b5fc00}to{box-shadow:0 0 18px #03b5fc59,0 0 40px #03b5fc2e,0 0 70px #03b5fc14}}.login-title{color:#fff;text-align:center;margin:0;font-size:clamp(2rem,8vw,38px);font-weight:700}.login-subtitle{color:#fff;text-align:center;margin-top:12px;font-size:clamp(1.5rem,5vw,18px);font-weight:600}.login-description{color:#ffffffb8;text-align:center;margin-top:18px;font-size:15px;line-height:1.7}.password-section{margin-top:38px}.password-label{color:#fff;margin-bottom:10px;font-size:14px;font-weight:600;display:block}.password-wrapper{position:relative}.password-input{color:#fff;background:#ffffff0d;border:1px solid #ffffff14;border-radius:14px;outline:none;width:100%;padding:15px 52px 15px 18px;font-size:15px;transition:border-color .25s cubic-bezier(.22,1,.36,1),box-shadow .25s cubic-bezier(.22,1,.36,1),background .25s}.password-input::placeholder{color:#ffffff59}.password-input:focus{border-color:#03b5fc;box-shadow:0 0 0 4px #03b5fc1f}.password-input-error,.password-input-error:focus{border-color:#ef4444;box-shadow:0 0 0 4px #ef44441f}.password-input-rate-limited,.password-input-rate-limited:focus{border-color:#f59e0b;box-shadow:0 0 0 4px #f59e0b1f}.password-input-error+.password-toggle{color:#ef4444}.password-input-rate-limited+.password-toggle,.password-error.password-warning{color:#f59e0b}.password-toggle{color:#ffffff8c;cursor:pointer;background:0 0;border:none;align-items:center;transition:color .25s,transform .25s;display:flex;position:absolute;top:50%;right:16px;transform:translateY(-50%)}.password-toggle:hover{color:#fff}@keyframes loginFadeUp{0%{opacity:0;transform:translateY(18px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.animate-item{opacity:0;animation:1s cubic-bezier(.22,1,.36,1) forwards loginFadeUp}.login-avatar{animation-delay:50ms}.login-title{animation-delay:.13s}.login-subtitle{animation-delay:.21s}.login-description{animation-delay:.29s}.password-section{animation-delay:.37s}.unlock-button{cursor:pointer;color:#000;background:linear-gradient(#38ccff 0%,#14bfff 45%,#03b5fc 100%);border:none;border-radius:14px;justify-content:center;align-items:center;gap:8px;width:100%;height:52px;margin-top:24px;font-size:15px;font-weight:700;transition:transform .25s,box-shadow .25s,gap .25s,background .25s,color .25s,all .25s;animation-delay:.45s;display:flex}.unlock-button.pressed{transform:scale(.975);box-shadow:0 3px 10px #03b5fc2e}.unlock-button:hover{gap:14px;transform:translateY(-2px);box-shadow:0 4px 20px #03b5fc59}.unlock-button:active{transform:scale(.98)}.unlock-arrow{transition:transform .25s}.unlock-button:hover .unlock-arrow{transform:translate(4px)}.login-footer{text-align:center;color:#ffffff59;letter-spacing:.08em;margin-top:26px;font-size:12px}.unlock-button:disabled{cursor:wait;opacity:.9}.spinner{border:2px solid #0003;border-top-color:#000;border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.success-check{font-size:18px;font-weight:700}.unlock-button.success{background:linear-gradient(#40d97c,#26c163)}@keyframes loginShake{0%{transform:translate(0)}15%{transform:translate(-10px)}30%{transform:translate(10px)}45%{transform:translate(-7px)}60%{transform:translate(7px)}75%{transform:translate(-4px)}90%{transform:translate(4px)}to{transform:translate(0)}}.login-card-wrapper{width:100%;max-width:480px}.login-card-shake{animation:.45s cubic-bezier(.36,.07,.19,.97) loginShake}.password-error{color:#ef4444;opacity:0;height:20px;margin-top:10px;font-size:14px;font-weight:500;transition:opacity .2s,transform .2s;transform:translateY(-4px)}.password-error.visible{opacity:1;transform:translateY(0)}.password-toggle:focus-visible{border-radius:8px;outline:none;box-shadow:0 0 0 3px #03b5fc40}.unlock-button:focus-visible{outline:none;box-shadow:0 0 0 4px #03b5fc33}@keyframes fadeError{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.login-card-denied{border-color:#ef4444;box-shadow:0 0 0 1px #ef44448c,0 0 28px #ef44442e,0 20px 80px #00000073}.login-card-rate-limited{border-color:#f59e0b;box-shadow:0 0 0 1px #f59e0b8c,0 0 28px #f59e0b2e,0 20px 80px #00000073}.unlock-button.denied{background:linear-gradient(#ef4444,#dc2626)}.unlock-button.rate-limited{background:linear-gradient(#f59e0b,#d97706)}.unlock-button.rate-limited:hover{box-shadow:none;gap:8px;transform:none}.login-card-initializing{opacity:0;pointer-events:none}.login-card-initialized{opacity:1}.login-security-note{text-align:center;color:#ffffff59;letter-spacing:.03em;margin-top:12px;font-size:12px;line-height:1.6}@media (max-width:768px){.login-page{background:#0000001f;justify-content:center;align-items:center;padding:16px;overflow-y:auto}.login-card{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffff0d;border-radius:22px;padding:24px 22px 20px}.login-avatar{margin-bottom:14px}.login-avatar img{width:76px;height:76px}.login-title{word-break:break-word;font-size:clamp(2rem,9vw,38px);line-height:1}.login-subtitle{margin-top:8px;font-size:clamp(1.5rem,6vw,22px);line-height:1.25}.login-description{margin-top:12px;font-size:15px;line-height:1.6}.password-section{margin-top:28px}.password-label{margin-bottom:8px}.password-input{height:56px;padding:15px 52px 15px 16px;font-size:16px}.password-toggle{right:14px}.unlock-button{height:56px;margin-top:20px;font-size:17px}.login-footer{margin-top:22px;font-size:11px;line-height:1.5}.login-security-note{margin-top:8px;font-size:10px;line-height:1.5}.password-error{min-height:18px;font-size:13px}}
