@font-face { font-family: "Pinyon Script"; src: url("/fonts/pinyon-script.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Cormorant Garamond"; src: url("/fonts/cormorant-garamond.woff2") format("woff2"); font-weight: 300 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Cormorant Garamond"; src: url("/fonts/cormorant-garamond-italic.woff2") format("woff2"); font-weight: 300 700; font-style: italic; font-display: swap; }
@font-face { font-family: "Montserrat"; src: url("/fonts/montserrat.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; }

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; -webkit-tap-highlight-color: transparent; scroll-padding-top: var(--nav-h); }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body { margin: 0; background: var(--cream); color: var(--ink-body); font-family: var(--font-serif); font-size: var(--step-0); font-weight: 400; line-height: 1.55; font-optical-sizing: auto; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img, video, svg, picture { display: block; max-width: 100%; }
img, video { height: auto; }
h1, h2, h3, p, figure, address, ul, ol, dl, dd { margin: 0; }
h1, h2, h3 { font-weight: 400; }
a { color: inherit; text-underline-offset: 0.18em; }
button, input, select, textarea { font: inherit; color: inherit; }
input, select, textarea { font-size: max(16px, 1em); }
a, button, label, summary, [role="button"], .ln { touch-action: manipulation; }
button, .btn, .choice, summary, .nav__links a, .menu__links a, .ln { -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }
:focus-visible { outline: 2px solid var(--gold-text); outline-offset: 3px; }
/* Over photos the gold ring disappears; use cream with a dark halo. */
.hero :focus-visible, .countdown :focus-visible, .venue :focus-visible { outline-color: var(--on-photo); box-shadow: 0 0 0 5px rgb(20 18 10 / 0.45); }
[hidden] { display: none !important; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip-link { position: absolute; left: var(--s-4); top: var(--s-4); z-index: 100; padding: var(--s-2) var(--s-4); background: var(--cream); color: var(--ink); transform: translateY(-300%); }
.skip-link:focus { transform: none; }
.sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
