:root {
  --bg: #efeee9;
  --surface: #ffffff;
  --surface-2: #f6f5f1;
  --ink: #1c1f22;
  --ink-2: #474c52;
  --muted: #787d84;
  --line: #dcdad3;
  --accent: #e2570f;
  --accent-hover: #c84a0a;
  --accent-ink: #ffffff;
  --accent-soft: #fbe5d8;
  --ok: #1d8049;
  --ok-soft: #dbf0e2;
  --warn: #9a6200;
  --warn-soft: #fbefd5;
  --danger: #b42318;
  --steel: #22272c;
  --steel-ink: #f1efea;
  --display: "Barlow Condensed", "Arial Narrow", Arial, sans-serif;
  --body: "Barlow", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --bg: #131517; --surface: #1c1f22; --surface-2: #23272a; --ink: #eceae5; --ink-2: #c3c5c7; --muted: #8e9297;
    --line: #32373b; --accent-soft: #3b2416; --ok-soft: #15321f; --ok: #52c483; --warn-soft: #362a10; --warn: #e3b04b;
    --danger: #f07167; --steel: #0b0d0e;
  }
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --bg: #131517; --surface: #1c1f22; --surface-2: #23272a; --ink: #eceae5; --ink-2: #c3c5c7; --muted: #8e9297;
  --line: #32373b; --accent-soft: #3b2416; --ok-soft: #15321f; --ok: #52c483; --warn-soft: #362a10; --warn: #e3b04b;
  --danger: #f07167; --steel: #0b0d0e;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; overflow-x: hidden; }
/* Keep phones from panning sideways: nothing may widen the page past the screen.
   clip (where supported) does this without breaking sticky headers. */
html, body { max-width: 100%; }
@supports (overflow: clip) { html, body { overflow-x: clip; } }
h1, h2, h3, p, li, a, span, div, cite, label { overflow-wrap: break-word; }
body { margin: 0; background: var(--bg); color: var(--ink); font-family: var(--body); font-size: 17px; line-height: 1.5; }
img { max-width: 100%; }
a { color: inherit; }
[hidden] { display: none !important; }
h1, h2, h3 { font-family: var(--display); font-weight: 700; line-height: 1.02; letter-spacing: -.005em; margin: 0; text-wrap: balance; }
.wrap { max-width: 1100px; margin: 0 auto; padding-inline: 20px; }
.label { font: 700 12.5px var(--body); text-transform: uppercase; letter-spacing: .09em; color: var(--muted); }

.btn { font: 700 16px var(--body); display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 14px 20px; border-radius: 11px; border: 0; cursor: pointer; text-decoration: none; transition: background .15s, transform .05s; min-height: 48px; }
.btn:active { transform: translateY(1px); }
.btn.primary { background: var(--accent); color: var(--accent-ink); }
.btn.primary:hover { background: var(--accent-hover); }
.btn.secondary { background: var(--surface); color: var(--ink); border: 1.5px solid var(--line); }
.btn.quiet { background: transparent; color: var(--ink-2); padding-inline: 10px; }
.btn.danger { background: transparent; color: var(--danger); border: 1.5px solid var(--line); }
.btn[disabled] { opacity: .55; cursor: default; }
.btn svg { width: 20px; height: 20px; flex: none; }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }

input, textarea, select { font: 500 16px var(--body); font-size: max(16px, 1em); width: 100%; padding: 12px 13px; border: 1.5px solid var(--line); border-radius: 10px; background: var(--surface); color: var(--ink); }
textarea { min-height: 84px; resize: vertical; }
label.field { display: grid; gap: 6px; font-weight: 600; font-size: 15px; }
label.field small { color: var(--muted); font-weight: 500; }
.error { color: var(--danger); font-weight: 600; font-size: 15px; }
.muted { color: var(--muted); }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }
