:root{
  --bg:#0a0e1a; --bg2:#111a2e; --fg:#e6ecff; --muted:#8a97b8;
  --accent:#c9a84c; --accent2:#6db3f2; --card:#16203a; --border:#243456;
}
*{box-sizing:border-box;margin:0;padding:0}
body{
  font-family:'Segoe UI',system-ui,sans-serif;background:var(--bg);
  color:var(--fg);min-height:100vh;position:relative;overflow-x:hidden;
}
.stars{
  position:fixed;inset:0;z-index:0;
  background-image:radial-gradient(1px 1px at 20% 30%,#fff,transparent),
    radial-gradient(1px 1px at 60% 70%,#cde,transparent),
    radial-gradient(1px 1px at 80% 20%,#fff,transparent),
    radial-gradient(1px 1px at 40% 80%,#bcd,transparent);
  background-size:300px 300px;opacity:.4;
}
.portal{position:relative;z-index:1;max-width:900px;margin:0 auto;padding:60px 20px}
.hero{text-align:center;margin-bottom:50px}
.hero h1{
  font-size:3.5rem;letter-spacing:2px;
  background:linear-gradient(135deg,var(--accent),var(--accent2));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  margin-bottom:12px;
}
.tagline{color:var(--muted);font-size:1.1rem}
.actions{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:60px}
@media(max-width:640px){.actions{grid-template-columns:1fr}.hero h1{font-size:2.5rem}}
.card-link{
  display:flex;flex-direction:column;align-items:center;text-align:center;
  padding:36px 24px;background:var(--card);border:1px solid var(--border);
  border-radius:14px;text-decoration:none;color:var(--fg);
  transition:transform .15s,border-color .15s,box-shadow .15s;
}
.card-link:hover{
  transform:translateY(-4px);border-color:var(--accent);
  box-shadow:0 8px 30px rgba(201,168,76,.15);
}
.card-icon{font-size:2.4rem;color:var(--accent);margin-bottom:14px}
.card-title{font-size:1.3rem;font-weight:600;margin-bottom:8px}
.card-desc{color:var(--muted);font-size:.95rem}
.foot{text-align:center;color:var(--muted);font-size:.9rem;padding-top:30px;border-top:1px solid var(--border)}

/* --- Formulaire de creation de compte --- */
.form-wrap{max-width:440px;margin:0 auto;background:var(--card);
  border:1px solid var(--border);border-radius:14px;padding:32px}
.form{display:flex;flex-direction:column;gap:18px}
.form label{display:flex;flex-direction:column;gap:6px;font-size:.95rem;color:var(--fg)}
.form input{
  padding:12px 14px;background:var(--bg);border:1px solid var(--border);
  border-radius:8px;color:var(--fg);font-size:1rem;transition:border-color .15s;
}
.form input:focus{outline:none;border-color:var(--accent)}
.btn{
  display:inline-block;text-align:center;margin-top:6px;padding:13px 20px;
  background:linear-gradient(135deg,var(--accent),#b8963f);color:#1a1400;
  font-weight:600;font-size:1rem;border:none;border-radius:8px;cursor:pointer;
  text-decoration:none;transition:transform .12s,box-shadow .12s;
}
.btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(201,168,76,.3)}
.hint{margin-top:16px;color:var(--muted);font-size:.85rem;text-align:center}
.back{margin-top:20px;text-align:center}
.back a{color:var(--accent2);text-decoration:none}
.back a:hover{text-decoration:underline}
.alert{padding:16px;border-radius:8px;margin-bottom:20px;font-size:.95rem}
.alert-err{background:rgba(220,80,80,.12);border:1px solid rgba(220,80,80,.4);color:#ff9a9a}
.alert-ok{background:rgba(80,200,120,.1);border:1px solid rgba(80,200,120,.4);color:#a0f0c0;text-align:center}
.alert-ok h2{color:#c0ffd8;margin-bottom:10px}
.alert-ok .btn{margin-top:16px}

/* --- Page telechargement --- */
.dl-section{max-width:640px;margin:0 auto 40px}
.dl-step{font-size:1.4rem;color:var(--accent);margin-bottom:18px;padding-bottom:8px;border-bottom:1px solid var(--border)}
.dl-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:22px;margin-bottom:16px}
.dl-head{display:flex;align-items:center;gap:12px;margin-bottom:10px;flex-wrap:wrap}
.dl-badge{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:4px 10px;border-radius:20px}
.dl-req{background:rgba(201,168,76,.18);color:var(--accent);border:1px solid rgba(201,168,76,.4)}
.dl-rec{background:rgba(109,179,242,.15);color:var(--accent2);border:1px solid rgba(109,179,242,.4)}
.dl-opt{background:rgba(138,151,184,.15);color:var(--muted);border:1px solid rgba(138,151,184,.4)}
.dl-title{font-size:1.15rem;font-weight:600}
.dl-desc{color:var(--muted);font-size:.95rem;line-height:1.6;margin-bottom:14px}
.dl-desc code{background:var(--bg);padding:2px 7px;border-radius:5px;color:var(--accent2);font-size:.9em}
.btn-alt{background:linear-gradient(135deg,#2a3a5c,#1e2a44);color:var(--fg)}
.dl-list{margin:0 0 10px;padding-left:22px;color:var(--fg);line-height:1.9}
.dl-list code{background:var(--bg);padding:2px 7px;border-radius:5px;color:var(--accent2);font-size:.9em}
.realmlist-box{
  background:#05080f;border:1px solid var(--accent);border-radius:8px;
  padding:16px 20px;font-family:'Consolas',monospace;font-size:1.05rem;
  color:var(--accent);margin:14px 0;text-align:center;letter-spacing:.5px;
  user-select:all;
}
.inline-link{color:var(--accent2);text-decoration:none}
.inline-link:hover{text-decoration:underline}
