.login-page{background:radial-gradient(circle at 12% 18%, var(--accent-100) 0, transparent 38%), radial-gradient(circle at 88% 82%, var(--primary-200) 0, transparent 42%), linear-gradient(160deg, var(--primary-50), var(--primary-100));place-items:center;padding:32px 16px;display:grid;overflow-x:hidden}.login-page:before,.login-page:after{content:"";z-index:0;filter:blur(60px);opacity:.55;pointer-events:none;border-radius:50%;animation:14s ease-in-out infinite alternate float;position:fixed}.login-page:before{background:var(--primary-300);width:340px;height:340px;top:-80px;right:-60px}.login-page:after{background:var(--accent-300);width:280px;height:280px;animation-delay:-7s;bottom:-60px;left:-60px}@keyframes float{to{transform:translate(30px,40px)scale(1.1)}}.login-card{z-index:1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--white);border-radius:var(--radius-lg);width:100%;max-width:440px;box-shadow:var(--shadow-card);text-align:center;background:#ffffffd9;padding:48px 40px 36px;animation:.7s cubic-bezier(.2,.8,.2,1) both card-in;position:relative}.login-card:before{content:"";border:1px solid var(--accent-300);border-radius:calc(var(--radius-lg) - 8px);pointer-events:none;position:absolute;inset:10px}@keyframes card-in{0%{opacity:0;transform:translateY(16px)}}.monogram{background:var(--accent-100);border:1px solid var(--accent-300);width:64px;height:64px;font-family:var(--font-display);color:var(--accent-700);border-radius:50%;place-items:center;margin-bottom:12px;font-size:2rem;display:inline-grid}.login-subtitle{color:var(--ink-soft);margin-top:8px;font-style:italic}.divider{align-items:center;gap:12px;max-width:220px;margin:24px auto 28px;display:flex}.divider:before,.divider:after{content:"";background:linear-gradient(90deg, transparent, var(--accent-500));flex:1;height:1px}.divider:after{background:linear-gradient(90deg, var(--accent-500), transparent)}.divider span{background:var(--accent-500);border-radius:0 50%;width:10px;height:10px;transform:rotate(45deg)}.login-form{text-align:left;gap:18px;display:grid}.login-form .btn-primary{margin-top:10px}.login-card>.form-error{text-align:left;margin-top:4px}.link-button{color:var(--accent-700);text-underline-offset:3px;background:0 0;border:none;justify-self:end;margin-top:-8px;padding:0;font-size:.85rem;text-decoration:underline}.link-button:hover{color:var(--primary-700)}.link-button:focus-visible{outline:2px solid var(--accent-500);outline-offset:2px}.social-login{gap:10px;margin-top:22px;display:grid}.social-divider{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);align-items:center;gap:12px;margin-bottom:4px;font-size:.8rem;display:flex}.social-divider:before,.social-divider:after{content:"";background:var(--primary-200);flex:1;height:1px}.social-button{border:1.5px solid var(--primary-200);background:var(--white);width:100%;color:var(--ink);transition:border-color var(--transition), box-shadow var(--transition), transform var(--transition);border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:12px 20px;font-weight:500;display:flex}.social-button:hover{border-color:var(--primary-300);box-shadow:0 8px 18px -12px var(--shadow-color);transform:translateY(-1px)}.social-button:active{transform:translateY(0)}.social-button:focus-visible{outline:3px solid var(--accent-500);outline-offset:3px}.social-button:disabled{cursor:progress;opacity:.6}.social-logo{flex:none;width:18px;height:18px}.social-hint{color:var(--ink-soft);text-align:center;font-size:.78rem}.partner-signed-in{border-radius:var(--radius-sm);background:var(--accent-100);color:var(--accent-700);text-align:center;padding:10px 14px;font-size:.9rem}.partner-step .link-button{justify-self:center}.login-footer{color:var(--ink-soft);margin-top:24px;font-size:.85rem}.login-legal{color:var(--ink-faint);margin-top:8px;font-size:.75rem}.login-legal a{color:inherit}@media (width<=480px){.login-card{padding:40px 24px 28px}}@media (prefers-reduced-motion:reduce){.login-page:before,.login-page:after,.login-card{animation:none}}.login-card>*{animation:.6s cubic-bezier(.2,.8,.2,1) both rise-in}.login-card>:nth-child(2){animation-delay:80ms}.login-card>:nth-child(3){animation-delay:.14s}.login-card>:nth-child(4){animation-delay:.2s}.login-card>:nth-child(5){animation-delay:.26s}.login-card>:nth-child(n+6){animation-delay:.32s}.monogram{animation:.6s cubic-bezier(.2,.8,.2,1) both rise-in,4s ease-in-out 1s infinite breathe}@keyframes breathe{50%{box-shadow:0 0 0 8px color-mix(in srgb, var(--accent) 18%, transparent)}}
