.invitation-stage{--font-display:var(--font-serif-en,Georgia, serif);--font-body:var(--font-serif-en,Georgia, serif);--ease-smooth:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);z-index:99999;background:radial-gradient(60vw 45vh at 18% 12%,#d8c9a261 0%,#0000 70%),radial-gradient(55vw 55vh at 85% 82%,#cdbc9152 0%,#0000 70%),radial-gradient(40vw 30vh at 78% 16%,#e8e0c78c 0%,#0000 70%),radial-gradient(45vw 40vh at 10% 88%,#e2d8bc73 0%,#0000 70%),linear-gradient(165deg,#f6f1e4 0%,#f1ead9 45%,#ebe2cd 100%);justify-content:center;align-items:center;transition:opacity 1s,visibility 0s linear 1s;display:flex;position:fixed;inset:0;overflow:hidden}.invitation-stage:before{content:"";pointer-events:none;mix-blend-mode:multiply;background-image:radial-gradient(#a08c5f0d 1px,#0000 1px);background-size:7px 7px;position:absolute;inset:0}.invitation-stage:after{content:"";pointer-events:none;background-image:radial-gradient(2.2px at 12% 24%,#c9943a8c 98%,#0000),radial-gradient(1.6px at 28% 68%,#c9943a73 98%,#0000),radial-gradient(2.6px at 88% 30%,#c9943a80 98%,#0000),radial-gradient(1.8px at 72% 78%,#c9943a80 98%,#0000),radial-gradient(2px at 46% 14%,#c9943a66 98%,#0000),radial-gradient(1.5px at 60% 90%,#c9943a73 98%,#0000),radial-gradient(2.4px at 8% 52%,#c9943a66 98%,#0000),radial-gradient(1.7px at 94% 58%,#c9943a73 98%,#0000);position:absolute;inset:0}.invitation-stage.is-open{opacity:0;visibility:hidden;pointer-events:none}html.invitation-locked,body.invitation-locked{overscroll-behavior:none;height:100%;overflow:hidden!important}body.invitation-locked{touch-action:none;background:#f1ead9!important}.inv-botanical{pointer-events:none;z-index:1;opacity:.9;transform-origin:50%;animation:7s ease-in-out infinite alternate invSway;position:absolute}.inv-bot-tl{width:clamp(170px,30vw,340px);height:clamp(170px,30vw,340px);top:-36px;left:-36px}.inv-bot-br{width:clamp(170px,30vw,340px);height:clamp(170px,30vw,340px);animation-delay:1.2s;bottom:-36px;right:-36px;transform:rotate(180deg)}.inv-bot-tr{opacity:.65;width:clamp(130px,22vw,260px);height:clamp(130px,22vw,260px);animation-delay:.6s;top:-26px;right:-46px;transform:scaleX(-1)rotate(8deg)}.inv-bot-bl{opacity:.65;width:clamp(130px,22vw,260px);height:clamp(130px,22vw,260px);animation-delay:1.8s;bottom:-26px;left:-46px;transform:scaleY(-1)rotate(6deg)}@keyframes invSway{0%{translate:0;rotate:0deg}to{translate:0 7px;rotate:1.6deg}}.inv-content{z-index:3;text-align:center;width:100%;max-width:640px;padding:max(3vh, env(safe-area-inset-top,0px)) 20px max(3vh, env(safe-area-inset-bottom,0px));flex-direction:column;align-items:center;transition:opacity .7s,transform .7s;display:flex;position:relative}.invitation-stage.is-revealed .inv-content{opacity:0;pointer-events:none;transform:translateY(-5vh)scale(.96)}.inv-eyebrow{font-family:var(--font-bengali,"Kalpurush", sans-serif);letter-spacing:.35em;color:#8a6a1f;margin-bottom:1.6vh;font-size:clamp(.95rem,3.4vw,1.2rem);animation:.9s .15s both invFadeDown}.inv-heading{font-family:var(--font-serif-en), Georgia, serif;letter-spacing:.06em;color:#55492f;font-size:clamp(2.1rem,7.5vw,3.4rem);font-weight:600;line-height:1.12;animation:1s .3s both invFadeDown}.inv-heart-divider{align-items:center;gap:12px;margin:2vh 0 1.4vh;animation:1s .45s both invFadeDown;display:flex}.inv-h-dash{background:linear-gradient(90deg,#0000,#b49a5e);width:clamp(38px,9vw,64px);height:1px}.inv-h-dash:last-child{background:linear-gradient(90deg,#b49a5e,#0000)}.inv-h-heart{color:#b49a5e;font-size:clamp(.7rem,2.4vw,.95rem);animation:1.8s ease-in-out infinite invHeartBeat}@keyframes invHeartBeat{0%,to{transform:scale(1)}12%{transform:scale(1.25)}24%{transform:scale(1)}36%{transform:scale(1.18)}48%{transform:scale(1)}}.inv-hint{font-family:var(--font-serif-en), Georgia, serif;color:#8c7f60;margin-bottom:3.2vh;font-size:clamp(.92rem,3.2vw,1.1rem);font-style:italic;animation:1s .6s both invFadeUp}.envelope-scene{perspective:1400px;cursor:pointer;-webkit-tap-highlight-color:transparent;width:min(78vw,440px);animation:envRise 1.1s var(--ease-smooth,ease) .5s both;transition:opacity .7s,transform .7s}.invitation-stage.is-revealed .envelope-scene,.invitation-stage.is-revealed .inv-open-btn,.invitation-stage.is-revealed .inv-hint{opacity:0;pointer-events:none;transform:translateY(4vh)scale(.94)}@keyframes envRise{0%{opacity:0;transform:translateY(5vh)scale(.92)}to{opacity:1;transform:translateY(0)scale(1)}}.envelope{aspect-ratio:10/7;filter:drop-shadow(0 24px 48px #54421e4d)drop-shadow(0 6px 14px #54421e2e);width:100%;position:relative}.env-back{z-index:1;background:linear-gradient(175deg,#fbf7ec 0%,#f6efdd 100%);border-radius:12px;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #e4d9bc}.env-card{z-index:2;transition:transform 1.15s var(--ease-smooth,ease);background:linear-gradient(#fffdf6 0%,#fdf9ee 100%);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:8%;display:flex;position:absolute;inset:7% 5.5% 12%;transform:translateY(9%);box-shadow:inset 0 0 0 1px #eee3c8,inset 0 0 0 5px #fffdf6,inset 0 0 0 6px #e9dcba,0 8px 22px #54421e2e}.env-card-orn{color:#b49a5e;font-size:clamp(1rem,4vw,1.5rem);line-height:1}.env-card-mono{font-family:var(--font-display,"Cinzel", serif);letter-spacing:.3em;color:#6b5a33;font-size:clamp(.95rem,4vw,1.5rem);font-weight:700}.env-card-line{background:linear-gradient(90deg,#0000,#c9b685,#0000);width:34%;height:1px}.env-pocket{z-index:3;clip-path:polygon(0 0,50% 46%,100% 0,100% 100%,0 100%);background:linear-gradient(190deg,#f9f3e4 0%,#f2e9d3 55%,#eddfc4 100%);border-radius:12px;position:absolute;inset:0}.env-pocket:before{content:"";clip-path:polygon(0 0,50% 46%,100% 0,100% 100%,0 100%);pointer-events:none;background:linear-gradient(90deg,#a08a5a29 0%,#0000 22%),linear-gradient(-90deg,#a08a5a29 0%,#0000 22%),linear-gradient(#0000 70%,#a08a5a24 100%);position:absolute;inset:0}.env-flap{z-index:4;clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;backface-visibility:visible;background:linear-gradient(#f4ecd7 0%,#efe4c9 100%);border-radius:12px 12px 0 0;height:54%;transition:transform 1s cubic-bezier(.6,.05,.3,1) .42s,z-index 0s linear 1.18s;position:absolute;top:0;left:0;right:0;transform:rotateX(0)}.env-flap:before{content:"";clip-path:polygon(0 0,100% 0,50% 100%);pointer-events:none;background:linear-gradient(#ffffff8c 0%,#0000 40%);position:absolute;inset:0}.env-seal{z-index:6;aspect-ratio:1;width:clamp(58px,15vw,84px);animation:sealPress .7s var(--ease-spring,ease) 1.15s both;transition:transform .5s var(--ease-smooth,ease), opacity .45s ease;background:radial-gradient(circle at 34% 30%,#d4536a 0%,#a8162a 45%,#7c0e1e 78%,#5f0a16 100%);border-radius:50%;justify-content:center;align-items:center;gap:2px;display:flex;position:absolute;top:52%;left:50%;transform:translate(-50%,-58%);box-shadow:inset 0 0 0 3px #ffe2a859,inset 0 -6px 12px #28000880,inset 0 5px 10px #ffffff2e,0 8px 18px #5a0a1873}.env-seal span{font-family:var(--font-display,"Cinzel", serif);color:#f6dfa4;text-shadow:0 1px 3px #3c000aa6;font-size:clamp(.85rem,2.6vw,1.25rem);font-weight:700;line-height:1}.env-seal i{color:#eec97c;font-size:.62em;font-style:normal;transform:translateY(-1px)}.env-seal:before{content:"";border:1.5px dashed #f6dfa480;border-radius:50%;position:absolute;inset:5px}@keyframes sealPress{0%{opacity:0;transform:translate(-50%,-58%)scale(1.6)}60%{opacity:1;transform:translate(-50%,-58%)scale(.94)}to{opacity:1;transform:translate(-50%,-58%)scale(1)}}.invitation-stage.card-out .env-card{z-index:7;transition:transform 1.15s cubic-bezier(.22,1,.36,1),z-index 0s linear .95s;transform:translateY(-86%)}.envelope-scene:after{content:"";background:radial-gradient(#54421e47 0%,#0000 70%);border-radius:50%;width:26%;height:3px;animation:2.4s ease-in-out infinite envCueFloat;position:absolute;bottom:-14px;left:50%;transform:translate(-50%)}@keyframes envCueFloat{0%,to{opacity:.7;transform:translate(-50%)translateY(0)scale(1)}50%{opacity:.35;transform:translate(-50%)translateY(-6px)scale(.86)}}.invitation-stage.is-opening .envelope-scene:after{opacity:0;animation:none}.inv-reveal{z-index:5;opacity:0;pointer-events:none;transition:opacity .85s ease, transform .95s var(--ease-spring,ease);justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0;transform:scale(.82)}.invitation-stage.is-revealed .inv-reveal{opacity:1;pointer-events:auto;transform:scale(1)}.inv-reveal-card{text-align:center;background:linear-gradient(#fffdf6 0%,#fdf8ec 100%);border-radius:10px;flex-direction:column;align-items:center;width:min(88vw,480px);max-height:84vh;padding:clamp(30px,6vw,52px) clamp(22px,6vw,46px);display:flex;position:relative;overflow:auto;box-shadow:inset 0 0 0 1px #e7dabb,inset 0 0 0 7px #fffdf6,inset 0 0 0 8px #ddcc9f,0 30px 70px #54421e59}.inv-reveal-card:before,.inv-reveal-card:after{content:"❧";color:#c3ab74;opacity:.85;font-size:clamp(.9rem,3vw,1.2rem);position:absolute}.inv-reveal-card:before{top:12px;left:16px}.inv-reveal-card:after{bottom:12px;right:16px;transform:rotate(180deg)}.inv-rc-orn{color:#b49a5e;margin-bottom:10px;font-size:clamp(1.2rem,4vw,1.6rem);animation:.8s .25s both invRcItem}.inv-rc-bn{font-family:var(--font-bengali,"Kalpurush", sans-serif);letter-spacing:.3em;color:#8a6a1f;margin-bottom:14px;font-size:clamp(.85rem,3vw,1.05rem);animation:.8s .4s both invRcItem}.inv-rc-kick{font-family:var(--font-serif-en), Georgia, serif;color:#948663;margin-bottom:8px;font-size:clamp(.95rem,3.2vw,1.15rem);font-style:italic;animation:.8s .55s both invRcItem}.inv-rc-names{font-family:var(--font-display,"Cinzel", serif);color:#4a3d22;animation:invRcItem .9s var(--ease-spring,ease) .7s both;margin-bottom:14px;font-size:clamp(1.55rem,6.4vw,2.5rem);font-weight:700;line-height:1.22}.inv-rc-names .rc-weds{letter-spacing:.5em;text-transform:uppercase;color:#a8162a;margin:6px 0;font-size:.42em;font-weight:400;display:block}.inv-rc-rule{align-items:center;gap:10px;width:72%;margin-bottom:14px;animation:.8s .85s both invRcItem;display:flex}.inv-rc-rule span{background:linear-gradient(90deg,#0000,#c9b685);flex:1;height:1px}.inv-rc-rule span:last-child{background:linear-gradient(90deg,#c9b685,#0000)}.inv-rc-rule i{color:#a8162a;font-size:.8rem;font-style:normal}.inv-rc-date{font-family:var(--font-display,"Cinzel", serif);letter-spacing:.28em;color:#a8162a;margin-bottom:6px;font-size:clamp(1rem,3.6vw,1.3rem);font-weight:700;animation:.8s 1s both invRcItem}.inv-rc-day{font-family:var(--font-serif-en), Georgia, serif;letter-spacing:.12em;color:#6b5f43;margin-bottom:12px;font-size:clamp(.95rem,3.2vw,1.15rem);animation:.8s 1.1s both invRcItem}.inv-rc-note{font-family:var(--font-serif-en), Georgia, serif;color:#948663;font-size:clamp(.9rem,3vw,1.05rem);font-style:italic;animation:.8s 1.25s both invRcItem}@keyframes invRcItem{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.inv-open-btn{color:#7d662f;font-family:var(--font-display,"Cinzel", serif);letter-spacing:.32em;text-transform:uppercase;cursor:pointer;background:0 0;border:1.5px solid #b49a5e;border-radius:4px;margin-top:4vh;padding:15px 42px;font-size:clamp(.8rem,3vw,.98rem);font-weight:600;transition:background .4s,color .4s,box-shadow .4s,transform .3s;animation:1s .85s both invFadeUp;position:relative;overflow:hidden}.inv-open-btn:before{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#fffbebbf,#0000);width:70%;height:100%;animation:3.2s ease-in-out 2.2s infinite invBtnSheen;position:absolute;top:0;left:-120%;transform:skew(-20deg)}@keyframes invBtnSheen{0%,70%{left:-120%}to{left:220%}}.inv-open-btn:hover,.inv-open-btn:focus-visible{color:#fdf3d5;background:linear-gradient(135deg,#a8162a,#7c0e1e);border-color:#a8162a;outline:none;transform:translateY(-2px);box-shadow:0 12px 32px #a8162a59}.inv-open-btn:active{transform:translateY(0)scale(.98)}@keyframes invFadeDown{0%{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:translateY(0)}}@keyframes invFadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media (max-height:760px){.inv-heading{font-size:clamp(1.7rem,5.5vh,2.6rem)}.inv-eyebrow{margin-bottom:1vh}.inv-hint{margin-bottom:2vh}.envelope-scene{width:min(60vw,360px)}.inv-open-btn{margin-top:2.6vh;padding:12px 34px}}@media (max-height:600px){.envelope-scene{width:min(46vw,300px)}.inv-heading{font-size:clamp(1.4rem,5vh,2rem)}.inv-heart-divider{margin:1vh 0 .8vh}}@media (max-width:480px){.envelope-scene{width:min(82vw,360px)}.inv-content{padding-left:16px;padding-right:16px}}@media (max-width:360px){.envelope-scene{width:88vw}}@media (prefers-reduced-motion:reduce){.inv-eyebrow,.inv-heading,.inv-heart-divider,.inv-hint,.envelope-scene,.inv-open-btn,.inv-rc-orn,.inv-rc-bn,.inv-rc-kick,.inv-rc-names,.inv-rc-rule,.inv-rc-date,.inv-rc-day,.inv-rc-note{animation-duration:10ms!important;animation-delay:0s!important}.env-flap,.env-card,.env-seal{transition-duration:.3s!important;transition-delay:0s!important}.inv-botanical,.envelope-scene:after,.inv-h-heart{animation:none!important}}body.invitation-locked .music-toggle-btn,body.invitation-locked .scroll-top-btn{opacity:0!important;pointer-events:none!important}.inv-eyebrow,.inv-heading,.inv-heart-divider,.inv-hint{z-index:6;position:relative}.envelope:before{z-index:4}.envelope{animation:4.8s ease-in-out 1.6s infinite envIdleFloat}@keyframes envIdleFloat{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-6px)rotate(-.4deg)}}.invitation-stage.is-opening .envelope{animation:none}.env-back:after{content:"";pointer-events:none;background-image:radial-gradient(#a08c5f12 1px,#0000 1px);background-size:6px 6px;border-radius:12px;position:absolute;inset:0}.env-flap{z-index:6;transform-style:preserve-3d;background:0 0;transition:transform 1.05s cubic-bezier(.68,-.02,.32,1.02),z-index 0s linear .5s;transform:rotateX(0)}.invitation-stage.is-opening .env-flap{z-index:6;transform:rotateX(0)}.invitation-stage.flap-open .env-flap{z-index:0;transform:rotateX(180deg)}.env-flap:before{content:none!important}.env-flap-face{clip-path:polygon(0 0,100% 0,50% 100%);pointer-events:none;border-radius:12px 12px 0 0;position:absolute;inset:0}.env-flap-front{background:linear-gradient(#f6eed9 0%,#f0e4c6 62%,#ecdfc0 100%);transition:opacity 0s linear .5s;box-shadow:inset 0 0 0 1px #e4d9bce6,inset 0 -14px 22px #a08a5a24}.invitation-stage.flap-open .env-flap-front{opacity:0}.env-flap-front:before{content:"";clip-path:polygon(0 0,100% 0,50% 100%);background-image:radial-gradient(#a08c5f14 1px,#0000 1px);background-size:6px 6px;position:absolute;inset:0}.env-flap-front:after{content:"";clip-path:polygon(0 0,100% 0,50% 100%);background:linear-gradient(#ffffff8c 0%,#0000 42%);position:absolute;inset:0}.env-flap-back{opacity:0;clip-path:polygon(0 100%,100% 100%,50% 0);background:repeating-linear-gradient(45deg,#f0c96e33 0 9px,#f0c96e0d 9px 13px,#0000 13px 24px),linear-gradient(#8a1126 0%,#6b0e1c 55%,#52091a 100%);border-radius:0 0 12px 12px;transition:opacity 0s linear .5s;transform:rotateX(180deg);box-shadow:inset 0 0 0 1px #f0c96e47,inset 0 10px 24px #1e000873}.invitation-stage.flap-open .env-flap-back{opacity:1}.env-seal{z-index:7;box-shadow:none;animation:sealPress .7s var(--ease-spring,ease) 1.15s both;background:0 0;transition:none}.invitation-stage.is-opening .env-seal{opacity:1;transition:none;animation:.42s ease-in-out both sealResist;transform:translate(-50%,-58%)scale(1)}@keyframes sealResist{0%{transform:translate(-50%,-58%)scale(1)}45%{transform:translate(-50%,-58%)scale(1.14)}to{transform:translate(-50%,-58%)scale(1.04)}}.seal-half{backface-visibility:hidden;background:radial-gradient(circle at 34% 30%,#d4536a 0%,#a8162a 45%,#7c0e1e 78%,#5f0a16 100%);border-radius:50%;justify-content:center;align-items:center;gap:2px;display:flex;position:absolute;inset:0;box-shadow:inset 0 0 0 3px #ffe2a859,inset 0 -6px 12px #28000880,inset 0 5px 10px #ffffff2e,0 8px 18px #5a0a1873}.seal-half:before{content:"";border:1.5px dashed #f6dfa480;border-radius:50%;position:absolute;inset:5px}.seal-half.seal-left{clip-path:polygon(0 0,56% 0,46% 16%,57% 33%,45% 51%,56% 69%,46% 85%,54% 100%,0 100%)}.seal-half.seal-right{clip-path:polygon(56% 0,100% 0,100% 100%,54% 100%,46% 85%,56% 69%,45% 51%,57% 33%,46% 16%);animation-delay:50ms}.invitation-stage.seal-split .env-seal{animation:none;transform:translate(-50%,-58%)scale(1.04)}.invitation-stage.seal-split .env-seal:before{content:"";pointer-events:none;background:radial-gradient(circle,#fff0c8f2 0%,#f0c96e8c 30%,#0000 68%);animation:.5s ease-out forwards sealFlash;position:absolute;inset:-14px}@keyframes sealFlash{0%{opacity:0;transform:scale(.4)}25%{opacity:1}to{opacity:0;transform:scale(1.7)}}.invitation-stage.seal-split .seal-half.seal-left{animation:.9s cubic-bezier(.36,.62,.42,1) 40ms forwards sealFallL}.invitation-stage.seal-split .seal-half.seal-right{animation:.9s cubic-bezier(.36,.62,.42,1) 90ms forwards sealFallR}@keyframes sealFallL{0%{opacity:1;transform:translate(0)rotate(0)}to{opacity:0;transform:translate(-34px,52px)rotate(-30deg)}}@keyframes sealFallR{0%{opacity:1;transform:translate(0)rotate(0)}to{opacity:0;transform:translate(32px,58px)rotate(26deg)}}.invitation-stage.letter-out .env-card{z-index:2;animation:1.18s cubic-bezier(.24,.9,.32,1) forwards envLetterOut}@keyframes envLetterOut{0%{transform:translateY(9%)rotate(0)scale(1)}58%{transform:translateY(-46%)rotate(-1.8deg)scale(1.015)}80%{transform:translateY(-80%)rotate(.9deg)scale(1.03)}to{transform:translateY(-94%)rotate(0)scale(1.05)}}.invitation-stage.is-revealed .env-card{animation:envLetterDrift .9s var(--ease-smooth,ease) forwards}@keyframes envLetterDrift{0%{opacity:1;transform:translateY(-94%)rotate(0)scale(1.05)}to{opacity:0;transform:translateY(-118%)rotate(0)scale(1.12)}}.invitation-stage.is-revealed .inv-content{opacity:1;transform:none}.invitation-stage.is-revealed .inv-eyebrow,.invitation-stage.is-revealed .inv-heading,.invitation-stage.is-revealed .inv-heart-divider,.invitation-stage.is-revealed .inv-hint,.invitation-stage.is-revealed .inv-open-btn{opacity:0;pointer-events:none;transition:opacity .6s,transform .6s;animation:none;transform:translateY(-3vh)scale(.97)}.invitation-stage.letter-out .inv-eyebrow,.invitation-stage.letter-out .inv-heading,.invitation-stage.letter-out .inv-heart-divider,.invitation-stage.letter-out .inv-hint{opacity:0;pointer-events:none;transition:opacity .55s,transform .55s;animation:none;transform:translateY(-2.5vh)scale(.98)}.invitation-stage.is-revealed .envelope-scene{opacity:1;pointer-events:none;transform:translateY(0)scale(1)}.invitation-stage.is-revealed .inv-reveal{transform:scale(1)translateY(0)}.invitation-stage.is-opening .envelope-scene:after,.invitation-stage.seal-split .envelope-scene:after{opacity:0;animation:none}.inv-butterfly{z-index:9;aspect-ratio:1.55;pointer-events:none;opacity:0;will-change:transform, opacity;width:clamp(96px,20vw,148px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.15)}.inv-butterfly:before{content:"";background:radial-gradient(circle,#f0c96e66 0%,#f0c96e1f 42%,#0000 70%);animation:1.6s ease-in-out infinite alternate bflyAura;position:absolute;inset:-34%}@keyframes bflyAura{0%{opacity:.55;transform:scale(.92)}to{opacity:1;transform:scale(1.08)}}.bfly-inner{transform-style:preserve-3d;perspective:620px;position:absolute;inset:0}.bfly-wingpair{width:46%;transform-style:preserve-3d;will-change:transform;position:absolute;top:4%;bottom:4%;transform:rotateY(78deg)}.bfly-left{transform-origin:100%;animation:.34s ease-in-out infinite alternate bflyFlapL;right:50%}.bfly-right{transform-origin:0;animation:.34s ease-in-out infinite alternate bflyFlapR;left:50%}@keyframes bflyFlapL{0%{transform:rotateY(16deg)}to{transform:rotateY(74deg)}}@keyframes bflyFlapR{0%{transform:rotateY(-16deg)}to{transform:rotateY(-74deg)}}.bfly-fore,.bfly-hind{pointer-events:none;position:absolute}.bfly-fore{background:radial-gradient(circle at 30% 72%,#a8162a80 0%,#0000 34%),linear-gradient(135deg,#fdf9ec 0%,#f4e8c8 46%,#e6d3a2 78%,#d8bf85 100%);border-radius:88% 18% 22% 64%/96% 30% 26% 58%;width:100%;height:64%;top:0;left:0;box-shadow:inset 0 0 0 1.5px #b49a5e8c,inset 4px 6px 12px #ffffffa6,0 3px 10px #54421e38}.bfly-fore:before{content:"";background:linear-gradient(90deg,#b49a5ed9,#0000);border-radius:2px;width:62%;height:1.5px;position:absolute;bottom:10%;left:12%;transform:rotate(28deg)}.bfly-fore:after{content:"♥";color:#a8162a;opacity:.85;text-shadow:0 1px 2px #780a1a66;font-size:clamp(8px,1.4vw,12px);position:absolute;top:26%;right:16%}.bfly-hind{background:linear-gradient(150deg,#faf3de 0%,#eedfb4 55%,#dcc48c 100%);border-radius:24% 60% 70% 26%/34% 62% 74% 40%;width:76%;height:48%;bottom:0;left:7%;box-shadow:inset 0 0 0 1.2px #b49a5e80,inset 3px 4px 9px #ffffff8c,0 2px 8px #54421e2e}.bfly-hind:before{content:"";background:linear-gradient(90deg,#b49a5eb3,#0000);width:54%;height:1.2px;position:absolute;top:22%;left:16%;transform:rotate(-22deg)}.bfly-body{z-index:2;background:linear-gradient(90deg,#4d0813 0%,#7c1020 45%,#3c050e 100%);border-radius:46% 46% 50% 50%/30% 30% 72% 72%;width:6.5%;height:56%;position:absolute;top:22%;left:46.75%;box-shadow:inset 0 2px 3px #f0c96e73,0 2px 6px #1e000866}.bfly-body:before{content:"";background:radial-gradient(circle at 36% 32%,#8a1126,#3c050e 78%);border-radius:50%;width:84%;height:26%;position:absolute;top:-22%;left:8%}.bfly-body:after{content:"";opacity:.9;background:linear-gradient(#0000 0%,#5a3c1400 0%,#6b4a1e 55%);border-radius:2px;width:1.4px;height:34%;position:absolute;top:-46%;left:30%;transform:rotate(0);box-shadow:-4px -1px 0 -.2px #6b4a1e,4px 1px 0 -.2px #6b4a1e}.invitation-stage.bfly-morph .inv-butterfly{opacity:1;animation:bflyUnfurl .62s var(--ease-spring,ease) 80ms forwards}@keyframes bflyUnfurl{0%{opacity:0;transform:translate(-50%,-50%)scale(.15)}55%{opacity:1;transform:translate(-50%,-50%)scale(1.1)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.invitation-stage.bfly-morph .bfly-wingpair{animation-duration:.3s}.invitation-stage.bfly-morph .envelope{animation:.68s cubic-bezier(.5,0,.3,1) forwards envToButterfly}@keyframes envToButterfly{0%{opacity:1;transform:scale(1)translateY(0)}34%{opacity:1;transform:scale(.93)translateY(3px)}to{opacity:0;transform:scale(.18)translateY(2.5vh)}}.invitation-stage.bfly-morph .envelope-scene{animation:.3s ease-out 50ms envCrumple}@keyframes envCrumple{0%{transform:rotate(0)}30%{transform:rotate(-1.6deg)}65%{transform:rotate(1.2deg)}to{transform:rotate(0)}}@keyframes bflyFlyPath{0%{transform:translate(-50%,-50%)translate(0,0)rotate(0)scale(1)}14%{transform:translate(-50%,-50%)translate(-5vw,-9vh)rotate(-15deg)scale(.97)}32%{transform:translate(-50%,-50%)translate(4vw,-19vh)rotate(11deg)scale(.88)}52%{transform:translate(-50%,-50%)translate(-3vw,-30vh)rotate(-9deg)scale(.78)}74%{transform:translate(-50%,-50%)translate(17vw,-52vh)rotate(13deg)scale(.62)}to{transform:translate(-50%,-50%)translate(58vw,-98vh)rotate(19deg)scale(.36)}}.invitation-stage.bfly-fly .bfly-wingpair{animation-duration:.24s}.invitation-stage.bfly-morph .bfly-inner{animation:.5s ease-in-out infinite alternate bflyBob}@keyframes bflyBob{0%{transform:translateY(-3px)rotate(-2deg)}to{transform:translateY(3px)rotate(2deg)}}.fx-particle{z-index:8;pointer-events:none;will-change:transform, opacity;position:absolute}.fx-shard{background:var(--clr,#a8162a);border-radius:3px 6px;width:9px;height:9px;margin:-4.5px;animation:.9s cubic-bezier(.3,.55,.4,1) forwards fxTumble;box-shadow:0 1px 4px #28000859,inset 0 1px 1px #ffe2a866}.fx-shard.gold{background:radial-gradient(circle at 34% 30%,#ffe9ad,#c9943a 70%);border-radius:50%;width:6px;height:6px;margin:-3px;box-shadow:0 0 6px #f0c96eb3}@keyframes fxTumble{0%{opacity:1;transform:translate(0,0)rotate(0)scale(1)}to{transform:translate3d(var(--dx,0px), var(--dy,40px), 0) rotate(var(--rot,90deg)) scale(.35);opacity:0}}.fx-flash{background:radial-gradient(circle,#fff4d6f2 0%,#f0c96e99 34%,#0000 70%);border-radius:50%;width:22px;height:22px;margin:-11px;animation:.55s ease-out forwards fxFlash}@keyframes fxFlash{0%{opacity:0;transform:scale(.35)}22%{opacity:1}to{opacity:0;transform:scale(2.6)}}.fx-dust{background:radial-gradient(circle at 36% 32%,#fff3cf 0%,#e9be5f 58%,#c9943a1a 100%);border-radius:50%;width:7px;height:7px;margin:-3.5px;animation:1.05s ease-out forwards fxDust;box-shadow:0 0 8px #f0c96ebf}@keyframes fxDust{0%{opacity:1;transform:translate(0,0)scale(.4)}70%{opacity:.85}to{transform:translate3d(var(--dx,0px), var(--dy,-40px), 0) scale(1.05);opacity:0}}.fx-spark{background:radial-gradient(circle at 36% 32%,#fff8e0 0%,#f0c96e 55%,#c9943a1f 100%);border-radius:50%;width:8px;height:8px;margin:-4px;animation:.72s ease-out forwards fxSpark;box-shadow:0 0 9px #f0c96ed9,0 0 3px #fff4d6e6}.fx-spark.star{background:linear-gradient(135deg,#fff6d8 0%,#e9be5f 100%);border-radius:50% 0 50% 50%;width:11px;height:11px;margin:-5.5px;transform:rotate(14deg)}@keyframes fxSpark{0%{opacity:.95;transform:scale(.25)rotate(0)}55%{opacity:.75;transform:scale(1.1)rotate(40deg)}to{opacity:0;transform:scale(.2)translate(2px,-16px)rotate(80deg)}}@media (max-height:760px){.inv-butterfly{width:clamp(84px,17vw,124px)}}@media (max-width:480px){.inv-butterfly{width:clamp(78px,24vw,110px)}.bfly-fore:after{font-size:8px}}@media (prefers-reduced-motion:reduce){.inv-butterfly,.fx-particle{display:none!important}.invitation-stage.flap-open .env-flap{transition-duration:.3s!important}.invitation-stage.letter-out .env-card,.invitation-stage.bfly-morph .envelope{animation-duration:.3s!important}.invitation-stage.bfly-morph .bfly-inner,.envelope{animation:none!important}}.inv-butterfly{aspect-ratio:420/340;perspective:720px;width:clamp(118px,23vw,172px)}.bfly-bank{transform-style:preserve-3d;will-change:transform;position:absolute;inset:0}.bfly-bob6{animation:.52s ease-in-out infinite alternate bflyFloat6;position:absolute;inset:0}@keyframes bflyFloat6{0%{transform:translateY(-2.2px)rotate(-1.2deg)}to{transform:translateY(2.2px)rotate(1.2deg)}}.bfly-svg{filter:drop-shadow(0 10px 16px #1e06004d);width:100%;height:100%;position:absolute;inset:0}.invitation-stage.bfly-morph .env-card{animation:.8s cubic-bezier(.5,0,.35,1) forwards envLetterSparkle6}@keyframes envLetterSparkle6{0%{opacity:1;filter:blur();transform:translateY(-94%)rotate(0)scale(1.05)}to{opacity:0;filter:blur(6px);transform:translateY(-132%)rotate(2.5deg)scale(1.18)}}.invitation-stage.is-revealed .env-card{opacity:0;animation:none}.invitation-stage.letter-out .inv-open-btn{opacity:0;pointer-events:none;transition:opacity .55s,transform .55s;animation:none;transform:translateY(-2.5vh)scale(.98)}.invitation-stage.bfly-fly .inv-butterfly{animation:5.4s cubic-bezier(.45,.04,.55,.96) forwards bflyFlyPath6}@keyframes bflyFlyPath6{0%{animation-timing-function:ease-in-out;transform:translate(-50%,-50%)translate(0,0)scale(1)}9%{animation-timing-function:ease-in-out;transform:translate(-50%,-50%)translate(1vw,-5vh)scale(.99)}17%{animation-timing-function:ease-in-out;transform:translate(-50%,-50%)translate(2.6vw,-7.5vh)scale(.975)}23%{animation-timing-function:ease-in-out;transform:translate(-50%,-50%)translate(1.4vw,-8.6vh)scale(.97)}33%{animation-timing-function:ease-in-out;transform:translate(-50%,-50%)translate(-9vw,-13.5vh)scale(.93)}42%{animation-timing-function:ease-in-out;transform:translate(-50%,-50%)translate(-12vw,-9.5vh)scale(.9)}48%{animation-timing-function:ease-in-out;transform:translate(-50%,-50%)translate(-12.6vw,-8.8vh)scale(.9)}58%{animation-timing-function:ease-in-out;transform:translate(-50%,-50%)translate(-3vw,-19vh)scale(.85)}69%{animation-timing-function:cubic-bezier(.5,0,.72,.4);transform:translate(-50%,-50%)translate(9vw,-32vh)scale(.75)}81%{animation-timing-function:cubic-bezier(.55,0,.75,.45);transform:translate(-50%,-50%)translate(24vw,-55vh)scale(.56)}to{transform:translate(-50%,-50%)translate(47vw,-112vh)scale(.3)}}.invitation-stage.bfly-fly .bfly-bank{animation:5.4s cubic-bezier(.45,.04,.55,.96) forwards bflyBank6}@keyframes bflyBank6{0%{transform:rotate(0)rotateY(0)}9%{transform:rotate(-5deg)rotateY(9deg)}17%{transform:rotate(4deg)rotateY(-7deg)}23%{transform:rotate(0)rotateY(0)}33%{transform:rotate(-12deg)rotateY(15deg)}42%{transform:rotate(-7deg)rotateY(9deg)}48%{transform:rotate(-4deg)rotateY(4deg)}58%{transform:rotate(8deg)rotateY(-11deg)}69%{transform:rotate(14deg)rotateY(-16deg)}81%{transform:rotate(20deg)rotateY(-20deg)}to{transform:rotate(25deg)rotateY(-22deg)}}.inv-reveal{transition:opacity .45s;transform:none}.inv-reveal:before{content:"";aspect-ratio:1;opacity:0;pointer-events:none;background:radial-gradient(circle,#f0c96e2b 0%,#f0c96e0e 42%,#0000 68%);border-radius:50%;width:min(120vw,940px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.55)}.invitation-stage.is-revealed .inv-reveal:before{animation:1.7s ease-out .1s forwards rcBloom6}@keyframes rcBloom6{0%{opacity:0;transform:translate(-50%,-50%)scale(.55)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.inv-reveal-card{opacity:0;filter:blur(18px)saturate(1.18);transform:translateY(4.5vh)scale(.9)}.invitation-stage.is-revealed .inv-reveal-card{animation:1.05s cubic-bezier(.19,1,.22,1) 50ms forwards rcCard6}@keyframes rcCard6{0%{opacity:0;filter:blur(18px)saturate(1.18);transform:translateY(4.5vh)scale(.9)}55%{opacity:1}to{opacity:1;filter:blur()saturate();transform:translateY(0)scale(1)}}.inv-rc-shine{pointer-events:none;mix-blend-mode:screen;background:linear-gradient(105deg,#0000 0%,#ffecb44d 42%,#fff8dc80 50%,#ffecb44d 58%,#0000 100%);width:30%;position:absolute;top:-22%;bottom:-22%;left:0;transform:translate(-160%)rotate(8deg)}.invitation-stage.is-revealed .inv-rc-shine{animation:1.5s cubic-bezier(.3,0,.2,1) 1.1s forwards rcShine6}@keyframes rcShine6{to{transform:translate(480%)rotate(8deg)}}.inv-rc-orn,.inv-rc-bn,.inv-rc-kick,.inv-rc-rule,.inv-rc-date,.inv-rc-day,.inv-rc-note{opacity:0;filter:blur(10px);animation:none;transform:translateY(20px)}.inv-rc-hint{opacity:0;animation:none;transform:translateY(8px)}.inv-rc-names{opacity:0;filter:blur(14px);letter-spacing:.16em;animation:none;transform:translateY(22px)scale(.975)}.invitation-stage.is-revealed .inv-rc-orn{animation:.9s cubic-bezier(.19,1,.22,1) .25s forwards rcItem6}.invitation-stage.is-revealed .inv-rc-bn{animation:.9s cubic-bezier(.19,1,.22,1) .37s forwards rcItem6}.invitation-stage.is-revealed .inv-rc-kick{animation:.9s cubic-bezier(.19,1,.22,1) .49s forwards rcItem6}.invitation-stage.is-revealed .inv-rc-names{animation:1.15s cubic-bezier(.19,1,.22,1) .62s forwards rcNames6}.invitation-stage.is-revealed .inv-rc-rule{animation:.9s cubic-bezier(.19,1,.22,1) .8s forwards rcItem6}.invitation-stage.is-revealed .inv-rc-date{animation:.9s cubic-bezier(.19,1,.22,1) .92s forwards rcItem6}.invitation-stage.is-revealed .inv-rc-day{animation:.9s cubic-bezier(.19,1,.22,1) 1.04s forwards rcItem6}.invitation-stage.is-revealed .inv-rc-note{animation:.9s cubic-bezier(.19,1,.22,1) 1.16s forwards rcItem6}.invitation-stage.is-revealed .inv-rc-hint{animation:1s 1.55s forwards rcHint6}@keyframes rcItem6{0%{opacity:0;filter:blur(10px);transform:translateY(20px)}to{opacity:1;filter:blur();transform:translateY(0)}}@keyframes rcNames6{0%{opacity:0;filter:blur(14px);letter-spacing:.16em;transform:translateY(22px)scale(.975)}to{opacity:1;filter:blur();letter-spacing:.015em;transform:translateY(0)scale(1)}}@keyframes rcHint6{0%{opacity:0;transform:translateY(8px)}to{opacity:.8;transform:translateY(0)}}.inv-rc-hint{font-family:var(--font-serif-en), Georgia, serif;letter-spacing:.14em;color:#b49a5e;margin-top:16px;font-size:clamp(.8rem,2.6vw,.95rem);font-style:italic}@media (max-height:760px){.inv-butterfly{width:clamp(100px,19vw,142px)}}@media (max-width:480px){.inv-butterfly{width:clamp(92px,27vw,124px)}}@media (prefers-reduced-motion:reduce){.bfly-bob6{animation:none!important}.invitation-stage.is-revealed .inv-reveal-card,.invitation-stage.is-revealed .inv-rc-orn,.invitation-stage.is-revealed .inv-rc-bn,.invitation-stage.is-revealed .inv-rc-kick,.invitation-stage.is-revealed .inv-rc-names,.invitation-stage.is-revealed .inv-rc-rule,.invitation-stage.is-revealed .inv-rc-date,.invitation-stage.is-revealed .inv-rc-day,.invitation-stage.is-revealed .inv-rc-note,.invitation-stage.is-revealed .inv-rc-hint{filter:none!important;animation-duration:.35s!important;animation-delay:0s!important;transform:none!important}.inv-reveal-card{filter:none!important}}
