/* V13: wedding photo composition, calligraphy and the guest album. */
#demo-dialog .demo-photo-copy h2,
#demo-dialog .demo-cover h2,
#demo-dialog #demo-inside>section h3,
#demo-dialog #demo-inside .invite-program h4,
#demo-dialog #demo-inside .invite-details-grid h4,
#demo-dialog #demo-inside .invite-scene-caption>p,
#demo-dialog #demo-inside .demo-final>p,
#demo-dialog #demo-inside .demo-event-grid strong,
#demo-dialog #demo-inside .invite-venue-art>span,
#demo-dialog #demo-inside .invite-story-stamp{
 font-family:InvitationScript,"Great Vibes",cursive;font-weight:400;letter-spacing:0;line-height:1.25
}
#demo-dialog .demo-photo-copy h2{font-size:clamp(58px,8vw,86px);overflow-wrap:break-word;padding-inline:3px}
#demo-dialog .demo-cover h2{font-size:clamp(37px,5vw,48px);padding-inline:4px}
#demo-dialog #demo-inside>section h3{font-size:clamp(36px,5vw,47px);line-height:1.22;padding-inline:3px}
#demo-dialog #demo-inside .invite-program h4{font-size:29px;line-height:1.3;margin-bottom:8px}
#demo-dialog #demo-inside .invite-details-grid h4{font-size:31px;line-height:1.25}
#demo-dialog #demo-inside .demo-event-grid strong{font-size:29px;line-height:1.3}
#demo-dialog #demo-inside .invite-scene-caption>p{font-size:40px}
#demo-dialog #demo-inside .demo-final>p{font-size:40px;line-height:1.3}
#demo-dialog #demo-inside .invite-story-stamp{font-size:65px}
#demo-dialog.grado .demo-photo-copy h2{max-width:440px;margin-inline:auto}
#demo-dialog.grado #demo-inside .invite-story-stamp{font-size:66px}
.invitation-unified-grid [data-open-occasion] strong{font-family:InvitationScript,"Great Vibes",cursive!important;font-weight:400!important;letter-spacing:0!important;font-size:35px!important;line-height:1.3!important}
/* The photograph and flowers now share one full-width scene, without a frame. */
#demo-dialog.boda #demo-inside #invite-story{background:#f9f4e9}
#demo-dialog.boda #demo-inside #invite-story .invite-story-art{height:455px;width:100%;margin:0;border:0;border-radius:0;box-shadow:none;padding:0;isolation:isolate;overflow:visible}
#demo-dialog.boda #invite-story .invite-story-image{height:100%;width:100%;object-fit:cover;object-position:center 59%;border-radius:0;mask-image:linear-gradient(#000 0%,#000 78%,transparent 100%);-webkit-mask-image:linear-gradient(#000 0%,#000 78%,transparent 100%)}
#demo-dialog.boda #invite-story .invite-story-art::before{display:none}
#demo-dialog.boda #invite-story .invite-story-art::after{content:"";inset:0;background:linear-gradient(0deg,transparent 8%,#13201bb3 26%,transparent 63%);pointer-events:none}
#demo-dialog.boda #invite-story .invite-story-stamp{display:none}
#demo-dialog.boda #demo-inside #invite-story .invite-story-object{width:245px;max-width:50%;right:-17px;bottom:-24px;z-index:3;transform:rotate(-7deg);filter:drop-shadow(0 12px 15px #60503126)}
.wedding-story-signature{position:absolute;left:8%;bottom:82px;z-index:2;text-align:left;color:#fff6df;text-shadow:0 2px 18px #1a1f18aa;max-width:70%}
.wedding-story-signature>small{font:500 8px/1.5 Arial,sans-serif;letter-spacing:3px;display:block;margin-bottom:14px;color:#fff4d5}
.wedding-story-signature>strong{display:block;font:400 54px/1.2 InvitationScript,cursive;letter-spacing:0}
.wedding-story-signature>span{font:500 9px/1.8 Arial,sans-serif;letter-spacing:1.4px;display:block;margin-top:12px}
#demo-dialog.boda #demo-inside #invite-story .invite-story-content{padding:35px 10% 45px;background:radial-gradient(ellipse at 95% 0,#dbdfce80,transparent 55%);text-align:left}
#demo-dialog.boda #invite-story .invite-story-content>.eyebrow{font-size:8px;letter-spacing:1.6px;margin-bottom:18px;max-width:75%}
#demo-dialog.boda #demo-inside #invite-story h3{font-size:47px;max-width:410px;line-height:1.18;margin:0 0 22px;padding:0}
#demo-dialog.boda #invite-story .invite-story-copy{font-size:14px;line-height:1.85;margin-bottom:24px}
#demo-dialog.boda #invite-story .invite-story-content>small{font:500 10px/1.7 Arial,sans-serif;letter-spacing:.7px}
#demo-dialog.boda #invite-story .invite-flourish{display:block;width:60px;height:1px;background:#baa179;font-size:0;letter-spacing:0;margin:25px 0 0}
/* Instructions stay readable while the invitation headings use calligraphy. */
.rsvp-demo-intro{max-width:425px;margin:0 auto;text-align:left}
.rsvp-demo-badge{display:inline-block;padding:6px 9px;font:600 8px/1.5 Arial,sans-serif;letter-spacing:1.2px;border:1px solid var(--scene-border);border-radius:5px;color:var(--scene-accent);background:var(--scene-alt)}
.rsvp-demo-intro>p{font:13px/1.8 Arial,sans-serif;color:var(--scene-text);margin:17px 0}
.rsvp-demo-steps{list-style:none;padding:0;margin:18px 0 15px;display:grid;gap:13px;font:12px/1.65 Arial,sans-serif;color:var(--scene-text)}
.rsvp-demo-steps>li{position:relative;padding-left:33px;min-height:23px}
.rsvp-demo-steps>li>span{position:absolute;left:0;top:0;width:23px;height:23px;display:grid;place-items:center;border:1px solid var(--scene-border);border-radius:7px;background:var(--scene-alt);color:var(--scene-accent);font:600 10px/1 Arial}
.rsvp-demo-intro>small{display:block;font:11px/1.7 Arial,sans-serif;color:var(--scene-muted);border-top:1px solid var(--scene-border);padding-top:13px}
#demo-dialog .simulation-choice strong{font-size:13px;line-height:1.55}
#demo-dialog .simulation-choice small{font-size:12px;line-height:1.7}
#demo-dialog #demo-whatsapp-opt{appearance:none;-webkit-appearance:none;width:20px!important;height:20px!important;min-width:20px!important;min-height:20px!important;padding:0;border:1.5px solid var(--scene-accent);border-radius:4px;background:var(--scene-card);display:grid;place-items:center;box-shadow:none;cursor:pointer}
#demo-dialog #demo-whatsapp-opt:checked{background:var(--scene-accent)}
#demo-dialog #demo-whatsapp-opt:checked::after{content:'✓';font:700 14px/1 Arial;color:var(--scene-bg)}
#demo-dialog #demo-whatsapp-opt:focus-visible{outline:2px solid var(--scene-accent);outline-offset:3px}
#demo-dialog #demo-inside .demo-rsvp-section label{font-size:12px;line-height:1.5}
#demo-dialog #demo-inside #demo-rsvp{font:600 12px/1.6 Arial;white-space:normal;padding:15px 12px;width:100%}
#demo-dialog #demo-inside .demo-rsvp-section>.demo-help{opacity:1;font-size:11px!important}
/* The shared album borrows each occasion's palette and dimensional accessory. */
#demo-dialog #demo-inside .guest-album{padding:35px 8% 48px;background:var(--scene-alt);border-top:1px solid var(--scene-border);border-bottom:1px solid var(--scene-border);margin:0 0 48px;text-align:center}
.guest-album-object{width:115px;max-width:100%;margin:0 auto 8px;display:block;pointer-events:none}
.guest-album-intro{font:13px/1.8 Arial,sans-serif;color:var(--scene-text);max-width:440px;margin:0 auto 23px}
.guest-album-mode{display:inline-block;font:600 8px/1.5 Arial;letter-spacing:1.2px;color:var(--scene-accent);border:1px solid var(--scene-border);border-radius:30px;padding:6px 10px;background:var(--scene-card);margin-bottom:14px}
.guest-album-actions{display:flex;gap:9px;justify-content:center;flex-wrap:wrap;margin:0 auto 18px}
.guest-album-action{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:45px;padding:12px 17px;border:1px solid var(--scene-border);border-radius:8px;background:var(--scene-card);color:var(--scene-ink);font:600 12px/1.5 Arial,sans-serif;cursor:pointer;text-decoration:none}
.guest-album-action.primary{background:var(--scene-accent);color:var(--scene-bg);border-color:var(--scene-accent)}
.guest-album-action svg{width:19px;height:19px;flex:none}
.guest-album-action:focus-visible,.guest-album-photo:focus-visible{outline:2px solid var(--scene-accent);outline-offset:4px}
.guest-album-action:disabled{opacity:.65;cursor:wait}
.guest-album-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:24px 0 16px}
.guest-album-photo{padding:0;background:var(--scene-card);border:1px solid var(--scene-border);border-radius:8px;overflow:hidden;min-width:0;text-align:left;cursor:pointer;transition:opacity .4s;animation:album-photo-in .45s ease both}
.guest-album-photo>img{display:block;object-fit:cover;width:100%;height:155px;aspect-ratio:3/4}
.guest-album-photo>small{display:block;padding:9px 10px;color:var(--scene-muted);font:9px/1.5 Arial,sans-serif}
.guest-album-empty{min-height:160px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;padding:13px;border:1px dashed var(--scene-border);background:var(--scene-card);border-radius:8px;color:var(--scene-accent);font:11px/1.6 Arial,sans-serif}
.guest-album-empty svg{width:26px;height:26px}
.guest-album-notice,.guest-album-status{color:var(--scene-muted);font:11px/1.7 Arial,sans-serif;max-width:430px;margin:14px auto}
.guest-album-status:empty{display:none}
.guest-album-status{color:var(--scene-ink)}
.guest-album-share{text-align:left;border-top:1px solid var(--scene-border);border-bottom:1px solid var(--scene-border);padding:16px 0;margin-top:25px;color:var(--scene-ink);font:12px/1.6 Arial,sans-serif}
.guest-album-share>summary{cursor:pointer;min-height:26px;font-weight:600;list-style-position:inside}
.guest-album-share-body{display:grid;grid-template-columns:132px minmax(0,1fr);gap:22px;padding-top:19px;align-items:center}
.guest-album-qr{background:white;padding:8px;min-height:132px;display:grid;place-items:center;border-radius:7px;color:#171f1b;font:11px/1.6 Arial;text-align:center}
.guest-album-qr svg{width:100%;height:auto;display:block;image-rendering:pixelated}
.guest-album-share-body p{font:11px/1.7 Arial;margin:0 0 13px;color:var(--scene-text)}
.guest-album-copy{min-height:42px;background:var(--scene-card);border:1px solid var(--scene-border);color:var(--scene-ink);font:600 11px/1.5 Arial;padding:10px 13px;border-radius:7px;cursor:pointer}
.guest-album-link{display:block;color:var(--scene-accent);font:11px/1.6 Arial;margin-top:10px;overflow-wrap:anywhere;text-decoration:underline}
#guest-album-files,#guest-album-preview[hidden],#guest-album-live[hidden]{display:none!important}
.guest-album-frame{width:100%;height:min(680px,75vh);border:0;border-radius:10px;background:var(--scene-card);margin:12px 0 0;display:block}
.guest-album-live-help{font:11px/1.7 Arial;color:var(--scene-muted);margin:10px 0}
#guest-album-viewer{width:650px;max-width:calc(100vw - 26px);max-height:90dvh;padding:0;border:1px solid #ffffff80;border-radius:16px;background:#121c22;color:#fff;overflow:auto}
#guest-album-viewer::backdrop{background:#070d18c9}
.guest-album-viewer-top{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;background:#121c22;z-index:2;font:12px/1.5 Arial}
.guest-album-viewer-top button{width:38px;height:38px;border-radius:50%;border:1px solid #fff4;color:white;background:#fff1;cursor:pointer;font:25px/1 Arial}
#guest-album-viewer img{display:block;width:100%;height:auto;max-height:75dvh;object-fit:contain}
@keyframes album-photo-in{from{opacity:0}to{opacity:1}}
@media(max-width:650px){
 #demo-dialog .demo-photo-copy h2{font-size:61px;line-height:1.23}
 #demo-dialog .demo-cover h2{font-size:38px}
 #demo-dialog #demo-inside>section h3{font-size:38px}
 #demo-dialog #demo-inside .invite-program h4{font-size:28px}
 #demo-dialog #demo-inside .invite-details-grid h4{font-size:30px}
 #demo-dialog.boda #demo-inside #invite-story .invite-story-art{height:370px}
 #demo-dialog.boda #demo-inside #invite-story .invite-story-object{width:198px;right:-15px;bottom:-20px;max-width:51%}
 .wedding-story-signature{left:8%;bottom:80px;max-width:77%}
 .wedding-story-signature>strong{font-size:43px}
 .wedding-story-signature>small{font-size:7px;letter-spacing:2.2px;margin-bottom:10px}
 .wedding-story-signature>span{font-size:8px}
 #demo-dialog.boda #demo-inside #invite-story .invite-story-content{padding:32px 9% 37px}
 #demo-dialog.boda #demo-inside #invite-story h3{font-size:42px}
 .guest-album-grid{gap:7px}
 .guest-album-photo>img{height:134px}
 .guest-album-photo>small{padding:8px 6px;font-size:8px}
 .guest-album-empty{min-height:153px;padding:9px;font-size:10px}
 .guest-album-share-body{grid-template-columns:115px minmax(0,1fr);gap:15px}
 .guest-album-qr{min-height:115px}
}
@media(max-width:350px){
 #demo-dialog .demo-photo-copy h2{font-size:50px}
 #demo-dialog .demo-cover h2{font-size:34px}
 #demo-dialog #demo-inside>section h3{font-size:35px}
 #demo-dialog.boda #demo-inside #invite-story .invite-story-art{height:345px}
 .wedding-story-signature>strong{font-size:38px}
 #demo-dialog.boda #demo-inside #invite-story h3{font-size:38px}
 .guest-album-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .guest-album-empty{grid-column:1/-1;min-height:80px;flex-direction:row}
 .guest-album-share-body{grid-template-columns:1fr;text-align:center}
 .guest-album-qr{width:145px;min-height:145px;margin:auto}
}
@media(prefers-reduced-motion:reduce){.guest-album-photo{animation:none;transition:none}}
