html{scroll-behavior:smooth;scroll-padding-top:56px}
.copy .words,.copy .place,#details-title,#details .intro-text{white-space:pre-line}
.preview-badge{position:fixed;top:0;left:0;right:0;z-index:99;background:#65513e;color:#fff;padding:8px;text-align:center;font:10px/1.5 Arial,sans-serif;pointer-events:none}
.form-trap{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.submit-response:disabled{opacity:.6;cursor:wait}
:root{--invitation-width:min(100%, calc(100svh * 4 / 7))}
.stage,.paper-pages{width:var(--invitation-width)}
.paper-pages{margin:auto;background:#f6f0e4;color:#75604c;container-type:inline-size}
.section-nav{display:flex;justify-content:center;gap:clamp(16px,5vw,52px);padding:24px 16px;border-bottom:1px solid #a9917333;background:#f6f0e4}
.section-nav a{font:11px/1.5 Arial,sans-serif;letter-spacing:.09em;color:inherit;text-decoration:none;padding:8px 0}
.paper-section{position:relative;min-height:92svh;display:grid;place-items:center;padding:90px 32px;background:linear-gradient(#f6f0e444,#f6f0e444),url('assets/keyframes/video-01-end-v2.png') center/100% 100%;border-top:1px solid #a991731a}
.section-content{width:100%;max-width:720px;text-align:center}
.section-label{font:10px/1.9 Arial,sans-serif;letter-spacing:.22em;margin:0 0 24px}
.ornament{display:block;font-size:34px;color:#a99173;margin:12px auto 22px;text-shadow:0 1px #fff}
.paper-section h2{font-size:clamp(34px,5vw,56px);line-height:1.18;font-weight:normal;margin:0 0 24px;text-shadow:0 1px #fff,0 -1px #6c513922}
.paper-section h2 em{font-weight:normal}.intro-text{font-size:16px;line-height:1.9;margin:0 auto 38px;max-width:540px}
.venue-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin:42px 0 28px}.venue{padding:22px 12px}.venue+.venue{border-left:1px solid #a9917355}.venue-number{font:10px Arial,sans-serif;letter-spacing:.18em}
.paper-section h3{font-size:23px;font-weight:normal;line-height:1.4;margin:20px 0 12px}.venue p{font-size:14px;line-height:1.8}.venue .venue-time{font-size:30px;margin:20px 0}.paper-link{color:inherit;font:12px/1.8 Arial,sans-serif;text-underline-offset:6px;display:inline-block;padding:12px 0}
.demo-note{font:11px/1.8 Arial,sans-serif;color:#796956;max-width:540px;margin:24px auto}.next-section{display:inline-block;padding:20px;color:inherit;text-decoration:none;font-size:26px}
.timeline{list-style:none;text-align:left;padding:0;margin:48px auto;max-width:460px}.timeline li{position:relative;display:grid;grid-template-columns:64px 1fr;gap:24px;padding:0 0 32px}.timeline li:before{content:'';position:absolute;left:75px;top:9px;bottom:-9px;border-left:1px solid #a9917366}.timeline li:last-child:before{bottom:32px}.timeline time{font:14px/1.6 Arial,sans-serif}.timeline h3{font-size:20px;margin:0 0 8px}.timeline p{font-size:14px;line-height:1.7;margin:0}.dress-note{border-top:1px solid #a9917355;padding-top:12px;max-width:490px;margin:auto}.dress-note p{font-size:15px;line-height:1.9}
.rsvp-form{max-width:450px;margin:36px auto;text-align:left}.rsvp-form label,.rsvp-form legend{display:block;font:12px/1.7 Arial,sans-serif;margin:18px 0 8px}.rsvp-form input:not([type=radio]),.rsvp-form textarea{width:100%;border:1px solid #a9917366;border-radius:0;background:#fff5;color:#65513e;padding:13px 12px;font:16px/1.5 Georgia,serif}.rsvp-form textarea{resize:vertical}.rsvp-form fieldset{border:0;margin:20px 0;padding:0}.attendance-options label{margin:10px 0;display:flex;align-items:center;gap:9px}.attendance-options input{accent-color:#75604c}.guest-counts{display:grid;grid-template-columns:1fr 1fr;gap:20px}.rsvp-form input:disabled{opacity:.4}.submit-response{width:100%;padding:17px 12px;background:#75604c;color:#fff9ed;border:1px solid #75604c;font:12px/1.6 Arial,sans-serif;cursor:pointer}.submit-response:hover{background:#65513e}#response-status{font:13px/1.8 Arial,sans-serif}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid #75604c;outline-offset:4px}.invitation-footer{margin:70px 0 0}.invitation-footer p{font-size:25px}.invitation-footer small{font:9px Arial,sans-serif;letter-spacing:.2em}.invitation-footer a{display:block;margin-top:25px;font:11px Arial,sans-serif;color:inherit}.js-reveals .scroll-reveal{opacity:0;transform:translateY(22px);transition:opacity 1s ease,transform 1s ease}.js-reveals .scroll-reveal.in-view{opacity:1;transform:none}
@container(max-width:600px){.paper-section{padding:70px 24px}.venue-grid{grid-template-columns:1fr;gap:0;margin-top:20px}.venue+.venue{border-left:0;border-top:1px solid #a9917344;padding-top:30px}.intro-text{font-size:15px}.section-label{font-size:9px}.section-nav{gap:25px}.section-nav a{font-size:10px}.guest-counts{gap:12px}.paper-section h3{font-size:21px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js-reveals .scroll-reveal{opacity:1;transform:none;transition:none}}

/* Scroll story: each text panel replaces the previous on the same sheet. */
.scroll-story .paper-pages{position:relative;height:300vh;height:300svh;container-type:normal}
.scroll-story .section-nav{display:none}
.scroll-story .paper-scene{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;container-type:inline-size;background:url('assets/keyframes/video-01-end-v2.png') center/100% 100%}
.scroll-story .paper-section{position:absolute;inset:0;min-height:0;height:100%;padding:36px 24px;overflow-y:auto;display:block;background:none;border:0;opacity:0;scrollbar-width:thin;scrollbar-color:#a9917366 transparent}
.scroll-story .section-content{margin:auto}
.scroll-story .section-label{margin-bottom:14px}
.scroll-story .paper-section h2{font-size:clamp(30px,7cqw,42px);margin-bottom:18px}
.scroll-story .intro-text{font-size:14px;margin-bottom:18px}
.scroll-story .venue-grid{margin:18px 0;gap:12px;grid-template-columns:1fr 1fr}
.scroll-story .venue{padding:12px 5px}
.scroll-story .venue+.venue{border-top:0;border-left:1px solid #a9917344;padding-top:12px}
.scroll-story .venue h3{font-size:19px}
.scroll-story .venue p{font-size:12px}
.scroll-story .venue .venue-time{font-size:26px;margin:12px 0}
.scroll-story .timeline{margin:26px auto}
.scroll-story .timeline li{padding-bottom:23px}
.scroll-story .dress-note p{font-size:14px}
.scroll-story .ornament{margin:8px auto 14px;font-size:28px}
.scroll-story .demo-note{margin:16px auto;font-size:10px}
.scroll-story .next-section{padding:8px}
@media(prefers-reduced-motion:reduce){.scroll-story .section-content>*{transform:none!important}}

/* Quick, gentle top-to-bottom reveal each time a panel becomes active. */
.scroll-story .text-reveal{opacity:0;transform:translateY(10px);transition:opacity .22s ease,transform .22s ease;transition-delay:0s}
.scroll-story .text-entered .text-reveal{opacity:1;transform:translateY(0);transition-duration:.7s;transition-timing-function:cubic-bezier(.2,.65,.3,1);transition-delay:var(--reveal-delay,0ms)}
@media(prefers-reduced-motion:reduce){.scroll-story .text-reveal{transform:none;transition:none!important}}

/* Keep the opening and following screen in one viewport: no split screens. */
.scroll-story .paper-pages{height:400vh;height:400svh}
.scroll-story .paper-scene>.stage{position:absolute;inset:0;width:100%;height:100%;margin:0;aspect-ratio:auto}
.scroll-story .paper-scene>.stage video{width:100%;height:100%;object-fit:contain}

.gift-card{max-width:490px;margin:28px auto;padding:22px 0;border-top:1px solid #a9917355}.gift-card>p{font-size:14px;line-height:1.9}.gift-card details{margin-top:18px;padding:18px;background:#fff3;border:1px solid #a9917344;text-align:left}.gift-card summary{cursor:pointer;font:13px/1.8 Arial,sans-serif}.gift-card .gift-holder{font:13px/1.8 Arial,sans-serif;margin-top:22px}.gift-label{display:block;font:10px Arial,sans-serif;letter-spacing:.15em;margin:18px 0 8px}.gift-card code{display:block;font:clamp(12px,3.2cqw,16px)/1.8 monospace;overflow-wrap:anywhere;color:#65513e;user-select:all}.copy-iban{padding:12px 16px;margin-top:12px;border:1px solid #a99173;color:#65513e;background:#f8f2e8;font:12px Arial,sans-serif;cursor:pointer}.copy-iban:disabled{opacity:.45;cursor:default}#gift-status{font:12px/1.7 Arial,sans-serif}.gift-bank{font-size:13px}
