:root{--paper:#faf9f1;--olive:#616b43;--ink:#3c4230;--sage:#8d9879;--light:#e9ebdf;--line:#8e977c65;--gold:#dfc46e;--blue:var(--olive);--red:var(--olive);--serif:'Cormorant Garamond',Georgia,serif;--script:'Great Vibes','Cormorant Garamond',cursive;--sans:Manrope,Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:#eeeee5;color:var(--ink);font:500 22px/1.5 var(--serif);-webkit-font-smoothing:antialiased}body::after{content:'';position:fixed;inset:0;pointer-events:none;opacity:.1;z-index:15;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.6' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.3' filter='url(%23n)'/%3E%3C/svg%3E")}main,.site-head,.footer{max-width:1200px;margin:auto;background:var(--paper)}a{color:inherit;text-underline-offset:5px}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--olive);outline-offset:6px}svg{max-width:100%}.site-head{min-height:86px;padding:17px 7%;display:flex;align-items:center;justify-content:space-between;gap:20px;color:var(--olive);border-bottom:1px solid #8e977c35}.monogram{font:40px/1 var(--script);text-decoration:none}.monogram span{font-size:26px;margin:0 5px}.nav{display:flex;gap:32px;font:12px/1.5 var(--sans);letter-spacing:.04em}.nav a{text-decoration:none}.nav a:hover{text-decoration:underline}.head-date{font:12px var(--sans);letter-spacing:.14em}.tile,.star,.side-text{display:none}.hero{position:relative;isolation:isolate;text-align:center;margin:24px 32px 0;padding:70px 40px 370px;min-height:1070px;background:var(--paper);overflow:hidden}.hero::before{content:'';position:absolute;inset:12px;border:1px solid #7f8c65;pointer-events:none;z-index:3}.hero::after{content:'';position:absolute;inset:20px;border:1px solid #abb28d;pointer-events:none;z-index:3}.hero-arch{position:absolute;inset:5px 3px;background: url('olive-edge.svg') repeat-x top/60px 12px,url('olive-edge.svg') repeat-x bottom/60px 12px;z-index:-1}.hero-inner{position:relative;z-index:2;max-width:660px;margin:auto}.couple-seal{display:block;width:118px;height:118px;margin:0 auto 24px;color:var(--olive)}.couple-seal text{font:58px var(--script);fill:currentColor}.eyebrow{font:10px/1.8 var(--sans);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--olive)}.hero .eyebrow{max-width:340px;margin:0 auto 30px;letter-spacing:.12em}.hero h1{font:400 112px/.95 var(--script);color:var(--olive);letter-spacing:-.025em;margin:0 auto;max-width:560px}.name{display:block}.name:first-child{transform:translateX(-46px)}.second{transform:translateX(42px);margin-top:8px}.amp{font:400 .7em var(--script);vertical-align:3px;margin-right:10px;color:#9da18b}.hero-description{font:italic 28px/1.2 var(--serif);color:var(--olive);max-width:370px;margin:30px auto 24px}.hero-date{font:500 20px var(--serif);letter-spacing:.13em;color:var(--olive);margin:0 0 8px}.hero-place{font:18px var(--serif);margin:0 0 22px;color:#6d735d}.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:48px;padding:12px 25px;border:1px solid #7d8963;border-radius:1px;background:transparent;color:var(--olive);font:12px/1.5 var(--sans);text-decoration:none;cursor:pointer;transition:background .2s,color .2s}.button:hover{background:var(--olive);color:var(--paper)}.button svg{width:18px;height:18px;stroke:currentColor;stroke-width:1;fill:none}.branch{position:absolute;width:235px;height:auto;z-index:1;pointer-events:none;opacity:.98}.branch-right{right:17px;top:16px;transform:rotate(180deg)}.branch-left{left:17px;top:16px;transform:scaleX(-1) rotate(180deg)}.hero-landscape{position:absolute;left:4%;bottom:37px;width:92%;height:350px;object-fit:contain;object-position:center bottom;z-index:1;pointer-events:none}.hero-note{position:absolute;bottom:35px;left:20px;right:20px;font:italic 16px/1.2 var(--serif);color:var(--olive);z-index:4}.section{padding:95px 7%}.invite{max-width:760px;margin:auto;display:flex;flex-direction:column;gap:85px;text-align:center}.invite>div:first-child{max-width:620px}.overline{font:10px/1.7 var(--sans);letter-spacing:.15em;text-transform:uppercase;color:var(--olive)}.invite h2{font:400 73px/.95 var(--script);color:var(--olive);margin:26px 0 28px}.invite h2 em{font-style:normal;font-family:inherit}.body-copy{font-size:23px;line-height:1.45;max-width:570px;margin:18px auto}.signature{font:400 35px/1.2 var(--script);color:var(--olive);margin:26px 0 0}.calendar{position:relative;width:100%;max-width:510px;padding:65px 75px 55px;color:var(--olive);isolation:isolate}.calendar::before,.calendar::after{content:'';position:absolute;top:-35px;bottom:-22px;width:190px;background:url('lemon-botanical.webp') no-repeat center/contain;pointer-events:none;z-index:-1}.calendar::before{left:-55px;transform:scaleX(-1) rotate(-8deg)}.calendar::after{right:-55px;transform:rotate(8deg)}.calendar-title{font:400 64px/1 var(--script);text-align:center;margin:0 0 12px}.calendar-sub{font:9px/1.7 var(--sans);letter-spacing:.15em;text-align:center;margin:0 0 28px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px 5px;text-align:center;font:italic 24px/1 var(--serif);font-weight:500}.calendar-grid span{min-height:30px;display:grid;place-content:center}.calendar-grid .day{font:italic 14px var(--serif);font-weight:500;opacity:.8}.calendar-grid .selected{position:relative}.selected::after{content:'';position:absolute;inset:-3px 0;border:1px solid var(--olive);border-radius:50%;transform:rotate(-14deg)}.calendar-caption{font:italic 21px/1.25 var(--serif);text-align:center;margin:27px 0 0;padding-top:18px;border-top:1px solid var(--line)}
.childhood{text-align:center;padding:70px 50px 90px;overflow:hidden;position:relative}.childhood::before{content:'';position:absolute;left:calc(50% - 115px);top:15px;width:230px;height:1px;background:linear-gradient(90deg,transparent,var(--sage),transparent)}.childhood h2{font:400 64px/1.03 var(--script);color:var(--olive);margin:20px 0 42px}.childhood h2 em{font-style:normal}.childhood-photos{display:grid;grid-template-columns:repeat(2,minmax(0,240px));gap:85px;justify-content:center;max-width:650px;margin:auto;position:relative}.childhood-photos::after{content:'&';font:400 50px var(--script);color:#9ba184;position:absolute;left:50%;top:40%;transform:translate(-50%,-50%)}.childhood-photo{margin:0;min-width:0}.childhood-photo:first-child{transform:rotate(-3deg)}.childhood-photo:last-child{transform:rotate(3deg)}.childhood-frame{padding:10px;border:1px solid #8c9778;background:#fcfbf4;border-radius:48% 48% 0 0;box-shadow:0 8px 20px #616b4310;position:relative}.childhood-frame::after{content:'';position:absolute;inset:5px;border:1px solid #bcc2aa;border-radius:inherit;pointer-events:none}.childhood-slot{aspect-ratio:3/4;position:relative;overflow:hidden;border-radius:47% 47% 0 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:#e7e9dc;color:#7c856a}.childhood-slot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 38%;filter:saturate(.78)}.childhood-slot svg{width:42px;height:42px;stroke:currentColor;stroke-width:1;fill:none}.childhood-slot p{font:18px/1.3 var(--serif);margin:0 12px}.childhood-photo figcaption{font:400 38px/1 var(--script);color:var(--olive);padding-top:25px}.quote-strip{text-align:center;max-width:900px;margin:auto;padding:28px 30px 35px;border-block:1px solid #9da58b65;display:flex;align-items:center;justify-content:center;gap:18px 28px;flex-wrap:wrap;color:var(--olive)}.quote-strip span{font:400 38px var(--script)}.quote-strip .quote-star{display:none}.quote-strip small{font:9px/1.7 var(--sans);letter-spacing:.1em}
.venue-section{position:relative;overflow:hidden;padding:75px 7% 85px;background:radial-gradient(ellipse at 20% 10%,#f7f8ef88,transparent 50%),radial-gradient(ellipse at 95% 75%,#c4cbb6,transparent 55%),#d8ddca;margin-top:75px}.venue{position:relative;max-width:800px;margin:auto;display:flex;flex-direction:column-reverse;gap:55px;align-items:center;isolation:isolate}.venue::before{content:'';position:absolute;width:90%;height:540px;top:120px;left:5%;background:linear-gradient(32deg,#dedac3 49.8%,#c9c7ad 50%,#eee9d5 50.2%);transform:rotate(-7deg);box-shadow:0 8px 28px #3943251a;z-index:-1}.venue::after{content:'';position:absolute;width:90%;height:360px;top:5px;left:5%;background:repeating-linear-gradient(45deg,#bfc4a677 0 2px,#e9e6cc77 2px 9px);clip-path:polygon(50% 0,100% 100%,0 100%);z-index:-2}.venue>div{position:relative;background:url('rococo-card.svg') no-repeat center/100% 100%;max-width:650px;width:100%;padding:95px 95px 90px;text-align:center;color:var(--olive)}.venue>div::after{content:'';position:absolute;width:190px;height:380px;background:url('lemon-botanical.webp') no-repeat center/contain;right:-100px;top:120px;pointer-events:none;transform:rotate(13deg);z-index:-1}.venue .overline{font-size:10px;letter-spacing:.13em}.venue h2{font:400 70px/.95 var(--script);color:var(--olive);margin:22px 0 28px}.venue h2 em{font-family:inherit;font-style:normal;font-size:1.2em}.venue p{font:500 22px/1.35 var(--serif);margin:18px 0}.venue .venue-address{font:500 21px/1.4 var(--serif);font-style:normal;margin:24px 0}.venue-links{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:7px 23px}.map-link{font:italic 21px/1.4 var(--serif);text-decoration:none;display:inline-flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding:5px 0}.map-link:hover{color:#3b4926}.venue .venue-meta{font:9px/1.9 var(--sans);letter-spacing:.07em;border-top:1px solid var(--line);padding-top:20px;margin-top:25px}.venue-photo{position:relative;margin:0 15px;max-width:660px;width:calc(100% - 30px);padding:11px 11px 0;background:#f9f8ed;transform:rotate(-2deg);box-shadow:0 10px 25px #46513220;border:1px solid #bac1a5}.venue-photo img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;filter:saturate(.75)}.venue-photo figcaption{text-align:center;font:italic 23px var(--serif);padding:16px 5px 19px;color:var(--olive)}.venue-map{max-width:900px;margin:60px auto 0;padding:9px;background:#f7f7ed;border:1px solid #a3ad90;box-shadow:0 5px 20px #4651320d}.venue-map iframe{width:100%;height:330px;display:block;border:0;background:var(--light);filter:saturate(.65)}.venue-map-caption{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:12px 7px 4px;font:16px/1.4 var(--serif);color:var(--olive)}.venue-map-caption a{white-space:nowrap}
.day-plan{position:relative;text-align:center;padding:95px 40px 65px;overflow:hidden}.day-plan h2{font:400 75px/.95 var(--script);color:var(--olive);margin:22px 0 50px}.day-plan h2 em{font-style:normal}.schedule{max-width:700px;position:relative;list-style:none;margin:auto;padding:20px 0;isolation:isolate}.schedule::before{content:'';position:absolute;left:50%;transform:translateX(-50%);top:0;bottom:0;width:180px;background:url('flower-path.svg') center/100% 100% no-repeat;z-index:-1}.schedule-event{position:relative;width:calc(50% - 90px);text-align:center;min-height:220px;display:flex;flex-direction:column;justify-content:center;padding:15px 0}.schedule-event:nth-child(even){margin-left:auto}.schedule-time{font:400 55px/.9 var(--script);color:var(--olive);font-variant-numeric:tabular-nums}.schedule-dot{display:none}.schedule-copy{display:flex;flex-direction:column;align-items:center}.schedule-copy h3{font:500 25px/1.1 var(--serif);color:var(--ink);margin:14px 0 9px;order:0}.schedule-copy p{font:8px/1.8 var(--sans);letter-spacing:.05em;color:#747d62;margin:0;order:1}.event-icon{display:block;width:65px;height:65px;stroke:#818c67;stroke-width:.8;fill:none;margin:15px auto 0;order:2}.schedule-note{font:400 32px/1.2 var(--script);color:var(--olive);margin:35px auto 0;max-width:470px}.schedule-animated .schedule-time,.schedule-animated .schedule-copy{opacity:1;transform:none}
.dresscode{position:relative;padding:90px 70px;text-align:center;max-width:1000px;margin:10px auto 0;overflow:hidden}.dresscode::before,.dresscode::after{content:'';position:absolute;width:150px;height:310px;background:url('lemon-botanical.webp') no-repeat center/contain;pointer-events:none;top:20px;opacity:.85}.dresscode::before{left:0;transform:rotate(175deg)}.dresscode::after{right:0;transform:scaleX(-1) rotate(175deg)}.dresscode h2{font:400 76px/1.1 var(--script);color:var(--olive);margin:20px 0 32px}.dress-intro{max-width:650px;margin:auto;font:500 23px/1.45 var(--serif);position:relative}.dress-intro p{margin:0 0 22px}.dress-intro strong{font-weight:600;color:var(--olive)}.dress-reserved{display:flex;align-items:center;justify-content:center;gap:15px 27px;flex-wrap:wrap;margin:30px auto 0}.dress-reserved span{display:inline-flex;align-items:center;gap:9px;font:17px var(--serif);color:var(--olive)}.dress-reserved i{width:15px;height:15px;border:1px solid #929b7d;background:white;border-radius:50%}.dress-reserved .groom-color{background:#702e3d;border-color:#702e3d}
.wishes-section{padding:70px 60px 85px;position:relative;text-align:center}.wishes{max-width:720px;margin:auto}.wishes-heading{display:flex;flex-direction:column;align-items:center}.wishes h2{font:400 72px/1 var(--script);color:var(--olive);margin:22px 0 18px}.wishes-icon{display:block;width:70px;height:60px;stroke:#8f9877;stroke-width:.8;fill:none;margin:10px auto 28px}.wishes-copy{font:500 23px/1.45 var(--serif);max-width:650px;margin:auto}.wishes-copy p{margin:0 0 23px}.wishes-copy strong{font-weight:600;color:var(--olive)}.wishes-telegram{border-top:1px solid var(--line);padding-top:30px;margin-top:38px}.wishes-telegram h3{font:400 43px/1.1 var(--script);color:var(--olive);margin:0 0 22px}.contacts-section{padding:75px 50px 85px;text-align:center;background:linear-gradient(180deg,#faf9f1,#eef0e4);border-top:1px solid #9da58b45}.contacts-section h2{font:400 74px/1 var(--script);color:var(--olive);margin:20px 0 28px}.contacts-intro{font:500 22px/1.4 var(--serif);max-width:650px;margin:0 auto}.contacts-list{display:flex;justify-content:center;list-style:none;padding:0;max-width:1000px;gap:30px;margin:42px auto 0}.contact-person{flex:1;min-width:0;position:relative;padding:5px 15px 20px}.contact-person:not(:last-child){border-right:1px solid var(--line)}.contact-role{font:9px var(--sans);letter-spacing:.15em;text-transform:uppercase;color:#7f896a;margin:0 0 17px}.contact-person h3{font:400 44px/1.1 var(--script);color:var(--olive);margin:0 0 14px}.contact-phone{display:inline-flex;align-items:center;gap:8px;min-height:44px;font:15px/1.4 var(--sans);text-decoration:none;color:var(--olive);white-space:nowrap}.contact-phone svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1}.contact-phone:hover{text-decoration:underline}
.countdown-section{position:relative;text-align:center;padding:75px 45px 85px;overflow:hidden;background:#eef0e4}.countdown-section::after{content:'';position:absolute;left:calc(50% - 430px);right:calc(50% - 430px);height:1px;top:0;background:linear-gradient(90deg,transparent,var(--sage),transparent)}.countdown-section h2{font:400 62px/1.1 var(--script);color:var(--olive);max-width:700px;margin:20px auto 37px}.countdown{display:flex;justify-content:center;gap:30px;margin:0 auto 35px}.time{min-width:90px;position:relative}.time strong{font:400 58px/1 var(--serif);color:var(--olive);font-variant-numeric:tabular-nums}.time span{display:block;font:9px var(--sans);letter-spacing:.13em;margin-top:13px;color:#737f5e}.time:not(:last-child)::after{content:':';position:absolute;right:-19px;top:0;font:43px var(--serif);color:#9da58c}.calendar-button{background:transparent}.footer{padding:50px 40px 25px;text-align:center;color:var(--olive);border-top:1px solid #a4ad9260;background:var(--paper);position:relative}.footer-title{font:400 51px/1.2 var(--script);margin:0 0 15px}.footer-names{font:9px/1.7 var(--sans);letter-spacing:.13em}.footer-line{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:15px;margin:35px auto 0;padding-top:18px;border-top:1px solid #a4ad9240;max-width:1000px;font:9px/1.7 var(--sans);letter-spacing:.1em}.copy-link{font:11px var(--sans);padding:10px;border:0;cursor:pointer;background:none;color:var(--olive)}.copy-link:hover{text-decoration:underline}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;z-index:20;max-width:90vw;padding:15px 25px;background:var(--olive);color:var(--paper);font:14px/1.5 var(--sans);text-align:center;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}



@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
#invitation{overflow:hidden}
.venue-details{max-width:650px;text-align:center;margin:45px auto 0;color:var(--olive);font:500 23px/1.4 var(--serif)}.venue-details p{margin:18px 0}.venue-details .venue-meta{font:10px/1.9 var(--sans);letter-spacing:.1em;margin-top:25px}.venue>div{padding-top:95px;padding-bottom:100px}


.calendar::before,.calendar::after{width:150px}.calendar::before{left:-95px}.calendar::after{right:-95px}

/* Larger, readable type across the invitation and the mobile view. */
body{font-size:26px}
.body-copy,.dress-intro,.wishes-copy,.contacts-intro,.venue-details{font-size:27px;line-height:1.5}
.hero-description{font-size:32px}.hero-date{font-size:24px}.hero-place{font-size:23px}.hero-note{font-size:19px}
.eyebrow,.overline,.hero .eyebrow,.calendar-sub,.quote-strip small,.venue .overline,.venue-details .venue-meta,.contact-role,.time span,.footer-names,.footer-line{font-size:12px;line-height:1.7;letter-spacing:.05em}
.hero .eyebrow{max-width:310px}
.nav{font-size:14px}.head-date{font-size:14px}
.button,.hero .button,.calendar-button,.copy-link{font-size:14px;min-height:48px}
.signature{font-size:40px;line-height:1.3}
.calendar-grid{font-size:29px;gap:10px 4px}.calendar-grid .day{font-size:16px}.calendar-grid span{min-height:34px}.calendar-caption{font-size:25px}
.childhood-slot p{font-size:20px;overflow-wrap:anywhere}.childhood-photo figcaption{font-size:43px}
.quote-strip span{font-size:43px}
.venue .venue-address{font-size:26px}.map-link{font-size:25px}.venue-photo figcaption{font-size:26px}.venue-map-caption{font-size:20px}.venue-map-caption a{white-space:normal}
.schedule-event{min-height:270px}.schedule-time{font-size:65px}.schedule-copy h3{font-size:30px;line-height:1.2}.schedule-copy p{font-size:12px;letter-spacing:0;line-height:1.6}.schedule-note{font-size:38px}
.dress-reserved span{font-size:21px}.wishes-telegram h3{font-size:48px}
.contact-phone{font-size:18px}.time strong{font-size:66px}
.footer-title{font-size:57px}.toast{font-size:16px}



.wedding-music{max-width:1200px;margin:auto;padding:35px 30px 40px;background:var(--paper);text-align:center;border-top:1px solid var(--line)}.wedding-music>p{font:italic 23px/1.4 var(--serif);color:var(--olive);margin:0 0 18px}.wedding-music iframe{display:block;width:100%;max-width:620px;height:166px;border:0;margin:auto}.music-source{display:inline-block;margin-top:13px;font:12px/1.6 var(--sans);color:var(--olive)}.music-toggle{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));z-index:30;display:flex;align-items:center;justify-content:center;gap:9px;min-height:52px;padding:12px 16px;border:1px solid #87916d;border-radius:28px;box-shadow:0 4px 18px #45502b24;background:#faf9f1f5;color:var(--olive);cursor:pointer;font:12px/1.2 var(--sans);backdrop-filter:blur(8px)}.music-toggle svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;flex-shrink:0}.music-toggle .speaker-on{display:none}.music-toggle.is-playing .speaker-on{display:block}.music-toggle.is-playing .speaker-off{display:none}.music-toggle:hover{background:#eef0e4}.footer{padding-bottom:95px}
.calendar-overline{margin:0 0 23px;text-align:center}.venue-photo{max-width:470px}.venue-photo img{aspect-ratio:auto;height:auto;max-height:430px;object-fit:contain;background:#f9f8ed}
/* Tile the botanical artwork at its natural ratio rather than stretching it. */
.schedule::before{background-size:100% auto;background-repeat:repeat-y;background-position:center top}
.schedule-copy h3.schedule-ending{width:max-content;max-width:none;overflow-wrap:normal;word-break:normal;white-space:normal;text-align:center}

.swatch-word{white-space:nowrap}.inline-swatch{display:inline-block;width:17px;height:17px;margin-right:7px;border:1px solid #8c9677;border-radius:50%;vertical-align:-1px;background:#fff}.inline-swatch.groom-swatch{background:#702e3d;border-color:#702e3d}
.venue-map-caption{flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px}.venue-map-address{display:block;max-width:100%}.venue-map-name,.venue-map-street{display:block;text-align:center}.venue-map-name{margin-bottom:3px}.venue-map-street{white-space:nowrap;font-size:clamp(15px,4.6vw,20px)}
.schedule::before{display:none}.schedule-vine{position:absolute;left:50%;top:0;transform:translateX(-50%);width:180px;height:100%;z-index:-1;pointer-events:none;overflow:visible}
.schedule-bilingual span{display:block;white-space:nowrap}
.footer-title{font-size:50px;white-space:nowrap}

/* Bring the programme events closer without reducing readable type. */
.schedule-event{min-height:215px;padding:7px 0}.schedule-copy h3{margin-top:8px;margin-bottom:5px;line-height:1.15}.event-icon{width:58px;height:58px;margin-top:8px}

