:root {
  --paper: #faf6ef;
  --ink: #1c1917;
  --ink-muted: #57534e;
  --accent: #b45309;
  --accent-hover: #92400e;
  --accent-soft: rgba(180, 83, 9, 0.12);
  --card: #ffffff;
  --border: #e7e5e4;
  --danger: #b91c1c;
  --danger-soft: rgba(185, 28, 28, 0.1);
  --radius: 12px;
  --shadow: 0 4px 24px rgba(28, 25, 23, 0.08);
  --code-bg: #f0ebe3;
  --font-sans: 'Source Sans 3', 'Segoe UI', system-ui, sans-serif;
  --font-display: 'Libre Baskerville', Georgia, 'Times New Roman', serif;

  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.5;
  color: var(--ink);
  background: var(--paper);
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

@media (prefers-color-scheme: dark) {
  :root {
    --paper: #1c1917;
    --ink: #fafaf9;
    --ink-muted: #a8a29e;
    --accent: #fbbf24;
    --accent-hover: #fcd34d;
    --accent-soft: rgba(251, 191, 36, 0.15);
    --card: #292524;
    --border: #44403c;
    --danger: #f87171;
    --danger-soft: rgba(248, 113, 113, 0.12);
    --shadow: 0 4px 24px rgba(0, 0, 0, 0.35);
    --code-bg: #292524;
  }
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

body {
  margin: 0;
  min-height: 100vh;
}

#root {
  min-height: 100vh;
}
