.invitation-opening[hidden]{display:none!important}
.invitation-opening{position:fixed;inset:0;z-index:1000;overflow:hidden;background:#fff;color:#4d605b;isolation:isolate;opacity:0;transition:opacity .18s ease}
.invitation-opening.is-visible{opacity:1}
.letter-scene{position:absolute;inset:0;perspective:1600px;transition:opacity .55s ease,transform .7s ease}
.letter-envelope{position:absolute;inset:0;isolation:isolate;background:#fff}
.letter-envelope::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#fff,#f2f2f0);z-index:0}
.invitation-letter{position:absolute;inset:0;padding:max(70px,env(safe-area-inset-top)) clamp(25px,8vw,120px) max(120px,env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:url('/assets/botanical-top.png') left top/clamp(180px,30vw,420px) auto no-repeat,url('/assets/botanical-bottom.png') right bottom/clamp(180px,30vw,420px) auto no-repeat,#fff;z-index:1;opacity:0;transform:translateY(16%) scale(.94);transition:transform .85s cubic-bezier(.22,.65,.22,1) .25s,opacity .5s ease .25s}
.invitation-letter .letter-monogram{font:italic clamp(38px,5vw,66px)/1.2 Didot,Georgia,serif;letter-spacing:0;color:#4e615c;margin-bottom:clamp(24px,5vh,48px)}
.invitation-letter h2{font:italic clamp(46px,7.6vw,100px)/1.12 Didot,Georgia,serif;margin:0 0 28px;color:#697b74;text-transform:none;letter-spacing:-1px;max-width:100%}
.invitation-letter p{font:clamp(13px,1.4vw,18px)/1.9 Futura,'Century Gothic',sans-serif;letter-spacing:2px;text-transform:uppercase;margin:0}
.letter-front{position:absolute;inset:0;z-index:3;pointer-events:none;transform:translateY(0);transition:transform .8s cubic-bezier(.6,0,.2,1) .2s}
.letter-front::before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,#fff,#efefed);clip-path:polygon(0 0,50% 55%,100% 0,100% 100%,0 100%);filter:drop-shadow(0 -1px 2px #63725e26)}
.letter-front::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#fff,#f4f4f2);clip-path:polygon(0 100%,0 92%,50% 43%,100% 92%,100% 100%);filter:drop-shadow(0 -2px 2px #63725e26)}
.letter-flap{position:absolute;left:-1px;right:-1px;top:-1px;height:56%;z-index:5;transform-origin:50% 0;transform:rotateX(0deg);transition:transform .65s cubic-bezier(.4,0,.2,1) .1s;background:linear-gradient(165deg,#fff,#f0f0ed);clip-path:polygon(0 0,100% 0,50% 100%);backface-visibility:hidden;filter:drop-shadow(0 3px 3px #63725e26)}
.letter-envelope .letter-seal{position:absolute;left:50%;top:56%;width:clamp(76px,8vw,110px);aspect-ratio:1;transform:translate(-50%,-50%);display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle at 35% 25%,#8b9f8f,#607969);border:4px double #a1b2a1;box-shadow:0 6px 20px #2f49392b;color:#f7f6e9;font:italic clamp(23px,2.4vw,34px)/1 Didot,Georgia,serif;letter-spacing:0;z-index:6;transition:opacity .3s ease,transform .45s ease}
.letter-opening-caption{position:absolute;bottom:max(78px,calc(55px + env(safe-area-inset-bottom)));left:24px;right:24px;z-index:7;font:15px/1.6 Futura,'Century Gothic',sans-serif;text-align:center;margin:0;color:#4e615c;transition:opacity .3s ease}
.letter-skip{position:absolute;bottom:max(20px,env(safe-area-inset-bottom));right:max(24px,env(safe-area-inset-right));z-index:8;border:1px solid #4e615c45;background:#fcfbf6e8;color:#4e615c;font:14px/1.5 Futura,'Century Gothic',sans-serif;text-decoration:underline;text-underline-offset:4px;padding:10px 16px;cursor:pointer}
.letter-skip:hover{background:#fcfbf6;color:#344c3f}.letter-skip:focus-visible{outline:2px solid #4e615c;outline-offset:4px}
.invitation-opening.is-opening .letter-seal{opacity:0;transform:translate(-50%,-50%) scale(1.12)}
.invitation-opening.is-opening .letter-flap{transform:rotateX(178deg)}
.invitation-opening.is-opening .letter-front{transform:translateY(105%)}
.invitation-opening.is-opening .invitation-letter{opacity:1;transform:translateY(0) scale(1)}
.invitation-opening.flap-open .letter-flap{z-index:0}
body.opening-invitation{overflow:hidden}
@media(max-width:760px){.letter-scene{perspective:1100px}.letter-flap{height:53%}.letter-envelope .letter-seal{top:53%;width:82px;font-size:25px}.invitation-letter{padding:70px 25px 145px;background-size:55vw auto,55vw auto}.invitation-letter h2{font-size:clamp(42px,12vw,68px);line-height:1.15;margin-bottom:24px}.invitation-letter .letter-monogram{font-size:46px;margin-bottom:32px}.invitation-letter p{font-size:13px;letter-spacing:1.4px}.letter-opening-caption{font-size:13px;bottom:max(88px,calc(65px + env(safe-area-inset-bottom)));left:30px;right:30px}.letter-skip{font-size:13px;right:20px;bottom:max(20px,env(safe-area-inset-bottom))}}
@media(max-height:520px){.invitation-letter{padding:28px 24px 94px}.invitation-letter .letter-monogram{font-size:30px;margin-bottom:12px}.invitation-letter h2{font-size:clamp(30px,7vh,48px);margin-bottom:12px}.invitation-letter p{font-size:11px;line-height:1.6}.letter-opening-caption{font-size:12px;bottom:62px}.letter-envelope .letter-seal{width:64px;font-size:22px}.letter-skip{bottom:12px;padding:8px 12px}}
@media(prefers-reduced-motion:reduce){.invitation-opening,.letter-scene,.invitation-letter,.letter-seal,.letter-flap,.letter-front,.letter-opening-caption{transition:none!important}}
