/* Each card rises independently from the envelope, then fans open. All sizes scale with the stage. */
.invitation-stage{position:relative;isolation:isolate;container-type:inline-size;width:100%;max-width:880px;aspect-ratio:1.15;margin:0 auto;overflow:visible;pointer-events:none;color:var(--ink,#414735)}
.invitation-stage *{box-sizing:border-box}
.invitation-stage img{display:block;height:auto;max-width:100%}
.invitation-envelope-shadow{position:absolute;left:20%;top:90%;width:61%;height:5%;border-radius:50%;background:#5a422626;filter:blur(13px);z-index:0}
.invitation-envelope-back{position:absolute;left:21.5%;top:59%;width:57%;height:34%;z-index:1;background:#c87732;border-radius:1%;box-shadow:0 3px 10px #6d442b1c}
.invitation-envelope-back::before{content:'';position:absolute;left:0;top:-59%;width:100%;height:62%;background:linear-gradient(120deg,#e2a252,#c57430 70%);clip-path:polygon(0 100%,50% 0,100% 100%)}
.invitation-envelope-lining{position:absolute;left:3%;top:-48%;width:94%;height:147%;background:repeating-linear-gradient(45deg,#b9a16d30 0 1px,transparent 1px 8px),#c3a77b;clip-path:polygon(0 34%,50% 0,100% 34%,100% 100%,0 100%);opacity:.7}
.invitation-card-pocket{position:absolute;inset:0;z-index:2;clip-path:inset(-8% -8% 7% -8%)}
.invitation-card{position:absolute;left:34.5%;top:9%;width:31%;height:59%;padding:4.4% 3.2% 3%;background:linear-gradient(105deg,#fffdf7,#f6e9d4);border:1px solid #d9c7a1;box-shadow:0 2px 8px #5f493925;transform-origin:50% 85%;transform:var(--invitation-open);overflow:hidden;will-change:transform;backface-visibility:hidden}
.invitation-card::after{content:'';position:absolute;inset:0;opacity:.11;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.25' filter='url(%23n)'/%3E%3C/svg%3E")}
.invitation-card-border{position:absolute;inset:3.5%;border:1px solid #ae945d99;pointer-events:none;z-index:1}
.invitation-card-border::after{content:'';position:absolute;inset:1.1%;border:1px solid #b8a46b55}
.invitation-card-details{--invitation-open:translate(-50%,0) rotate(-14deg);z-index:1}
.invitation-card-rsvp{--invitation-open:translate(50%,-3%) rotate(14deg);z-index:2}
.invitation-card-main{--invitation-open:translate(0,-2%) rotate(-1deg);z-index:3;height:69%;padding:3.6% 2.6% 1%;text-align:center}
.invitation-card-garland{position:absolute;top:1%;right:0;width:48%;transform:scaleX(-1);opacity:.92}
.invitation-stage .invitation-card-heading{position:relative;z-index:1;width:80%;margin:0 0 6%;font-family:var(--script,'Marck Script',cursive);font-size:4.7cqw;font-weight:400;line-height:1;color:var(--purple,#85368d);text-align:center}
.invitation-event-list{position:relative;z-index:1;text-align:center}
.invitation-event{padding:0 0 6.6%;margin:0}
.invitation-stage .invitation-event p{margin:0}
.invitation-stage .invitation-event-name{font-family:var(--script,'Marck Script',cursive);font-size:2.3cqw;line-height:1.13;color:var(--green,#476333)}
.invitation-stage .invitation-event-date{font-family:var(--body,'Nunito',sans-serif);font-size:1.05cqw;line-height:1.5;margin-top:3%!important;white-space:nowrap}
.invitation-stage .invitation-event-venue{font-family:var(--body,'Nunito',sans-serif);font-size:.98cqw;line-height:1.4}
.invitation-card-sprig{font-family:Georgia,serif;font-size:4cqw;line-height:.9;text-align:center;color:#80924b;margin-top:-2%;opacity:.8}
.invitation-stage .invitation-rsvp-copy{position:relative;z-index:1;font-family:var(--body,'Nunito',sans-serif);font-size:1.6cqw;line-height:1.7;text-align:center;margin:16% 0 10%}
.invitation-stage .invitation-rsvp-signature{position:relative;z-index:1;font-family:var(--script,'Marck Script',cursive);font-size:2.3cqw;line-height:1.2;text-align:center;color:var(--purple,#85368d);margin:0}
.invitation-rsvp-coast{position:absolute;bottom:0;left:0;width:100%;height:37%!important;max-width:none!important;object-fit:cover;object-position:12% bottom;mix-blend-mode:multiply}
.invitation-main-monogram{width:27%;height:14.5%!important;object-fit:contain;margin:-3% auto 3%}
.invitation-stage .invitation-save-date{font-family:var(--hand,'Kalam',cursive);text-transform:uppercase;letter-spacing:.13em;font-size:1.13cqw;line-height:1.3;color:var(--purple,#85368d);margin:0 0 5%}
.invitation-stage .invitation-couple-names{font-family:var(--script,'Marck Script',cursive);font-weight:400;font-size:4.65cqw;line-height:.82;color:var(--green,#476333);margin:0 0 8%;position:relative;z-index:2}
.invitation-couple-names span{font-size:2.4cqw;line-height:1.15}
.invitation-stage .invitation-main-date{font-family:var(--body,'Nunito',sans-serif);font-size:1.2cqw;line-height:1.5;margin:0;position:relative;z-index:2}
.invitation-stage .invitation-main-place{font-family:var(--script,'Marck Script',cursive);font-size:2.65cqw;line-height:1.2;color:var(--purple,#85368d);margin:4% 0 0;position:relative;z-index:2}
.invitation-main-watercolor{position:absolute;bottom:0;left:0;width:100%;height:39%!important;object-fit:cover;object-position:center 68%;mix-blend-mode:multiply}
.invitation-envelope-front{position:absolute;left:21.5%;top:59%;width:57%;height:34%;z-index:4;overflow:hidden;border-radius:1%;background:linear-gradient(125deg,#d9873e 0%,#c87430 45%,#b76329 100%);clip-path:polygon(0 0,50% 43%,100% 0,100% 100%,0 100%)}
.invitation-envelope-front::before{content:'';position:absolute;inset:0;background:#f2b95d3d;clip-path:polygon(0 0,51% 45%,0 100%)}
.invitation-envelope-front::after{content:'';position:absolute;inset:0;opacity:.3;background:repeating-linear-gradient(20deg,transparent 0 4px,#f6d7b30b 4px 5px)}
.invitation-envelope-fold{position:absolute;inset:0;background:linear-gradient(170deg,#dc9143,#c16c2c);clip-path:polygon(0 100%,50% 40%,100% 100%)}
.invitation-envelope-gold{position:absolute;inset:6%;border:1px solid #d8b56d65;clip-path:polygon(0 0,50% 42%,100% 0,100% 100%,0 100%)}
.invitation-envelope-gold::after{content:'';position:absolute;inset:2%;border:1px dashed #dab9763b}
.invitation-wax-seal{position:absolute;left:45.6%;top:76%;width:8.8%;aspect-ratio:1;z-index:5;display:grid;place-items:center;border-radius:46% 53% 49% 51%/51% 46% 54% 49%;background:radial-gradient(circle at 35% 25%,#d6b777,#ba945b 65%,#a37d47);border:1px solid #b99460;box-shadow:0 2px 3px #613e3144,inset 0 0 0 3px #dabd8640;color:#755332;transform:rotate(-9deg)}
.invitation-wax-seal::before{content:'';position:absolute;inset:10%;border:1px solid #98753d77;border-radius:50%;box-shadow:0 1px 1px #efd9a440}
.invitation-wax-seal img{width:62%;height:auto;position:relative;z-index:1}
.invitation-stage.is-mounted:not(.is-reduced) .invitation-card{animation-duration:8s;animation-timing-function:cubic-bezier(.22,.75,.25,1);animation-iteration-count:infinite;animation-fill-mode:both;animation-play-state:paused}
.invitation-stage.is-mounted:not(.is-reduced) .invitation-card-details{animation-name:invitation-fan-left;animation-delay:0s}
.invitation-stage.is-mounted:not(.is-reduced) .invitation-card-main{animation-name:invitation-rise-center;animation-delay:.06s}
.invitation-stage.is-mounted:not(.is-reduced) .invitation-card-rsvp{animation-name:invitation-fan-right;animation-delay:.12s}
.invitation-stage.is-mounted.is-playing:not(.is-reduced) .invitation-card{animation-play-state:running}
@keyframes invitation-fan-left{0%,1%,96%,100%{transform:translate(0,112%) rotate(0)}10%,88%{transform:translate(0,0) rotate(0)}20%,77%{transform:translate(-50%,0) rotate(-14deg)}}
@keyframes invitation-rise-center{0%,1%,96%,100%{transform:translate(0,112%) rotate(0)}10%,88%{transform:translate(0,0) rotate(0)}20%,77%{transform:translate(0,-2%) rotate(-1deg)}}
@keyframes invitation-fan-right{0%,1%,96%,100%{transform:translate(0,112%) rotate(0)}10%,88%{transform:translate(0,0) rotate(0)}20%,77%{transform:translate(50%,-3%) rotate(14deg)}}
@media(max-width:600px){.invitation-stage{width:110%;max-width:none;margin-left:-5%;aspect-ratio:1.1}.invitation-envelope-shadow{filter:blur(8px)}}
@media(prefers-reduced-motion:reduce){.invitation-stage .invitation-card{animation:none!important;transform:var(--invitation-open)!important;will-change:auto}}

.invitation-stage .invitation-save-date,.invitation-stage .invitation-main-place{color:var(--orange)}

.invitation-card-details .invitation-card-heading{color:var(--green)}
