/* Temporary coming-soon homepage. Builds on home.css (tokens, hero glow + grid, .btn, .seq).
   Only coming-soon specifics live here. Sizes run about 20% under the homepage hero. */
.soon{ min-height:calc(100svh - 70px); display:flex; align-items:center; padding:64px 0; }
.soon .wrap{ width:100%; display:flex; flex-direction:column; align-items:center; }

.soon .logo{ width:min(240px, 56vw); height:auto; margin-bottom:32px; }
.soon h1{ font-size:clamp(2.1rem, 5.8vw, 4.3rem); max-width:17ch; margin:0 auto 18px; }
.soon .sub{ font-size:1rem; max-width:38ch; margin:0 auto 28px; }

.wl{ width:100%; max-width:540px; }
.fields{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) auto; gap:8px; }
.wl input{ font:inherit; font-size:.85rem; color:var(--text); background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:.7rem .9rem; min-width:0; transition:border-color .15s, box-shadow .15s; }
.wl input::placeholder{ color:var(--muted); opacity:.7; }
.wl input:focus{ outline:none; border-color:var(--crimson); box-shadow:0 0 0 3px var(--crimson-bg); }
.wl .btn:disabled{ opacity:.6; cursor:wait; }
.err{ min-height:1.7em; margin-top:8px; font-size:.78rem; color:#e2809c; }
.done{ display:flex; align-items:center; justify-content:center; gap:8px; border:1px solid rgba(34,197,94,.35); background:var(--green-bg); border-radius:10px; padding:.8rem 1rem; font-size:.85rem; }
.done[hidden], .fields[hidden]{ display:none; }
.done svg{ flex:none; color:var(--green); }
.fine{ font-size:.75rem; color:var(--muted); }
.sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

.soon + footer{ padding:0 0 24px; }
.soon + footer .legal{ margin-top:0; border-top:0; text-align:center; }

@media (max-width:640px){
  .fields{ grid-template-columns:minmax(0,1fr); }
}
@media (prefers-reduced-motion:reduce){
  .seq{ animation:none; opacity:1; transform:none; }
}
