/* Full-width paper chapters. Lace is a textile edge, never a card border. */
.wedding-story{--ivory:#f5f0e8;--wine:#573441;--ink:#453338;--muted:#84676b}
.lake-scene{bottom:auto}
.wedding-continuation{background:var(--ivory);color:var(--ink);text-shadow:none}
.wedding-continuation h2,.wedding-continuation h3{color:var(--wine)}
.wedding-continuation .chapter-eyebrow{color:#85656b;font-size:9px!important;letter-spacing:2px;line-height:2}
.scroll-invitation{bottom:100px}
.wedding-date,.wedding-program,.guest-section,.story-ending{position:relative}
.wedding-date{display:block;min-height:0;padding:0;text-shadow:none}
.wedding-date::before,.wine-chapter::before,.wine-chapter::after{content:'';position:absolute;left:-3%;width:106%;height:35.33cqw;background:url('./assets/lace-floral-v13.webp') center/100% 100% no-repeat;pointer-events:none;z-index:1}
.wedding-date::before{display:none}
.date-composition{padding:70px 30px 60px;margin:0;border:0;border-radius:0;box-shadow:none;background:transparent}
.wedding-date h2{margin:20px 0 0}
.date-day{font-size:112px;line-height:1.04;color:var(--wine)}
.date-month{font-size:49px;margin-top:-2px;color:var(--wine)}
.date-year{margin-top:18px!important;font-size:10px;letter-spacing:5px;color:#84676b}
.date-rule{height:34px;margin:20px auto;background:linear-gradient(transparent,#a2877b,transparent)}
.date-time time{font-size:25px;letter-spacing:1px;color:var(--wine)}
.date-time span{font-size:10px;color:#84676b}
.wedding-place{font-size:13px!important;font-weight:600!important;margin-top:24px!important}
.wine-chapter{position:relative;color:#fff6ec;background:radial-gradient(ellipse at 25% 35%,#704752,var(--wine) 78%)}
.wine-chapter::before{top:-10px}
.wine-chapter::after{bottom:-10px;transform:rotate(180deg)}
.wine-chapter .chapter-eyebrow{color:#e1c5bd}
.wine-chapter h2,.wine-chapter h3,.wine-chapter p{color:inherit}
.countdown-block{padding:37cqw 7% 36cqw;margin:0;width:100%;border:0;border-radius:0;box-shadow:none}
.countdown-block h3{font-size:35px;line-height:1.3;color:#fff5e8;-webkit-text-stroke:0}
.countdown{gap:7px;margin-top:30px}
.countdown [data-count]{font-family:'Cormorant Garamond',Georgia,serif;font-size:44px;font-weight:400;letter-spacing:0}
.countdown small{font-size:10px;font-weight:500;letter-spacing:.7px;color:#e5cec3}
.countdown i{font-size:18px;line-height:2.2;color:#c6a1a2}
.countdown-arrived{font-family:var(--script)}
.wedding-program{padding:45px 0 55px;background:var(--ivory)}
.program-heading{padding:0 27px 20px;margin:0;background:none;border:0;border-radius:0;box-shadow:none}
.program-heading h2{font-size:60px;margin-top:17px}
.program-heading .chapter-eyebrow{max-width:245px;margin:auto}
.program-heading .program-sprig{width:100px;height:39px;margin-bottom:20px;color:#a3837c}
.program-note{font-size:11px;letter-spacing:.3px;color:#91777b;margin-top:12px!important}
.timeline-stage{padding:30px 0}
.timeline-event{min-height:230px;padding:0 7%}
.event-copy{width:60%;padding:12px 0;margin:0;border:0!important;border-image:none!important;border-radius:0;background:none;box-shadow:none;opacity:1}
.event-copy time{font-family:'Cormorant Garamond',Georgia,serif;color:#8e6870;font-size:36px;font-weight:500;letter-spacing:0;line-height:1.1}
.event-copy h3{font-family:var(--reading);font-size:17px;font-weight:700;line-height:1.45;margin-top:8px;color:var(--wine)}
.event-copy p{font-size:14px;line-height:1.85;margin-top:10px;color:#78636a}
.timeline-line{stroke:#b99d98;stroke-width:1.15;opacity:.8}
.event-dot{background:var(--ivory);border-color:#9c747b;box-shadow:0 0 0 5px #f5f0e8}
.timeline-paw{filter:drop-shadow(0 2px 2px #65444a33)}
.guest-section{padding:60px 8%}
.section-intro{padding:0;margin:0;border:0;border-radius:0!important;box-shadow:none;background:none}
.section-intro h2{font-size:51px;line-height:1.25;margin:16px 0 20px;color:var(--wine);-webkit-text-stroke:0}
.section-intro p{font-size:13px;line-height:1.9}
.section-intro .venue-name{font-size:17px;margin-bottom:12px;color:#63464e}
.venue-section{background:#e9dcd6;padding-top:29cqw;padding-bottom:105px}
.venue-section::before{content:'';position:absolute;top:-3px;left:-3%;width:106%;height:35.33cqw;background:url('./assets/lace-floral-v13.webp') center/100% 100% no-repeat;pointer-events:none}
.venue-section .section-intro{position:relative;z-index:1;padding-top:12px}
.venue-map{height:330px;margin-top:30px;border:4px solid #fbf6ef;border-radius:120px 120px 12px 12px;box-shadow:0 8px 22px #79595317}
.text-link{font-size:12px;padding:8px 0;background:none;color:#6a414f;border-radius:0}
.map-toggle{font-size:11px;background:#fffaf2;border-color:#bda4a0;color:#62444c}
.our-story{padding:70px 10% 50px;background:var(--ivory)}
.our-story::before{content:'';position:absolute;top:-27cqw;left:-3%;width:106%;height:35.33cqw;background:url('./assets/lace-floral-v13.webp') center/100% 100% no-repeat;transform:rotate(180deg);pointer-events:none}
.our-story .section-intro{margin-bottom:38px}
.our-story .section-intro h2{font-size:53px}
.story-chapter{position:relative;margin:0;padding:38px 0 42px;border:0;box-shadow:none;background:none}
.story-chapter+.story-chapter::before{content:'❧';position:absolute;top:-14px;left:0;width:100%;font-family:Georgia,serif;font-size:27px;color:#b49a90}
.story-number{font-family:var(--reading);font-size:9px;letter-spacing:3px;color:#ad8d87}
.story-chapter h3{font-size:40px;margin:12px 0 20px;line-height:1.3;color:#6d4652;-webkit-text-stroke:0}
.story-chapter p{font-size:14px;line-height:1.95;color:#675258}
.story-chapter p+p{margin-top:12px}
.story-finish{font-size:35px;margin-top:27px;color:#9a7a75}
.dress-section{padding:35cqw 8% 36cqw}
.dress-section .section-intro{margin-bottom:30px}
.dress-section .section-intro h2{color:#fff2e3;font-size:54px}
.dress-section .chapter-eyebrow{color:#dfc0b9}
.couple-scene{margin:0;overflow:hidden;background:#dbc9b9;border-radius:80px 80px 3px 3px}
.couple-scene video{aspect-ratio:5/4;filter:sepia(.14) saturate(.7);background:#dbc9b9}
.couple-scene::after{box-shadow:inset 0 0 20px #31191b1c}
.couple-scene figcaption{font-size:10px;padding:28px 8px 13px;background:linear-gradient(transparent,#311b27c9);color:#fff4e6}
.dress-copy{padding:32px 4px 0;margin:0;border:0;border-image:none;border-radius:0;box-shadow:none;background:none}
.dress-copy p{font-size:14px;line-height:1.9;color:#eeddd8}
.dress-copy .dress-lead{font-size:17px;font-weight:600;color:#fff4e6;margin-bottom:23px}
.dress-copy .dress-note{font-size:13px;line-height:1.9;color:#d8b9b3;margin-top:24px}
.rsvp-section{padding:55px 8% 70px;background:var(--ivory)}
.rsvp-section .section-intro h2{font-size:57px}
.guest-form{margin-top:42px;padding:0;border:0;border-image:none;border-radius:0;box-shadow:none;background:none}
.guest-form>label,.guest-form>div>label,.guest-form legend,#companions-field>label,#decline-fields>label{color:#573e48;font-size:13px;font-weight:700}
.guest-form input:not([type=radio]):not([type=checkbox]),.guest-form textarea{font-size:16px;padding:13px 12px;border:1px solid #cbb7ae;border-radius:4px;background:#fffaf5;color:#49333c}
.guest-form input::placeholder,.guest-form textarea::placeholder{font-size:13px;color:#947b7c}
.meal-choices span{background:#fffaf5;border-color:#cbb7ae;border-radius:4px;color:#684c56;font-size:12px}
.meal-choices input:checked+span{background:#68414e;border-color:#68414e;color:#fff5e8}
.guest-form .field-help{color:#8e7379}
.guest-form .form-note{color:#967e7e;font-size:10px;margin-top:28px}
.submit-rsvp{border-radius:4px;background:var(--wine);border-color:var(--wine);font-size:14px;padding:18px 16px;margin-top:24px}
.submit-rsvp:hover{background:#704653}
.story-ending{padding:35cqw 8% 30cqw;min-height:0}
.story-ending>span{font-size:30px;color:#d4b6a2}
.story-ending>p{font-size:37px;line-height:1.45;margin-top:18px;-webkit-text-stroke:0}
.story-ending .ending-signature{font-size:10px;letter-spacing:.4px;margin-top:27px;color:#dec3b8}
.story-ending::after{display:none}
@media(max-width:350px){
 .guest-section{padding-left:8%;padding-right:8%}
 .event-copy{width:60%;padding:12px 0;border:0!important}
 .event-copy h3{font-size:16px}.event-copy p{font-size:12px}
 .countdown-block h3{font-size:30px}.countdown [data-count]{font-size:39px}
 .section-intro h2,.our-story .section-intro h2{font-size:46px}
 .guest-form{padding:0}.story-chapter h3{font-size:36px}
 .date-composition{padding-left:24px;padding-right:24px}
}

/* The first lace edge is part of the artwork behind the physical flaps. */
.hero-lace{position:absolute;z-index:1;left:-3%;bottom:-7.33cqw;width:106%;height:auto;transform:rotate(180deg);pointer-events:none}
.scroll-invitation{z-index:2}
.wedding-continuation[aria-hidden=true]{visibility:hidden;pointer-events:none}
.experience{justify-content:flex-start}
@media(min-width:601px){html{scrollbar-gutter:stable both-edges}}
.seal-instruction{position:absolute;z-index:21;top:calc(50% + 18cqw);left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;white-space:nowrap;margin:0;color:#735b3d;font:500 11px/1.5 var(--reading);letter-spacing:.4px;text-shadow:0 1px 3px #fffdf1;pointer-events:none}
.seal-instruction>span{height:15px;width:1px;background:linear-gradient(#b49b72,transparent)}
.invitation:not([data-state=closed]) .seal-instruction{visibility:hidden}
.opening-hint{display:none}
.invitation[data-state=closed] .seal-trigger{animation:seal-reminder 6s 30s ease-in-out infinite}
@keyframes seal-reminder{0%,65%,100%{box-shadow:0 0 0 0 #dbba7200}25%{box-shadow:0 0 0 8px #dbba721f,0 0 25px 3px #ffe5a855}}
@media(prefers-reduced-motion:reduce){.invitation[data-state=closed] .seal-trigger{animation:none}}
.couple-scene{border-radius:54px 54px 4px 4px}
.couple-scene video{aspect-ratio:3/4;filter:none}
.submit-rsvp{appearance:none;-webkit-appearance:none;gap:14px}
.submit-arrow{display:block;width:23px;height:23px;flex:0 0 23px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.music-toggle{position:fixed;top:max(14px,env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right));z-index:50;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid #bda48f;border-radius:50%;background:#faf4e9f2;color:#694852;box-shadow:0 2px 10px #432b2520;appearance:none;-webkit-appearance:none;cursor:pointer;touch-action:manipulation}
.music-toggle svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.music-toggle.is-playing{background:#68414eee;color:#fff5e8;border-color:#c1a199}
.music-toggle.is-playing .music-off-line{display:none}
.music-toggle:focus-visible{outline:2px solid #b9925e;outline-offset:4px}

.slides-stage{position:relative;width:100%;aspect-ratio:3/4;overflow:hidden}
.photo-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity .6s ease;pointer-events:none}
.photo-slide.is-active{opacity:1}
.photo-slideshow figcaption{bottom:48px;padding-bottom:8px}
.photo-slideshow::after{background:linear-gradient(transparent 70%,#271b2499);box-shadow:none}
.slideshow-controls{position:absolute;z-index:2;bottom:10px;left:50%;transform:translateX(-50%);display:flex;align-items:center;background:#37253180;border-radius:24px;padding:0 6px}
.slide-dot,.slides-pause{width:24px;height:36px;display:grid;place-items:center;padding:0;border:0;background:none;color:#fff9ef;cursor:pointer;touch-action:manipulation}
.slides-pause{width:36px}
.slide-dot::after{content:'';width:6px;height:6px;border:1px solid #fff5e4;border-radius:50%;background:transparent}
.slide-dot[aria-pressed=true]::after{background:#fff5e4}
.slides-pause svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.slides-pause .play-icon{display:none}
.slides-pause[aria-pressed=false] .play-icon{display:block}
.slides-pause[aria-pressed=false] .pause-icon{display:none}
.motion-alternative{position:fixed;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:25;padding:10px 16px;border:1px solid #bda58a;border-radius:20px;background:#fff9edf2;font:500 12px var(--reading);white-space:nowrap;cursor:pointer}
@media(prefers-reduced-motion:reduce){.photo-slide{transition:none}.experience:has(.invitation[data-state=closed]) .opening-hint{transform:translateY(-42px)}}
