/* ===================================================================
   STILLS — shared waitlist (header CTA + modal + form).
   Mirrors the homepage's modal so join works in-place on every page.
   Pairs with assets/waitlist.js. Uses tokens from pages.css.
   =================================================================== */
.navjoin{font-family:var(--heming);font-weight:600;font-size:.66rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink);background:var(--ember);border:1px solid var(--ember);
  border-radius:100px;padding:9px 16px;cursor:pointer;
  transition:background .25s,transform .25s var(--ease),box-shadow .3s}
.navjoin:hover{background:var(--ember2);transform:translateY(-1px);box-shadow:0 8px 24px rgba(235,94,40,.34)}

.modal{position:fixed;inset:0;z-index:300;display:none;align-items:center;justify-content:center;padding:24px}
.modal.open{display:flex}
.modal-bg{position:absolute;inset:0;background:rgba(6,5,4,.74);backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);animation:mfade .3s ease}
.modal-card{position:relative;z-index:1;width:min(460px,100%);background:var(--char);
  border:1px solid var(--line-2);border-radius:20px;padding:clamp(30px,5vw,46px);text-align:center;
  box-shadow:0 40px 120px -30px rgba(0,0,0,.92);animation:mpop .36s var(--ease)}
.modal-card .code{display:block;margin-bottom:14px;font-family:var(--heming);font-weight:600;
  font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:var(--paper-faint)}
.modal-card h2{font-family:var(--robit);font-weight:300;font-size:clamp(1.8rem,4.6vw,2.5rem);
  letter-spacing:-.03em;line-height:1.04;margin:0}
.modal-x{position:absolute;top:12px;right:14px;width:38px;height:38px;border:none;background:transparent;
  color:var(--paper-dim);font-size:1.7rem;line-height:1;cursor:pointer;border-radius:50%;
  transition:color .2s,background .2s}
.modal-x:hover{color:var(--paper);background:var(--ghost)}
.modal-sub{margin:14px auto 24px;max-width:36ch;color:var(--paper-dim);font-size:1.02rem;line-height:1.5}

.signup{display:flex;flex-direction:column;gap:10px;max-width:470px;margin:0 auto;
  justify-content:center;position:relative}
.signup input[type=email]{flex:1;min-width:0;width:100%;font-family:var(--heming);font-size:.96rem;
  color:var(--paper);text-align:left;background:var(--char);border:1px solid var(--line-2);
  border-radius:100px;padding:15px 20px;outline:none;transition:border-color .25s,background .25s}
.signup input::placeholder{color:var(--paper-faint)}
.signup input:focus{border-color:var(--ember);background:var(--char2)}
.signup .btn{width:100%;justify-content:center;font-family:var(--heming);font-weight:600;font-size:.74rem;
  letter-spacing:.14em;text-transform:uppercase;cursor:pointer;color:var(--ink);background:var(--ember);
  border:none;padding:15px 26px;border-radius:100px;display:inline-flex;align-items:center;gap:9px;
  transition:transform .25s var(--ease),background .3s,box-shadow .3s;white-space:nowrap}
.signup .btn:hover{transform:translateY(-2px);background:var(--ember2);box-shadow:0 10px 32px rgba(235,94,40,.38)}
.signup .ok{display:none;font-family:var(--heming);font-weight:600;color:var(--ember);padding:15px 4px}
.signup .err{display:none;width:100%;text-align:center;font-family:var(--heming);font-size:.82rem;
  color:#f0906f;padding:6px 4px}
.signup.done input,.signup.done .btn{display:none}
.signup.done .ok{display:block}
.signup.failed .err{display:block}
.hp{position:absolute !important;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}
body.modal-open{overflow:hidden}

@keyframes mfade{from{opacity:0}to{opacity:1}}
@keyframes mpop{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.modal-bg,.modal-card{animation:none}}
