/* Public sign-in page: shared art and visual language with nightcitystories.com. */
.login-homepage{--bg:#100c0e;--text:#faf5f3;--muted:#cfbdc4;--gold:#f34250;--border:#493039;padding:0;background:var(--bg);color:var(--text)}
.login-homepage .login-header,.login-homepage .login-footer{width:min(1280px,calc(100% - 96px));margin:0 auto;flex-shrink:0}
.login-homepage .login-header{min-height:88px;border-bottom:0;letter-spacing:0}
.login-brand{display:flex;align-items:center;gap:22px;text-decoration:none;color:var(--text)}
.login-brand img{box-sizing:content-box;padding-right:22px;border-right:1px solid #573039}
.login-brand>span{font:700 18px/1.2 Arial,Helvetica,sans-serif;letter-spacing:-.025em}
.login-brand>span>span{color:var(--gold)}
.login-homepage .login-home-link{display:inline-flex;align-items:center;gap:20px;min-height:44px;font:13px Arial,Helvetica,sans-serif;text-decoration:none;color:var(--muted)}
.login-home-link span{color:var(--gold)}
.login-homepage .login-shell{width:100%;margin:0;min-height:650px;min-height:max(650px,calc(100svh - 168px));flex:1;align-items:center;overflow:hidden;isolation:isolate;background:#160e14}
.login-scene{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% 42%;z-index:-2}
.login-homepage .login-shell::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#130910f5 0%,#130910cf 32%,#13091033 75%),linear-gradient(0deg,#100c0e,transparent 70%);pointer-events:none}
.login-homepage .login-card{width:min(1280px,calc(100% - 96px));max-width:none;margin:0 auto;padding:80px 0;background:none}
.login-homepage .eyebrow{color:#dbc7d0;margin:0 0 28px;font:11px/1.6 Consolas,'Courier New',monospace;letter-spacing:.14em}
.login-homepage .login-card h1{font:800 clamp(58px,7vw,104px)/.9 Arial,Helvetica,sans-serif;letter-spacing:-.065em;margin:0 0 30px}
.login-homepage .login-card h1 span{display:inline-block;margin-top:9px;color:var(--gold)}
.login-homepage .login-copy{font-size:17px;line-height:1.6;color:#eee0e6;max-width:430px;margin:0 0 30px}
.login-homepage .discord-login-button{display:inline-flex;width:auto;min-height:56px;gap:40px;padding:16px 24px;background:#d9253a;border:1px solid #ff6573;color:#fff;font:700 13px/1.5 Arial,Helvetica,sans-serif;transition:background .16s ease,transform .16s ease}
.login-homepage .discord-login-button:hover{background:#b91f31;transform:translateY(-2px);box-shadow:none}
.login-homepage .login-footnote{max-width:340px;color:#d6c5cd;font-size:12px;line-height:1.7;margin:20px 0 0}
.login-homepage .login-footer{min-height:80px;border-top:0;font:10px/1.6 Consolas,'Courier New',monospace;letter-spacing:.08em;color:var(--muted)}
.login-homepage a:focus-visible{outline:2px solid #ff8a95;outline-offset:6px}
.login-skip{position:absolute;top:-100px;left:20px;z-index:5;padding:12px 20px;background:var(--text);color:var(--bg)}
.login-skip:focus{top:16px}
@media(max-width:760px){
 .login-homepage .login-header,.login-homepage .login-footer,.login-homepage .login-card{width:calc(100% - 40px)}
 .login-homepage .login-header{min-height:80px;gap:16px}
 .login-brand{gap:12px}.login-brand img{width:32px;height:32px;padding-right:12px}.login-brand>span{font-size:13px}
 .login-homepage .login-home-link{font-size:12px;gap:8px}
 .login-homepage .login-shell{min-height:max(640px,calc(100svh - 170px));align-items:flex-end}
 .login-scene{object-position:58% center}
 .login-homepage .login-shell::before{background:linear-gradient(0deg,#100c0e 0%,#130910ed 40%,#13091044 100%)}
 .login-homepage .login-card{padding:150px 0 48px}
 .login-homepage .login-card h1{font-size:clamp(52px,11.5vw,82px)}
 .login-homepage .login-footer{min-height:90px;flex-direction:column;align-items:flex-start;justify-content:center;gap:8px;padding:20px 0}
}
@media(max-width:380px){.login-brand>span{max-width:80px}.login-homepage .login-card h1{font-size:48px}.login-homepage .login-copy{font-size:15px}}
@media(prefers-reduced-motion:reduce){.login-homepage .discord-login-button{transition:none}.login-homepage .discord-login-button:hover{transform:none}}
