/* Opening sequence: break seal, lift flap, slide stationery out. */
.envelope{isolation:isolate;perspective:900px;overflow:visible;transform-style:preserve-3d}
.envelope .flap{z-index:4;transform-origin:50% 0;backface-visibility:visible;transition:none}
.envelope .seal{z-index:5;transition:none}
.envelope-card{position:absolute;inset:12px 17px 16px;background:linear-gradient(135deg,#fffdf8,#f6edde);border:1px solid #d1bda0;border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;z-index:1;color:#7f6649;box-shadow:0 3px 12px #6c50331a;pointer-events:none}
.envelope-card:before{content:'';position:absolute;inset:8px;border:1px solid #d7c5ac;border-radius:2px}
.envelope-card b{font:italic 29px 'Cormorant Garamond',Georgia,serif;font-weight:400}.envelope-card small{font:9px 'DM Sans',sans-serif;letter-spacing:2px}.envelope-card em{font:24px Georgia;color:#ae8e64}
.envelope:after{content:'';position:absolute;inset:0;z-index:3;background:linear-gradient(32deg,#ecddc8 49.7%,transparent 50.2%),linear-gradient(-32deg,#f2e5d3 49.7%,transparent 50.2%);border-bottom:1px solid #d4c3ac;pointer-events:none}
.cover.opening .envelope{animation:envelope-still .35s ease-out both;pointer-events:none}
.cover.opening .seal{animation:seal-release .4s ease-in forwards}
.cover.opening .flap{animation:flap-open .7s .2s ease-in-out forwards}
.cover.opening .envelope-card{animation:card-emerge 1s .68s cubic-bezier(.22,.75,.25,1) forwards}
.cover.opening #open-text{opacity:.6;pointer-events:none;transition:opacity .3s}
.cover.opening .cover-inner>.script,.cover.opening .cover-inner>.fine{opacity:.35;transition:opacity .5s}
@keyframes seal-release{0%{opacity:1;scale:1}60%{opacity:1;scale:1.12}100%{opacity:0;scale:.7;translate:0 12px}}
@keyframes flap-open{0%{transform:rotateX(0);z-index:4;filter:brightness(1)}49%{z-index:4}50%{z-index:0}100%{transform:rotateX(180deg);z-index:0;filter:brightness(.96)}}
@keyframes card-emerge{0%{transform:translateY(0);opacity:1}75%{transform:translateY(-130px);opacity:1}100%{transform:translateY(-145px) rotate(2deg);opacity:1}}
@keyframes envelope-still{to{transform:rotate(0);translate:0 0}}
@media(prefers-reduced-motion:reduce){.cover.opening .seal,.cover.opening .flap,.cover.opening .envelope-card,.cover.opening .envelope{animation:none!important}}
