:root{--night:#1f1c4d;--deep:#1b1840;--ghost:#f4f3ff;--mint:#7ee8c4}
*{box-sizing:border-box}
html,body{margin:0}
body{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;
  padding:max(20px,env(safe-area-inset-top)) 20px max(20px,env(safe-area-inset-bottom));
  background:var(--night);color:var(--deep);font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.card{width:100%;max-width:400px;background:var(--ghost);border:3px solid var(--deep);box-shadow:6px 6px 0 var(--deep);padding:26px 22px 20px}
.brand{font-weight:800;text-decoration:none;color:var(--deep);font-size:.9rem;opacity:.75}
h1{font-size:1.5rem;font-weight:900;line-height:1.2;margin:10px 0 4px}
.lead{margin:0 0 16px;line-height:1.5}
label{display:block;font-weight:800;font-size:.9rem;margin:14px 0 6px}
input{width:100%;font:inherit;font-size:1.05rem;padding:12px;border:3px solid var(--deep);background:#fff;color:var(--deep);border-radius:0}
#code{text-transform:uppercase;letter-spacing:.12em;font-weight:800}
input:focus{outline:3px solid var(--mint);outline-offset:2px}
.hint{font-size:.82rem;margin:6px 0 0;opacity:.75;line-height:1.4}
button{margin-top:18px;width:100%;min-height:50px;font:inherit;font-weight:900;font-size:1.05rem;
  background:var(--deep);color:var(--ghost);border:3px solid var(--deep);box-shadow:4px 4px 0 var(--mint);cursor:pointer}
button:active{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--mint)}
button:focus-visible{outline:3px solid var(--mint);outline-offset:3px}
.err{background:#FCEBEB;border:3px solid #A32D2D;color:#791F1F;padding:10px 12px;font-weight:700;margin:0 0 6px;line-height:1.4}
.foot{margin:16px 0 0;font-size:.85rem}
.foot a{color:var(--deep);font-weight:800}
