/* ============ base: tokens, reset, shared controls (site + admin) ============ */
:root{
  --bg:#0d0c0b; --bg-2:#121110; --surface:#181715; --surface-2:#211f1c; --surface-3:#2a2724;
  --line:#2c2925; --line-2:#3b3732;
  --ink:#f3efe7; --ink-2:#d8d2c6; --muted:#9d968a; --faint:#6f695f;
  --brass:#c8a35f; --brass-2:#e0bf7f; --brass-ink:#17130b; --brass-soft:rgba(200,163,95,.12);
  --danger:#d9705f; --ok:#8fbf8a;
  --r-sm:10px; --r:14px; --r-lg:22px;
  --display:'Unbounded', 'Arial Black', system-ui, sans-serif;
  --text:'Manrope', -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --pad:clamp(20px, 4vw, 48px);
  --max:1200px;
  color-scheme: dark;
}
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:84px;}
html,body{margin:0; padding:0; background:var(--bg); color:var(--ink); overflow-x:clip;}
body{font-family:var(--text); font-size:16px; line-height:1.55; -webkit-font-smoothing:antialiased;
  -webkit-tap-highlight-color:transparent; padding-bottom:env(safe-area-inset-bottom);}
img, picture{display:block; max-width:100%;}
[hidden]{display:none!important;}
a{color:inherit;}
button{font:inherit; color:inherit;}
:focus-visible{outline:2px solid var(--brass); outline-offset:3px; border-radius:6px;}
.visually-hidden{position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;}

/* buttons */
.btn{appearance:none; border:1px solid transparent; cursor:pointer; text-decoration:none;
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  min-height:50px; padding:0 24px; border-radius:999px;
  font-family:var(--text); font-size:15px; font-weight:700; letter-spacing:.01em; white-space:nowrap;
  transition:background .15s ease, border-color .15s ease, color .15s ease, transform .12s ease;}
.btn:active{transform:scale(.98);}
.btn-primary{background:var(--brass); color:var(--brass-ink);}
.btn-primary:hover{background:var(--brass-2);}
.btn-primary:disabled{opacity:.45; cursor:not-allowed; transform:none;}
.btn-ghost{background:transparent; border-color:var(--line-2); color:var(--ink);}
.btn-ghost:hover{border-color:var(--ink-2);}
.btn-danger{background:transparent; border-color:rgba(217,112,95,.55); color:var(--danger);}
.btn-danger:hover{border-color:var(--danger);}
.btn-sm{min-height:38px; padding:0 14px; font-size:13px; gap:6px;}
.btn svg{width:18px; height:18px; flex:none;}

/* fields */
.field{margin-bottom:16px;}
.field > label, .label{display:block; font-size:12.5px; color:var(--muted); margin-bottom:8px; font-weight:600; letter-spacing:.01em;}
.input, .field input:not([type=checkbox]), .field select, .field textarea{
  width:100%; background:var(--surface-2); border:1px solid var(--line); color:var(--ink);
  border-radius:var(--r-sm); padding:13px 14px; font-size:16px; font-family:var(--text); min-height:50px;
  transition:border-color .15s ease, background .15s ease;}
.field input:hover, .field select:hover, .field textarea:hover{border-color:var(--line-2);}
.field input:focus, .field select:focus, .field textarea:focus{outline:none; border-color:var(--brass); background:#24211d;}
.field textarea{min-height:84px; resize:vertical;}
.field input::placeholder, .field textarea::placeholder{color:var(--faint);}
.error{color:var(--danger); font-size:13.5px; margin:0 0 12px;}
.notice{font-size:13.5px; margin:0 0 16px; padding:10px 14px; border-radius:var(--r-sm); border:1px solid var(--line);}
.notice.ok{color:var(--ok); border-color:rgba(143,191,138,.35);}
.notice.err{color:var(--danger); border-color:rgba(217,112,95,.4);}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{transition:none!important; animation:none!important;}
}
