.login-container{background:var(--surface-paper);grid-template-columns:minmax(0,1.35fr) minmax(430px,.65fr);min-height:100svh;display:grid;overflow:hidden}.login-illustration{isolation:isolate;min-height:100svh;color:var(--ink-strong);background:linear-gradient(90deg,#fff8e8f0 0%,#fff8e8bd 42%,#fff8e81f 72%,#0000 100%),url(/images/fireside-hero.jpg) 63%/cover no-repeat;flex-direction:column;justify-content:space-between;padding:clamp(30px,4vw,64px);display:flex;position:relative;overflow:hidden}.login-illustration:after{z-index:-1;content:"";opacity:.2;pointer-events:none;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.18'/%3E%3C/svg%3E");position:absolute;inset:0}.login-visual-brand,.login-brand{font-family:var(--heading);letter-spacing:-.03em;align-items:center;gap:10px;font-size:1.25rem;font-weight:600;display:inline-flex}.login-visual-brand span,.login-brand span{color:var(--ember);font-family:var(--sans);font-size:.9rem}.login-visual-copy{max-width:650px;margin:auto 0;padding:9vh 0}.login-visual-kicker,.login-kicker{color:var(--ember-hover);font:700 .68rem/1 var(--mono);letter-spacing:.18em;margin-bottom:18px;display:block}.login-visual-copy h2{max-width:580px;color:var(--ink-strong);letter-spacing:-.05em;margin:0 0 24px;font-size:clamp(3.2rem,5.2vw,6rem);line-height:.91}.login-visual-copy p{color:#2b2a26c2;max-width:470px;margin:0;font-size:clamp(1rem,1.4vw,1.18rem);line-height:1.65}.login-visual-note{color:#2b2a26a8;letter-spacing:.04em;align-items:center;gap:10px;font-size:.75rem;display:flex}.login-panel{background:radial-gradient(circle at 100% 0%, #c85f3d14, transparent 23rem), var(--surface-paper);justify-content:center;align-items:center;min-height:100svh;padding:clamp(34px,5vw,84px);display:flex;position:relative}.login-card{width:min(100%,410px);animation:.52s cubic-bezier(.2,.8,.2,1) both login-enter}.login-brand{color:var(--ink-strong);margin-bottom:56px;display:none}.login-kicker{margin-bottom:14px}.login-card h1{color:var(--ink-strong);margin:0 0 12px;font-size:clamp(2.6rem,4.5vw,3.8rem);line-height:.96}.login-subtitle{color:var(--ink-muted);margin:0 0 34px;font-size:.95rem}.login-card .form-group{margin-bottom:19px}.login-card .form-group label{color:var(--ink);letter-spacing:.09em;text-transform:uppercase;margin-bottom:8px;font-size:.72rem;font-weight:700;display:block}.login-card .form-group input{border:1px solid var(--line);background:var(--surface-raised);width:100%;min-height:50px;color:var(--ink-strong);transition:border-color var(--transition-smooth), box-shadow var(--transition-smooth), background var(--transition-smooth);border-radius:8px;padding:12px 14px;font-size:.95rem}.login-card .form-group input:hover{border-color:var(--line-strong)}.login-card .form-group input:focus{border-color:var(--ember);background:#fff;outline:none;box-shadow:0 0 0 3px #c85f3d1f}.login-card .form-group input::placeholder{color:#aaa79f}.login-button{border:1px solid var(--surface-ink);cursor:pointer;background:var(--surface-ink);color:#fff9ee;width:100%;min-height:50px;transition:transform var(--transition-smooth), background var(--transition-smooth), border-color var(--transition-smooth), box-shadow var(--transition-smooth);border-radius:8px;justify-content:center;align-items:center;gap:12px;margin-top:8px;padding:12px 18px;font-size:.9rem;font-weight:700;display:flex}.login-button:hover:not(:disabled){background:#282f30;border-color:#282f30;transform:translateY(-1px);box-shadow:0 8px 24px #14181824}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{cursor:not-allowed;opacity:.5}.sso-button{border-color:var(--ember);background:var(--ember);justify-content:space-between;margin:0 0 24px}.sso-button:hover:not(:disabled){border-color:var(--ember-hover);background:var(--ember-hover);box-shadow:0 8px 24px #a9472c33}.login-divider{color:var(--ink-faint);letter-spacing:.13em;text-transform:uppercase;align-items:center;gap:14px;margin:0 0 22px;font-size:.65rem;font-weight:700;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--line);flex:1;height:1px}.login-card .error-message{background:var(--danger-soft);color:#7f322a;border:1px solid #a9493e4d;border-radius:8px;margin-bottom:20px;padding:12px 14px;font-size:.84rem}.login-card .success-message{text-align:left;background:linear-gradient(#fffdf6 0%,#fff8ec 100%);border:1px solid #c85f3d2e;border-radius:12px;gap:16px;padding:20px 18px;animation:.42s cubic-bezier(.2,.8,.2,1) both login-enter;display:grid;box-shadow:0 8px 28px #2b2a2614}.success-message-icon{background:var(--surface-ink);color:#fff9ee;border-radius:999px;justify-content:center;align-items:center;width:40px;height:40px;font-size:1rem;line-height:1;display:inline-flex}.success-message-body strong{color:var(--ink-strong);letter-spacing:-.02em;margin-bottom:6px;font-size:.95rem;display:block}.success-message-body p{color:var(--ink-muted);overflow-wrap:break-word;word-break:break-word;margin:0;font-size:.88rem;line-height:1.6}.success-message-body p strong{color:var(--ink-strong);font-weight:700;display:inline}.success-message .login-button{margin-top:2px}.toggle-text{color:var(--ink-muted);text-align:center;margin:24px 0 0;font-size:.84rem}.toggle-button{cursor:pointer;min-height:44px;color:var(--ember-hover);background:0 0;border:0;justify-content:center;align-items:center;padding:6px 12px;font-weight:700;display:inline-flex}.toggle-button:hover{color:var(--ember);text-underline-offset:3px;text-decoration:underline}.login-footer{color:var(--ink-faint);letter-spacing:.05em;margin:0;font-size:.67rem;position:absolute;bottom:24px;right:clamp(34px,5vw,84px)}@keyframes login-enter{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media (max-width:980px){.login-container{grid-template-columns:minmax(0,.8fr) minmax(400px,1fr)}}@media (max-width:760px){.login-container{background:var(--surface-paper);min-height:100svh;display:block}.login-illustration{background:linear-gradient(90deg,#fff8e8d1,#fff8e814),url(/images/fireside-hero.jpg) 72% 45%/cover no-repeat;min-height:120px;padding:20px 24px}.login-visual-copy,.login-visual-note{display:none}.login-panel{align-items:flex-start;min-height:calc(100svh - 120px);padding:32px 24px 64px}.login-card{width:100%;max-width:480px}.login-footer{display:none}}@media (max-height:520px){.login-illustration{display:none}.login-panel{min-height:100svh}}@media (max-width:430px){.login-illustration{min-height:120px}.login-panel{min-height:calc(100svh - 120px);padding-top:32px}.login-card h1{font-size:2.65rem}}.local-test-players{border-top:1px dashed var(--ink-faint);text-align:center;margin-top:24px;padding-top:16px}.local-test-players-row{flex-wrap:wrap;justify-content:center;display:flex}.local-test-players p{color:var(--ink-muted);margin:0;font-size:.78rem}.local-test-players .login-kicker{margin-bottom:4px}
