.login-layout{grid-template-columns:1fr 1fr;min-height:100vh;display:grid}@media (width<=860px){.login-layout{grid-template-columns:1fr}.login-visual{display:none}}.login-visual{background:var(--surface);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.mesh-bg{background:radial-gradient(ellipse 80% 60% at 20% 80%, color-mix(in oklch, var(--accent) 8%, transparent), transparent), radial-gradient(ellipse 60% 80% at 80% 20%, color-mix(in oklch, var(--accent) 6%, transparent), transparent), radial-gradient(ellipse 50% 50% at 50% 50%, color-mix(in oklch, var(--accent) 3%, transparent), transparent);will-change:transform;background-color:#030710;position:absolute;inset:0}.shapes-container{position:absolute;inset:0;overflow:hidden}.geo-shape{border:1.5px solid color-mix(in oklch, var(--accent) 40%, transparent);will-change:transform;opacity:0;transition:box-shadow .4s,border-color .4s;animation:1.5s ease-out forwards shapeAppear;position:absolute}.geo-shape.near-cursor{border-color:color-mix(in oklch, var(--accent) 80%, transparent);box-shadow:0 0 20px color-mix(in oklch, var(--accent) 30%, transparent), inset 0 0 10px color-mix(in oklch, var(--accent) 10%, transparent)}.geo-shape:first-child{border-radius:50%;width:80px;height:80px;animation-name:shapeAppear,shapeFloat;animation-duration:1.5s,6s;animation-timing-function:ease-out,ease-in-out;animation-iteration-count:1,infinite;animation-delay:.2s,1.7s;animation-fill-mode:forwards,none;top:12%;left:55%}.geo-shape:nth-child(2){width:50px;height:50px;animation-name:shapeAppear,shapeSpin;animation-duration:1.5s,12s;animation-timing-function:ease-out,linear;animation-iteration-count:1,infinite;animation-delay:.4s,1.9s;animation-fill-mode:forwards,none;top:55%;left:65%}.geo-shape:nth-child(3){border-color:color-mix(in oklch, var(--accent) 25%, transparent);border-radius:50%;width:110px;height:110px;animation-name:shapeAppear,shapePulse;animation-duration:1.5s,4s;animation-timing-function:ease-out,ease-in-out;animation-iteration-count:1,infinite;animation-delay:.6s,2.1s;animation-fill-mode:forwards,none;top:72%;left:20%}.geo-shape:nth-child(4){border-color:color-mix(in oklch, var(--success) 30%, transparent);width:45px;height:45px;animation-name:shapeAppear,shapeFloat;animation-duration:1.5s,7s;animation-timing-function:ease-out,ease-in-out;animation-iteration-count:1,infinite;animation-delay:.3s,1.8s;animation-fill-mode:forwards,none;top:20%;left:75%;transform:rotate(45deg)}.geo-shape:nth-child(5){border-color:color-mix(in oklch, var(--accent) 20%, transparent);border-radius:50%;width:130px;height:130px;animation-name:shapeAppear,shapePulse;animation-duration:1.5s,5s;animation-timing-function:ease-out,ease-in-out;animation-iteration-count:1,infinite;animation-delay:.5s,2s;animation-fill-mode:forwards,none;top:35%;left:45%}.geo-shape:nth-child(6){width:35px;height:35px;animation-name:shapeAppear,shapeSpin;animation-duration:1.5s,15s;animation-timing-function:ease-out,linear;animation-iteration-count:1,infinite;animation-delay:.7s,2.2s;animation-fill-mode:forwards,none;top:85%;left:70%}.geo-shape:nth-child(7){border-color:color-mix(in oklch, var(--accent) 35%, transparent);border-radius:50%;width:65px;height:65px;animation-name:shapeAppear,shapeFloat;animation-duration:1.5s,8s;animation-timing-function:ease-out,ease-in-out;animation-iteration-count:1,infinite;animation-delay:.8s,2.3s;animation-fill-mode:forwards,none;top:8%;left:35%}.geo-shape:nth-child(8){border-color:color-mix(in oklch, var(--success) 25%, transparent);width:55px;height:55px;animation-name:shapeAppear,shapeFloat;animation-duration:1.5s,9s;animation-timing-function:ease-out,ease-in-out;animation-iteration-count:1,infinite;animation-delay:.9s,2.4s;animation-fill-mode:forwards,none;top:45%;left:80%;transform:rotate(30deg)}.geo-shape:nth-child(9){border-color:color-mix(in oklch, var(--accent) 50%, transparent);border-radius:50%;width:25px;height:25px;animation-name:shapeAppear,shapePulse;animation-duration:1.5s,3s;animation-timing-function:ease-out,ease-in-out;animation-iteration-count:1,infinite;animation-delay:1s,2.5s;animation-fill-mode:forwards,none;top:30%;left:88%}.geo-shape:nth-child(10){border-color:color-mix(in oklch, var(--accent) 20%, transparent);width:90px;height:90px;animation-name:shapeAppear,shapeSpin;animation-duration:1.5s,20s;animation-timing-function:ease-out,linear;animation-iteration-count:1,infinite;animation-delay:1.1s,2.6s;animation-fill-mode:forwards,none;top:60%;left:35%;transform:rotate(15deg)}.geo-shape:nth-child(11){border-color:color-mix(in oklch, var(--success) 35%, transparent);border-radius:50%;width:40px;height:40px;animation-name:shapeAppear,shapeFloat;animation-duration:1.5s,5.5s;animation-timing-function:ease-out,ease-in-out;animation-iteration-count:1,infinite;animation-delay:1.2s,2.7s;animation-fill-mode:forwards,none;top:90%;left:45%}.geo-shape:nth-child(12){border-color:color-mix(in oklch, var(--accent) 30%, transparent);width:70px;height:70px;animation-name:shapeAppear,shapeSpin;animation-duration:1.5s,18s;animation-timing-function:ease-out,linear;animation-iteration-count:1,infinite;animation-delay:1.3s,2.8s;animation-fill-mode:forwards,none;top:5%;left:85%;transform:rotate(60deg)}@keyframes shapeAppear{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes shapeFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}@keyframes shapeSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes shapePulse{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}.visual-grid{background-image:linear-gradient(to right, color-mix(in oklch, var(--border) 30%, transparent) 1px, transparent 1px), linear-gradient(to bottom, color-mix(in oklch, var(--border) 30%, transparent) 1px, transparent 1px);opacity:.4;background-size:60px 60px;position:absolute;inset:0}.visual-brand{z-index:3;text-align:center;position:relative}.visual-logo{z-index:5;font-family:var(--font-display);letter-spacing:-.03em;color:var(--text);opacity:0;font-size:20px;font-weight:700;text-decoration:none;animation:.8s ease-out .3s forwards fadeSlideDown;position:absolute;top:24px;right:28px}.visual-logo span{color:var(--accent)}.visual-hero-text{z-index:3;text-align:left;position:absolute;top:50%;right:40px;transform:translateY(-50%)}.visual-hero-text .hero-heading{font-family:var(--font-display);letter-spacing:-.03em;color:var(--text);text-align:left;opacity:0;font-size:clamp(48px,8vw,80px);font-weight:800;line-height:1.1;animation:1s ease-out .5s forwards heroFadeUp;transform:translateY(20px)}@keyframes heroFadeUp{to{opacity:1;transform:translateY(0)}}@keyframes fadeSlideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.visual-brand .logo-large{font-family:var(--font-display);letter-spacing:-.03em;opacity:0;font-size:36px;font-weight:700}.visual-brand .logo-large span{color:var(--accent)}.visual-brand .tagline{color:var(--muted);opacity:0;margin-top:12px;font-size:14px}.orbit{width:200px;height:200px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.orbit-dot{background:var(--accent);width:6px;height:6px;box-shadow:0 0 10px var(--accent);border-radius:50%;position:absolute}.orbit-dot:first-child{top:0;left:50%;transform:translate(-50%)}.orbit-dot:nth-child(2){bottom:0;left:50%;transform:translate(-50%)}.orbit-dot:nth-child(3){top:50%;left:0;transform:translateY(-50%)}.orbit-dot:nth-child(4){top:50%;right:0;transform:translateY(-50%)}.login-form-panel{justify-content:center;align-items:center;padding:48px 32px;display:flex;position:relative}.form-logo{z-index:5;font-family:var(--font-display);letter-spacing:-.03em;color:var(--fg);opacity:0;font-size:24px;font-weight:700;text-decoration:none;animation:.8s ease-out .3s forwards fadeSlideDown;position:absolute;top:24px;right:28px}.form-logo span{color:var(--accent)}.login-form-panel:before{content:"";background:radial-gradient(ellipse 40% 50% at 80% 20%, color-mix(in oklch, var(--accent) 5%, transparent), transparent);position:absolute;inset:0}.login-card{z-index:2;width:100%;max-width:380px;position:relative}.login-card>*{opacity:0;transform:translateY(16px)}.back-link{color:var(--muted);transition:color var(--transition-base);align-items:center;gap:6px;margin-bottom:40px;font-size:13px;display:inline-flex}.back-link:hover{color:var(--accent)}.back-link svg{width:14px;height:14px}.form-header{margin-bottom:32px}.form-header h1{font-family:var(--font-display);letter-spacing:-.02em;margin-bottom:8px;font-size:28px;font-weight:700}.form-header p{color:var(--muted);font-size:15px}.social-btns{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:24px;display:grid}.social-btn{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--fg);transition:all var(--transition-base);justify-content:center;align-items:center;gap:10px;padding:12px 16px;font-size:14px;font-weight:500;display:flex}.social-btn:hover{border-color:var(--accent);background:var(--surface-warm);transform:translateY(-1px)}.social-btn:active{transform:translateY(0)}.social-btn svg{flex-shrink:0;width:18px;height:18px}.divider{color:var(--muted);align-items:center;gap:16px;margin-bottom:24px;font-size:13px;display:flex}.divider:before,.divider:after{content:"";background:var(--border);flex:1;height:1px}.field{flex-direction:column;gap:6px;margin-bottom:20px;display:flex}.field label{color:var(--muted);font-size:13px;font-weight:500}.field input{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--fg);font:inherit;transition:all var(--transition-base);outline:none;padding:12px 14px;font-size:15px}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in oklch, var(--accent) 15%, transparent)}.field input::placeholder{color:var(--muted);opacity:.6}.password-wrap{position:relative}.password-wrap input{padding-right:44px}.password-toggle{color:var(--muted);transition:color var(--transition-base);padding:4px;display:flex;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.password-toggle:hover{color:var(--accent)}.password-toggle svg{width:18px;height:18px}.forgot-row{justify-content:flex-end;margin-bottom:24px;display:flex}.forgot-row a{color:var(--accent);transition:opacity var(--transition-base);font-size:13px}.forgot-row a:hover{opacity:.8}.submit-btn{background:var(--accent);width:100%;color:var(--accent-on);border-radius:var(--radius);transition:all var(--transition-base);border:none;padding:13px 20px;font-size:15px;font-weight:600;position:relative;overflow:hidden}.submit-btn:hover{background:var(--accent-hover);box-shadow:0 0 24px color-mix(in oklch, var(--accent) 30%, transparent);transform:translateY(-1px)}.submit-btn:active{transform:translateY(0)}.submit-btn .ripple{pointer-events:none;background:oklch(100% 5.96046e-8 none/.3);border-radius:50%;animation:.6s linear rippleAnim;position:absolute;transform:scale(0)}@keyframes rippleAnim{to{opacity:0;transform:scale(4)}}.signup-footer{text-align:center;color:var(--muted);margin-top:28px;font-size:14px}.signup-footer a{color:var(--accent);transition:opacity var(--transition-base);font-weight:500}.signup-footer a:hover{opacity:.8}@keyframes focusPulse{0%{box-shadow:0 0 0 3px color-mix(in oklch, var(--accent) 15%, transparent)}50%{box-shadow:0 0 0 5px color-mix(in oklch, var(--accent) 8%, transparent)}to{box-shadow:0 0 0 3px color-mix(in oklch, var(--accent) 15%, transparent)}}.field input:focus{animation:2s ease-in-out infinite focusPulse}.submit-btn.loading{pointer-events:none;opacity:.85}.submit-btn.loading:after{content:"";background:linear-gradient(90deg,#0000,oklch(100% 5.96046e-8 none/.15),#0000);animation:1.2s infinite shimmer;position:absolute;inset:0}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.submit-btn.success{background:var(--success);pointer-events:none}.toast{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--fg);z-index:1000;transition:transform .4s var(--ease-spring);align-items:center;gap:10px;padding:14px 24px;font-size:14px;display:flex;position:fixed;bottom:32px;left:50%;transform:translate(-50%)translateY(100px);box-shadow:0 8px 32px #0000004d}.toast.show{transform:translate(-50%)translateY(0)}.toast.error{border-color:var(--danger)}.toast.success{border-color:var(--success)}.field input.error{border-color:var(--danger);animation:none;box-shadow:0 0 0 3px oklch(71.9186% .168984 13.428/.15)}.field .error-msg{color:var(--danger);margin-top:4px;font-size:12px;display:none}.field .error-msg.show{display:block}.login-globe{z-index:2;pointer-events:none;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;top:0;left:-40%;overflow:visible}.login-globe canvas{display:block;width:auto!important;height:100%!important}@media (width<=860px){.login-globe{display:none}}
