:root{
  --navy:#0a2540; --navy-2:#0e3a63; --ink:#06182b;
  --amber:#ffb300; --amber-soft:#ffd166;
  --paper:#f7f9fc; --card:#ffffff; --line:#e4e9f0;
  --text:#1d2b3a; --muted:#5b6b7c; --err:#c0392b; --ok:#1e8e5a;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{min-height:100%}
body{
  font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  color:#fff;
  background:radial-gradient(120% 90% at 50% -10%, var(--navy-2) 0%, var(--navy) 45%, var(--ink) 100%) fixed;
  display:flex;justify-content:center;padding:22px 16px 40px;
}
.wrap{width:100%;max-width:520px}

.brand{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:18px}
.brand-mark{height:46px;width:auto;display:block;filter:drop-shadow(0 8px 18px rgba(255,179,0,.25))}
.brand-name{font-family:'Inter',system-ui,sans-serif;font-weight:800;font-size:30px;color:#fff;letter-spacing:-.5px}
.brand-name .at{font-weight:500;font-size:20px;color:#cdddf0}
.brand-name .hl{color:var(--amber-soft)}

.hero{text-align:center;margin-bottom:18px}
.hero .eyebrow{font-size:12px;letter-spacing:.28em;text-transform:uppercase;color:var(--amber-soft);font-weight:700}
.hero h1{font-family:'Anton',sans-serif;text-transform:uppercase;line-height:.95;margin:8px 0 6px;
  font-size:46px;background:linear-gradient(180deg,#fff,var(--amber-soft) 70%,var(--amber));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.hero p{color:#cdddf0;font-size:15px}
.hero b{color:#fff}

.card{background:var(--card);color:var(--text);border-radius:16px;padding:22px;
  box-shadow:0 26px 56px -28px rgba(0,0,0,.6)}
.field{margin-bottom:15px}
label.lbl{display:block;font-size:13px;font-weight:600;color:var(--text);margin-bottom:6px}
.req{color:var(--err)}
input[type=text],input[type=tel],input[type=email],select,textarea{
  width:100%;font:inherit;font-size:15px;color:var(--text);background:#fff;
  border:1.5px solid var(--line);border-radius:10px;padding:11px 12px;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--navy-2);box-shadow:0 0 0 3px rgba(14,58,99,.12)}
.hint{font-size:12px;color:var(--muted);margin-top:5px}

.seg{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.seg label{display:flex;align-items:center;gap:9px;border:1.5px solid var(--line);border-radius:10px;
  padding:11px 12px;cursor:pointer;font-size:14px;font-weight:500;transition:.12s}
.seg input{accent-color:var(--navy-2);width:16px;height:16px}
.seg label.on{border-color:var(--navy-2);background:#eef4fb}

.consent{display:flex;align-items:flex-start;gap:10px;background:#f3f7fc;border:1px solid var(--line);
  border-radius:10px;padding:12px;font-size:13px;color:#2a3a4b;line-height:1.45}
.consent input{margin-top:2px;width:17px;height:17px;accent-color:var(--navy-2);flex:none}

.btn{width:100%;border:0;border-radius:11px;padding:14px;font:inherit;font-weight:800;font-size:16px;
  letter-spacing:.02em;cursor:pointer;color:var(--ink);
  background:linear-gradient(180deg,var(--amber-soft),var(--amber));
  box-shadow:0 14px 26px -12px rgba(255,179,0,.6);transition:.12s}
.btn:hover{filter:brightness(1.04)}
.btn:disabled{opacity:.6;cursor:not-allowed}

.msg{margin-top:12px;font-size:14px;border-radius:9px;padding:10px 12px;display:none}
.msg.err{display:block;background:#fdecea;color:var(--err);border:1px solid #f5c6c0}

.fineprint{margin-top:16px;font-size:11px;color:#9fb6cf;text-align:center;line-height:1.5}

/* congrats */
.congrats{display:none;text-align:center;color:#fff}
.congrats.show{display:block}
.badge{width:84px;height:84px;border-radius:50%;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(180deg,var(--amber-soft),var(--amber));box-shadow:0 0 0 10px rgba(255,179,0,.15)}
.badge svg{width:42px;height:42px}
.congrats h2{font-family:'Anton',sans-serif;font-size:42px;text-transform:uppercase;letter-spacing:.02em}
.congrats p{color:#cdddf0;margin-top:8px;font-size:15px}
.congrats .card{margin-top:18px}

/* per-community lock badge */
.community-lock{display:flex;align-items:center;gap:10px;background:#eef4fb;border:1px solid #d4e2f2;
  border-radius:10px;padding:11px 14px;margin-bottom:16px}
.community-lock .cl-label{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#5b6b7c;font-weight:700}
.community-lock .cl-name{font-size:16px;font-weight:800;color:var(--navy-2)}

/* landing directory */
.dir-list{display:flex;flex-direction:column;gap:10px;margin-bottom:6px}
.dir-item{display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:15px 16px;
  text-decoration:none;color:var(--text);font-weight:700;font-size:16px;transition:.12s}
.dir-item:hover{border-color:var(--navy-2);background:#f6faff}
.dir-item span{color:var(--amber);font-weight:800;font-size:14px;white-space:nowrap}
.muted{color:var(--muted)}
