/* Direction: warm, earthy artisan roastery — roasted browns, cream paper, terracotta accent, Fraunces serif headings */

:root {
  --bg: #faf5ee;
  --surface: #ffffff;
  --surface-2: #f2e8da;
  --ink: #2b1d12;
  --ink-2: #5c4a3a;
  --muted: #86715f;
  --line: #e6d8c5;
  --brand: #6f4a2f;
  --brand-strong: #573a24;
  --brand-soft: #ecdfcd;
  --accent: #c05f2b;
  --accent-deep: #a34d1f;
  --accent-soft: #f7e4d3;
  --success: #4f7a4e;
  --warning: #c08a2d;
  --danger: #b23b2e;

  --font-display: "Fraunces", Georgia, serif;
  --font-body: "Work Sans", ui-sans-serif, system-ui, sans-serif;

  --radius-lg: 20px;
  --shadow-warm: 0 1px 2px rgba(43, 29, 18, 0.06), 0 12px 32px -12px rgba(43, 29, 18, 0.18);
}

html {
  scroll-behavior: smooth;
}

body {
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-body);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 {
  font-family: var(--font-display);
  line-height: 1.15;
  letter-spacing: -0.01em;
}

:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
  border-radius: 4px;
}

::selection {
  background: var(--accent-soft);
  color: var(--ink);
}

.reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.55s ease-out, transform 0.55s ease-out;
}

.reveal.is-visible {
  opacity: 1;
  transform: none;
}

.field-error {
  color: var(--danger);
}

.field-invalid {
  border-color: var(--danger) !important;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  .reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}
