:root {
  --bg: #ffffff; --band: #f9f9f8; --ink: #111111; --soft: #555555; --line: #222222;
  --serif: "Cormorant Garamond", "Iowan Old Style", Georgia, serif;
  --sans: "Inter Tight", system-ui, -apple-system, "Segoe UI", sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--bg); color: var(--ink); font: 400 17px/1.55 var(--sans); }
img { max-width: 100%; height: auto; display: block; }

header { position: sticky; top: 0; z-index: 2; background: rgba(255,255,255,.96); backdrop-filter: blur(6px);
  text-align: center; padding: 22px 16px 14px; }
.brand { font: 400 1.35rem/1.2 var(--serif); color: var(--ink); text-decoration: none; }
nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 22px; margin-top: 12px; }
nav a { font: 400 .78rem/1.6 var(--sans); text-transform: uppercase; letter-spacing: .02em; color: var(--ink);
  text-decoration: none; border-bottom: 1px solid transparent; }
nav a:hover, nav a[aria-current="page"] { border-bottom-color: var(--ink); }

main section { padding: clamp(48px, 9vw, 120px) 16px; }
.hero { background: var(--band); text-align: center; }
.hearts { font: 300 1rem var(--serif); color: var(--soft); margin: 0 0 18px; }
.eyebrow { font: 400 clamp(1.3rem, 3vw, 1.9rem)/1.2 var(--serif); text-transform: uppercase; letter-spacing: .03em; margin: 0; }
.hero hr { width: min(560px, 80%); border: 0; border-top: 1px solid var(--line); margin: 28px auto 44px; }
h1 { font: 300 clamp(3rem, 10vw, 6.5rem)/1.05 var(--serif); margin: 0; }
h1 span, h1 em { display: block; }
h1 em { font-size: .5em; margin: .25em 0; }
.date { font: 500 .85rem var(--sans); text-transform: uppercase; letter-spacing: .14em; margin: 40px 0 0; color: var(--soft); }
.band { background: var(--band); text-align: center; }
.lead { font: 300 clamp(1.45rem, 3.4vw, 2.3rem)/1.3 var(--serif); max-width: 760px; margin: 0 auto 28px; }
h2 { font: 400 clamp(1.7rem, 4vw, 2.6rem)/1.2 var(--serif); margin: 40px 0 16px; }
.note { color: var(--soft); max-width: 620px; margin: 0 auto 28px; font-size: .95rem; }
address { font-style: normal; line-height: 1.9; }

.split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 6vw, 80px); align-items: start; max-width: 1180px; margin: 0 auto; }
.split .lead { text-align: left; margin-left: 0; }
.times { display: grid; grid-template-columns: max-content; margin: 0 0 22px; }
.times dt { font: 500 .72rem var(--sans); text-transform: uppercase; letter-spacing: .04em; color: var(--soft); }
.times dd { margin: 0 0 8px; font-weight: 500; font-size: .85rem; }
.figure { display: grid; justify-items: center; gap: 28px; }
.figure img { border: 1px solid #ddd; }

footer { text-align: center; font: 400 1.15rem var(--serif); padding: 60px 16px 70px; }

@media (max-width: 760px) { .split { grid-template-columns: 1fr; } }
