  :root{
    --bg:#fbf5ec; --panel:#ffffff; --ink:#2e241c; --ink-dim:#9c8a77;
    --rule:#ecdfce; --amber:#df7a37; --amber-soft:#f7ead9; --moss:#6f9b6a; --red:#c1573f;
    --font-display:'Fraunces',serif; --font-body:'Inter',sans-serif; --font-mono:'IBM Plex Mono',monospace;
  }
  *{ box-sizing:border-box; margin:0; padding:0; }
  body{
    background:var(--bg); color:var(--ink); font-family:var(--font-body);
    min-height:100vh; line-height:1.6;
  }
  a{ color:inherit; }
  :focus-visible{ outline:2px solid var(--amber); outline-offset:3px; }
  .center{ min-height:100vh; display:flex; align-items:center; justify-content:center; }

  .eyebrow{
    font-family:var(--font-mono); font-size:12px; letter-spacing:.12em; text-transform:uppercase;
    color:var(--amber); display:flex; align-items:center; gap:10px; margin-bottom:18px;
  }
  .eyebrow::before{ content:''; width:7px; height:7px; background:var(--amber); border-radius:50%; display:inline-block; }
  h1.title{ font-family:var(--font-display); font-weight:600; font-size:34px; letter-spacing:-0.02em; margin-bottom:8px; }
  .sub{ color:var(--ink-dim); font-size:14px; margin-bottom:32px; }

  .field{ margin-bottom:16px; }
  .field label{
    display:block; font-family:var(--font-mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase;
    color:var(--ink-dim); margin-bottom:8px;
  }
  .field input, select.field-select{
    width:100%; background:#fffdfa; border:1px solid var(--rule); color:var(--ink);
    padding:13px 14px; font-family:var(--font-body); font-size:15px; border-radius:6px;
  }
  .field input:focus, select.field-select:focus{ border-color:var(--amber); }

  .btn{
    padding:14px; font-family:var(--font-mono); font-size:13px; letter-spacing:.04em;
    text-transform:uppercase; border:1px solid var(--amber); background:var(--amber); color:#fff;
    cursor:pointer; border-radius:6px; font-weight:600; transition:opacity .15s, transform .1s;
  }
  .btn:hover{ opacity:.9; }
  .btn:active{ transform:scale(.98); }
  .btn:disabled{ opacity:.5; cursor:not-allowed; }
  .btn.full{ width:100%; }
  .btn.moss{ background:var(--moss); border-color:var(--moss); color:#fff; }
  .btn.red{ background:var(--red); border-color:var(--red); color:#fff; }
  .btn.ghost{ background:#fff; color:var(--ink-dim); border:1px solid var(--rule); }
  .btn.ghost:hover{ color:var(--amber); border-color:var(--amber); }

  .msg{ font-family:var(--font-mono); font-size:12px; padding:10px 12px; border-radius:6px; margin-bottom:16px; display:none; }
  .msg.show{ display:block; }
  .msg.err{ background:#fbe9e4; color:var(--red); border:1px solid #f2cec3; }
  .msg.ok{ background:#eaf3e9; color:var(--moss); border:1px solid #d3e6d1; }



  @media (prefers-reduced-motion: reduce){ *{ transition:none !important; } }
