/* Shared look for the guild pages (login + hall). Matches index.html tokens. */
:root {
  --bg:#07050f; --bg2:#0e0b1c; --bg3:#151029; --border:#3d2d6e;
  --accent:#7c4dff; --accent2:#b57bee; --green:#4ade80; --red:#f87171; --gold:#fbbf24;
  --text:#fff; --muted:#b0a0d0;
  --font-head:'Cinzel',serif; --font-mono:'Share Tech Mono',monospace;
}
* { box-sizing:border-box; margin:0; padding:0; }
body { background:var(--bg); color:var(--text); font-family:var(--font-mono); font-size:15px; min-height:100vh; }
body::before {
  content:''; position:fixed; inset:0; z-index:0; pointer-events:none;
  background-image:linear-gradient(rgba(124,77,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(124,77,255,.04) 1px,transparent 1px);
  background-size:40px 40px;
}
.wrap { position:relative; z-index:1; max-width:1200px; margin:0 auto; padding:24px 20px 48px; }
.wrap.narrow { max-width:460px; }
a { color:var(--accent2); text-decoration:none; }
a:hover { color:#fff; }

.hero { text-align:center; padding:24px 10px 28px; position:relative; }
.emblem { width:92px; height:92px; }
.hero .emblem, .ghead .emblem { width:92px; height:92px; filter:drop-shadow(0 0 22px rgba(124,77,255,.6)); animation:float 6s ease-in-out infinite; }
.hero h1 { font-family:var(--font-head); font-size:28px; letter-spacing:5px; text-shadow:0 0 40px rgba(124,77,255,.6); margin-top:6px; }
.hero p { color:var(--muted); font-size:11px; letter-spacing:3px; margin-top:4px; }
@keyframes float { 50% { transform:translateY(-5px); } }

.back { display:inline-block; font-size:11px; letter-spacing:2px; color:var(--muted); margin-bottom:6px; }

.login { background:var(--bg2); border:1px solid var(--border); border-radius:10px; padding:22px; display:flex; flex-direction:column; gap:10px; }
.login label { font-size:10px; letter-spacing:2px; color:var(--muted); }
.login input { background:var(--bg3); border:1px solid var(--border); border-radius:6px; padding:10px 12px; color:var(--text); font-family:var(--font-mono); font-size:14px; outline:none; }
.login input:focus { border-color:var(--accent); }
.err { background:rgba(248,113,113,.1); border:1px solid var(--red); color:var(--red); border-radius:6px; padding:8px 12px; font-size:12px; }

.btn { background:var(--accent); color:#fff; border:none; border-radius:6px; padding:9px 22px; font-family:var(--font-mono); font-size:13px; letter-spacing:1px; cursor:pointer; transition:background .2s, box-shadow .2s; white-space:nowrap; }
.btn:hover { background:var(--accent2); box-shadow:0 0 20px rgba(124,77,255,.4); }
.btn.ghost { background:transparent; border:1px solid var(--border); color:var(--muted); }
.btn.ghost:hover { color:#fff; border-color:var(--accent); box-shadow:none; background:rgba(124,77,255,.1); }
.btn:disabled { opacity:.4; cursor:not-allowed; }
