@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400;1,500&family=Manrope:wght@400;500;600&display=swap');
:root{--ivory:#f7f5ee;--sage:#596858;--dark:#334231;--line:#ced2c5;--serif:'Cormorant Garamond',Georgia,serif;--sans:'Manrope',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--ivory);color:var(--dark);font:16px/1.7 var(--sans)}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid var(--sage);outline-offset:6px}header{min-height:102px;display:flex;align-items:center;justify-content:space-between;padding:20px 5.5%;border-bottom:1px solid var(--line);gap:30px}.wordmark{font:30px var(--serif);white-space:nowrap}.wordmark em{font-size:24px;padding:0 7px}nav{display:flex;gap:32px;font-size:14px}nav a:hover{text-decoration:underline;text-underline-offset:7px}.header-date{font-size:13px;letter-spacing:.16em}.hero{max-width:1600px;margin:auto;display:grid;grid-template-columns:1fr 1fr;min-height:690px;padding:48px 5.5% 65px;gap:3.5%}.hero-copy{padding:28px 0 15px}.eyebrow,.small-label,.section-number{font-size:12px;letter-spacing:.18em;font-weight:500}.eyebrow{margin:0 0 24px}.hero h1{font:400 clamp(80px,8.8vw,142px)/.86 var(--serif);letter-spacing:-.055em;margin:28px 0 35px}.hero h1 span{white-space:nowrap}.hero h1 em{font-size:.68em;font-weight:400;display:inline-block;padding-right:.12em}.hero-note{font-size:16px;max-width:300px}.hero-meta{display:grid;gap:7px;margin:37px 0 25px;font-size:12px;letter-spacing:.12em}.text-link{display:inline-flex;align-items:center;gap:55px;border-bottom:1px solid var(--sage);padding:8px 0;font-size:14px}.hero-visual{position:relative;min-height:560px;margin-left:12px}.venue-photo{height:100%;width:100%;object-fit:cover;position:absolute;inset:0;border-radius:180px 180px 0 0}.hero-visual:after{content:'';position:absolute;inset:50% 0 0;background:linear-gradient(transparent,#172815aa);pointer-events:none}.photo-label{position:absolute;bottom:32px;left:34px;color:white;z-index:1;font:italic 28px/1.15 var(--serif)}.date-seal{position:absolute;right:-22px;bottom:42px;background:var(--ivory);color:var(--sage);width:116px;height:116px;border-radius:50%;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;outline:1px solid var(--sage);outline-offset:-8px}.date-seal span{font:46px/1 var(--serif)}.date-seal i{font-size:12px;letter-spacing:.1em;font-style:normal;margin-top:5px}.welcome{background:var(--sage);color:var(--ivory);text-align:center;padding:82px 7% 68px}.welcome h2,h2{font:400 clamp(44px,5vw,70px)/1.05 var(--serif);letter-spacing:-.025em;margin:0 0 26px}h2 em{font-weight:400}.welcome>p:not(.eyebrow){color:#eeeee3}.facts{display:grid;grid-template-columns:repeat(3,1fr);max-width:1000px;margin:60px auto 0;border-top:1px solid #ffffff40;padding-top:35px}.facts>div{display:flex;flex-direction:column;gap:7px;border-right:1px solid #ffffff40}.facts>div:last-child{border:0}.facts strong{font:31px var(--serif);padding-top:7px}.facts>div>span:last-child{font-size:14px}.section{padding:88px 7%;border-bottom:1px solid var(--line);display:grid;grid-template-columns:22% 1fr;gap:35px}.section-number{padding-top:8px}.location{grid-template-columns:22% 1fr 29%;align-items:start}.location-main p{max-width:420px;margin-bottom:28px}.button{display:inline-flex;background:var(--sage);color:var(--ivory);padding:14px 24px;gap:45px;font-size:14px}.button:hover{background:var(--dark)}.location-note{border:1px solid var(--line);padding:34px 28px;margin-top:8px}.location-note p{font:32px/1.2 var(--serif);margin:38px 0}.location-note>span:last-child{font-size:13px;letter-spacing:.15em}.practical h2{margin-bottom:45px}.info-row{display:grid;grid-template-columns:30% 1fr;gap:28px;border-top:1px solid var(--line);padding:26px 0}.info-row h3{font:28px/1.2 var(--serif);margin:0}.info-row p{margin:0;max-width:520px}.rsvp{text-align:center;padding:87px 24px 90px;background:#e6e9df}.rsvp .eyebrow{display:block}.rsvp p{max-width:430px;margin:0 auto 25px}.pending{display:inline-block;border:1px solid #a5af9e;padding:10px 22px;font-size:14px}footer{text-align:center;padding:40px 20px 30px}.original-logo{width:110px;height:112px;position:relative;overflow:hidden;margin:0 auto}.original-logo img{position:absolute;width:367px;max-width:none;left:-128px;top:-31px;mix-blend-mode:multiply}footer p{font:36px var(--serif);margin:15px 0}footer>span{display:block;font-size:12px;letter-spacing:.15em}footer>a{display:inline-block;font-size:13px;margin-top:25px}.skip{position:fixed;left:15px;top:-100px;background:white;padding:10px;z-index:9}.skip:focus{top:10px}@media(min-width:1500px){.hero h1{font-size:145px}}@media(max-width:950px){header{flex-wrap:wrap;gap:15px;min-height:95px}.header-date{display:none}nav{gap:20px}.hero{min-height:auto;padding-top:30px;gap:25px}.hero h1{font-size:clamp(70px,10vw,100px)}.hero-visual{min-height:500px;margin:0}.hero-meta{font-size:11px}.location{grid-template-columns:1fr 1fr}.location .section-number{grid-column:1/-1}.section{padding:65px 6%;gap:25px}.practical{grid-template-columns:1fr}.facts strong{font-size:27px}.date-seal{right:-12px}}@media(max-width:600px){html{scroll-padding-top:20px}header{justify-content:center;padding:21px 15px 17px}.wordmark{font-size:29px}nav{width:100%;justify-content:center;gap:23px;font-size:13px}.hero{display:flex;flex-direction:column;padding:35px 7% 40px;gap:30px}.hero-copy{padding:0}.hero .eyebrow{margin-bottom:20px}.hero h1{font-size:clamp(72px,23vw,94px);line-height:.9;margin:0 0 25px}.hero-note{max-width:280px;margin-bottom:0}.hero-meta{margin:24px 0 14px;font-size:11px}.hero-visual{min-height:400px;margin:0 7px 0 0}.venue-photo{border-radius:150px 150px 0 0}.photo-label{font-size:27px;left:25px;bottom:28px}.date-seal{width:100px;height:100px;bottom:30px;right:-15px}.date-seal span{font-size:40px}.welcome{padding:60px 7% 50px}.welcome .eyebrow{font-size:11px}.welcome h2{font-size:46px}.welcome>p br{display:none}.facts{grid-template-columns:1fr;margin-top:35px;padding-top:8px}.facts>div{border-right:0;border-bottom:1px solid #ffffff40;padding:25px 0;gap:5px}.facts strong{font-size:32px}.section{padding:50px 7%;grid-template-columns:1fr;gap:28px}.location-note{padding:28px;margin-top:8px}.location-note p{margin:22px 0;font-size:34px}.info-row{grid-template-columns:1fr;gap:12px;padding:24px 0}.practical h2{margin-bottom:30px}.rsvp{padding:60px 7%}.rsvp h2{font-size:54px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Original wedding monogram in the navigation header. */
.header-logo{display:block;flex:0 0 80px;width:80px;height:82px}.header-logo .original-logo{display:block;width:80px;height:82px;margin:0}.header-logo .original-logo img{width:267px;left:-93px;top:-23px}header{padding-top:12px;padding-bottom:12px}@media(max-width:600px){header{padding-top:14px;padding-bottom:17px;gap:14px}.header-logo{flex-basis:80px}}

/* Invitation artwork leads; real venue photography stays in the venue section. */
.invitation-visual{display:flex;align-items:center;justify-content:center;margin-left:0;min-height:0}.invitation-visual:after{display:none}.invitation-art{display:block;width:100%;height:auto;max-height:620px;object-fit:contain;mix-blend-mode:multiply}.location{grid-template-columns:17% 1fr 40%;gap:30px}.venue-figure{margin:0}.venue-figure img{width:100%;height:370px;object-fit:cover;display:block}.venue-figure figcaption{font-size:12px;letter-spacing:.08em;margin-top:12px;color:var(--sage)}@media(max-width:950px){.location{grid-template-columns:1fr 1fr}.venue-figure img{height:350px}.invitation-art{max-height:530px}}@media(max-width:600px){.invitation-visual{min-height:0;margin:0}.invitation-art{max-height:none;width:100%}.location{grid-template-columns:1fr}.venue-figure img{height:auto;max-height:440px;object-fit:cover}.hero{gap:15px}}

.header-logo{flex:0 0 124px;width:124px;height:64px;display:flex;align-items:center}.header-monogram{display:block;width:124px;height:62px;object-fit:contain}@media(max-width:600px){.header-logo{flex-basis:124px;width:124px;height:64px}}

.rsvp-frame{display:block;width:100%;max-width:776px;height:820px;margin:38px auto 0;border:0;background:#e6e9df}.rsvp>p{max-width:550px}.rsvp{padding-bottom:65px}@media(max-width:600px){.rsvp{padding-left:5%;padding-right:5%}.rsvp-frame{height:930px;margin-top:28px}}

/* A portrait-led opening, preserving the entire proposal photograph. */
.proposal-hero{max-width:1440px;grid-template-columns:minmax(0,.92fr) minmax(0,1fr);align-items:center;gap:7%;padding:42px 6% 54px;min-height:0}
.proposal-hero .hero-copy{padding:0 0 24px}
.proposal-hero h1{font-size:clamp(80px,8.3vw,124px);margin:28px 0 32px}
.proposal-hero .hero-note{max-width:320px;font-size:17px}
.proposal-hero .hero-meta{font-size:13px;letter-spacing:.075em;line-height:1.8;margin:34px 0 22px}
.proposal-visual{margin:0;min-height:0;position:relative;width:100%;max-width:510px;justify-self:end}
.proposal-visual:after{display:none}
.proposal-photo{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:contain;border-radius:2px}
.proposal-visual figcaption{font:italic 20px/1.4 var(--serif);color:var(--sage);text-align:right;margin-top:12px}
@media(max-width:950px) and (min-width:601px){.proposal-hero{gap:5%;padding:35px 5% 42px}.proposal-hero h1{font-size:clamp(64px,9vw,85px)}.proposal-hero .hero-meta{font-size:12px}.proposal-hero .hero-note{font-size:16px}}
@media(max-width:600px){.proposal-hero{display:grid;grid-template-columns:1fr;gap:28px;padding:30px 6% 34px}.proposal-hero .hero-copy{text-align:center;padding:0}.proposal-hero .eyebrow{margin:0 0 18px}.proposal-hero h1{font-size:clamp(72px,21vw,110px);line-height:.91;margin:0 0 22px}.proposal-hero .hero-note{max-width:300px;margin:0 auto}.proposal-hero .hero-meta{margin:22px 0 14px;font-size:12px;gap:4px}.proposal-hero .text-link{gap:28px}.proposal-visual{max-width:440px;justify-self:center;margin:0}.proposal-visual figcaption{font-size:19px;margin-top:10px}}

/* Wedding signature on a genuinely transparent background. */
footer{padding:30px 6% 28px}.footer-signature{display:block;width:min(100%,650px);height:auto;margin:0 auto}footer>a{margin-top:4px}@media(max-width:600px){footer{padding:24px 6%}.footer-signature{width:100%}footer>a{margin-top:12px}}

/* Reusable photo gallery: native swipe, quiet controls and an expanded view. */
.photo-gallery{min-width:0;outline-offset:7px}.photo-gallery:focus-visible{outline:2px solid var(--sage)}.gallery-stage{position:relative;overflow:hidden;border-radius:3px;background:#e6e9df}.gallery-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;cursor:grab}.gallery-track::-webkit-scrollbar{display:none}.gallery-track.is-dragging{scroll-snap-type:none;cursor:grabbing;user-select:none}.gallery-slide{flex:0 0 100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always;margin:0}.gallery-slide img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;user-select:none}.photo-gallery button{cursor:pointer;font:inherit;color:inherit;-webkit-tap-highlight-color:transparent}.photo-gallery button:focus-visible,.gallery-close:focus-visible{outline:2px solid var(--sage);outline-offset:4px}.gallery-expand{position:absolute;right:14px;top:14px;width:44px;height:44px;border:1px solid #ffffff80;border-radius:50%;display:grid;place-items:center;background:#f7f5eee6;backdrop-filter:blur(12px);box-shadow:0 3px 12px #15220e15}.gallery-expand svg,.gallery-navigation svg{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.gallery-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 0 16px}.gallery-label{font-size:10px;letter-spacing:.17em;color:var(--sage)}.gallery-description p{font:italic 23px/1.25 var(--serif);margin:5px 0 0}.gallery-navigation{display:flex;align-items:center;gap:7px;flex:none}.gallery-navigation span{font-size:11px;letter-spacing:.08em;font-variant-numeric:tabular-nums;margin-right:7px;white-space:nowrap}.gallery-navigation button{display:grid;place-items:center;border:1px solid var(--line);background:transparent;border-radius:50%;width:44px;height:44px;transition:background .2s,color .2s}.gallery-navigation button:hover{background:var(--sage);color:var(--ivory)}.gallery-thumbnails{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.gallery-thumb{padding:0;border:0;background:none;border-radius:2px;overflow:hidden;opacity:.55;transition:opacity .2s;outline-offset:3px;min-height:44px}.gallery-thumb[aria-current=true]{opacity:1;box-shadow:0 0 0 2px var(--sage)}.gallery-thumb:hover{opacity:1}.gallery-thumb img{display:block;width:100%;height:50px;object-fit:cover}.gallery-hint{font-size:11px;color:var(--sage);margin:14px 0 0;letter-spacing:.025em}.gallery-expand,.gallery-navigation button,.gallery-thumbnails{visibility:hidden}.gallery-ready .gallery-expand,.gallery-ready .gallery-navigation button,.gallery-ready .gallery-thumbnails{visibility:visible}.location{grid-template-columns:12% minmax(0,.8fr) minmax(0,1.2fr);gap:32px}.location-main h2{font-size:clamp(45px,4.5vw,66px)}.gallery-dialog{width:min(1200px,96vw);max-width:1200px;max-height:96dvh;padding:54px 28px 22px;border:0;border-radius:5px;background:var(--ivory);color:var(--dark);overflow-y:auto}.gallery-dialog::backdrop{background:#152016dc;backdrop-filter:blur(8px)}.gallery-close{position:absolute;right:15px;top:8px;width:44px;height:44px;background:none;border:0;border-radius:50%;font:36px/1 var(--sans);cursor:pointer;color:var(--dark)}.gallery-expanded .gallery-slide img{height:min(60dvh,680px);aspect-ratio:auto;object-fit:contain;background:#e6e9df}.gallery-expanded .gallery-thumbnails{max-width:500px;margin:auto}.gallery-expanded .gallery-hint{text-align:center}.gallery-expanded .gallery-toolbar{padding-top:14px}.gallery-expanded .gallery-description p{font-size:25px}@media(max-width:950px){.location{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:28px}.location .section-number{grid-column:1/-1}.gallery-toolbar{align-items:flex-start;gap:8px}.gallery-description p{font-size:21px}.gallery-navigation{gap:4px}.gallery-navigation span{margin-right:2px;font-size:10px}.gallery-navigation button{width:40px;height:40px}.gallery-thumbnails{gap:6px}}@media(max-width:600px){.location{grid-template-columns:1fr;gap:28px}.gallery-toolbar{padding:17px 0}.gallery-description p{font-size:24px}.gallery-navigation button{width:44px;height:44px}.gallery-navigation span{font-size:11px;margin-right:5px}.gallery-thumb img{height:46px}.gallery-expand{right:12px;top:12px}.gallery-dialog{width:100vw;max-width:100vw;max-height:100dvh;height:100dvh;margin:0;padding:60px 16px 28px;border-radius:0}.gallery-expanded .gallery-slide img{height:54dvh}.gallery-expanded .gallery-description p{font-size:23px}.gallery-expanded .gallery-toolbar{gap:8px}.gallery-close{top:10px;right:12px}.gallery-expanded .gallery-thumbnails{margin-top:12px}}@media(prefers-reduced-motion:reduce){.photo-gallery *{scroll-behavior:auto!important;transition:none!important}}
