:root{--paper:#f8f6ef;--ink:#3f4937;--muted:#656c5c;--gold:#a18b56;--line:#d5d7c8;--serif:'Cormorant Garamond',Georgia,serif;--sans:'Manrope',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.75}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid var(--gold);outline-offset:6px}::selection{background:#dedec9}.skip-link{position:fixed;top:-100px;left:20px;background:var(--ink);color:white;padding:12px;z-index:10}.skip-link:focus{top:10px}.header{height:95px;max-width:1360px;margin:auto;padding:0 6%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.monogram{font-family:var(--serif);font-size:35px;letter-spacing:-3px;line-height:1}.monogram span{font-size:27px;color:var(--gold);font-style:italic;padding:0 4px}.header nav{display:flex;align-items:center;gap:38px;font-size:14px}.header nav a{padding:9px 0}.header nav a:hover,.text-link:hover{color:#85703c}.header nav a[aria-current="page"]{border-bottom:1px solid var(--gold)}.hero{max-width:1360px;min-height:750px;position:relative;margin:auto;display:grid;grid-template-columns:1.05fr 1fr;gap:60px;padding:64px 10% 105px;align-items:center;overflow:hidden}.hero-copy{text-align:center;position:relative;z-index:1;padding-top:20px}.eyebrow{font-size:12px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;margin:0 0 26px}.hero h1{font-family:var(--serif);font-weight:400;font-size:108px;letter-spacing:-.055em;line-height:.98;margin:26px 0}.hero .ampersand{color:var(--gold);font-family:'Italianno',cursive;font-size:95px;font-weight:400;letter-spacing:-.06em;display:inline-block;transform:translateY(10px)}.hero-invite{font-family:var(--serif);font-size:25px;line-height:1.45;margin:25px 0;color:var(--muted)}.date-line{font-size:13px;display:flex;gap:14px;align-items:center;justify-content:center;margin:27px 0 31px}.tiny-diamond{font-size:7px;color:var(--gold)}.button{display:inline-flex;align-items:center;justify-content:center;gap:35px;background:var(--ink);color:var(--paper);padding:15px 26px;font-size:14px;min-height:54px;transition:background .2s,transform .2s}.button:hover{background:#59614b;transform:translateY(-2px)}.button span{font-size:20px;line-height:1}.hero-portrait{position:relative;max-width:430px;width:100%;justify-self:center;padding:10px}.arch{height:510px;border-radius:230px 230px 3px 3px;overflow:hidden;outline:1px solid #b4b998;outline-offset:10px}.arch img{height:100%;width:100%;object-fit:cover;object-position:50% 48%;display:block}.photo-note{font-family:'Italianno',cursive;font-size:46px;line-height:1.1;transform:rotate(-7deg);margin:15px -15px 0 0;text-align:right;color:var(--ink)}.portrait-date{position:absolute;right:-33px;top:45%;writing-mode:vertical-rl;font-size:12px;letter-spacing:.3em;color:var(--muted)}.scroll-note{position:absolute;bottom:27px;left:50%;transform:translateX(-50%);font-size:11px;letter-spacing:.19em;text-transform:uppercase;white-space:nowrap}.scroll-note span{display:block;text-align:center;font-size:21px;margin-top:6px;color:var(--gold)}.section{padding:90px max(7%,calc((100vw - 1120px)/2));scroll-margin-top:20px}h2{font-family:var(--serif);font-size:62px;line-height:1.06;letter-spacing:-.035em;font-weight:400;margin:0 0 24px}h2 em{font-weight:400}.celebration{text-align:center;background:#eef0e7;border-top:1px solid #e1e4d8;border-bottom:1px solid #e1e4d8}.intro{color:var(--muted);font-size:16px;line-height:1.85}.event-details{display:grid;grid-template-columns:1fr 1fr;max-width:820px;margin:50px auto 25px}.event-details>div{padding:10px 32px}.event-details>div+div{border-left:1px solid #cdd1bf}.event-details .eyebrow{margin-bottom:13px}.event-details h3{font-family:var(--serif);font-weight:500;font-size:30px;margin:0 0 6px}.event-details p:not(.eyebrow),address{font-style:normal;font-size:14px;color:var(--muted);margin:0}.text-link{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;font-size:13px;margin-top:16px;border-bottom:1px solid var(--gold);padding-bottom:3px}.text-link span{margin-left:16px}.invitation-link{margin-top:24px}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:42px}.section-heading h2{margin:0}.section-heading .eyebrow{margin-bottom:16px}.section-heading>p{font-family:var(--serif);font-size:23px;color:var(--muted);line-height:1.4;margin:0 0 5px}.photo-grid{display:grid;grid-template-columns:1fr 1.2fr 1fr;align-items:start;gap:26px}.photo-grid figure{margin:0}.photo-grid figure:nth-child(2){padding-top:45px}.photo-grid img{width:100%;height:330px;display:block;object-fit:cover}.photo-grid figure:nth-child(2) img{height:350px}.photo-grid figcaption{font-family:var(--serif);font-size:21px;font-style:italic;text-align:center;margin-top:14px}.rsvp{position:relative;overflow:hidden;text-align:center;border-top:1px solid var(--line);padding-top:85px;padding-bottom:90px}.rsvp h2{font-size:76px}.rsvp p:not(.eyebrow){margin:12px 0}.rsvp strong{font-weight:600}.rsvp .rsvp-note{color:var(--muted);font-family:var(--serif);font-size:23px;line-height:1.5;margin:18px 0 28px}footer{padding:42px 24px;text-align:center;background:var(--ink);color:var(--paper)}.footer-names{font-family:'Italianno',cursive;font-size:49px;line-height:1.2}footer p{font-size:12px;letter-spacing:.08em;margin:10px 0}footer p span{padding:0 10px}.footer-love{font-family:var(--serif);font-style:italic;font-size:18px;color:#d1d6c4}@media(min-width:1500px){.hero{padding-left:135px;padding-right:135px}}@media(max-width:1050px){.hero{gap:36px;padding-left:6%;padding-right:7%;min-height:710px}.hero h1{font-size:92px}.arch{height:470px}.date-line{flex-wrap:wrap;gap:9px}.photo-grid img{height:280px}.photo-grid figure:nth-child(2) img{height:300px}}@media(max-width:700px){html{scroll-padding-top:30px}.header{height:79px;padding:0 6%}.monogram{font-size:31px}.header nav{gap:18px;font-size:12px}.hero{grid-template-columns:1fr;gap:38px;padding:42px 8% 95px;min-height:0}.hero-copy{padding:0}.eyebrow{font-size:11px;letter-spacing:.16em;margin-bottom:20px}.hero h1{font-size:88px;margin:20px 0;line-height:.92}.hero .ampersand{font-size:78px}.hero-invite{font-size:24px;margin:23px 0}.date-line{font-size:12px;margin:22px 0 25px}.hero-portrait{width:82%;max-width:340px}.arch{height:380px}.photo-note{font-size:39px}.portrait-date{right:-20px}.scroll-note{bottom:20px}.section{padding:62px 7%}h2{font-size:47px}.intro{font-size:15px}.desktop-break{display:none}.event-details{grid-template-columns:1fr;margin:30px auto 10px;gap:22px}.event-details>div{padding:16px 0}.event-details>div+div{border-left:0;border-top:1px solid #cdd1bf;padding-top:28px}.event-details h3{font-size:29px}.section-heading{display:block;margin-bottom:30px}.section-heading>p{font-size:21px;margin-top:17px}.photo-grid{grid-template-columns:1fr 1fr;gap:18px}.photo-grid figure:nth-child(2){padding-top:0;grid-column:1 / -1;grid-row:1}.photo-grid img{height:240px}.photo-grid figure:nth-child(2) img{height:320px}.photo-grid figcaption{font-size:18px;line-height:1.35}.rsvp h2{font-size:61px}.rsvp .rsvp-note{font-size:21px}}@media(max-width:380px){.header nav{gap:12px;font-size:11px}.hero h1{font-size:78px}.arch{height:340px}.photo-grid img{height:200px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}

/* The photo grid remains usable if JavaScript is unavailable. */
.carousel.is-ready .photo-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:0;isolation:isolate}
.carousel.is-ready .photo-grid figure{grid-area:1/1;padding:0;margin:0;opacity:0;visibility:hidden;transition:opacity .7s ease,visibility .7s;pointer-events:none}
.carousel.is-ready .photo-grid figure.is-active{opacity:1;visibility:visible;pointer-events:auto;z-index:1}
.carousel.is-ready .photo-grid img{width:100%;height:510px;object-fit:contain;background:#eef0e7}
.carousel.is-ready .photo-grid figcaption{font-size:24px;margin-top:18px}
.carousel-controls{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:24px;border-top:1px solid var(--line);padding-top:20px}
.carousel-controls[hidden]{display:none}
.carousel-controls button{min-width:46px;min-height:46px;padding:10px 16px;border:1px solid var(--line);background:transparent;color:var(--ink);font:500 14px var(--sans);cursor:pointer;transition:background .2s}
.carousel-controls button:hover{background:#e8ebdf}
.carousel-controls button:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.carousel-navigation{display:flex;align-items:center;gap:20px}
.carousel-navigation button{font-size:22px}
.carousel-count{font-size:14px;min-width:40px;text-align:center;font-variant-numeric:tabular-nums}
@media(max-width:700px){.carousel.is-ready .photo-grid img{height:400px}.carousel.is-ready .photo-grid figcaption{font-size:22px}.carousel-navigation{gap:10px}.carousel-controls{gap:10px}}
@media(max-width:380px){.carousel.is-ready .photo-grid img{height:340px}.carousel-controls button{padding:10px}.carousel-navigation{gap:6px}}
@media(prefers-reduced-motion:reduce){.carousel.is-ready .photo-grid figure,.carousel-controls button{transition:none}}

.hero-botanical{display:block;width:280px;max-width:85%;height:auto;object-fit:contain;margin:0 auto 22px;pointer-events:none}
@media(max-width:700px){.hero-botanical{width:230px;margin-bottom:22px}}

.faq{display:grid;grid-template-columns:.9fr 1.1fr;gap:60px;border-top:1px solid var(--line);background:#eef0e7}.faq-heading .eyebrow{margin-bottom:22px}.faq-list{margin:0}.faq-list>div{padding:25px 0;border-bottom:1px solid #cdd1bf}.faq-list>div:first-child{padding-top:0}.faq-list>div:last-child{border-bottom:0;padding-bottom:0}.faq-list dt{font-family:var(--serif);font-size:29px;font-weight:500;line-height:1.25;margin-bottom:12px}.faq-list dd{margin:0;color:var(--muted);font-size:16px;line-height:1.8}.faq-list dd a:not(.text-link){text-decoration:underline;text-underline-offset:3px}.header .monogram{flex-shrink:0}.header nav{flex-wrap:wrap;justify-content:flex-end}
@media(max-width:700px){.faq{grid-template-columns:1fr;gap:28px}.faq-list dt{font-size:27px}.header{height:auto;min-height:79px;gap:22px;padding-top:14px;padding-bottom:14px}.header nav{gap:6px 16px}.header nav a{padding:3px 0}}

.hero-carousel .arch{position:relative}.hero-carousel .arch figure{margin:0;width:100%;height:100%}.hero-carousel .arch figure:not(:first-child){display:none}.hero-carousel.is-ready .arch figure{display:block;position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .8s ease,visibility .8s}.hero-carousel.is-ready .arch figure.is-active{opacity:1;visibility:visible}.hero-carousel .carousel-controls{margin-top:24px;padding-top:0;border:0;gap:8px}.hero-carousel .carousel-controls button{padding:8px;font-size:12px}.hero-carousel .carousel-navigation{gap:8px}.hero-carousel .carousel-navigation button{font-size:20px;min-width:38px}.hero-carousel .carousel-count{min-width:32px}.hero-carousel .photo-note{margin-top:12px}
@media(prefers-reduced-motion:reduce){.hero-carousel.is-ready .arch figure{transition:none}}

/* Three independent piles of photographic prints. */
.photo-stacks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,4vw,58px);padding:30px 14px 40px;align-items:start}
.photo-stack{min-width:0;position:relative;isolation:isolate}
.photo-stack:nth-child(2){margin-top:36px}
.photo-stack:nth-child(3){margin-top:12px}
.photo-stack figure{margin:0 0 22px;background:#fffefa;padding:10px 10px 30px;border:1px solid #e5e2d8;box-shadow:0 7px 18px #303b2520}
.photo-stack img{display:block;width:100%;aspect-ratio:3/4;height:auto;object-fit:contain;background:#f0efe9}
.photo-stack.stack-ready{aspect-ratio:3/4}
.photo-stack.stack-ready figure{position:absolute;inset:0;margin:0;opacity:0;visibility:hidden;transform:rotate(var(--tilt));transform-origin:50% 80%;pointer-events:none}
.photo-stack.stack-ready img{height:100%;aspect-ratio:auto}
.photo-stack.stack-ready .stack-top{opacity:1;visibility:visible;z-index:3;box-shadow:0 9px 22px #303b2528}
.photo-stack.stack-ready .stack-middle{opacity:1;visibility:visible;z-index:2;transform:translate(5px,8px) rotate(calc(var(--tilt) + 3deg))}
.photo-stack.stack-ready .stack-back{opacity:1;visibility:visible;z-index:1;transform:translate(-5px,15px) rotate(calc(var(--tilt) - 3deg))}
.photo-stack.stack-ready .is-arriving{animation:place-print 950ms cubic-bezier(.2,.7,.2,1) both}
@keyframes place-print{from{opacity:0;transform:translate(10px,-32px) rotate(calc(var(--tilt) + 6deg)) scale(1.06);box-shadow:0 22px 38px #303b251a}to{opacity:1;transform:translate(0,0) rotate(var(--tilt)) scale(1);box-shadow:0 9px 22px #303b2528}}
@media(max-width:700px){.photo-stacks{gap:18px;padding:22px 6px 35px}.photo-stack figure{padding:5px 5px 15px}.photo-stack:nth-child(2){margin-top:24px}}
@media(max-width:480px){.photo-stacks{grid-template-columns:minmax(0,1fr);gap:48px;padding:20px 24px 35px}.photo-stack.stack-ready{width:100%;max-width:300px;justify-self:center}.photo-stack:nth-child(2),.photo-stack:nth-child(3){margin-top:0}.photo-stack figure{padding:9px 9px 26px}}
@media(prefers-reduced-motion:reduce){.photo-stack.stack-ready .is-arriving{animation:none}}
/* A compact, touch-friendly mobile welcome. */
.mobile-nav{display:none}.header{position:relative}.hero-actions{display:flex;flex-direction:column;align-items:center;gap:8px}.hero-details{display:inline-flex;align-items:center;justify-content:center;min-height:44px;font-size:13px;text-decoration:underline;text-underline-offset:4px}.date-line{flex-wrap:wrap;gap:7px 12px}.date-location{flex-basis:100%}.arrow-icon{display:block;flex-shrink:0}.mobile-menu summary:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
@media(max-width:700px){
.header{min-height:68px;padding:10px 20px;gap:16px}.header .desktop-nav{display:none}.header .monogram{font-size:30px}.mobile-nav{display:flex;align-items:center;gap:12px}.mobile-rsvp{display:inline-flex;align-items:center;justify-content:center;background:var(--ink);color:var(--paper);min-height:44px;padding:0 18px;font-size:12px;border-radius:4px}.mobile-menu summary{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 6px;font-size:13px;cursor:pointer;list-style:none}.mobile-menu summary::-webkit-details-marker{display:none}.header .mobile-menu nav{position:absolute;top:calc(100% - 1px);left:0;right:0;z-index:20;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 10px 20px #3f49370c;display:flex;flex-direction:column;align-items:stretch;gap:0;padding:8px 20px 16px}.header .mobile-menu:not([open]) nav{display:none}.header .mobile-menu nav a{display:flex;align-items:center;min-height:48px;padding:10px 8px;font-size:15px}.hero{padding:24px 20px 64px;gap:28px}.hero-botanical{width:170px;max-width:65%;margin:0 auto 14px}.hero .eyebrow{font-size:10px;letter-spacing:.15em;margin:0 0 12px}.hero h1{font-size:clamp(58px,17vw,74px);line-height:.94;margin:12px 0 16px}.hero .ampersand{font-size:.84em;transform:translateY(5px)}.hero-invite{font-size:21px;line-height:1.35;margin:14px 0}.date-line{font-size:12px;line-height:1.55;margin:15px 0 18px;gap:3px 10px}.hero-actions{gap:2px}.hero-actions .button{min-height:48px;min-width:210px;padding:12px 24px;gap:24px;border-radius:4px}.hero-details{font-size:12px;min-height:44px}.hero-portrait{width:83%;max-width:330px;padding:8px}.arch{height:365px}.photo-note{font-size:35px}.portrait-date{right:-16px;font-size:11px}.scroll-note{bottom:16px;font-size:10px}.section{padding-top:48px;padding-bottom:48px}
}
@media(max-width:360px){.header{padding-left:16px;padding-right:16px}.hero{padding-left:16px;padding-right:16px}.hero-invite{font-size:19px}.hero-botanical{width:150px}.arch{height:320px}}
/* Mobile has its own photo-first composition rather than a stacked desktop hero. */
.mobile-welcome{display:none}
@media(max-width:700px){
.hero{display:flex;flex-direction:column;gap:0;padding:14px 20px 20px;min-height:0;overflow:visible}.hero-copy{display:contents}.hero-copy>.hero-botanical,.hero-copy>.eyebrow,.hero-copy>.hero-invite{display:none}.hero h1{order:1;font-size:clamp(35px,9.5vw,52px);line-height:1.12;letter-spacing:-.035em;white-space:nowrap;text-align:center;margin:0 0 16px}.hero h1 br{display:none}.hero .ampersand{font-size:1em;transform:none;margin:0 3px}.hero-portrait{order:2;flex:none;width:min(78vw,300px);max-width:100%;padding:6px;margin:0 auto 12px}.hero-portrait .arch{height:340px;height:min(42svh,360px);min-height:0;border-radius:180px 180px 3px 3px;outline-offset:6px}.hero-portrait .photo-note,.hero-portrait .portrait-date{display:none}.hero .date-line{order:3;margin:8px 0 12px;font-size:12px;line-height:1.5;text-align:center}.hero .hero-actions{order:4;width:100%;gap:0}.hero-actions .button{width:min(100%,300px);min-height:46px}.hero .scroll-note{display:none}.mobile-welcome{display:block;text-align:center;padding:28px 24px 36px;border-top:1px solid var(--line)}.mobile-welcome img{display:block;width:170px;max-width:60%;height:auto;margin:0 auto 18px}.mobile-welcome .eyebrow{font-size:10px;letter-spacing:.15em;margin:0 0 12px}.mobile-welcome p:last-child{font:23px/1.4 var(--serif);color:var(--muted);margin:0}
}
@media(max-width:700px) and (max-height:650px){.hero{padding-top:10px}.hero h1{font-size:34px;margin-bottom:12px}.hero-portrait .arch{height:36svh}.hero .date-line{margin:6px 0 8px}}

@media(max-width:700px){.hero h1{display:flex;align-items:baseline;justify-content:center;gap:.22em}.hero h1 .ampersand{font-family:var(--serif);font-style:italic;font-size:.85em;letter-spacing:0;margin:0;line-height:1;transform:none}.hero h1 .given-name{display:block}}

/* Swipe photos horizontally while retaining native page scrolling and zoom. */
.hero-carousel .arch,.photo-stack{touch-action:pan-y pinch-zoom;user-select:none;-webkit-user-select:none}
.hero-carousel .arch:focus-visible,.photo-stack:focus-visible{outline:2px solid var(--gold);outline-offset:8px}
.hero-carousel .arch img,.photo-stack img{-webkit-user-drag:none}
