@font-face{font-family:'Libre Baskerville';src:url('assets/libre-baskerville.ttf') format('truetype');font-weight:400;font-display:swap}@font-face{font-family:Barleina;src:url('assets/barleina.otf') format('opentype');font-display:swap}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#651f30}body{font-family:'Libre Baskerville',Georgia,serif;color:#eddfc4}button{font:inherit;color:inherit;-webkit-tap-highlight-color:transparent}.entrance{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:45px 24px 38px;text-align:center;transition:opacity 850ms ease}.intro{font-size:16px;letter-spacing:.035em;margin:0 0 36px;line-height:1.8}.envelope{display:block;border:0;background:none;padding:0;width:min(440px,76vw);cursor:pointer;transition:transform .4s ease;filter:drop-shadow(0 18px 22px #26071140)}.envelope img{display:block;width:100%;height:auto}.envelope:hover{transform:translateY(-5px)}.envelope:focus-visible,.enter:focus-visible,.back:focus-visible{outline:1px solid currentColor;outline-offset:10px}.names{margin-top:78px}h1,h2{font-family:Barleina,cursive;font-weight:400;font-size:clamp(49px,6vw,74px);line-height:1.25;margin:0}h1 span,h2 span{font-size:.62em}.names p{text-transform:uppercase;letter-spacing:.3em;font-size:16px;margin:24px 0 0;line-height:1.8}.enter{position:relative;font-size:14px;letter-spacing:.06em;margin-top:35px;padding:8px 4px;background:none;border:0;cursor:pointer}.entrance.leaving{opacity:0;pointer-events:none}.invitation{position:fixed;inset:0;background:#eddfc4;color:#651f30;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;opacity:0;transition:opacity 850ms ease}.invitation[hidden]{display:none}.invitation.visible{opacity:1}.back{position:absolute;bottom:38px;font-size:12px;border:0;border-bottom:1px solid #651f3050;background:none;padding:8px;cursor:pointer}@media(max-width:600px){.entrance{padding:34px 22px}.intro{margin-bottom:35px;font-size:14px}.names{margin-top:62px}.names p{font-size:14px}.enter{margin-top:32px}.envelope{width:min(440px,86vw)}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important}}

.envelope,.names,.intro,.enter{flex-shrink:0}.enter::after{content:"";position:absolute;left:4px;right:4px;bottom:0;height:1px;background:currentColor;transform:scaleX(.35);opacity:.35;transition:transform .3s ease,opacity .3s ease}.enter:hover::after,.enter:focus-visible::after{transform:scaleX(1);opacity:1}
.invitation{display:block;overflow-y:auto;padding:0}.hero{position:relative;isolation:isolate;min-height:100svh;display:flex;align-items:center;justify-content:center;padding:160px 24px 100px;background:#eddfc4}.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:url('assets/florals.webp') center/cover no-repeat;opacity:.5}.wedding-nav{position:absolute;top:40px;left:24px;right:24px;display:flex;align-items:center;justify-content:center;gap:30px}.wedding-nav button{border:0;background:none;color:#651f30;opacity:1;font-size:12px;letter-spacing:.17em;text-transform:uppercase;padding:8px 0}.wedding-nav .story-link{font-family:Barleina,cursive;font-size:38px;text-transform:none;letter-spacing:0}.wedding-nav i{height:17px;width:1px;background:#651f3050}.hero-copy{width:100%;max-width:950px;text-align:center}.eyebrow{font-size:18px;letter-spacing:.35em;margin:0 0 72px;line-height:1.8}.couple{display:flex;flex-direction:column;align-items:center;font-size:clamp(100px,11vw,160px);line-height:1.12}.couple .bride,.couple .groom{display:block;font-size:1em}.couple .and{font-size:30px;line-height:1.3;margin:14px 0 30px}.wedding-date{font-size:15px;letter-spacing:.32em;margin:62px 0 0;line-height:1.8}.hero .back{bottom:24px;left:50%;transform:translateX(-50%);white-space:nowrap;opacity:.7}#sparkle-cursor{display:none;position:fixed;top:0;left:0;width:23px;height:23px;pointer-events:none;z-index:9999;background:linear-gradient(135deg,#f8dfa0,#b48739);clip-path:polygon(50% 0,61% 38%,100% 50%,61% 62%,50% 100%,39% 62%,0 50%,39% 38%);filter:drop-shadow(0 0 3px #e6c37480)}.sparkle-trail{position:fixed;width:9px;height:9px;pointer-events:none;z-index:9998;background:#d6af64;clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);animation:sparkle-fade 650ms ease-out forwards}@keyframes sparkle-fade{to{opacity:0;transform:translateY(8px) scale(.2)}}@media(hover:hover) and (pointer:fine){body.custom-cursor,body.custom-cursor button{cursor:none}}@media(max-width:600px){.hero{padding:135px 24px 90px}.wedding-nav{top:24px;gap:12px;flex-wrap:wrap}.wedding-nav button{font-size:9px;letter-spacing:.09em}.wedding-nav .story-link{font-size:26px}.wedding-nav i{height:12px}.eyebrow{font-size:12px;letter-spacing:.25em;margin-bottom:68px}.couple{font-size:clamp(83px,20vw,116px)}.couple .and{font-size:24px;margin:16px 0 28px}.wedding-date{font-size:12px;letter-spacing:.22em;margin-top:58px}}

/* Single-line names with space for the calligraphic ascenders and descenders. */
.hero-copy{max-width:1200px}.eyebrow{margin-bottom:110px}.couple{flex-direction:row;justify-content:center;gap:22px;white-space:nowrap;font-size:clamp(35px,7.2vw,100px);line-height:1.5}.couple .and{font-family:'Libre Baskerville',Georgia,serif;font-size:.42em;line-height:1;margin:0 5px;align-self:center}.wedding-verse{margin-top:75px}.wedding-verse p{font-size:15px;letter-spacing:.23em;line-height:1.9;margin:0}.wedding-verse .verse-source{font-size:13px;letter-spacing:.025em;margin-top:12px}.wedding-nav .story-link{font-family:'Libre Baskerville',Georgia,serif;font-size:12px;letter-spacing:.17em;text-transform:uppercase}@media(max-width:600px){.eyebrow{margin-bottom:85px}.couple{font-size:7.2vw;gap:9px}.couple .and{margin:0}.wedding-verse{margin-top:60px}.wedding-verse p{font-size:11px;letter-spacing:.14em}.wedding-verse .verse-source{font-size:11px;letter-spacing:0}.wedding-nav .story-link{font-size:9px;letter-spacing:.09em}}
.invitation{scroll-behavior:smooth}.wedding-nav a{color:#651f30;text-decoration:none;padding:8px 0;border-bottom:1px solid transparent;transition:border-color .25s ease}.wedding-nav a:hover{border-bottom-color:currentColor}.wedding-nav a:focus-visible{outline:1px solid currentColor;outline-offset:6px}.our-story{background:#ac6a79;color:#fff8ee;padding:95px 6vw 105px;text-align:left;scroll-margin-top:0}.story-layout{max-width:1180px;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(45px,7vw,110px);align-items:center}.story-photo{display:block;width:100%;height:auto}.story-copy{padding:24px 0}.story-label{font-size:12px;letter-spacing:.4em;line-height:1.8;margin:0 0 22px}.story-copy h2{font-size:clamp(28px,2.6vw,38px);line-height:1.6;white-space:nowrap;margin:0 0 33px}.story-prose p{font-size:15px;line-height:1.8;letter-spacing:.045em;margin:0 0 24px}.story-closing{font-size:11px;letter-spacing:.32em;line-height:2;margin:40px 0 0}@media(hover:hover) and (pointer:fine){body.custom-cursor a{cursor:none}}@media(max-width:800px){.our-story{padding:60px 25px 75px}.story-layout{grid-template-columns:1fr;gap:42px;max-width:540px}.story-photo{max-width:420px;margin:auto}.story-copy{padding:0 5px}.story-copy h2{font-size:clamp(28px,7.3vw,43px);white-space:normal}.story-prose p{font-size:13px}.story-label{font-size:11px}.story-closing{font-size:10px;letter-spacing:.25em}}@media(prefers-reduced-motion:reduce){.invitation{scroll-behavior:auto}}
body,h1,h2,p,a,button{font-weight:400;font-synthesis:none}.our-story{position:relative;isolation:isolate}.our-story::before{content:"";position:absolute;inset:0;z-index:-1;background:url('assets/dusty-pink-paper.webp') center/768px auto repeat;opacity:.5;pointer-events:none}.scroll-reveal{opacity:0;transform:translateY(14px);transition:opacity 1100ms ease,transform 1100ms ease;transition-delay:var(--reveal-delay,0ms)}.scroll-reveal.is-revealed{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){.scroll-reveal{opacity:1;transform:none;transition:none}}
@keyframes gentle-arrival{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.entrance>.intro{animation:gentle-arrival 1s ease backwards}.entrance>.envelope{animation:gentle-arrival 1.1s ease .15s backwards}.entrance>.names{animation:gentle-arrival 1.1s ease .3s backwards}.entrance>.enter{animation:gentle-arrival 1s ease .45s backwards}.invitation.visible .wedding-nav{animation:gentle-arrival 1.1s ease .15s backwards}.invitation.visible .eyebrow{animation:gentle-arrival 1.1s ease .25s backwards}.invitation.visible .couple{animation:gentle-arrival 1.3s ease .4s backwards}.invitation.visible .wedding-verse{animation:gentle-arrival 1.2s ease .6s backwards}@media(prefers-reduced-motion:reduce){.entrance>.intro,.entrance>.envelope,.entrance>.names,.entrance>.enter,.invitation.visible .wedding-nav,.invitation.visible .eyebrow,.invitation.visible .couple,.invitation.visible .wedding-verse{animation:none}}
/* Our Story: equal sage and candlelit cream panels. */
.our-story{padding:0;background:#eddfc4;color:#3e2c22}.our-story::before{display:none}.story-layout{max-width:none;grid-template-columns:1fr 1fr;gap:0;align-items:stretch}.story-photo-panel{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:center;background:#b7bb88;padding:90px 65px;overflow:hidden}.story-photo-panel::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:url('assets/dusty-pink-paper.webp') center/650px auto repeat;filter:grayscale(1);mix-blend-mode:soft-light;opacity:.8}.story-photo{width:min(100%,365px);height:auto;max-width:365px;margin:0;border-radius:3px}.story-copy{display:flex;flex-direction:column;justify-content:center;padding:90px clamp(30px,4.5vw,85px);background:#eddfc4;font-weight:400}.story-label{color:#a8697a}.story-copy h2{color:#651f30;font-weight:400;white-space:normal;font-size:clamp(29px,2.5vw,40px)}.story-prose,.story-closing{color:#3e2c22;font-weight:400}.story-prose p{font-weight:400;font-size:14px;line-height:1.8}.story-closing{margin-top:32px}@media(max-width:800px){.story-layout{grid-template-columns:1fr;max-width:none;gap:0}.story-photo-panel{padding:60px 35px}.story-photo{width:min(100%,320px)}.story-copy{padding:65px 30px}.story-copy h2{font-size:clamp(29px,6.7vw,40px)}.story-prose p{font-size:13px}.story-closing{font-size:10px}}

/* Wedding day invitation, centered on the wine palette. */
.wedding-details{background:#651f30;color:#eddfc4;text-align:center;padding:100px 24px 110px}
.details-copy{max-width:850px;margin:auto}
.details-eyebrow{font-family:'Libre Baskerville',Georgia,serif;font-size:12px;letter-spacing:.32em;line-height:1.9;margin:0 0 48px}
.details-copy h2{font-family:Barleina,cursive;font-size:clamp(56px,6.5vw,82px);font-weight:400;line-height:1.5;margin:0 0 60px}
.details-invitation{font-size:15px;line-height:2.1;margin:0 auto 48px;max-width:720px;font-weight:400}
.details-date p{font-size:16px;line-height:1.8;letter-spacing:.06em;margin:8px 0;font-weight:400}
.details-date p:first-child{font-size:12px;letter-spacing:.22em;text-transform:uppercase}
.details-rule{display:block;width:38px;height:1px;background:#eddfc480;margin:23px auto}
.details-date .details-time{font-size:14px;letter-spacing:.12em}
@media(max-width:600px){.wedding-details{padding:75px 27px 85px}.details-eyebrow{font-size:10px;letter-spacing:.25em;margin-bottom:38px}.details-copy h2{font-size:53px;margin-bottom:44px}.details-invitation{font-size:13px;line-height:2;margin-bottom:38px}.details-invitation .desktop-break{display:none}.details-date p{font-size:15px}}

/* Horizontal invitation date inspired by the supplied stationery. */
.wedding-details{background:#651f30 url('assets/wine-paper-new.webp') center/100% 100% no-repeat}
.details-date{max-width:640px;margin:0 auto}
.details-date .event-month{font-size:24px;letter-spacing:.22em;line-height:1.5;margin:0 0 22px;text-transform:uppercase}
.event-date-row{display:grid;grid-template-columns:1fr 150px 1fr;align-items:center}
.details-date .event-day,.details-date .event-time{font-size:20px;letter-spacing:.12em;line-height:1.6;margin:0;white-space:nowrap}
.event-number{font-size:76px;line-height:1.15;font-weight:400;border-left:1px solid #eddfc499;border-right:1px solid #eddfc499;padding:0 16px}
.details-date .event-year{font-size:24px;letter-spacing:.2em;line-height:1.5;margin:22px 0 0}
@media(max-width:600px){.wedding-details{background-size:auto 100%}.details-date .event-month{font-size:19px;margin-bottom:18px;letter-spacing:.18em}.event-date-row{grid-template-columns:minmax(0,1fr) 84px minmax(0,1fr)}.details-date .event-day,.details-date .event-time{font-size:clamp(11px,3.1vw,16px);letter-spacing:.04em}.event-number{font-size:54px;padding:0 8px}.details-date .event-year{font-size:19px;margin-top:18px}}

/* A unified cream story composition with a closer photo and copy. */
.our-story{background:#eddfc4;padding:90px 5vw}
.story-layout{max-width:1060px;grid-template-columns:365px minmax(0,1fr);gap:65px;align-items:center}
.story-photo-panel{background:transparent;padding:0;overflow:visible}
.story-photo-panel::before{display:none}
.story-copy{background:transparent;padding:0}
.story-photo{width:100%;max-width:365px}
@media(max-width:1100px) and (min-width:801px){.story-layout{grid-template-columns:minmax(0,.85fr) minmax(0,1fr);gap:45px}}
@media(max-width:800px){.our-story{padding:60px 30px 70px}.story-layout{grid-template-columns:1fr;max-width:540px;gap:38px}.story-photo-panel{padding:0}.story-photo{width:min(100%,320px)}.story-copy{padding:0}}
/* Quiet metallic highlights, with regular-weight calligraphy. */
#wedding-heading{color:#dec48c;font-weight:400}
@supports(background-clip:text) or (-webkit-background-clip:text){
 #wedding-heading{background-image:linear-gradient(112deg,#c7a66a 0%,#e9d5a2 18%,#f0dfb5 29%,#d1b47b 40%,#ecd8a7 53%,#c7a66a 65%,#f2e2b8 78%,#d8bc86 91%,#e7d2a0 100%),repeating-linear-gradient(23deg,#fff3d52e 0 1px,#9f773400 1px 3px);background-blend-mode:soft-light;background-size:100% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
}

/* Include calligraphic overhangs inside the foil background painting area. */
.details-copy #wedding-heading{padding:1.2em .22em .5em;line-height:1.5;margin-top:-.9em;margin-bottom:20px;overflow:visible}
.details-eyebrow{margin-bottom:28px}
/* Center the visible story pair rather than an oversized empty copy column. */
.story-layout{max-width:950px;grid-template-columns:365px minmax(0,520px);gap:65px;justify-content:center}
@media(max-width:1100px) and (min-width:801px){.story-layout{grid-template-columns:minmax(0,.85fr) minmax(0,1fr);gap:45px}}
@media(max-width:800px){.story-layout{grid-template-columns:1fr;max-width:540px;gap:38px}}
@media(max-width:600px){.details-copy #wedding-heading{margin-bottom:16px}.details-eyebrow{margin-bottom:22px}}

/* Balance the visible spaces above and below the script without clipping its foil. */
.details-copy #wedding-heading{position:relative;top:.45em}

.sage-placeholder{background:#b7bb88;min-height:60svh}

/* Keep the day and time close to the central date, with matching type. */
.event-date-row{grid-template-columns:1fr 150px 1fr;column-gap:24px}
.details-date .event-day{justify-self:end}
.details-date .event-time{justify-self:start}
.details-date .event-day,.details-date .event-time{font-size:20px;letter-spacing:.12em}
.event-location{font-size:18px;line-height:1.8;letter-spacing:.04em;margin:34px 0 0;font-weight:400}
.sage-placeholder{background:#b7bb88}
@media(max-width:600px){.event-date-row{grid-template-columns:minmax(0,1fr) 84px minmax(0,1fr);column-gap:12px}.details-date .event-day,.details-date .event-time{font-size:clamp(11px,3.1vw,16px);letter-spacing:.04em}.event-location{font-size:15px;margin-top:28px}}

/* Override the older first-child date rule for both side labels. */
.details-date .event-date-row p{font-size:20px;letter-spacing:.12em;line-height:1.6;font-weight:400;text-transform:uppercase}
@media(max-width:600px){.details-date .event-date-row p{font-size:clamp(11px,3.1vw,16px);letter-spacing:.04em}}

/* Equal side columns keep the longer weekday visually balanced with the time. */
.details-date .event-date-row p{font-size:16px;letter-spacing:.08em;justify-self:center;text-align:center}
.event-date-row{max-width:540px;margin-inline:auto;column-gap:18px}
@media(max-width:600px){.event-date-row{column-gap:10px}.details-date .event-date-row p{font-size:clamp(10px,2.8vw,14px);letter-spacing:.04em}}

.venue-section{background:#b7bb88;color:#651f30;text-align:center;padding:95px 24px 90px}
.venue-copy{max-width:1050px;margin:auto}
.venue-eyebrow{font-family:'Libre Baskerville',Georgia,serif;font-size:12px;letter-spacing:.32em;line-height:1.9;margin:0 0 55px}
.venue-copy h2{font-family:Barleina,cursive;font-size:clamp(50px,5.5vw,74px);font-weight:400;line-height:1.6;margin:0 0 48px}
.venue-illustration{display:block;width:min(100%,850px);height:auto;margin:0 auto 38px}
.maps-button{display:inline-flex;align-items:center;gap:15px;color:#651f30;text-decoration:none;border:1px solid #651f3070;padding:16px 25px;font-family:'Libre Baskerville',Georgia,serif;font-size:12px;font-weight:400;letter-spacing:.08em;transition:transform .3s ease}
.maps-button:hover{background:#651f30;color:#eddfc4}
.maps-button:focus-visible{outline:2px solid #651f30;outline-offset:5px}
@media(max-width:600px){.venue-section{padding:70px 24px}.venue-eyebrow{font-size:10px;margin-bottom:45px}.venue-copy h2{font-size:48px;margin-bottom:35px}.venue-illustration{margin-bottom:28px}.maps-button{font-size:11px;padding:14px 20px}}

.maps-button{background:#651f30;color:#eddfc4;border-color:#651f30}
@media(hover:hover){.maps-button:hover{background:#651f30;color:#eddfc4;transform:translateY(-3px)}}
@media(prefers-reduced-motion:reduce){.maps-button:hover{transform:none}}

.venue-address{font-family:'Libre Baskerville',Georgia,serif;font-size:13px;font-weight:400;color:#651f30;line-height:1.9;margin:0 auto 28px;max-width:600px}
@media(max-width:600px){.venue-address{font-size:11px;line-height:1.9}.venue-address br{display:none}}

.next-split-section{display:grid;grid-template-columns:1fr 1fr;min-height:65svh}.next-split-cream{background:#eddfc4}.next-split-mauve{background:#a8697a}

.next-split-cream{display:flex;align-items:center;justify-content:center;padding:95px clamp(25px,4vw,70px);color:#651f30;text-align:center}
.reception-copy{width:100%;max-width:600px}
.reception-eyebrow{font-family:'Libre Baskerville',Georgia,serif;font-size:11px;letter-spacing:.25em;line-height:1.9;margin:0 0 65px}
.reception-copy h2{font-family:Barleina,cursive;font-size:clamp(38px,4.2vw,66px);font-weight:400;line-height:1.6;margin:0 0 55px}
.reception-invitation{font-size:14px;font-weight:400;line-height:2.1;max-width:510px;margin:0 auto 45px}
.reception-date .event-number{border-color:#651f3066;font-size:64px}
.reception-date .event-date-row{grid-template-columns:1fr 120px 1fr;column-gap:15px}
.reception-date .event-date-row p{font-size:14px;letter-spacing:.08em}
.reception-date .event-month,.reception-date .event-year{font-size:20px}
@media(max-width:800px){.next-split-section{grid-template-columns:1fr}.next-split-cream{padding:75px 28px 80px}.next-split-mauve{min-height:45svh}.reception-copy h2{font-size:53px}.reception-eyebrow{font-size:10px}.reception-invitation{font-size:13px}}
@media(max-width:600px){.reception-date .event-date-row{grid-template-columns:1fr 84px 1fr;column-gap:10px}.reception-date .event-number{font-size:54px}.reception-date .event-date-row p{font-size:clamp(11px,3vw,14px)}}

.reception-date .event-date-row{max-width:380px;grid-template-columns:1fr 110px 1fr;column-gap:16px}
.reception-date .event-day{justify-self:end}
.reception-date .event-time{justify-self:start}
.reception-location{margin-top:38px}
.reception-venue{font-family:'Libre Baskerville',Georgia,serif;font-weight:400;font-size:14px;line-height:1.9;letter-spacing:.14em;margin:0 0 17px}
.reception-location .venue-address{font-size:12px;line-height:1.9;margin-bottom:25px}
@media(max-width:600px){.reception-date .event-date-row{max-width:320px;grid-template-columns:1fr 84px 1fr;column-gap:14px}.reception-venue{font-size:12px;letter-spacing:.1em}.reception-location .venue-address{font-size:11px}}

.next-split-section{position:relative;isolation:isolate}
.next-split-mauve{position:relative;display:flex;align-items:center;justify-content:center;padding:55px 45px 65px;color:#eddfc4;text-align:center;min-width:0}
.thank-you-content{width:100%;max-width:640px}
.childhood-locket{display:block;position:relative;width:calc(100% + 90px);max-width:650px;height:auto;margin:-20px 0 15px -90px;pointer-events:none}
.thank-you-copy{max-width:470px;margin:auto}
.thank-you-eyebrow{font-family:'Libre Baskerville',Georgia,serif;font-size:11px;letter-spacing:.26em;line-height:1.9;margin:0 0 50px;font-weight:400}
.thank-you-copy h2{font-family:Barleina,cursive;font-size:clamp(48px,4.5vw,68px);line-height:1.6;font-weight:400;margin:0 0 40px}
.thank-you-message{font-family:'Libre Baskerville',Georgia,serif;font-size:14px;font-weight:400;line-height:2;margin:0}
@media(max-width:800px){.next-split-mauve{padding:40px 28px 75px}.childhood-locket{width:min(100%,500px);max-width:500px;margin:-65px auto 28px}.thank-you-eyebrow{font-size:10px;margin-bottom:45px}.thank-you-copy h2{font-size:53px}.thank-you-message{font-size:13px}}

.thank-you-copy h2{white-space:nowrap;font-size:clamp(38px,3.5vw,60px)}
@media(min-width:801px){
 .next-split-mauve{align-items:flex-start}
 .childhood-locket{width:min(42vw,650px);max-width:none;margin:-20px 0 25px;left:-45px;translate:-50% 0;z-index:2}
 .next-split-cream{align-items:flex-end;padding-top:clamp(360px,38vw,590px)}
}
@media(max-width:800px){.thank-you-copy h2{font-size:clamp(36px,8vw,53px)}.childhood-locket{left:auto;translate:none}}

/* Anchor artwork to the section divider independently of either copy column. */
.next-split-section>.childhood-locket{position:absolute;top:30px;left:50%;width:min(42vw,650px);max-width:none;height:auto;margin:0;translate:-50% 0;z-index:2}
.locket-space{height:min(42vw,650px)}
.thank-you-copy h2{white-space:nowrap!important}
@media(max-width:800px){.next-split-section>.childhood-locket{position:relative;grid-column:1;grid-row:2;top:auto;left:auto;width:min(85%,500px);margin:-40px auto 0;translate:none}.next-split-mauve{grid-row:3}.locket-space{display:none}.next-split-section{background:#a8697a}}

.celebration-countdown{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));max-width:440px;margin:38px auto 0;color:#eddfc4;scroll-margin-top:45px}
.countdown-unit{display:flex;flex-direction:column;gap:12px;padding:0 12px;border-right:1px solid #eddfc455}
.countdown-unit:last-child{border-right:0}
.countdown-number{font-family:'Libre Baskerville',Georgia,serif;font-weight:400;font-size:clamp(23px,2.7vw,38px);font-variant-numeric:tabular-nums;line-height:1.3}
.countdown-label{font-size:8px;letter-spacing:.15em;text-transform:uppercase;line-height:1.8}
@media(max-width:600px){.celebration-countdown{margin-top:32px}.countdown-unit{padding:0 7px}.countdown-label{font-size:7px;letter-spacing:.08em}}

/* Compact the artwork area and bring both text blocks up beneath it. */
@media(min-width:801px){
 .next-split-section>.childhood-locket{top:0;width:min(32vw,450px)}
 .locket-space{height:min(32vw,450px)}
 .next-split-cream{align-items:flex-start;padding-top:clamp(280px,24vw,360px);padding-bottom:70px}
 .next-split-mauve{padding-top:25px;padding-bottom:70px}
}

/* Contain the smaller locket above the thank-you copy. */
.next-split-mauve{align-items:center;padding:55px 45px 65px}
.thank-you-content .childhood-locket{position:relative;top:auto;left:auto;translate:none;width:min(25.6vw,360px);max-width:100%;height:auto;margin:0 auto 35px;z-index:auto}
.next-split-cream{align-items:center;padding:95px clamp(25px,4vw,70px)}
@media(max-width:800px){.next-split-mauve{grid-row:auto;padding:45px 28px 65px}.next-split-cream{padding:75px 28px 80px}.thank-you-content .childhood-locket{width:min(68vw,400px);margin:0 auto 30px}}

.next-split-mauve{background:#a8697a url('assets/thank-you-paper.webp') center/700px auto repeat}

/* Let the larger locket bridge the sage venue and mauve thank-you panel. */
@media(min-width:801px){
 .next-split-mauve{align-items:flex-start;padding-top:0;overflow:visible}
 .thank-you-content .childhood-locket{width:min(35vw,500px);max-width:100%;margin:calc(-1 * min(7vw,100px)) auto 12px;z-index:3}
}
@media(max-width:800px){
 .thank-you-content .childhood-locket{width:min(80vw,460px);margin:0 auto 18px}
 .next-split-mauve{padding-top:25px}
}

.envelope{position:relative}
.envelope .enter{position:absolute;top:82%;left:50%;transform:translateX(-50%);margin:0;padding:4px 3px;color:#651f30;font-size:12px;line-height:1.4;letter-spacing:.045em;white-space:nowrap}
.envelope:hover .enter::after{transform:scaleX(1);opacity:1}
.names h1{color:#dec48c;padding:1.2em .5em .6em;margin:-1.2em -.5em -.6em}
@media(max-width:600px){.envelope .enter{font-size:11px}}

@supports(background-clip:text) or (-webkit-background-clip:text){.names h1{background-image:linear-gradient(112deg,#c7a66a 0%,#e9d5a2 18%,#f0dfb5 29%,#d1b47b 40%,#ecd8a7 53%,#c7a66a 65%,#f2e2b8 78%,#d8bc86 91%,#e7d2a0 100%),repeating-linear-gradient(23deg,#fff3d52e 0 1px,#9f773400 1px 3px);background-blend-mode:soft-light;background-size:100% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;-webkit-text-fill-color:transparent}}

/* Plain-language, clickable next-section cues. */
.hero,.our-story,.wedding-details,.venue-section{position:relative}
.our-story,.wedding-details,.venue-section{padding-bottom:115px}
.section-scroll-cue{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:5px;color:inherit;text-decoration:none;font-family:'Libre Baskerville',Georgia,serif;font-size:12px;font-weight:400;letter-spacing:.06em;line-height:1.5;white-space:nowrap;padding:6px 15px;z-index:4}
.scroll-cue-arrow{font-family:Georgia,serif;font-size:24px;line-height:1;animation:scroll-nudge 2s ease-in-out infinite}
.section-scroll-cue:focus-visible{outline:1px solid currentColor;outline-offset:4px}
.section-scroll-cue:hover span:first-child{text-decoration:underline;text-underline-offset:4px}
@keyframes scroll-nudge{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}
@media(max-width:600px){.section-scroll-cue{font-size:11px;bottom:18px}.our-story,.wedding-details,.venue-section{padding-bottom:110px}}
@media(prefers-reduced-motion:reduce){.scroll-cue-arrow{animation:none}}

.childhood-locket{filter:drop-shadow(0 7px 9px rgba(62,44,34,.18))}

@media(max-width:600px){.story-copy{text-align:center;align-items:center}.story-copy h2,.story-prose,.story-label,.story-closing{width:100%;text-align:center}}

/* A shorter opening section on phones, with room for the navigation and arrow. */
@media(max-width:600px){
 .hero{min-height:650px;min-height: min(650px,85svh);padding:115px 24px 90px}
 .hero .eyebrow{margin-bottom:65px}
 .hero .wedding-verse{margin-top:45px}
 .wedding-nav{gap:12px;flex-wrap:nowrap}
}

.entrance-amp{display:none}
@media(max-width:600px){
 .names{width:100%;max-width:100%}
 .names h1{font-size:clamp(27px,8.4vw,46px);white-space:nowrap;line-height:1.6}
 .names h1 .entrance-and{display:none}
 .names h1 .entrance-amp{display:inline;font-family:'Libre Baskerville',Georgia,serif;font-size:.5em}
}

/* Keep mobile scrolling vertical even when calligraphy extends past its text box. */
@media(max-width:800px){
 html,body{width:100%;max-width:100%;overflow-x:hidden}
 .entrance{width:100%;min-width:0}
 .invitation{width:100%;max-width:100%;overflow-x:hidden;overflow-y:auto}
 .invitation>section{width:100%;min-width:0}
 .hero-copy,.story-layout,.story-copy,.details-copy,.venue-copy,.reception-copy,.thank-you-content{min-width:0;max-width:100%}
 .story-layout,.next-split-section{grid-template-columns:minmax(0,1fr)}
 .next-split-cream{min-width:0}
}

/* Center the visible calligraphy, including its swashes and deep descenders. */
.event-heading-word{font-size:inherit}
@media(max-width:600px){
 .details-copy #wedding-heading,.reception-copy #reception-heading{
  font-size:clamp(36px,12vw,53px);line-height:1.65;
  padding:1.2em .3em 1em;margin-top:-.9em;margin-bottom:20px;
  top:0;overflow:visible;text-align:center;
 }
 .event-heading-word{display:block;width:max-content;max-width:100%;margin-inline:auto;position:relative;left:-.075em}
 .event-heading-word.wedding-word{left:-.065em}
 .event-heading-word.reception-word{left:-.117em}
}

/* Smooth paragraph wrapping and balance the wedding title on phones. */
@media(max-width:600px){
 .story-prose br{display:none}
 .story-prose p{text-wrap:balance}
 .details-copy #wedding-heading{top:16px}
}
