:root{--cream: #FFF9F1;--pink: #F5A9BD;--pink-soft: #FBD3DD;--yellow: #FFE49A;--mint: #BFE8D5;--cocoa: #654B43;--cocoa-light: #9A8578}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body{background:var(--cream);color:var(--cocoa);font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;max-width:100%;overflow-x:hidden}body{background-image:radial-gradient(var(--pink-soft) 1px,transparent 1px),radial-gradient(#FFEFC9 1px,transparent 1px);background-size:44px 44px,44px 44px;background-position:0 0,22px 22px}button{font-family:inherit;color:var(--cocoa);border:none;background:none;cursor:pointer}.stage{min-height:100vh;display:flex;flex-direction:column;padding:12px 14px 70px;max-width:560px;margin:0 auto}.shop-header{text-align:center;padding:10px 0 4px;position:relative}.shop-name{display:inline-block;font-weight:800;font-size:20px;letter-spacing:2px;background:#fff;border:2.5px solid var(--cocoa);border-radius:999px;padding:6px 22px;box-shadow:3px 3px 0 var(--pink)}.shop-sub{display:block;font-size:10px;letter-spacing:3px;color:var(--cocoa-light);margin-top:6px}.shop-flag{position:absolute;top:-4px;right:8px;width:14px;height:22px;background:var(--mint);border:2px solid var(--cocoa);border-radius:3px;transform:rotate(12deg);display:inline-block}.scene{flex:1}.chapter{animation:chapterIn .5s ease both;padding-top:10px}@keyframes chapterIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.chapter-title{font-size:22px;font-weight:800;margin:14px 0 4px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.badge-sticker{font-size:12px;font-weight:700;background:var(--yellow);border:2px solid var(--cocoa);border-radius:999px;padding:3px 12px;transform:rotate(-4deg);display:inline-block}.chapter-sub{color:var(--cocoa-light);font-size:14px;margin-bottom:14px}.pop-text{font-size:22px;font-weight:800;text-align:center;animation:pop .6s cubic-bezier(.3,1.6,.5,1) both}.pop-text.t2{font-size:26px;animation-delay:.25s;margin-top:6px}@keyframes pop{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.btn-main{display:block;width:100%;max-width:340px;margin:26px auto 0;background:var(--pink);color:#fff;font-size:17px;font-weight:800;border:2.5px solid var(--cocoa);border-radius:999px;padding:14px 20px;box-shadow:0 4px 0 var(--cocoa);transition:transform .12s,box-shadow .12s}.btn-main:active{transform:translateY(3px);box-shadow:0 1px 0 var(--cocoa)}.btn-small{display:inline-block;margin:14px auto 0;background:#fff;font-size:14px;font-weight:700;border:2px solid var(--cocoa);border-radius:999px;padding:10px 20px;box-shadow:0 3px 0 var(--cocoa)}.btn-small:active{transform:translateY(2px);box-shadow:none}.bounce-in{animation:bounceIn .6s cubic-bezier(.3,1.6,.5,1) both}@keyframes bounceIn{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}.parcel-btn{display:flex;flex-direction:column;align-items:center;margin:22px auto 0;animation:floaty 3s ease-in-out infinite}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.parcel-svg{width:230px;max-width:70vw;filter:drop-shadow(4px 6px 0 rgba(101,75,67,.15))}.parcel-label{margin-top:14px;background:#fff;border:2.5px dashed var(--cocoa);border-radius:10px;padding:8px 20px;font-weight:700;font-size:16px;transform:rotate(-2deg);display:flex;flex-direction:column;align-items:center;gap:4px}.parcel-hint{font-style:normal;font-size:12px;color:var(--pink);font-weight:700;animation:blink 1.4s infinite}@keyframes blink{50%{opacity:.35}}.unwrap-scene{text-align:center}.unwrap-anim{position:relative;margin:30px auto 0;max-width:320px}.unwrap-anim .flap{position:absolute;top:0;width:55%;height:260px;background:var(--pink-soft);border:3px solid var(--cocoa);z-index:2;animation:flapOpen .9s ease forwards}.unwrap-anim .flap.left{left:0;border-radius:16px 0 0 16px;transform-origin:left center}.unwrap-anim .flap.right{right:0;border-radius:0 16px 16px 0;transform-origin:right center}@keyframes flapOpen{to{transform:scaleX(0);opacity:0}}.ribbon-fall{position:absolute;left:45%;top:30px;width:20px;height:180px;background:var(--yellow);border:2px solid var(--cocoa);z-index:3;animation:ribbonFall .8s ease forwards}@keyframes ribbonFall{to{transform:translateY(200px) rotate(20deg);opacity:0}}.intro-card{position:relative;background:#fff;border:2.5px solid var(--cocoa);border-radius:14px;padding:22px;display:flex;flex-direction:column;gap:6px;align-items:center;box-shadow:5px 5px 0 var(--mint);transform:rotate(-2deg);animation:cardUp .7s cubic-bezier(.3,1.6,.5,1) both}@keyframes cardUp{0%{opacity:0;transform:translateY(60px) rotate(-2deg)}to{opacity:1;transform:translateY(0) rotate(-2deg)}}.intro-card b{font-size:18px}.intro-card span{font-size:13px;color:var(--cocoa-light)}.intro-ribbon{position:absolute;top:-12px;left:50%;transform:translate(-50%);width:60px;height:20px;background:var(--yellow);border:2px solid var(--cocoa);border-radius:6px}.invite-wrap{display:flex;justify-content:center;padding:12px 0}.invite-card{display:flex;flex-direction:column;gap:10px;width:100%;max-width:340px;text-align:left;background:#fffdf8;border:2.5px solid var(--cocoa);border-radius:16px;padding:26px 24px;box-shadow:6px 6px 0 var(--pink);position:relative;animation:cardUp .6s cubic-bezier(.3,1.6,.5,1) both;transition:transform .15s}.invite-card:active{transform:scale(.97) rotate(-1deg)}.invite-stamp{position:absolute;top:14px;right:16px;width:46px;height:46px;border-radius:50%;background:var(--mint);border:2.5px dashed var(--cocoa);background-image:radial-gradient(circle at 50% 42%,var(--cocoa) 4px,transparent 5px)}.invite-stamp:after{content:"祝";position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-weight:800;color:var(--cocoa)}.invite-kicker{font-size:11px;letter-spacing:2px;color:var(--cocoa-light)}.invite-title{font-size:22px;font-weight:800}.invite-body{font-size:14px;line-height:1.9;color:var(--cocoa)}.invite-cta{margin-top:8px;font-size:14px;font-weight:800;color:var(--pink);animation:blink 1.4s infinite}.pass-flip{perspective:1200px;width:100%;max-width:360px;margin:10px auto 0;cursor:pointer;position:relative}.pass-flip.flipped .pass-card.front{transform:rotateY(180deg)}.pass-flip.flipped .pass-card.back{transform:rotateY(360deg)}.pass-card{backface-visibility:hidden;-webkit-backface-visibility:hidden;transition:transform .7s cubic-bezier(.4,0,.2,1);border-radius:18px;border:2.5px solid var(--cocoa);padding:20px;box-shadow:6px 6px #654b4326}.pass-card.front{background:linear-gradient(160deg,#ffe9f0,#fffdf8 55%,#fff6d9)}.pass-card.back{position:absolute;top:0;right:0;bottom:0;left:0;transform:rotateY(180deg);background:var(--cocoa);color:var(--cream);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:14px}.pass-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}.pass-head b{font-size:17px;display:block}.pass-head i{font-style:normal;font-size:9px;letter-spacing:2px;color:var(--cocoa-light)}.pass-logo-ring{width:40px;height:40px;border-radius:50%;border:4px solid var(--pink);position:relative;flex-shrink:0}.pass-logo-ring:after{content:"寿";position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:14px;font-weight:800}.pass-no{margin-left:auto;font-size:10px;background:var(--yellow);border:1.5px solid var(--cocoa);border-radius:6px;padding:3px 7px;font-weight:700}.pass-rows{display:flex;flex-direction:column;gap:9px}.pass-row{display:flex;align-items:baseline;border-bottom:1.5px dashed #D9C6BB;padding-bottom:7px}.pass-row label{font-size:12px;color:var(--cocoa-light);width:74px;flex-shrink:0}.pass-row b{font-size:17px}.pass-row b.hl{background:linear-gradient(transparent 60%,var(--yellow) 60%);padding:0 4px}.pass-perf{margin:14px -20px 10px;border-top:2.5px dashed var(--cocoa);position:relative}.pass-perf:before,.pass-perf:after{content:"";position:absolute;top:-9px;width:16px;height:16px;border-radius:50%;background:var(--cream);border:2.5px solid var(--cocoa)}.pass-perf:before{left:-10px}.pass-perf:after{right:-10px}.pass-note{font-size:12px;color:var(--cocoa-light);line-height:1.7}.pass-back-heart{width:44px;height:40px;background:var(--pink);clip-path:path("M22 40 C 4 26, 0 12, 10 5 C 16 1, 22 5, 22 10 C 22 5, 28 1, 34 5 C 44 12, 40 26, 22 40 Z")}.pass-bless{font-size:17px;line-height:2;text-align:center;font-weight:600}.pass-back-sign{font-size:13px;opacity:.75}.gift-table{display:flex;gap:12px;justify-content:center;align-items:flex-end;margin:20px 0 6px;flex-wrap:nowrap}.gift-box{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;transition:transform .15s}.gift-box:active{transform:scale(.92) rotate(-3deg)}.gift-box span{font-size:12px;font-weight:700;background:#fff;border:2px solid var(--cocoa);border-radius:999px;padding:3px 10px}.gift-svg{filter:drop-shadow(3px 4px 0 rgba(101,75,67,.15));animation:floaty 2.6s ease-in-out infinite}.gift-box:nth-child(2) .gift-svg{animation-delay:.4s}.gift-box:nth-child(3) .gift-svg{animation-delay:.8s}.gift-result{display:flex;justify-content:center;margin-top:22px;min-height:200px}.award-envelope{position:relative;width:100%;max-width:330px;display:flex;flex-direction:column;align-items:center}.award-env{display:flex;flex-direction:column;align-items:center;gap:8px}.tap-hint{font-size:12px;color:var(--pink);font-weight:700;animation:blink 1.4s infinite}.award-paper{width:100%;background:#fffdf8;border:2.5px solid var(--cocoa);border-radius:10px;padding:8px;box-shadow:5px 5px #654b4326}.award-border{border:2px dashed var(--pink);border-radius:6px;padding:18px 16px;position:relative;text-align:center}.award-ribbon{font-style:normal;font-size:10px;letter-spacing:3px;color:var(--cocoa-light);display:block}.award-title{display:block;font-size:21px;margin:8px 0 4px}.award-honor{display:block;font-style:normal;font-size:15px;background:var(--yellow);border-radius:6px;padding:4px 10px;display:inline-block;margin:4px 0 10px;transform:rotate(-1.5deg);font-weight:700}.award-body{font-size:13px;line-height:1.9;text-align:justify;color:var(--cocoa)}.award-date{display:block;font-size:11px;color:var(--cocoa-light);margin-top:12px;text-align:left}.award-seal{position:absolute;right:12px;bottom:10px;width:44px;height:44px;border:2.5px solid #E25E5E;color:#e25e5e;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:800;line-height:1.2;transform:rotate(-12deg);opacity:.85;text-align:center}.slide-up{animation:slideUp .6s cubic-bezier(.3,1.4,.5,1) both}@keyframes slideUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}.fortune-cup-wrap,.gacha-wrap{display:flex;flex-direction:column;align-items:center;gap:6px}.shake{animation:shake .12s linear infinite;transform-origin:bottom center}@keyframes shake{0%{transform:rotate(-4deg)}50%{transform:rotate(4deg)}to{transform:rotate(-4deg)}}.fortune-paper{width:100%;max-width:300px;background:#fff6d9;border:2.5px solid var(--cocoa);border-radius:4px 4px 12px 12px;padding:22px 20px 34px;text-align:center;clip-path:polygon(0 0,100% 0,100% 100%,50% calc(100% - 14px),0 100%)}.fortune-top{font-size:11px;letter-spacing:3px;color:var(--cocoa-light)}.fortune-level{display:block;font-size:24px;margin:8px 0;color:#e25e5e}.fortune-line{font-size:15px;line-height:1.9}.fortune-tip{display:block;font-size:10px;color:var(--cocoa-light);margin-top:12px}.drop-in{animation:dropIn .55s cubic-bezier(.3,1.4,.5,1) both}@keyframes dropIn{0%{opacity:0;transform:translateY(-50px) rotate(-6deg)}to{opacity:1;transform:none}}.secret-paper{position:relative;width:100%;max-width:300px;background:var(--mint);border:2.5px solid var(--cocoa);border-radius:14px;padding:24px 20px 18px;box-shadow:5px 5px #654b4326;text-align:center;transform:rotate(1.5deg)}.secret-pin{position:absolute;top:-10px;left:50%;transform:translate(-50%);width:18px;height:18px;background:#f76c7c;border:2.5px solid var(--cocoa);border-radius:50%}.secret-text{font-size:15px;line-height:2}.secret-from{display:block;font-size:12px;color:var(--cocoa-light);margin-top:10px}.cake-stage{display:flex;justify-content:center;padding:6px 0 10px}.cake-svg{width:min(78vw,300px)}.cake-stage.glow{background:radial-gradient(circle at 50% 40%,rgba(255,228,154,.5),transparent 65%);border-radius:50%}.option-group{margin:10px 0}.option-group label{font-size:13px;font-weight:700;color:var(--cocoa-light);display:block;margin-bottom:7px}.option-row{display:flex;gap:8px;flex-wrap:wrap}.option-row.center{justify-content:center}.chip{background:#fff;border:2px solid #D9C6BB;border-radius:999px;padding:8px 16px;font-size:13px;font-weight:700;transition:all .15s;display:inline-flex;align-items:center;gap:6px}.chip.on{border-color:var(--cocoa);background:var(--pink);color:#fff;box-shadow:2px 2px 0 var(--cocoa);transform:rotate(-1deg)}.chip.dot-pink:before,.chip.dot-white:before,.chip.dot-yellow:before{content:"";width:12px;height:12px;border-radius:50%;border:1.5px solid var(--cocoa)}.chip.dot-pink:before{background:var(--pink-soft)}.chip.dot-white:before{background:#fff}.chip.dot-yellow:before{background:var(--yellow)}.wish-scene{text-align:center}.wish-hint{font-size:13px;color:var(--cocoa-light);margin-top:4px}.flame{animation:flicker .3s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:bottom center}@keyframes flicker{0%{transform:scale(1) rotate(-2deg)}to{transform:scale(1.12) rotate(2deg)}}.flame-hit:hover .flame,.flame-hit:active .flame{opacity:.6}.smoke circle{animation:smokeUp 1.6s ease-out infinite}@keyframes smokeUp{0%{transform:translateY(0);opacity:.7}to{transform:translateY(-20px);opacity:0}}.celebrate-scene{text-align:center}.celebrate-text{font-size:20px;line-height:1.9;margin-bottom:8px}.note-box-wrap{display:flex;justify-content:center;padding:16px 0}.note-box{display:flex;flex-direction:column;align-items:center;gap:8px;transition:transform .15s}.note-box:active{transform:scale(.95)}.note-paper-wrap{display:flex;flex-direction:column;align-items:center}.note-paper{position:relative;width:100%;max-width:320px;background:#fffdf8;border:2px solid var(--cocoa);border-radius:4px;padding:30px 22px 18px;margin-bottom:6px;box-shadow:0 8px 18px #654b431f;background-image:linear-gradient(transparent 30px,#f3e4da 31px);background-size:100% 31px;cursor:pointer;transition:all .45s cubic-bezier(.4,0,.2,1)}.note-paper.folded{max-width:190px;padding:20px 14px;background-image:none;transform:rotate(-3deg)}.note-tape{position:absolute;top:-10px;left:50%;transform:translate(-50%) rotate(-2deg);width:84px;height:22px;background:#f5a9bda6;border-left:1px dashed rgba(101,75,67,.3);border-right:1px dashed rgba(101,75,67,.3)}.note-text{font-size:15px;line-height:31px;color:var(--cocoa)}.note-sign{display:block;text-align:right;font-size:14px;font-weight:700;margin-top:10px}.note-hint,.note-folded-mark{display:block;text-align:center;font-size:11px;color:var(--cocoa-light);margin-top:12px}.printer-scene{display:flex;flex-direction:column;align-items:center}.printer-svg{z-index:2}.receipt-paper{width:min(88vw,330px);margin-top:-6px;max-height:0;overflow:hidden;transition:max-height 2.4s ease-out;filter:drop-shadow(0 8px 12px rgba(101,75,67,.15))}.receipt-paper.printed{max-height:900px}.receipt-inner{background:#fffdf8;padding:26px 22px 34px;position:relative;font-size:14px;clip-path:polygon(0 0,100% 0,100% calc(100% - 12px),95% 100%,90% calc(100% - 12px),85% 100%,80% calc(100% - 12px),75% 100%,70% calc(100% - 12px),65% 100%,60% calc(100% - 12px),55% 100%,50% calc(100% - 12px),45% 100%,40% calc(100% - 12px),35% 100%,30% calc(100% - 12px),25% 100%,20% calc(100% - 12px),15% 100%,10% calc(100% - 12px),5% 100%,0 calc(100% - 12px))}.rc-title{display:block;text-align:center;font-size:21px;letter-spacing:2px;line-height:1.5}.rc-sub{display:block;text-align:center;font-size:11px;color:var(--cocoa-light);margin-top:6px}.rc-dash{border-top:2px dashed #D9C6BB;margin:14px 0}.rc-row{display:flex;justify-content:space-between;padding:4px 0}.rc-row.big{font-size:18px;font-weight:800}.rc-love{text-align:center;color:var(--pink);font-weight:700;font-size:14px;margin-top:12px}.rc-sign{display:block;text-align:center;font-size:12px;color:var(--cocoa-light)}.receipt-actions{display:flex;flex-direction:column;align-items:center;gap:4px;margin-top:22px}.confetti-layer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:50}.confetti-layer i{position:absolute;top:-20px;border-radius:2px;animation:confettiFall linear both}@keyframes confettiFall{to{transform:translateY(110vh) rotate(540deg)}}.dots{position:fixed;bottom:18px;left:50%;transform:translate(-50%);display:flex;gap:8px;z-index:40}.dot{width:9px;height:9px;border-radius:50%;background:#e9d8c8;border:1.5px solid transparent;transition:all .3s}.dot.on{background:var(--pink);border-color:var(--cocoa);transform:scale(1.2)}@media (min-width: 700px){.stage{max-width:620px;padding-top:24px}.chapter-title{font-size:26px}.cake-svg{width:340px}}
