:root{--ink:#0d0d0d;--paper:#f5f0e8;--stage:#1a1a2e;--amber:#e8a020;--red:#c0392b;--green:#27ae60;--muted:#6b6457;--border:#ccc5b0;--card-bg:#fffdf7;--mono:'DM Mono',monospace;--sans:'DM Sans',sans-serif;--display:'Bebas Neue',sans-serif;}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.6;min-height:100vh;display:flex;flex-direction:column;}
header{background:var(--stage);color:var(--paper);padding:0 2rem;display:flex;align-items:center;gap:1.5rem;border-bottom:4px solid var(--amber);}
.logo{text-decoration:none;display:inline-block;font-family:var(--display);font-size:2.4rem;letter-spacing:.08em;color:var(--amber);padding:.6rem 0;line-height:1;}
.logo span{color:var(--paper);}
main{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem 1rem;}
.card{background:var(--card-bg);border:1px solid var(--border);border-top:4px solid var(--amber);padding:2.5rem 2rem;width:100%;max-width:420px;box-shadow:6px 6px 0 rgba(0,0,0,.08);}
h2{font-family:var(--display);font-size:2rem;letter-spacing:.06em;color:var(--stage);margin-bottom:1.5rem;border-bottom:1px solid var(--border);padding-bottom:.6rem;}
label{display:block;font-family:var(--mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.15em;color:var(--muted);margin-bottom:.35rem;margin-top:1.2rem;}
label:first-of-type{margin-top:0;}
input[type="text"],input[type="email"],input[type="password"]{width:100%;padding:.65rem .85rem;font-family:var(--mono);font-size:.9rem;background:#fff;border:1.5px solid var(--border);color:var(--ink);outline:none;transition:border-color .15s;}
input:focus{border-color:var(--amber);}
.btn{display:block;width:100%;font-family:var(--display);font-size:1.25rem;letter-spacing:.12em;padding:.65rem 1rem;border:none;cursor:pointer;margin-top:1.5rem;background:var(--amber);color:var(--stage);box-shadow:3px 3px 0 var(--stage);transition:transform .1s,box-shadow .1s;text-align:center;}
.btn:hover{box-shadow:5px 5px 0 var(--stage);transform:translate(-1px,-1px);}
.alert{padding:.7rem 1rem;font-family:var(--mono);font-size:.82rem;margin-bottom:1rem;border-left:4px solid currentColor;}
.alert-error{background:#fdf0ef;color:var(--red);}
.footer-link{text-align:center;margin-top:1.2rem;font-family:var(--mono);font-size:.78rem;color:var(--muted);}
.footer-link a{color:var(--stage);font-weight:500;text-decoration:none;}
.footer-link a:hover{text-decoration:underline;}
