:root {
  --ivory: #f3eee4;
  --ivory-2: #fbf8f1;
  --paper: #fffdf8;
  --ink: #171715;
  --ink-soft: #58544c;
  --line: rgba(23, 23, 21, 0.14);
  --gold: #b78a45;
  --gold-deep: #8f652d;
  --night: #171715;
  --night-soft: #22211f;
  --blue: #17385a;
  --radius: 24px;
  --shell: min(1180px, calc(100vw - 64px));
  --serif: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;
  --sans: "Plus Jakarta Sans", Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ivory); overflow-x: hidden; max-width: 100vw; }
body {
  overflow-x: hidden;
  max-width: 100vw;
  margin: 0;
  color: var(--ink);
  background:
    radial-gradient(circle at 85% 10%, rgba(183,138,69,.08), transparent 24rem),
    var(--ivory-2);
  font-family: var(--sans);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
::selection { background: #d6bd91; color: #171715; }
.shell { width: var(--shell); margin-inline: auto; }
.section-space { padding-block: 112px; }
.skip-link {
  position: fixed; left: 16px; top: 12px; z-index: 200;
  transform: translateY(-150%); padding: 10px 14px; border-radius: 8px;
  background: var(--ink); color: white;
}
.skip-link:focus { transform: translateY(0); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}
