.code-rain{z-index:1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.code-col{will-change:transform;flex-direction:column;animation:linear infinite rain-fall;display:flex;position:absolute;top:-100%}@keyframes rain-fall{0%{transform:translateY(-100%)}to{transform:translateY(200vh)}}.code-char{color:#00d4ff;text-shadow:0 0 6px #00d4ffcc;white-space:nowrap;font-family:JetBrains Mono,Fira Code,Courier New,monospace;font-size:11px;font-weight:500;line-height:1.4;display:block}
.login-page{background:#000;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:6rem 2rem 3rem;font-family:Montserrat,sans-serif;display:flex;position:relative;overflow:hidden}.login-page:before{content:"";pointer-events:none;z-index:1;filter:blur(80px);background:radial-gradient(circle,#00d4ff14 0%,#0000 70%);width:600px;height:600px;animation:15s ease-in-out infinite alternate float-slow;position:absolute;top:30%;left:20%}.login-page:after{content:"";pointer-events:none;z-index:1;filter:blur(90px);background:radial-gradient(circle,#6366f10f 0%,#0000 70%);width:500px;height:500px;animation:18s ease-in-out infinite alternate-reverse float-slow;position:absolute;bottom:20%;right:15%}@keyframes float-slow{0%{transform:translate(0)scale(1)}to{transform:translate(40px,30px)scale(1.1)}}.login-container{z-index:10;width:100%;max-width:460px;position:relative}.login-card{-webkit-backdrop-filter:blur(28px)saturate(180%);background:#0a0f1e8c;border:1px solid #ffffff12;border-radius:24px;padding:3.5rem 3rem;transition:all .4s cubic-bezier(.16,1,.3,1);box-shadow:0 30px 60px #000000b3,0 0 50px #00d4ff0a,inset 0 0 40px #00000080}.login-card:hover{border-color:#00d4ff33;box-shadow:0 35px 70px #000c,0 0 60px #00d4ff14,inset 0 0 45px #0009}.login-header{text-align:center;margin-bottom:3rem}.login-header h1{letter-spacing:-.03em;background:linear-gradient(#fff 30%,#a3a3a3 100%);-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 15px #ffffff1a);-webkit-background-clip:text;background-clip:text;margin-bottom:.75rem;font-size:2.25rem;font-weight:800}.login-header p{color:#ffffff73;letter-spacing:.01em;font-size:.9rem;font-weight:500}.auth-form{flex-direction:column;gap:1.75rem;display:flex}.form-group{flex-direction:column;gap:.55rem;display:flex}.form-group label{text-transform:uppercase;letter-spacing:.15em;color:#fff6;margin-left:.5rem;font-size:.7rem;font-weight:700}.input-wrapper{align-items:center;display:flex;position:relative}.input-wrapper svg{color:#ffffff40;transition:color .3s,transform .3s;position:absolute;left:1.25rem}.input-wrapper input{color:#fff;background:#ffffff05;border:1px solid #ffffff14;border-radius:14px;width:100%;padding:1.1rem 1.25rem 1.1rem 3.25rem;font-family:JetBrains Mono,monospace;font-size:.95rem;transition:all .3s}.input-wrapper input:focus{background:#ffffff0a;border-color:#00d4ff66;outline:none;box-shadow:0 0 0 1px #00d4ff66,0 0 15px #00d4ff1a}.input-wrapper input:focus+svg{color:#00d4ff;transform:scale(1.05)}.swipe-login-container{width:100%;margin-top:1rem}.swipe-track{-webkit-backdrop-filter:blur(10px);background:#ffffff08;border:1px solid #ffffff12;border-radius:100px;align-items:center;height:62px;padding:5px;transition:border-color .3s,background-color .3s;display:flex;position:relative;overflow:hidden}.swipe-track.track-success{background:#10b98114;border-color:#10b98173}.swipe-track.track-error{background:#ef444414;border-color:#ef444473}.swipe-fill{pointer-events:none;background:linear-gradient(90deg,#00d4ff2e,#00d4ff0d);border-radius:100px;position:absolute;top:5px;bottom:5px;left:5px}.swipe-label{letter-spacing:.08em;text-transform:uppercase;color:#ffffff73;pointer-events:none;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:7px;padding-left:26px;font-size:.82rem;font-weight:700;transition:opacity .2s;display:flex;position:absolute;inset:0}.chevron-bounce{opacity:.7;color:#00d4ff;animation:1.8s ease-in-out infinite bounceRight}@keyframes bounceRight{0%,to{transform:translate(0)}50%{transform:translate(5px)}}.swipe-handle{color:#fff;cursor:grab;touch-action:none;z-index:10;background:linear-gradient(135deg,#0050ff 0%,#00b4ff 100%);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;display:flex;position:relative;box-shadow:0 0 0 2px #00d4ff40,0 4px 20px #00d4ff66}.swipe-handle:active{cursor:grabbing}.swipe-handle.handle-success{cursor:default;background:linear-gradient(135deg,#059669 0%,#10b981 100%);box-shadow:0 0 0 2px #10b9814d,0 4px 24px #10b98180}.swipe-handle.handle-error{cursor:default;background:linear-gradient(135deg,#dc2626 0%,#ef4444 100%);box-shadow:0 0 0 2px #ef44444d,0 4px 20px #ef444480}.handle-spinner{border:2.5px solid #ffffff40;border-top-color:#fff;border-radius:50%;width:20px;height:20px;animation:.7s linear infinite spin;display:block}.swipe-spinner{border:2px solid #fff3;border-top-color:#ffffffb3;border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.7s linear infinite spin;display:inline-block}.auth-footer{text-align:center;color:#fff6;margin-top:2.5rem;font-size:.85rem}.auth-footer a{color:#00d4ff;margin-left:.5rem;font-weight:700;text-decoration:none;transition:color .2s}.auth-footer a:hover{color:#fff;text-decoration:underline}.error-message{color:#f87171;background:#ef444414;border:1px solid #ef444440;border-radius:14px;align-items:center;gap:.75rem;padding:1.1rem;font-size:.85rem;display:flex;box-shadow:0 10px 25px #ef44440d}.success-message{color:#34d399;text-align:center;background:#10b98114;border:1px solid #10b98140;border-radius:14px;flex-direction:column;gap:.5rem;margin-bottom:2.5rem;padding:1.25rem;font-size:.85rem;display:flex;box-shadow:0 10px 25px #10b9810d}.success-message strong{color:#fff;font-size:.95rem;display:block}.verification-note{color:#ffffff4d;text-align:center;border-top:1px solid #ffffff0d;margin-top:2rem;padding-top:2rem;font-size:.78rem;line-height:1.6}@keyframes spin{to{transform:rotate(360deg)}}.spinner{border:2px solid #ffffff1a;border-top-color:#00d4ff;border-radius:50%;width:24px;height:24px;animation:.8s linear infinite spin}.animate-shake{animation:.5s cubic-bezier(.36,.07,.19,.97) both shake}@keyframes shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-4px)}40%,60%{transform:translate(4px)}}
