:root{
  --navy:#1a1f3c; --navy2:#232a52; --gold:#e3b341; --ink:#1f2447;
  --muted:#8890b5; --line:#2c335f; --err:#ff6b6b; --ok:#37c98b;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{font:15px/1.55 -apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--navy)}
body.unlocked{background:#fff}

/* ---- full-screen tool frame (revealed after the gate) ---- */
#toolFrame{position:fixed;inset:0;width:100%;height:100%;border:0;display:none;background:#fff}
body.unlocked #toolFrame{display:block}

/* ---- gate overlay ---- */
.gate{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;
  padding:22px;background:radial-gradient(1200px 600px at 70% -10%,#2b3468 0%,var(--navy) 60%);overflow:auto}
body.unlocked .gate{display:none}
.card{width:100%;max-width:420px;background:#fff;border-radius:16px;padding:26px 24px 22px;
  box-shadow:0 24px 60px rgba(0,0,0,.35)}
.brand{display:flex;align-items:center;gap:10px;margin-bottom:2px}
.brand .logo{width:34px;height:34px;border-radius:50%;
  background:conic-gradient(from 210deg,var(--gold),#b8862b,var(--gold));flex:0 0 auto}
.brand .name{font-size:19px;font-weight:800;color:var(--ink);letter-spacing:-.01em}
.tagline{color:var(--muted);font-size:12px;margin:0 0 18px 44px}
h1{font-size:21px;margin:6px 0 4px;color:var(--ink);letter-spacing:-.01em}
.sub{color:#5a6187;font-size:13.5px;margin:0 0 18px}
label{display:block;font-size:12px;color:#6b7299;margin:12px 0 5px;font-weight:600}
input[type=text],input[type=email],input[type=tel]{width:100%;padding:11px 12px;border:1px solid #e2e5f1;
  border-radius:10px;font:inherit;color:var(--ink)}
input:focus{outline:0;border-color:var(--gold);box-shadow:0 0 0 3px rgba(227,179,65,.18)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.consent{display:flex;gap:9px;align-items:flex-start;margin:14px 0 4px;font-size:12.5px;color:#5a6187}
.consent input{margin-top:2px}
.btn{margin-top:16px;width:100%;padding:13px;border:0;border-radius:11px;background:var(--navy);
  color:#fff;font-size:16px;font-weight:700;cursor:pointer;transition:opacity .15s}
.btn:hover{opacity:.92}.btn:disabled{opacity:.55;cursor:default}
.msg{min-height:18px;margin-top:10px;font-size:12.5px}
.msg.err{color:#c0392b}.msg.ok{color:#1e8f63}
.fine{color:#9aa0c0;font-size:11px;margin-top:14px;text-align:center;line-height:1.5}
.spin{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.5);
  border-top-color:#fff;border-radius:50%;animation:sp .7s linear infinite;vertical-align:-2px;margin-right:7px}
@keyframes sp{to{transform:rotate(360deg)}}
