/* Art direction: modern Chinese neighbourhood, amber light and deep jade UI. */
:root{--ink:#243a34;--jade:#234c40;--muted:#687c72;--gold:#c29b5d;--cream:#fcf8ef}
body{color:var(--ink);background:#b09a7d;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
.topbar{top:24px;left:28px;right:28px}.brand{color:#fff9e9;filter:drop-shadow(0 2px 9px #261d18a0)}.brand-cn,.night .brand-cn{color:#fff6df;font-size:42px}.brand b{color:#fff8e9;font-size:10px;letter-spacing:3px}.brand small{color:#fff2d3;font-size:11px}.brand-dot{background:#dfa24e}.weather{background:#1c302be6;border-color:#b5bfa739;color:#fff2d4;border-radius:12px;padding:12px 19px}.weather small{color:#c5cebf}.wallet{background:#fcf7e9;border-color:#f5e8ca;border-radius:14px;box-shadow:0 6px 22px #24170e20}.icon-button,.avatar-btn{border-radius:13px}.avatar-btn{background:#b17550}.top-actions{gap:9px}.quest-card{top:112px;left:28px;width:255px;background:#17362eea;border:1px solid #c5ccaa50;color:#fcf8ec;border-radius:15px;box-shadow:0 8px 24px #2a251c22;backdrop-filter:blur(12px)}.quest-card .eyebrow,.quest-head>span:nth-child(2){color:#decc9e}.quest-head .chevron{color:#d6ddc8}.quest-body>p,.quest-row small{color:#b1c3b4}.quest-body h2{font-weight:500}.quest-row{font-size:12px}.quest-row small{line-height:1.4}.quest-row.done>span:last-child{color:#b6caae}.quest-row.done .check{background:#829b71;color:#fff}.quest-progress{background:#ffffff19}.quest-progress i{background:#cba65f}#quest-work{cursor:pointer;border-radius:7px}#quest-work:hover{background:#ffffff0e}.check{border-color:#b0c3a45c;color:#d2d9c2}
.job-shortcut{position:absolute;right:28px;top:110px;display:flex;align-items:center;gap:13px;padding:15px 18px;border-radius:14px;background:#f4dfb4f5;border:1px solid #fff2cc;color:#59442b;box-shadow:0 5px 25px #40280922;z-index:10;text-align:left}.job-shortcut-icon{width:35px;height:35px;display:grid;place-items:center;border:1px solid #ab803849;border-radius:10px;font:24px Georgia,serif}.job-shortcut small{display:block;font-size:8px;font-weight:650;letter-spacing:1.4px;margin-bottom:5px}.job-shortcut b{font-size:13px;font-weight:650}.job-shortcut>span:last-child{margin-left:12px;font-size:21px}.job-shortcut:hover{background:#fff0cc;transform:translateY(-2px)}
.place-label{background:#fff9e9f5;border:1px solid #fff5e1;border-radius:10px;padding:10px 18px;box-shadow:0 5px 18px #2e221e30;color:#293f32}.place-label b{font-size:16px;letter-spacing:1px;font-weight:600}.place-label small{font-size:10px;color:#67715c;margin-top:4px}.place-label.near{background:#234e3c;border-color:#d6c68e}.place-label:after{background:#fff9e9}.scene-caption{color:#fff5db;bottom:125px;left:30px;text-shadow:0 2px 6px #342518}.scene-caption .live-dot{border-color:#ffffff30;background:#a2bc84}.version-tag{color:#fff8e0;font-size:9px;text-shadow:0 1px 4px #1d1c16}.walking-hint{color:#f2e8ca;background:#253b31dc;border-color:#fff2;border-radius:8px;bottom:117px;font-size:10px}.hint-divider{background:#e4e2c64d}
.bottom-dock{background:#fdf9efed;border-color:#fff8dd;border-radius:17px;box-shadow:0 8px 35px #31211340;padding:7px 9px;gap:5px;backdrop-filter:blur(15px)}.dock-item{min-width:69px;height:63px;border-radius:10px;gap:7px;color:#64736a}.dock-item>span{display:flex;align-items:center;justify-content:center;height:26px}.dock-item svg{width:23px;height:23px;stroke-width:1.6}.dock-item b{font-size:10px}.dock-item.selected{background:#254c3d;color:#fff8e6}.dock-item:hover{background:#e5e7d9}.dock-item.selected:hover{background:#345e4e}.dock-item.job-dock{color:#896a37;background:#ecdfbf}.dock-item.job-dock:hover{background:#e3cca0}.dock-sep{background:#cccab4}.zoom-group{border-radius:10px}.side-controls{right:28px;top:45%;gap:9px}.interaction{border-radius:12px;background:#fff9eb;border-color:#f8e7bd}.interaction button{background:#294f3e;border-radius:8px}.interaction>span{font-size:12px}#joystick{background:#23372c44;border-color:#fff7;backdrop-filter:blur(5px)}#joystickKnob{background:#fff4d9dd}
.welcome{background:linear-gradient(90deg,#192b2bc9,transparent 80%)}.welcome-card{background:#fffaf0f5;border-color:#f7eddb;border-radius:19px;box-shadow:0 18px 65px #191c2038;padding:32px}.welcome h1{font-size:35px;line-height:1.24;font-weight:500}.welcome h1 em{color:#967041;font-size:37px}.welcome-card>p{color:#738071}.welcome-aside{color:#fff2cb;text-shadow:0 3px 12px #3d322a;opacity:1}.welcome-kicker{color:#6d7864}.welcome-open .job-shortcut{display:none}.primary{background:#284e3e;border-radius:9px;font-size:13px;padding:15px 18px}.primary:hover{background:#173b2e}.secondary{background:#eeede2;border-color:#dcdfce;border-radius:9px;color:#465e4a;font-size:12px}.text-button{color:#50664d}.eyebrow{color:#8b7c5e}.section-label{color:#7c816a;font-size:10px}.subtle-note,.form-hint{color:#75816c;font-size:11px}.answer-form input{font-size:16px;border-radius:9px;background:#fffdf7}.voice-controls .voice-button{background:#dce7d5;color:#30543c;font-size:12px}.mic-status{color:#587054}.mic-status.mic-error{color:#8d5938}.speech-bubble{background:#eeefe3;border-radius:2px 12px 12px}.speech-cn{color:#284b38;font-size:24px}.speech-pinyin{color:#7d886b;font-size:12px}.speech-vi{color:#6c7d63;font-size:12px}.speech-actions .text-button{font-size:11px}.sample-toggle{font-size:11px;color:#7e866b}.answer-feedback{font-size:12px}.receipt{border-radius:9px;background:#f0e9d6}.receipt b{color:#96723f}.product{background:#f6f2e6;border-color:#e6dfcb;border-radius:11px}.product:hover{background:#e8ecdc;border-color:#afba91}.product-art{background:radial-gradient(ellipse at 50% 90%,#dfd2b555,transparent 70%);height:61px;font-size:39px}.product-cn{font-size:16px;color:#3c5140}.product-vi{color:#7e876c;font-size:11px;line-height:1.5}.product-price{color:#9f713c;font-size:12px}.npc-role{color:#77846d;font-size:11px}.npc-name{font-size:13px}.npc-portrait{border-radius:10px;background:#e7e3cf}.close-button{background:#ebe8dc;color:#5b6b59;width:34px;height:34px}.panel-backdrop{background:#121f1be6;backdrop-filter:blur(5px)}.panel{background:var(--cream);border:1px solid #ffffff33;border-radius:17px;box-shadow:0 25px 80px #111e1555}.panel-content{display:flex;flex-direction:column;min-height:0;width:100%;flex:1}.panel-top{padding:24px 27px 19px;border-color:#e6e1d1;gap:10px}.panel-top h2{font-size:23px;line-height:1.2}.panel-top .eyebrow{font-size:9px;letter-spacing:1.6px}#panelBody{flex:1;min-height:0;padding:22px 27px 27px}#panelScene{display:none}.panel.immersive{left:50%;right:auto;transform:translateX(-50%);top:6vh;bottom:6vh;width:min(1040px,calc(100vw - 64px));flex-direction:row;animation:none}.immersive #panelScene{display:block;position:relative;width:44%;flex-shrink:0;overflow:hidden;background-image:url('./assets/street.webp');background-size:auto 100%;background-position:18% center}.immersive[data-scene=market] #panelScene{background-position:50% center}.immersive[data-scene=park] #panelScene{background-position:70% center}.immersive[data-scene=food] #panelScene{background-image:url('./assets/restaurant.webp');background-position:56% center;background-size:cover}.scene-scrim{position:absolute;inset:0;background:linear-gradient(0deg,#111f1bf5 0%,#182c2850 34%,transparent 75%)}.interior-caption{position:absolute;bottom:130px;left:29px;right:25px;color:#f9efd7}.interior-caption .eyebrow{color:#dbc396;letter-spacing:2px;font-size:9px}.interior-caption h3{font-family:Georgia,'Songti SC',serif;font-size:45px;letter-spacing:4px;font-weight:400;margin:14px 0}.interior-caption p{font-size:12px;color:#d6d7bc;line-height:1.6;letter-spacing:.1px}.shift-tables{position:absolute;bottom:28px;left:27px;right:27px;display:flex;gap:7px}.table-status{background:#fdf4dc11;border:1px solid #f3ebc333;border-radius:8px;padding:13px 9px;flex:1;color:#a7b4a1}.table-status span{font-size:8px;letter-spacing:1.4px;display:block;margin-bottom:9px}.table-status b{font-size:10px;font-weight:500}.table-status.current{border-color:#e0b876;background:#e6ba7228;color:#f4d8a5}.table-status.finished{background:#829b6940;color:#d3e6bd}.job-intro .pill{display:inline-block;padding:7px 10px;border-radius:6px;background:#e7ebd9;color:#587043;font-size:10px}.job-intro h3{font-weight:500;font-size:29px;line-height:1.25;letter-spacing:-.7px;margin:18px 0 12px}.job-intro p{font-size:12px;line-height:1.8;color:#7d866e;margin-bottom:24px}.job-pay{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #dfdccb;border-bottom:1px solid #dfdccb;padding:18px 0}.job-pay small{display:block;font-size:9px;letter-spacing:1.5px;color:#8a795a}.job-pay strong{display:block;font:45px Georgia,serif;color:#986f3d;margin-top:7px}.job-pay strong span{font:13px -apple-system,sans-serif}.job-pay>span{font-size:11px;line-height:1.8;color:#8d826c;text-align:right}.job-steps{list-style:none;counter-reset:step;padding:5px 0 0;margin:16px 0}.job-steps li{counter-increment:step;position:relative;padding:0 0 20px 36px}.job-steps li:before{content:'0' counter(step);position:absolute;left:0;top:0;font:17px Georgia,serif;color:#ba9c67}.job-steps b{font-size:12px;font-weight:600;display:block;margin-bottom:5px}.job-steps span{font-size:11px;color:#889079}.job-meter{background:#eee9da;padding:12px;border-radius:8px;color:#6c785d}.job-dot{background:#d4d8c5}.job-dot.done{background:#799258}.success h3{font-size:27px}.success p{color:#78866b}.success-icon{color:#b18a4f}.job-banner{border-color:#d7c7a7;background:#f0e4cc}.job-banner h3{color:#876434}.job-banner p{color:#8d7958}.job-banner .primary{background:#937043}.job-order-hidden{font-size:12px;color:#657958}.panel:not(.immersive) #panelBody{padding-top:20px}#loading{background:#233e32;color:#f1e4c3}.loader-mark{font-family:Georgia,'Songti SC',serif}.location-card{border-radius:10px}.help-item p{font-size:12px;color:#7c876c}
@media(max-width:800px){.topbar{top:18px;left:20px;right:20px}.brand-cn{font-size:34px}.brand b{font-size:9px}.quest-card{top:88px;left:20px;width:225px}.job-shortcut{top:87px;right:20px;padding:12px;gap:9px}.job-shortcut>span:last-child{margin-left:3px}.job-shortcut b{font-size:12px}.job-shortcut small{font-size:7px}.panel.immersive{top:4vh;bottom:4vh;width:calc(100vw - 32px)}.immersive #panelScene{width:35%}.interior-caption{left:20px;bottom:125px;right:18px}.interior-caption h3{font-size:31px}.shift-tables{left:15px;right:15px;gap:4px}.table-status{padding:10px 5px}.table-status b{font-size:8px}.table-status span{font-size:7px;letter-spacing:0}.panel-top{padding:20px}#panelBody{padding:18px 20px 23px}.panel-top h2{font-size:21px}.bottom-dock{bottom:18px;gap:3px}.dock-item{min-width:58px;height:59px}.scene-caption{bottom:117px}.side-controls{right:20px}.weather{display:none}.walking-hint{bottom:105px}}
@media(max-width:540px){.topbar{top:max(15px,env(safe-area-inset-top));left:15px;right:15px}.brand-cn{font-size:31px}.brand b{font-size:8px;letter-spacing:1.6px}.top-actions{gap:6px}.wallet{padding:7px 10px 7px 7px}.wallet strong{font-size:16px}.brand{gap:9px}.quest-card{top:76px;left:15px;width:155px}.quest-head{padding:12px 10px 0;gap:6px}.quest-head .eyebrow{font-size:7px;letter-spacing:.8px}.quest-card.collapsed .quest-head{padding-bottom:12px}.quest-card:not(.collapsed){width:240px;z-index:15}.job-shortcut{top:76px;right:15px;padding:9px 10px;gap:7px;border-radius:10px}.job-shortcut-icon{width:26px;height:26px;border-radius:7px;font-size:19px}.job-shortcut b{font-size:11px}.job-shortcut small{font-size:6px;letter-spacing:.7px;margin-bottom:4px}.job-shortcut>span:last-child{display:none}.bottom-dock{padding:6px;bottom:max(16px,env(safe-area-inset-bottom));gap:2px;width:calc(100vw - 30px)}.dock-item{min-width:0;height:55px;gap:5px}.dock-item b{font-size:8px}.dock-item svg{width:21px;height:21px}.dock-sep{display:none}.side-controls{right:15px;top:37%}.place-label{padding:8px 12px}.place-label b{font-size:14px}.place-label small{font-size:9px}.panel.immersive{top:max(12px,env(safe-area-inset-top));bottom:max(12px,env(safe-area-inset-bottom));width:calc(100vw - 24px);flex-direction:column}.immersive #panelScene{width:100%;height:147px;background-size:cover;background-position:50% 66%;flex-shrink:0}.immersive[data-scene=food] #panelScene{background-size:cover;background-position:center 40%}.scene-scrim{background:linear-gradient(0deg,#172c24e8,transparent 100%)}.interior-caption{left:18px;bottom:14px;right:15px}.interior-caption h3{font-size:26px;letter-spacing:3px;margin:6px 0 0}.interior-caption .eyebrow{font-size:7px;letter-spacing:1.3px}.interior-caption p{font-size:10px;margin:7px 0 0;max-width:60%}.shift-tables{bottom:15px;left:auto;right:14px;display:flex;flex-direction:column;gap:3px}.table-status{padding:4px 7px;display:flex;gap:5px;border-radius:5px;align-items:center}.table-status span{margin:0;font-size:6px}.table-status b{font-size:7px}.panel-top{padding:15px 18px 12px}.panel-top h2{font-size:19px;margin:6px 0 0}.panel-top .eyebrow{font-size:7px;letter-spacing:1px}.panel-top .close-button{width:30px;height:30px;flex-shrink:0}.immersive .panel-top .close-button{position:absolute;right:12px;top:12px;background:#faf4e9ed;z-index:2}#panelBody{padding:16px 18px 22px}.job-intro h3{font-size:25px;margin:14px 0 9px}.job-intro p{font-size:12px;margin-bottom:18px}.job-pay{padding:14px 0}.job-pay strong{font-size:38px}.job-steps li{padding-bottom:17px}.speech-cn{font-size:22px}.product-art{height:40px;font-size:30px}.product-vi{font-size:10px}.product-cn{font-size:15px}.product{padding:10px}.job-meter{font-size:9px}.welcome{background:linear-gradient(0deg,#1c302a99,transparent);padding:0 17px 22px}.welcome-card{padding:23px 25px 17px;border-radius:17px}.welcome h1{font-size:29px}.welcome h1 em{font-size:31px}.welcome-card>p{font-size:11px}.welcome-kicker{font-size:7px}.outfit-row>span{font-size:10px}.scene-caption{display:none}.primary{font-size:12px}.mic-status{font-size:11px}.subtle-note{font-size:10px}.voice-controls .voice-button{font-size:11px;padding:12px}.voice-controls>.text-button{font-size:10px}.panel:not(.immersive){top:75px;right:12px;bottom:12px;width:calc(100vw - 24px)}#joystick{bottom:108px}.interaction{bottom:112px}.welcome-open .side-controls{display:none}}
@media(max-height:650px) and (min-width:541px){.panel.immersive{top:14px;bottom:14px}.job-shortcut{top:90px}.quest-card{top:90px}.bottom-dock{bottom:12px}.interior-caption{bottom:105px}.welcome h1{font-size:27px}.welcome h1 em{font-size:29px}}
