/* Customer invitation shell. The original artwork keeps its portrait geometry. */
.signature-loading main{visibility:hidden}.signature-invitation [hidden]{display:none!important}
#signature-status{text-align:center;padding:30px;font:16px/1.6 Georgia,serif}
.signature-invitation main{max-width:none;padding:0;margin:0}
.signature-invitation .review-tools,.signature-invitation .chapter-links,.signature-invitation .personalise-panel,.signature-invitation .inspection,.signature-invitation .review-footer{display:none!important}
.signature-hero-window{position:relative;height:100svh;min-height:580px;overflow:hidden;background:#f7f3ea;display:flex;align-items:center;justify-content:center}
.signature-hero-window>.scene,.signature-hero-window>.hero{margin:0;flex:none;width:calc(100svh * 2 / 3);max-width:none;min-width:387px;aspect-ratio:2/3;height:auto;box-shadow:none}
.signature-invitation .invitation-chapters{max-width:1000px;margin:auto}
.signature-invitation .signature-wardrobe{display:grid;grid-template-columns:repeat(var(--outfits,4),minmax(0,1fr));gap:0;position:relative;width:100%;max-width:850px;margin:auto}
.signature-invitation .dress-wardrobe{aspect-ratio:auto;padding-inline:3%;box-sizing:border-box}
.signature-wardrobe>div{position:relative;z-index:1;min-width:0}
.signature-wardrobe svg{width:100%;height:auto;display:block}
/* The hook tops are at y=24 in the 1024px artwork; the rail sits inside
   their curves, behind the garments, rather than across the shoulders. */
.signature-wardrobe .ae-hanging-rail{position:absolute;left:2%;right:2%;top:4%;height:2px;border-radius:2px;background:linear-gradient(#ead8a9,#a3834f);z-index:0}
/* Saved travel notes have no numbered marker. Do not place the copy in
   the 38px marker column used by the original multi-stop route. */
.signature-invitation .travel-route{padding-left:0}
.signature-invitation .travel-route li{display:block;min-width:0;padding-bottom:0}
.signature-invitation .travel-route p{white-space:pre-line;overflow-wrap:break-word}
.signature-invitation .signature-wardrobe+img{display:none}
.signature-invitation .invitation-music{position:fixed;right:16px;bottom:max(16px,env(safe-area-inset-bottom));z-index:25}
.signature-invitation h1,.signature-invitation h2,.signature-invitation h3,.signature-invitation p{overflow-wrap:anywhere}
@media(max-width:760px) and (orientation:portrait){
 .signature-hero-window{height:100svh;min-height:0}
 .signature-hero-window>.scene,.signature-hero-window>.hero{width:max(100vw,calc(100svh * 2 / 3));min-width:0}
 .signature-hero-window .names{font-size:clamp(36px,10vw,64px);gap:8px;flex-wrap:wrap}
 .signature-hero-window .hero .wording{left:50%;right:auto;width:90vw;transform:translateX(-50%)}
 .signature-hero-window .scene .couple{max-width:88vw;margin-inline:auto}.signature-hero-window .scene .couple .name{font-size:clamp(40px,12vw,66px)}
 .signature-hero-window .where,.signature-hero-window .event-meta{max-width:86vw;margin-inline:auto}
}
@media(max-height:500px) and (orientation:landscape){.signature-hero-window{height:100svh;min-height:0}.signature-hero-window>.scene,.signature-hero-window>.hero{width:calc(100svh * 2 / 3);min-width:0}}

.signature-invitation .personalisation-study{display:none!important}
.signature-invitation .visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* The opening is its own full-screen stage. Invitation details enter the
   document flow only after the film reaches its hero frame. */
html.invitation-opening-locked,.signature-invitation.signature-opening{overflow:hidden;overscroll-behavior:none}
.signature-opening main>:not(.signature-hero-window){display:none!important}
.signature-opening .signature-hero-window{position:fixed;inset:0;z-index:30;width:100%;height:100svh;min-height:0}
.signature-opening .invitation-music{display:none!important}
.signature-hero-window h1:focus{outline:none}
