:root {
  --color-paper: #f5f1ea;
  --color-sand: #ebe4d8;
  --color-ink: #161412;
  --color-muted: #6f675d;
  --color-line: #ddd4c6;
  --color-ochre: #d9951c;
  --color-ochre-dark: #b67a0f;
  --color-ember: #c4521d;
  --font-sans: Inter, ui-sans-serif, system-ui, sans-serif;
  --font-display: Fraunces, ui-serif, Georgia, serif;
  --font-script: "Mrs Saint Delafield", cursive;
}
html { scroll-behavior: smooth; }
body { background: var(--color-paper); color: var(--color-ink); }
::selection { background: var(--color-ochre); color: var(--color-ink); }
.btn {
  display: inline-flex;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border-radius: 9999px;
  padding: 0.75rem 1.5rem;
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.025em;
  transition: color 0.15s, background-color 0.15s, border-color 0.15s;
}
.btn:disabled { cursor: not-allowed; opacity: 0.5; }
.btn-primary { background: var(--color-ink); color: var(--color-paper); }
.btn-primary:hover:not(:disabled) { background: var(--color-ochre); color: var(--color-ink); }
.btn-accent { background: var(--color-ochre); color: var(--color-ink); }
.btn-accent:hover:not(:disabled) { background: var(--color-ochre-dark); color: var(--color-paper); }
.btn-outline { border: 1px solid rgb(22 20 18 / 0.2); color: var(--color-ink); }
.btn-outline:hover:not(:disabled) { border-color: var(--color-ink); background: var(--color-ink); color: var(--color-paper); }
.input {
  width: 100%;
  border-radius: 0.75rem;
  border: 1px solid var(--color-line);
  background: #fff;
  padding: 0.75rem 1rem;
  font-size: 0.875rem;
  outline: none;
}
.input:focus { border-color: var(--color-ink); box-shadow: 0 0 0 2px rgb(217 149 28 / 0.3); }
.input::placeholder { color: rgb(111 103 93 / 0.6); }
.label {
  margin-bottom: 0.375rem;
  display: block;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  color: var(--color-muted);
  text-transform: uppercase;
}
.eyebrow {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.25em;
  color: var(--color-ochre-dark);
  text-transform: uppercase;
}
.font-display { font-family: var(--font-display); }
.font-script { font-family: var(--font-script); }
.font-sans { font-family: var(--font-sans); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
