@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500;1,600&family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&display=swap');
:root{--paper:#f7f0e4;--paper-deep:#eee1cf;--ink:#443827;--olive:#514b35;--gold:#a48b65;--rule:#cfc0a8;--muted:#6b6253;--max:1140px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;min-width:320px;background:var(--paper);color:var(--ink);font-family:'Libre Baskerville',Georgia,serif;font-size:15px;line-height:1.8;-webkit-font-smoothing:antialiased}
a{color:inherit}
button{font:inherit}
button:focus-visible,a:focus-visible{outline:3px solid #a47b48;outline-offset:4px}
.skip-link{position:absolute;top:-100px;left:1rem;z-index:1000;padding:.6rem 1rem;background:#fff;color:#222}
.skip-link:focus{top:1rem}
.site-header{background:var(--paper)}
.hero-desktop{width:100%;background:#f5ebda}
.hero-desktop img{display:block;width:100%;height:auto;max-height:460px;object-fit:cover;object-position:center}
.hero-mobile{display:none}
.main-nav{display:flex;justify-content:center;align-items:center;gap:clamp(2rem,7vw,7rem);background:var(--olive);min-height:61px;padding:.65rem 1rem}
.main-nav a{font:500 .81rem 'Libre Baskerville',serif;color:#f7f0e4;text-decoration:none;text-transform:uppercase;letter-spacing:.20em;border-bottom:1px solid transparent;padding:.45rem 0;transition:border-color .2s,color .2s}
.main-nav a:hover,.main-nav a:focus-visible{color:#e4d0ad;border-color:#e4d0ad}
.section-wrap{max-width:var(--max);margin:0 auto;padding-left:24px;padding-right:24px}
.intro{padding-top:78px;padding-bottom:76px;text-align:center}
.fine-line{display:flex;align-items:center;gap:18px;max-width:510px;margin:0 auto 35px;color:var(--gold);font-size:15px}
.fine-line:before,.fine-line:after{content:'';height:1px;background:var(--rule);flex:1}
.eyebrow{font-size:.76rem;line-height:1.6;letter-spacing:.26em;text-transform:uppercase;color:#8a7456;margin:0 0 11px}
h1,h2,h3,p{overflow-wrap:break-word}
h2,h3{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500}
.intro h2{font-size:clamp(2.7rem,5vw,4.35rem);line-height:1.06;margin:0 0 22px;font-style:italic}
.intro-copy{max-width:690px;margin:0 auto;color:var(--muted);font-size:.92rem;line-height:2}
.date-line{color:#967e5c;letter-spacing:.14em;margin:27px 0 0;font-size:.78rem}
.date-line span{padding:0 10px}
.gallery-section{padding:72px 0 94px;background-color:#f1e7d8;background-image:radial-gradient(circle at 30% 28%,rgba(255,255,255,.55),transparent 42%),radial-gradient(circle at 72% 77%,rgba(199,176,141,.18),transparent 36%);border-top:1px solid #e4d8c5;border-bottom:1px solid #ded1bc}
.section-heading{text-align:center;margin-bottom:39px}
.section-heading h2{font-size:clamp(3rem,5.7vw,4.8rem);line-height:1;margin:0 0 12px;font-style:italic}
.section-heading>p:not(.eyebrow){font-size:.87rem;color:var(--muted);margin:0}
.leaf-rule{font-size:27px;color:#977b53;line-height:1.2;margin-top:17px}
.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.photo-card{position:relative;display:block;width:100%;padding:5px;cursor:zoom-in;border:1px solid #dccdb6;background:#fffaf2;box-shadow:0 4px 13px rgba(68,56,39,.11);transition:transform .25s ease,box-shadow .25s ease}
.photo-card:before{content:'';position:absolute;inset:5px;z-index:1;border:1px solid rgba(255,255,255,.45);pointer-events:none}
.photo-card:hover{transform:translateY(-5px);box-shadow:0 11px 25px rgba(68,56,39,.17)}
.photo-card img{display:block;width:100%;height:245px;object-fit:cover;background:#e7d8c5}
.photo-card .zoom-symbol{position:absolute;right:18px;bottom:18px;display:flex;justify-content:center;align-items:center;width:34px;height:34px;background:rgba(47,40,31,.65);color:white;z-index:2;font-size:21px;border-radius:100%;opacity:0;transition:opacity .25s ease}
.photo-card:hover .zoom-symbol,.photo-card:focus-visible .zoom-symbol{opacity:1}
.gallery-placeholder{border:1px solid #d6c3a7;text-align:center;padding:65px 20px;background:rgba(255,250,242,.52);max-width:760px;margin:auto}
.gallery-placeholder[hidden],.gallery-error[hidden]{display:none}
.placeholder-ornament{font-size:2.4rem;color:#ab926f;display:block;margin-bottom:10px}
.gallery-placeholder h3{font-size:2.15rem;margin:0 0 8px;font-style:italic}
.gallery-placeholder p{margin:0;color:#756c5e;font-size:.85rem}
.gallery-error{text-align:center;color:#7b453b}
.closing{text-align:center;padding-top:72px;padding-bottom:85px}
.closing-mark{font-size:2.3rem;color:var(--gold)}
.closing p{font-size:clamp(1.7rem,3.9vw,2.65rem);font-style:italic;font-family:'Cormorant Garamond',Georgia,serif;line-height:1.3;margin:15px 0 22px}
.closing-names{font-family:'Cormorant Garamond',Georgia,serif;font-size:2rem;font-style:italic;color:#7f694c}
.closing-names span{padding:0 .18em}
.site-footer{background:#4c4630;padding:22px 18px;text-align:center;color:#e5dac9;font-size:.73rem;letter-spacing:.045em;line-height:1.8}
.site-footer a{text-decoration:underline;text-underline-offset:3px}
.site-footer a:hover{color:white}
.lightbox{max-width:none;max-height:none;width:100vw;height:100dvh;margin:0;padding:0;border:0;background:rgba(24,21,18,.96);color:#f9f6ed;overflow:hidden}
.lightbox::backdrop{background:rgba(20,19,15,.92)}
.lightbox-shell{position:relative;display:flex;width:100%;height:100%;align-items:center;justify-content:center;padding:68px 90px 44px}
.lightbox-figure{margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;min-height:0;max-width:100%;max-height:100%}
.lightbox-figure img{display:block;max-width:100%;max-height:calc(100dvh - 136px);width:auto;height:auto;object-fit:contain;box-shadow:0 16px 65px rgba(0,0,0,.22)}
.lightbox-figure figcaption{text-align:center;padding-top:12px;font-size:.77rem;color:#e0d4c2}
.lightbox-close,.lightbox-arrow{position:absolute;z-index:3;display:grid;place-items:center;color:#fff;background:transparent;border:0;cursor:pointer;line-height:1}
.lightbox-close{right:24px;top:18px;width:50px;height:50px;font-size:40px}
.lightbox-arrow{top:50%;transform:translateY(-50%);width:60px;height:80px;font-family:Georgia,serif;font-size:65px}
.lightbox-arrow.prev{left:10px}.lightbox-arrow.next{right:10px}
.lightbox-close:hover,.lightbox-arrow:hover{color:#dbc4a0}
@media(min-width:1600px){.hero-desktop img{max-height:540px}}
@media(max-width:900px){.gallery{gap:13px}.photo-card img{height:205px}}
@media(max-width:700px){
  .hero-desktop{display:none}
  .hero-mobile{display:flex;min-height:510px;position:relative;align-items:center;justify-content:center;text-align:center;background:#f5edde url('../images/hero-mobile.webp') center center/cover no-repeat}
  .hero-mobile-content{position:relative;z-index:1;max-width:92%;margin:23px auto 0;color:#392d20}
  .hero-eyebrow{display:block;font:400 .63rem Georgia,serif;letter-spacing:.28em;text-transform:uppercase;color:#8e7350;margin-bottom:18px}
  .hero-mobile h1{font:italic 500 clamp(3.4rem,12vw,5.1rem)/.95 'Cormorant Garamond',Georgia,serif;margin:0 0 17px;letter-spacing:-.028em;text-shadow:0 1px #fdf8eb}
  .ampersand{color:#8b7051;font-weight:400}
  .hero-ornament{display:block;font-size:2rem;line-height:1.3;color:#9d815e}
  .hero-mobile p{font:500 .82rem Georgia,serif;letter-spacing:.14em;margin:8px 0 0}
  .main-nav{gap:clamp(1.0rem,6vw,3.8rem);min-height:58px}
  .main-nav a{font-size:.64rem;letter-spacing:.12em}
  .intro{padding-top:55px;padding-bottom:54px}
  .fine-line{margin-bottom:25px}
  .gallery-section{padding:58px 0 67px}
  .gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .photo-card img{height:180px}
  .section-heading{margin-bottom:30px}
  .lightbox-shell{padding:65px 43px 40px}
  .lightbox-arrow{width:42px;font-size:48px}
  .lightbox-arrow.prev{left:0}.lightbox-arrow.next{right:0}
  .closing{padding-top:58px;padding-bottom:62px}
}
@media(max-width:440px){
  .hero-mobile{min-height:480px}
  .hero-mobile h1{font-size:3.6rem}
  .main-nav{gap:18px}
  .section-wrap{padding-left:17px;padding-right:17px}
  .gallery{gap:10px}
  .photo-card{padding:4px}
  .photo-card img{height:150px}
  .photo-card:before{inset:4px}
  .intro-copy{font-size:.86rem}
  .site-footer{font-size:.68rem}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.photo-card,.zoom-symbol{transition:none}}
