/* ============================================================
   Email capture. Replaced wheel.css on 26 Sep 2026.
   ============================================================ */
.signup-veil{
  position:fixed;inset:0;z-index:120;display:none;
  align-items:center;justify-content:center;padding:20px;
  background:rgba(15,8,24,.82);backdrop-filter:blur(6px);
}
body.signup-open .signup-veil{display:flex}
body.signup-open{overflow:hidden}

.signup-card{
  background:var(--surface);border:1px solid var(--dough);
  border-radius:var(--radius);padding:30px 26px;
  width:min(420px,100%);max-height:92vh;overflow-y:auto;
  text-align:center;position:relative;
  box-shadow:0 18px 60px rgba(0,0,0,.55);
}
.signup-close{
  position:absolute;top:10px;right:12px;background:none;border:0;
  color:var(--cream);opacity:.55;font-size:1.5rem;line-height:1;
  cursor:pointer;padding:6px 10px;border-radius:8px;
}
.signup-close:hover{opacity:1}
.signup-eyebrow{
  font-family:var(--font-mono);font-size:.64rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold-bright);margin:0 0 8px;
}
.signup-card h2{
  font-family:var(--font-display);font-size:1.8rem;line-height:1.12;
  margin:0 0 10px;color:var(--cream);
}
.signup-card p.signup-sub{
  font-size:.92rem;color:var(--cream);opacity:.75;margin:0 0 20px;line-height:1.55;
}
.signup-form{display:flex;flex-direction:column;gap:10px}
.signup-form input{
  width:100%;padding:13px 15px;border-radius:12px;
  border:1px solid var(--dough);background:var(--midnight);
  color:var(--cream);font-family:var(--font-body);font-size:1rem;
}
.signup-form input:focus-visible{outline:2px solid var(--amethyst);outline-offset:2px}
.signup-form button,.signup-continue{
  width:100%;padding:14px 18px;border-radius:12px;border:0;
  background:var(--btn-fill);color:var(--white);cursor:pointer;
  font-family:var(--font-display);font-size:1.05rem;font-weight:600;
}
.signup-form button:disabled{opacity:.55;cursor:default}
.signup-fine{font-size:.72rem;color:var(--cream);opacity:.55;margin:14px 0 0;line-height:1.5}
.signup-fine a{color:var(--cream)}
.signup-err{color:#ffb4ab;font-size:.85rem;margin:8px 0 0;min-height:1.1em}

.signup-won{display:none;flex-direction:column;gap:10px}
body.signup-result .signup-won{display:flex}
body.signup-result .signup-form,body.signup-result .signup-sub:first-of-type{display:none}

/* The code is the whole point of the moment: big, monospaced, selectable. */
.signup-code{
  font-family:var(--font-mono);font-size:1.7rem;font-weight:700;
  letter-spacing:.06em;color:var(--gold-bright);margin:0;
  padding:16px;border:2px dashed var(--gold);border-radius:12px;
  user-select:all;
}

/* A standing invitation on the page edge. An open door, not a salesman. */
.signup-tab{
  position:fixed;left:0;top:50%;transform:translateY(-50%) rotate(180deg);
  writing-mode:vertical-rl;z-index:90;
  background:var(--btn-fill);color:var(--white);
  border:0;border-radius:0 0 12px 12px;padding:16px 9px;
  font-family:var(--font-display);font-size:.82rem;font-weight:600;
  letter-spacing:.04em;cursor:pointer;
  box-shadow:2px 0 14px rgba(0,0,0,.35);
  display:flex;align-items:center;gap:7px;
}
.signup-tab:hover{background:var(--amethyst)}
.signup-tab:focus-visible{outline:2px solid var(--gold-bright);outline-offset:3px}
body.signup-open .signup-tab{display:none}
@media (max-width:640px){.signup-tab{font-size:.74rem;padding:13px 7px}}
