:root{--bg:#fffdf6;--ink:#4a3f35;--ink2:#8a7a66;--line:#eadfcc;--wood:#a9825d;--wood2:#8f6b43;--sky:#9cc8ee;--night:#1a2340;--accent:#e8875a;--love:#ef7d9d;--ok:#7fb069;--warn:#d05a5a;--card:#fff;--chip:#fdf6e5}*{box-sizing:border-box;margin:0}html,body{height:100%}body{color:var(--ink);background:#efe9dc;font:15px/1.6 system-ui,PingFang SC,Microsoft YaHei,sans-serif}#shell{background:var(--bg);flex-direction:column;max-width:480px;height:100dvh;margin:0 auto;display:flex;box-shadow:0 0 24px #0002}#screen{-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}#tabbar{border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);background:#fffefa;display:flex}#tabbar[hidden]{display:none}#tabbar button{color:var(--ink2);cursor:pointer;background:0 0;border:0;flex:1;padding:7px 0 6px;font-size:19px}#tabbar button span{font-size:11px;display:block}#tabbar button.on{color:var(--accent)}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;margin:12px 14px;padding:16px 18px}.btn{background:var(--chip);color:#6b5230;cursor:pointer;border:1px solid #c9b48a;border-radius:10px;padding:9px 18px;font-size:15px;display:inline-block}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.block{text-align:center;width:100%;display:block}.btn:disabled{opacity:.5;cursor:default}input,select{width:100%;color:var(--ink);background:#fff;border:1px solid #d8cfc0;border-radius:10px;padding:10px 12px;font-size:15px}label{color:var(--ink2);margin:12px 0 4px;font-size:13px;display:block}.err{color:var(--warn);min-height:20px;margin-top:8px;font-size:13px}.muted{color:var(--ink2);font-size:12.5px}h1{font-size:22px}h2{font-size:18px}h3{font-size:15.5px}.auth-hero{text-align:center;padding:52px 0 8px}.auth-hero .logo{font-size:56px}.auth-tabs{gap:8px;margin:4px 14px 0;display:flex}.auth-tabs button{border:1px solid var(--line);color:var(--ink2);cursor:pointer;background:0 0;border-bottom:0;border-radius:10px 10px 0 0;flex:1;padding:9px;font-size:15px}.auth-tabs button.on{background:var(--card);color:var(--ink);font-weight:600}.preview{justify-content:center;min-height:150px;padding:10px 0 2px;display:flex}.optrow{flex-wrap:wrap;gap:8px;display:flex}.optrow button{border:1.5px solid var(--line);cursor:pointer;color:var(--ink);background:#fff;border-radius:10px;padding:6px 12px;font-size:13.5px}.optrow button.on{border-color:var(--accent);background:#fdf0e8}.placeholder{text-align:center;color:var(--ink2);padding:60px 20px}.statbar{gap:10px;margin:10px 14px;display:flex}.statbar .st{background:var(--chip);text-align:center;border-radius:10px;flex:1;padding:8px 10px}.statbar .st b{color:var(--ink);font-size:18px;display:block}.statbar .st span{color:var(--ink2);font-size:11.5px}.sbStage{aspect-ratio:16/9;background:#0e1a2e;border-radius:12px;width:100%;position:relative;overflow:hidden}.sbStage svg{width:100%;height:100%;display:block}.sbCap{text-align:center;color:#5c4f3d;min-height:34px;padding:10px 4px 4px;font-size:13px;line-height:1.6}.sbProg{background:#f3ecdd;border-radius:99px;height:6px;margin-top:4px;overflow:hidden}.sbProgBar{background:#f59e0b;width:0;height:100%;transition:width .2s linear}.sbReplay{width:100%;margin-top:10px}.callStage{aspect-ratio:16/9;background:#000;border-radius:14px;width:100%;position:relative;overflow:hidden}.callStage svg{width:100%;height:100%;display:block}@keyframes scrollX{0%{transform:translate(0)}to{transform:translate(-450px)}}@keyframes scrollXslow{0%{transform:translate(0)}to{transform:translate(-450px)}}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes shake{0%,to{transform:translateY(0)}50%{transform:translateY(2px)}}@keyframes popIn{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes flash{0%{opacity:0}12%{opacity:1}40%{opacity:0}to{opacity:0}}@keyframes beam{0%,to{transform:rotate(-18deg)}50%{transform:rotate(18deg)}}@keyframes floatUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-46px)}}@keyframes climb{0%{transform:translate(40px,150px)}to{transform:translate(300px,52px)}}@keyframes walkIn{0%{transform:translate(-70px)}to{transform:translate(150px)}}@keyframes liftK{0%{transform:translate(30px,150px)rotate(0)}to{transform:translate(330px,26px)rotate(-12deg)}}@keyframes dashK{0%{transform:translate(480px)}to{transform:translate(-560px)}}@keyframes ringShakeK{0%,to{transform:rotate(0)}25%{transform:rotate(-9deg)}75%{transform:rotate(9deg)}}.aScroll{animation:4s linear infinite scrollX}.aScrollSlow{animation:9s linear infinite scrollXslow}.aBob{animation:1.1s ease-in-out infinite bob}.aShake{animation:.5s linear infinite shake}.aPop{animation:.45s both popIn}.aFlash{animation:2.4s both flash}.aBeam{transform-origin:50% 0;animation:1.6s ease-in-out infinite beam}.aNote{animation:2s linear infinite floatUp}.aClimb{animation:2.4s ease-in-out both climb}.aWalk{animation:2.2s ease-in-out both walkIn}.aLift{animation:2.6s ease-in both liftK}.aDash{animation:2.3s linear infinite dashK}.aRing{transform-box:fill-box;transform-origin:50%;animation:.4s linear infinite ringShakeK}#shell{position:relative}#screen.canvas{overflow:hidden}#homeWrap{height:100%;position:relative;overflow:hidden}#house{touch-action:none;cursor:grab;background:#caa76f;position:absolute;inset:0;overflow:hidden}#house.dragging{cursor:grabbing}#house svg{-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}#house [data-el]{cursor:pointer}.hud{z-index:8;pointer-events:none;position:absolute}.hud>*{pointer-events:auto}#hudMood{background:#fffdf6eb;border-radius:14px;align-items:center;gap:9px;padding:8px 10px;display:flex;top:10px;left:10px;box-shadow:0 4px 16px #3c280a2e}#hudMood .face{font-size:30px}.hudBar{width:86px;margin:2px 0}.hudBar .hl{color:#8c7f6e;justify-content:space-between;font-size:9.5px;display:flex}.hudBar .ht{background:#eee3cd;border-radius:99px;height:5px;overflow:hidden}.hudBar .hf{border-radius:99px;height:100%;transition:width .4s}#hudRight{flex-direction:column;align-items:flex-end;gap:6px;display:flex;top:10px;right:10px}.hchip{color:#8c6f3f;background:#fffdf6eb;border-radius:99px;padding:5px 11px;font-size:11.5px;font-weight:700;box-shadow:0 4px 14px #3c280a29}.hchip.btn{cursor:pointer;-webkit-user-select:none;user-select:none;border:0;display:inline-block}#hudHint{color:#f4ead2;white-space:nowrap;background:#2f271ab8;border-radius:99px;padding:5px 13px;font-size:11px;bottom:12px;left:50%;transform:translate(-50%)}#hudLog{bottom:12px;right:10px}#hudLog>button{color:#8c6f3f;cursor:pointer;background:#fffdf6f0;border:0;border-radius:12px;padding:8px 12px;font-size:12px;font-weight:700;box-shadow:0 4px 14px #3c280a33}#logPanel{z-index:9;background:#fffdf6f7;border-radius:14px;width:280px;max-height:48%;padding:12px;position:absolute;bottom:52px;right:10px;overflow-y:auto;box-shadow:0 10px 30px #3c280a4d}#logPanel h4{margin-bottom:8px;font-size:12.5px}.logItem{border-bottom:1px dashed #eee3cd;padding:6px 0;font-size:12px;line-height:1.6}.logItem .ld{color:#b0730f;font-size:11px;font-weight:700}.hidden{display:none!important}#sheet{z-index:30;background:#fffdf6;border-radius:18px 18px 0 0;max-height:72%;padding:14px 14px 18px;animation:.28s sheetUp;position:absolute;bottom:0;left:0;right:0;overflow-y:auto;box-shadow:0 -10px 40px #32230a40}#sheet h3{margin-bottom:4px;font-size:14px}#sheet .sub{color:#8c7f6e;margin-bottom:10px;font-size:11.5px}#sheetClose{cursor:pointer;background:#f6efe2;border:0;border-radius:99px;width:26px;height:26px;position:absolute;top:10px;right:12px}.sheetBtns{gap:8px;display:flex}.sheetBtns .btn{text-align:center;flex:1;padding:9px 6px;font-size:13px}#modalWrap{z-index:40;background:#32230a73;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}#modalBox{background:#fff;border-radius:18px;width:min(400px,92%);max-height:86%;padding:18px;position:relative;overflow-y:auto;box-shadow:0 16px 60px #28190566}#modalBox h3{margin-bottom:12px;font-size:16px}#modalClose{cursor:pointer;z-index:2;background:#f6efe2;border:0;border-radius:99px;width:28px;height:28px;position:absolute;top:10px;right:12px}#toasts{z-index:60;pointer-events:none;flex-direction:column;align-items:center;gap:7px;width:90%;display:flex;position:absolute;bottom:70px;left:50%;transform:translate(-50%)}.toast{color:#fff;text-align:center;background:#3c2c10ed;border-radius:99px;max-width:100%;padding:8px 16px;font-size:12.5px;animation:.25s popIn}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes cloudD{0%{transform:translate(0)}to{transform:translate(-118px)}}@keyframes swim1{0%{transform:translate(0)scaleX(1)}45%{transform:translate(96px)scaleX(1)}50%{transform:translate(96px)scaleX(-1)}95%{transform:translate(0)scaleX(-1)}to{transform:translate(0)scaleX(1)}}@keyframes rippleK{0%{opacity:.8;transform:scale(.5)}to{opacity:0;transform:scale(1.25)}}@keyframes tvFishK{0%{transform:translate(-34px)}to{transform:translate(150px)}}@keyframes tvFlickK{0%,to{opacity:.1}50%{opacity:.22}}@keyframes swayK{0%,to{transform:rotate(-2.4deg)}50%{transform:rotate(2.4deg)}}@keyframes lampK{0%,to{transform:rotate(-1.4deg)}50%{transform:rotate(1.4deg)}}@keyframes zzzK{0%{opacity:0;transform:translate(0)}25%{opacity:1}to{opacity:0;transform:translate(12px,-34px)}}@keyframes glowK{0%,to{opacity:.35}50%{opacity:.85}}@keyframes bobSlow{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.fx-float{pointer-events:none;animation:1.8s ease-out both floatUp}.tb{transform-box:fill-box;transform-origin:50%}.tbTop{transform-box:fill-box;transform-origin:top}.tbLeft{transform-box:fill-box;transform-origin:0}@keyframes doorK{0%{transform:scaleX(1)skewY(0)}to{transform:scaleX(.14)skewY(-9deg)}}.doorSwing{animation:.55s ease-in-out both doorK}.chip{color:#8c6f3f;background:#f6efe2;border-radius:99px;padding:2px 9px;font-size:11px;display:inline-block}.chip.hot{color:#d64545;background:#ffe3e3;font-weight:700}.chip.wx{color:#43678c;background:#e8f2fb}.post{border-bottom:1px solid #f3ecdd}.post .ph{gap:9px;display:flex}.post .avatar{flex:0 0 44px}.post .pbody{flex:1;min-width:0}.post .pname{color:#5b7a9d;font-size:13px;font-weight:700}.post .ptext{white-space:pre-wrap;margin:4px 0 6px;font-size:13px;line-height:1.7}.post .pmeta{color:#b6a989;flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;font-size:11px;display:flex}.pgrid{gap:4px;display:grid}.pgrid.g1{grid-template-columns:1fr;max-width:240px}.pgrid.g2{grid-template-columns:1fr 1fr}.pgrid.g3{grid-template-columns:repeat(3,1fr)}.pgrid .pc{aspect-ratio:4/3;cursor:pointer;border-radius:8px;overflow:hidden}.pgrid .pc svg{width:100%;height:100%;display:block}.vcard{cursor:pointer;border-radius:10px;max-width:260px;margin-top:6px;position:relative;overflow:hidden}.vcard .vplay{color:#fff;background:#00000040;justify-content:center;align-items:center;font-size:34px;display:flex;position:absolute;inset:0}.vcard svg{width:100%;height:100%;display:block}.cmt{background:#f7f2e7;border-radius:8px;margin-top:6px;padding:6px 9px;font-size:12px;line-height:1.6}.cmt b{color:#5b7a9d}.cmtIn{gap:6px;margin-top:8px;display:flex}.cmtIn input{background:#fffdf8;border:1px solid #ecdfc8;border-radius:8px;flex:1;padding:6px 9px;font-size:12px}.cmtIn .btn{padding:6px 12px;font-size:12.5px}.vidItem{border:1px solid #f0e6d2;border-radius:12px;align-items:center;gap:10px;margin-bottom:8px;padding:9px 12px;display:flex}.vidItem .vi{flex:1}.vidItem .vt{font-size:13px;font-weight:700}.ckStrip{gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.ckStrip .ck{cursor:pointer;border:1px solid #f0e6d2;border-radius:10px;flex:0 0 128px;overflow:hidden}.ckStrip .ck svg{width:100%;height:100%;display:block}.msg{margin-bottom:10px;display:flex}.msg .mb{border-radius:12px;max-width:76%;padding:8px 11px;font-size:13px;line-height:1.7}.msg.cat .mb{background:#fff;border:1px solid #f0e6d2;border-top-left-radius:4px}.msg.own{justify-content:flex-end}.msg.own .mb{color:#fff;background:#f59e0b;border-top-right-radius:4px}.msg .mt{color:#b6a989;margin-top:3px;font-size:10px}.chatIn{gap:6px;margin-top:6px;display:flex}.chatIn input{background:#fff;border:1px solid #ecdfc8;border-radius:10px;flex:1;padding:9px 10px;font-size:13px}.qchips{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.qchips button{color:#8c6f3f;cursor:pointer;background:#fff;border:1px solid #ecdfc8;border-radius:99px;padding:4px 11px;font-size:12px}#msgList{max-height:58vh;overflow-y:auto}#jScreen{height:100%;position:relative;overflow:hidden}#jmapWrap{touch-action:none;cursor:grab;background:linear-gradient(#0e2746,#123a66);position:absolute;inset:0;overflow:hidden}#jmapWrap svg{-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}#jDrawer{z-index:12;background:#fffdf6f7;border-radius:18px 18px 0 0;flex-direction:column;height:52px;transition:height .25s;display:flex;position:absolute;bottom:0;left:0;right:0;overflow:hidden;box-shadow:0 -10px 40px #0a142866}#jDrawer.open{height:64%}#jHandle{cursor:pointer;color:#6b5b33;flex:0 0 52px;justify-content:space-between;align-items:center;padding:0 14px;font-size:13px;font-weight:700;display:flex}#jBody{flex:1;padding:0 12px 14px;overflow-y:auto}#jBody .card{margin-left:0;margin-right:0}#jLocate{z-index:11;color:#43678c;cursor:pointer;background:#fffdf6eb;border:0;border-radius:12px;padding:8px 11px;font-size:12px;font-weight:700;position:absolute;top:10px;right:10px;box-shadow:0 4px 14px #0000004d}.actBanner{color:#93611a;background:#fff7e6;border:1px dashed #f2c463;border-radius:10px;margin-top:8px;padding:8px 10px;font-size:12.5px;line-height:1.6}#sScreen{height:100%;position:relative;overflow:hidden}#street{touch-action:none;cursor:grab;background:linear-gradient(#ffe2b8 0%,#ffd9a0 46%,#c9a06a 46%);position:absolute;inset:0;overflow:hidden}#street svg{-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}#street [data-shop]{cursor:pointer}#stHint{color:#f4ead2;white-space:nowrap;background:#2f271ab8;border-radius:99px;padding:5px 13px;font-size:11px;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.goods{grid-template-columns:1fr 1fr;gap:10px;display:grid}.good{text-align:center;border:1px solid #f0e6d2;border-radius:12px;padding:10px}.good .ge{font-size:26px}.good .gn{margin:4px 0 2px;font-size:12.5px;font-weight:700}.good .gd{color:#8c7f6e;min-height:26px;font-size:10.5px;line-height:1.5}.good .btn{width:100%;margin-top:6px;padding:6px 8px;font-size:12.5px}.good.owned{background:#fffcf2;border-color:#f2c463}.tryOn{background:#fdf6ec;border-radius:12px;align-items:center;gap:12px;margin-bottom:10px;padding:10px;display:flex}.achvGrid{grid-template-columns:1fr;gap:8px;display:grid}.achvCard{border:1px solid #f0e6d2;border-radius:12px;align-items:center;gap:10px;padding:8px 11px;display:flex}.achvCard:not(.done){filter:grayscale();opacity:.62}.achvCard .ae{flex:none;font-size:24px}.achvCard .ai{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.achvCard .ai b{font-size:12.5px}.achvCard .ai i{color:#8c7f6e;font-size:11px;font-style:normal}.achvCard .apbar{background:#f1e8d5;border-radius:3px;height:5px;margin-top:3px;display:block;overflow:hidden}.achvCard .apbar span{background:#e8a33d;border-radius:3px;height:100%;display:block}.achvCard.done .apbar span{background:#7fb069}.achvCard .ast{color:#8c7f6e;flex:none;font-size:11px}.achvCard.done .ast{color:#5c8a58;font-weight:700}
