/* Canonical brand tokens. Palette supplied in BRAND-GUIDELINES.md. */
:root {
  --color-burgundy: #4B050E;
  --color-wine: #660713;
  --color-dark-wine: #3B060C;
  --color-ivory: #F7EBDC;
  --color-parchment: #F8E5D2;
  --color-champagne: #FDF5E5;
  --color-antique-gold: #B47B35;
  --color-dark-brown: #33201A;
  --color-heading: #5C0A17;
  /* Verified bundled substitutes; original reference font identities are unknown. */
  --font-display: 'Invitation Serif', Georgia, serif;
  --font-script: 'Invitation Script', cursive;
  --font-body: 'Invitation Serif', Georgia, serif;
  --border-gold: 1px solid var(--color-antique-gold);
  --shadow-invitation: 0 12px 36px rgb(59 6 12 / 16%);
  --ease-elegant: cubic-bezier(.22, 1, .36, 1);
  --duration-fast: 220ms;
  --duration-medium: 500ms;
  --duration-slow: 900ms;
  --ivory: var(--color-ivory);
  --paper: var(--color-parchment);
  --wine: var(--color-wine);
  --red: var(--color-burgundy);
  --gold: var(--color-antique-gold);
  --ink: var(--color-dark-brown);
  --serif: var(--font-body);
  --sans: var(--font-body);
  --script: var(--font-script);
}
body { color: var(--color-dark-brown); background-color: var(--color-ivory); }
header { background-color: var(--color-champagne); }
.hero h1, .section-heading h2, .closing-copy h2, .cover-letter { color: var(--color-heading); }
.hero h1 { font-family: var(--font-display); }
.hero h1 em { color: var(--color-antique-gold); }
.hero-copy > p, .event-details small, .closing-copy p { color: var(--color-dark-brown); }
.event-details { color: var(--color-heading); }
.button, .cover-bottom .button { background: var(--color-wine); border-color: var(--color-wine); color: var(--color-champagne); box-shadow: 0 3px 6px rgb(59 6 12 / 15%); transition: background var(--duration-fast) var(--ease-elegant), box-shadow var(--duration-fast) var(--ease-elegant); }
.button:hover, .cover-bottom .button:hover { background: var(--color-burgundy); border-color: var(--color-burgundy); }
.button > span { display: inline-block; color: var(--color-champagne); transition: transform var(--duration-fast) var(--ease-elegant); }
.button:hover > span { transform: translateX(3px); }
header nav a[aria-current="page"]:after { width: 100%; }
.gallery { background: var(--color-burgundy); color: var(--color-champagne); }
.gallery-header h2 { color: #D9B77B; }
.gallery-header .eyebrow { color: var(--color-champagne); }
.rail-arrow { background: var(--color-wine); border-color: var(--color-antique-gold); color: var(--color-champagne); }
.rail-arrow:hover { background: var(--color-dark-wine); }
.gallery-item { border-color: var(--color-antique-gold); transition: border-color var(--duration-fast) var(--ease-elegant); }
.gallery-item:hover { border-color: #D9B77B; }
.gallery-item img { transition: transform var(--duration-medium) var(--ease-elegant); }
footer { background: var(--color-dark-wine); }
.ornament { color: var(--color-antique-gold); display: flex; justify-content: center; align-items: center; }
.ornament-drawing { display: block; width: 190px; height: 24px; overflow: visible; }
.gallery-header > .ornament .ornament-drawing { width: 85px; }
.hero-copy > .ornament { min-height: 24px; }
:focus-visible { outline-color: var(--color-antique-gold); }
@media(max-width:760px) { .gallery-header > .ornament .ornament-drawing { width: 40px; } .ornament-drawing { width: 170px; } }
@media(prefers-reduced-motion:reduce) { .button > span { transition: none; } .button:hover > span { transform: none; } }
