:root{--forest:#273b2e;--copper:#a25227;--parchment:#efe0bd;--garnet:#681e30;--gold:#b68b40;--sepia:#31261e;--ink:var(--sepia);--paper:var(--parchment);--accent:var(--copper);--line:rgb(104 70 39/.25);--font-body:'Lora',Georgia,serif;--font-display:'Bodoni Moda',Georgia,serif;--control-bg:#273b2e;--control-ink:#f5ead0;--control-line:rgb(239 224 189/.32);--dialog-bg:#f4e9d0;--menu-bg:#273b2e;--menu-ink:#f5ead0}
html{background:var(--forest)}body{font-size:15px;line-height:1.85}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--font-display);font-weight:400;line-height:1.08}h2{font-size:clamp(2.8rem,6vw,5.3rem);letter-spacing:-.045em}button{border-radius:0}a,button{touch-action:manipulation}section{position:relative}#invitation-page{overflow:clip}.chapter-note{font-size:.73rem;font-style:italic;letter-spacing:.02em;margin-bottom:1.25rem}.section-intro{padding:5rem 1.5rem 3.6rem;text-align:center}.section-intro>p:last-child:not(.chapter-note){max-width:29rem;margin:1.45rem auto 0;font-size:.88rem}.text-link{display:inline-block;padding:.6rem 0;font-size:.79rem}.garden-gate,.hero{height:100svh;min-height:540px}.garden-gate{position:fixed;inset:0;z-index:100;overflow:hidden;background:var(--forest);color:#f5ead0;text-align:center}.gate-garden,.hero-garden{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 60%;pointer-events:none}.gate-garden{filter:brightness(.68)}.gate-wordmark{position:absolute;top:max(8svh,3.5rem);left:15%;right:15%;font-size:.91rem;max-width:24rem;margin:auto;font-style:italic;line-height:1.8}.keepsake-letter{position:absolute;top:51%;left:50%;width:min(66vw,310px);aspect-ratio:1/1.3;transform:translate(-50%,-50%) rotate(-5deg);background:none;border:0;padding:0;color:var(--garnet);filter:drop-shadow(0 20px 22px rgb(7 14 9/.4));isolation:isolate}.keepsake-paper{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.keepsake-words{position:absolute;inset:20% 9% auto;font-family:var(--font-display);font-size:clamp(2.2rem,8vw,3.1rem);line-height:1.12}.keepsake-words>span,.keepsake-words>em{display:block}.keepsake-words em{font-weight:400}.keepsake-leaf{position:absolute;bottom:8%;left:27%;width:47%;transform:rotate(20deg);filter:drop-shadow(2px 8px 4px rgb(82 35 12/.17));animation:leaf-breathe 3.8s ease-in-out infinite;transform-origin:50% 65%}.gate-hint{position:absolute;top:calc(51% + min(33vw,155px)*1.3 + 27px);left:15px;right:15px;font-size:.78rem;letter-spacing:.02em}.enter-direct{position:absolute;right:1.2rem;bottom:max(1.1rem,env(safe-area-inset-bottom));background:none;border:0;color:inherit;padding:.8rem;font-size:.68rem;opacity:.8}#load-message{position:absolute;bottom:1.2rem;left:1.2rem;right:1.2rem;font-size:.72rem}.opening-veil{position:fixed;inset:0;z-index:105;background:var(--parchment) url('assets/letter.webp') center/cover;opacity:0;pointer-events:none}.opening .keepsake-leaf{animation:none}.falling-leaves{position:fixed;inset:0;z-index:102;pointer-events:none;overflow:hidden}.drifting-leaf{position:absolute;left:0;top:0;width:30px;opacity:0;will-change:transform,opacity}.hero{background:var(--forest);color:#fff3d6;isolation:isolate}.hero-garden{z-index:-2;filter:brightness(.83)}.hero::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgb(23 33 23/.15),rgb(23 33 23/.12) 50%,transparent 72%)}.hero-copy{position:absolute;top:17%;left:7%;right:7%;text-align:center;text-shadow:0 2px 16px rgb(14 22 15/.3)}.hero-blessing{font-size:clamp(.67rem,1.1vw,.85rem);font-style:italic;max-width:25rem;margin:0 auto 1.7rem}.hero h1{font-size:clamp(4rem,17vw,7.5rem);line-height:.94;letter-spacing:-.06em}.hero h1>span{display:block;max-width:100%;overflow-wrap:anywhere}.hero h1 em{display:block;font-size:.46em;font-weight:400;line-height:1.5;letter-spacing:0;color:#f6d596}.hero-date{font-size:.93rem;margin:1.8rem auto .4rem;letter-spacing:.06em}.hero-venue{max-width:27rem;font-size:.8rem;margin:auto;font-style:italic}.hero-scroll{position:absolute;bottom:5.5rem;left:15%;right:15%;margin:auto;text-align:center;font-size:.75rem;text-decoration:none;text-shadow:0 2px 8px #1f281e}.hero-scroll span{display:block;font-size:1.5rem;line-height:1.3;margin-top:.45rem}.family-section{padding-bottom:4.5rem;background:#e7d4ac}.family-section .section-intro{padding-bottom:2rem}.family-letter{position:relative;max-width:580px;margin:auto;width:calc(100% - 36px);perspective:1400px;isolation:isolate;filter:drop-shadow(0 10px 10px rgb(78 53 31/.1))}.letter-content{position:relative;min-height:680px;padding:4rem clamp(1.5rem,5vw,4rem) 3.2rem;background:#f3e8cf url('assets/letter.webp') center/100% 100%;text-align:center}.letter-salutation{font-style:italic;font-size:1.05rem;margin-bottom:1rem}.letter-content>p:not(.letter-salutation){font-size:.77rem;line-height:1.95}.letter-blessing{margin-top:1.6rem;margin-bottom:1.25rem;font-style:italic}.letter-person h3{font-size:clamp(2.5rem,10vw,3.5rem);color:var(--garnet)}.parent-line{font-size:.68rem;line-height:1.75;max-width:25rem;margin:.65rem auto 0}.letter-and{display:block;font-family:var(--font-display);font-style:italic;font-size:2rem;line-height:1.65;color:var(--copper)}.letter-invite{margin:1.4rem 0}.letter-date{font-weight:500}.letter-location{margin-top:.45rem}.letter-cover{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f3e8cf url('assets/letter.webp') center/100% 100%;padding:2rem;border:0;transform-origin:0 50%;backface-visibility:hidden;transition:transform 1.1s cubic-bezier(.2,.7,.2,1),opacity .35s .35s;z-index:2;box-shadow:8px 0 20px rgb(81 46 21/.05)}.letter-cover>span{font-family:var(--font-display);font-size:clamp(2.6rem,10vw,4rem);line-height:1.2;color:var(--garnet)}.letter-cover img{width:37%;max-width:155px;margin:2rem 0;transform:rotate(22deg)}.letter-cover small{font-size:.76rem;font-style:italic}.family-letter.is-open .letter-cover{transform:rotateY(-110deg);opacity:0;pointer-events:none;transition:transform 1.1s cubic-bezier(.2,.7,.2,1),opacity .45s .4s}.letter-footnote{margin:2rem 1.5rem 0;text-align:center;font-size:.75rem;font-style:italic}.celebrations{background:var(--forest);color:#f1e3c6}.celebrations>.section-intro{padding-top:5.2rem;padding-bottom:3.5rem}.ceremony{display:grid;grid-template-columns:1fr;isolation:isolate}.ceremony-art{height:min(68svh,660px);min-height:320px}.ceremony-art img{object-position:center 58%}.ceremony-copy{padding:2.4rem max(1.6rem,7vw) 4.2rem;max-width:42rem;margin:auto;text-align:left;width:100%;position:relative}.ceremony-date{color:#d0ab6e;font-size:.69rem;letter-spacing:.04em;margin-bottom:1rem}.ceremony h3{font-size:clamp(2.5rem,7vw,4.4rem);letter-spacing:-.025em;max-width:34rem}.ceremony-venue{font-style:italic;color:#dcc9a5;font-size:.95rem;margin-top:1rem}.ceremony-description{font-size:.85rem;line-height:1.9;margin:1.5rem 0 1.2rem;max-width:29rem}.ceremony-attire{font-size:.76rem;line-height:1.8;color:#dfcda9}.ceremony-attire .label{display:block;font-size:.69rem;letter-spacing:0;text-transform:none;font-style:italic;margin-bottom:.25rem}.ceremony-map{display:inline-block;font-size:.73rem;margin-top:1.2rem;padding:.5rem 0}.ceremony[data-scene="evening"]{background:#202e24}.ceremony:nth-child(3){background:#344032}.story-section{background:#e5d2ac;display:grid;grid-template-columns:1fr}.story-portrait{padding:2rem 1.5rem 0}.story-portrait img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center 62%}.story-copy{padding:3.5rem 1.8rem 4.5rem;max-width:41rem;margin:auto}.story-copy h2{font-size:clamp(2.8rem,6vw,4.9rem);margin-bottom:1.8rem}.story-copy>p[data-bind]{font-size:.9rem;line-height:2}.story-tags{display:flex;flex-wrap:wrap;gap:.3rem 1rem;margin-top:1.4rem;font-size:.67rem;color:#7d4f32;font-style:italic}.album-section{padding-bottom:4rem;background:#f0e3c6}.album-section .section-intro{padding-bottom:2rem}#gallery-list{--memory-width:min(77vw,25rem);--memory-ratio:3/4;--memory-gap:1.6rem;--memory-inset:max(1.5rem,calc((100vw - 25rem)/2));padding:1.3rem var(--memory-inset) 2rem}.memory{background:#f9f2e3;padding:10px 10px 18px;box-shadow:0 8px 17px rgb(63 42 22/.13);transform:rotate(-2deg);align-self:center}.memory:nth-child(even){transform:rotate(2deg)}.memory-caption{font-size:.69rem;text-align:center;font-style:italic;line-height:1.5;margin-top:.85rem}.gallery-controls{gap:1.25rem;font-size:.69rem}.gallery-controls button{border:none;font-size:1.4rem}.album-help{text-align:center;font-size:.66rem;margin:1rem 1rem 0;font-style:italic}.travel-section{background:#dacaab}.travel-garden{height:350px;overflow:hidden}.travel-garden img{width:100%;height:100%;object-fit:cover;object-position:center 86%}.travel-content{max-width:80rem;margin:auto;padding:3.5rem 1.6rem 4.5rem}.travel-content header{max-width:40rem}.travel-content header>p[data-bind="travel.intro"]{font-size:.87rem;margin:1.6rem 0}.travel-content h2{font-size:clamp(2.7rem,5vw,4.8rem)}.travel-address{font-size:.82rem;font-style:italic;max-width:30rem}#guest-guide{margin-top:2.8rem;display:grid;gap:2.1rem}.guest-note{display:flex;gap:1.2rem;position:relative}.guest-note-number{display:none}.guest-note-copy h3{font-size:1.65rem;color:var(--garnet);margin-bottom:.7rem}.guest-note-copy p{font-size:.82rem;line-height:1.95;max-width:34rem}.countdown-section{padding:4.5rem 1.4rem 5rem;text-align:center;background:var(--forest);color:#f3e3bf}.countdown-leaf{width:85px;margin:0 auto 1.4rem;transform:rotate(-20deg)}.countdown-section h2{font-size:clamp(2.5rem,5vw,4rem)}.countdown-values{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(.5rem,3vw,2rem);max-width:37rem;margin:2.3rem auto}.countdown-values>div{display:flex;flex-direction:column;line-height:1.1}.countdown-values span{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:clamp(2.5rem,9.5vw,4.3rem)}.countdown-values small{font-size:.64rem;margin-top:.8rem;font-style:italic;color:#d6bf91}.countdown-section>p{font-size:.82rem}.calendar-actions{margin-top:1.2rem;font-size:.67rem;gap:.8rem 1.5rem}.calendar-actions a{padding:.5rem 0}.rsvp-section{min-height:650px;display:flex;align-items:center;justify-content:center;color:#f9ecd0;text-align:center;isolation:isolate}.rsvp-garden{position:absolute;inset:0;height:100%;width:100%;object-fit:cover;object-position:center 42%;z-index:-2;filter:brightness(.36)}.rsvp-copy{padding:5rem 1.6rem;max-width:38rem}.rsvp-copy h2{font-size:clamp(3rem,6vw,5.3rem)}.rsvp-copy>p[data-bind]{font-size:.88rem;line-height:1.95;margin:1.7rem auto 2rem;max-width:29rem}.rsvp-copy .button{background:#ead5ab;color:#273b2e;border:none;font-size:.78rem;min-height:49px;padding:.8rem 1.8rem}.rsvp-copy #rsvp-note{margin:1rem auto 0;max-width:28rem;font-size:.68rem}.closing-section{padding:4rem 1.6rem 7rem;text-align:center;background:#e4d1a9}.closing-section>img{width:52px;margin:0 auto 1.7rem;transform:rotate(18deg)}.closing-section>p[data-bind]{font-size:.77rem;font-style:italic}.closing-names{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.6rem 1rem;font-family:var(--font-display);color:var(--garnet);font-size:clamp(2rem,7vw,3rem);line-height:1.3;margin:1.3rem 0}.closing-names>span{overflow-wrap:anywhere}.closing-names em{font-size:.6em;color:var(--copper)}.closing-hashtag{font-size:.68rem}.closing-section>button{background:none;border:0;border-bottom:1px solid var(--line);padding:.65rem 0;font-size:.68rem;margin-top:1.7rem}.controls{left:max(1rem,env(safe-area-inset-left));right:max(1rem,env(safe-area-inset-right));justify-content:space-between;pointer-events:none}.controls button{pointer-events:auto;border-radius:0;background:rgb(39 59 46/.93);font-size:.68rem;padding:.6rem .9rem}body.locked .controls{visibility:hidden}.nav-menu{inset:0;width:100%;max-height:100dvh;padding:8svh max(2rem,calc((100vw - 42rem)/2)) 7rem;border:none;overflow:auto}.nav-menu a{font-family:var(--font-display);font-size:clamp(1.9rem,5svh,3.1rem);padding:.65rem 0;border-bottom-color:rgb(239 224 189/.14);line-height:1.2}.nav-menu .nav-heading{text-transform:none;font-family:var(--font-body);font-style:italic;font-size:.85rem;letter-spacing:0;margin-bottom:1.6rem}.nav-menu .nav-number{font-family:var(--font-body);font-size:.65rem;color:#c5a46e}.guest-dialog .button{background:var(--forest);color:#f5e7c6;border:0}.guest-dialog .dialog-head button{color:var(--garnet)}
html{scrollbar-width:none}html::-webkit-scrollbar{display:none}
@keyframes leaf-breathe{0%,100%{transform:rotate(20deg) translateY(0)}50%{transform:rotate(27deg) translateY(-8px)}}
@media(min-width:760px){.hero-copy{top:16%;left:24%;right:24%}.hero-garden,.gate-garden{object-position:center 70%}.hero h1{font-size:clamp(5rem,8vw,8rem)}.hero-blessing{margin-bottom:1.25rem}.hero h1 em{line-height:1.35}.hero-date{margin-top:1.5rem}.family-section{padding-bottom:6rem}.section-intro{padding-top:6rem}.letter-content{padding-top:4.5rem;min-height:745px}.letter-content>p:not(.letter-salutation){font-size:.86rem}.parent-line{font-size:.75rem}.ceremony{grid-template-columns:1fr 1fr;min-height:740px}.ceremony-art{height:100%;min-height:740px;max-height:920px}.ceremony:nth-child(even) .ceremony-art{order:2}.ceremony-copy{padding:4rem clamp(2rem,5vw,6rem)}.ceremony h3{font-size:clamp(2.8rem,4vw,4.7rem)}.ceremony-description{font-size:.93rem}.ceremony-venue{font-size:1.15rem}.story-section{grid-template-columns:1fr 1fr;padding:5rem 4vw;align-items:center;gap:5vw}.story-portrait{padding:0;max-width:590px;width:100%;justify-self:end;transform:rotate(-2deg)}.story-copy{padding:3rem 0;max-width:37rem;margin-left:0}.travel-section{display:grid;grid-template-columns:.8fr 1.2fr}.travel-garden{height:100%;min-height:930px}.travel-content{padding:5rem clamp(2rem,5vw,6rem)}#guest-guide{gap:2.1rem}.rsvp-section{min-height:760px}.rsvp-copy{padding-block:6rem}.countdown-section{padding-block:6rem}}
@media(min-width:1100px){.hero{min-height:760px}.hero h1{font-size:7rem}.hero-copy{top:14%}.hero-blessing{font-size:.9rem}.hero-date{font-size:1.02rem}.hero-venue{font-size:.9rem}.travel-section{grid-template-columns:1fr 1.3fr}#guest-guide{grid-template-columns:1fr 1fr;gap:2.7rem 2.2rem}.guest-note-copy p{font-size:.8rem}}
@media(max-width:359px){body{font-size:14px}.hero-copy{top:16%;left:6%;right:6%}.hero h1{font-size:16vw}.hero-blessing{font-size:.62rem;margin-bottom:1.2rem}.hero-date{font-size:.78rem;margin-top:1.3rem}.hero-venue{font-size:.69rem}.family-letter{width:calc(100% - 24px)}.letter-content{padding:3.6rem 1.5rem 2.7rem;min-height:690px}.letter-content>p:not(.letter-salutation){font-size:.71rem}.parent-line{font-size:.65rem}.ceremony-art{min-height:290px;height:54svh}.ceremony-copy{padding-inline:1.4rem}.countdown-values small{font-size:.59rem}}
@media(max-height:650px) and (orientation:portrait){.garden-gate,.hero{min-height:100svh}.gate-wordmark{top:7%}.keepsake-letter{width:min(56vw,35svh);top:49%}.gate-hint{top:75%}.hero-copy{top:10%}.hero h1{font-size:min(15vw,13svh)}.hero-blessing{margin-bottom:1rem}.hero-date{margin-top:1.2rem}.hero-scroll{bottom:4.7rem}}
@media(max-height:600px) and (orientation:landscape){.garden-gate,.hero{min-height:100svh}.gate-wordmark{top:14%;left:5%;right:auto;width:25%;font-size:.8rem}.keepsake-letter{width:29svh;top:48%}.gate-hint{top:auto;bottom:7%}.hero-copy{top:13%;left:22%;right:22%}.hero h1{display:flex;align-items:center;justify-content:center;gap:1rem;font-size:12svh}.hero h1 em{line-height:1}.hero-blessing{font-size:.7rem;margin-bottom:1rem}.hero-date{margin-top:1rem;font-size:.75rem}.hero-venue{font-size:.7rem}.hero-scroll{bottom:1.8rem;font-size:.65rem}.hero-scroll span{display:inline;margin-left:.8rem}.hero-garden{object-position:center 76%}.nav-menu{padding-top:1.5rem;display:grid;grid-template-columns:1fr 1fr;gap:0 2rem}.nav-menu .nav-heading{grid-column:1/-1;margin-bottom:.5rem}.nav-menu a{font-size:1.5rem;padding:.35rem 0}.ceremony-art{height:100svh}}
@media(prefers-reduced-motion:reduce){.keepsake-leaf{animation:none}.falling-leaves{display:none}.letter-cover{display:none}.opening-veil{display:none!important}}

/* Living garden refinement: artwork, paper and live type share each scene. */
.hero-art,.rsvp-art{position:absolute;inset:0;overflow:hidden;z-index:-2;pointer-events:none}
.hero-art{filter:brightness(.85)}
.hero-art .hero-garden,.rsvp-art .rsvp-garden{z-index:0;filter:none}
.scene-film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;opacity:0;transition:opacity .45s ease}
.scene-film.is-ready{opacity:1}
.hero-art .scene-film{object-position:center 60%}
.rsvp-art{filter:brightness(.42)}
.rsvp-art .scene-film{object-position:center 42%}
.hero-blessing{font-size:clamp(.75rem,1.2vw,.92rem);line-height:1.7}
.hero-date{font-size:clamp(.94rem,1.25vw,1.08rem)}
.hero-venue{font-size:clamp(.8rem,1.05vw,.96rem);line-height:1.8}
.stationery-world{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.stationery-world img{width:100%;height:100%;object-fit:cover;object-position:center}
.family-section{background:#382d21;isolation:isolate;padding:0 0 3.5rem;overflow:hidden}
.family-section .section-intro{padding:3.6rem 1.5rem 2.4rem;color:#f4e4bf}
.family-section .section-intro h2{font-size:clamp(2.6rem,7vw,4.4rem)}
.family-letter{width:calc(100% - 36px);max-width:570px;perspective:1800px;filter:drop-shadow(7px 16px 20px rgb(9 12 8/.36))}
.family-letter::before{content:'';position:absolute;inset:3px -4px -5px 3px;background:url('assets/letter.webp') center/100% 100%;transform:rotate(1deg);z-index:-1}
.letter-content{min-height:0;padding:3.4rem clamp(1.4rem,5.5vw,3.8rem) 3.8rem;transform-origin:50% 50%}
.letter-content .letter-salutation{font-size:1.15rem;margin-bottom:1.15rem}
.letter-content>p:not(.letter-salutation){font-size:.91rem;line-height:1.9}
.letter-content .letter-blessing{font-size:.83rem;margin:1.6rem auto 1.35rem;max-width:25rem}
.letter-person h3{font-size:clamp(2.6rem,11vw,3.7rem);overflow-wrap:anywhere;line-height:1.16}
.parent-line{font-size:.82rem;line-height:1.8;margin-top:.55rem;overflow-wrap:anywhere}
.letter-and{font-size:2rem;line-height:1.7}
.letter-content .letter-invite{margin:1.45rem 0}
.letter-content .letter-date{font-size:.94rem;letter-spacing:.015em}
.letter-content .letter-location{font-size:.84rem;margin-top:.5rem}
.letter-cover{display:block;background:none;padding:0;transform-style:preserve-3d;backface-visibility:visible;box-shadow:none;transition:transform 1.85s cubic-bezier(.2,.65,.2,1);opacity:1}
.letter-cover>.cover-face{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;background:#f4e8cd url('assets/letter.webp') center/100% 100%;backface-visibility:hidden;font-family:var(--font-body);font-size:1rem;color:var(--garnet);line-height:1.7}
.letter-cover .cover-words{font-family:var(--font-display);font-size:clamp(2.7rem,9.2vw,4rem);line-height:1.2}
.letter-cover .cover-front img{width:39%;max-width:145px;margin:2.3rem 0;transform:rotate(24deg);filter:drop-shadow(1px 7px 3px rgb(88 41 13/.18))}
.letter-cover .cover-front small{font-size:.83rem;font-style:italic}
.letter-cover>.cover-inside{transform:rotateY(180deg);filter:brightness(.91)}
.family-letter.is-open .letter-cover{transform:rotateY(-166deg);opacity:1;pointer-events:none;transition:transform 1.85s cubic-bezier(.2,.65,.2,1)}
.letter-footnote{color:#ead8b0;font-size:.82rem;margin:2.2rem 1rem 0}
.chapter-leaf{width:51px;margin:0 auto 1.25rem;transform:rotate(-23deg)}
.celebrations>.section-intro{padding:3.7rem 1.7rem 3.6rem}
.celebrations>.section-intro h2{font-size:clamp(2.65rem,6vw,4.8rem)}
.section-intro>p:last-child:not(.chapter-note){font-size:.94rem;line-height:1.85}
#events-list{display:grid;gap:0}
.ceremony{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:0;isolation:isolate;padding:clamp(240px,42svh,430px) 16px 2.3rem;background:#364130;overflow:hidden}
.ceremony-art{position:absolute;inset:0;z-index:-2;width:100%;height:100%;min-height:0;max-height:none;order:0!important}
.ceremony-art img,.ceremony-art .scene-film{height:100%;width:100%;object-fit:cover;object-position:center 43%}
.ceremony::after{content:'';position:absolute;inset:65% 0 0;z-index:-1;background:linear-gradient(transparent,rgb(32 37 25/.3));pointer-events:none}
.ceremony-copy{position:relative;margin:0 auto;padding:2.15rem clamp(1.45rem,5.7vw,3rem) 2.4rem;max-width:510px;width:100%;color:var(--sepia);background:#f1e5c9 url('assets/letter.webp') center/100% 100%;text-align:center;filter:drop-shadow(0 12px 13px rgb(9 15 8/.3));transform-origin:center bottom}
.ceremony-copy::after{content:'';position:absolute;width:35px;height:35px;right:14px;top:-12px;background:url('assets/leaf.webp') center/contain no-repeat;transform:rotate(27deg);pointer-events:none}
.ceremony-date{font-size:.77rem;color:#80552b;letter-spacing:.01em;line-height:1.75;margin:0 0 .8rem}
.ceremony h3{font-size:clamp(2rem,8vw,3.1rem);line-height:1.13;color:var(--garnet);max-width:100%;letter-spacing:-.025em}
.ceremony-venue{color:#6d4e32;font-size:1.03rem;line-height:1.55;margin-top:.95rem}
.ceremony-description{font-size:.92rem;line-height:1.85;max-width:32rem;margin:1.1rem auto 1rem}
.ceremony-attire{font-size:.83rem;color:#6e5339;line-height:1.8}
.ceremony-attire .label{display:inline;font-size:inherit;font-style:italic;margin:0}
.ceremony-map{font-size:.77rem;margin-top:.8rem;min-height:38px}
.story-section{position:relative;display:block;padding:3.6rem 18px 4rem;background:#4a3724 url('assets/stationery-scene.webp') center/cover;isolation:isolate}
.story-portrait{position:relative;padding:10px 10px 17px;max-width:420px;width:87%;margin:0 auto -1.8rem;background:#f9f0db;transform:rotate(-3deg);filter:drop-shadow(3px 12px 13px rgb(17 14 10/.26));z-index:2}
.story-portrait img{aspect-ratio:4/5;object-fit:cover;object-position:center 57%}
.story-portrait figcaption{font-size:.72rem;font-style:italic;text-align:center;padding-top:.85rem;line-height:1.6;color:#765236}
.story-copy{position:relative;max-width:570px;margin:0 auto;padding:4.7rem clamp(1.65rem,6vw,3.5rem) 3.4rem;background:#f0e3c9 url('assets/letter.webp') center/100% 100%;filter:drop-shadow(3px 14px 13px rgb(17 14 10/.23));transform-origin:center top}
.story-copy h2{font-size:clamp(2.5rem,8.5vw,3.9rem);line-height:1.13;margin-bottom:1.4rem;color:var(--garnet)}
.story-copy>.chapter-note{font-size:.81rem;margin-bottom:1rem}
.story-copy>p[data-bind]{font-size:.96rem;line-height:1.98}
.story-tags{gap:.4rem 1rem;font-size:.77rem;line-height:1.65}
.story-signoff{font-size:.91rem;font-style:italic;margin-top:1.8rem}
.story-signoff>span{display:block;margin-top:.55rem;font-family:var(--font-display);font-size:1.6rem;line-height:1.5;color:var(--garnet);overflow-wrap:anywhere}
.story-signoff b{font-weight:400}
.album-section{background:#e7d4ad;padding-bottom:3.8rem}
.album-section .section-intro{padding:4rem 1.6rem 2rem}
.album-section h2{font-size:clamp(2.7rem,6vw,4.9rem)}
#gallery-list{--memory-width:min(77vw,26rem);--memory-gap:1.6rem;--memory-inset:max(1.35rem,calc((100vw - 26rem)/2));padding-top:1.8rem;padding-bottom:2.1rem}
.memory{background:#fbf3e4;box-shadow:1px 2px 0 #d6c9af,3px 4px 0 #ece0c7,0 15px 19px rgb(63 42 22/.16);padding:10px 10px 18px}
.memory-caption{font-size:.79rem}.gallery-controls{font-size:.77rem}.album-help{font-size:.77rem}
.travel-section{display:block;background:#f0e4c9}
.travel-content{max-width:1120px;padding:4rem 22px 4.3rem;margin:auto}
.travel-content header{text-align:center;max-width:640px;margin:auto}
.travel-content header .chapter-note{font-size:.83rem}
.travel-content h2{font-size:clamp(2.7rem,7.6vw,4.5rem);line-height:1.12}
.travel-content header>p[data-bind="travel.intro"]{font-size:.96rem;line-height:1.9;margin:1.5rem auto 1.2rem;max-width:35rem}
.travel-address{font-size:.88rem;line-height:1.8;margin:auto}
.text-link{font-size:.84rem;padding:.75rem .4rem}
#guest-guide{display:grid;grid-template-columns:1fr;gap:2.9rem;margin-top:3.2rem}
.guest-note{display:grid;grid-template-columns:112px minmax(0,1fr);align-items:center;gap:.7rem 1.2rem;max-width:560px;width:100%;margin:auto}
.guest-note-copy{display:contents}
.guest-note-copy h3{grid-column:2;font-size:1.9rem;line-height:1.17;margin:0;color:var(--garnet)}
.guest-note-copy p{grid-column:1/-1;font-size:.95rem;line-height:1.95;margin:0;max-width:none}
.guest-illustration{display:block;grid-column:1;grid-row:1;width:112px;height:112px;align-self:center;background-image:url('assets/guest-vignettes.webp');background-repeat:no-repeat;pointer-events:none}
.guest-illustration--travel{aspect-ratio:690/635;height:auto;background-size:181.739% 197.481%;background-position:0 0}
.guest-illustration--stay{aspect-ratio:564/650;height:auto;background-size:222.341% 192.923%;background-position:100% 0}
.guest-illustration--attire{aspect-ratio:690/618;height:auto;background-size:181.739% 202.913%;background-position:0 100%}
.guest-illustration--wishes{aspect-ratio:564/594;height:auto;background-size:222.341% 211.111%;background-position:100% 100%}
.guest-illustration--leaf{background-image:url('assets/leaf.webp');background-size:74%;background-position:center;transform:rotate(-17deg)}
.countdown-section{background:linear-gradient(rgb(27 30 20/.65),rgb(27 30 20/.65)),url('assets/stationery-scene.webp') center/cover;padding:4.6rem 1.35rem 4.9rem}
.countdown-section h2{font-size:clamp(2.5rem,6vw,4rem);line-height:1.13}
.countdown-values{gap:.8rem;margin-block:2.6rem}.countdown-values small{font-size:.77rem}.countdown-section>p{font-size:.96rem}.calendar-actions{font-size:.78rem}
.rsvp-section{min-height:690px}.rsvp-copy{padding:5rem 1.6rem}.rsvp-copy>.chapter-note{font-size:.8rem}.rsvp-copy>p[data-bind]{font-size:1rem;line-height:1.9}.rsvp-copy .button{font-size:.88rem;min-height:50px}.rsvp-copy #rsvp-note{font-size:.79rem;line-height:1.8}
.closing-section{padding-top:3.7rem}.closing-section>p[data-bind]{font-size:.85rem}.closing-section>button{font-size:.79rem}.closing-names{gap:.5rem 1rem}
@media(min-width:760px){
  .hero-art .scene-film{object-position:center 70%}
  .family-section{padding-bottom:4.8rem}.family-section .section-intro{padding-top:4.8rem;padding-bottom:3rem}
  .family-letter{width:min(45vw,570px)}.letter-content{padding:4.1rem 3.4rem 4.3rem}.letter-content>p:not(.letter-salutation){font-size:.98rem}.parent-line{font-size:.9rem}
  .ceremony{min-height:760px;padding:4.5rem 6vw;justify-content:center;align-items:flex-end}
  .ceremony-art{min-height:0;max-height:none}.ceremony-art img,.ceremony-art .scene-film{object-position:center 53%}
  .ceremony-copy{width:min(46%,530px);max-width:none;margin:0;padding:3.2rem 2.6rem 3.5rem}
  .ceremony:nth-child(even){align-items:flex-start}.ceremony:nth-child(even) .ceremony-copy{margin:0}
  .ceremony h3{font-size:clamp(2.3rem,3.3vw,3.6rem)}.ceremony-description{font-size:1rem}.ceremony-venue{font-size:1.15rem}.ceremony-date{font-size:.85rem}.ceremony-attire{font-size:.91rem}.ceremony-map{font-size:.82rem}
  .story-section{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.06fr);align-items:center;gap:0;padding:6.5rem 6vw}
  .story-portrait{width:100%;max-width:580px;margin:0 -2rem 0 auto;justify-self:end;transform:rotate(-4deg)}
  .story-copy{width:100%;max-width:620px;margin:0 auto 0 0;padding:4rem clamp(2.3rem,4.4vw,4.5rem);transform:rotate(1.5deg)}
  .story-portrait figcaption{font-size:.85rem}.story-copy>p[data-bind]{font-size:1rem}.story-copy h2{font-size:clamp(2.9rem,4vw,4.4rem)}
  .travel-content{padding:5rem 5vw 5.5rem}#guest-guide{grid-template-columns:1fr 1fr;gap:3.7rem 4.5rem;margin-top:4rem}.guest-note{grid-template-columns:128px minmax(0,1fr);gap:1rem 1.5rem}.guest-illustration{width:128px}.guest-note-copy h3{font-size:2.1rem}.guest-note-copy p{font-size:1rem}
  .rsvp-section{min-height:800px}.rsvp-copy{padding-block:6rem}
}
@media(min-width:1200px){.ceremony{min-height:850px;padding-inline:8vw}.ceremony-copy{width:470px;padding:3.5rem 3.2rem}.story-section{padding-inline:max(7vw,calc((100vw - 1250px)/2))}.family-letter{width:550px}.hero-art .scene-film{object-position:center 70%}}
@media(max-width:359px){
  .family-letter{width:calc(100% - 24px)}.letter-content{padding:3.5rem 1.35rem 3.8rem}.letter-content>p:not(.letter-salutation){font-size:.87rem}.parent-line{font-size:.79rem}.letter-content .letter-salutation{font-size:1.03rem}.letter-person h3{font-size:2.6rem}
  .ceremony{padding:230px 12px 1.9rem}.ceremony-copy{padding:1.95rem 1.35rem 2.2rem}.ceremony h3{font-size:1.95rem}.ceremony-description{font-size:.9rem}.ceremony-date{font-size:.73rem}
  .story-section{padding-inline:12px}.story-copy{padding-inline:1.5rem}.story-copy>p[data-bind]{font-size:.92rem}.story-copy h2{font-size:2.35rem}
  .guest-note{grid-template-columns:96px minmax(0,1fr);gap:.8rem 1rem}.guest-illustration{width:96px}.guest-note-copy h3{font-size:1.8rem}.guest-note-copy p{font-size:.91rem}
  .countdown-values small{font-size:.68rem}.calendar-actions{font-size:.73rem}.hero-blessing{font-size:.67rem}
}
@media(max-height:650px) and (orientation:portrait){.hero-blessing{font-size:.69rem}.hero-date{font-size:.85rem}.hero-venue{font-size:.77rem}}
@media(max-height:600px) and (orientation:landscape){.hero-art .scene-film{object-position:center 76%}.hero-blessing{font-size:.7rem}.hero-date{font-size:.78rem}.hero-venue{font-size:.74rem}.ceremony{padding:2.5rem 6vw;min-height:620px}.ceremony-copy{width:52%;margin-left:auto}.ceremony-art{height:100%}.family-letter{width:min(68vw,550px)}}
@media(prefers-reduced-motion:reduce){.letter-cover{display:none}.family-letter,.ceremony-copy,.story-copy,.story-portrait,.memory{animation:none!important}.scene-film{display:none!important}}

/* An autumn keepsake: living garden scenes, warm paper, and a cloth-bound album. */
:root{--forest:#273b2e;--copper:#8e543c;--parchment:#eadbc1;--garnet:#714736;--gold:#b28a48;--sepia:#382f25;--ivory:#faf0de;--line:rgb(105 77 47/.25);--control-bg:#273b2e;--control-ink:#faf0de}
#invitation-page{isolation:isolate;background:var(--forest)}
#invitation-page>section,#invitation-page>footer{scroll-margin-top:0}
#invitation-page h2{letter-spacing:-.035em;text-wrap:balance}
#invitation-page :focus-visible{outline:2px solid var(--gold);outline-offset:6px}
.section-intro{position:relative;z-index:2}.chapter-note{font-size:.83rem;line-height:1.75}
.hero{height:100svh;min-height:580px;color:var(--ivory)}
.hero-art{filter:brightness(.78) saturate(.8)}
.hero::after{background:linear-gradient(180deg,rgb(22 31 22/.22),transparent 51%,rgb(27 32 22/.05) 75%,#2c3024 100%)}
.hero-copy{top:16%;text-shadow:0 1px 0 rgb(255 245 219/.08),0 3px 20px rgb(10 19 13/.45)}
.hero h1{font-size:clamp(4rem,15.7vw,7rem);line-height:1.01;letter-spacing:-.045em}
.hero h1 em{font-size:.39em;line-height:1.6;color:#ddbf83}
.hero-blessing{max-width:24rem;margin-bottom:1.5rem;color:#eee3ca;font-size:clamp(.77rem,1.3vw,.94rem)}
.hero-date{margin-top:1.65rem;letter-spacing:.025em}.hero-venue{max-width:25rem;color:#f0e4ca}
.hero-scroll{bottom:max(4.8rem,9svh);font-size:.79rem;color:#f2e7cf}.hero-scroll span{font-size:1.2rem;animation:path-invitation 3.7s ease-in-out infinite}
.family-section{background:#2c3024;padding:1rem 0 5rem;overflow:clip}
.stationery-world{opacity:.7}.stationery-world::after{content:'';position:absolute;inset:0;background:linear-gradient(#2c3024 0%,rgb(39 44 30/.32) 24%,rgb(36 39 28/.25) 72%,var(--forest))}
.family-section .section-intro{padding:3.2rem 1.5rem 2.8rem;color:var(--ivory)}
.family-section .section-intro .chapter-note{margin-bottom:.9rem;color:#cfba95}
.family-section .section-intro h2{font-size:clamp(2.7rem,8.6vw,4.5rem);line-height:1.06}
.family-letter{width:calc(100% - 44px);max-width:535px;filter:drop-shadow(4px 20px 24px rgb(7 12 8/.3))}
.family-letter::before{inset:5px -4px -6px 4px;transform:rotate(1.1deg)}
.letter-content{padding:3.4rem clamp(1.5rem,5.8vw,3.6rem) 3.65rem;color:#514334}
.letter-content .letter-salutation{font-size:1.13rem;color:#795133}.letter-content .letter-blessing{color:#80613c}
.letter-person h3{color:#795038;font-size:clamp(2.65rem,10.3vw,3.7rem)}
.letter-content>p:not(.letter-salutation){font-size:.88rem}.parent-line{font-size:.81rem;line-height:1.8}
.letter-cover .cover-words{color:#785039;letter-spacing:-.035em}.letter-cover .cover-front img{filter:saturate(.56) brightness(.9) drop-shadow(1px 7px 4px rgb(73 36 16/.16));width:36%}
.letter-cover .cover-front small{color:#846645}.letter-footnote{font-size:.82rem;color:#d4bf9a;margin-top:2.5rem}
.celebrations{background:var(--forest);color:var(--ivory)}
.celebrations>.section-intro{padding:2.8rem 1.5rem 3.2rem}
.chapter-leaf{width:58px;filter:saturate(.7);margin-bottom:1.45rem}
.celebrations>.section-intro h2{font-size:clamp(2.75rem,8.8vw,4.8rem)}
.celebrations>.section-intro p{color:#d8c9aa;max-width:28rem;font-size:.91rem}
.ceremony{--scene-ground:#273b2e;display:block;min-height:0;padding:0;background:var(--scene-ground)!important;overflow:hidden}
.ceremony[data-scene='evening']{--scene-ground:#222d24}
.ceremony[data-scene='music']{--scene-ground:#242f28}
.ceremony[data-scene='vows']{--scene-ground:#343c2a}
.ceremony-art{position:relative;inset:auto;z-index:0;height:clamp(360px,70svh,730px);width:100%;overflow:hidden;min-height:0;margin:0;isolation:isolate}
.ceremony-art img,.ceremony-art .scene-film{object-position:center 44%;transform:scale(1.025);filter:saturate(.82)}
.ceremony-art::after{content:'';position:absolute;inset:0;background:linear-gradient(var(--scene-ground),transparent 12%,transparent 60%,var(--scene-ground) 100%);pointer-events:none;z-index:2}
.ceremony::after{display:none}
.ceremony-copy{position:relative;z-index:3;width:100%;max-width:600px;margin:-3.1rem auto 0!important;padding:0 1.8rem 4.5rem;background:none;color:#eee2c9;filter:none;text-align:center;transform-origin:center center}
.ceremony-copy::after{display:none}
.ceremony-date{font-size:.8rem;color:#d4b477;letter-spacing:.025em;margin-bottom:.85rem;line-height:1.8}
.ceremony h3{font-size:clamp(2.65rem,9.2vw,4.2rem);font-weight:400;color:var(--ivory);line-height:1.04;letter-spacing:-.035em;max-width:100%;text-wrap:balance;text-shadow:0 2px 12px rgb(12 22 14/.2)}
.ceremony-venue{color:#d8c3a0;font-size:1.05rem;margin-top:1.1rem;line-height:1.6}
.ceremony-description{font-size:.94rem;color:#e2d8c3;line-height:1.95;max-width:31rem;margin:1.15rem auto 1.35rem}
.ceremony-attire{font-size:.85rem;max-width:30rem;margin:auto;color:#cdb993;line-height:1.85}
.ceremony-attire .label{font-size:.83rem;font-style:italic;color:#e1cea5}
.ceremony-map{font-size:.79rem;color:#e2c78f;min-height:44px;padding:.65rem .15rem;margin-top:1rem;text-decoration-thickness:1px;text-underline-offset:5px}
.ceremony.is-in-view .ceremony-art img{animation:garden-drift 20s ease-in-out infinite alternate}
.ceremony-art:has(.scene-film.is-ready)>img{animation:none}
.story-section{display:block;position:relative;padding:5.7rem 22px 4.8rem;background:#e8dac0 url('assets/letter.webp') center/cover;isolation:isolate;overflow:clip}
.story-section::before{content:'';position:absolute;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(ellipse at 13% 4%,rgb(255 248 223/.9),transparent 55%),linear-gradient(160deg,transparent 44%,rgb(133 98 43/.07) 70%,transparent)}
.portrait-keepsake{position:relative;width:min(87%,425px);margin:0 auto;perspective:1200px;z-index:2}
.portrait-thread{position:absolute;top:-4rem;height:5.5rem;left:49%;width:1px;background:#997940;transform:rotate(11deg);transform-origin:bottom;opacity:.65;z-index:3}
.portrait-thread::after{content:'';position:absolute;bottom:2px;left:-5px;width:11px;height:20px;border:1px solid #a2864d;border-radius:6px;box-shadow:inset 1px 0 0 #eedfae;transform:rotate(-11deg)}
.story-portrait{position:relative;width:100%;max-width:none;padding:9px 9px 18px;background:#fbf1db;margin:0;transform:rotate(-2.4deg);filter:drop-shadow(4px 20px 16px rgb(72 52 29/.21));transform-origin:50% 0}
.story-portrait img{aspect-ratio:4/5;width:100%;object-fit:cover;object-position:center 48%}
.story-portrait::after{content:'';position:absolute;inset:9px 9px 44px;background:linear-gradient(115deg,transparent 30%,rgb(255 244 206/.12) 43%,transparent 60%);pointer-events:none;opacity:0}
.story-section.is-in-view .story-portrait::after{animation:paper-light 12s ease-in-out infinite}
.story-portrait figcaption{font-size:.73rem;padding-top:.8rem;color:#7b6443;line-height:1.65}
.portrait-leaf{position:absolute;right:-16%;bottom:-6%;width:39%;pointer-events:none;filter:saturate(.58) drop-shadow(2px 7px 3px rgb(55 29 16/.13));transform:rotate(16deg)}
.story-section.is-in-view .portrait-leaf{animation:keepsake-leaf 9s ease-in-out infinite}
.story-copy{background:none;filter:none;transform:none!important;max-width:580px;padding:3.5rem .4rem 0;margin:0 auto}
.story-copy>.chapter-note{font-size:.81rem;color:#8a6a44;margin-bottom:1rem}
.story-copy h2{color:#65503a;font-size:clamp(2.75rem,8.8vw,4.4rem);line-height:1.06;margin-bottom:1.6rem}
.story-copy>p[data-bind]{font-size:.96rem;line-height:2;color:#62543f}
.story-tags{font-size:.78rem;gap:.6rem 1.05rem;color:#927342;margin-top:1.65rem}.story-tags>*{max-width:100%;min-width:0;overflow-wrap:anywhere}
.story-signoff{font-size:.84rem;color:#806746;margin-top:2rem}.story-signoff>span{font-size:1.85rem;color:#795139;line-height:1.45}
.album-section{position:relative;background:#3d3526 url('assets/stationery-scene.webp') center/cover;padding:0 0 4.6rem;color:var(--ivory);isolation:isolate}
.album-section::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(rgb(28 36 24/.68),rgb(36 37 25/.6))}
.album-section .section-intro{padding:4.5rem 1.5rem 2.65rem}.album-section h2{font-size:clamp(2.85rem,9.3vw,4.8rem);line-height:1.06}.album-section .section-intro>p{font-size:.88rem;color:#dac9a9}
.keepsake-album{position:relative;max-width:690px;width:calc(100% - 28px);margin:auto;padding:13px 0 15px;background:#73775a;box-shadow:0 18px 35px rgb(6 13 7/.3),2px 3px 0 #303d29,inset 0 0 0 1px rgb(248 225 170/.16);border-radius:2px 6px 7px 2px;isolation:isolate}
.keepsake-album::before{content:'';position:absolute;inset:10px 8px 11px 20px;z-index:-1;background:#e9d9ba url('assets/letter.webp') center/100% 100%;box-shadow:2px 3px 0 #cdbb95,3px 5px 0 #ded0b0,4px 7px 0 #ac9b7b;border-radius:0 3px 3px 0}
.album-spine{position:absolute;left:6px;top:12px;bottom:16px;width:14px;background:linear-gradient(90deg,#45513d,#717357 48%,#394a36);z-index:3;pointer-events:none;border-right:1px solid rgb(42 47 26/.3);box-shadow:3px 0 6px rgb(44 46 23/.19)}
#gallery-list{--memory-width:100%;--memory-gap:60px;--memory-inset:30px;padding:25px var(--memory-inset) 10px;scrollbar-width:none;scroll-snap-type:x mandatory;perspective:1000px}
#gallery-list::-webkit-scrollbar{display:none}
.memory,.memory:nth-child(even){position:relative;background:none;padding:0;box-shadow:none;transform:none!important;color:#775a3b;align-self:start}
.memory img{aspect-ratio:4/5;object-fit:cover;border:7px solid #fff6e1;box-shadow:0 3px 9px rgb(70 46 25/.17);width:100%}
.memory::before,.memory::after{content:'';position:absolute;width:25px;height:25px;z-index:1;pointer-events:none;border-color:#c2b18b;border-style:solid;border-width:8px 0 0 8px;top:-2px;left:-2px;filter:drop-shadow(1px 1px 1px rgb(54 47 27/.12))}
.memory::after{top:auto;left:auto;bottom:48px;right:-2px;border-width:0 8px 8px 0}
.memory-caption{min-height:38px;font-size:.78rem;line-height:1.65;margin:.85rem .5rem 0;text-align:center;font-style:italic}
.gallery-controls{position:relative;z-index:2;gap:1.25rem;font-size:.75rem;color:#775a3b;margin:0 25px 12px}
.gallery-controls button{border:0;color:#775a3b;font-size:1.5rem;padding:.2rem;min-width:48px;min-height:44px}.gallery-controls button:disabled{opacity:.25}
.album-pressed-leaf{position:absolute;right:-15px;bottom:-22px;width:83px;pointer-events:none;z-index:4;transform:rotate(18deg);filter:saturate(.65) drop-shadow(2px 6px 3px rgb(38 23 8/.15))}
.album-help{font-size:.76rem;color:#d0bd95;margin-top:2rem;line-height:1.7}
.travel-section{display:block;background:#e8dcc4;overflow:clip}
.travel-stilllife{position:relative;margin:0;height:clamp(280px,58svh,590px);overflow:hidden;isolation:isolate}
.travel-stilllife img{width:100%;height:100%;object-fit:cover;object-position:center 46%;filter:saturate(.83)}
.travel-stilllife::after{content:'';position:absolute;inset:65% 0 0;background:linear-gradient(transparent,#e8dcc4);pointer-events:none}
.travel-content{position:relative;max-width:1110px;padding:0 24px 4.5rem;margin:-1rem auto 0}
.travel-content header{text-align:center;max-width:680px;margin:0 auto}
.travel-content h2{font-size:clamp(2.65rem,8.8vw,4.4rem);line-height:1.08;color:#64503b}
.travel-content header .chapter-note{font-size:.82rem;color:#8a6a46;margin-bottom:.9rem}
.travel-content header>p[data-bind='travel.intro']{font-size:.93rem;color:#685b47;line-height:1.9;margin:1.45rem auto 1.25rem;max-width:32rem}
.travel-address{font-size:.84rem;color:#806646;line-height:1.85}.travel-content .text-link{color:#8d5e3e;text-decoration-thickness:1px;text-underline-offset:5px;padding:.9rem .5rem}
#guest-guide{margin-top:2.6rem;gap:1.9rem}
.guest-note{position:relative;display:grid;grid-template-columns:86px minmax(0,1fr);gap:.4rem 1rem;max-width:540px;padding:0 0 1.7rem;border-bottom:1px solid rgb(132 108 63/.18)}
.guest-note:last-child{border-bottom:0;padding-bottom:0}.guest-illustration{width:86px;grid-column:1;grid-row:1/3;align-self:start;filter:saturate(.62)}
.guest-note-copy{display:contents}.guest-note-copy h3{font-size:1.8rem;grid-column:2;color:#78573a;line-height:1.18;margin:.35rem 0 .1rem}.guest-note-copy p{grid-column:2;font-size:.87rem;line-height:1.9;color:#71614a}
.countdown-section{position:relative;background:#293b2c;padding:4.5rem 1.4rem 4.9rem;color:#ecdfc4;overflow:hidden}
.countdown-section::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 8%,rgb(166 135 69/.13),transparent 58%);pointer-events:none}
.countdown-leaf{width:70px;filter:saturate(.6) brightness(.88);margin-bottom:1.7rem;transform:rotate(-16deg)}
.countdown-section h2{font-size:clamp(2.55rem,8vw,4rem);line-height:1.12}.countdown-values{max-width:600px;gap:.7rem;margin:2.5rem auto 2rem}
.countdown-values span{font-size:clamp(2.6rem,10.7vw,4.8rem);color:#e9d4a8;font-weight:400;letter-spacing:-.035em}.countdown-values small{font-size:.72rem;color:#baa77e;margin-top:.6rem}
.countdown-section>p{font-size:.89rem}.calendar-actions{font-size:.77rem;gap:.4rem 1.4rem;margin-top:1.2rem}.calendar-actions a{color:#d0b987;min-height:44px;padding:.7rem .2rem;text-underline-offset:5px}
.rsvp-section{min-height:680px;padding:0;isolation:isolate}.rsvp-art{filter:brightness(.42) saturate(.76)}
.rsvp-section::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(#293b2c,transparent 16%,transparent 76%,#202c23)}
.rsvp-copy{max-width:620px;padding:5rem 1.8rem 4rem;text-shadow:0 2px 16px rgb(7 13 9/.22)}
.rsvp-copy>.chapter-note{max-width:23rem;margin:0 auto 1.35rem;color:#e5cd9f;font-size:.79rem}
.rsvp-copy h2{font-size:clamp(3.1rem,10vw,5.2rem);line-height:1.05;color:#faf0da}
.rsvp-copy>p[data-bind]{font-size:.95rem;line-height:1.95;color:#e2d7c0;margin:1.6rem auto 2rem;max-width:28rem}
.rsvp-copy .button{font-size:.84rem;background:#e4ce9f;color:#36422d;min-height:52px;padding:.85rem 2rem;border:1px solid #efdeb9;box-shadow:0 0 0 4px rgb(240 222 179/.06)}
.rsvp-copy #rsvp-note{font-size:.76rem;color:#d4c09b;margin-top:1.2rem}
.closing-section{background:#202c23;color:#c8b793;padding:2.5rem 1.5rem 7rem;position:relative}
.closing-section>img{width:56px;filter:saturate(.6) brightness(.85);margin-bottom:1.7rem}
.closing-section>p[data-bind]{font-size:.79rem;line-height:1.9}.closing-names{font-size:clamp(2.4rem,8vw,3.6rem);color:#e8d7b4;line-height:1.3;margin:1.2rem auto;gap:.35rem .7rem}.closing-names em{color:#b79458}
.closing-hashtag{font-size:.77rem;color:#bdaa85}.closing-section>button{color:#d6bd8b;font-size:.75rem;border-color:rgb(189 158 99/.45);margin-top:1.9rem;min-height:44px;padding:.7rem .3rem}
.controls button{background:rgb(33 48 37/.93);color:#ebdcc0;border:1px solid rgb(215 189 137/.35);padding:.65rem .85rem;min-height:42px;border-radius:2px;backdrop-filter:blur(8px)}
.drifting-leaf{filter:saturate(.55);opacity:.55}
.garden-gate~.falling-leaves{z-index:99}
#falling-leaves{opacity:.7}
#falling-leaves .drifting-leaf{filter:saturate(.7) brightness(.95);transform-origin:50% 45%}
@keyframes path-invitation{0%,100%{transform:translateY(0);opacity:.8}50%{transform:translateY(5px);opacity:1}}
@keyframes garden-drift{0%{transform:scale(1.025) translate3d(0,0,0)}100%{transform:scale(1.075) translate3d(0,-.4%,0)}}
@keyframes paper-light{0%,18%,100%{opacity:0;transform:translateX(-12%)}55%,72%{opacity:1;transform:translateX(12%)}}
@keyframes keepsake-leaf{0%,100%{transform:rotate(16deg) translateY(0)}50%{transform:rotate(19deg) translateY(-4px)}}
body.is-backgrounded .hero-scroll span,body.is-backgrounded .is-in-view .ceremony-art img,body.is-backgrounded .is-in-view .story-portrait::after,body.is-backgrounded .is-in-view .portrait-leaf{animation-play-state:paused}
@media(min-width:760px){
  .hero{min-height:760px}.hero-copy{top:13%;left:24%;right:24%}.hero h1{font-size:clamp(5.1rem,8vw,7.6rem)}.hero-scroll{bottom:5.5rem}
  .family-section{padding-bottom:6rem}.family-section .section-intro{padding-top:4rem;padding-bottom:3.4rem}.family-letter{width:min(48vw,535px)}
  .letter-content{padding:4.1rem 3.5rem}.letter-content>p:not(.letter-salutation){font-size:.94rem}.parent-line{font-size:.87rem}
  .celebrations>.section-intro{padding:3.7rem 1.5rem 4rem}.ceremony{min-height:740px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.82fr);align-items:center;gap:0;padding:0 5vw 0 0}
  .ceremony-art{height:780px;max-height:none;min-height:0}.ceremony-art::after{background:linear-gradient(90deg,transparent 55%,var(--scene-ground)),linear-gradient(var(--scene-ground),transparent 9%,transparent 90%,var(--scene-ground))}
  .ceremony-copy{margin:0!important;padding:3rem 1rem 3rem 2.6rem;text-align:left;max-width:530px;width:100%}.ceremony h3{font-size:clamp(3rem,4.5vw,4.7rem)}
  .ceremony-description{font-size:1rem;margin:1.3rem 0 1.5rem;max-width:28rem}.ceremony-venue{font-size:1.16rem}.ceremony-attire{margin:0}.ceremony-date{font-size:.84rem}.ceremony-map{font-size:.84rem}
  .ceremony:nth-child(even){grid-template-columns:minmax(0,.82fr) minmax(0,1fr);padding:0 0 0 5vw}.ceremony:nth-child(even) .ceremony-art{order:2!important}.ceremony:nth-child(even) .ceremony-art::after{background:linear-gradient(270deg,transparent 55%,var(--scene-ground)),linear-gradient(var(--scene-ground),transparent 9%,transparent 90%,var(--scene-ground))}.ceremony:nth-child(even) .ceremony-copy{padding:3rem 2.6rem 3rem 1rem;margin-left:auto!important}
  .story-section{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:7vw;padding:7rem 7vw 6rem;align-items:center}.portrait-keepsake{width:94%;max-width:460px;margin:0 auto}.story-portrait{padding:11px 11px 20px}.portrait-leaf{width:39%;right:-16%}.story-copy{padding:0;margin:0;max-width:550px}.story-copy h2{font-size:clamp(3rem,4.3vw,4.5rem)}.story-copy>p[data-bind]{font-size:1rem}.story-copy>.chapter-note{font-size:.85rem}.story-signoff>span{font-size:2rem}
  .album-section .section-intro{padding-top:5.8rem;padding-bottom:3rem}.album-section{padding-bottom:5.2rem}.keepsake-album{width:min(85%,710px);padding:18px 0 20px}.keepsake-album::before{inset:14px 13px 14px 27px}.album-spine{left:8px;top:16px;bottom:20px;width:20px}#gallery-list{--memory-gap:100px;--memory-inset:50px;padding:35px var(--memory-inset) 10px}.memory img{aspect-ratio:5/4;border:10px solid #fff6e1}.memory-caption{font-size:.88rem}.gallery-controls{font-size:.85rem;margin-bottom:12px}.album-pressed-leaf{width:110px;right:-20px;bottom:-25px}
  .travel-stilllife{height:550px}.travel-stilllife img{object-position:center 49%}.travel-content{padding:0 6vw 5.5rem;margin-top:-1.5rem}.travel-content header>p[data-bind='travel.intro']{font-size:1rem}.travel-content .chapter-note{font-size:.88rem}#guest-guide{grid-template-columns:1fr 1fr;gap:2.7rem 3.5rem;margin-top:3.8rem}.guest-note{grid-template-columns:98px minmax(0,1fr);gap:.4rem 1.15rem;border-bottom:0}.guest-illustration{width:98px}.guest-note-copy h3{font-size:2rem}.guest-note-copy p{font-size:.94rem}
  .countdown-section{padding:5.5rem 1.5rem 6rem}.rsvp-section{min-height:770px}.rsvp-copy{padding-block:7rem}.closing-section{padding-top:3rem;padding-bottom:7rem}
}
@media(min-width:1300px){.ceremony{padding-right:max(7vw,calc((100vw - 1440px)/2));grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr)}.ceremony:nth-child(even){padding-left:max(7vw,calc((100vw - 1440px)/2));grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}.story-section{padding-inline:max(8vw,calc((100vw - 1270px)/2));gap:8vw}.travel-stilllife{height:590px}}
@media(max-width:359px){.hero h1{font-size:16vw}.hero-copy{top:16%;left:6%;right:6%}.hero-blessing{font-size:.7rem}.family-letter{width:calc(100% - 28px)}.letter-content{padding:3rem 1.25rem}.letter-content>p:not(.letter-salutation){font-size:.82rem}.parent-line{font-size:.76rem}.ceremony-art{height:390px}.ceremony-copy{padding:0 1.45rem 3.8rem}.ceremony h3{font-size:2.45rem}.ceremony-description{font-size:.88rem}.story-section{padding:5rem 18px 4rem}.story-copy{padding-top:3rem}.story-copy h2{font-size:2.5rem}.story-copy>p[data-bind]{font-size:.9rem}.portrait-keepsake{width:87%}.guest-note{grid-template-columns:72px minmax(0,1fr);gap:.3rem .8rem}.guest-illustration{width:72px}.guest-note-copy h3{font-size:1.65rem}.guest-note-copy p{font-size:.84rem}.countdown-values span{font-size:2.55rem}.countdown-values small{font-size:.64rem}}
@media(max-height:650px) and (orientation:portrait){.hero{min-height:100svh}.hero-copy{top:10%}.hero h1{font-size:min(15vw,12.6svh)}.hero-blessing{margin-bottom:.95rem;font-size:.69rem}.hero-date{margin-top:1.15rem;font-size:.83rem}.hero-venue{font-size:.75rem}.hero-scroll{bottom:4.4rem;font-size:.69rem}}
@media(max-height:600px) and (orientation:landscape){.hero{min-height:100svh}.hero-copy{top:13%;left:17%;right:17%}.hero h1{display:flex;align-items:center;justify-content:center;gap:1rem;font-size:12svh}.hero h1 em{line-height:1}.hero-blessing{font-size:.69rem;margin-bottom:.8rem}.hero-date{margin-top:1rem;font-size:.8rem}.hero-venue{font-size:.73rem}.hero-scroll{bottom:1.5rem;font-size:.68rem}.hero-scroll span{display:inline}.ceremony{min-height:0}.ceremony-art{height:570px}.ceremony-copy{padding-inline:2rem}.family-letter{width:min(70vw,535px)}}
@media(prefers-reduced-motion:reduce){.hero-scroll span,.ceremony.is-in-view .ceremony-art img,.story-section.is-in-view .story-portrait::after,.story-section.is-in-view .portrait-leaf{animation:none!important}.ceremony-art img{transform:none}.story-portrait::after{display:none}.portrait-leaf{transform:rotate(16deg)}}
