/* 古典笺封的当代演绎：折纸、朱印、竖排题签。 */
html{scrollbar-gutter:stable}
#invitation-opening{display:none;position:fixed;inset:0;z-index:40;overflow:auto;isolation:isolate;background:#efe6d3;color:#685b45;will-change:opacity}
.invitation-sealed{overflow:hidden;scroll-behavior:auto}
.invitation-sealed body{overflow:hidden}
.invitation-sealed #invitation-opening{display:grid;place-items:center}
.invitation-sealed body>main,.invitation-sealed .masthead,.invitation-sealed .bottom-nav,.invitation-sealed #music-toggle,.invitation-sealed #music-message,.invitation-sealed .skip{opacity:0;pointer-events:none}
/* The letter stays fully composed behind the opaque cover: only one surface fades. */
.invitation-unsealing body>main,.invitation-unsealing .masthead,.invitation-unsealing .bottom-nav,.invitation-unsealing #music-toggle,.invitation-unsealing #music-message{opacity:1}
/* The cover supplies the entrance: do not restart the letter's staggered entrance afterwards. */
.invitation-sealed .enter,.invitation-opened .enter{animation:none!important;opacity:1;transform:none}
.invitation-sealed:not(.invitation-unsealing) .world-stage *,.invitation-sealed:not(.invitation-unsealing) .magpie-pair,.invitation-sealed:not(.invitation-unsealing) .magpie-pair img{animation-play-state:paused!important}
.opening-landscape{position:absolute;inset:0;z-index:-1;background:linear-gradient(#f5eddc77,#f2eadc22),url('../assets/art/gongbi-landscape-plate.webp') center 72%/cover;opacity:.75}
.opening-content{width:100%;display:flex;flex-direction:column;align-items:center;padding:42px 24px 84px;text-align:center;perspective:1600px}
.opening-eyebrow{font-size:11px;letter-spacing:5px;color:#957d59;margin:0 0 17px}
#opening-title{font-family:var(--brush);font-size:26px;letter-spacing:4px;font-weight:400;margin:0 0 34px;color:#756348}
#open-invitation{position:relative;display:block;width:310px;height:432px;padding:0;border:0;border-radius:2px;background:#d9bca0;box-shadow:0 24px 48px #48302126,0 3px 7px #4830211a;color:inherit;perspective:1400px;isolation:isolate;flex:none;transition:transform 1.25s ease;will-change:transform}
#open-invitation:focus-visible{outline:2px solid #a0493d;outline-offset:12px}
.packet-inner{position:absolute;inset:9px;background:#f6edd9;display:grid;place-items:center;padding:19px;box-shadow:inset 0 0 35px #d8c5a366;transition:transform 1.25s .2s;will-change:transform}
.inner-frame{width:100%;height:100%;border:1px solid #bca07777;outline:1px solid #bca07744;outline-offset:-6px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px}
.inner-happiness{font-family:var(--brush);font-size:42px;color:#9b473d}.inner-title{font-family:var(--brush);font-size:32px;letter-spacing:5px;color:#91483a;writing-mode:vertical-rl}.inner-note{font-size:10px;letter-spacing:1px;color:#8b785b}
.packet-fold{position:absolute;inset-block:0;background-color:#dbc2a1;background-image:linear-gradient(105deg,#f7e8cd44,transparent 40%,#76503910),url('../assets/art/gongbi-landscape-plate.webp');background-size:auto,640px auto;backface-visibility:hidden;transition:transform 1s cubic-bezier(.25,.65,.25,1);border-block:1px solid #b2967377;will-change:transform}
.packet-fold:after{content:'';position:absolute;inset:12px;border:1px solid #a5855738;pointer-events:none}
.packet-fold-left{left:0;width:62%;z-index:3;transform-origin:left center;border-right:1px solid #94785566;box-shadow:3px 0 6px #64462c1c;background-position:center,top left}
.packet-fold-right{right:0;width:38%;z-index:2;transform-origin:right center;background-position:center,top right}
.packet-title{position:absolute;top:64px;right:35px;font-family:var(--brush);font-size:48px;line-height:1.35;letter-spacing:12px;writing-mode:vertical-rl;color:#783a2f}
.packet-recipient{position:absolute;top:67px;left:30px;writing-mode:vertical-rl;font-size:13px;letter-spacing:4px;color:#776347}
.packet-dedication{position:absolute;top:62px;right:27px;writing-mode:vertical-rl;font-size:12px;letter-spacing:3px;color:#8d795a}
.packet-family{position:absolute;bottom:38px;right:28px;writing-mode:vertical-rl;font-family:var(--brush);font-size:19px;letter-spacing:4px;color:#875849}
.packet-seal{position:absolute;z-index:4;left:calc(62% - 30px);top:64%;width:60px;height:70px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:#a24838;color:#f7e5c5;border:3px double #edd1a9;outline:1px solid #a24838;box-shadow:2px 3px 5px #66392320;transform:rotate(-4deg);transition:opacity .4s,transform .6s}
.packet-seal>span{font-family:var(--brush);font-size:32px;line-height:1}.packet-seal small{font-family:var(--serif);font-size:10px;letter-spacing:3px;margin-left:3px}
.opening-action{font-family:var(--serif);font-size:14px;letter-spacing:4px;color:#8d4b3c;margin:35px 0 0}.opening-music{font-size:11px;letter-spacing:2px;color:#958367;margin:14px 0 0}.opening-footer{position:absolute;bottom:21px;font-size:10px;letter-spacing:3px;color:#9b8e75;margin:0}
.invitation-unsealing #open-invitation{transform:translateY(-4px) scale(1.02);animation:packet-away .35s .58s ease both}
.invitation-unsealing .opening-eyebrow,.invitation-unsealing #opening-title,.invitation-unsealing .opening-action,.invitation-unsealing .opening-music,.invitation-unsealing .opening-footer{animation:packet-away .3s .12s ease both}
.invitation-unsealing .inner-frame{animation:packet-away .28s .35s ease both}
.invitation-unsealing .packet-seal{opacity:0;transform:rotate(-10deg) translateY(32px) scale(.85)}
.invitation-unsealing .packet-fold-left{transform:rotateY(-135deg);transition-delay:.1s}.invitation-unsealing .packet-fold-right{transform:rotateY(135deg);transition-delay:.18s}
.invitation-unsealing .packet-inner{transform:translateY(-4px)}
.invitation-unsealing #invitation-opening{animation:opening-away .7s .85s cubic-bezier(.4,0,.2,1) both}
@keyframes packet-away{from{opacity:1}to{opacity:0}}
@keyframes opening-away{from{opacity:1}to{opacity:0}}
@media(max-width:600px){.opening-content{padding:34px 24px 68px}#opening-title{font-size:17px;letter-spacing:3px;margin-bottom:30px}#open-invitation{width:280px;height:395px}.packet-title{font-size:43px;right:26px}.packet-recipient{left:23px}.packet-dedication{right:22px}.packet-family{right:22px}.opening-action{margin-top:30px;font-size:13px}.opening-landscape{background-position:center bottom}}
@media(max-height:700px){.opening-content{padding-top:24px;padding-bottom:46px}.opening-eyebrow{margin-bottom:12px}#opening-title{margin-bottom:22px}#open-invitation{width:248px;height:340px}.packet-title{top:49px;font-size:38px;right:22px}.packet-recipient{top:51px;left:22px}.packet-dedication{top:48px;right:19px}.packet-family{font-size:17px;bottom:27px;right:20px}.opening-action{margin-top:23px}.opening-music{margin-top:10px}.opening-footer{bottom:12px}}
@media(prefers-reduced-motion:reduce){#invitation-opening *,#invitation-opening{animation:none!important;transition:none!important}.invitation-unsealing #open-invitation,.invitation-unsealing .packet-inner{transform:none}}
