:root{
  --ink:#070707; --panel:#111111; --panel2:#171717; --line:#2a2a2a;
  --text:#ece7df; --muted:#8a8780; --accent:#e11d2e; --accent-ink:#ffffff; --ok:#4ade80; --bad:#ff6b6b;
  --head:'Anton',Impact,'Arial Narrow',sans-serif; --body:'Manrope',system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0}
html{color-scheme:dark}
body{background:var(--ink);color:var(--text);font-family:var(--body);line-height:1.5;min-height:100svh}
/* film grain */
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:50;opacity:.07;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
a{color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border-radius:4px;border:1px solid var(--line);
  background:var(--panel2);color:var(--text);font:800 .85rem var(--body);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;text-decoration:none;transition:border-color .15s,background .15s}
.btn:hover{border-color:#555}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.primary:hover{background:#f0293a;border-color:#f0293a}
.btn:disabled{opacity:.55;cursor:wait}
input[type=text],input[type=password],input[type=url],select,textarea{width:100%;padding:11px 13px;border-radius:4px;border:1px solid var(--line);
  background:var(--ink);color:var(--text);font:500 .95rem var(--body)}
input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none}
label{display:block;font-size:.82rem;font-weight:700;color:var(--muted);margin-bottom:6px}
.msg{font-size:.88rem;min-height:1.3em}
.msg.bad{color:var(--bad)} .msg.ok{color:var(--ok)}
.brand{font:400 1.35rem var(--head);letter-spacing:.06em;text-decoration:none;text-transform:uppercase}
