:root{--bg:#0A0908;--ink:#F3EDE3;--ink-2:#BEB4A6;--ink-3:#877D70;--gold:#D9B26A;--gold-hi:#F4D99A;--line:#2B2620;
  --serif:"Fraunces",Georgia,serif;--sans:"Instrument Sans",system-ui,sans-serif;--mono:"Space Mono",ui-monospace,Menlo,monospace}
*{box-sizing:border-box}[hidden]{display:none!important}
html,body{height:100%}
body{margin:0;background:radial-gradient(1200px 600px at 50% -10%,#1E1912,var(--bg) 60%) fixed;color:var(--ink);font-family:var(--sans);
  -webkit-font-smoothing:antialiased;padding-inline:16px}
.door{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding-block:40px}
.kicker{font-family:var(--mono);font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-3);margin:0 0 12px}
.title{font-family:var(--serif);font-weight:600;font-size:clamp(38px,9vw,60px);line-height:1;margin:0;color:var(--gold-hi)}
.title em{font-style:italic;color:var(--gold)}
.sub{color:var(--ink-3);font-size:14px;margin:12px 0 30px}
.step{width:min(420px,100%);display:grid;gap:14px}
.lede{color:var(--ink-2);font-size:15px;line-height:1.5}.lede b{color:var(--ink)}
.row{display:flex;gap:8px}
.row input{flex:1;min-width:0;background:rgba(255,255,255,.03);border:1px solid var(--line);border-radius:10px;color:var(--ink);font:inherit;font-size:16px;padding:12px 14px;outline:none}
.row input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(217,178,106,.18)}
#code{font-family:var(--mono);letter-spacing:.3em;text-align:center;font-size:19px}
.row button{border:0;border-radius:10px;padding:0 18px;font:inherit;font-weight:600;cursor:pointer;color:#1A1206;background:linear-gradient(180deg,var(--gold-hi),var(--gold))}
.row button[disabled]{opacity:.55;cursor:progress}
.tip{margin:-4px 0 0;font-size:13.5px;color:var(--ink-3);line-height:1.5}
.links{display:flex;gap:18px;justify-content:center;flex-wrap:wrap}
.link{background:none;border:0;color:var(--ink-3);font:inherit;font-size:13.5px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.link:hover{color:var(--ink)}.link[disabled]{opacity:.5;text-decoration:none}
.msg{min-height:22px;margin:16px 0 0;font-size:14px;color:var(--ink-2)}.msg.err{color:#FF9A8F}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
@media (max-width:520px){.row{flex-direction:column}.row button{padding:13px 18px}}
#name{width:100%;background:rgba(255,255,255,.03);border:1px solid var(--line);border-radius:10px;color:var(--ink);font:inherit;font-size:16px;padding:12px 14px;outline:none}
#name:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(217,178,106,.18)}
.step .lede{text-align:left}
