:root { color-scheme: dark; --bg:#061018; --panel:#0a1b25; --line:#183746; --text:#eaf8ff; --muted:#7f9eae; --teal:#32e6c4; --red:#ff7185; }
* { box-sizing:border-box; }
html, body { min-height:100%; }
body { margin:0; color:var(--text); background:radial-gradient(circle at 70% 10%,rgba(38,208,180,.16),transparent 34%),linear-gradient(145deg,#040c12,#071722 68%,#07110f); font-family:"Pretendard","Noto Sans KR",system-ui,sans-serif; }
.login-shell { min-height:100vh; display:grid; place-items:center; padding:24px; }
.login-card { width:min(100%,430px); padding:34px; border:1px solid var(--line); border-radius:22px; background:rgba(7,24,33,.94); box-shadow:0 28px 80px rgba(0,0,0,.38); }
.brand { display:flex; align-items:center; gap:13px; margin-bottom:34px; }
.brand img { width:54px; height:54px; object-fit:cover; object-position:50% 28%; border:1px solid var(--teal); border-radius:50%; background:#fff; }
.brand div { display:flex; flex-direction:column; }
.brand strong { font-size:18px; letter-spacing:.08em; }
.brand span, .eyebrow { color:var(--teal); font:700 10px/1.4 ui-monospace,monospace; letter-spacing:.16em; }
.brand span { margin-top:5px; color:var(--muted); }
.eyebrow { margin:0 0 7px; }
h1 { margin:0; font-size:29px; letter-spacing:-.04em; }
.description { margin:10px 0 28px; color:var(--muted); font-size:14px; }
form { display:grid; gap:10px; }
label { margin-top:6px; color:#b9d1dc; font-size:12px; font-weight:750; }
input { width:100%; height:50px; border:1px solid var(--line); border-radius:11px; padding:0 14px; color:var(--text); background:#06131b; font-size:16px; outline:none; }
input:focus { border-color:var(--teal); box-shadow:0 0 0 3px rgba(50,230,196,.1); }
button { height:52px; margin-top:10px; border:1px solid var(--teal); border-radius:11px; color:#03110e; background:var(--teal); font-size:16px; font-weight:850; cursor:pointer; }
button:disabled { opacity:.55; cursor:wait; }
.login-divider { display:flex; align-items:center; gap:12px; margin:8px 0 0; color:var(--muted); font-size:11px; }
.login-divider::before, .login-divider::after { content:""; height:1px; flex:1; background:var(--line); }
.guest-login { margin-top:0; color:var(--teal); background:transparent; }
.guest-login:hover { background:rgba(50,230,196,.08); }
.message { min-height:20px; margin:2px 0 0; color:var(--red); font-size:12px; }
.message.success { color:var(--teal); }
.security-note { margin:24px 0 0; padding-top:18px; border-top:1px solid var(--line); color:var(--muted); font-size:11px; line-height:1.6; }
@media (max-width:480px) { .login-shell { padding:16px; }.login-card { padding:28px 22px; border-radius:18px; } }
