/* Independent layers. Coordinates anchor each artwork at its bottom centre. */
.wedding-scene{--foreground-line:var(--mobile-foreground-line,71%);position:relative;isolation:isolate;width:100%;aspect-ratio:2/3;margin:0;overflow:hidden;background:var(--paper);pointer-events:none;contain:layout paint}
.wedding-scene::after{content:"";position:absolute;z-index:5;inset:auto 0 -1px;height:17%;background:linear-gradient(to bottom,transparent,var(--paper));pointer-events:none}
.scene-layer,.scene-decoration-copy{position:absolute;left:var(--mobile-x);top:var(--mobile-y);width:var(--mobile-width);transform:translate(-50%,-100%);transform-origin:50% 100%;z-index:1}
.scene-layer-art{display:block;width:100%;transform-origin:50% 100%}
.scene-layer img,.scene-decoration-copy img{display:block;width:100%;height:auto;user-select:none}
.scene-layer--background{height:100%;z-index:0}
.scene-layer--background .scene-layer-art,.scene-layer--background img{height:100%;object-fit:cover}
.scene-layer--venue{z-index:1;filter:drop-shadow(0 3px 3px #5d534312)}
.scene-layer--venue img{transform:scaleX(var(--mobile-stretch-x,1))}
.scene-layer--subjects{z-index:3;filter:drop-shadow(0 3px 3px #5d53431c)}
.scene-layer--decoration{z-index:3}
.scene-depth-plane{position:absolute;inset:0}
.scene-depth-plane--rear{z-index:2;clip-path:inset(0 0 calc(100% - var(--foreground-line)) 0)}
.scene-depth-plane--foreground{z-index:4;clip-path:inset(var(--foreground-line) 0 0 0)}
.wedding-scene.is-animated .scene-layer-art{animation:scene-reveal 1.1s both cubic-bezier(.2,.7,.25,1)}
.wedding-scene.is-animated .scene-layer--background .scene-layer-art{animation-duration:.7s}
.wedding-scene.is-animated .scene-layer--venue .scene-layer-art{animation-delay:.15s}
.wedding-scene.is-animated .scene-layer--decoration .scene-layer-art,.wedding-scene.is-animated .scene-decoration-copy .scene-layer-art{animation-delay:.35s;animation-duration:1.3s}
.wedding-scene.is-animated .scene-layer--subjects .scene-layer-art{animation-name:scene-couple-reveal;animation-delay:.55s;animation-duration:1.6s}
.has-wedding-scene .invitation-hero>.floral-top{display:none}
.has-wedding-scene .invitation-hero>.invite-intro{padding-top:16px}
@media(min-width:480px){.wedding-scene{--foreground-line:var(--desktop-foreground-line,71%)}.scene-layer,.scene-decoration-copy{left:var(--desktop-x);top:var(--desktop-y);width:var(--desktop-width)}.scene-layer--venue img{transform:scaleX(var(--desktop-stretch-x,1))}}
@keyframes scene-reveal{from{opacity:0}to{opacity:1}}
@keyframes scene-couple-reveal{from{opacity:0;transform:translateY(3px) scale(1.01)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(prefers-reduced-motion:reduce){.wedding-scene.is-animated .scene-layer-art{animation:none!important;transform:none!important}}
