@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/cormorant-garamond-semibold.ttf) format('truetype');
}
@font-face {
  font-family: 'PT Serif';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/pt-serif-regular.ttf) format('truetype');
}
@font-face {
  font-family: 'PT Serif';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/fonts/pt-serif-bold.ttf) format('truetype');
}

:root{--paper:#ffffff;--ink:#382d28;--oxblood:#700d18;--bronze:#806022;--gold:#b58a45;--line:#d9cbb5;--muted:#65584e}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:'PT Serif',serif;font-size:17px;line-height:1.85}a{color:var(--oxblood);text-underline-offset:5px}a:focus-visible{outline:3px solid var(--gold);outline-offset:6px}h1,h2,.brand{font-family:'Cormorant Garamond',serif;font-weight:600}h1,h2,p{margin-top:0}.wrap{width:min(1200px,calc(100% - 96px));margin:auto}.skip{position:absolute;top:-100px;left:20px;background:white;padding:10px;z-index:5}.skip:focus{top:12px}
header{border-bottom:1px solid var(--line)}.header-inner{min-height:104px;display:flex;align-items:center;justify-content:center;gap:30px;padding:24px 0}.brand{font-size:29px;line-height:1.05;color:var(--oxblood);text-decoration:none}.brand small{display:block;margin-top:9px;font-family:'PT Serif',serif;font-size:10px;letter-spacing:.19em;text-transform:uppercase;color:var(--muted)}nav{display:flex;gap:30px;font-size:14px}nav a{text-decoration:none}nav a:hover{text-decoration:underline}
.hero{text-align:center;padding:75px 0 0}.eyebrow{font-size:11px;letter-spacing:.19em;text-transform:uppercase;color:var(--bronze);margin-bottom:20px}h1{font-size:clamp(45px,5.5vw,76px);line-height:1.08;color:var(--oxblood);letter-spacing:-.025em;margin-bottom:22px}.subtitle{font-size:19px;line-height:1.7;max-width:1100px;margin:0 auto}.hero-artwork{margin-top:48px}.hero-artwork img{aspect-ratio:auto;height:auto}
.sections{padding-top:88px}.story{display:grid;grid-template-columns:1fr 1.16fr;gap:70px;align-items:center;padding:0 0 90px;scroll-margin-top:32px}.story:nth-child(even){grid-template-columns:1.16fr 1fr}.story:nth-child(even) figure{grid-column:1;grid-row:1}.story:nth-child(even) .copy{grid-column:2;grid-row:1}.section-number{display:block;color:var(--bronze);letter-spacing:.18em;font-size:11px;margin-bottom:14px}h2{font-size:42px;line-height:1.13;color:var(--oxblood);margin-bottom:22px}.copy p{margin-bottom:0}figure{margin:0;padding:8px;border:1px solid var(--line);background:#ffffff;box-shadow:0 12px 30px #372f2110}figure img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain;background:#ffffff}
.invitation{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:65px 26px 58px;text-align:center;background:#ffffff}.invitation p{max-width:720px;margin:0 auto 18px}.invitation .closing{font-family:'Cormorant Garamond',serif;font-size:28px;color:var(--oxblood);line-height:1.4;margin-top:28px}.contact-pending{font-size:13px;color:var(--muted)}footer{padding:35px 0 40px}.footer-inner{display:flex;justify-content:space-between;align-items:start;gap:35px;font-size:12px;color:var(--muted)}footer p{margin:0}.footer-inner p:last-child{max-width:380px;text-align:right}
@media(max-width:900px){.wrap{width:calc(100% - 48px)}.story,.story:nth-child(even){gap:32px}h2{font-size:35px}body{font-size:16px}.story{padding-bottom:65px}}
@media(max-width:650px){.wrap{width:calc(100% - 36px)}.header-inner{min-height:105px;flex-direction:column;justify-content:center;gap:18px;padding:20px 0}.brand{text-align:center;font-size:26px}nav{gap:25px;font-size:12px}.hero{padding-top:43px}h1{font-size:45px}.subtitle{font-size:16px}.hero-artwork{margin-top:30px}.sections{padding-top:48px}.story,.story:nth-child(even){display:flex;flex-direction:column;gap:25px;align-items:stretch;padding-bottom:52px}.story .copy{order:0}.story figure{order:1}h2{font-size:36px;margin-bottom:17px}.section-number{margin-bottom:10px}.invitation{padding:42px 20px 30px}.footer-inner{display:block}.footer-inner p:last-child{text-align:left;margin-top:12px}.invitation .closing{font-size:25px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.brand-logo{display:block;width:240px;max-width:100%;height:auto}
@media(max-width:650px){.brand-logo{width:190px}}

/* Floral ornaments finish the page just above the footer. */
.header-inner{display:flex;justify-content:center;align-items:center;padding:24px 0 12px}
.footer-ornaments{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:80px;padding-top:24px;padding-bottom:10px}
.footer-flourish{display:block;width:100%;height:auto;aspect-ratio:4/1;object-fit:cover}
.footer-flourish-right{transform:scaleX(-1)}
@media(max-width:650px){.header-inner{padding:20px 0 10px}.brand-logo{width:160px}.footer-ornaments{gap:24px;padding-top:16px}}

/* Matching floral ornaments at both the header and footer. */
.header-inner{display:grid;grid-template-columns:minmax(0,1fr) 240px minmax(0,1fr);align-items:end;gap:24px;padding:24px 0 12px}
.header-flourish{display:block;width:100%;height:auto;aspect-ratio:4/1;object-fit:cover;margin-bottom:0}
.header-flourish-right{transform:scaleX(-1)}
@media(max-width:650px){.header-inner{grid-template-columns:minmax(0,1fr) 160px minmax(0,1fr);gap:8px;padding:20px 0 10px}.header-flourish{aspect-ratio:auto;object-fit:contain}}

/* Place closing flowers immediately above the invitation section rule. */
.invitation{padding-bottom:0}
.invitation .footer-ornaments{width:min(1200px,100%);padding-top:12px;padding-bottom:6px}

/* The cross is the focal point of the closing ornament. */
.invitation .footer-ornaments{width:min(940px,100%);grid-template-columns:minmax(0,1fr) 180px minmax(0,1fr);align-items:center;gap:32px;padding-top:8px;padding-bottom:12px}
.footer-cross{display:block;width:180px;height:auto}
.footer-ornaments .footer-flourish{max-width:300px;justify-self:center}
@media(max-width:650px){.invitation .footer-ornaments{grid-template-columns:minmax(0,1fr) 124px minmax(0,1fr);gap:10px}.footer-cross{width:124px}}
