/* Wedding presentation. Kept separate from the administration styles. */
.wedding-body{--cream:#fbf9f4;--gold:#ae8d56;--gold-light:#e9d3ac;--navy:#122b42;background:var(--cream);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.wedding-body ::selection{background:#dac6a2;color:#10283f}.wedding-body h1,.wedding-body h2,.wedding-body h3{text-wrap:balance}.wedding-body p{overflow-wrap:anywhere}.wedding-body main{overflow:clip}.wedding-body .eyebrow{font-size:10px;font-weight:500;letter-spacing:3.2px}.wedding-body .button{min-height:48px;padding:13px 25px;border-radius:2px;letter-spacing:.7px;font-size:11px;transition:background .25s,border-color .25s,box-shadow .25s,transform .25s}.wedding-body .button .icon{width:17px;height:17px;transition:transform .25s}.wedding-body .button:hover .icon{transform:translateX(3px)}
.wedding-nav{position:sticky;top:0;z-index:30;min-height:86px;background:#fbf9f4f2;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);padding:0 5%;border-bottom:1px solid #c9b08733;transition:box-shadow .3s}.wedding-nav.is-scrolled{box-shadow:0 5px 30px #10283f09}.wedding-logo{font-size:25px;display:flex;align-items:center;gap:13px;letter-spacing:-.5px;max-width:35%}.wedding-logo:before{content:'♡';display:flex;align-items:center;justify-content:center;flex-shrink:0;width:37px;height:37px;border:1px solid #b7996766;border-radius:50%;font:22px var(--serif);color:#ab8a51}.wedding-nav nav{gap:24px;font-size:10px}.wedding-nav nav>a{position:relative;padding:10px 0;transition:color .2s}.wedding-nav nav>a:not(.nav-rsvp):after{content:'';position:absolute;left:0;right:100%;bottom:3px;height:1px;background:var(--gold);transition:right .3s}.wedding-nav nav>a:hover:after,.wedding-nav nav>a[aria-current=location]:after{right:0}.wedding-nav nav>a[aria-current=location]{color:#9c7b44}.wedding-nav .nav-rsvp{border:1px solid #b7996777;padding:9px 14px;border-radius:2px}.reading-progress{appearance:none;-webkit-appearance:none;position:fixed;top:0;left:0;width:100%;height:2px;z-index:60;border:0;background:transparent;pointer-events:none}.reading-progress::-webkit-progress-bar{background:transparent}.reading-progress::-webkit-progress-value{background:#c7a66e}.reading-progress::-moz-progress-bar{background:#c7a66e}
.wedding-hero{height:calc(100svh - 86px);min-height:730px;max-height:1050px;background:#10283f;padding:85px 30px 115px}.wedding-hero.has-cover:before{background:linear-gradient(180deg,rgba(6,19,32,.58) 0%,rgba(6,19,32,.62) 35%,rgba(6,19,32,.68) 70%,rgba(6,19,32,.82) 100%);z-index:1;pointer-events:none}.hero-content{max-width:1100px}.hero-content h1{font-size:clamp(64px,8.3vw,122px);line-height:1.1;letter-spacing:-3.5px;text-shadow:0 4px 35px #0002}.hero-eyebrow{letter-spacing:5.5px;font-size:9px}.wedding-intro{font-size:31px;letter-spacing:.4px}.hero-description{font-size:13px;line-height:1.9;color:#f0efecdd}.hero-rule{margin:23px 0}.hero-rule:before,.hero-rule:after{width:65px;background:#e1cba677}.hero-border{inset:22px;border-color:#f2dfba44;z-index:2;pointer-events:none}.hero-border:after{border-color:#f2dfba1a}.wedding-date{margin:26px 0 20px}.wedding-date>strong{font-size:54px;padding:0 30px}.wedding-date>span{font-size:10px;letter-spacing:2.5px;color:#f0dfc5}.hero-content>.button{margin-top:16px;padding:15px 28px;box-shadow:0 5px 25px #0002}.hero-slide{transform:scale(1);transition:opacity 1.3s ease,transform 7s ease-out}.hero-slide.is-active{transform:scale(1.065)}.hero-slider-controls{border-color:#e9d3ac55;backdrop-filter:blur(12px);background:#0b2034a8;bottom:36px}.hero-slider-dots button:after{transition:background .3s,transform .3s}.hero-slider-dots button[aria-current=true]:after{transform:scale(1.3)}.scroll-cue{letter-spacing:2.7px;color:#f3e9da;font-size:7px}.scroll-cue>span{margin-top:10px}.hero-botanical{opacity:.3}
.wedding-section{padding-top:110px;padding-bottom:110px}.wedding-section h2{font-size:clamp(34px,3.7vw,53px);line-height:1.23;letter-spacing:-1.2px}.wedding-section h2 em{color:#a38b62}.welcome{max-width:1120px;padding-top:105px;padding-bottom:105px}.welcome>p{font-size:14px;line-height:2.1;max-width:680px;color:#6e777b}.gold-divider{font-size:26px;margin:25px 0}.gold-divider:before,.gold-divider:after{content:'';display:inline-block;vertical-align:middle;width:45px;height:1px;background:#c7b48e77;margin:0 17px}.countdown-section{position:relative;background:#f0ece2;padding:70px 24px 75px;border-color:#e7dfd0}.countdown-section h2{font:italic 32px var(--serif);color:#6c6f65;margin:13px 0 38px}.countdown{gap:35px}.countdown>div{min-width:100px}.countdown strong{font-size:70px;letter-spacing:-2px;line-height:1.1}.countdown span{font-size:8px;letter-spacing:2.5px;margin-top:15px}.countdown>b{font-size:28px;color:#bba887}
.recipient-section{padding:100px 35px;background:radial-gradient(ellipse at 50% 0%,#23456155,transparent 65%),linear-gradient(135deg,#142f49,#0a1d30)}.recipient-section:before{inset:23px;border-color:#c9b08744}.recipient-section-content{max-width:1000px}.recipient-section .recipient-name{font-size:clamp(46px,6.2vw,88px);line-height:1.15;color:#f0dbb4}.recipient-seal{width:53px;height:53px;margin-bottom:24px;border-color:#d6ba8777}.recipient-intro{font-size:25px;margin-top:25px}.recipient-message{font-size:13px;line-height:2}.recipient-seats{padding:14px 23px;font-size:12px}.recipient-section .recipient-couple{font-size:40px;margin:10px 0}.recipient-botanical{opacity:.3;width:350px}.recipient-section .button{margin-top:25px}.recipient-members{color:#d8c7a5}
.family-section{position:relative}.family-grid{gap:60px;margin-top:45px}.family-grid article{position:relative;border-top:0;padding:15px 20px}.family-grid article:before{content:'✧';display:block;color:var(--gold);font-size:20px;margin-bottom:20px}.family-grid h3{font:10px var(--sans);letter-spacing:2px;text-transform:uppercase;color:#a58e69;margin-bottom:19px}.family-grid p{font:25px/1.8 var(--serif);color:#405365;margin:0}.family-message{font-size:14px;line-height:2.1;color:#758086;max-width:680px}.family-names{font:29px/1.8 var(--serif);color:#405365}#padrinos{background:#f3f0e8;border-top:1px solid #e9e2d5;border-bottom:1px solid #e9e2d5}#indicaciones{background:#f4f1e9}
.story-section{max-width:1240px;gap:85px}.story-emblem{min-height:430px;background:linear-gradient(160deg,#f0eadf,#e1d8c6);border-color:#c7b48e66;border-radius:180px 180px 3px 3px;box-shadow:16px 16px 0 #eee9df88}.story-emblem>span{font-size:150px;color:#b4a180}.story-emblem>img{width:280px;left:-65px;bottom:-80px}.story-section>div>p{font-size:13px;line-height:2.1;color:#758086}.celebration{background:#f3f0e8}.venue-grid{max-width:980px;gap:36px;margin-top:55px}.venue-card{padding:47px 35px 45px;background:#fdfbf7;border-color:#d9cbb0;box-shadow:0 10px 35px #4b3b2205;transition:transform .4s,box-shadow .4s}.venue-card:before{inset:10px;border-color:#e8e0d2}.venue-card h3{font-size:32px}.venue-icon{width:70px;height:70px;background:#f4f0e6;margin-bottom:15px}.venue-icon .icon{width:30px;height:30px}.venue-card>.eyebrow{font-size:9px;letter-spacing:2px}.venue-card>p:not(.eyebrow):not(.venue-time):not(.venue-subtitle){line-height:1.9;font-size:12px}.venue-time{font-size:34px;margin-top:28px}.venue-subtitle{font-size:16px}.venue-card .button{font-size:10px;min-height:44px}
.wedding-itinerary{position:relative;max-width:800px;margin-top:60px;padding-left:38px}.wedding-itinerary:before{content:'';position:absolute;top:20px;bottom:32px;left:7px;width:1px;background:linear-gradient(#d4c4a5,#bca274,#d4c4a5)}.wedding-itinerary li{position:relative;gap:40px;padding:28px 0;border-bottom:1px solid #d8cbb444}.wedding-itinerary li:before{content:'';position:absolute;width:9px;height:9px;border:1px solid var(--gold);border-radius:50%;background:#f3f0e8;left:-35px;top:37px;box-shadow:0 0 0 5px #f3f0e8}.wedding-itinerary time{font:30px/1.2 var(--serif);color:#9a8055;min-width:105px;white-space:nowrap}.wedding-itinerary time small{display:block;font:7px var(--sans);letter-spacing:2px;margin-top:8px}.wedding-itinerary h3{font-size:25px;color:#344c60}.wedding-itinerary p{font-size:12px;color:#7e8584;line-height:1.9;max-width:530px}
.memories{padding-bottom:130px}.photo-gallery{gap:25px;margin-top:55px}.photo-gallery a{position:relative;background:#e8e4dc;border-radius:3px;box-shadow:0 12px 35px #10283f12;display:block;align-self:start}.photo-gallery a:after{content:'↗';position:absolute;right:17px;bottom:17px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;color:white;border:1px solid #fff7;border-radius:50%;background:#10283f55;opacity:0;transform:translateY(6px);transition:opacity .3s,transform .3s;pointer-events:none}.photo-gallery img{height:380px;filter:saturate(.93);transition:transform .7s,filter .7s}.photo-gallery a:nth-child(3n+2){margin-top:45px}.photo-gallery a:focus-visible:after{opacity:1;transform:none}.details-section{background:#eee9df}.detail-grid{gap:75px;margin-top:55px}.detail-grid article{padding-top:30px;border-color:#c4ae87}.detail-grid h3{font-size:29px}.detail-grid p{font-size:13px;line-height:2;color:#777e7c}.detail-number{font:italic 17px var(--serif)}
.rsvp-section{background:radial-gradient(ellipse at 0 50%,#25476277,transparent 65%),#10283f;gap:75px;align-items:center}.rsvp-heading h2{font-size:53px}.rsvp-heading p{font-size:13px;line-height:2}.rsvp-card{padding:42px;border:1px solid #d5c5a899;border-radius:4px;box-shadow:0 20px 55px #06142133}.rsvp-card label,.rsvp-card legend{font-size:12px}.rsvp-card input,.rsvp-card textarea,.rsvp-card select{border-color:#ddd7c9;border-radius:3px;padding:12px 14px;background:#fffdf9}.response-options label{min-height:53px;transition:background .25s,border-color .25s}.wedding-footer{padding-top:85px;background:#081d30}.footer-names{font-size:52px;letter-spacing:-1px;margin:22px 0}.wedding-footer>p:not(.footer-names){font-size:12px;line-height:1.9}.footer-bottom{margin-top:35px;padding:26px 0;color:#9faebc;font-size:9px}.footer-heart{font-size:30px;margin:25px 0 15px}.public-invite-note>p{font-size:13px;line-height:1.9}.public-invite-note h2{font-size:34px}
.wedding-body .reveal-pending{opacity:0;transform:translateY(23px);transition:opacity .85s ease,transform .85s cubic-bezier(.2,.65,.3,1)}.wedding-body .reveal-visible{opacity:1;transform:none}.wedding-body .venue-card.reveal-visible{transition:opacity .85s,transform .5s,box-shadow .4s}.photo-lightbox{position:fixed;inset:0;border:0;border-radius:0;padding:60px 30px 30px;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;background:#081827f5;color:#fff;overflow:hidden}.photo-lightbox::backdrop{background:#081827ed}.photo-lightbox[open]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px}.photo-lightbox>img{width:auto;height:auto;max-width:min(1150px,100%);max-height:calc(100dvh - 150px);object-fit:contain;border-radius:2px}.lightbox-close{position:absolute;right:25px;top:15px;border:1px solid #ffffff44;border-radius:50%;width:43px;height:43px;font-size:28px;color:#fff;background:transparent}.lightbox-navigation{display:flex;gap:25px;align-items:center;color:#e9d3ac}.lightbox-navigation button{width:45px;height:40px;border:1px solid #ffffff33;border-radius:3px;background:transparent;color:white;font-size:22px}.lightbox-navigation span{font-size:11px;letter-spacing:2px}.lightbox-open{overflow:hidden}
@media(hover:hover){.wedding-body .button:hover{transform:translateY(-2px);box-shadow:0 8px 23px #10283f17}.venue-card:hover{transform:translateY(-5px);box-shadow:0 18px 45px #4b3b2210}.photo-gallery a:hover:after{opacity:1;transform:none}.photo-gallery a:hover img{transform:scale(1.045);filter:saturate(1)}}
@media(max-width:1200px){.wedding-nav nav{gap:16px;font-size:9px}.wedding-logo{font-size:23px;max-width:32%}.story-section{gap:55px}.hero-content h1{font-size:clamp(58px,8vw,94px)}.photo-gallery img{height:320px}.rsvp-section{gap:40px}.family-grid{gap:25px}}
@media(max-width:1024px){.wedding-nav{padding:0 4%}.wedding-logo:before{display:none}.wedding-section{padding-top:85px;padding-bottom:85px}.story-section{gap:40px}.story-emblem{min-height:350px}.wedding-hero{min-height:730px;height:auto;padding-bottom:130px}.wedding-hero.has-slider{padding-bottom:185px}.hero-slider-controls{bottom:25px}.countdown strong{font-size:58px}.countdown>div{min-width:80px}.countdown{gap:25px}.recipient-section{padding:80px 30px}.rsvp-section{gap:25px}.rsvp-heading h2{font-size:43px}.rsvp-card{padding:35px}.photo-gallery{gap:18px}}
@media(max-width:767px){.wedding-nav{height:auto;min-height:98px;padding:14px 20px 12px;gap:10px;justify-content:center}.wedding-logo{max-width:100%;font-size:24px;gap:10px}.wedding-logo:before{display:flex;width:27px;height:27px;font-size:17px}.wedding-nav nav{justify-content:flex-start;flex-wrap:nowrap;gap:21px;overflow-x:auto;max-width:100%;padding:0 0 3px;scrollbar-width:none;font-size:9px;width:auto}.wedding-nav nav::-webkit-scrollbar{display:none}.wedding-nav nav>a{white-space:nowrap;flex-shrink:0;padding:5px 0}.wedding-nav .nav-rsvp{padding:5px 10px}.wedding-nav .nav-rsvp span{margin-left:5px}.wedding-hero{height:auto;min-height:calc(100svh - 98px);max-height:none;padding:80px 28px 105px}.wedding-hero.has-slider{min-height:760px;padding-bottom:175px}.hero-content h1{font-size:clamp(48px,11vw,70px);letter-spacing:-1.9px;line-height:1.13}.hero-eyebrow{font-size:7px;letter-spacing:3px}.wedding-intro{font-size:26px}.hero-description{font-size:12px;margin:23px 0}.hero-rule{margin:22px 0}.hero-rule:before,.hero-rule:after{width:40px}.hero-border{inset:13px}.wedding-date{gap:13px;margin:26px 0 19px}.wedding-date>strong{font-size:44px;padding:0 20px}.wedding-date>span{font-size:8px;width:90px;letter-spacing:1.3px}.hero-content>.button{font-size:10px;padding:13px 21px;margin-top:13px}.scroll-cue{font-size:6px;letter-spacing:2px;bottom:30px}.hero-slider-controls{bottom:25px}.wedding-section{padding:72px 25px}.wedding-section h2{font-size:34px;letter-spacing:-.8px;line-height:1.27}.wedding-body .eyebrow{font-size:8px;letter-spacing:2.1px}.welcome>p{font-size:13px;line-height:2}.gold-divider{margin:22px 0}.countdown-section{padding:49px 20px 55px}.countdown-section h2{font-size:26px;line-height:1.4;margin:12px 0 30px}.countdown{gap:12px}.countdown>div{min-width:50px}.countdown strong{font-size:43px;letter-spacing:-1px}.countdown span{font-size:6px;letter-spacing:1.2px;margin-top:12px}.countdown>b{font-size:22px}.recipient-section{padding:65px 28px}.recipient-section:before{inset:13px}.recipient-section .recipient-name{font-size:clamp(37px,10vw,60px);letter-spacing:-1px;line-height:1.15}.recipient-intro{font-size:22px;margin:22px 0 13px}.recipient-seal{width:43px;height:43px;margin-bottom:22px}.recipient-message{font-size:12px;line-height:1.9}.recipient-seats{padding:12px 9px;font-size:11px;gap:8px}.recipient-section .recipient-couple{font-size:31px}.recipient-members{font-size:17px}.recipient-section .button{font-size:10px}.family-grid{gap:20px;margin-top:30px}.family-grid article{padding:10px 5px 20px}.family-grid article:before{font-size:18px;margin-bottom:15px}.family-grid h3{font-size:9px;letter-spacing:1.8px}.family-grid p{font-size:23px;line-height:1.8}.family-message{font-size:13px;line-height:2}.family-names{font-size:25px}.story-section{gap:40px}.story-emblem{min-height:320px;max-width:300px;box-shadow:10px 10px 0 #eee9df88}.story-emblem>span{font-size:125px}.story-emblem>img{width:240px}.story-section>div>p{font-size:13px}.venue-grid{gap:25px;margin-top:35px}.venue-card{padding:36px 26px 35px}.venue-card h3{font-size:29px}.venue-icon{width:62px;height:62px}.venue-time{font-size:31px}.venue-card .button{min-height:43px}.wedding-itinerary{padding-left:26px;margin-top:35px}.wedding-itinerary:before{left:3px}.wedding-itinerary li{gap:20px;padding:24px 0}.wedding-itinerary li:before{left:-27px;top:32px;width:8px;height:8px}.wedding-itinerary time{font-size:24px;min-width:67px}.wedding-itinerary h3{font-size:23px}.wedding-itinerary p{font-size:12px;line-height:1.9}.photo-gallery{gap:13px;margin-top:35px}.photo-gallery img{height:245px}.photo-gallery a:nth-child(3n+2){margin-top:0}.photo-gallery a:nth-child(2n){margin-top:25px}.photo-gallery a:after{opacity:1;transform:none;width:26px;height:26px;right:10px;bottom:10px;font-size:12px}.detail-grid{gap:35px;margin-top:35px}.detail-grid h3{font-size:27px}.detail-grid p{font-size:13px}.rsvp-section{gap:12px}.rsvp-heading h2{font-size:38px}.rsvp-heading p{font-size:12px}.rsvp-card{padding:27px 21px}.response-options label{font-size:11px;padding:11px 9px}.wedding-footer{padding:65px 25px 0}.footer-names{font-size:42px;line-height:1.2}.wedding-footer>p:not(.footer-names){font-size:11px}.footer-bottom{font-size:8px;margin-top:25px;gap:14px}.public-invite-note h2{font-size:30px}.public-invite-note>p{font-size:12px}.photo-lightbox{padding:65px 15px 25px}.lightbox-close{right:17px;top:15px}.photo-lightbox>img{max-height:calc(100dvh - 155px)}}
@media(prefers-reduced-motion:reduce){.wedding-body *{scroll-behavior:auto;animation:none!important;transition:none!important}.hero-slide,.hero-slide.is-active{transform:none}.wedding-body .reveal-pending{opacity:1;transform:none}}

/* Explicit contrast layer: photographs, shade, then text and controls. */
.wedding-hero{isolation:isolate}.wedding-hero.has-cover:before{display:none}.wedding-hero .hero-photo{z-index:0;filter:brightness(.58) saturate(.9)}.hero-image-shade{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(4,15,27,.25),rgba(4,15,27,.32) 45%,rgba(4,15,27,.55))}.wedding-hero .hero-content{position:relative;z-index:3}.wedding-hero .hero-content h1{text-shadow:0 3px 20px #0009}.wedding-hero .hero-description{color:#fff}.wedding-hero .hero-eyebrow{color:#ffe6ba}
/* A single venue for both parts of the wedding. */
.venue-grid.shared-venue{grid-template-columns:minmax(0,1fr);max-width:760px}.shared-venue .venue-subtitle{max-width:530px;margin:15px auto;line-height:1.8}.venue-moments{display:flex;flex-wrap:wrap;justify-content:center;gap:30px 60px;max-width:480px;margin:30px auto 20px;padding:25px 10px 0;border-top:1px solid #d9cbb0}.venue-moments>div{flex:1;min-width:130px}.venue-moments .eyebrow{font-size:8px;letter-spacing:1.6px}.venue-moments .venue-time{margin:10px 0 15px}@media(max-width:767px){.venue-moments{gap:15px;padding:22px 0 0}.venue-moments>div{min-width:110px}.venue-moments .venue-time{font-size:28px}}
/* Attendance stays in a dialog without moving the invitation page. */
.wedding-nav button.nav-rsvp{font:inherit;background:transparent;color:inherit;line-height:1.5;cursor:pointer;white-space:nowrap}.rsvp-cta{text-align:center;background:#f0ece2}.rsvp-cta>p{color:#758086;font-size:13px;line-height:1.9}.rsvp-cta>.button{margin-top:18px}.rsvp-dialog{position:fixed;inset:0;margin:auto;width:min(530px,calc(100% - 32px));max-width:530px;max-height:calc(100dvh - 36px);overflow-y:auto;overscroll-behavior:contain;border:1px solid #d7c7a9;border-radius:10px;background:#fbf9f4;color:#233749;padding:38px;box-shadow:0 25px 100px #0004}.rsvp-dialog::backdrop{background:#061727bf;backdrop-filter:blur(5px)}.rsvp-close{position:absolute;top:12px;right:14px;width:35px;height:35px;border:0;background:transparent;color:#74818a;font-size:26px;line-height:1}.rsvp-dialog-header{text-align:center}.rsvp-dialog-header .recipient-seal{color:#a58a5e;background:#f1e9d9;border-color:#c7ae8566;width:45px;height:45px;margin-bottom:15px}.rsvp-dialog-header .eyebrow{font-size:7px;letter-spacing:1.8px}.rsvp-dialog-header h2{font:36px/1.2 var(--serif);margin:9px 0 10px}.rsvp-dialog-header>p{font:italic 21px/1.5 var(--serif);color:#a08a66;margin:8px 0 20px;overflow-wrap:anywhere}.rsvp-intro{color:#74818a;font-size:12px;line-height:1.9;margin:0 0 18px}.rsvp-deadline{font-size:11px;color:#a08a66;margin-bottom:20px}.rsvp-dialog .stack{gap:22px}.rsvp-dialog label,.rsvp-dialog legend{font-size:12px}.rsvp-dialog .response-options label{font-size:11px;padding:12px 9px;min-height:50px}.rsvp-dialog .alert{font-size:12px;padding:13px 16px}.rsvp-dialog .alert ul{margin:0;padding-left:16px}.rsvp-dialog .muted{font-size:10px;line-height:1.7}.rsvp-dialog input,.rsvp-dialog select,.rsvp-dialog textarea{background:#fffdf9;border-color:#ded8cb;border-radius:4px}.rsvp-saved-state{text-align:center}.rsvp-success-icon{display:flex;align-items:center;justify-content:center;width:60px;height:60px;background:#eaf2e9;color:#528261;border-radius:50%;margin:20px auto}.rsvp-success-icon .icon{width:27px;height:27px}.rsvp-saved-state h3{font:29px/1.3 var(--serif);margin:15px 0}.rsvp-saved-state>p{color:#74818a;font-size:13px;line-height:1.8}.rsvp-saved-state .rsvp-confirmed-count{font-size:12px;color:#a08a66;margin:18px 0 25px}.rsvp-edit-response{font-size:11px;margin:20px auto 0;display:block;text-align:center}.rsvp-modal-open{overflow:hidden}@media(max-width:767px){.rsvp-dialog{padding:30px 23px;width:calc(100% - 24px);max-height:calc(100dvh - 24px)}.rsvp-dialog-header h2{font-size:31px}.rsvp-dialog-header>p{font-size:20px}.rsvp-dialog .response-options{gap:8px}.rsvp-dialog .response-options label{font-size:10px}.rsvp-saved-state h3{font-size:26px}}
/* Guest photographs: private upload and a reviewed shared album. */
.guest-memories-section{text-align:center;background:#f1ede4}.guest-memories-intro{max-width:640px;margin:15px auto 35px;font-size:13px;line-height:2;color:#768188}.guest-upload-form{max-width:620px;margin:35px auto 0;padding:35px;background:#fffdf8;border:1px solid #ded2bb;border-radius:5px;text-align:left}.guest-upload-form>label{font-size:12px}.guest-upload-form input,.guest-upload-form textarea{background:#fff}.guest-photo-consent{display:flex;flex-direction:row;gap:12px;align-items:flex-start;font-weight:400;line-height:1.8}.guest-photo-consent input{margin-top:4px}.guest-upload-note{font-size:11px;line-height:1.8;color:#86908f;margin:0;text-align:center}.guest-memories-section>.alert{max-width:700px;margin:25px auto}.guest-own-photos{max-width:1000px;margin:50px auto 0}.guest-own-photos h3{font:28px var(--serif)}.guest-upload-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:25px}.guest-upload-grid article{background:#fffdf9;border:1px solid #dfd4c0;border-radius:5px;overflow:hidden;padding-bottom:13px}.guest-upload-grid img{width:100%;height:170px;object-fit:cover;margin-bottom:12px}.guest-upload-grid .badge{font-size:9px}.guest-upload-closed{max-width:600px;margin:30px auto;font-size:13px;color:#7f898d;line-height:1.9}.guest-album-pagination{display:flex;justify-content:center;margin-top:35px}.guest-album-pagination nav{display:flex;gap:25px;font-size:12px}@media(max-width:767px){.guest-upload-form{padding:24px 19px}.guest-upload-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.guest-upload-grid img{height:145px}.guest-memories-intro{font-size:12px}.guest-photo-consent{font-size:11px!important}}
/* Music remains discoverable from the first screen. */
.music-widget{position:fixed;right:25px;bottom:75px;z-index:40;width:245px;max-width:calc(100vw - 32px);color:#233749;font-family:var(--sans)}.music-widget-bar{display:flex;align-items:center;gap:12px;background:#fffdf5f5;border:1px solid #c9b38d;border-radius:60px;padding:8px 16px 8px 8px;box-shadow:0 6px 35px #07162533;backdrop-filter:blur(10px)}.music-play-button{display:flex;align-items:center;justify-content:center;width:42px;height:42px;flex-shrink:0;border:1px solid #c3a775;border-radius:50%;background:#112b43;color:#efdbb7;font-size:17px}.music-panel-toggle{background:none;border:0;text-align:left;padding:0;color:inherit;flex:1;min-width:0}.music-panel-toggle strong{display:block;font:italic 19px var(--serif);font-weight:400}.music-panel-toggle small{display:block;font-size:9px;color:#84908e;margin-top:3px}.music-widget.is-playing .music-play-button{background:#a58a5e;color:white}.music-player-panel{padding:21px 17px;background:#fffdf8;border:1px solid #d9c9aa;border-radius:10px;margin-bottom:12px;box-shadow:0 10px 40px #07162533}.music-player-panel .eyebrow{font-size:8px;letter-spacing:2px;margin-bottom:13px}.music-player-panel audio{width:100%;height:42px}.music-player-panel p{font-size:11px;line-height:1.7;color:#7f898a;margin:12px 0}.music-player-panel a{font-size:10px;color:#9b8258}.rsvp-modal-open .music-widget,.lightbox-open .music-widget{visibility:hidden}@media(max-width:767px){.music-widget{right:13px;bottom:calc(65px + env(safe-area-inset-bottom,0px));width:218px}.music-widget-bar{padding:6px 13px 6px 6px;gap:10px}.music-play-button{width:37px;height:37px;font-size:15px}.music-panel-toggle strong{font-size:17px}.music-panel-toggle small{font-size:8px}}
