:root{--paper: #f7f1e3;--paper-2: #f1e8d4;--ink: #5a4a3f;--ink-soft: #8a7a6c;--line: #5a4a3f;--bamboo: #7aa874;--bamboo-dark: #5d8a5a;--accent: #d9725a;--accent-soft: #f2c1b3;--gold: #e0a94f;--card: #fffdf6;--shadow: 0 3px 0 rgba(90, 74, 63, .14);--radius: 18px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;height:100%;overscroll-behavior:none}body{font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,ui-rounded,sans-serif;background:var(--paper-2);color:var(--ink);user-select:none}#root{height:100%}.app{max-width:520px;margin:0 auto;height:100%;display:flex;flex-direction:column;background:var(--paper);position:relative;overflow:hidden;box-shadow:0 0 40px #5a4a3f1f}.topbar{display:flex;align-items:center;gap:8px;padding:10px 14px;padding-top:calc(10px + env(safe-area-inset-top));border-bottom:2px dashed rgba(90,74,63,.18)}.topbar .title{font-weight:700;font-size:16px;letter-spacing:1px;margin-right:auto}.wallet-chip{display:flex;align-items:center;gap:5px;background:var(--card);border:2px solid var(--line);border-radius:999px;padding:3px 10px 3px 6px;font-weight:700;font-size:14px;box-shadow:var(--shadow)}.settings-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--card);border:2px solid var(--line);border-radius:50%;padding:0;cursor:pointer;box-shadow:var(--shadow);transition:transform .12s ease}.settings-btn:hover{transform:rotate(30deg) scale(1.08)}.settings-btn:active{transform:scale(.92)}.scene{flex:1;position:relative;overflow:hidden}.tabbar{display:flex;border-top:2px solid var(--line);background:var(--card);padding-bottom:env(safe-area-inset-bottom)}.tabbar button{flex:1;border:none;background:none;padding:8px 0 7px;font-size:12px;font-weight:600;color:var(--ink-soft);display:flex;flex-direction:column;align-items:center;gap:2px;font-family:inherit;position:relative}.tabbar button.active{color:var(--bamboo-dark)}.tabbar button.active:after{content:"";position:absolute;top:-2px;left:25%;right:25%;height:3px;border-radius:3px;background:var(--bamboo)}.tab-emoji{font-size:22px;line-height:1}.card{background:var(--card);border:2px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.btn{font-family:inherit;border:2px solid var(--line);border-radius:999px;background:var(--card);color:var(--ink);font-size:13px;font-weight:700;padding:7px 14px;box-shadow:var(--shadow);cursor:pointer;transition:transform .06s ease}.btn:active{transform:translateY(2px);box-shadow:none}.btn.primary{background:var(--bamboo);color:#fff;border-color:var(--bamboo-dark)}.btn.accent{background:var(--accent);color:#fff;border-color:#b95a44}.btn:disabled{opacity:.45;box-shadow:none}.sheet-mask{position:absolute;inset:0;background:#5a4a3f59;z-index:40;display:flex;align-items:flex-end;animation:fadeIn .18s ease}.sheet{width:100%;max-height:78%;overflow-y:auto;background:var(--paper);border-top:2px solid var(--line);border-radius:22px 22px 0 0;padding:14px 16px calc(18px + env(safe-area-inset-bottom));animation:slideUp .26s var(--spring)}.sheet-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.sheet-title{font-size:16px;font-weight:800;letter-spacing:1px}.sheet-close{border:2px solid var(--line);background:var(--card);border-radius:999px;width:30px;height:30px;font-size:15px;font-weight:800;color:var(--ink);line-height:1;cursor:pointer}@keyframes slideUp{0%{transform:translateY(40px);opacity:.4}to{transform:translateY(0);opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.shop-tabs{display:flex;gap:8px;padding:12px 14px 4px}.shop-tabs button{flex:1;font-family:inherit;border:2px solid var(--line);background:var(--card);border-radius:999px;padding:6px 0;font-size:13px;font-weight:700;color:var(--ink-soft);cursor:pointer}.shop-tabs button.active{background:var(--bamboo);border-color:var(--bamboo-dark);color:#fff}.shop-list{padding:8px 14px 90px;display:flex;flex-direction:column;gap:10px}.shop-item{display:flex;align-items:center;gap:12px;padding:10px 12px}.shop-item .icon-box{width:52px;height:52px;flex-shrink:0;border:2px solid var(--line);border-radius:14px;background:#fff;display:flex;align-items:center;justify-content:center}.shop-item .info{flex:1;min-width:0}.shop-item .name{font-weight:800;font-size:14px}.shop-item .desc{font-size:11px;color:var(--ink-soft);margin-top:2px;line-height:1.5}.shop-item .own{font-size:11px;color:var(--bamboo-dark);font-weight:700;margin-top:2px}.buy-btn{display:flex;align-items:center;gap:4px;font-family:inherit;border:2px solid var(--line);background:var(--bamboo);color:#fff;font-weight:800;border-radius:999px;padding:6px 12px;font-size:13px;box-shadow:var(--shadow);cursor:pointer;white-space:nowrap}.buy-btn:active{transform:translateY(1px);box-shadow:none}.buy-btn:disabled{opacity:.4;box-shadow:none}.coll-tabs{display:flex;gap:6px;padding:12px 14px 6px;flex-wrap:wrap}.coll-tabs button{font-family:inherit;border:2px solid var(--line);background:var(--card);border-radius:999px;padding:5px 12px;font-size:12px;font-weight:700;color:var(--ink-soft);cursor:pointer}.coll-tabs button.active{background:var(--accent);border-color:#b95a44;color:#fff}.coll-tabs .tab-badge{display:inline-block;font-size:10px;font-weight:800;opacity:.75;margin-left:2px;font-variant-numeric:tabular-nums}.coll-tabs button.active .tab-badge{opacity:.95;color:#fff}.coll-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:8px 14px 90px}.coll-card{border:2px solid var(--line);border-radius:14px;background:var(--card);padding:8px 6px;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;box-shadow:var(--shadow)}.coll-card.locked{opacity:.55;filter:grayscale(.8)}.coll-card .c-name{font-size:11px;font-weight:700;line-height:1.3}.coll-card .c-sub{font-size:10px;color:var(--ink-soft)}.coll-count{padding:4px 16px 0;font-size:12px;color:var(--ink-soft);font-weight:600}.mail-item{display:flex;gap:10px;padding:10px;border:2px solid var(--line);border-radius:14px;background:var(--card);margin-bottom:8px;align-items:center}.mail-item.unread{background:#fdf6e4;border-color:var(--gold)}.mail-thumb{width:44px;height:44px;border-radius:10px;border:2px solid var(--line);overflow:hidden;flex-shrink:0;background:#fff}.shoot-btn{position:absolute;border:none;background:none;padding:0;cursor:pointer;animation:sprout .4s ease;filter:drop-shadow(0 3px 2px rgba(90,74,63,.25))}.shoot-btn:active{transform:scale(1.25) rotate(-6deg)}@keyframes sprout{0%{transform:scale(.3);opacity:0}to{transform:scale(1);opacity:1}}.panda-wrap{animation:pandaBreathe 3.2s ease-in-out infinite;transform-origin:50% 80%}.panda-wrap.anim-eat{animation:pandaEat .9s ease-in-out infinite}.panda-wrap.anim-sleep{animation:pandaSleep 3.8s ease-in-out infinite}.panda-wrap.anim-sway{animation:pandaSway 2.6s ease-in-out infinite}@keyframes pandaBreathe{0%,to{transform:scale(1)}50%{transform:scale(1.025)}}@keyframes pandaEat{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(1.5px) scale(1.02,.985)}}@keyframes pandaSleep{0%,to{transform:scale(1)}50%{transform:scale(1.04,.96)}}@keyframes pandaSway{0%,to{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}.zzz{animation:zzz 2.6s ease-in-out infinite}@keyframes zzz{0%{opacity:0;transform:translateY(4px) scale(.7)}30%{opacity:1}to{opacity:0;transform:translate(8px,-14px) scale(1.15)}}.speech{position:absolute;background:#fff;border:2px solid var(--line);border-radius:14px;padding:8px 12px;font-size:12px;font-weight:600;box-shadow:var(--shadow);max-width:200px;line-height:1.6;z-index:10;animation:fadeIn .25s ease}.speech:after{content:"";position:absolute;bottom:-8px;left:26px;width:12px;height:12px;background:#fff;border-right:2px solid var(--line);border-bottom:2px solid var(--line);transform:rotate(45deg)}.toast-wrap{position:absolute;top:64px;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:6px;z-index:90;pointer-events:none}.toast{background:#5a4a3feb;color:#fff;font-size:13px;font-weight:600;border-radius:999px;padding:8px 18px;animation:toastIn .3s var(--spring),toastOut .3s ease 2.6s forwards;max-width:80%}@keyframes toastIn{0%{opacity:0;transform:translateY(-8px)}}@keyframes toastOut{to{opacity:0;transform:translateY(-8px)}}.photo-frame{background:#fffdf6;border:2px solid var(--line);border-radius:8px;padding:6px 6px 8px;box-shadow:var(--shadow)}.photo-frame .photo-caption{font-size:11px;text-align:center;margin-top:5px;font-weight:700;color:var(--ink)}.photo-big{width:100%;aspect-ratio:4/3;border:2px solid var(--line);border-radius:6px;overflow:hidden}.slot-row{display:flex;gap:10px;justify-content:center;padding:8px 0;flex-wrap:wrap}.slot{width:64px;height:64px;border:2px dashed var(--ink-soft);border-radius:14px;background:#fff9;display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;flex-direction:column;gap:2px}.slot.filled{border-style:solid;border-color:var(--line);background:#fff}.slot .slot-label{font-size:9px;color:var(--ink-soft);font-weight:700}.inv-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:6px 0 4px}.inv-item{border:2px solid var(--line);border-radius:12px;background:var(--card);padding:6px 4px;display:flex;flex-direction:column;align-items:center;gap:3px;cursor:pointer}.inv-item:active{transform:scale(.95)}.inv-item .i-name{font-size:10px;font-weight:700;text-align:center;line-height:1.25}.inv-item .i-qty{font-size:10px;color:var(--bamboo-dark);font-weight:800}.inv-tip{font-size:12px;color:var(--ink-soft);text-align:center;padding:10px 4px;line-height:1.7}.dev-bar{position:absolute;bottom:74px;left:8px;right:8px;display:flex;gap:6px;z-index:60;justify-content:center}.dev-bar button{font-family:inherit;font-size:11px;font-weight:700;border:2px solid #b95a44;background:#fff3ec;color:#b95a44;border-radius:999px;padding:4px 10px;cursor:pointer}.status-strip{position:absolute;top:10px;left:50%;transform:translate(-50%);background:#fffdf6eb;border:2px solid var(--line);border-radius:999px;padding:5px 16px;font-size:12px;font-weight:700;z-index:8;box-shadow:var(--shadow);white-space:nowrap}.section-title{font-size:13px;font-weight:800;letter-spacing:2px;color:var(--ink-soft);text-align:center;padding:14px 0 4px}.empty-tip{text-align:center;color:var(--ink-soft);font-size:13px;padding:40px 20px;line-height:2}.mail-dot{position:absolute;top:2px;right:50%;margin-right:-26px;width:9px;height:9px;border-radius:50%;background:var(--accent);border:1.5px solid #fff}.friend-tag{display:inline-flex;align-items:center;gap:3px;font-size:10px;background:var(--paper-2);border:1.5px solid var(--line);border-radius:999px;padding:1px 7px;font-weight:700}.lottery-modal{text-align:center}.lottery-result{font-size:20px;font-weight:800;padding:26px 0;animation:pop .4s cubic-bezier(.34,1.56,.64,1)}@keyframes pop{0%{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}.specialty-pick{display:flex;align-items:center;gap:10px;padding:8px 10px;border:2px solid var(--line);border-radius:12px;background:var(--card);margin-bottom:8px;cursor:pointer}.specialty-pick:active{transform:scale(.98)}.visitor-note{font-size:12px;color:var(--ink-soft);line-height:1.8;text-align:center;padding:6px 10px 10px}.season-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:30}.season-layer span{position:absolute;top:-8%;font-size:15px;opacity:.8;animation-name:seasonFall;animation-timing-function:linear;animation-iteration-count:infinite}.season-firefly span{top:30%;font-size:12px;animation-name:fireflyDrift;opacity:.7}@keyframes seasonFall{0%{transform:translateY(0) translate(0) rotate(0)}50%{transform:translateY(45vh) translate(24px) rotate(180deg)}to{transform:translateY(92vh) translate(-12px) rotate(360deg);opacity:.25}}@keyframes fireflyDrift{0%{transform:translate(0);opacity:.15}30%{opacity:.9}60%{transform:translate(30px,-34px);opacity:.3}to{transform:translate(-14px,20px);opacity:.15}}@media (prefers-reduced-motion: reduce){.season-layer{display:none}}.name-input{flex:1;min-width:0;padding:10px 12px;border:2px solid var(--line);border-radius:10px;background:var(--card);font-size:14px;font-weight:700;color:var(--ink);outline:none}.name-input:focus{border-color:var(--accent)}.code-area{width:100%;box-sizing:border-box;padding:10px;border:2px solid var(--line);border-radius:10px;background:var(--card);font-size:11px;font-family:monospace;color:var(--ink);word-break:break-all;resize:vertical;outline:none}.code-area:focus{border-color:var(--accent)}.tut-glow{position:relative;animation:tutGlow 1.6s ease-in-out infinite;border-radius:12px}@keyframes tutGlow{0%,to{box-shadow:0 0 #d9725a8c,0 0 14px 2px #f8d8788c}50%{box-shadow:0 0 0 7px #d9725a00,0 0 20px 5px #f8d878cc}}.tut-bubble{position:fixed;width:168px;padding:9px 12px;background:#fffdf6;border:2.5px solid #5a4a3f;border-radius:12px;box-shadow:0 3px #5a4a3f29;font-size:13px;font-weight:700;line-height:1.6;color:var(--ink);z-index:95;pointer-events:none;animation:tutBubbleIn .45s cubic-bezier(.34,1.56,.64,1)}@keyframes tutBubbleIn{0%{transform:translateY(8px) scale(.85);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.tut-arrow{position:absolute;width:12px;height:12px;background:#fffdf6;border-right:2.5px solid #5a4a3f;border-bottom:2.5px solid #5a4a3f;transform:translateX(-50%,-50%) rotate(45deg)}.tut-arrow.down{bottom:-8px}.tut-arrow.up{top:-8px;transform:translateX(-50%,-50%) rotate(225deg)}.float-num{position:fixed;transform:translate(-50%);font-size:17px;font-weight:900;color:#4f8a4a;text-shadow:0 1px 0 #fff,0 0 6px rgba(255,255,255,.9);pointer-events:none;z-index:90;animation:floatUp 1.15s ease-out forwards}@keyframes floatUp{0%{opacity:0;margin-top:6px}18%{opacity:1}to{opacity:0;margin-top:-44px}}.panda-leaving{animation:pandaLeave 9.5s cubic-bezier(.45,.05,.75,.4) forwards}@keyframes pandaLeave{0%{transform:translate(-50%) translate(0);opacity:1}72%{transform:translate(-50%) translate(88px);opacity:1}82%{transform:translate(-50%) translate(96px);opacity:.9}to{transform:translate(-50%) translate(104px);opacity:0}}.panda-returning{animation:pandaReturn 3.8s cubic-bezier(.3,.7,.4,1) forwards}@keyframes pandaReturn{0%{transform:translate(-50%) translate(120px);opacity:0}12%{opacity:1}to{transform:translate(-50%) translate(0);opacity:1}}.buy-btn.bought:after{content:"✓";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:15px;color:#4f8a4a;background:inherit}.buy-btn.bought{position:relative}.panda-wrap svg{animation:microSway 7s ease-in-out infinite;transform-origin:50% 80%}@keyframes microSway{0%,86%,to{transform:rotate(0)}90%{transform:rotate(-2.2deg)}94%{transform:rotate(1.4deg)}}.anim-sleep svg{animation:sleepBreathe 3.4s ease-in-out infinite;transform-origin:50% 85%}@keyframes sleepBreathe{0%,to{transform:scaleY(1) scale(1)}50%{transform:scaleY(1.025) scale(1.008)}}.anim-eat svg{animation:busyBob 2.8s ease-in-out infinite;transform-origin:50% 90%}@keyframes busyBob{0%,to{transform:translateY(0)}50%{transform:translateY(-2.5px)}}@media (prefers-reduced-motion: reduce){.panda-leaving,.panda-returning,.float-num,.tut-bubble,.panda-wrap svg,.anim-sleep svg,.anim-eat svg,.tut-glow,.panda-actor,.panda-actor .pa-part,.panda-actor .pa-item,.panda-actor .pa-page,.panda-actor .pa-mouth-chew,.panda-actor .pa-shadow,.panda-actor .pa-root{animation-duration:.01s!important;animation-iteration-count:1!important}}.shop-stage{position:absolute;inset:0;overflow:hidden;background:#f0e2c4}.shop-bg{position:absolute;inset:0;width:100%;height:100%}.shop-tabs.shop-tabs-wood{position:absolute;top:0;left:0;right:0;z-index:20;padding:8px 10px}.shop-tabs-wood button{background:#f6e3b8;border-color:#5a4a3f;border-radius:8px;box-shadow:0 2px #5a4a3f38;transform:rotate(-1deg)}.shop-tabs-wood button:nth-child(2){transform:rotate(1deg)}.shop-tabs-wood button.active{background:#d9725a;color:#fffdf6}.shop-tabs-wood button.lottery-tag{flex:.8;background:#fffdf6;font-size:12px}.goods-spot{position:absolute;transform:translate(-50%,-50%);width:78px;height:60px;padding:2px 4px 3px;border:none;background:#fffdf6db;border-radius:6px;box-shadow:0 1px 3px #5a4a3f2e;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:2px;transition:transform .12s ease;z-index:5}.goods-spot:hover{transform:translate(-50%,-52%) scale(1.06)}.goods-spot:active{transform:translate(-50%,-50%) scale(.94)}.goods-spot .goods-icon{display:flex;align-items:center;justify-content:center;width:30px;height:30px;filter:drop-shadow(0 1px 0 rgba(90,74,63,.22))}.goods-spot .goods-tag{display:flex;flex-direction:column;align-items:center;justify-content:center;width:max-content;min-width:50px;max-width:76px;height:26px;padding:1px 7px 0;background:linear-gradient(180deg,#d9b27a,#c9a06b);border:1.6px solid #5a4a3f;border-radius:3px;box-shadow:0 2px #5a4a3f47,inset 0 1px #fffdf659;font-family:Long Cang,Ma Shan Zheng,Kaiti SC,STKaiti,KaiTi,cursive;pointer-events:none;line-height:1}.goods-spot .goods-tag-name{font-size:11px;font-weight:700;color:#3d2e23;letter-spacing:.5px;white-space:nowrap;max-width:none}.goods-spot .goods-tag-price{font-size:10px;font-weight:800;color:#8a4a2a;margin-top:1px;font-family:inherit}.goods-spot .own-bubble{position:absolute;right:-7px;top:-5px;background:#fffdf6;border:1.6px solid #5a4a3f;border-radius:8px;font-size:9px;font-weight:800;padding:0 4px;color:#5a4a3f;line-height:1.5}.paper-bag{position:absolute;left:12px;bottom:12px;z-index:24;filter:drop-shadow(0 2px 0 rgba(90,74,63,.18))}.paper-bag.bounce{animation:bagBounce .5s ease}@keyframes bagBounce{0%,to{transform:scale(1)}35%{transform:scale(1.16,.88)}65%{transform:scale(.92,1.1)}}.paper-bag .bag-count{position:absolute;right:-6px;top:-6px;min-width:18px;height:18px;border-radius:9px;background:#d9725a;color:#fffdf6;border:2px solid #fffdf6;font-size:10px;font-weight:800;text-align:center;line-height:15px;padding:0 3px}.fly-item{position:fixed;z-index:99;pointer-events:none;animation:flyToBag .8s cubic-bezier(.5,-.15,.72,.6) forwards}@keyframes flyToBag{0%{transform:translate(-50%,-50%) scale(1) rotate(0);opacity:1}25%{transform:translate(calc(-50% + var(--dx) * .18),calc(-50% + var(--dy) * .18 - 26px)) scale(1.08) rotate(-12deg);opacity:1}70%{opacity:1}to{transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(.32) rotate(18deg);opacity:0}}.detail-mask{position:absolute;inset:0;z-index:28;background:#3d343024}.shop-detail{position:absolute;left:12px;right:12px;bottom:12px;z-index:30;background:#fffdf6;border:2.5px solid #5a4a3f;border-radius:14px;padding:12px 14px;display:flex;gap:12px;align-items:center;box-shadow:0 4px #5a4a3f2e;animation:detailUp .26s cubic-bezier(.34,1.3,.64,1)}@keyframes detailUp{0%{transform:translateY(26px);opacity:0}to{transform:translateY(0);opacity:1}}.shop-detail .detail-icon{flex:0 0 54px;height:54px;display:flex;align-items:center;justify-content:center;background:#f6ecd9;border:2px solid #5a4a3f;border-radius:10px}.shop-detail .detail-info{flex:1;min-width:0}.shop-detail .detail-info .name{font-size:14px;font-weight:800;color:var(--ink)}.shop-detail .detail-info .desc{font-size:11px;color:var(--ink-soft);margin-top:2px;line-height:1.5}.shop-detail .detail-info .sub{font-size:10px;color:#8a7a6c;margin-top:3px;font-weight:700}.price-tag{flex:0 0 auto;font-family:inherit;display:inline-flex;align-items:center;gap:4px;background:#f6e3b8;border:2px dashed #b9852f;border-radius:9px;padding:8px 13px;font-size:15px;font-weight:800;color:#6b4f1d;cursor:pointer;transform:rotate(-3deg);box-shadow:0 2px #b9852f40;transition:transform .16s var(--spring)}.price-tag:active{transform:rotate(-3deg) scale(.94)}.price-tag.broke{animation:tagWorry 1.9s ease-in-out infinite}.price-tag.deny{animation:tagDeny .6s ease-in-out 1}@keyframes tagWorry{0%,to{transform:rotate(-3deg)}50%{transform:rotate(1.5deg)}}@keyframes tagDeny{0%,to{transform:rotate(-3deg)}18%{transform:rotate(-10deg)}42%{transform:rotate(5deg)}66%{transform:rotate(-8deg)}85%{transform:rotate(2deg)}}.panda-actor{display:block;transform-origin:50% 80%;animation:microSway 9s ease-in-out infinite}.panda-actor .pa-part{will-change:transform}.door-knock{transform-box:fill-box;transform-origin:50% 100%;animation:doorShake .55s ease-in-out 1}@keyframes doorShake{0%,to{transform:rotate(0)}25%{transform:rotate(2.4deg)}50%{transform:rotate(-1.6deg)}75%{transform:rotate(1deg)}}.panda-actor .pa-head{transform-origin:60px 78px;transition:transform 1.2s ease-in-out}.panda-actor.ph-look .pa-head{transform:rotate(-6deg)}.panda-actor.ph-tilt .pa-head{transform:rotate(8deg) translateY(1px)}.panda-actor.ph-check .pa-head{transform:rotate(13deg) translateY(3px)}.panda-actor.ph-sleepy .pa-head{transform:rotate(11deg) translateY(4px);transition:transform 2.2s ease-in}.panda-actor.mode-read.ph-wake .pa-head{animation:paHeadShake .9s ease-in-out 1}@keyframes paHeadShake{0%,to{transform:rotate(0)}25%{transform:rotate(-7deg)}60%{transform:rotate(5deg)}}.panda-actor .pa-ear{transform-box:fill-box;transform-origin:50% 88%}.panda-actor.ph-ear .pa-ear-r{animation:paEarTwitch .8s ease-in-out 1}.panda-actor.ph-ear .pa-ear-l{animation:paEarTwitch .8s ease-in-out .12s 1}.panda-actor.mode-sleep.ph-ear .pa-ear-lying-r{animation:paEarTwitch .9s ease-in-out 1}.panda-actor.mode-sleep.ph-ear .pa-ear-lying-l{animation:paEarTwitch .9s ease-in-out .15s 1}@keyframes paEarTwitch{0%,to{transform:rotate(0)}30%{transform:rotate(-14deg)}55%{transform:rotate(6deg)}75%{transform:rotate(-8deg)}}.panda-actor .pa-arm-r{transform-origin:82px 80px}.panda-actor .pa-arm-l{transform-origin:38px 80px}.panda-actor .pa-arm{transition:transform .55s var(--spring)}.panda-actor.mode-write .pa-arm-r{animation:paPenStroke 1.15s ease-in-out infinite}.panda-actor.mode-write .pa-arm-l{transform:rotate(34deg)}.panda-actor.mode-write.ph-pause .pa-arm-r{animation:none;transform:rotate(30deg)}.panda-actor.mode-write.ph-scratch .pa-arm-r{animation:paScratch 2s ease-in-out 1}.panda-actor.mode-write.ph-scratch .pa-head{transform:rotate(-5deg) translateY(-1px)}@keyframes paPenStroke{0%,to{transform:rotate(36deg)}22%{transform:rotate(43deg)}48%{transform:rotate(33deg)}72%{transform:rotate(44deg)}}@keyframes paScratch{0%{transform:rotate(36deg)}30%{transform:rotate(-88deg)}48%{transform:rotate(-80deg)}62%{transform:rotate(-94deg)}78%{transform:rotate(-82deg)}to{transform:rotate(36deg)}}.panda-actor.mode-eat .pa-arm-r{animation:paBite 2.5s ease-in-out infinite}.panda-actor.mode-eat.ph-chew .pa-arm-r{animation:none;transform:rotate(-68deg)}.panda-actor.mode-eat.ph-rest .pa-arm-r{animation:none;transform:rotate(-20deg)}.panda-actor .pa-mouth-chew{display:none}.panda-actor.mode-eat.ph-chew .pa-mouth-chew{display:block;animation:paChew .42s ease-in-out infinite;transform-box:fill-box;transform-origin:50% 30%}.panda-actor.mode-eat.ph-chew .pa-mouth-rest{display:none}.panda-actor.mode-eat.ph-chew .pa-item,.panda-actor.mode-eat.ph-rest .pa-item{opacity:0}@keyframes paBite{0%{transform:rotate(-28deg)}18%{transform:rotate(42deg)}30%{transform:rotate(42deg)}55%{transform:rotate(-72deg)}72%{transform:rotate(-64deg)}to{transform:rotate(-28deg)}}@keyframes paChew{0%,to{transform:scaleY(1)}50%{transform:scaleY(.45)}}.panda-actor.mode-drink .pa-arm-r{transform:rotate(-30deg)}.panda-actor.mode-drink.ph-sip .pa-arm-r{animation:paSip 2.6s ease-in-out 1}.panda-actor.mode-drink.ph-sip .pa-item{animation:paSipTilt 2.6s ease-in-out 1;transform-box:fill-box;transform-origin:50% 80%}@keyframes paSip{0%{transform:rotate(-30deg)}35%{transform:rotate(-78deg)}60%,85%{transform:rotate(-82deg)}to{transform:rotate(-30deg)}}@keyframes paSipTilt{0%,30%{transform:rotate(0)}60%,85%{transform:rotate(22deg)}to{transform:rotate(0)}}.panda-actor.mode-read .pa-arm-r{transform:rotate(-26deg)}.panda-actor.mode-read .pa-arm-l{transform:rotate(26deg)}.panda-actor.mode-read .pa-head{animation:paReadNod 6s ease-in-out infinite}.panda-actor.mode-read.ph-sleepy .pa-head{animation:none}.panda-actor .pa-page{transform-origin:78px 92px}.panda-actor.ph-flip .pa-page{animation:paPageFlip 1.1s ease-in 1}@keyframes paReadNod{0%,to{transform:rotate(0)}40%{transform:rotate(4deg) translateY(1px)}70%{transform:rotate(2deg)}}@keyframes paPageFlip{0%{transform:scaleX(1) translate(0)}50%{transform:scaleX(.2) translate(-6px)}to{transform:scaleX(1) translate(-12px)}}.panda-actor.mode-craft .pa-arm-r,.panda-actor.mode-carve .pa-arm-r{animation:paCarve .8s ease-in-out infinite}.panda-actor.mode-craft.ph-inspect .pa-arm-r,.panda-actor.mode-carve.ph-inspect .pa-arm-r{animation:none;transform:rotate(-46deg)}.panda-actor.mode-craft.ph-inspect .pa-head,.panda-actor.mode-carve.ph-inspect .pa-head{transform:rotate(-7deg)}@keyframes paCarve{0%,to{transform:rotate(24deg)}50%{transform:rotate(38deg)}}.panda-actor.ph-sigh .pa-root{animation:paSigh 2.2s ease-in-out 1}@keyframes paSigh{0%,to{transform:scale(1)}45%{transform:scale(1.035,.975)}}.panda-actor.mode-stretch .pa-arm{transition:transform .9s cubic-bezier(.34,1.4,.64,1)}.panda-actor.mode-stretch.ph-up .pa-arm-r{transform:rotate(-95deg)}.panda-actor.mode-stretch.ph-up .pa-arm-l{transform:rotate(95deg)}.panda-actor.mode-stretch.ph-hold .pa-arm-r{transform:rotate(-100deg)}.panda-actor.mode-stretch.ph-hold .pa-arm-l{transform:rotate(100deg)}.panda-actor.mode-pack .pa-arm-r{transition:transform .5s ease}.panda-actor.mode-pack.ph-packItem .pa-arm-r{animation:paPackReach 2.8s ease-in-out 1}.panda-actor.mode-pack .pa-item{transition:opacity .3s}.panda-actor.mode-pack:not(.ph-packItem) .pa-item{opacity:0}.panda-actor.ph-wear .pa-root{animation:paBend 4.5s ease-in-out 1}.panda-actor .pa-ground-bag{transition:opacity .6s}.panda-actor.ph-wear .pa-ground-bag,.panda-actor.has-back-bag .pa-ground-bag{opacity:0}.panda-actor .pa-back-bag{opacity:0;transition:opacity .8s}.panda-actor.has-back-bag .pa-back-bag{opacity:1}@keyframes paPackReach{0%{transform:rotate(-24deg)}25%{transform:rotate(46deg)}45%{transform:rotate(46deg)}70%{transform:rotate(6deg)}to{transform:rotate(-24deg)}}@keyframes paBend{0%,to{transform:translateY(0)}30%,65%{transform:translateY(5px)}}.panda-actor.mode-sleep{animation:sleepBreathe 3.4s ease-in-out infinite;transform-origin:50% 85%}.panda-actor.mode-sleep .pa-root{transition:transform 2.2s ease-in-out}.panda-actor.mode-sleep.ph-roll .pa-root{transform:translate(4px)}:root{--spring: cubic-bezier(.34, 1.56, .64, 1)}.paper-grain{position:fixed;inset:0;z-index:2147483000;pointer-events:none;opacity:.05;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='240' height='240' filter='url(%23n)'/></svg>");background-size:240px 240px}.panda-actor .pa-shadow{fill:#5a4a3f;opacity:.16;transform-box:fill-box;transform-origin:50% 50%;animation:paShadowBreathe 3.6s ease-in-out infinite}@keyframes paShadowBreathe{0%,to{transform:scaleX(1);opacity:.16}50%{transform:scaleX(.94);opacity:.12}}.panda-actor:not(.mode-sleep):not(.ph-wear) .pa-root{transform-box:fill-box;transform-origin:50% 96%;animation:paIdleBreathe 3.6s ease-in-out infinite}@keyframes paIdleBreathe{0%,to{transform:scale(1)}50%{transform:scale(1.012,1.02)}}.scene{position:relative}.scene.mood-dawn:after,.scene.mood-dusk:after,.scene.mood-night:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:40}.scene.mood-dawn:after{background:linear-gradient(180deg,#ffbac821,#a8baff17 55%,#ffecd20d)}.scene.mood-dusk:after{background:linear-gradient(180deg,#ff985826,#ff766014 55%,#785a8c12)}.scene.mood-night:after{background:linear-gradient(180deg,#36407c42,#262c5829 50%,#5a466e1a)}.panda-spark{position:absolute;width:8px;height:8px;border-radius:50%;background:radial-gradient(circle,#fff3c4 25%,#ffd8808c 55%,#ffd88000 78%);pointer-events:none;z-index:30;animation:sparkFly .62s cubic-bezier(.2,.7,.4,1) forwards}@keyframes sparkFly{0%{transform:translate(0) scale(.5);opacity:0}18%{opacity:1}to{transform:translate(var(--dx, 0),var(--dy, -30px)) scale(.12);opacity:0}}.panda-actor.poked .pa-ear-l{animation:paEarTwitch .55s ease-in-out 1}.panda-actor.poked .pa-ear-r{animation:paEarTwitch .55s ease-in-out .12s 1}
