:root {
  --pin-highlight: #dfb598;
  --pin-body: #9d603f;
  --pin-edge: #704a35;
  --pin-shadow: rgba(48, 35, 24, .32);
  color-scheme: light;
  --paper: #f6f0e6;
  --paper-deep: #ede4d5;
  --paper-light: #fffaf2;
  --ink: #433d31;
  --navigation-black: #000000;
  --muted: #756b5c;
  --olive: #62694f;
  --olive-dark: #464f38;
  --olive-light: #e5e7d9;
  --clay: #9d603f;
  --line: #d8cdbc;
  --white: #ffffff;
  --cream: #fff6e8;
  --focus: #a35b2f;
  --hero-shade: rgba(24, 24, 17, .52);
  --hero-edge: rgba(24, 24, 17, .12);
  --photo-shade: rgba(24, 24, 17, .74);
  --photo-clear: rgba(24, 24, 17, 0);
  --overlay: rgba(22, 23, 18, .96);
  --photo-preview-overlay: rgba(22, 23, 18, .62);
  --glass: rgba(255, 250, 242, .95);
  --countdown-panel: rgba(255, 255, 255, .16);
  --countdown-text-shadow: rgba(12, 16, 10, .8);
  --shadow: 0 18px 50px rgba(67, 61, 49, .12);
  --about-photo-shadow: 0 10px 20px rgba(67, 61, 49, .14), 0 26px 48px rgba(67, 61, 49, .2);
  --soft-shadow: 0 4px 20px rgba(67, 61, 49, .08);
  --serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --script: "Allura", "Brush Script MT", cursive;
  --sans: Arial, Helvetica, sans-serif;
  --content: 1200px;
  --hero-max-width: 1200px;
  --gutter: clamp(20px, 5vw, 72px);
  --section-space: clamp(56px, 8vw, 108px);
  --body-size: clamp(16px, .95rem + .15vw, 18px);
  --title-size: clamp(36px, 2rem + 2vw, 62px);
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 100px; scrollbar-gutter: stable; }
body { margin: 0; background: var(--paper); color: var(--ink); font: var(--body-size)/1.7 var(--sans); }
body.is-lightbox-open { overflow: hidden; }
img, svg { display: block; max-width: 100%; }
img { height: auto; }
button, input, textarea, select { font: inherit; }
button, a, input, textarea, select, summary { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
a { color: inherit; }
button, input, textarea, select { border-radius: 0; }
button, a { touch-action: manipulation; }
:focus-visible { outline: 2px solid var(--focus); outline-offset: 5px; }
::selection { background: var(--olive-light); color: var(--ink); }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms; transition-duration: .01ms; }
}
