:root{--bg:#17161d;--glass:#14131a9e;--glass-strong:#18161eeb;--line:#ffffff29;--text:#f6f1e7;--muted:#c9c1b2;--gold:#ffcf73;--red:#e2574c;--teal:#4fd1c0;--ok:#9be3b0;--radius:16px;--font:"Noto Sans KR", "Noto Sans TC", "Malgun Gothic", "Microsoft JhengHei", "PingFang TC", sans-serif}:lang(zh-Hant-TW){--font:"Noto Sans TC", "Noto Sans KR", "Microsoft JhengHei", "PingFang TC", sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--font);-webkit-tap-highlight-color:transparent;margin:0;overflow:hidden}body{touch-action:none;overscroll-behavior:none}#app,#app canvas{width:100%;height:100%;display:block;position:fixed;inset:0}button{font:inherit;color:inherit;cursor:pointer}[hidden]{display:none!important}.glass{background:var(--glass);border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(10px);box-shadow:0 8px 24px #00000040}.pill{background:var(--glass);border:1px solid var(--line);white-space:nowrap;pointer-events:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:999px;padding:6px 14px;font-size:13px;position:fixed;left:50%;transform:translate(-50%)}.primary{background:var(--gold);color:#2b1d0e;border:0;border-radius:14px;padding:13px 22px;font-weight:700}.primary:disabled{opacity:.6;cursor:wait}#loading{z-index:30;background:radial-gradient(120% 90% at 50% 10%,#3a2a2d 0%,#1b1820 55%,#121117 100%);place-items:center;padding:16px;display:grid;position:fixed;inset:0}.load-card{text-align:center;width:min(520px,100%)}.lantern-icon{filter:drop-shadow(0 0 18px #ff5a2899);font-size:54px;animation:3s ease-in-out infinite sway}@keyframes sway{50%{transform:rotate(6deg)}}.title-tw{letter-spacing:.06em;margin:6px 0 0;font-family:Noto Sans TC,sans-serif;font-size:clamp(34px,8vw,52px);font-weight:900}.title-ko{color:var(--muted);margin:4px 0 18px;font-weight:700}.title-ko span{letter-spacing:.3em;opacity:.75;margin-top:2px;font-size:12px;display:block}.intro{color:#e6dccb;margin:0 0 18px;font-size:15px;line-height:1.75}.lang-pick{background:#ffffff0f;border-radius:12px;gap:6px;margin-bottom:16px;padding:4px;display:inline-flex}.lang-pick button{color:var(--muted);background:0 0;border:0;border-radius:9px;padding:8px 14px}.lang-pick button.on{color:var(--text);background:#ffffff24;font-weight:700}#start{min-width:220px;margin:0 auto;font-size:16px;display:block}.hint{color:var(--muted);margin-top:12px;font-size:12px}.error{color:#ffb4a6;font-size:13px}#hud{pointer-events:none;z-index:10;position:fixed;inset:0}#hud button,#hud .glass,#hud canvas{pointer-events:auto}.top{top:max(12px, env(safe-area-inset-top));pointer-events:none;justify-content:space-between;align-items:flex-start;gap:8px;display:flex;position:absolute;left:12px;right:12px}.brand{padding:9px 14px}.brand strong{letter-spacing:.03em;font-size:17px;font-weight:900;display:block}.brand small{color:var(--muted);font-size:11px}.tools{gap:2px;padding:4px;display:flex}.tools button{background:0 0;border:0;border-radius:11px;min-width:38px;height:38px;font-size:17px}.tools button:hover{background:#ffffff1f}.tools .lang-btn{padding:0 10px;font-size:13px;font-weight:700}#missions{width:240px;padding:4px 6px 8px;font-size:13px;position:absolute;top:84px;left:12px}.missions-head{background:0 0;border:0;justify-content:space-between;width:100%;padding:6px;font-weight:700;display:flex}.missions-head b{color:var(--gold)}#missions ul{margin:0;padding:0 6px;list-style:none}#missions li{color:var(--muted);padding:3px 0}#missions li.done{color:var(--ok)}#missions.collapsed ul{display:none}#minimap-wrap{padding:6px;position:absolute;top:72px;right:12px}#minimap{cursor:pointer;border-radius:11px;width:150px;height:150px;display:block}#zone{opacity:0;font-weight:700;transition:opacity .4s;top:16px}#zone.show{opacity:1}#truck-status{color:#ffe9a6;font-size:12px;top:52px}#truck-status:empty{display:none}#toast{text-align:center;opacity:0;max-width:min(90vw,520px);padding:11px 18px;font-size:15px;line-height:1.5;transition:opacity .3s,transform .3s;position:fixed;top:22%;left:50%;transform:translate(-50%,-8px);pointer-events:none!important}#toast.show{opacity:1;transform:translate(-50%)}#prompt{left:50%;bottom:max(28px, env(safe-area-inset-bottom));border-color:#ffcf738c;align-items:center;gap:10px;padding:10px 18px 10px 10px;font-size:15px;font-weight:700;display:none;position:fixed;transform:translate(-50%)}#prompt.show{animation:.25s ease-out pop;display:inline-flex}@keyframes pop{0%{opacity:0;transform:translate(-50%,6px)}}kbd{background:var(--gold);color:#2b1d0e;border-radius:8px;place-items:center;min-width:30px;height:30px;font-family:inherit;font-weight:900;display:inline-grid}#controls-hint{color:var(--muted);max-width:60vw;margin:0;padding:7px 12px;font-size:12px;position:fixed;bottom:12px;left:12px}#bubbles{pointer-events:none;position:fixed;inset:0}.bubble{color:#2b1d0e;white-space:nowrap;background:#fff;border-radius:16px;padding:8px 14px;font-family:Noto Sans TC,sans-serif;font-size:18px;font-weight:900;animation:.2s ease-out pop;position:absolute;transform:translate(-50%,-100%);box-shadow:0 6px 16px #0000004d}.bubble:after{content:"";border:8px solid #0000;border-top-color:#fff;border-bottom:0;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)}.tools .support-btn{color:var(--gold);background:#ffcf732e;padding:0 10px;font-size:13px;font-weight:700}.bubble.chat{font-family:var(--font);white-space:normal;text-align:center;max-width:240px;font-size:14px;font-weight:700}.name-tag{color:#fff;white-space:nowrap;pointer-events:none;background:#14131a99;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:700;position:absolute;top:0;left:0}#chat{flex-direction:column;width:300px;display:flex;position:fixed;bottom:12px;right:12px;overflow:hidden}.chat-head{align-items:center;display:flex}#chat-toggle{text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:6px;padding:9px 12px;font-size:14px;font-weight:700;display:flex}#online-dot{background:#888;border-radius:50%;width:8px;height:8px;margin-left:auto;display:inline-block}#online-dot.on{background:#4ade80;box-shadow:0 0 6px #4ade80}#online-count{color:var(--muted);font-size:12px}#chat-unread{background:var(--red);border-radius:50%;width:8px;height:8px}#chat-rename{background:0 0;border:0;padding:6px 10px;font-size:14px}.chat-body{border-top:1px solid var(--line);flex-direction:column;display:flex}#chat.collapsed .chat-body{display:none}#chat-log{height:190px;margin:0;padding:8px 12px;font-size:13px;line-height:1.5;list-style:none;overflow-y:auto}#chat-log li{word-break:break-word;margin:2px 0}#chat-log b{color:var(--gold);margin-right:6px}#chat-log li.me b{color:var(--teal)}#chat-log li.sys{color:var(--muted);font-size:12px}#chat-form{gap:6px;padding:8px;display:flex}#chat-input{border:1px solid var(--line);color:#1d1a16;min-width:0;font:inherit;background:#ffffffeb;border-radius:10px;flex:1;padding:9px 10px;font-size:16px}#chat-form button{background:var(--gold);color:#2b1d0e;border:0;border-radius:10px;padding:0 12px;font-weight:700}.chat-note{color:var(--muted);margin:0 10px 8px;font-size:11px}#controls-hint{max-width:calc(100vw - 340px)}body.touch #chat{width:min(280px,100vw - 24px);inset:112px auto auto 12px}body.touch #chat-log{height:140px}.support-links{gap:10px;margin:14px 0;display:grid}.support-links a,.support-links .off{border:1px solid var(--line);color:var(--text);background:#ffffff0f;border-radius:14px;align-items:center;gap:12px;padding:13px 14px;text-decoration:none;display:flex}.support-links a:hover{background:#ffffff1f}.support-links .off{opacity:.5}.support-links .emo{font-size:26px}.support-links b{display:block}.support-links small{color:var(--muted)}.ad-disclosure{color:#ffd9a8;background:#ffc4781f;border:1px solid #ffc4788c;border-radius:12px;margin:8px 0 4px;padding:9px 12px;font-size:13px;font-weight:700;line-height:1.5}.ad-disclosure span{margin-top:4px;font-weight:500;display:block}.small-muted{color:var(--muted);font-size:13px}.receipt-coupon{margin-top:12px}.receipt-coupon .cut{text-align:center;color:#777;letter-spacing:1px;font-size:12px}.receipt-coupon .ad-disclosure{color:#8a4b12;background:#fff1de;border-color:#e9b779;font-size:12px}.receipt-coupon .support-links{margin:8px 0 0}.receipt-coupon .support-links a{color:#222;background:#fff;border-color:#ddd}.receipt-coupon .ad-tag{color:#666;background:#eee}.ad-tag{color:var(--muted);background:#ffffff24;border-radius:6px;margin-left:6px;padding:1px 6px;font-size:11px;display:inline-block}#joystick,#touch-buttons{display:none}body.touch #joystick{left:max(20px, env(safe-area-inset-left));bottom:max(24px, env(safe-area-inset-bottom));pointer-events:auto;touch-action:none;background:#ffffff1a;border:1px solid #ffffff40;border-radius:50%;width:128px;height:128px;display:block;position:fixed}#joystick .knob{background:#ffffffd9;border-radius:50%;width:56px;height:56px;margin:-28px 0 0 -28px;position:absolute;top:50%;left:50%;box-shadow:0 4px 12px #0000004d}body.touch #touch-buttons{right:max(18px, env(safe-area-inset-right));bottom:max(28px, env(safe-area-inset-bottom));align-items:flex-end;gap:12px;display:flex;position:fixed}#touch-buttons button{pointer-events:auto;border:1px solid var(--line);background:var(--glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:50%}#btn-act{color:#2b1d0e;width:74px;height:74px;font-size:24px;font-weight:900;background:var(--gold)!important}#btn-run{width:56px;height:56px;font-size:12px;font-weight:700}#btn-run.on{color:#0f2b28;background:var(--teal)!important}body.touch #controls-hint{display:none}body.touch #prompt{bottom:128px}.overlay{z-index:20;background:#08080c80;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.sheet{background:var(--glass-strong);border:1px solid var(--line);border-radius:22px;width:min(460px,100%);max-height:min(86vh,760px);padding:24px 22px 20px;animation:.25s ease-out rise;position:relative;overflow:auto;box-shadow:0 20px 50px #00000073}.sheet.wide{width:min(640px,100%)}@keyframes rise{0%{opacity:0;transform:translateY(14px)}}.close-x{color:var(--muted);background:0 0;border:0;border-radius:10px;width:36px;height:36px;font-size:26px;position:absolute;top:10px;right:12px}.close-x:hover{background:#ffffff1a}.m-icon{text-align:center;font-size:40px}.sheet h2{text-align:center;margin:4px 0 10px;font-size:22px;font-weight:900}.sheet p{color:#e7dfd1;margin:8px 0;font-size:15px;line-height:1.75}.sheet .note{color:var(--muted);background:#ffffff0d;border-radius:12px;padding:9px 12px;font-size:12.5px}.sheet .quote{border-left:3px solid var(--gold);color:#fff3d6;padding:4px 12px;font-style:italic}.sheet input[type=text]{width:100%;font:inherit;border:1px solid var(--line);color:#1d1a16;background:#fffffff2;border-radius:12px;margin:8px 0;padding:13px 14px;font-size:16px}.btns{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:14px;display:flex}.btns button{border:1px solid var(--line);background:#ffffff14;border-radius:12px;padding:11px 18px;font-weight:700}.btns button.primary{background:var(--gold);color:#2b1d0e;border:0}.menu-card{background:#ffffff0f;border-radius:14px;align-items:center;gap:12px;margin:10px 0;padding:12px;display:flex}.menu-card .emo{font-size:34px}.menu-card b{display:block}.menu-card small{color:var(--muted)}.shop-grid{grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:8px;margin:12px 0;display:grid}.item{border:1px solid var(--line);text-align:center;background:#ffffff0a;border-radius:14px;padding:10px}.item .emo{font-size:30px}.item .nm{min-height:36px;margin:4px 0;font-size:13px;line-height:1.35}.item .pr{color:var(--gold);font-size:13px;font-weight:700}.qty{justify-content:center;align-items:center;gap:8px;margin-top:6px;display:flex}.qty button{border:1px solid var(--line);background:#ffffff14;border-radius:9px;width:30px;height:30px}.total{border-top:1px dashed var(--line);justify-content:space-between;padding:10px 4px;font-size:17px;font-weight:900;display:flex}.receipt{color:#222;background:#fbfaf5;border-radius:6px;padding:16px;font-family:Noto Sans TC,monospace;font-size:14px;line-height:1.7}.receipt .row{justify-content:space-between;display:flex}.receipt hr{border:0;border-top:1px dashed #999}.stamps{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;margin:14px 0;display:grid}.stamp{border:2px dashed var(--line);text-align:center;color:var(--muted);border-radius:16px;padding:14px 8px}.stamp.on{border:2px solid var(--red);color:var(--text);background:#e2574c1f;transform:rotate(-2deg)}.stamp .emo{filter:grayscale();opacity:.5;font-size:30px}.stamp.on .emo{filter:none;opacity:1}.stamp small{color:var(--muted);margin-top:4px;font-size:11px;display:block}.setting{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.seg{background:#ffffff0f;border-radius:11px;flex-wrap:wrap;gap:4px;padding:3px;display:inline-flex}.seg button{color:var(--muted);background:0 0;border:0;border-radius:8px;padding:6px 11px;font-size:13px}.seg button.on{color:var(--text);background:#ffffff29;font-weight:700}input[type=range]{width:160px;accent-color:var(--gold)}.big-map{aspect-ratio:1;border-radius:14px;width:100%;display:block}.legend{color:var(--muted);flex-wrap:wrap;gap:10px 16px;margin-top:10px;font-size:13px;display:flex}.photo-img{border-radius:12px;width:100%;display:block}.help-list p{font-size:14px}@media (width<=720px){.brand strong{font-size:14px}.brand small{display:none}.tools button{min-width:32px;height:34px;font-size:15px}.tools .lang-btn{padding:0 6px;font-size:11px}#missions{width:190px;font-size:12px;top:64px}#minimap-wrap{top:60px}#minimap{width:100px;height:100px}#truck-status{top:auto;bottom:214px}#zone{top:auto;bottom:178px}.sheet{padding:22px 16px 16px}}.tools button,.brand strong{white-space:nowrap}@media (width<=420px){.tools #btn-help,.support-btn span{display:none}.tools .support-btn{padding:0 8px}body.touch #chat{width:calc(100vw - 150px)}#missions{width:168px}}.book-card{background:linear-gradient(135deg,#ffb35c29,#f0743a14);border:1px solid #ffb35c59;border-radius:16px;align-items:center;gap:14px;margin:10px 0;padding:12px;display:flex}.book-cover{color:#3b2a20;text-align:center;background:#f6efe2;border-radius:4px 8px 8px 4px;flex-direction:column;flex:0 0 64px;justify-content:space-between;align-items:center;height:90px;padding:8px 4px;display:flex;box-shadow:3px 4px 10px #00000059}.book-cover span{order:2;font-size:22px}.book-cover b{word-break:keep-all;font-size:10px;font-weight:900;line-height:1.25}.book-info{flex-direction:column;gap:4px;min-width:0;display:flex}.book-info small{color:var(--muted)}.book-btn{background:var(--gold);color:#2b1d0e;border-radius:11px;align-self:flex-start;margin-top:4px;padding:8px 13px;font-size:14px;font-weight:700;text-decoration:none}.credit{color:#d9b98a;margin-top:4px;font-size:12px}.book-cover-img{object-fit:cover;border-radius:3px 6px 6px 3px;flex:0 0 66px;width:66px;height:94px;box-shadow:3px 4px 10px #00000059}.tut-tabs{justify-content:center;margin:6px 0 4px;display:flex}.tut-row{background:#ffffff0f;border-radius:12px;align-items:center;gap:12px;margin:8px 0;padding:10px 12px;font-size:14.5px;line-height:1.5;display:flex}.tut-row .emo{text-align:center;flex:0 0 30px;font-size:24px}.tut-mission{text-align:center;color:var(--gold);margin:12px 0 2px;font-size:14px;font-weight:700}.install-link{color:var(--gold);background:#ffcf731f;border:1px solid #ffcf7380;border-radius:999px;margin:10px auto 0;padding:8px 16px;font-size:14px;font-weight:700;display:block}@media (display-mode:fullscreen),(display-mode:standalone){.install-link{display:none!important}}
