:root{--ink:#2d201b;--paper:#fff7e6;--wood:#73452c;--red:#c24d31;--gold:#e9bc4b;--shadow:0 10px 32px #27140873}*{box-sizing:border-box}body{margin:0;overflow:hidden;background:#1d160f;color:var(--ink);font-family:"Microsoft YaHei",system-ui,sans-serif}.game-app,.world-wrap{width:100vw;height:100vh}.world-wrap{position:relative;overflow:hidden;background:#24170f}.world{position:absolute;inset:0;background-size:cover;background-position:center;outline:none}.world.plaza{background-image:url('public/assets/scenes/plaza.png')}.world.chen-home{background-image:url('public/assets/scenes/chen-home.png')}.world.worksite{background-image:url('public/assets/scenes/worksite.png')}.world.supermarket{background-image:url('public/assets/scenes/supermarket.png')}.world.black-market{background-image:url('public/assets/scenes/black-market.png')}.world:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#1f150c24 0%,transparent 20%,transparent 70%,#1b100956 100%)}.sprite{position:absolute;background-repeat:no-repeat;image-rendering:auto;transition:left .05s linear,top .05s linear;filter:drop-shadow(0 5px 3px #24140880);z-index:4}.player-sprite{width:76px;height:76px;background-image:url('public/assets/characters/main-npcs.png');background-size:400% 500%}.cart-sprite{width:148px;height:180px;background-image:url('public/assets/carts/carts.png');background-size:400% 200%;z-index:3;pointer-events:none}.npc-sprite{width:66px;height:66px;background-image:url('public/assets/characters/main-npcs.png');background-size:400% 500%;background-position:0 50%}.npc{position:absolute;left:56%;top:38%;z-index:5;cursor:pointer;text-align:center;color:white;font-weight:700;text-shadow:0 2px 3px #3b210e}.npc span{display:block;margin-top:58px;font-size:13px}.stall-zone{position:absolute;left:41%;top:49%;width:21%;height:22%;border:3px dashed #f3c448;border-radius:18px;background:#e9bd3d20;z-index:2;display:flex;align-items:center;justify-content:center;opacity:.82;pointer-events:none}.stall-zone span{background:#623e21d9;color:#fff0bd;border-radius:10px;padding:3px 8px;font-size:12px}.ambient-hud{position:absolute;z-index:7;top:18px;left:22px;display:flex;gap:7px;pointer-events:none}.ambient-hud span{padding:7px 11px;border:2px solid #7a4a2d;border-radius:20px;background:#fff7e9e8;color:#5c3927;font-weight:700;font-size:13px;box-shadow:0 3px 7px #1b0b0340}.ambient-hud span:first-child{background:#6e442bdc;color:#fff4d8}.world-hint{position:absolute;z-index:7;left:50%;bottom:102px;transform:translateX(-50%);padding:8px 14px;border-radius:16px;background:#27160ee0;color:#fff4d4;font-size:13px;box-shadow:var(--shadow);white-space:nowrap}.quickbar{position:absolute;z-index:8;left:50%;bottom:18px;transform:translateX(-50%);display:flex;gap:8px;padding:8px;border:2px solid #71472e;border-radius:14px;background:#f7e5c5e8;box-shadow:var(--shadow)}.quickbar button{min-width:68px;border:2px solid #8d5b3b;border-radius:9px;padding:6px 8px;background:linear-gradient(#fff6df,#d9bb91);color:#513321;font-family:inherit;font-size:12px;font-weight:700;cursor:pointer}.quickbar button:hover{transform:translateY(-2px);border-color:#d08146}.quickbar button span{display:block;font-size:18px;line-height:1.1;margin-bottom:2px}.quickbar .accent{background:linear-gradient(#e27a49,#b4472c);border-color:#873723;color:#fff8e2}.door-prompt{position:absolute;z-index:9;transform:translate(-50%,-100%);padding:7px 10px;background:#3e2817e6;color:#fff7d8;border:2px solid #e7b64e;border-radius:9px;text-align:center;font-size:12px;box-shadow:var(--shadow);pointer-events:none}.door-prompt b,.door-prompt span{display:block}.door-prompt.hidden{display:none}.modal-layer{position:fixed;inset:0;background:#180d08a8;z-index:30;display:flex;align-items:center;justify-content:center;padding:20px}.modal-layer.hidden{display:none}.modal{width:min(760px,90vw);max-height:88vh;overflow:auto;border:3px solid #805130;border-radius:16px;background:linear-gradient(135deg,#fff9e9,#ead1a9);box-shadow:0 22px 70px #150904;padding:22px}.modal h2{margin:0 0 6px}.modal .sub{margin:0 0 18px;color:#75513a;font-size:13px}.close{float:right;border:0;border-radius:50%;width:30px;height:30px;background:#6e422b;color:#fff;cursor:pointer}.shop-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.shop-item{border:1px solid #bb8c61;border-radius:10px;padding:10px;background:#fff6e4;display:flex;align-items:center;gap:10px}.shop-item b{display:block}.shop-item small{display:block;color:#80614c}.qty{margin-left:auto;display:flex;gap:6px;align-items:center}.qty button{border:0;background:#885238;color:#fff;border-radius:4px;width:24px;height:24px;cursor:pointer}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.modal-actions button{font-family:inherit;border:0;border-radius:8px;padding:10px 17px;background:#765036;color:#fff7e5;cursor:pointer}.modal-actions .primary{background:#c15032}.recipe{padding:11px;border:1px solid #be936b;border-radius:10px;background:#fff8e9;margin-bottom:10px;display:flex;align-items:center;gap:12px}.recipe .recipe-info{flex:1}.recipe h4{margin:0 0 4px}.recipe p{margin:0;color:#7d5f4a;font-size:12px}.recipe button{border:0;background:#ba5536;color:#fff;border-radius:6px;padding:8px 12px;font-family:inherit;cursor:pointer}.dialogue{display:grid;grid-template-columns:180px 1fr;gap:16px;align-items:end}.portrait{height:210px;background-image:url('public/assets/characters/portraits.png');background-size:400% 500%;background-position:0 50%;background-repeat:no-repeat}.speech{background:#fff8e6;border:1px solid #b88a61;border-radius:12px;padding:16px;min-height:120px;line-height:1.8}.speech textarea{width:100%;height:62px;margin-top:10px;font-family:inherit;padding:7px;border:1px solid #c6a27e;border-radius:7px;resize:none}.event-art{width:100%;border-radius:10px;border:2px solid #8f5a37;margin:10px 0}.inventory-list{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.inventory-item{background:#fff6e5;border:1px solid #c69b70;border-radius:9px;padding:9px;font-size:13px}.log{font-size:13px;line-height:1.7;max-height:360px;overflow:auto;color:#624a39}.log p{margin:0 0 8px;padding-bottom:8px;border-bottom:1px dashed #c8a77e}.toast{position:fixed;left:50%;bottom:116px;transform:translate(-50%,20px);opacity:0;z-index:50;background:#382217;color:#fff7d5;padding:10px 16px;border-radius:20px;font-size:13px;box-shadow:var(--shadow);transition:.2s;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%,0)}@media(max-width:820px){.quickbar{gap:4px;bottom:10px}.quickbar button{min-width:53px;padding:5px;font-size:10px}.ambient-hud{top:10px;left:10px}.ambient-hud span{padding:5px 7px;font-size:11px}.world-hint{bottom:90px;font-size:11px}.dialogue{grid-template-columns:1fr}.portrait{display:none}}
