:root{--ink:#14110a;--cream:#fbf6ea;--gold:#e0a92a;--muted:#6b6455;--line:#e3ddcf;--bad:#a3441d}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;display:grid;place-items:center;background:var(--ink);font:16px/1.5 "IBM Plex Sans",system-ui,-apple-system,sans-serif;padding:calc(20px + env(safe-area-inset-top)) 16px 20px}
.card{background:#fff;color:#17140d;border-radius:18px;padding:28px 24px;width:100%;max-width:420px;box-shadow:0 30px 70px rgba(0,0,0,.4)}
.brand{display:flex;align-items:center;gap:12px;margin-bottom:18px}.brand img{width:44px;height:44px}
.brand b{font:800 22px/1.05 "Bricolage Grotesque",system-ui,sans-serif}.brand b span{display:block;color:#a8740c}
h1{font:700 22px "Bricolage Grotesque",system-ui,sans-serif;margin:0 0 6px}
p{margin:0 0 16px;color:var(--muted)}
form{display:grid;gap:12px}
label{display:grid;gap:4px;font-weight:600;font-size:14px}
input{font:inherit;font-size:16px;padding:12px;border:1px solid var(--line);border-radius:10px;width:100%}
input:focus,button:focus-visible{outline:2px solid var(--gold);outline-offset:1px}
button{font:700 17px "IBM Plex Sans",system-ui,-apple-system,sans-serif;padding:13px;border:0;border-radius:10px;background:var(--gold);color:var(--ink);cursor:pointer}
button:disabled{opacity:.6}
.msg{min-height:1.4em;font-size:14px;color:var(--bad);margin:0}
.offer{background:#fbf1d6;border:1px solid #ecd9a2;border-radius:10px;padding:10px 12px;font-size:14px;color:#3a3020;margin-bottom:14px}
.alt{margin:16px 0 0;text-align:center;font-size:14px}.alt a{color:#a8740c;font-weight:600}
