:root {
  color-scheme: light dark;
  --brand-deep: light-dark(#183b35, #b7d9c7);
  --brand-mid: light-dark(#24594e, #a2cfb9);
  --brand-mark: #183b35;
  --brand-gold: #c8b273;
  --paper: light-dark(#faf9f5, #17201d);
  --paper-warm: light-dark(#f0eee6, #24312a);
  --paper-line: light-dark(#d8d8cc, #43564a);
  --ink: light-dark(#202824, #e4eee7);
  --ink-soft: light-dark(#3f4944, #c2d0c7);
  --ink-mute: light-dark(#52605a, #aabdb0);
  --danger: light-dark(#922e21, #f0b19d);
  --danger-soft: light-dark(#f9eeea, #382b24);
  --field: light-dark(#ffffff, #1c2922);
  --control-border: light-dark(#8c9991, #708779);
  --selected-ink: light-dark(#ffffff, #17201d);
  --text-xs: 0.875rem;
  --text-sm: 0.9375rem;
  --text-base: 1rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-display: Georgia, "Times New Roman", serif;
}
:root[data-theme="light"] { color-scheme: light; }
:root[data-theme="dark"] { color-scheme: dark; }
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 1rem/1.6 var(--font-body); }
[hidden] { display: none !important; }
h1, h2, h3, h4 { margin: 0 0 0.75rem; color: var(--brand-deep); line-height: 1.25; }
h1 { font: 500 clamp(1.75rem, 4vw, 2.6rem)/1.2 var(--font-display); }
h2 { font-size: 1.65rem; font-weight: 650; }
h3 { font-size: 1.125rem; }
h4 { font-size: 1rem; }
p { margin: 0 0 1rem; }
a { color: var(--brand-mid); text-underline-offset: 3px; overflow-wrap: anywhere; }
button, input, select { font: inherit; }
input::placeholder { color: var(--ink-mute); opacity: 1; }
button, select, summary { cursor: pointer; }
button:disabled { opacity: 0.5; cursor: default; }
a:focus-visible, button:focus-visible, select:focus-visible, summary:focus-visible, input:focus-visible { outline: 3px solid var(--brand-mid); outline-offset: 3px; }
img, svg { max-width: 100%; }
.wrap { width: 100%; max-width: 1180px; margin: 0 auto; padding: 0 clamp(1rem, 4vw, 2.5rem); }
.btn { display: inline-flex; justify-content: center; align-items: center; min-height: 44px; padding: 0.55rem 1rem; border: 1px solid var(--paper-line); border-radius: 4px; color: var(--ink); background: var(--paper); text-decoration: none; }
.btn:hover:not(:disabled) { background: var(--paper-warm); border-color: var(--brand-mid); }
