@import url('/assets/fonts.css');
@import url('/assets/invitation-fonts.css?v=2');
@font-face{font-family:'Dancing Script';src:url('/assets/fonts/dancing-script.ttf') format('truetype');font-weight:400;font-display:swap}
:root{--serif:'Cormorant Garamond',Georgia,serif;--script:'Dancing Script',cursive;--shade:.25;--dim:.35;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#fff;color:white;font:16px var(--serif)}button,input,select,textarea{font:inherit}a{color:inherit}button{cursor:pointer;color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid white;outline-offset:4px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.invitation-frame{position:relative;isolation:isolate;margin:0 auto;width:100%;height:100dvh;overflow:hidden;background:#3c413b}.invitation-cover{position:absolute;inset:0;z-index:50;background-image:var(--cover);background-size:cover;background-position:center;transition:opacity .5s,visibility .5s}.invitation-cover.opened{opacity:0;visibility:hidden;pointer-events:none}.cover-shade{position:absolute;inset:0;background:radial-gradient(circle,#0000 19%,#000 99%);opacity:.75}.cover-content{position:relative;text-align:center;height:100%;padding:32px 15px 0}.monogram{font:130px/.85 var(--serif);font-weight:400;width:138px;height:110px;margin:0 auto 12px;white-space:nowrap;letter-spacing:-40px;padding-right:40px}.monogram span{position:relative;left:-6px}.theme-a125 .monogram{width:125px;font-size:124px}.theme-a425 .monogram{width:120px;font-size:120px}.cover-content h1{font:18px/1.3 'Cormorant SC',var(--serif);margin:0}.cover-date{font:18px/1.3 'Cormorant SC',var(--serif);margin:0}.theme-a125 .cover-content h1,.theme-a125 .cover-date{font-size:20px}.open-button{position:absolute;top:80%;left:50%;transform:translate(-50%,-50%);width:170px;height:44px;background:#ffffff26;border:1px solid white;padding:0;font-size:20px}
.ambient-photos,.ambient-shade{position:absolute;inset:0;pointer-events:none;z-index:-2}.ambient-photo{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity .5s ease}.ambient-photo.active{opacity:1}.ambient-photos{overflow:hidden}.ambient-photo:before{content:"";position:absolute;inset:0;background:inherit;transform:scale(1.1);transition:transform 6.5s ease-in-out}.invitation-open .ambient-photo.active:before{transform:scale(1)}.ambient-shade{z-index:-1;background:#000;opacity:var(--shade);transition:opacity .8s}.invitation-frame.reading .ambient-shade{opacity:var(--dim)}.theme-a225{--shade:.2}.theme-a325,.theme-a425{--shade:.4;--dim:.6}
.chapters{position:absolute;inset:0;overflow:hidden;touch-action:pan-y}.chapter{position:absolute;inset:0;text-align:center;overflow-y:auto;overscroll-behavior:contain;visibility:hidden;transform:translateX(100%);transition:transform .5s ease,visibility .5s}.chapter.before{transform:translateX(-100%)}.chapter.active{transform:translate(0);visibility:visible}.slide-content{width:100%;max-width:550px;margin:0 auto;opacity:0;transition:opacity .5s ease-in-out;padding-bottom:5px}.chapter.active .slide-content{opacity:1}.slide-title{font:500 40px/1.2 'Cormorant Upright',var(--serif);padding:20px 5px 5px;margin:0}.hidden-title{height:40px}.slide-body{font-size:20px;font-weight:500;padding:10px;line-height:normal}.slide-body p{margin:20px 0;white-space:pre-line}.slide-body blockquote{font-size:18px;margin:10px 5px}.slide-body blockquote:before{content:'❝';font-size:28px;line-height:18px;display:block}.slide-body blockquote p{margin:0}.slide-body blockquote em{display:block;opacity:.7;font-size:15px;margin-top:11px}.parents{display:flex;justify-content:space-around;padding:12px 4px;gap:12px}.parents h5{font-size:21px;line-height:24px;margin:-1px 0;white-space:pre-line}.parents h5 span{display:block;font-size:12px}.theme-a325 .parents h5 span{font-size:21px;font-style:italic}.invitation-content h3{font:700 40px/52px var(--script);margin:34px auto 31px}.invitation-message{max-width:330px;margin-left:auto!important;margin-right:auto!important}.hero{overflow:hidden}.hero-content{position:absolute;top:50%;left:7.5%;width:85%;transform:translateY(-50%)}.couple-names{font:400 50px/1.2 var(--script);margin:35px 0}.couple-names i{display:block;font:inherit}.getting-married{font-size:18px;line-height:22px;margin:0;padding-bottom:12px;font-weight:300}.countdown{width:275px;max-width:100%;margin:auto;display:flex;justify-content:space-around}.countdown>div{position:relative;width:25%}.countdown>div+div:before{content:':';position:absolute;left:0;font-size:20px;top:0}.countdown strong{display:block;font-size:24px;font-weight:400;line-height:27px}.countdown small{display:block;font-size:10px;line-height:15px}
.location-block{margin:0 8px 8px;padding-top:2.2rem;font-size:18px}.location-icon{display:block;width:auto;height:38px;margin:0 auto 6px}.location-block strong,.time-block strong{display:block;font-size:22px;font-weight:700}.location-block>span,.time-block>span{display:block;font-size:18px}.map-button{display:block;width:180px;max-width:90%;height:42px;border:1px solid white;background:#fff3;line-height:40px;text-decoration:none;margin:23px auto 0;font-size:16px}.time-block{margin:0 8px;padding-top:2.2rem;font-size:18px}.time-block>img{display:block;width:26px;height:26px;margin:0 auto 8px}.celebration-intro{font-size:16px;white-space:pre-line;margin:20px 10px}.theme-a125 .celebration-chapter .location-block{padding-top:0}.event-timeline{display:flex;flex-direction:column;gap:40px;margin:19.2px 0 0;padding:32px 0}.timeline-row{display:flex;gap:12px;align-items:center;justify-content:center;position:relative;font-size:18px}.timeline-row:before,.timeline-row:after{content:'';width:1px;height:30px;position:absolute;left:50%;background:#999;transform:translateX(-50%)}.timeline-row:before{top:-30px}.timeline-row:after{bottom:-30px}.timeline-row>strong,.timeline-row>span{width:45%;font-weight:400}.timeline-row>strong{text-align:right;font-weight:600}.timeline-row>span{text-align:left}.timeline-row>i{width:38px;height:38px;flex-shrink:0;border-radius:50%;background:#fff3;display:flex;align-items:center;justify-content:center}.timeline-row img{width:75%;height:75%;filter:brightness(0) invert(1)}.gathering-chapter .slide-body>p{font-size:18px}.gathering-places{display:flex;flex-direction:column;gap:32px;font-size:18px}.gathering-places h3{font-size:22px;font-weight:700;margin:0 0 10px}.gathering-places .map-button{margin-top:14px}.gathering-places p{font-size:18px;margin:12px 0 0}.additional-details{font-size:18px;white-space:pre-line;margin:20px 10px}
.rsvp-intro{font-size:18px;padding:3px 10px;margin-bottom:15px}.party-note{font:italic 18px 'Cormorant Infant',var(--serif);margin:0;padding-top:15px}.guest-greeting{font-size:21px;font-style:italic;margin:0 0 20px;padding-top:2px}.rsvp-label{display:block;font-size:16px;margin:0;text-align:center}.rsvp-label select,.rsvp-label textarea{display:block;width:90%;max-width:280px;height:45px;border:1px solid white;background:#48484866;border-radius:0;font-size:16px;padding:0 15px;color:white;margin:4px auto 0}.rsvp-label select{opacity:.8}.rsvp-label option{color:#222;background:white}.rsvp-label textarea{height:70px;padding:9px 15px;font-size:14px}.message-field,#attending-field{margin-top:20px}.rsvp-submit{display:block;width:90%;max-width:280px;height:45px;border:1px solid white;background:#fff3;font-size:20px;margin:20px auto 0;border-radius:0}.rsvp-notice{font-size:18px;padding:15px;margin:15px auto;max-width:90%;background:#0005}.named-response .rsvp-intro{margin-bottom:6px}.named-rsvp{border:0;padding:0;margin:0}.named-rsvp legend{width:100%;font-size:16px;margin-bottom:7px}.named-guests{width:90%;max-width:340px;margin:auto;display:flex;flex-direction:column;gap:15px;border:1px solid white;padding:8px}.named-guest{display:flex;justify-content:space-between;align-items:center;padding:8px 0;position:relative;font-size:16px}.named-guest:after{content:'';position:absolute;left:0;right:0;height:1px;bottom:-9px;background:#fff6}.named-guest:last-child:after{display:none}.named-guest>span{text-align:left;padding-right:3px}.named-guest>div{display:flex;gap:6px}.named-guest label{position:relative}.named-guest input{position:absolute;opacity:0}.named-guest label>span{display:flex;justify-content:center;align-items:center;gap:3px;width:65px;height:33px;border-radius:10px;background:#f3f4f6;color:#2c2c2c;font-size:13px;padding-right:8px;cursor:pointer}.named-guest b{font:18px Arial,sans-serif}.named-guest input[value=accepted]:checked+span{background:#55bc82;color:white}.named-guest input[value=declined]:checked+span{background:#f9305d;color:white}.named-guest input:focus-visible+span{outline:2px solid white;outline-offset:3px}.named-response .rsvp-submit,.named-response .rsvp-label textarea{max-width:340px}
.closing-photo{background:white;color:#3a3a3a;width:80%;max-width:330px;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(5deg) scale(.5);padding:15px;border-radius:8px;transition:transform .8s ease-in-out}.active .closing-photo{transform:translate(-50%,-50%) rotate(-12deg) scale(1)}.closing-photo>img{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px}.closing-photo>span{display:block;padding:12px 3% 2px;font-size:18px}.closing-text{position:absolute;inset:0;display:grid;place-items:center;font:40px var(--script)}
.inv-nav{position:absolute;bottom:50px;left:50%;transform:translateX(-50%);z-index:20;display:flex;gap:55px}.inv-nav button{width:68px;height:20px;border:0;background:transparent center/contain no-repeat;padding:0}.inv-nav button span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}#previous-chapter{background-image:url('/assets/invitation/back.svg')}#next-chapter{background-image:url('/assets/invitation/next.svg')}.inv-nav button:disabled{display:none}body:not(.theme-a225) .inv-nav{opacity:0;pointer-events:none}body:not(.theme-a225) .inv-nav:focus-within{opacity:1;pointer-events:auto}.music-toggle{position:absolute;bottom:15px;left:15px;width:35px;height:35px;background:none;border:0;padding:0;z-index:30;opacity:0;transform:scale(.5) rotate(-15deg);transition:opacity .5s,transform .5s}.music-toggle img{width:35px;height:34px;filter:brightness(0) invert(1)}.reading .music-toggle{opacity:1;transform:scale(1) rotate(0)}.music-toggle:focus-visible{opacity:1}.music-toggle[aria-pressed=false] img{opacity:.6}.slide-progress{position:absolute;bottom:0;left:0;right:0;height:3px;background:#fff8;z-index:25}.slide-progress span{display:block;height:100%;background:white;width:0;transition:width .3s}.swipe-prompt{position:absolute;bottom:25px;left:50%;transform:translateX(-50%);width:140px;margin-left:20px;z-index:20;background:none;border:0;padding:0;text-align:left;opacity:0;pointer-events:none;transition:opacity .4s}.swipe-prompt.visible{opacity:1;pointer-events:auto}.swipe-prompt img{width:64px;height:64px;opacity:.6;filter:brightness(0) invert(1);transform-origin:0 100%;animation:swipe 2.1s ease infinite}.swipe-prompt span{display:block;font-size:14px;opacity:.8}.theme-a225 .swipe-prompt{display:none}.music-message{display:none;position:fixed;bottom:65px;left:50%;transform:translateX(-50%);z-index:90;background:#fff;color:#333;padding:12px;width:280px;font-size:16px}.music-message.visible{display:block}.preview-banner{position:fixed;top:0;right:0;z-index:90;background:#fcfaf2e8;color:#56604d;padding:5px 8px;font:10px Arial,sans-serif}.preview-banner a{margin-left:8px}
.nav-vertical .chapter{transform:translateY(100%)}.nav-vertical .chapter.before{transform:translateY(-100%)}.nav-vertical .chapter.active{transform:translateY(0)}.theme-a425 .chapter:not(.hero):not(.forever-chapter){display:flex;align-items:safe center}.theme-a425 .slide-title{padding-top:0}.theme-a425 .hidden-title{display:none}.theme-a425 .slide-content{padding-bottom:0}.nav-vertical .swipe-prompt img{width:58px;height:53px;animation-name:swipe-up}
.floating-seeds{position:fixed;inset:0;height:100dvh;overflow:hidden;pointer-events:none;z-index:60}.floating-seeds>i{position:absolute;top:115%;width:45px;height:45px;animation:seed-fade var(--duration) linear infinite,seed-rise var(--duration) ease-in infinite;animation-delay:var(--delay)}.floating-seeds img{height:65px;width:auto;animation:seed-spin var(--spin) linear infinite alternate}
@keyframes seed-rise{from{transform:translateY(50px)}to{transform:translateY(-1950px)}}@keyframes seed-fade{0%,85%{opacity:1}90%,100%{opacity:0}}@keyframes seed-spin{0%{transform:rotate(-50deg)}60%{transform:rotate(50deg)}80%{transform:rotate(80deg)}100%{transform:rotate(-40deg)}}@keyframes swipe{0%,100%{transform:rotate(0)}50%{transform:rotate(-30deg)}}@keyframes swipe-up{0%,100%{transform:translateY(0)}50%{transform:translateY(-20px)}}
@media(min-width:681px){.invitation-frame{width:375px}}@media(min-width:770px) and (min-height:637px){.invitation-frame{height:635px;margin:25px auto}}@media(min-width:701px) and (max-height:489px){.invitation-frame{height:635px}}@media(min-width:681px) and (max-width:769px){.invitation-frame{margin-top:25px}}@media(max-width:600px){.named-guest label>span{width:60px;height:30px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.floating-seeds{display:none}}

.chapter.hero{transform:none!important;opacity:0;transition:opacity .2s ease-in-out,visibility .2s}.chapter.hero.active{opacity:1}

.parents.family-line{padding:0;display:block}.parents.family-line h5{font-size:16.6px;line-height:normal;margin:-1px 0}

.slide-content{padding-bottom:0}.location-icon{display:inline;width:28px;height:auto;margin:0}.event-icon{margin-bottom:6px}.time-block .event-icon{margin-bottom:8px}.event-icon img{width:28px;height:auto}.map-button{margin-top:22px}.event-timeline{padding-top:48px;padding-bottom:60.8px}.theme-a125 .celebration-intro{padding:10px;margin:20px 0}.theme-a125 .celebration-chapter .location-block{padding-top:20px}
.rsvp-chapter .slide-title{margin-bottom:5px}.rsvp-chapter form{padding:0 5px 5px}.guest-greeting{font-size:22px;padding:0 5px 18px;margin:0}.theme-a125 .rsvp-chapter form,.theme-a425 .rsvp-chapter form{padding-bottom:24px}.named-rsvp legend{padding-top:10px;margin-bottom:6px}.named-response form{padding-bottom:24px}.gathering-places>div{display:flex;flex-direction:column;gap:8px}.gathering-places h3{font-weight:600;margin:0}.gathering-places .map-button{margin:6px auto 3px}.gathering-places p{margin:0}.gathering-places>div:last-child{padding-bottom:28.8px}.gathering-chapter .slide-body>p{margin-top:18px}
.theme-a125 .registry-body p:nth-child(n+3){font-family:'Cormorant Infant',var(--serif);font-size:20px;line-height:28px;position:relative;top:5px}.theme-a125 .registry-body p:nth-child(n+3) strong{display:inline-block;padding-bottom:4px;font-size:22px}

.location-block .event-icon img{width:24px}.event-timeline{padding-bottom:64.8px}.theme-a125 .celebration-chapter .location-block{padding-top:0}.theme-a125 .celebration-intro{margin-bottom:22px}.gathering-chapter .slide-body{padding-bottom:8px}.theme-a325 .ceremony-chapter .slide-content,.theme-a325 .celebration-chapter .slide-content{display:flow-root}
/* Cover name/date positions follow each reference's monogram block. */
.cover-content{padding-top:37px}.monogram{letter-spacing:-20px;padding-right:20px}.monogram span{left:0}.theme-a125 .monogram{height:92.67px}.theme-a225 .monogram{height:128.81px}.theme-a425 .monogram{height:104.92px}.theme-a325 .monogram{height:94.16px;width:160px;font-size:110px}
