:root{color-scheme:dark;font-family:Noto Sans TC,Microsoft JhengHei,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #eef1e8;--muted: #a8b6b0;--subtle: #70817e;--panel: rgba(9, 20, 26, .86);--panel-soft: rgba(9, 20, 26, .7);--line: rgba(190, 210, 198, .18);--cyan: #78b9ae;--cyan-bright: #a0d6c7;--amber: #d6a75e;--red: #e4796c;--shadow: 0 20px 70px rgba(0, 0, 0, .46)}*{box-sizing:border-box}html,body,#game-shell{width:100%;height:100%;margin:0;overflow:hidden}body{background:#09151c;color:var(--ink);-webkit-user-select:none;user-select:none}button,input,select{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--cyan-bright);outline-offset:3px}#game-shell{position:relative;isolation:isolate}#world-root{position:absolute;top:0;right:0;bottom:0;left:0;background:#10232b}#world-root canvas{display:block;width:100%;height:100%;touch-action:none}#boot-state{position:absolute;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-content:center;gap:18px;padding:24px;background:radial-gradient(ellipse at 50% 43%,#1b3940,#0b1921 54%,#071017);text-align:center;transition:opacity .35s ease,visibility .35s ease}#boot-state.is-hidden{opacity:0;visibility:hidden;pointer-events:none}.boot-mark{font-size:clamp(1.2rem,3vw,1.85rem);font-weight:700;letter-spacing:.12em}.boot-mark span{color:var(--amber);font-size:.72em;font-weight:500;letter-spacing:.18em}.boot-progress{width:min(280px,72vw);height:2px;margin:0 auto;overflow:hidden;background:#dbe7dc24}.boot-progress i{display:block;width:38%;height:100%;background:var(--amber);animation:boot-scan 1.3s ease-in-out infinite alternate}#boot-state p{margin:0;color:var(--muted);font-size:.85rem;letter-spacing:.12em}#boot-state.is-error{background:radial-gradient(ellipse at 50% 45%,#482e31,#10171c 68%)}#boot-state.is-error .boot-progress{display:none}#boot-state .boot-error{max-width:min(560px,90vw);margin:0 auto;color:#f0c4bc;line-height:1.7}@keyframes boot-scan{0%{transform:translate(-15%)}to{transform:translate(180%)}}#ui-root{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;pointer-events:none}.hud{position:absolute;top:0;right:0;bottom:0;left:0;padding:max(18px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}.hud[hidden]{display:none}.hud-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.identity{display:flex;align-items:center;gap:12px;min-width:0}.brand-mark{width:42px;height:42px;display:grid;place-items:center;flex:0 0 auto;border:1px solid rgba(214,167,94,.6);border-radius:12px;background:#09141ac2;color:var(--amber);font-size:1.2rem;font-weight:700;box-shadow:0 7px 28px #00000038}.district-block{min-width:0;padding-top:1px;text-shadow:0 2px 10px #061117}.district-kicker{display:block;color:var(--cyan);font-size:.62rem;font-weight:700;letter-spacing:.2em}.district-name{display:block;margin-top:2px;color:#f1eee2;font-size:.97rem;font-weight:600;letter-spacing:.08em}.top-stats{display:flex;align-items:stretch;gap:8px}.stat-chip{min-width:94px;padding:8px 12px;border:1px solid var(--line);border-radius:9px;background:var(--panel-soft);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 8px 24px #00000026}.stat-label{display:block;color:var(--subtle);font-size:.59rem;font-weight:700;letter-spacing:.14em}.stat-value{display:flex;align-items:center;gap:7px;margin-top:4px;font-size:.88rem;font-weight:600;font-variant-numeric:tabular-nums}.health-track{width:73px;height:5px;overflow:hidden;border-radius:99px;background:#eef1e829}.health-fill{height:100%;width:100%;border-radius:inherit;background:linear-gradient(90deg,#9ecba7,#d8bb73);transition:width .2s ease}.wanted-stars{color:var(--amber);font-size:.9rem;letter-spacing:.12em;white-space:nowrap}.wanted-stars.is-alert{color:var(--red)}.cash-value{color:#e3c584}.pause-chip{pointer-events:auto;width:39px;height:39px;border:1px solid var(--line);border-radius:9px;background:var(--panel-soft);color:var(--muted);cursor:pointer}.pause-chip:hover{color:var(--ink);border-color:#a0d6c78c}.mission-card{position:absolute;left:max(20px,env(safe-area-inset-left));bottom:max(25px,env(safe-area-inset-bottom));width:min(340px,calc(100vw - 40px));padding:17px 18px 16px;border:1px solid var(--line);border-left:2px solid var(--amber);border-radius:10px;background:linear-gradient(115deg,#09141ae6,#09141a9e);box-shadow:0 12px 35px #0000003d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.mission-eyebrow{color:var(--amber);font-size:.6rem;font-weight:700;letter-spacing:.18em}.mission-title{margin:5px 0 4px;font-size:.98rem;font-weight:600;letter-spacing:.04em}.mission-objective{min-height:1.5em;color:#c4cec4;font-size:.78rem;line-height:1.55}.mission-distance{margin-top:11px;padding-top:9px;border-top:1px solid rgba(190,210,198,.11);color:var(--cyan);font-size:.68rem;letter-spacing:.1em}.mission-distance strong{color:#e0e5d8;font-size:.78rem;font-weight:600;letter-spacing:0}.mission-card.is-idle .mission-eyebrow{color:var(--cyan)}.minimap-wrap{position:absolute;right:max(20px,env(safe-area-inset-right));bottom:max(25px,env(safe-area-inset-bottom));width:clamp(142px,20vw,218px);aspect-ratio:1;padding:7px;overflow:hidden;border:1px solid rgba(185,210,198,.28);border-radius:50%;background:#051015cc;box-shadow:var(--shadow),inset 0 0 0 1px #ffffff0a;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);pointer-events:auto}.minimap-wrap.is-hidden{display:none}.minimap-wrap:before{content:"";position:absolute;top:11px;right:11px;bottom:11px;left:11px;border:1px solid rgba(143,190,174,.12);border-radius:50%;pointer-events:none;z-index:1}.minimap-wrap:after{content:"N";position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:2;color:#d7e7da8a;font-size:.55rem;font-weight:700}#minimap{display:block;width:100%;height:100%;border-radius:50%;cursor:crosshair}.map-caption{position:absolute;right:50%;bottom:13px;z-index:2;transform:translate(50%);color:#d7e7da7a;font-size:.5rem;letter-spacing:.12em;pointer-events:none}.interaction-hint{position:absolute;left:50%;bottom:max(31px,env(safe-area-inset-bottom));transform:translate(-50%);max-width:min(410px,calc(100vw - 40px));padding:10px 16px;border:1px solid rgba(190,210,198,.2);border-radius:8px;background:#081217d1;color:#d7dfd4;text-align:center;font-size:.77rem;line-height:1.45;box-shadow:0 8px 25px #00000038;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);opacity:0;transition:opacity .2s ease}.interaction-hint.is-visible{opacity:1}.keycap{display:inline-grid;min-width:22px;min-height:22px;place-items:center;margin-right:5px;padding:1px 6px;border:1px solid rgba(214,167,94,.42);border-radius:5px;color:var(--amber);font-size:.67rem;font-weight:700}.vehicle-readout{position:absolute;left:50%;bottom:max(92px,calc(env(safe-area-inset-bottom) + 92px));transform:translate(-50%);display:none;align-items:baseline;justify-content:center;flex-wrap:wrap;gap:8px;width:max-content;max-width:min(560px,calc(100vw - 32px));color:#e9e6d8;text-shadow:0 2px 10px #061117}.vehicle-readout.is-visible{display:flex}.vehicle-speed{font-size:clamp(1.5rem,4vw,2.2rem);font-weight:600;font-variant-numeric:tabular-nums}.vehicle-unit{color:var(--amber);font-size:.65rem;font-weight:700;letter-spacing:.15em}.vehicle-name{margin-left:8px;color:var(--muted);font-size:.7rem;letter-spacing:.12em}.vehicle-condition{display:inline-flex;align-items:baseline;gap:5px;color:#d9e6d8;font-size:.68rem;font-variant-numeric:tabular-nums;white-space:nowrap}.vehicle-condition>span{color:var(--muted);font-size:.61rem}.vehicle-condition strong{color:var(--cyan-bright);font-size:.72rem;font-weight:700}.vehicle-readout.is-disabled .vehicle-condition strong{color:var(--red)}.vehicle-alert{flex:1 0 100%;margin-top:2px;padding:7px 11px;border:1px solid rgba(228,121,108,.48);border-radius:7px;background:#1c0d0fe6;color:#ffd0c9;font-size:.69rem;line-height:1.45;text-align:center;text-shadow:none}.vehicle-alert[hidden]{display:none}.controls-hint{position:absolute;right:max(22px,env(safe-area-inset-right));top:max(78px,calc(env(safe-area-inset-top) + 68px));max-width:390px;color:#e7ede37a;font-size:.61rem;text-align:right;line-height:1.85;text-shadow:0 2px 9px #061117}.controls-hint strong{color:#e7ede3d1;font-weight:600}.toast-stack{position:absolute;top:max(95px,calc(env(safe-area-inset-top) + 76px));left:50%;transform:translate(-50%);display:grid;justify-items:center;gap:8px;width:min(90vw,460px)}.toast{padding:10px 15px;border:1px solid rgba(120,185,174,.32);border-radius:8px;background:#081319e8;color:#d9e6d8;font-size:.77rem;text-align:center;box-shadow:0 8px 28px #00000042;animation:toast-in .2s ease-out}.toast.is-warning{border-color:#e4796c73;color:#f0c5bc}@keyframes toast-in{0%{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:translateY(0)}}.menu-screen{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:max(18px,env(safe-area-inset-top)) 18px max(18px,env(safe-area-inset-bottom));overflow-y:auto;background:linear-gradient(90deg,#040c107a,#040c1024 48%,#040c106b);pointer-events:auto;animation:menu-appear .22s ease-out}.menu-screen[hidden]{display:none}@keyframes menu-appear{0%{opacity:0}to{opacity:1}}.menu-panel{width:min(470px,100%);max-height:calc(100vh - 36px);overflow-y:auto;padding:clamp(24px,5vw,36px);border:1px solid rgba(190,210,198,.2);border-radius:15px;background:linear-gradient(145deg,#0b1920f5,#091218f2);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.menu-panel.is-wide{width:min(640px,100%)}.menu-overline{color:var(--cyan);font-size:.61rem;font-weight:700;letter-spacing:.22em}.menu-title{margin:8px 0 4px;font-size:clamp(1.55rem,5vw,2.1rem);font-weight:600;letter-spacing:.11em}.menu-title em{color:var(--amber);font-size:.48em;font-style:normal;letter-spacing:.19em}.menu-copy{margin:0 0 23px;color:var(--muted);font-size:.82rem;line-height:1.75}.menu-divider{height:1px;margin:20px 0;background:linear-gradient(90deg,var(--amber),rgba(214,167,94,.06))}.menu-actions{display:grid;gap:9px}.menu-actions.two-col{grid-template-columns:1fr 1fr}.action-button{min-height:43px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border:1px solid rgba(190,210,198,.17);border-radius:8px;background:#f2f7e809;color:#dce3d8;font-size:.82rem;text-align:left;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .15s ease}.action-button:hover:not(:disabled){transform:translateY(-1px);border-color:#78b9ae9e;background:#78b9ae1a}.action-button:disabled{opacity:.4;cursor:not-allowed}.action-button.is-primary{border-color:#d6a75ea6;background:linear-gradient(110deg,#966c2f5c,#6a512f24);color:#f1d49a}.action-button.is-primary:hover:not(:disabled){border-color:#e1bd78;background:#aa7e3a59}.action-button.is-quiet{justify-content:center;min-height:36px;border-color:transparent;background:transparent;color:#9aaba5;font-size:.74rem}.action-label{display:flex;align-items:center;gap:10px}.action-icon{width:25px;height:25px;display:grid;place-items:center;border-radius:6px;background:#78b9ae1c;color:var(--cyan-bright);font-size:.75rem}.action-meta{color:var(--subtle);font-size:.65rem}.menu-note{min-height:1.4em;margin:14px 0 0;color:#9eb3aa;font-size:.7rem;line-height:1.55}.menu-note.is-warning{color:#e4a89e}.sticky-control{margin:13px 0 4px}.sticky-control .action-button{width:100%}.sticky-control p{margin:7px 2px 0;color:var(--subtle);font-size:.66rem;line-height:1.6}.save-status{display:flex;align-items:center;gap:7px;color:#9bb2a8;font-size:.68rem}.save-status:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--cyan);box-shadow:0 0 9px #78b9ae99}.menu-footer{margin-top:21px;color:#b9c8be6e;font-size:.59rem;letter-spacing:.11em;text-align:center}.qa-metrics{display:flex;flex-wrap:wrap;gap:7px 12px;margin:16px 0 4px;padding:9px 10px;border:1px solid rgba(190,210,198,.11);border-radius:7px;background:#00000024;color:#bbcdc199;font:600 .59rem/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.015em}.mission-list{display:grid;gap:10px;margin:18px 0}.mission-option{display:grid;grid-template-columns:1fr auto;gap:8px 14px;padding:14px;border:1px solid var(--line);border-radius:9px;background:#ffffff06}.mission-option.is-complete{border-color:#78b9ae66}.mission-option h3{margin:0;color:#e7eadd;font-size:.88rem;font-weight:600}.mission-option p{grid-column:1 / -1;margin:0;color:var(--muted);font-size:.71rem;line-height:1.55}.mission-reward{align-self:start;color:var(--amber);font-size:.68rem;white-space:nowrap}.mission-option .action-button{grid-column:1 / -1}.mission-status{color:var(--subtle);font-size:.62rem}.mission-current{margin:15px 0 0;padding:12px 14px;border-left:2px solid var(--cyan);background:#78b9ae12;color:#c2d2c7;font-size:.74rem;line-height:1.6}.setting-row{display:grid;grid-template-columns:minmax(110px,1fr) minmax(120px,1.5fr) 42px;align-items:center;gap:12px;margin:15px 0}.setting-row label{color:#d6dfd5;font-size:.76rem}.setting-row output{color:var(--amber);font-size:.68rem;text-align:right;font-variant-numeric:tabular-nums}.setting-row input[type=range]{width:100%;accent-color:var(--amber)}.setting-row select{width:100%;padding:8px 9px;border:1px solid var(--line);border-radius:6px;background:#14252b;color:var(--ink)}.settings-hint{color:var(--subtle);font-size:.66rem;line-height:1.6}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:17px 0 20px}.help-item{display:flex;justify-content:space-between;gap:8px;padding:10px 11px;border:1px solid rgba(190,210,198,.12);border-radius:7px;color:var(--muted);font-size:.7rem}.help-item kbd{color:var(--amber);font:inherit;font-weight:700;white-space:nowrap}.help-footnote{color:var(--subtle);font-size:.68rem;line-height:1.65}.new-game-warning{margin:14px 0;padding:11px 13px;border:1px solid rgba(214,167,94,.3);border-radius:7px;background:#d6a75e12;color:#e5c787;font-size:.72rem;line-height:1.65}@media(max-width:720px){.hud{padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.brand-mark{width:36px;height:36px;border-radius:10px}.district-kicker{font-size:.54rem}.district-name{font-size:.78rem}.top-stats{gap:5px}.stat-chip{min-width:64px;padding:6px 8px}.stat-label{font-size:.5rem}.stat-value{font-size:.72rem}.health-track{width:48px}.wanted-stars{font-size:.71rem}.pause-chip{width:34px;height:34px}.controls-hint{display:none}.mission-card{left:max(12px,env(safe-area-inset-left));bottom:max(12px,env(safe-area-inset-bottom));width:min(274px,calc(100vw - 30px));padding:12px 13px}.mission-title{font-size:.84rem}.mission-objective{font-size:.68rem}.mission-distance{margin-top:7px;padding-top:7px;font-size:.58rem}.minimap-wrap{right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));width:clamp(124px,34vw,166px);padding:5px}.minimap-wrap:before{top:8px;right:8px;bottom:8px;left:8px}.map-caption{bottom:8px;font-size:.43rem}.interaction-hint{bottom:max(185px,calc(env(safe-area-inset-bottom) + 174px));font-size:.7rem}.vehicle-readout{bottom:max(190px,calc(env(safe-area-inset-bottom) + 178px))}.vehicle-readout.is-disabled{bottom:max(240px,calc(env(safe-area-inset-bottom) + 224px))}.toast-stack{top:max(74px,calc(env(safe-area-inset-top) + 65px))}}@media(max-width:430px){.identity{gap:8px}.top-stats .stat-chip:nth-child(2){display:none}.mission-card{width:min(235px,calc(100vw - 25px))}.minimap-wrap{width:118px}.mission-distance{font-size:.54rem}.menu-actions.two-col,.help-grid{grid-template-columns:1fr}.setting-row{grid-template-columns:90px minmax(80px,1fr) 38px;gap:8px}}@media(max-height:520px)and (orientation:landscape){.mission-card{bottom:12px;width:280px;padding:11px 13px}.minimap-wrap{bottom:12px;width:116px}.menu-panel{padding:18px 24px}.menu-copy{margin-bottom:13px}.menu-divider{margin:12px 0}.mission-list{grid-template-columns:1fr 1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
