/* The server-rendered pages (api/gate.py): sign-in and "one moment". A file, not
   inline, so their Content-Security-Policy can forbid inline styles (api/main.py). */
:root { --ink:#0F1729; --ink2:#526077; --line:#D8DEE8; --blue:#2563EB; --bg:#fff; --card:#fff; --rose:#B42318; }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; display:grid; place-items:center; background:var(--bg); color:var(--ink);
  font:15px/1.45 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; padding:16px; }
form { position:relative; z-index:1; width:100%; max-width:360px; padding:28px; display:grid; gap:14px;
  background:radial-gradient(closest-side, #fff 72%, rgba(255,255,255,0)); }
canvas[data-vortex] { position:fixed; inset:0; width:100%; height:100%; pointer-events:none; }
.mark { display:grid; gap:4px; justify-items:center; text-align:center; }
.mark img { display:block; width:100%; max-width:260px; height:auto; }
p { margin:0; color:var(--ink2); font-size:13px; }
label { font-size:13px; font-weight:600; color:var(--ink2); display:grid; gap:6px; }
input { font:inherit; color:var(--ink); background:var(--card); border:1px solid var(--line); border-radius:8px; padding:10px 12px; }
input:focus-visible { outline:2px solid var(--blue); outline-offset:1px; }
button { font:inherit; font-weight:600; color:#fff; background:var(--blue); border:0; border-radius:8px; padding:11px; cursor:pointer; }
.err { color:var(--rose); }
.wait { margin:0; display:block; min-height:0; place-items:normal; padding:32px; }
.wait p { font-size:15px; color:var(--ink); }
