:root {
  --primary: #873348;
  --primary-dark: #5b1d30;
  --primary-soft: #f7e9ec;
  --accent: #89977a;
  --accent-soft: #edf0e8;
  --background: #faf6f6;
  --surface: #fff;
  --text: #342229;
  --muted: #75666b;
  --border: #eadde0;
  --danger: #b42318;
  --shadow: 0 6px 24px rgb(91 29 48 / 5%);
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--background); color: var(--text); font: 15px/1.6 "Segoe UI", Arial, sans-serif; }
h1, h2, h3, p { margin: 0 0 12px; }
h1 { font-size: clamp(26px, 3vw, 36px); line-height: 1.2; letter-spacing: -1px; }
h2 { font-size: 21px; line-height: 1.35; }
h3 { font-size: 17px; }
a { color: var(--primary-dark); text-decoration: none; }
button, input { font: inherit; }
button, a, input { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
:focus-visible { outline: 3px solid var(--primary-dark); outline-offset: 4px; }
[hidden] { display: none !important; }
.muted { color: var(--muted); }
.eyebrow { color: var(--primary-dark); font-size: 11px; font-weight: 750; letter-spacing: 1.8px; }
.error { color: var(--danger); }
.skip-link { position: fixed; top: -100px; left: 16px; z-index: 20; padding: 12px; background: white; }
.skip-link:focus { top: 16px; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
