:root{--ink:#123f35;--paper:#faf9f1;--white:#fffffa;--green:#27664f;--muted:#52675b;--line:#cbd9c5;--serif:'Cormorant Garamond',Georgia,serif;--sans:'Manrope',Arial,sans-serif;--script:'La Belle Aurore','Cormorant Garamond',cursive;--gutter:clamp(1.25rem,5vw,4rem);--content:75rem}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height,6rem) + 1rem)}body{margin:0;background:var(--paper);color:var(--ink);font:400 1rem/1.75 var(--sans)}img{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--green);outline-offset:5px}::selection{background:#cee3ba;color:var(--ink)}.skip-link{position:fixed;left:1rem;top:-10rem;padding:1rem;background:var(--ink);color:white;z-index:99}.skip-link:focus{top:1rem}
.site-header{position:sticky;top:0;z-index:30;width:100%;min-height:6rem;margin:auto;padding-inline:max(var(--gutter),calc((100% - var(--content))/2));background:var(--paper);border-bottom:1px solid #123f3514;display:flex;align-items:center;justify-content:space-between;gap:2rem}.monogram{font:400 2.4rem/1 var(--serif);white-space:nowrap;letter-spacing:-.06em;min-height:44px;display:inline-flex;align-items:center}.monogram span{font-style:italic;color:var(--green);margin:0 .06em}.site-header nav{display:flex;align-items:center;justify-content:center;gap:clamp(1rem,3vw,2.5rem);flex-wrap:wrap}nav a{font-size:.875rem;padding:.65rem .15rem;min-height:44px;display:flex;align-items:center}nav a:hover,.footer-links a:hover{text-decoration:underline;text-underline-offset:5px}.header-date{font-size:.875rem;letter-spacing:.08em;white-space:nowrap}
main{overflow:clip}main section{scroll-margin-top:0}.hero{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(2.5rem,6vw,5rem);width:min(100% - 2*var(--gutter),var(--content));margin:2rem auto 7rem;min-height:0}.hero-copy{text-align:center;min-width:0;padding:1.5rem 0}.eyebrow{font-size:.875rem;letter-spacing:.06em;font-weight:500;color:#486e53;margin:0 0 1.5rem}.hero-copy>.eyebrow{font:400 clamp(1.8rem,2.6vw,2.4rem)/1.4 var(--script);letter-spacing:0;color:var(--green);margin-bottom:1.5rem;transform:rotate(-3deg)}.hero h1{display:flex;flex-direction:column;align-items:center;gap:.06em;font:400 clamp(3.5rem,6.2vw,6.7rem)/1 var(--serif);letter-spacing:-.045em;margin:0 0 1.75rem}.name-line{display:block;max-width:100%}.hero h1 .amp{display:block;font:italic 400 .48em/1 var(--serif);letter-spacing:0;color:var(--green);margin:.1em 0}.hero-details p{font:400 2rem/1.3 var(--serif);margin:0 0 .4rem}.hero-details span{font-size:.9375rem;color:var(--muted)}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;max-width:100%;padding:.8rem 1.75rem;border:1px solid var(--green);border-radius:2rem;font:600 .875rem/1.5 var(--sans);text-align:center;cursor:pointer;transition:background .2s,color .2s}.button-dark,.hero .button-light{background:#19543f;color:var(--paper)}.button-dark:hover,.hero .button-light:hover{background:#103e2e}.hero .button{margin-top:1.5rem}.hero-side-note{display:block;font:400 1.45rem/1.4 var(--script);color:#4e7659;margin-top:1.4rem;transform:rotate(-3deg)}
.hero-photo{position:relative;width:100%;max-width:33rem;aspect-ratio:4/5;margin:auto;transform:rotate(1.5deg)}.hero-photo:before{content:'';position:absolute;inset:-.6rem;border:1px solid #72946680;border-radius:48% 48% .35rem .35rem;pointer-events:none}.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:53% 50%;border-radius:48% 48% .3rem .3rem;box-shadow:0 12px 32px #15472d18}.photo-caption{position:absolute;right:12%;bottom:-3.8rem;font:400 clamp(1.6rem,2.5vw,2.2rem)/1.3 var(--script);color:var(--green);transform:rotate(-5deg);white-space:nowrap}
.section-pad{padding:clamp(4rem,7vw,7rem) max(var(--gutter),calc((100% - var(--content))/2))}h2{font:400 clamp(2.8rem,4.6vw,4.75rem)/1.06 var(--serif);letter-spacing:-.035em;margin:0 0 1.5rem}h2 em{font-weight:400}.welcome{position:relative;text-align:center;padding-top:2rem;padding-bottom:6rem}.welcome h2{font-size:clamp(2.8rem,4.6vw,4.75rem)}.welcome-text{max-width:36rem;margin:0 auto;color:var(--muted)}.welcome-signature{font-size:.875rem;margin-top:1.5rem}.welcome-signature span{display:block;font:400 2.15rem/1.5 var(--script);color:var(--green);margin-top:.5rem}
.day-section{background:#e7efdc;border-radius:50% 50% 0 0 / 2.5rem 2.5rem 0 0}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:2rem;margin-bottom:3rem}.section-heading h2{margin:0}.day-date{padding:1.5rem 2rem;text-align:center;border:1px solid #8caa8077;border-radius:8rem 8rem .65rem .65rem;background:#f8faefaa;flex:0 1 auto}.day-date>span{font-size:.875rem;color:var(--muted)}.day-date p{font:400 2rem/1.3 var(--serif);margin:.3rem 0 1rem}.text-link{display:inline-block;font:400 .875rem/1.6 var(--sans);min-height:44px;padding:.6rem 0;border:0;border-bottom:1px solid currentColor;background:none;color:inherit;cursor:pointer;border-radius:0}.text-link:hover{color:#3b764d}.timeline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.5rem}.timeline-event{min-width:0;text-align:center;border-top:1px dashed #96b084;padding-top:1.75rem}.event-time{font:400 clamp(2.6rem,3.5vw,3.4rem)/1.2 var(--serif);color:var(--green);margin:0 0 1rem;letter-spacing:-.03em}.event-time span{font-size:1.4rem}.event-word{font-size:clamp(2.3rem,3.2vw,3rem)}.timeline-event h3{font-size:1rem;font-weight:600;margin:0 0 .6rem}.timeline-event>p:not(.event-time){font-size:1rem;color:var(--muted);max-width:20rem;margin:auto}.time-zone{font-size:.875rem;text-align:center;color:#506a48;margin:2.5rem 0 0}
.proposal-section{padding:5rem var(--gutter) 3rem}.proposal-photo{max-width:68rem;margin:auto;padding:.7rem .7rem 0;background:var(--white);transform:rotate(-1deg);box-shadow:0 12px 32px #164e3415}.proposal-photo img{width:100%;aspect-ratio:12/7;object-fit:cover}.proposal-photo figcaption{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem .7rem}.proposal-photo figcaption span:first-child{font:400 2rem/1.4 var(--script);color:var(--green)}.proposal-photo figcaption span:last-child{font-size:.875rem;color:var(--muted)}
.venue-section{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(2rem,6vw,5rem)}.venue-intro>p:last-child{max-width:29rem;color:var(--muted)}.venue-card{padding:3.5rem 2rem 1.75rem;border:1px solid #9bb786;border-radius:10rem 10rem .65rem .65rem;background:#eef4e5;text-align:center;box-shadow:.5rem .8rem 0 #b7cc9733;min-width:0}.venue-overline{font-size:.875rem;letter-spacing:.08em;color:#486c45}.venue-card h3{font:400 clamp(2.4rem,3.4vw,3rem)/1.1 var(--serif);letter-spacing:-.025em;margin:1.5rem 0}.venue-card address{font-size:1rem;font-style:normal}.venue-location{font-size:.875rem;color:var(--muted);margin-top:1rem}.venue-actions{display:flex;align-items:center;justify-content:center;gap:1rem 1.5rem;flex-wrap:wrap;margin-top:1.5rem}.copy-status{font-size:.875rem;min-height:1.5em;margin:.5rem 0 0;color:var(--muted);overflow-wrap:anywhere}
.registry-section{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2rem,6vw,6rem);background:#123f35;color:var(--paper);border-radius:50% 50% 0 0 / 3rem 3rem 0 0;position:relative;overflow:hidden}.registry-label{align-self:center;min-width:0}.registry-label .eyebrow{color:#cbdcba}.registry-amp{display:block;font:400 clamp(2.8rem,4vw,4.25rem)/1.3 var(--script);color:#c1dba8;transform:rotate(-6deg);margin:2rem 0}.registry-label:after{content:'';display:block;width:100%;max-width:22rem;aspect-ratio:3/2;background:url('assets/fern.webp') center/contain no-repeat;transform:rotate(12deg);opacity:.6}.registry-copy{max-width:36rem;min-width:0}.registry-copy h2{font-size:clamp(2.8rem,4.5vw,4.6rem)}.registry-lead{font:italic 400 1.75rem/1.5 var(--serif);color:#d9e9b5;margin:1.5rem 0 1rem}.registry-copy>p:not(.registry-lead){color:#e8efdb}.registry-copy .button{margin-top:1.25rem;border-color:#c7ddae;color:#e8f1d4;background:transparent}.registry-copy .button:hover{background:#e8f1d4;color:#123f35}.registry-note{display:block;color:#cadbc4;font-size:.875rem;margin-top:.9rem}
.details-section{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2rem,6vw,6rem)}.details-heading>p:last-child{color:var(--muted)}.faq-list{min-width:0}.faq-list details{border-top:1px solid #c5d7ba}.faq-list details:last-child{border-bottom:1px solid #c5d7ba}.faq-list summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:1rem;cursor:pointer;padding:1.4rem 0;font-size:1rem;font-weight:500;line-height:1.6}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary>span{flex-shrink:0;font:400 1.8rem/1 var(--serif);color:var(--green);transition:transform .2s}.faq-list details[open] summary>span{transform:rotate(45deg)}.faq-answer{color:var(--muted);font-size:1rem;padding:0 1rem 1.5rem 0}.faq-answer p{margin:0 0 .75rem}.faq-answer p:last-child{margin:0}
.closing{position:relative;text-align:center;background:#dfeacc;border-radius:50% 50% 0 0 / 3rem 3rem 0 0;padding:5rem var(--gutter);overflow:hidden;isolation:isolate}.closing-title{font:400 clamp(3.7rem,6vw,6.5rem)/1.05 var(--serif);letter-spacing:-.04em;margin:1.5rem 0}.closing-title em{font:400 .95em/1.3 var(--script);color:var(--green)}.closing:before,.closing:after{content:'';position:absolute;background:center/contain no-repeat;pointer-events:none;z-index:-1;opacity:.5}.closing:before{background-image:url('assets/fern.webp');width:20rem;height:16rem;right:-4rem;top:0;transform:rotate(-75deg)}.closing:after{background-image:url('assets/monstera.webp');width:14rem;height:15rem;left:-3rem;bottom:-3rem;transform:rotate(35deg)}footer{padding:0 max(var(--gutter),calc((100% - var(--content))/2)) 2.5rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;background:#dfeacc}footer p,.footer-links{font-size:.875rem}.footer-links{display:flex;gap:1.5rem;flex-wrap:wrap}.footer-links a{min-height:44px;display:flex;align-items:center}footer>span{font:400 1.6rem/1.4 var(--script);color:var(--green)}

@media(max-width:75rem){footer>span{display:none}}
@media(max-width:55rem){.header-date{display:none}.site-header{min-height:5rem;gap:1rem}.hero{gap:2rem;margin-top:1.5rem;margin-bottom:5.5rem}.hero h1{font-size:clamp(3rem,7vw,4rem)}.hero-copy>.eyebrow{font-size:1.65rem}.hero-details p{font-size:1.75rem}.hero-side-note{display:none}.hero-photo{aspect-ratio:4/5}.photo-caption{font-size:1.65rem;right:5%;bottom:-3rem}.venue-section,.details-section{grid-template-columns:1fr;gap:2rem}.venue-intro{text-align:center}.venue-intro>p:last-child{margin:0 auto;max-width:36rem}.venue-card{width:100%;max-width:34rem;margin:auto}.details-heading>p:last-child{margin-bottom:0}.registry-section{gap:2rem}.registry-copy h2{font-size:3rem}.timeline{gap:1.5rem}}
@media(max-width:42rem){.site-header{width:calc(100% - 2rem);gap:.8rem;min-height:5rem}.site-header .monogram{font-size:2rem}.site-header nav{gap:clamp(.4rem,2vw,.9rem)}.site-header nav a{font-size:.875rem}.hero{grid-template-columns:1fr;width:calc(100% - 2*var(--gutter));gap:2.5rem;margin:1rem auto 5.5rem}.hero-copy{padding:0}.hero-copy>.eyebrow{font-size:1.85rem;margin-bottom:1rem}.hero h1{font-size:clamp(3.4rem,13vw,5.2rem);margin-bottom:1.25rem}.hero-photo{width:90%;max-width:25rem;aspect-ratio:5/6}.hero-details p{font-size:1.85rem}.hero .button{margin-top:1.2rem}.photo-caption{right:10%;font-size:1.65rem;bottom:-3.2rem}.welcome{padding-top:1rem;padding-bottom:4rem}.section-heading{flex-direction:column;align-items:center;text-align:center;gap:1.75rem;margin-bottom:2rem}.day-date{padding:0;border:0;background:none}.day-date p{font-size:1.85rem;margin-bottom:.5rem}.timeline{grid-template-columns:1fr;gap:1.75rem}.timeline-event{padding-top:1.75rem}.timeline-event:first-child{border:0;padding-top:0}.timeline-event>p:not(.event-time){max-width:22rem}.event-time{font-size:3rem;margin-bottom:.65rem}.event-word{font-size:2.6rem}.time-zone{margin-top:2rem}.proposal-section{padding:3.5rem var(--gutter) 1rem}.proposal-photo{padding:.45rem .45rem 0;transform:rotate(-.75deg)}.proposal-photo img{aspect-ratio:6/5;object-position:54% 55%}.proposal-photo figcaption{flex-direction:column;align-items:flex-start;gap:.2rem;padding:.75rem .3rem}.proposal-photo figcaption span:first-child{font-size:1.85rem}.venue-card{padding:3rem 1.25rem 1.5rem;border-radius:8rem 8rem .5rem .5rem}.venue-actions{gap:.5rem 1.2rem}.registry-section{grid-template-columns:1fr;gap:0;border-radius:50% 50% 0 0 / 1.5rem 1.5rem 0 0}.registry-amp,.registry-label:after{display:none}.registry-copy{max-width:none}.registry-copy h2{font-size:clamp(2.75rem,11vw,3.5rem)}.registry-lead{font-size:1.6rem}.closing{padding:4rem var(--gutter) 3rem;border-radius:50% 50% 0 0 / 1.5rem 1.5rem 0 0}.closing .eyebrow{max-width:19rem;margin:0 auto;line-height:1.8}.closing-title{font-size:clamp(3.3rem,13vw,4.75rem)}.closing:before{width:11rem;height:9rem;right:-6rem;opacity:.3}.closing:after{width:8rem;height:9rem;left:-4rem;opacity:.35}footer{flex-direction:column;text-align:center;gap:.8rem;padding-bottom:2rem}footer p{margin:0}}
/* Let enlarged text reflow without hiding or scaling it down. */
.site-header{flex-wrap:wrap}.site-header nav{flex:1 1 14rem}
.name-line{overflow-wrap:anywhere}
.venue-card{padding-inline:clamp(.75rem,4vw,2rem)}
.venue-card h3{overflow-wrap:break-word}
h2,.registry-copy h2,.closing-title{overflow-wrap:break-word}
.registry-section a:focus-visible{outline-color:#faf9f1}

/* Clear mobile navigation and a shorter, photo-led opening. */
.name-pair{display:contents}
.site-header nav{flex:0 1 auto;gap:.35rem;padding:.3rem .55rem;border-block:1px solid #c9d5c5;background:var(--paper);color:var(--ink)}

.site-header nav a{padding:.65rem 1.15rem;border-radius:.25rem;transition:background .2s,color .2s}
.site-header nav a:hover{background:#edf1e7;text-decoration:underline;text-underline-offset:5px}.site-header nav a:focus-visible{outline-color:var(--green);outline-offset:-3px}
.hero{row-gap:0}
.hero-copy{grid-column:1;grid-row:1;align-self:end;padding:0}
.hero-summary{grid-column:1;grid-row:2;align-self:start;text-align:center;min-width:0}
.hero-photo{grid-column:2;grid-row:1 / span 2}
.menu-toggle{display:inline-flex}
.nav-links{display:flex;align-items:center;gap:.35rem}
.site-header nav .mobile-rsvp{display:none}
.menu-backdrop{position:fixed;inset:0;background:#123f3524;z-index:25;touch-action:none}
.menu-backdrop[hidden]{display:none}
html.menu-open{overflow:hidden}
.back-to-top{position:fixed;right:max(1rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom));z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.05rem;width:3.25rem;min-height:3.5rem;padding:.4rem;border:1px solid #afc2a5;border-radius:1.8rem;background:var(--paper);color:var(--ink);box-shadow:0 4px 16px #123f3520;cursor:pointer;font:500 .6875rem/1.25 var(--sans)}
.back-to-top svg{width:1.25rem;height:1.25rem}
.back-to-top:hover{background:#e7efdc}
.back-to-top[hidden],.menu-toggle[hidden],.site-header nav[hidden]{display:none}
footer{padding-bottom:max(5rem,calc(4rem + env(safe-area-inset-bottom)))}
@media(max-width:55rem){
 .site-header{width:100%;min-height:4.5rem;padding:.65rem max(1rem,env(safe-area-inset-right)) .65rem max(1rem,env(safe-area-inset-left));gap:.4rem 1rem;background:var(--paper);border-bottom:1px solid #123f3514;flex-direction:row;flex-wrap:wrap}
 .site-header .monogram{font-size:2.1rem}
 .menu-toggle:not([hidden]){display:inline-flex;align-items:center;justify-content:center;gap:.8rem;min-height:44px;padding:.6rem .25rem .6rem .75rem;border:0;border-radius:0;background:transparent;color:var(--ink);font:500 .9375rem/1.4 var(--sans);cursor:pointer;margin-left:auto}
 .menu-icon{display:flex;flex-direction:column;justify-content:center;gap:6px;width:20px;height:20px}
 .menu-icon i{display:block;height:1px;background:currentColor;width:100%;transition:transform .15s}
 .menu-toggle[aria-expanded="true"] .menu-icon i:first-child{transform:translateY(3.5px) rotate(45deg)}
 .menu-toggle[aria-expanded="true"] .menu-icon i:last-child{transform:translateY(-3.5px) rotate(-45deg)}
 .site-header nav{flex:1 0 100%;display:block;min-width:0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:var(--paper);box-shadow:none;padding:.4rem max(1.5rem,env(safe-area-inset-right)) max(1.5rem,env(safe-area-inset-bottom)) max(1.5rem,env(safe-area-inset-left))}
 .site-header.navigation-ready nav{position:absolute;top:100%;left:0;right:0;max-height:calc(100dvh - var(--header-height,4.5rem));overflow-y:auto;overscroll-behavior:contain;box-shadow:0 18px 24px #123f3510}
 .nav-links{display:block}
 .site-header nav .nav-links a{display:flex;align-items:center;min-width:0;min-height:60px;padding:.75rem 0;border:0;border-bottom:1px solid #d4decb;border-radius:0;background:transparent;color:var(--ink);font:400 2rem/1.25 var(--serif);letter-spacing:-.02em;overflow-wrap:anywhere}
 .site-header nav .nav-links a:hover{background:transparent;text-decoration:underline;text-underline-offset:6px}
 .site-header nav a:focus-visible{outline-offset:3px}
 .site-header nav .mobile-rsvp{display:flex;align-items:center;justify-content:center;min-height:50px;margin-top:1.5rem;padding:.8rem 1rem;border:1px solid var(--ink);border-radius:.25rem;background:var(--ink);color:var(--paper);font:600 .9375rem/1.5 var(--sans);letter-spacing:.04em;text-decoration:none}
 .site-header nav .mobile-rsvp:hover{background:var(--green)}
}
@media(max-width:42rem){
 .hero{grid-template-columns:minmax(0,1fr);row-gap:1.65rem;margin:1.4rem auto 3.5rem}
 .hero-copy{grid-column:1;grid-row:1;align-self:auto}
 .hero-copy>.eyebrow{font-size:1.65rem;line-height:1.3;margin:0 0 .75rem}
 .hero h1{display:block;font-size:clamp(3.2rem,13vw,4.5rem);line-height:.95;margin:0;letter-spacing:-.045em}
 .hero h1>.name-line{margin-bottom:.1em}
 .name-pair{display:flex;justify-content:center;align-items:center;gap:.22em;max-width:100%}
 .hero h1 .amp{flex-shrink:0;font-size:.58em;margin:0}
 .hero-photo{grid-column:1;grid-row:2;width:80%;max-width:17.5rem;aspect-ratio:5/6;transform:rotate(1deg);margin:.15rem auto 0}
 .hero-photo:before{inset:-.4rem}
 .photo-caption{bottom:-2.1rem;font-size:1.5rem;right:6%}
 .hero-summary{grid-column:1;grid-row:3;margin-top:1.1rem}
 .hero-details p{font-size:1.85rem;margin:0 0 .2rem}
 .hero-details span{font-size:.875rem}
 .hero .button{margin-top:1rem;min-width:12rem}



 .welcome{padding-top:1rem}
}



/* Static botanical framing belongs to the portrait, not the viewport. */
.hero-photo{isolation:isolate}
.hero-photo picture{display:block;position:relative;z-index:1;width:100%;height:100%}.hero-photo img{position:relative;z-index:1}
.hero-photo:before,.photo-caption{z-index:2}
.photo-leaf{position:absolute;z-index:0;background:center/contain no-repeat;pointer-events:none}
.photo-fern{width:12rem;height:11rem;left:-4.75rem;top:3rem;background-image:url('assets/fern.webp');transform:rotate(-24deg);opacity:.8}
.photo-monstera{width:10rem;height:11rem;right:-4rem;bottom:-.8rem;background-image:url('assets/monstera.webp');transform:rotate(25deg);opacity:.9}
@media(max-width:55rem){.photo-fern{width:8rem;height:8rem;left:-3rem;top:2rem}.photo-monstera{width:7rem;height:8rem;right:-2.5rem;bottom:-.5rem}}
@media(max-width:42rem){.photo-fern{width:7rem;height:7rem;left:-2.4rem;top:1.5rem}.photo-monstera{width:6rem;height:7rem;right:-2.3rem;bottom:-.6rem}}

.hero-actions{display:flex;justify-content:center;align-items:stretch;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}
.hero .hero-actions .button{margin:0;min-width:0;padding-inline:1.4rem}
.hero .button-outline{background:transparent;color:var(--ink)}
.hero .button-outline:hover{background:#e7efdc}
@media(max-width:42rem){.hero-actions{margin-top:1rem}.hero .hero-actions .button{padding-inline:1.2rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
