:root {
  --color-ivory: #FAF8F5;
  --color-ink: #1D212B;
  --color-wine: #7A3342;
  --color-surface: rgb(29 33 43 / 4.5%);
  --color-surface-raised: rgb(250 248 245 / 96%);
  --color-muted: rgb(29 33 43 / 68%);
  --color-border: rgb(29 33 43 / 14%);
  --color-focus: var(--color-ink);
  /* Compatibility aliases: every legacy component still resolves to the same three-color palette. */
  --color-black: var(--color-ivory);
  --color-graphite: var(--color-ink);
  --color-sand: var(--color-ink);
  --color-accent: var(--color-wine);
  --color-text: var(--color-ink);
  --color-amber: var(--color-wine);
  --font-display: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --font-body: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --space-1: 8px; --space-2: 16px; --space-3: 24px; --space-4: 32px;
  --space-5: 40px; --space-6: 48px; --space-7: 56px; --space-8: 64px;
  --space-10: 80px; --space-12: 96px;
  --radius-sm: 8px; --radius-md: 14px; --radius-lg: 20px;
  --container: 1200px;
  --shadow-card: 0 18px 55px rgb(29 33 43 / 8%);
  --duration-fast: 160ms; --duration-standard: 240ms;
  --ease-out: cubic-bezier(.2, .8, .2, 1);
}
* { box-sizing: border-box; }
html { background: var(--color-ivory); scroll-behavior: smooth; }
body { min-width: 320px; margin: 0; overflow-x: hidden; background: var(--color-ivory); color: var(--color-ink); font-family: var(--font-body); font-size: 18px; line-height: 1.62; text-rendering: optimizeLegibility; }
img { display: block; max-width: 100%; height: auto; }
button, a { font: inherit; }
a { color: inherit; }
h1, h2, h3 { margin: 0; overflow-wrap: normal; word-break: normal; hyphens: none; color: var(--color-ink); font-family: var(--font-display); font-weight: 600; line-height: 1.05; }
p { overflow-wrap: anywhere; }
p { margin: 0; }
ul, ol { margin: 0; padding: 0; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; }
  .motion-ready [data-reveal] { opacity: 1 !important; transform: none !important; }
}
