:root{color-scheme:dark;--bg:#15171b;--panel:#1f2228;--line:#363b45;--text:#eef0f2;--muted:#9aa1ad;--gold:#d9ab3f;--red:#e2512f;--green:#4fb477;--radius:18px;font-family:"Noto Sans TC",system-ui,sans-serif;background:var(--bg);color:var(--text)}*{box-sizing:border-box}html{background:#0d0f12}body{margin:0;min-height:100vh;background:radial-gradient(circle at 50% 0,#29261d 0,transparent 35%),var(--bg);font-size:16px;line-height:1.6}.app-shell{width:min(100%,460px);min-height:100vh;margin:auto;padding:0 18px 36px;background:linear-gradient(180deg,rgba(255,255,255,.025),transparent 30%)}.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;min-height:54px;padding:5px 0;background:rgba(21,23,27,.94);backdrop-filter:blur(10px)}.brand{display:flex;align-items:center;gap:9px;font-size:.88rem;font-weight:700}.brand b{color:var(--gold)}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border:2px solid var(--gold);border-radius:50%;font:700 16px "Saira Condensed",sans-serif;color:var(--gold)}.timer,.num{font:700 1.2rem "Saira Condensed",monospace;font-variant-numeric:tabular-nums}.timer{padding:5px 10px;border:1px solid var(--line);border-radius:8px}.progress{height:4px;margin:0 -18px;background:#292d35}.progress span{display:block;width:0;height:100%;background:var(--gold);transition:width .35s ease}.station-nav{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:10px 0 8px}.station-nav span{padding:7px 3px;border:1px solid var(--line);border-radius:8px;color:var(--muted);font-size:.68rem;text-align:center}.station-nav .active{border-color:var(--gold);background:#332b18;color:var(--gold)}main{padding-top:12px;outline:none}.eyebrow{margin:0 0 6px;color:var(--gold);font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{max-width:12ch;margin-bottom:14px;font-size:clamp(2rem,9vw,2.8rem);line-height:1.13;letter-spacing:-.04em}h2{font-size:1.7rem;line-height:1.25}h3{font-size:1.05rem}.muted{color:var(--muted)}.lead{font-size:1.08rem}.panel,.card,.ticket{padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:0 12px 30px rgba(0,0,0,.18)}.ticket{border-top:4px solid var(--gold);background:repeating-linear-gradient(0deg,#1f2228,#1f2228 34px,#24272e 35px)}.ticket dl{display:grid;grid-template-columns:76px 1fr;gap:9px;margin:0}.ticket dt{color:var(--muted)}.ticket dd{margin:0;font-weight:700}.stack{display:grid;gap:12px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.choice,.btn{width:100%;min-height:50px;border:1px solid var(--line);border-radius:12px;background:#282c33;color:var(--text);font:700 1rem inherit;text-align:left;cursor:pointer}.choice{padding:14px 15px}.choice:hover,.choice:focus-visible{border-color:var(--gold);background:#302b1f}.choice.selected{border-color:var(--gold);box-shadow:inset 4px 0 var(--gold)}.choice.correct{border-color:var(--green);background:#24272d}.choice.wrong{border-color:var(--red);background:#351f1b}.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 18px;border-color:var(--gold);background:var(--gold);color:#18130a;text-align:center}.btn.secondary{background:transparent;color:var(--gold)}.btn.ghost{border-color:var(--line);background:transparent;color:var(--text)}button:disabled{cursor:not-allowed;opacity:.45}:focus-visible{outline:3px solid #fff;outline-offset:3px}.hero-visual{display:block;width:100%;margin:24px 0 20px}.note{padding:11px 13px;border-left:3px solid var(--gold);background:#2a271f;color:#d9d3c5;font-size:.9rem}.status{min-height:26px;margin:12px 0;color:var(--muted)}.status.good{color:var(--green)}.status.bad{color:#ff8a70}.process-lights{display:flex;gap:8px;margin:16px 0}.process-lights i{width:14px;height:14px;border-radius:50%;background:#4a4f59}.process-lights i.good{background:var(--green);box-shadow:0 0 12px var(--green)}.process-lights i.bad{background:var(--red);box-shadow:0 0 12px var(--red)}.machine{position:relative;height:210px;margin:12px 0;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:linear-gradient(135deg,#23262c,#17191d)}.rotor{position:absolute;top:28px;left:50%;width:112px;height:112px;border:18px solid #747b86;border-radius:50%;transform:translateX(-50%);animation:spin 2s linear infinite}.rotor:before{content:"";position:absolute;inset:18px;border:5px dotted #2c3037;border-radius:50%}.tolerance{position:absolute;right:20px;bottom:28px;left:20px;height:28px;border-radius:20px;background:#3b3f47}.tolerance-zone{position:absolute;top:0;height:100%;border-radius:20px;background:var(--green)}.needle{position:absolute;top:-7px;width:5px;height:42px;border-radius:3px;background:var(--red);box-shadow:0 0 9px var(--red)}@keyframes spin{to{transform:translateX(-50%) rotate(360deg)}}.rule-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.rule{padding:7px 9px;border:1px solid var(--line);border-radius:8px;color:var(--muted);font-size:.82rem}.sample{padding:14px;border:1px solid var(--line);border-radius:12px;background:#1b1e23}.sample-head{display:flex;justify-content:space-between;gap:8px}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}.segmented button{min-height:44px;border:1px solid var(--line);border-radius:9px;background:#282c33;color:var(--text);cursor:pointer}.segmented button.selected{border-color:var(--gold);color:var(--gold)}.map-wrap{position:relative;max-width:300px;margin:8px auto}.taiwan{display:block;width:100%;filter:drop-shadow(0 15px 18px rgba(0,0,0,.4))}.region{cursor:pointer;fill:#3a3f48;stroke:#15171b;stroke-width:3;transition:fill .2s}.region:hover,.region:focus{fill:#6a5729;outline:none}.region.wrong{fill:var(--red)}.region.correct{fill:var(--green)}.map-label{fill:#eef0f2;font:700 12px sans-serif;pointer-events:none}.score-ring{display:grid;place-items:center;width:160px;height:160px;margin:12px auto 22px;border:12px solid var(--gold);border-radius:50%;background:#1b1d22}.score-ring strong{font:700 4rem/1 "Saira Condensed"}.score-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.score-card{padding:12px 5px;border:1px solid var(--line);border-radius:12px;text-align:center}.score-card strong{display:block;color:var(--gold);font:700 1.8rem "Saira Condensed"}.share-card{width:100%;border-radius:14px}.copy-row{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.copy-row span{min-width:0;flex:1;overflow-wrap:anywhere}.copy-row button{min-height:38px;padding:6px 10px}.form-grid{display:grid;gap:12px}label{display:grid;gap:5px;color:var(--muted);font-size:.88rem}input,select{width:100%;min-height:48px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#17191d;color:var(--text);font:inherit}.station-splash{position:relative;overflow:hidden;padding:22px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(135deg,#2c281d,#1f2228)}.station-number{font:700 5rem/1 "Saira Condensed";color:rgba(217,171,63,.16)}.station-splash h2{margin-top:-24px}.toast{position:fixed;right:16px;bottom:16px;left:16px;max-width:424px;margin:auto;padding:12px 14px;border-radius:10px;background:#eef0f2;color:#15171b;text-align:center;box-shadow:0 10px 35px #0008}.hidden{display:none!important}

.channel-price-panel{margin:0 0 14px;padding:13px;border:1px solid #75653e;border-radius:14px;background:linear-gradient(145deg,#302b20,#1b2024)}.channel-price-head{display:grid;grid-template-columns:44px 1fr auto;gap:9px;align-items:center}.channel-price-head>span{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#d1a540;font-size:1.3rem}.channel-price-head h2,.channel-price-head .eyebrow{margin:0}.channel-price-head h2{font-size:1rem}.channel-price-head>b{color:#f1cd70;font-size:.62rem}.channel-price-panel>p{color:#bdc4be;font-size:.67rem;line-height:1.5}.channel-price-panel summary{padding:10px;border:1px solid #695a37;border-radius:9px;background:#211f19;color:#f0ca67;font-size:.72rem;font-weight:900;cursor:pointer}.channel-price-list{display:grid;gap:7px;margin-top:8px;max-height:420px;overflow:auto}.channel-price-list label{display:grid;grid-template-columns:minmax(0,1fr) 92px 58px;gap:6px;align-items:center;padding:8px;border-radius:9px;background:#181c1e}.channel-price-list span{min-width:0}.channel-price-list b,.channel-price-list small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.channel-price-list b{color:#f1f1ee;font-size:.64rem}.channel-price-list small{font-size:.52rem}.channel-price-list input{min-height:40px;padding:6px;font-size:.7rem}.channel-price-list button{min-height:40px;padding:5px;border:1px solid #8c7337;border-radius:7px;background:#30291b;color:#f0ca67;font-size:.64rem}.channel-price-status{margin:8px 0 0!important;color:#d8c37c!important}

.garage-expansion{margin-top:12px;padding:11px;border:1px solid #5f6d5e;border-radius:11px;background:#18231f}.garage-expansion h3{margin:10px 0 4px}.garage-expansion>p{color:#b9c5bf;font-size:.62rem}.garage-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.garage-stats span{padding:7px 3px;border-radius:8px;background:#101815;color:#aebbb5;font-size:.52rem;text-align:center}.garage-stats b{display:block;color:#f0ca67;font-size:.72rem}.garage-controls{display:grid;grid-template-columns:1fr 1fr;gap:7px}.garage-controls select{min-height:42px;padding:6px;font-size:.62rem}.garage-offer-preview{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:8px 0}.garage-offer-preview span{padding:7px;border-radius:8px;background:#111816;color:#aeb9b4;font-size:.54rem}.garage-offer-preview b{display:block;color:#f0cb69;font-size:.68rem}.garage-offer-preview b.good{color:#73d89d}.garage-offer-preview b.bad{color:#ff876d}.garage-result{margin:8px 0!important;padding:8px;border-radius:8px;background:#111816}.garage-result.good{color:#78dba0}.garage-result.bad{color:#ff927b}.garage-network-list{display:grid;grid-template-columns:1fr 1fr;gap:6px}.garage-network-list>span{padding:7px;border:1px solid #495a52;border-radius:8px;background:#202b27}.garage-network-list b,.garage-network-list small{display:block}.garage-network-list b{font-size:.61rem}.garage-network-list small{color:#a8b6af;font-size:.5rem}@media(max-width:370px){.garage-controls,.garage-network-list{grid-template-columns:1fr}}
.channel-growth{margin-top:11px;padding-top:10px;border-top:1px solid #46544e}.channel-growth-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.channel-growth-summary span{padding:7px 3px;border-radius:8px;background:#101815;color:#aebbb5;font-size:.5rem;text-align:center}.channel-growth-summary b{display:block;color:#78dba0;font-size:.66rem}.channel-growth>p{color:#b9c5bf;font-size:.58rem}.channel-milestones{display:grid;gap:7px}.channel-milestones article{padding:8px;border:1px solid #495a52;border-radius:9px;background:#111816}.channel-milestones article>b,.channel-milestones article>small{display:block}.channel-milestones article>small{margin:3px 0 7px;color:#aeb9b4;font-size:.52rem}.channel-milestones article>div{display:grid;grid-template-columns:1fr 1fr;gap:6px}.channel-milestones button{min-height:37px;padding:5px;border:1px solid #b78a31;border-radius:7px;background:#2d2718;color:#f0ca67;font-size:.64rem}.channel-milestones button:disabled{border-color:#3d4642;background:#202522;color:#6f7874}.channel-network-settlement{padding:10px;border-left:3px solid #78dba0;background:rgba(65,142,94,.1)}@media(max-width:370px){.channel-growth-summary{grid-template-columns:1fr}.channel-milestones article>div{grid-template-columns:1fr}}

/* Playable world */
.game-intro{display:grid;gap:18px}.intro-art{position:relative;height:42vh;min-height:300px;max-height:430px;overflow:hidden;border:1px solid var(--line);border-radius:24px;background:#20242a}.intro-map{width:100%;height:100%;object-fit:cover}.intro-art:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 48%,#15171b 100%)}.intro-character{position:absolute;right:-3%;bottom:-5%;z-index:1;width:46%;filter:drop-shadow(0 18px 18px #0009)}.intro-copy{margin-top:-34px;position:relative;z-index:2}.intro-copy h1{max-width:14ch}.control-hints{display:flex;gap:7px;margin:12px 0 14px}.control-hints span{flex:1;padding:8px;border:1px solid var(--line);border-radius:9px;color:var(--muted);font-size:.75rem;text-align:center}.route-label{margin:0 0 7px;color:var(--gold);font-size:.76rem;font-weight:800}.vehicle-pick{display:grid;grid-template-columns:1fr 1fr;gap:7px}.vehicle-pick button{position:relative;min-height:68px;padding:9px 8px 8px 48px;border:1px solid var(--line);border-radius:11px;background:#24282f;color:var(--text);font:inherit;text-align:left;cursor:pointer}.vehicle-pick button:hover,.vehicle-pick button:focus-visible{border-color:var(--gold);background:#302b1f}.vehicle-pick i{position:absolute;top:16px;left:12px;width:27px;height:27px;border:7px solid #838a94;border-radius:50%;box-shadow:inset 0 0 0 3px #1b1e23}.vehicle-pick b,.vehicle-pick small{display:block}.vehicle-pick b{font-size:.76rem;line-height:1.2}.vehicle-pick small{margin-top:3px;color:var(--muted);font-size:.59rem;line-height:1.25}.random-route{margin-top:8px}.free-demo{margin:7px 0 0;color:var(--muted);font-size:.69rem;text-align:center}.world-game{position:relative;height:calc(100dvh - 68px);min-height:560px;margin:-22px -18px -36px;overflow:hidden;background:#20242a;touch-action:none}.world-game canvas{position:absolute;inset:0;display:block}.world-hud{position:absolute;z-index:3;top:12px;right:12px;left:12px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;pointer-events:none}.mission-chip,.cash-chip{padding:9px 11px;border:1px solid #ffffff30;border-radius:13px;background:rgba(15,17,20,.88);box-shadow:0 7px 25px #0008;backdrop-filter:blur(8px)}.mission-chip span{display:inline-block;margin-right:6px;color:var(--gold);font:700 .86rem "Saira Condensed"}.mission-chip strong{font-size:.87rem}.mission-chip small{display:block;overflow:hidden;color:#c8ccd2;font-size:.68rem;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.cash-chip{text-align:right}.cash-chip small{display:block;color:var(--muted);font-size:.62rem}.cash-chip b{color:var(--gold);font:700 .92rem "Saira Condensed";white-space:nowrap}.station-dots{grid-column:1/-1;display:flex;gap:5px}.station-dots span{width:18px;height:4px;border-radius:4px;background:#ffffff48}.station-dots span.active{background:var(--gold)}.station-dots span.done{background:var(--green)}.joystick{position:absolute;z-index:4;bottom:24px;left:20px;width:116px;height:116px;border:2px solid #fff5;border-radius:50%;background:#101216b5;box-shadow:inset 0 0 25px #0008;touch-action:none}.joystick:before,.joystick:after{content:"";position:absolute;background:#ffffff24}.joystick:before{top:50%;right:15px;left:15px;height:1px}.joystick:after{top:15px;bottom:15px;left:50%;width:1px}.joystick i{position:absolute;z-index:1;top:33px;left:33px;width:48px;height:48px;border:2px solid var(--gold);border-radius:50%;background:#342d1f;box-shadow:0 4px 13px #000;will-change:transform}.action-button{position:absolute;z-index:4;right:20px;bottom:38px;width:122px;min-height:58px;padding:8px;border:2px solid var(--gold);border-radius:50px;background:var(--gold);color:#17130b;font:900 .9rem inherit;box-shadow:0 8px 25px #0009;cursor:pointer}.map-tip{position:absolute;z-index:3;right:145px;bottom:77px;padding:6px 9px;border-radius:8px;background:#111c;color:#ddd;font-size:.67rem;transition:opacity .4s}.map-tip.fade{opacity:0}.game-banner{position:absolute;z-index:9;top:42%;left:50%;display:grid;width:76%;padding:18px;border:1px solid var(--gold);border-radius:16px;background:#15171bf0;text-align:center;transform:translate(-50%,-50%);animation:banner-in 1.5s both}.game-banner strong{color:var(--gold);font-size:1.35rem}.game-banner span{color:var(--muted)}@keyframes banner-in{0%{opacity:0;transform:translate(-50%,-40%) scale(.9)}15%,75%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-60%) scale(.95)}}
.task-overlay{position:absolute;z-index:8;inset:0;display:grid;align-items:end;padding:12px;background:#090b0ec9;backdrop-filter:blur(5px);touch-action:auto}.task-card{max-height:94%;padding:20px;border:1px solid #4a505c;border-radius:22px;background:#1b1e23;box-shadow:0 22px 60px #000c;overflow:auto}.task-card h2{margin-bottom:14px;font-size:1.45rem}.task-options,.upgrade-grid,.cnc-grid,.cnc-mode{display:grid;gap:8px}.task-options button,.upgrade-grid button,.cnc-grid button,.cnc-mode button,.vehicle-options button,.resource-grid button{min-height:48px;padding:11px;border:1px solid var(--line);border-radius:11px;background:#282c33;color:var(--text);font:inherit;text-align:left;cursor:pointer}.task-options button.correct,.upgrade-grid button.correct,.cnc-grid button.correct,.cnc-mode button.correct,.vehicle-options button.correct{border-color:var(--green);background:#24272d}.task-options button.wrong,.cnc-grid button.wrong,.vehicle-options button.wrong{border-color:var(--red);background:#351f1b}.task-feedback{min-height:24px;margin:10px 0 0;color:#c8cdd5;font-size:.82rem}.process-caption{margin:5px 0 10px;color:var(--gold);font-size:.8rem;font-weight:800}.role-brief{display:grid;grid-template-columns:76px 1fr;gap:12px;align-items:center;margin-bottom:10px}.role-brief b,.role-brief span{display:block}.role-brief b em{color:var(--gold);font-size:.7rem;font-style:normal}.role-brief span{color:var(--muted);font-size:.75rem}.role-brief p{margin:4px 0;font-size:.8rem;line-height:1.45}.npc-portrait{width:76px;height:88px;border:1px solid var(--line);border-radius:12px;background:url('../img/npc-sheet-mobile-v81.webp') 0 0/400% 200% no-repeat #111}.skill-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin:10px 0}.skill-strip span{padding:6px 2px;border:1px solid var(--line);border-radius:7px;color:var(--muted);font-size:.57rem;text-align:center}.skill-strip b{display:block;color:var(--text);font:700 .65rem "Saira Condensed"}.finance-board{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}.finance-board span{padding:8px;border:1px solid var(--line);border-radius:9px;color:var(--muted);font-size:.68rem}.finance-board b{display:block;color:var(--gold);font:700 1rem "Saira Condensed"}.upgrade-grid{grid-template-columns:1fr 1fr}.upgrade-grid button b,.upgrade-grid button span,.upgrade-grid button small{display:block}.upgrade-grid button span{color:var(--gold);font:700 .85rem "Saira Condensed"}.upgrade-grid button small{color:var(--muted);font-size:.64rem;line-height:1.3}.factory-order,.shipping-order{display:grid;padding:12px;border:1px solid var(--gold);border-radius:12px;background:#28251d}.factory-order span,.factory-order small,.shipping-order span,.shipping-order small{color:#c8c1ae;font-size:.75rem}.factory-order strong,.shipping-order strong{font-size:1rem}.factory-order b{color:var(--gold);font:700 1.6rem "Saira Condensed"}.factory-order.complete{text-align:center}.resource-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.resource-grid button{text-align:center}.resource-grid button.filled{border-color:var(--green)}.resource-grid b,.resource-grid span,.resource-grid small{display:block}.resource-grid b{font-size:.75rem}.resource-grid span{font:700 1rem "Saira Condensed"}.resource-grid small{color:var(--muted);font-size:.58rem}.resource{display:block;width:42px;height:34px;margin:0 auto 4px;border-radius:8px;background:linear-gradient(145deg,#8f969f,#424750);box-shadow:inset 0 0 0 4px #fff2}.resource.carbon{background:linear-gradient(145deg,#525762,#17191d)}.resource.alloy{background:linear-gradient(145deg,#d9ab3f,#75602c)}.handoff-line{display:flex;align-items:center;gap:6px;margin-bottom:12px;padding:10px;border-radius:10px;background:#15171b;font-size:.68rem}.handoff-line i{height:2px;flex:1;background:var(--gold)}.cnc-grid{grid-template-columns:repeat(3,1fr)}.cnc-grid button{text-align:center}.cnc-grid b,.cnc-grid span{display:block}.cnc-grid span{color:var(--muted);font-size:.6rem}.skill-duel{display:grid;grid-template-columns:1fr auto 1fr;gap:7px;align-items:center;margin-bottom:10px}.skill-duel>div{padding:10px;border:1px solid var(--line);border-radius:10px;text-align:center}.skill-duel>strong{color:var(--red)}.skill-duel span,.skill-duel b,.skill-duel small{display:block}.skill-duel b{color:var(--gold);font:700 1.05rem "Saira Condensed"}.skill-duel small{color:var(--muted);font-size:.62rem}.skill-duel .legend{border-color:var(--gold)}.cnc-mode{grid-template-columns:1fr 1fr}.cnc-mode b,.cnc-mode span{display:block}.cnc-mode span{color:var(--muted);font-size:.65rem}.machine-scene{position:relative;height:180px;margin-bottom:10px;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:radial-gradient(circle,#343943,#121417 70%)}.production-disc{position:absolute;top:32px;left:50%;width:116px;height:116px;border:18px solid #777e88;border-radius:50%;background:#24282e;transform:translateX(-50%)}.production-disc:after,.coating-disc:after{content:"";position:absolute;inset:29px;border:6px solid #15171b;border-radius:50%}.production-disc.turning{animation:disc-turn .35s linear infinite}.production-disc i{position:absolute;display:none;width:10px;height:10px;border-radius:50%;background:#17191d}.production-disc i:nth-child(1){top:3px;left:36px}.production-disc i:nth-child(2){top:25px;right:4px}.production-disc i:nth-child(3){right:12px;bottom:14px}.production-disc i:nth-child(4){bottom:7px;left:24px}.production-disc i:nth-child(5){top:28px;left:2px}.production-disc.drilling i{display:block}.production-disc.slotting:before{content:"";position:absolute;inset:-9px;border:4px dashed #2a2e35;border-radius:50%}.laser-mark{display:none}.cutting-tool{position:absolute;z-index:2;top:75px;left:20px;width:105px;height:20px;background:linear-gradient(90deg,#24282d,#b8bec5);clip-path:polygon(0 20%,85% 20%,100% 50%,85% 80%,0 80%)}.active .sparks{position:absolute;top:77px;left:131px;width:6px;height:6px;border-radius:50%;background:#ffbf49;box-shadow:12px -8px #ff6b32,18px 4px #ffd67a,8px 16px #e2512f;animation:spark .45s steps(2) infinite}.production-meta{display:flex;justify-content:space-between}.production-meta b{color:var(--gold)}.production-progress{height:10px;margin:7px 0;border-radius:8px;background:#333842;overflow:hidden}.production-progress i{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--gold),var(--red))}.batch-tray{display:flex;gap:5px}.batch-tray i{width:24px;height:24px;border:5px solid #858c96;border-radius:50%}@keyframes disc-turn{to{transform:translateX(-50%) rotate(360deg)}}@keyframes spark{50%{opacity:.35;transform:translate(8px,4px)}}.outsourcing-route{display:grid;grid-template-columns:68px 1fr 68px;align-items:center;gap:5px}.mini-factory{display:grid;place-items:center;height:64px;border:1px solid var(--gold);border-radius:8px;background:#2c291f;color:var(--gold);font-size:.65rem;text-align:center}.mini-factory.coating{border-color:#5ba8d9;color:#8ecdf1}.route-road{position:relative;height:34px;border-top:2px dashed #8b929b;border-bottom:2px dashed #8b929b}.route-road i{position:absolute;top:3px;left:0;width:42px;height:26px;border-radius:5px;background:#eee}.route-road i:before{content:"";position:absolute;bottom:-4px;left:5px;width:8px;height:8px;border-radius:50%;background:#222;box-shadow:24px 0 #222}.route-road i b{position:absolute;inset:7px 2px auto;color:#15171b;font:900 8px sans-serif;text-align:center}.route-road i.drive{animation:truck-drive 1.35s ease-in-out forwards}@keyframes truck-drive{0%{left:0}50%{left:calc(100% - 42px)}75%{left:calc(100% - 42px)}100%{left:0}}.coating-disc{position:relative;width:82px;height:82px;margin:12px auto;border:15px solid #181a1f;border-radius:50%;background:#363b43;box-shadow:0 0 0 2px #555}.coating-disc span{position:absolute;z-index:2;top:28px;left:10px;color:#d9ab3f;font:700 8px sans-serif}.qc-machine{position:relative;height:135px;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:#111317}.qc-machine .coating-disc{margin:24px auto}.scan-line{position:absolute;top:12px;bottom:12px;left:15%;width:3px;background:#e2512f;box-shadow:0 0 12px #e2512f}.qc-machine.scanning .scan-line{animation:scan 1.2s ease-in-out}@keyframes scan{50%{left:85%}}.qc-readings{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:8px 0}.qc-readings span{padding:7px;border:1px solid var(--line);border-radius:8px;color:var(--muted);font-size:.64rem;text-align:center}.qc-readings b{display:block;color:var(--text)}.qc-readings b.good{color:var(--green)}.packing-line{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:12px 0}.product-box{display:grid;place-items:center;width:94px;height:72px;border:2px solid #a3763e;border-radius:4px;background:repeating-linear-gradient(90deg,#7b542d,#7b542d 43px,#8b6337 44px,#8b6337 47px);color:#fff;text-align:center}.product-box b{font:700 1rem "Saira Condensed"}.product-box span{font-size:.58rem}.vehicle-options{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}.vehicle-options.three{grid-template-columns:repeat(3,1fr)}.vehicle-options button{text-align:center;overflow:hidden}.vehicle-options b,.vehicle-options small{display:block}.vehicle-options small{color:var(--muted);font-size:.59rem}.vehicle-thumb{position:relative;display:block;width:100%;aspect-ratio:1.15;margin-bottom:5px;background-image:url('../img/delivery-vehicles-mobile-v81.webp');background-repeat:no-repeat;background-size:200% 100%}.vehicle-thumb.truck{background-position:0 center}.vehicle-thumb.scooter{background-position:100% center}.vehicle-brand{position:absolute;top:56%;left:35%;padding:1px 4px;background:#d9ab3f;color:#15171b;font:900 7px sans-serif;transform:rotate(-9deg)}.vehicle-thumb.scooter .vehicle-brand{top:55%;left:53%;transform:rotate(6deg)}.freight-thumb{display:flex;align-items:end;justify-content:center;gap:3px;width:100%;aspect-ratio:1.15;padding-bottom:15px}.freight-thumb i{width:26%;height:35%;border:2px solid #b7864b;background:#7f572f}.freight-thumb i:nth-child(2){height:55%}.vehicle-depart .vehicle-thumb{animation:vehicle-go 1s ease-in forwards}@keyframes vehicle-go{to{transform:translateX(160%)}}.campaign-board,.feedback-device,.outlet-badge{margin-bottom:10px;padding:12px;border:1px solid var(--line);border-radius:11px;background:#15171b}.campaign-board span,.feedback-device span{color:var(--gold);font-size:.69rem;font-weight:800}.campaign-board p,.feedback-device p{margin:3px 0}.outlet-badge b,.outlet-badge span{display:block}.outlet-badge span{color:var(--muted);font-size:.75rem}.npc-scene{display:grid;grid-template-columns:58px 1fr;gap:8px;align-items:center;margin-bottom:10px}.npc-avatar{width:58px;height:68px;border-radius:10px;background:url('../img/npc-sheet-mobile-v81.webp') 66.6% 100%/400% 200% no-repeat #111}.speech{position:relative;margin:0;padding:10px;border:1px solid var(--line);border-radius:12px;background:#292d34;font-size:.8rem}.dealer-network{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:9px}.dealer-network:before{content:"";position:absolute;top:14px;right:15%;left:15%;height:2px;background:#4b515c}.dealer-network span{position:relative;z-index:1;text-align:center}.dealer-network i{display:block;width:26px;height:26px;margin:auto;border:5px solid #30353e;border-radius:50%;background:#9299a4}.dealer-network .active i{border-color:#5f4b20;background:var(--gold);box-shadow:0 0 12px #d9ab3f}.dealer-network b,.dealer-network small{display:block}.dealer-network b{font-size:.72rem}.dealer-network small{color:var(--muted);font-size:.62rem}

@media(max-height:650px){.world-game{min-height:515px}.joystick{bottom:15px;width:100px;height:100px}.joystick i{top:28px;left:28px;width:42px;height:42px}.action-button{bottom:25px}.task-card{max-height:97%;padding:15px}.task-card h2{font-size:1.25rem;margin-bottom:9px}.machine-scene{height:145px}.production-disc{top:18px}}
@media(min-width:461px){.app-shell{border-right:1px solid #2c3037;border-left:1px solid #2c3037}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
.media-ladder{display:grid;gap:6px;max-height:310px;padding-right:3px;overflow:auto}.media-ladder button{display:grid;grid-template-columns:1fr auto;gap:0 6px;min-height:55px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:#282c33;color:var(--text);font:inherit;text-align:left;cursor:pointer}.media-ladder button b{font-size:.8rem}.media-ladder button span{color:var(--gold);font:700 .68rem "Saira Condensed"}.media-ladder button small{grid-column:1/-1;color:var(--muted);font-size:.62rem}.media-ladder button.correct{border-color:var(--green);background:#24272d}.booking-source{display:grid;gap:2px;margin-bottom:10px;padding:13px;border:1px solid #c77be8;border-radius:12px;background:linear-gradient(135deg,#2d2033,#1d2026)}.booking-source.referral{border-color:var(--green);background:linear-gradient(135deg,#24272d,#1d2026)}.booking-source span{color:var(--gold);font-size:.68rem;font-weight:900}.booking-source b{font-size:1rem}.booking-source small{color:var(--muted)}.close-meter{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;margin:10px 0}.close-meter span{font-size:.72rem}.close-meter>div{height:12px;border-radius:10px;background:#323640;overflow:hidden}.close-meter i{display:block;height:100%;background:linear-gradient(90deg,var(--red),var(--gold),var(--green))}.close-meter>b{color:var(--gold);font:700 1.1rem "Saira Condensed"}.booking-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.booking-slots button{min-height:54px;padding:7px;border:1px solid var(--line);border-radius:9px;background:#282c33;color:var(--text);font:700 .72rem inherit;cursor:pointer}.booking-slots button.correct{border-color:var(--green);background:#24272d}.booking-slots button.wrong{border-color:var(--red);background:#351f1b}
.nav-button{position:absolute;z-index:4;right:29px;bottom:108px;min-width:102px;min-height:42px;padding:7px 14px;border:1px solid #ffffff70;border-radius:24px;background:#111c;color:#fff;font:800 .8rem inherit;box-shadow:0 7px 20px #0008;backdrop-filter:blur(7px);cursor:pointer}.nav-button:active{transform:scale(.96)}
.funding-recovery{margin-top:10px}
/* 救援委託（取代緊急週轉）與自動派送重試：深底亮字 */
.rescue-panel{display:grid;gap:8px;margin-top:10px;padding:12px;border:1px solid var(--gold);border-radius:12px;background:#2c281d;color:var(--text)}.rescue-panel>b{color:var(--gold);font-size:.9rem}.rescue-panel small{color:#d8d2c2;font-size:.68rem;line-height:1.5}.rescue-panel p{margin:0;font-size:.8rem;line-height:1.55;overflow-wrap:anywhere}.rescue-panel .task-options button{min-height:48px;text-align:left}.rescue-msg{min-height:1.2em;color:#ffd27a}.rescue-msg.good{color:#78dba0}
.auto-dispatch-retry{display:grid;gap:8px;margin-top:12px}.auto-dispatch-retry .btn{width:100%}
.abandon-confirm p{overflow-wrap:anywhere}
.world-game{height:calc(100vh - 68px);height:calc(100dvh - 68px)}
@media(max-height:650px){.world-game{height:calc(100vh - 68px);height:calc(100dvh - 68px);min-height:0}.nav-button{bottom:92px}.map-tip{display:none}}
.addon-banner{display:grid;gap:2px;margin-bottom:10px;padding:12px;border:1px solid var(--gold);border-radius:12px;background:#2c281d}.addon-banner span{color:var(--gold);font-size:.68rem;font-weight:900}.addon-banner b{font-size:.9rem}.addon-banner small{color:var(--muted);font-size:.65rem}.addon-shelf{display:grid;grid-template-columns:1fr 1fr;gap:7px}.addon-shelf button{position:relative;min-height:86px;padding:10px 8px 8px 34px;border:1px solid var(--line);border-radius:11px;background:#282c33;color:var(--text);font:inherit;text-align:left;cursor:pointer}.addon-shelf button>i{position:absolute;top:12px;left:10px;width:15px;height:15px;border:2px solid #838a94;border-radius:50%}.addon-shelf button.selected{border-color:var(--green);background:#24272d}.addon-shelf button.selected>i{border-color:var(--green);background:var(--green);box-shadow:inset 0 0 0 3px #24272d}.addon-shelf b,.addon-shelf span,.addon-shelf small{display:block}.addon-shelf b{font-size:.72rem;line-height:1.3}.addon-shelf span{margin-top:4px;color:var(--gold);font:700 .78rem "Saira Condensed"}.addon-shelf small{color:var(--muted);font-size:.6rem}
.addon-shelf button>i:not(:empty){display:grid;place-items:center;width:20px;height:20px;border:0;background:#191c22;color:#f2cc68;font:900 .72rem sans-serif;box-shadow:0 0 0 1px #79818c}.addon-shelf button.selected>i:not(:empty){background:#4fb477;color:#102016;box-shadow:0 0 0 2px #92dfad}.repair-custom-preview{position:relative;height:175px;margin:0 0 10px;overflow:hidden;border:1px solid #6a7482;border-radius:14px;background:linear-gradient(180deg,#7893a6 0 62%,#39434b 63% 69%,#171b20 70%);isolation:isolate}.repair-custom-preview:before{content:"改裝預覽區";position:absolute;top:8px;left:9px;padding:3px 7px;border-radius:6px;background:#10151bc9;color:#e9edf1;font-size:.59rem;font-weight:900}.repair-custom-preview>span{position:absolute;right:8px;bottom:6px;left:8px;color:#ced4db;font-size:.61rem;text-align:center}.custom-car{position:absolute;top:49px;left:50%;width:245px;height:79px;transform:translateX(-50%);transition:transform .35s}.custom-body{position:absolute;z-index:2;right:10px;bottom:18px;left:10px;height:47px;border:3px solid #202832;border-radius:42px 60px 13px 14px;background:linear-gradient(165deg,#f2f4f5 0 45%,#aeb7c0 46% 58%,#6d7883 59%);box-shadow:inset 0 -8px #2b343d55,0 9px 10px #0006}.custom-body:before{content:"";position:absolute;top:-26px;left:57px;width:112px;height:38px;border:3px solid #202832;border-bottom:0;border-radius:50px 55px 0 0;background:linear-gradient(115deg,#9ec8df 0 46%,#303339 47% 51%,#88b5cc 52%);clip-path:polygon(20% 0,73% 0,100% 100%,0 100%)}.custom-body:after{content:"";position:absolute;right:13px;top:15px;width:31px;height:8px;border-radius:3px;background:#ffcd58;box-shadow:-188px 0 #e44d3e}.custom-wheel{position:absolute;z-index:4;bottom:1px;width:47px;height:47px;border:10px solid #171a1e;border-radius:50%;background:radial-gradient(circle,#313943 0 18%,#9aa3ad 20% 27%,#4a535d 29% 52%,#cbd1d6 54% 61%,#363e47 63%);box-shadow:0 5px 7px #0008;transition:.3s}.wheel-front{right:34px}.wheel-rear{left:37px}.custom-brake{position:absolute;z-index:3;bottom:16px;width:20px;height:20px;border:3px solid #666f78;border-radius:50%;background:#303840;opacity:.15;transition:.3s}.brake-front{right:47px}.brake-rear{left:50px}.custom-car>b{position:absolute;z-index:5;top:38px;left:108px;padding:1px 5px;border-radius:3px;background:#d9ab3f;color:#17130b;font:900 7px sans-serif}.has-alloy-wheels .custom-wheel{border-width:7px;background:conic-gradient(#e9edf1,#59636d,#fff,#4b555f,#e9edf1);box-shadow:inset 0 0 0 7px #262d35,0 5px 8px #0009}.has-sport-tires .custom-wheel{border-width:12px;border-color:#090b0e;filter:drop-shadow(0 0 3px #78a7c0)}.has-tsgd-brake-kit .custom-brake{width:27px;height:27px;bottom:12px;border-color:#d9ab3f;background:#df4a38;opacity:1;box-shadow:0 0 8px #e2512f}.has-tsgd-brake-kit .brake-front{right:44px}.has-tsgd-brake-kit .brake-rear{left:47px}.has-sport-suspension .custom-car{transform:translate(-50%,9px)}.has-sport-suspension .custom-body{background:linear-gradient(165deg,#e6bd45 0 45%,#a87621 46% 58%,#644a1d 59%)}

/* Free-look camera controls */
.world-game{touch-action:auto}
.world-game canvas{cursor:grab;touch-action:none}
.world-game canvas.is-panning{cursor:grabbing}
.world-hud{top:calc(12px + env(safe-area-inset-top,0px))}
.joystick{bottom:calc(24px + env(safe-area-inset-bottom,0px))}
.action-button{bottom:calc(38px + env(safe-area-inset-bottom,0px))}
.nav-button{bottom:calc(108px + env(safe-area-inset-bottom,0px));min-height:44px}
.map-tip{bottom:calc(77px + env(safe-area-inset-bottom,0px));max-width:calc(100% - 175px);line-height:1.35}
.follow-button{position:absolute;z-index:4;top:calc(92px + env(safe-area-inset-top,0px));right:12px;min-width:105px;min-height:44px;padding:8px 13px;border:1px solid var(--gold);border-radius:24px;background:#111e;color:var(--gold);font:800 .78rem inherit;box-shadow:0 7px 20px #0008;backdrop-filter:blur(7px);cursor:pointer}
.follow-button:active{transform:scale(.96)}
@media(max-height:650px){.joystick{bottom:calc(15px + env(safe-area-inset-bottom,0px))}.action-button{bottom:calc(25px + env(safe-area-inset-bottom,0px))}.nav-button{bottom:calc(92px + env(safe-area-inset-bottom,0px))}.follow-button{top:calc(84px + env(safe-area-inset-top,0px))}}

/* Navigation, field procurement, radar */
.topbar{gap:8px}.brand{min-width:0;flex:1}.app-back{min-width:74px;min-height:44px;padding:7px 10px;border:1px solid var(--line);border-radius:10px;background:#20242a;color:var(--text);font:800 .78rem inherit;cursor:pointer}.app-back[hidden]{display:none}.task-back{min-height:44px;margin:0 0 10px;padding:7px 12px;border:1px solid var(--line);border-radius:10px;background:#252930;color:var(--text);font:800 .8rem inherit;cursor:pointer}.mini-map{position:absolute;z-index:4;top:calc(92px + env(safe-area-inset-top,0px));right:12px;width:108px;padding:6px;border:1px solid #ffffff38;border-radius:13px;background:#101216dc;box-shadow:0 8px 24px #0009;pointer-events:none;transition:border-color .2s,box-shadow .2s}.mini-map-head{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-bottom:5px;font-size:.67rem;line-height:1.2}.mini-map-head b{color:var(--gold)}.mini-map-head span{color:#b8bec7}.mini-map canvas{position:relative;inset:auto;display:block;width:100%;height:auto;aspect-ratio:1024/1072;border:1px solid #ffffff24;border-radius:8px;cursor:default;touch-action:auto}.mini-map.alert{border-color:#ff5b45;box-shadow:0 0 0 3px #ff5b4538,0 8px 28px #000b;animation:radar-alert .75s ease-in-out infinite alternate}.mini-map.alert .mini-map-head span{color:#ff7764;font-weight:900}.follow-button{top:calc(276px + env(safe-area-inset-top,0px))}.supply-route{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:9px 0}.supply-route span{display:grid;justify-items:center;align-content:start;min-height:94px;padding:8px 4px;border:1px solid var(--line);border-radius:10px;background:#20242a;text-align:center}.supply-route span>i{display:grid;place-items:center;width:25px;height:25px;margin-bottom:4px;border:2px solid var(--gold);border-radius:50%;color:var(--gold);font:900 .72rem "Saira Condensed";font-style:normal}.supply-route span>b{font-size:.69rem;line-height:1.25}.supply-route span>small{color:var(--muted);font-size:.61rem;line-height:1.25}.supply-route span.done{border-color:var(--green);background:#24272d}.supply-route span.done>i{border-color:var(--green);background:var(--green);color:#101712}.resource-grid .resource-card{min-height:118px;padding:11px 6px;border:1px solid var(--line);border-radius:11px;background:#282c33;text-align:center}.resource-grid .resource-card.filled{border-color:var(--green);background:#24272d}.resource-card b,.resource-card span,.resource-card small{display:block}.resource-card b{font-size:.72rem}.resource-card span{font:700 1rem "Saira Condensed"}.resource-card small{color:var(--muted);font-size:.6rem}.resource-card em{font-style:normal}.resource-card .resource{display:block}@keyframes radar-alert{to{box-shadow:0 0 0 5px #ff5b4550,0 8px 30px #000c}}
@media(max-height:650px){.mini-map{top:calc(84px + env(safe-area-inset-top,0px));width:88px}.mini-map-head{font-size:.6rem}.follow-button{top:calc(230px + env(safe-area-inset-top,0px))}}

/* Device safe areas: the header owns the top inset; world controls own the bottom inset. */
.topbar{min-height:calc(54px + env(safe-area-inset-top,0px));padding-top:calc(5px + env(safe-area-inset-top,0px))}
.world-game{height:calc(100vh - 68px - env(safe-area-inset-top,0px));height:calc(100dvh - 68px - env(safe-area-inset-top,0px))}
.world-hud{top:12px}.mini-map{top:92px}.follow-button{top:276px}
@media(max-height:650px){.mini-map{top:84px}.follow-button{top:230px}}

/* Original procedural background music control */
.top-actions{display:flex;flex:0 0 auto;align-items:center;gap:6px}.sound-toggle{position:relative;display:flex;align-items:center;justify-content:center;gap:4px;min-width:82px;height:38px;padding:0 8px;border:1px solid var(--line);border-radius:10px;background:#20242a;color:#aeb4bd;font:900 1rem/1 "Saira Condensed",sans-serif;cursor:pointer}.sound-toggle span{font-size:1.2rem}.sound-toggle b{max-width:58px;font-size:.68rem;line-height:1.05}.sound-toggle:hover,.sound-toggle:focus-visible{border-color:var(--gold);color:var(--gold)}.sound-toggle.is-playing{border-color:#8e742f;background:#2e291c;color:var(--gold);box-shadow:inset 0 0 0 1px #d9ab3f22}.sound-toggle.is-playing span{animation:sound-pulse 1.25s ease-in-out infinite alternate}.sound-toggle.is-muted:after{content:"";position:absolute;left:7px;width:25px;height:2px;border-radius:2px;background:#e2512f;transform:rotate(-45deg)}.sound-toggle:disabled{opacity:.4}.audio-start-prompt{position:fixed;z-index:90;left:50%;bottom:max(18px,env(safe-area-inset-bottom));display:grid;grid-template-columns:34px auto;column-gap:7px;align-items:center;min-width:210px;padding:10px 15px;border:1px solid #e4b74d;border-radius:14px;background:#171a1ff2;color:#f5ce69;box-shadow:0 8px 28px #000b;transform:translateX(-50%);cursor:pointer}.audio-start-prompt span{grid-row:1/3;font-size:1.65rem}.audio-start-prompt b,.audio-start-prompt small{text-align:left}.audio-start-prompt small{color:#d2d5d9;font-size:.68rem}.audio-start-prompt[hidden]{display:none}@keyframes sound-pulse{to{transform:translateY(-2px);text-shadow:0 0 9px #d9ab3f}}@media(prefers-reduced-motion:reduce){.sound-toggle.is-playing span{animation:none}}@media(max-width:430px){.sound-toggle{min-width:44px;width:44px;padding:0}.sound-toggle b{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.topbar{gap:5px}.app-back{min-width:68px;padding-inline:7px}.brand{gap:6px}.brand-mark{width:31px;height:31px}.timer{padding-inline:7px}.top-actions{gap:4px}}

/* Eight illustrated station arrivals */
.sound-toggle[data-audio-state="waiting"]{border-color:var(--gold);color:var(--gold);animation:audio-attention 1.1s ease-in-out 4}.sound-toggle[data-audio-state="waiting"]:before{content:"點這裡開啟音樂";position:fixed;z-index:91;top:72px;right:10px;width:max-content;padding:7px 10px;border:1px solid #d9ab3f88;border-radius:8px;background:#171a1ff2;color:#f5ce69;font-size:.72rem;box-shadow:0 5px 18px #0008;pointer-events:none;animation:audio-tip-hide 5s forwards}@keyframes audio-attention{50%{box-shadow:0 0 0 5px #d9ab3f35;transform:scale(1.04)}}@keyframes audio-tip-hide{0%,75%{opacity:1}100%{opacity:0;visibility:hidden}}@media(prefers-reduced-motion:reduce){.sound-toggle[data-audio-state="waiting"]{animation:none}}
.weapon-title{grid-column:1/-1;margin:0;color:#f5ce69;font-weight:900}.weapon-grid{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:7px;width:100%}.weapon-button{display:grid;gap:4px;min-height:66px;padding:8px 5px}.weapon-button b{font-size:.84rem}.weapon-button small{color:#c9ccd1;font-size:.65rem;line-height:1.25}.weapon-hammer{border-color:#d66c4f}.weapon-pan{border-color:#79a9c9}.mine-actions>button[data-combat="retreat"]{grid-column:1/-1}@media(max-width:350px){.weapon-grid{grid-template-columns:1fr}.weapon-button{min-height:48px}}
.station-transition{background:linear-gradient(180deg,#080a0dcf,#080a0df2)}.station-transition .task-card{padding:14px;background:linear-gradient(160deg,#23262c,#17191e 72%)}.station-transition .task-card h2{margin-bottom:10px}.station-cut-art{position:relative;width:min(100%,calc(58dvh * .75));aspect-ratio:3/4;margin:0 auto 11px;overflow:hidden;border:1px solid #d9ab3f80;border-radius:16px;background:#0e1115;box-shadow:0 16px 35px #000a}.station-cut-art img{position:absolute;top:calc(var(--station-row) * -100%);left:calc(var(--station-column) * -100%);width:400%;height:200%;max-width:none}.station-cut-art:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,#090b0eaa);pointer-events:none}.station-cut-art>span{position:absolute;z-index:1;right:12px;bottom:8px;color:#fff9;font:900 2.6rem/1 "Saira Condensed",sans-serif;text-shadow:0 3px 12px #000}.station-cut-copy{min-height:46px;margin:0 2px 10px;color:#cdd1d7;font-size:.82rem;line-height:1.45;text-align:center}.station-enter{min-height:46px}.station-cut-progress{height:3px;margin-top:9px;overflow:hidden;border-radius:3px;background:#ffffff18}.station-cut-progress i{display:block;width:100%;height:100%;background:linear-gradient(90deg,var(--gold),var(--red));transform-origin:left;animation:station-cut-timer 2.2s linear forwards}@keyframes station-cut-timer{from{transform:scaleX(0)}to{transform:scaleX(1)}}@media(max-height:650px){.station-transition .task-card{padding:11px}.station-transition .task-back{margin-bottom:5px}.station-transition .task-card h2{margin-bottom:6px}.station-cut-art{width:min(100%,calc(48dvh * .75));margin-bottom:7px}.station-cut-copy{min-height:0;margin-bottom:7px;font-size:.72rem}.station-enter{min-height:44px}}@media(prefers-reduced-motion:reduce){.station-cut-progress i{animation:none;transform:scaleX(1)}}

/* Mobile-first illustrated learning, field levels and persistent team UI */
[hidden]{display:none!important}
.app-shell,main,.game-intro,.intro-copy,.task-overlay,.task-card{min-width:0;max-width:100%}
.task-overlay{overflow:hidden;padding-bottom:max(12px,env(safe-area-inset-bottom,0px))}
.task-card{width:100%;max-height:calc(100dvh - 92px - env(safe-area-inset-top,0px));overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable;padding-bottom:max(20px,env(safe-area-inset-bottom,0px))}
.task-card>*{min-width:0;overflow-wrap:anywhere}
.task-card button,.player-setup button,.vehicle-pick button{min-height:44px;touch-action:manipulation}

/* Intro: selectable player character over the nationwide route */
.player-atlas{aspect-ratio:3/4;overflow:hidden}
.player-atlas>img,.avatar-sprite>img{position:absolute;top:0;left:calc(var(--avatar,0) * -100%);width:400%;height:100%;max-width:none;object-fit:fill}
.intro-map-badge{position:absolute;z-index:2;top:12px;left:12px;display:grid;gap:1px;max-width:calc(100% - 24px);padding:8px 11px;border:1px solid #d9ab3f99;border-radius:12px;background:#111b;box-shadow:0 8px 24px #0009;backdrop-filter:blur(6px)}
.intro-map-badge b{color:var(--gold);font-size:.82rem}
.intro-map-badge span{color:#e5e7ea;font-size:.65rem}
.profile-summary{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"level name" "level detail";gap:0 10px;align-items:center;margin:10px 0 12px;padding:10px 12px;border:1px solid #d9ab3f52;border-radius:13px;background:linear-gradient(135deg,#2d291e,#202329)}
.profile-summary>span{grid-area:level;display:grid;place-items:center;min-width:52px;min-height:52px;border:2px solid var(--gold);border-radius:50%;color:var(--gold);font:900 .9rem "Saira Condensed",sans-serif}
.profile-summary>b{grid-area:name;overflow:hidden;font-size:1rem;text-overflow:ellipsis;white-space:nowrap}
.profile-summary>small{grid-area:detail;color:var(--muted);font-size:.68rem;line-height:1.35}
.player-setup{min-width:0;margin:0 0 14px;padding:11px;border:1px solid var(--line);border-radius:14px;background:#1b1e23}
.player-setup legend{padding:0 7px;color:var(--gold);font-size:.76rem;font-weight:800}
.avatar-pick{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.avatar-3d-stage{--uniform:#d9ab3f;position:relative;height:285px;margin:2px 0 12px;overflow:hidden;border:1px solid #d9ab3f70;border-radius:16px;background:radial-gradient(circle at 50% 35%,#496075 0,#2c2f35 38%,#11151b 76%);perspective:720px;touch-action:none;cursor:grab;isolation:isolate}.avatar-3d-stage[data-avatar="1"]{--uniform:#c9473e}.avatar-3d-stage[data-avatar="2"]{--uniform:#3478c4}.avatar-3d-stage[data-avatar="3"]{--uniform:#3b9b64}.avatar-3d-stage:active{cursor:grabbing}.avatar-3d-light{position:absolute;top:-80px;left:50%;width:210px;height:260px;background:linear-gradient(#fff7,transparent);clip-path:polygon(37% 0,63% 0,100% 100%,0 100%);filter:blur(8px);transform:translateX(-50%);opacity:.55}.avatar-3d-model{position:absolute;z-index:2;top:31px;left:50%;width:120px;height:205px;transform-style:preserve-3d;transform:translateX(-50%) rotateY(-18deg);animation:avatar-turn 7s ease-in-out infinite}.avatar-3d-stage.dragging .avatar-3d-model{animation:none}.avatar-3d-model>div,.avatar-3d-model i{position:absolute;display:block;transform-style:preserve-3d}.model-head{z-index:4;top:0;left:38px;width:47px;height:55px;border-radius:48% 48% 42% 42%;background:linear-gradient(90deg,#b87858,#f0bd91 35% 70%,#9b5b45);box-shadow:inset -7px -4px #0002,0 5px 9px #0005;transform:translateZ(8px)}.model-hair{inset:-5px -4px 24px;border-radius:48% 52% 30% 24%;background:linear-gradient(120deg,#111722,#36404e 55%,#0a0d12);transform:translateZ(4px)}.model-face{top:27px;left:12px;width:6px;height:6px;border-radius:50%;background:#21242a;box-shadow:19px 0 #21242a,9px 14px 0 -1px #9d4c45;transform:translateZ(7px)}.model-neck{z-index:2;top:48px;left:51px;width:20px;height:19px;background:linear-gradient(90deg,#aa684e,#eab087,#9a5945);transform:translateZ(2px)}.model-body{z-index:3;top:62px;left:29px;width:65px;height:82px;border-radius:15px 15px 9px 9px;background:linear-gradient(90deg,#151b23 0 12%,var(--uniform) 13% 83%,#171c23 84%);box-shadow:inset -8px 0 #0003,0 10px 15px #0005;transform:translateZ(3px)}.model-body:before{content:"";position:absolute;top:0;left:25px;border:9px solid transparent;border-top-color:#e9edf1}.model-body:after{content:"";position:absolute;right:10px;bottom:11px;width:17px;height:24px;border:2px solid #ffffff75;border-radius:3px;background:#23262c88}.model-body>b{position:absolute;top:29px;left:13px;color:#16130b;font:900 8px sans-serif;transform:translateZ(5px)}.model-body>i{top:12px;left:11px;width:8px;height:8px;border:2px solid #eee;border-radius:50%;background:#202329;transform:translateZ(5px)}.model-arm{z-index:1;top:68px;width:24px;height:86px;border-radius:13px;background:linear-gradient(90deg,#171d25,var(--uniform) 34% 72%,#171d25);transform-origin:50% 8%}.model-arm:after{content:"";position:absolute;bottom:-8px;left:3px;width:18px;height:23px;border-radius:45%;background:linear-gradient(90deg,#ad6c52,#efb68c)}.arm-left{left:10px;transform:translateZ(-2px) rotateZ(7deg)}.arm-right{right:8px;transform:translateZ(-2px) rotateZ(-7deg)}.model-leg{z-index:1;top:137px;width:30px;height:72px;border-radius:6px 6px 12px 12px;background:linear-gradient(90deg,#1a1d23,#303339 52%,#101720);transform-origin:top}.model-leg:after{content:"";position:absolute;bottom:-3px;width:37px;height:15px;border-radius:12px 13px 4px 4px;background:linear-gradient(#303339,#0d1118)}.leg-left{left:29px;transform:translateZ(0) rotateZ(2deg)}.leg-left:after{right:0}.leg-right{right:25px;transform:translateZ(-5px) rotateZ(-2deg)}.leg-right:after{left:0}.avatar-3d-platform{position:absolute;right:12%;bottom:8px;left:12%;height:42px;border:2px solid #d9ab3f88;border-radius:50%;background:radial-gradient(ellipse,#d9ab3f55 0 35%,#26313c 38% 65%,#10151b 67%);box-shadow:0 9px 0 #0a0d12,0 0 24px #d9ab3f44;transform:rotateX(62deg)}.avatar-3d-platform i{position:absolute;inset:8px 25%;border:1px solid #ffe59b88;border-radius:50%;animation:platform-ring 1.8s linear infinite}.avatar-3d-platform b{position:absolute;top:42px;left:50%;width:max-content;color:#c9ced5;font-size:.62rem;transform:translateX(-50%) rotateX(-62deg)}.avatar-3d-stage.avatar-change .avatar-3d-model{animation:avatar-select .5s ease,avatar-turn 7s .5s ease-in-out infinite}@keyframes avatar-turn{0%,100%{transform:translateX(-50%) rotateY(-24deg)}50%{transform:translateX(-50%) rotateY(24deg)}}@keyframes avatar-select{40%{filter:brightness(1.55);transform:translateX(-50%) translateY(-10px) rotateY(0) scale(1.06)}}@keyframes platform-ring{to{transform:rotate(360deg)}}
.avatar-3d-nameplate{position:absolute;z-index:5;top:10px;left:10px;display:flex;align-items:center;gap:7px;max-width:calc(100% - 20px);padding:5px 9px;border:1px solid #ffffff42;border-radius:9px;background:#10151bd9;box-shadow:0 5px 14px #0008}.avatar-3d-nameplate span{padding:2px 6px;border-radius:6px;background:var(--uniform);color:#111;font:900 .68rem "Saira Condensed",sans-serif}.avatar-3d-nameplate b{overflow:hidden;color:#fff;font-size:.75rem;text-overflow:ellipsis;white-space:nowrap}.equipment-shop-preview{margin:0 0 14px;padding:13px;border:1px solid #d9ab3f55;border-radius:14px;background:linear-gradient(145deg,#262317,#1b2027)}.equipment-shop-preview>div:first-child{display:grid;grid-template-columns:1fr auto;align-items:end;gap:0 8px}.equipment-shop-preview .eyebrow{grid-column:1/-1;margin:0}.equipment-shop-preview h2{margin:0;font-size:1.1rem}.equipment-shop-preview>div:first-child>span{padding:3px 8px;border-radius:999px;background:#3e3622;color:#f2c75d;font-size:.65rem;font-weight:900}.equipment-shop-preview>p{margin:6px 0 9px;color:#aeb5bf;font-size:.7rem}.shop-categories{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.shop-categories button{min-width:0;min-height:64px;padding:7px 4px;border:1px dashed #68717e;border-radius:9px;background:#20252c;color:#dfe3e8;opacity:.72}.shop-categories b,.shop-categories small{display:block}.shop-categories b{font-size:.73rem}.shop-categories small{margin-top:3px;color:#9ea6b1;font-size:.56rem;line-height:1.3}
.equipment-maintenance,.overseas-preview{margin:0 0 14px;padding:13px;border:1px solid #536374;border-radius:14px;background:linear-gradient(145deg,#2b2e34,#171c22)}.equipment-npc{display:grid;grid-template-columns:58px minmax(0,1fr);gap:9px;align-items:center}.equipment-npc .npc-portrait{width:58px;height:68px;background-position:33.3% 100%}.equipment-npc small{color:#e6bd55;font-size:.62rem;font-weight:900}.equipment-npc h2{margin:0;font-size:1.05rem}.equipment-npc p,.equipment-rule{margin:2px 0;color:#acb5c0;font-size:.66rem}.durability-list{display:grid;gap:6px;margin:10px 0}.durability-list>div{display:grid;grid-template-columns:70px minmax(70px,1fr) 34px;gap:7px;align-items:center}.durability-list b,.durability-list span{font-size:.67rem}.durability-list span{color:#f0ca68;text-align:right}.durability-list meter{width:100%;height:14px}.equipment-maintenance .btn{min-height:42px;padding:8px;font-size:.74rem}.overseas-preview>div:first-child{display:grid;grid-template-columns:1fr auto;align-items:end}.overseas-preview .eyebrow{grid-column:1/-1;margin:0}.overseas-preview h2{margin:0;font-size:1.08rem}.overseas-preview>div:first-child>span{padding:3px 8px;border-radius:99px;background:#303339;color:#8dcdec;font-size:.63rem;font-weight:900}.overseas-preview>p{margin:6px 0 9px;color:#adb7c2;font-size:.68rem}.overseas-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.overseas-grid button{min-width:0;min-height:70px;padding:6px 3px;border:1px dashed #647586;border-radius:9px;background:#202933;color:#eef1f4;opacity:.75}.overseas-grid b,.overseas-grid span,.overseas-grid small{display:block}.overseas-grid b{font-size:1.25rem}.overseas-grid span{font-size:.68rem;font-weight:900}.overseas-grid small{color:#9faab5;font-size:.52rem}
.free-time-hub{margin:0 0 14px;padding:13px;border:1px solid #bd7b70;border-radius:14px;background:linear-gradient(145deg,#352423,#1c2026)}.free-time-heading{display:flex;align-items:end;justify-content:space-between;gap:8px}.free-time-heading .eyebrow{margin:0}.free-time-heading h2{margin:0;font-size:1.1rem}.free-time-heading>span{padding:4px 8px;border-radius:9px;background:#1a2027;color:#b9c3cd;font-size:.63rem;white-space:nowrap}.free-time-heading>span b{color:#f2c764}.free-time-hub>p{margin:6px 0 9px;color:#bfc5cd;font-size:.7rem}.restaurant-list{display:grid;gap:8px}.restaurant-list button{display:grid;grid-template-columns:44px minmax(0,1fr);gap:9px;align-items:center;min-height:76px;padding:9px 11px;border:1px solid #6a5f61;border-radius:11px;background:#27292e;color:#eef0f2;text-align:left}.restaurant-list button>i{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:linear-gradient(145deg,#f0cc80,#a55f48);font-size:1.25rem;font-style:normal;box-shadow:inset 0 0 0 3px #fff3}.restaurant-list span,.restaurant-list small,.restaurant-list b,.restaurant-list em{display:block}.restaurant-list small{color:#e0a18d;font-size:.62rem}.restaurant-list b{font-size:.82rem}.restaurant-list em{color:#aeb6c0;font-size:.61rem;font-style:normal}.restaurant-list button.visited{border-color:#4fb477;background:#24272d}.free-time-status{padding:8px 9px;border-radius:8px;background:#181c21}.free-time-disclaimer{display:block;color:#8f98a4;font-size:.57rem;line-height:1.4}
.avatar-pick button{min-width:0;padding:5px 4px 7px;border:1px solid var(--line);border-radius:10px;background:#262a31;color:var(--text);font:inherit;cursor:pointer}
.avatar-pick button.selected{border-color:var(--gold);background:#332c1c;box-shadow:inset 0 0 0 1px #d9ab3f55}
.avatar-pick button small{display:block;margin-top:4px;overflow:hidden;color:var(--muted);font-size:.57rem;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}
.avatar-pick button.selected small{color:var(--gold)}
.avatar-sprite{position:relative;display:block;width:min(100%,54px);aspect-ratio:3/4;margin:auto;overflow:hidden;border-radius:8px;background:#15171b}
.player-name{margin-top:10px;color:#d7dbe1;font-weight:700}
.player-name input{min-width:0}
.player-name>small{color:var(--muted);font-size:.64rem;font-weight:400;line-height:1.35}
.random-route{min-height:48px}

/* Station arrival: NPC explains what this stop teaches */
.station-lesson{display:grid;grid-template-columns:auto minmax(0,1fr);gap:0 9px;margin:0 0 11px;padding:10px 11px;border:1px solid #d9ab3f55;border-radius:12px;background:linear-gradient(135deg,#2b271d,#1c2026)}
.station-lesson>span{grid-row:1/3;align-self:start;padding:4px 8px;border-radius:999px;background:var(--gold);color:#17130b;font-size:.67rem;font-weight:900;white-space:nowrap}
.station-lesson>b{color:#c9ced6;font-size:.67rem;line-height:1.35}
.station-lesson>strong{grid-column:1/-1;margin-top:6px;color:var(--gold);font-size:.86rem}
.station-lesson>p{grid-column:1/-1;margin:3px 0 0;color:#e2e5e9;font-size:.75rem;line-height:1.45}

/* Three illustrated material stages */
.material-level-overlay .task-card{padding-inline:14px}
.material-level-scene{position:relative;width:min(100%,292px);aspect-ratio:3/5;margin:0 auto 12px;overflow:hidden;border:1px solid #ffffff35;border-radius:16px;background:#101318;box-shadow:0 14px 34px #0009}
.material-level-scene>img{position:absolute;inset:0 auto 0 calc(var(--material-column,0) * -100%);width:300%;height:100%;max-width:none;object-fit:fill}
.material-level-scene:after{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(180deg,#071018a8 0,transparent 28%,transparent 68%,#080a0db8 100%);pointer-events:none}
.material-level-copy{position:absolute;z-index:3;top:10px;right:10px;left:10px;display:grid;padding:8px 10px;border-radius:10px;background:#0b0d11c9;box-shadow:0 5px 15px #0008;pointer-events:none}
.material-level-copy span{color:var(--gold);font-size:.67rem;font-weight:900}
.material-level-copy b{font-size:.76rem;line-height:1.35}
.material-nodes{position:absolute;z-index:4;inset:0}
.material-node{position:absolute;display:grid;place-items:center;width:48px;height:48px;min-height:48px!important;padding:0;border:2px solid #fff;border-radius:50%;background:#d9ab3f55;box-shadow:0 0 0 7px #d9ab3f25,0 0 22px #ffd45e;cursor:pointer;animation:material-pulse 1.15s ease-in-out infinite alternate}
.material-node i{width:18px;height:18px;border-radius:5px;background:linear-gradient(145deg,#fff2ae,#d9ab3f 45%,#6e5420);transform:rotate(45deg)}
.type-iron .material-node i{background:linear-gradient(145deg,#f2f4f6,#8e969f 45%,#343942)}
.type-carbon .material-node i{background:linear-gradient(145deg,#bff3ff,#39badc 42%,#22252b)}
.material-node:nth-child(1){top:25%;left:11%}.material-node:nth-child(2){top:31%;right:10%}.material-node:nth-child(3){top:48%;left:41%}.material-node:nth-child(4){right:18%;bottom:18%}.material-node:nth-child(5){bottom:10%;left:12%}
.material-node.collected{border-color:var(--green);background:#24272d;box-shadow:0 0 0 5px #4fb47738;animation:none;opacity:.9}
.material-node.collected i{background:var(--green);transform:rotate(45deg) scale(.75)}
.material-quiz-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:4px 0 11px}
.material-quiz-thumb{position:relative;min-width:0;aspect-ratio:3/4;overflow:hidden;border:1px solid #ffffff35;border-radius:11px;background:#101318;box-shadow:0 8px 18px #0007}
.material-quiz-thumb>img{position:absolute;inset:0 auto 0 calc(var(--material-column,0) * -100%);width:300%;height:100%;max-width:none;object-fit:fill}
.material-quiz-thumb:after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,#090b0fdd);pointer-events:none}
.material-quiz-thumb>span{position:absolute;z-index:2;right:4px;bottom:5px;left:4px;color:#fff;font-size:.62rem;font-weight:900;line-height:1.25;text-align:center;text-shadow:0 2px 5px #000}
.material-quiz-options{grid-template-columns:1fr}
.visual-options.material-quiz-options{counter-reset:quiz-option;grid-template-columns:1fr!important;gap:9px}.material-quiz-options button{counter-increment:quiz-option;position:relative;display:grid;grid-template-columns:36px minmax(0,1fr);grid-template-rows:auto auto;column-gap:9px;align-items:center;width:100%;min-height:68px;padding:10px 12px;border:1px solid #59616d;border-radius:11px;background:#282c33;color:#f4f5f6;text-align:left;opacity:1}.material-quiz-options button:before{content:counter(quiz-option,upper-alpha);grid-row:1/3;display:grid;place-items:center;width:32px;height:32px;border:1px solid #d9ab3f88;border-radius:50%;background:#17191d;color:var(--gold);font-weight:900}.material-quiz-options button b{font-size:.86rem;line-height:1.35}.material-quiz-options button small{margin:1px 0 0;color:#c4c9d1;font-size:.7rem;line-height:1.35}.material-quiz-options button:disabled{opacity:.72}.material-quiz-options button.correct,.material-quiz-options button.correct:disabled{border-color:var(--green);background:#292c32;color:#fff;opacity:1;box-shadow:inset 4px 0 var(--green)}.material-quiz-options button.correct:before{border-color:#8be0aa;background:var(--green);color:#102117}.material-quiz-options button.wrong,.material-quiz-options button.wrong:disabled{border-color:#e2512f;background:#43231e;opacity:1}.material-quiz-options button.wrong:before{border-color:#ff8a70;color:#ff9b84}
.collection-meter{display:grid;grid-template-columns:auto minmax(80px,1fr);gap:8px;align-items:center;margin:9px 0}
.collection-meter>span{font-size:.72rem;white-space:nowrap}.collection-meter>span b{color:var(--gold)}
.collection-meter>div{height:12px;overflow:hidden;border-radius:999px;background:#30353e;box-shadow:inset 0 2px 4px #0007}
.collection-meter>div i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--gold),var(--green));transition:width .25s ease}
@keyframes material-pulse{to{transform:scale(1.08);box-shadow:0 0 0 10px #d9ab3f18,0 0 28px #ffd45e}}

/* Delivery: readable Taiwan region picker */
.delivery-map-wrap{display:grid;grid-template-columns:minmax(118px,.78fr) minmax(0,1.22fr);gap:10px;align-items:center;margin:8px 0 10px;padding:10px;border:1px solid var(--line);border-radius:14px;background:radial-gradient(circle at 25% 45%,#303339,#15181d 65%)}
.delivery-taiwan{display:block;width:100%;max-height:246px;overflow:visible;filter:drop-shadow(0 10px 13px #0008)}
.delivery-taiwan path{cursor:pointer;stroke:#181b21;stroke-width:4;transition:filter .18s,fill .18s,transform .18s;transform-box:fill-box;transform-origin:center}
.delivery-taiwan path:nth-of-type(1){fill:#e2512f}.delivery-taiwan path:nth-of-type(2){fill:#d9ab3f}.delivery-taiwan path:nth-of-type(3){fill:#4fb477}.delivery-taiwan path:nth-of-type(4){fill:#45a9d8}
.delivery-taiwan path:hover,.delivery-taiwan path:focus{filter:brightness(1.25);outline:none;transform:scale(1.03)}
.delivery-taiwan path.wrong{fill:#76271d;filter:saturate(.65)}.delivery-taiwan path.correct{fill:#65df91;filter:drop-shadow(0 0 8px #4fb477)}
.delivery-taiwan text{fill:#fff;font:900 18px "Noto Sans TC",sans-serif;text-anchor:middle;pointer-events:none;text-shadow:0 2px 5px #000}
.delivery-route-card{display:grid;justify-items:center;gap:5px;min-width:0;padding:11px 8px;border:1px solid #ffffff28;border-radius:12px;background:#111a;text-align:center}
.delivery-route-card span,.delivery-route-card b,.delivery-route-card small{display:block;max-width:100%;overflow-wrap:anywhere}
.delivery-route-card span{color:var(--gold);font-size:.7rem;font-weight:900}.delivery-route-card b{font-size:.86rem}.delivery-route-card small{color:var(--muted);font-size:.62rem;line-height:1.35}
.delivery-route-card i{position:relative;width:76%;height:3px;margin:4px 0;background:repeating-linear-gradient(90deg,var(--gold) 0 8px,transparent 8px 13px)}
.delivery-route-card i:after{content:"";position:absolute;top:-5px;right:-1px;border-width:6px 0 6px 9px;border-style:solid;border-color:transparent transparent transparent var(--gold)}

/* Image-led, plain-language questions */
.question-visual{display:grid;grid-template-columns:minmax(104px,38%) minmax(0,1fr);gap:11px;align-items:center;margin-bottom:11px;padding:9px;border:1px solid var(--line);border-radius:14px;background:#15181d}
.question-art{position:relative;overflow:hidden;border:1px solid #ffffff2d;border-radius:11px;background:#0d1014;box-shadow:0 8px 20px #0008}
.question-art.station{aspect-ratio:16/9}.question-art.symptom,.question-art.moto-accessory,.question-art.moto-research{aspect-ratio:1/1}
.question-art img{position:absolute;top:calc(var(--question-row,0) * -100%);left:calc(var(--question-column,0) * -100%);width:400%;height:200%;max-width:none;object-fit:fill}
.question-art.moto-accessory img,.question-art.moto-research img{width:200%;height:200%}
.question-art.station img{position:static;top:auto;left:auto;width:100%;height:100%;max-width:100%;object-fit:cover}
.question-visual>div:last-child{min-width:0}.question-visual>div:last-child>span{display:inline-block;margin-bottom:4px;color:var(--gold);font-size:.66rem;font-weight:900}.question-visual>div:last-child>p{margin:0;color:#e5e7eb;font-size:.77rem;line-height:1.45}
.plain-question{margin:8px 0;color:#fff;font-size:.9rem;font-weight:900;line-height:1.45}
.visual-options{grid-template-columns:1fr 1fr}
.visual-options button{min-width:0;overflow-wrap:anywhere}
.visual-options button b,.visual-options button small{display:block}
.visual-options button b{font-size:.76rem;line-height:1.35}.visual-options button small{margin-top:4px;color:var(--muted);font-size:.61rem;line-height:1.3}
.task-feedback .good,.good{color:#76dfa0;font-weight:800}
.maintenance-boundary{border-color:#58b9d755;background:linear-gradient(135deg,#202329,#171b20)}
.maintenance-boundary>span{color:#79d8ef}.maintenance-boundary>small{color:#c9dbe1}

/* Repair-shop arrival and NPC-created work order */
.service-arrival{display:grid;grid-template-columns:minmax(118px,42%) minmax(0,1fr);gap:10px;align-items:stretch;margin-bottom:11px}
.service-shop-art{position:relative;min-width:0;aspect-ratio:3/5;overflow:hidden;border:1px solid #ffffff35;border-radius:14px;background:#101318;box-shadow:0 10px 25px #0008}
.service-shop-art img{position:absolute;inset:0 auto 0 calc(var(--shop-index,0) * -100%);width:400%;height:100%;max-width:none;object-fit:fill}
.vehicle-arrival{display:grid;align-content:center;gap:5px;min-width:0;padding:12px;border:1px solid #d9ab3f5c;border-radius:14px;background:linear-gradient(145deg,#302a1c,#1e2228)}
.vehicle-arrival span{color:var(--gold);font-size:.67rem;font-weight:900}.vehicle-arrival b{font-size:1rem;line-height:1.3}.vehicle-arrival small{color:var(--muted);font-size:.67rem;line-height:1.4;overflow-wrap:anywhere}
.work-order{position:relative;margin:10px 0;padding:13px 13px 13px 17px;border:1px solid var(--green);border-radius:12px;background:#202329;box-shadow:inset 5px 0 var(--green)}
.work-order span,.work-order b,.work-order small{display:block}.work-order span{color:#81d8a2;font-size:.67rem;font-weight:900}.work-order b{margin-top:2px;font-size:1.03rem}.work-order p{margin:4px 0;font-size:.79rem}.work-order small{color:#aebbb3;font-size:.62rem;line-height:1.4}

/* Operations: order reserve, recruitment and car/moto/truck sales roster */
.operations-order{display:grid;gap:2px;margin:9px 0;padding:11px 12px;border:1px solid var(--gold);border-radius:12px;background:linear-gradient(135deg,#302a1c,#1e2228)}
.operations-order span{color:var(--gold);font-size:.67rem;font-weight:900}.operations-order b{font-size:.9rem;line-height:1.35}.operations-order small{color:#c6c1b4;font-size:.66rem;line-height:1.4}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:9px;margin:13px 0 8px;padding-top:10px;border-top:1px solid var(--line)}
.section-heading>div{min-width:0}.section-heading>div span,.section-heading>div b{display:block}.section-heading>div span{color:var(--gold);font-size:.67rem;font-weight:900}.section-heading>div b{font-size:.76rem;line-height:1.35}
.section-heading>button{flex:0 0 auto;min-height:44px;padding:6px 10px;border:1px solid var(--gold);border-radius:10px;background:#2d291d;color:var(--gold);font:800 .68rem inherit;cursor:pointer}
.section-heading>button small{font-size:.57rem}
.sales-roster{display:grid;gap:8px}
.sales-card{display:grid;min-width:0;padding:11px;border:1px solid var(--line);border-radius:12px;background:#24282f}
.sales-card.matching{border-color:#5b8b70}.sales-card.selected{border-color:var(--gold);background:#302a1d;box-shadow:inset 4px 0 var(--gold)}
.sales-card>span{color:var(--gold);font-size:.65rem;font-weight:900}.sales-card>b{font-size:.86rem;overflow-wrap:anywhere}.sales-card>b em{color:var(--gold);font:.8rem "Saira Condensed",sans-serif}.sales-card>small{color:var(--muted);font-size:.63rem;line-height:1.35}.sales-card>div{margin:6px 0;color:#cdd2d8;font-size:.65rem}
.sales-card>button{width:100%;min-height:44px;margin-top:6px;padding:7px 9px;border:1px solid var(--line);border-radius:9px;background:#171a1f;color:var(--text);font:800 .69rem inherit;cursor:pointer}
.sales-card>button:last-child{border-color:var(--gold);color:var(--gold)}
.empty-roster{padding:13px;border:1px dashed #59606b;border-radius:11px;color:var(--muted);font-size:.72rem;line-height:1.45;text-align:center}
.solo-sales{width:100%;min-height:44px;margin-top:8px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:#22262d;color:var(--text);font:800 .73rem inherit;cursor:pointer}
.solo-sales.selected{border-color:var(--green);background:#24272d;color:#86dca6}
.skill-strip{grid-template-columns:repeat(3,minmax(0,1fr))}

/* Narrow / short phones: 375x568 remains fully usable through card scrolling. */
@media(max-width:390px){
  .app-shell{padding-right:14px;padding-left:14px}.progress{margin-inline:-14px}
  .world-game{margin-right:-14px;margin-left:-14px}
  .intro-art{min-height:270px}.intro-character{width:55%}.intro-map-badge{top:9px;left:9px}
  .avatar-pick{gap:4px}.avatar-pick button{padding-inline:2px}.avatar-pick button small{font-size:.53rem}
  .task-overlay{padding:8px}.task-card{padding:14px;border-radius:17px}
  .station-transition .task-card{padding:11px}.station-lesson{padding:8px 9px}.station-lesson>span{white-space:normal}
  .question-visual{grid-template-columns:102px minmax(0,1fr);gap:8px;padding:7px}.question-visual>div:last-child>p{font-size:.72rem}
  .visual-options{grid-template-columns:1fr}
  .service-arrival{grid-template-columns:116px minmax(0,1fr);gap:8px}.vehicle-arrival{padding:9px}
  .delivery-map-wrap{grid-template-columns:118px minmax(0,1fr);padding:8px;gap:7px}
  .section-heading{align-items:stretch}.section-heading>button{max-width:106px}
  .finance-board{grid-template-columns:1fr}.vehicle-options.three{grid-template-columns:1fr 1fr}.vehicle-options.three button:last-child{grid-column:1/-1}
}
@supports selector(:has(*)){.app-shell:has(.task-overlay)>.topbar .app-back{visibility:hidden}}
@media(max-height:650px){
  .task-overlay{padding:7px}.task-card{max-height:calc(100dvh - 76px - env(safe-area-inset-top,0px));padding-bottom:max(16px,env(safe-area-inset-bottom,0px))}
  .material-level-scene{width:min(100%,235px)}
  .question-art.station{aspect-ratio:1/1}.question-visual{margin-bottom:8px}
  .station-lesson>p{font-size:.7rem}
}
@media(max-width:340px){
  .delivery-map-wrap,.service-arrival,.question-visual{grid-template-columns:1fr}
  .delivery-taiwan{width:min(100%,150px);margin:auto}.service-shop-art{width:min(100%,160px);margin:auto}.question-art{width:min(100%,150px);margin:auto}
  .vehicle-pick,.upgrade-grid,.addon-shelf{grid-template-columns:1fr}.avatar-pick{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(prefers-reduced-motion:reduce){.material-node{animation:none}.collection-meter>div i{transition:none}}

/* Mission-only radar and randomized material challenge variants */
.mini-map{opacity:0;visibility:hidden;transition:opacity .18s,visibility .18s,border-color .2s,box-shadow .2s}
.mini-map.mission-active{opacity:1;visibility:visible}
.material-level-scene.research-material{aspect-ratio:1/1}
.material-level-scene.research-material>img{inset:auto;top:calc(var(--material-row,0) * -100%);left:calc(var(--material-column,0) * -100%);width:200%;height:200%}
.material-level-scene.wide-motion,.material-level-scene.research-material.wide-motion{width:min(100%,720px);aspect-ratio:16/9}
.material-level-scene.wide-motion>img,.material-level-scene.research-material.wide-motion>img,.material-level-scene.wide-motion>video{position:absolute;inset:0;width:100%;height:100%;max-width:100%;object-fit:cover}
.material-level-scene.wide-motion>video{z-index:0;pointer-events:none;opacity:0;transition:opacity .2s}
.material-level-scene.wide-motion>video.playing{opacity:1}
@media(max-height:650px){.material-level-scene.wide-motion{width:min(100%,520px)}}
.material-node>b{position:absolute;color:#101318;font:900 .8rem/1 "Saira Condensed",sans-serif}
.type-plastic .material-node i{background:linear-gradient(145deg,#d7dde4,#77818d 45%,#242931)}
.type-led .material-node i{background:linear-gradient(145deg,#fff2ae,#ff5b45 48%,#6b1713)}
.type-electronics .material-node i{background:linear-gradient(145deg,#bff3ff,#45c4e8 44%,#303339)}
.resource.plastic{background:linear-gradient(145deg,#d7dde4,#56606c)}
.resource.led{background:linear-gradient(145deg,#fff2ae,#ff5b45 52%,#6b1713);box-shadow:inset 0 0 0 4px #fff2,0 0 12px #ff5b4566}
.resource.electronics{background:linear-gradient(145deg,#bff3ff,#45c4e8 48%,#303339)}
.material-node:nth-child(6){top:12%;left:43%}
.material-node.wrong{border-color:var(--red);background:#3a1717;box-shadow:0 0 0 5px #e2512f38;animation:none}
.material-quiz-strip.research-materials .material-quiz-thumb{aspect-ratio:1/1}
.material-quiz-strip.research-materials .material-quiz-thumb>img{inset:auto;top:calc(var(--material-row,0) * -100%);left:calc(var(--material-column,0) * -100%);width:200%;height:200%}

/* Enter each station as its own 2D scene before opening the task. */
.station-interior-scene{position:relative;width:min(100%,520px);aspect-ratio:16/9;margin:0 auto 10px;overflow:hidden;border:1px solid #d9ab3f99;border-radius:17px;background:#101318;box-shadow:0 16px 34px #000b;isolation:isolate}
.station-interior-bg{position:absolute;z-index:-3;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;filter:saturate(1.08) contrast(1.03)}
.station-interior-scene:before{content:"";position:absolute;z-index:-2;inset:0;background:linear-gradient(180deg,#07101822 38%,#090b0ea8 76%,#080a0de8)}
.station-interior-scene:after{content:"";position:absolute;z-index:-1;right:4%;bottom:4%;left:4%;height:29%;border-radius:50%;background:radial-gradient(ellipse,#d9ab3f20 0,transparent 66%);transform:perspective(130px) rotateX(58deg)}
.station-interior-sign{position:absolute;z-index:3;top:9px;left:9px;display:grid;max-width:76%;padding:6px 9px;border:1px solid #ffffff38;border-radius:9px;background:#111d;box-shadow:0 5px 14px #0008}
.station-interior-sign small{color:#aeb5bf;font-size:.56rem;line-height:1.2}.station-interior-sign b{color:var(--gold);font-size:.7rem;line-height:1.3}
.station-interior-number{position:absolute;z-index:3;top:9px;right:10px;color:#fff8;font:900 2rem/1 "Saira Condensed",sans-serif;text-shadow:0 3px 10px #000}
.station-interior-route{position:absolute;z-index:1;right:25%;bottom:25%;left:24%;display:flex;justify-content:space-around;transform:rotate(-7deg)}
.station-interior-route i{width:7px;height:7px;border:1px solid #fff7;border-radius:50%;background:var(--gold);box-shadow:0 0 10px #d9ab3f}
.station-scene-character{position:absolute;z-index:2;display:grid;justify-items:center;width:78px;filter:drop-shadow(0 10px 8px #000a)}
.station-sprite-crop{position:relative;display:block;width:68px;height:92px;overflow:hidden}
.station-sprite-crop img{position:absolute;max-width:none}
.station-scene-npc{right:9%;bottom:7%}.station-scene-npc .station-sprite-crop img{top:calc(var(--npc-row,0) * -100%);left:calc(var(--npc-column,0) * -100%);width:400%;height:200%}
.station-scene-player{left:5%;bottom:5%}.station-scene-player .station-sprite-crop img{top:0;left:calc(var(--player-avatar,0) * -100%);width:400%;height:100%}
.station-scene-character>b{max-width:100%;padding:2px 6px;border:1px solid #ffffff32;border-radius:7px;background:#111e;color:#fff;font-size:.6rem;line-height:1.35;text-align:center;white-space:nowrap}
.station-transition.walking .station-scene-player{animation:station-walk-inside .9s cubic-bezier(.2,.72,.22,1) forwards}
.station-transition.walking .station-scene-player .station-sprite-crop{animation:station-step-bob .18s ease-in-out 5 alternate}
.station-transition.walking .station-interior-route i{animation:station-footstep .55s ease-out both}.station-transition.walking .station-interior-route i:nth-child(2){animation-delay:.12s}.station-transition.walking .station-interior-route i:nth-child(3){animation-delay:.24s}.station-transition.walking .station-interior-route i:nth-child(4){animation-delay:.36s}
.station-transition.walking .station-interior-scene{box-shadow:0 0 0 2px #d9ab3f55,0 18px 38px #000c}
@keyframes station-walk-inside{0%{left:5%;transform:scale(.9)}100%{left:38%;transform:scale(1)}}
@keyframes station-step-bob{to{transform:translateY(-5px)}}
@keyframes station-footstep{0%{opacity:.2;transform:scale(.7)}55%{opacity:1;transform:scale(1.45)}100%{opacity:.35;transform:scale(1)}}
@media(max-height:650px){.station-interior-scene{width:min(100%,220px)}.station-interior-sign{padding:5px 7px}.station-sprite-crop{width:58px;height:78px}.station-scene-character{width:68px}.station-cut-copy{font-size:.69rem}}

/* One free, order-scoped material supply draw before field collection. */
.material-draw-card{display:grid;gap:8px;margin:10px 0;padding:11px;border:1px solid #d9ab3f66;border-radius:13px;background:linear-gradient(135deg,#2d281b,#1b2027)}
.material-draw-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.material-draw-head span{color:var(--gold);font-size:.72rem;font-weight:900}.material-draw-head b{padding:2px 7px;border-radius:999px;background:#d9ab3f;color:#17130b;font-size:.62rem}
.material-draw-reel{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;padding:7px;border:1px solid #ffffff1f;border-radius:10px;background:#11161c}
.material-draw-reel .resource{width:48px;height:38px;margin:auto;transition:transform .2s,filter .2s,box-shadow .2s}
.material-draw-reel .resource.selected{outline:3px solid var(--gold);outline-offset:3px;filter:saturate(1.3) brightness(1.12);box-shadow:0 0 22px #d9ab3f99}
.material-draw-card.drawing .material-draw-reel .resource{animation:material-reel .34s ease-in-out infinite alternate}.material-draw-card.drawing .material-draw-reel .resource:nth-child(2){animation-delay:.08s}.material-draw-card.drawing .material-draw-reel .resource:nth-child(3){animation-delay:.16s}
.material-draw-card>.btn{min-height:44px}.material-draw-card>small,.material-draw-result small,.material-cost-preview{display:block;color:var(--muted);font-size:.62rem;line-height:1.4}.material-draw-result{margin:0;padding:7px 9px;border:1px solid #ffffff20;border-radius:9px;background:#15191f;font-size:.76rem}.material-draw-result>b{color:var(--gold)}.material-draw-card.tier-rare{border-color:#c77be8;box-shadow:inset 0 0 24px #c77be81c}.material-draw-card.tier-fine{border-color:#45c4e8}.material-cost-preview{padding-top:6px;border-top:1px dashed #ffffff25}
@keyframes material-reel{to{transform:translateY(-6px) scale(1.08);filter:brightness(1.35)}}

/* Built equipment and empty expansion bays share one source of truth. */
.factory-management{margin:16px 0;border:1px solid #586171;border-radius:14px;background:#202329;text-align:left}
.factory-management>summary{padding:15px;min-height:48px;cursor:pointer;color:#f2cc71;font-weight:700}
.factory-management>div{padding:0 12px 12px}
.facility-header{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-top:8px}
.facility-header h3{margin:3px 0;font-size:1rem}.facility-header small{color:#a4b5c6}.facility-header>b{color:#f2cc71;white-space:nowrap}
.facility-explainer,.facility-budget{font-size:.75rem;line-height:1.6;color:#c2cfdf}
.facility-floor{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:12px 8px;margin:12px 0;border:1px solid #4d5a68;border-radius:12px;background:repeating-linear-gradient(0deg,#303339 0 28px,#303339 29px 30px)}
.facility-bay{display:grid;justify-items:center;align-content:start;gap:6px;min-width:0;padding:10px 3px;border:1px solid #6b8592;border-radius:8px;background:#23262c}
.facility-bay strong{font-size:.65rem;text-align:center;overflow-wrap:anywhere}.facility-bay small{font-size:.58rem;text-align:center;color:#a8d9bd}
.facility-machine{position:relative;width:58px;height:48px;border:3px solid #becbd2;border-bottom:7px solid #7d929f;border-radius:7px 7px 3px 3px;background:linear-gradient(120deg,#65c4cc,#2b7588);box-shadow:3px 5px #0005}
.facility-machine i{position:absolute;left:5px;top:5px;width:27px;height:23px;border:3px solid #a9c5ce;border-radius:3px;background:radial-gradient(circle,#8ad4e8 0 18%,#303339 20% 38%,#1e2127 40%)}
.facility-machine:after{content:'';position:absolute;right:3px;top:5px;width:8px;height:12px;background:#8dffa6;box-shadow:0 15px #ffd277}
.facility-machine b{position:absolute;bottom:-5px;left:5px;color:#26292f;font-size:8px}
.facility-machine.research{background:linear-gradient(120deg,#a696df,#565993)}.facility-machine.media{background:linear-gradient(120deg,#f2bc72,#b27039)}
.facility-machine.media i{border-radius:50%;background:#2a2d33}.facility-machine.research i{background:linear-gradient(45deg,#2a9b8b,#9ceebe)}
.facility-bay.unbuilt{border:1px dashed #8da0af;background:#30333977}.facility-bay.unbuilt small{color:#c4cbd4}
.unbuilt .facility-machine{border:2px dashed #8da0af;background:transparent;box-shadow:none}.unbuilt .facility-machine i,.unbuilt .facility-machine:after{display:none}
.unbuilt .facility-machine b{inset:0;display:grid;place-items:center;font:300 30px sans-serif;color:#91a8bd}
.facility-build-list{display:grid;gap:9px}.facility-blueprint{display:grid;grid-template-columns:1fr;gap:7px;padding:11px;border:1px solid #4b5b6d;border-radius:10px;background:#2c2f35}
.facility-blueprint>div{display:grid;gap:4px;min-width:0}.facility-blueprint b{font-size:.9rem}.facility-blueprint span{color:#f2cc71;font-size:.75rem}.facility-blueprint small,.facility-blueprint p{color:#c6d2df;font-size:.72rem;line-height:1.5}
.facility-blueprint p{margin:0}.facility-blueprint.built{border-color:#488369}
.facility-blueprint button,.facility-tuning button{min-height:44px;padding:10px;border:1px solid #c49c4b;border-radius:8px;background:#e3bb61;color:#23262c;font-weight:700;cursor:pointer}
.facility-blueprint button:disabled,.facility-tuning button:disabled{opacity:1;background:#303c4b;border-color:#5a6675;color:#b8c6d6;cursor:default}
.facility-tuning{margin-top:12px}.facility-tuning>summary{padding:12px 0;min-height:44px;cursor:pointer;color:#eac780}.facility-tuning p{font-size:.74rem;color:#c6d2df}
.facility-tuning button{display:grid;gap:5px;width:100%;margin:7px 0;text-align:left}.facility-tuning button span{font-size:.72rem}
.facility-notice{font-size:.8rem;color:#8df0b1;line-height:1.5}.facility-notice:empty{display:none}
.vehicle-pick button:disabled{opacity:1;filter:grayscale(.6);background:#252b34;color:#b5bdca;border-color:#4c5767}.vehicle-pick button:disabled small{color:#b5bdca}
.station-interior-factory{background:linear-gradient(180deg,#303339,#292c32 65%,#3c444a)}
.station-factory-layout{position:absolute;top:18%;left:4%;right:4%}.station-factory-layout .facility-floor{margin:0;padding:7px 5px;gap:5px;grid-template-columns:repeat(3,minmax(0,1fr))}
.station-factory-layout .facility-bay{padding:6px 2px;gap:4px}.station-factory-layout .facility-machine{width:40px;height:33px;border-width:2px}.station-factory-layout .facility-machine i{width:18px;height:14px;left:3px;top:3px}.station-factory-layout .facility-machine:after{width:5px;height:7px;right:2px;box-shadow:0 10px #ffd277}.station-factory-layout .facility-machine b{font-size:6px;bottom:0}
.station-factory-layout .facility-bay strong{font-size:.49rem}.station-factory-layout .facility-bay small{display:none}.station-factory-layout .unbuilt .facility-machine b{font-size:23px}
@media(max-width:350px){.facility-floor{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Product departments: diagrams, separate rooms and buildable equipment. */
.department-order-label{display:grid;gap:7px;margin:12px 0;color:#dfc483;font-size:.85rem}.department-order-label select{min-height:48px;width:100%;padding:10px;border:1px solid #64788a;border-radius:9px;background:#292c32;color:#f4f6fa}
.department-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:12px 0}.department-tabs button{min-height:60px;padding:9px;border:1px solid #596878;border-top:3px solid var(--dept-color);border-radius:9px;background:#2c2f35;color:#eff4f9;text-align:left;cursor:pointer}.department-tabs button[aria-pressed=true]{background:#364354;box-shadow:inset 0 0 0 1px var(--dept-color)}.department-tabs b,.department-tabs small{display:block}.department-tabs small{color:#c3d0de;font-size:.66rem;margin-top:4px}
.department-brief{padding:9px;border:1px solid #586879;border-radius:12px;background:#22252b}.department-brief p,.department-brief>small{font-size:.75rem;color:#d3dce7;line-height:1.5}
.department-product-art{position:relative;display:grid;justify-items:center;align-content:center;gap:14px;min-height:146px;padding:20px 8px 12px;border-radius:10px;border:1px solid #658097;background:radial-gradient(ellipse at 50% 30%,#405466,#22252b 80%);overflow:hidden}.department-product-art>span{color:var(--dept-color,#81c5d7);font-size:.8rem;font-weight:700;text-align:center;position:relative;z-index:1}
.product-shape{position:relative;display:block;width:88px;height:76px;border-radius:50%;border:14px solid #a2b9c5;background:radial-gradient(circle,#24272d 0 30%,#667c8b 32% 44%,#303339 46%);box-shadow:0 9px 0 #0005,0 0 26px #ffffff13}
.art-pads .product-shape{width:103px;height:57px;border-radius:35px 35px 7px 7px;border:6px solid #abb8c2;border-bottom-width:12px;background:repeating-linear-gradient(90deg,#705136 0 18px,#493322 19px 21px);transform:rotate(-9deg)}
.art-hose .product-shape{width:108px;height:63px;border:10px solid #a6bccd;border-top-color:transparent;border-radius:8px 8px 65px 65px;background:none;transform:rotate(-12deg)}.art-hose .product-shape:before,.art-hose .product-shape:after{content:'';position:absolute;top:-10px;width:20px;height:22px;border:3px solid #d3e4eb;background:#6e8597}.art-hose .product-shape:before{left:-16px}.art-hose .product-shape:after{right:-16px}
.art-caliper .product-shape{width:100px;height:67px;border:7px solid #e57564;border-bottom-width:19px;border-radius:26px 13px 13px 26px;background:#b63232;transform:rotate(-12deg)}.art-caliper .product-shape:before,.art-caliper .product-shape:after{content:'';position:absolute;top:5px;width:24px;height:24px;border:5px solid #c3cbd3;background:#303339;border-radius:50%}.art-caliper .product-shape:before{left:8px}.art-caliper .product-shape:after{right:8px}
.art-research .product-shape{border-radius:12px;border:7px solid #9b8dc6;background:radial-gradient(circle,#f8cd73 0 17%,#303339 20% 40%,#303339 44%)}.art-support .product-shape{border-radius:10px 18px 3px 3px;border:7px solid #96cfac;background:#303339}.art-support .product-shape:after{content:'t.SGD';position:absolute;inset:17px 0;text-align:center;color:#ecc969;font:900 17px sans-serif}
.department-npc{padding:12px;margin:10px 0;background:#303339;border-left:3px solid #e1bd6a;border-radius:8px}.department-npc b{color:#e5c071}.department-npc p{margin:6px 0 0;line-height:1.6;font-size:.82rem}
.department-components,.department-checks,.department-steps{display:grid;gap:9px;margin:12px 0}.department-components{grid-template-columns:repeat(3,minmax(0,1fr))}.department-components>div,.department-components>button{display:grid;gap:6px;justify-items:center;text-align:center;min-width:0;padding:12px 5px;border:1px solid #667889;border-radius:10px;background:#303339;color:#edf3f8;font-size:.72rem}.department-components span{font-size:.65rem;color:#c3d3e0}
.department-checks button,.department-steps button{display:grid;gap:7px;min-height:52px;padding:12px;border:1px solid #7894a2;border-radius:9px;background:#303339;color:#f2f6fa;text-align:left}.department-checks span,.department-steps small{color:#c1d4de;font-size:.72rem}.department-components button:disabled,.department-checks button:disabled,.department-steps button:disabled{opacity:.75;border-color:#76d3a7;background:#303339}
.department-product-art.working .product-shape{animation:department-work .3s ease-in-out infinite alternate}@keyframes department-work{to{filter:brightness(1.5);translate:0 -5px}}
.resource.friction{background:linear-gradient(135deg,#bb9155,#5c3a23)}.resource.backplate,.resource.caliperbody{background:linear-gradient(135deg,#ea8a73,#943a37)}.resource.shim,.resource.sleeve,.resource.seal{border-radius:50%;background:#394755;border:5px solid #a6b6c4}.resource.braided{border-radius:25px;border:7px solid #a4becf;background:#303339}.resource.fitting,.resource.piston{background:linear-gradient(90deg,#889eaf,#d1e6ed,#66899e)}
.facility-machine.pads{background:#b1814f}.facility-machine.hose{background:#6c9fc8}.facility-machine.caliper{background:#d25a55}.facility-machine.truck{background:#88b797;border-radius:4px 12px 3px 3px}
.station-factory-layout{top:19%}.station-factory-layout .department-product-art{min-height:100px;padding:8px;gap:4px;margin-bottom:7px}.station-factory-layout .product-shape{scale:.55;margin:-13px}.station-factory-layout .department-product-art>span{font-size:.63rem}
.supply-workshop{position:absolute;inset:0;padding:95px 12px 14px;background:repeating-linear-gradient(0deg,#303339 0 38px,#303339 39px 40px)}.supply-crates{display:flex;justify-content:space-around;gap:8px;margin-top:50px}.supply-crates i{width:62px;height:65px;border:5px solid #ad8957;background:#82613f;box-shadow:inset 0 0 0 2px #423321}.department-supply .material-node{background:#ecbb6277}
.unowned-vehicle .vehicle-thumb{filter:grayscale(1);opacity:.25}.unowned-vehicle{border-style:dashed!important}
@media(prefers-reduced-motion:reduce){.department-product-art.working .product-shape{animation:none}}
.facility-bay.unbuilt .facility-machine{background:transparent}
.synthesis-scene{display:flex;align-items:center;justify-content:space-around;gap:8px;min-height:180px;margin:12px 0;padding:12px;border:1px solid #647d94;border-radius:16px;background:radial-gradient(ellipse at 50% 70%,#576451,#303339 68%);overflow:hidden}
.synthesis-inputs{display:grid;gap:6px}.synthesis-inputs .resource{width:32px;height:25px}.synthesis-machine{position:relative;display:grid;place-items:center;width:104px;height:118px;border:6px solid #819bac;border-bottom:14px solid #445d6f;border-radius:16px 16px 22px 22px;background:#366775;box-shadow:8px 8px #23262c88}.synthesis-machine>span{font-size:.7rem;color:#fbd46a;font-weight:900}.synthesis-machine>i{width:60px;height:44px;border:5px solid #597b82;border-radius:5px;background:radial-gradient(ellipse,#ffe080,#db812e,#633b2a)}.synthesis-machine>b{position:absolute;bottom:0;right:2px;color:#9df1b3;font-size:1.3rem}.synthesis-output{display:grid;justify-items:center;gap:5px}.synthesis-output>i{width:49px;height:36px;border:4px solid #c5cdd1;border-radius:50%;background:radial-gradient(circle,#303339 0 15%,#7e999d 18% 48%,#cadbde 50%);box-shadow:0 7px #7b949b}.synthesis-output>b{font-size:1.6rem;color:#f6cc6b}.synthesis-output>span{font-size:.6rem;color:#d2e2e8}
.synthesis-scene.working .resource{animation:material-reel .3s infinite alternate}.synthesis-scene.working .synthesis-machine{animation:department-work .22s infinite alternate}.synthesis-scene.failure{border-color:#d87c67}.synthesis-scene.failure .synthesis-machine>i{background:#644b54}.synthesis-scene.success{border-color:#82d39e}
.synthesis-recipe{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:12px 0}.synthesis-recipe>div{min-width:0;padding:8px 4px;border-radius:9px;background:#303339;text-align:center}.synthesis-recipe b,.synthesis-recipe small{display:block;font-size:.68rem;overflow-wrap:anywhere}.synthesis-recipe small{color:#c0d0de;margin-top:5px}.synthesis-modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}.synthesis-modes button{display:grid;gap:6px;min-height:100px;padding:10px;border:1px solid #a9985d;border-radius:12px;background:#303339;color:#fff;text-align:left}.synthesis-modes strong{color:#ffd875}.synthesis-modes small{font-size:.66rem;color:#c9d5e2}.synthesis-modes button:disabled{opacity:.5}.synthesis-disclaimer{font-size:.68rem;line-height:1.7;color:#b9c5d3}
.mine-safe{padding:9px;background:#303339;color:#aee8ce;border-radius:9px;font-size:.78rem}.mine-battle{display:flex;align-items:center;gap:18px;padding:18px 14px;margin-top:10px;border:1px solid #af9576;border-radius:12px;background:linear-gradient(130deg,#303339,#493e46)}.mine-monster{position:relative;flex-shrink:0;width:69px;height:70px;border:7px solid #6c8593;border-radius:28% 42% 28% 30%;background:linear-gradient(140deg,#bea064,#787177 50%,#426781);box-shadow:-9px 16px 0 -4px #576b78,9px 15px 0 -4px #576b78;transform:rotate(-5deg)}.mine-monster:before,.mine-monster:after{content:'';position:absolute;top:18px;width:10px;height:10px;background:#ffe299;border:3px solid #353f4d;border-radius:50%}.mine-monster:before{left:9px}.mine-monster:after{right:9px}.mine-monster i{position:absolute;bottom:13px;left:20px;width:19px;height:6px;border-radius:0 0 10px 10px;background:#303648}.mine-monster b{position:absolute;top:-22px;left:12px;padding:2px 5px;border-radius:6px;background:#d6b764;color:#2f3238;font-size:.65rem}.mine-bars{display:grid;gap:5px;flex:1;min-width:0;font-size:.75rem}.mine-bars meter{width:100%;height:16px}.mine-battle.won .mine-monster{opacity:.4;transform:rotate(12deg)}.mine-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:10px 0}.mine-actions button{min-height:48px;padding:8px 4px;border:1px solid #859caa;border-radius:9px;background:#303339;color:#fff;font-size:.75rem}.mine-actions button:first-child{background:#765043}.mine-actions button:last-child{background:#303339}
.mine-battle{display:grid;gap:8px;padding:10px;background:linear-gradient(180deg,#282b31,#342d3c)}.combat-arena{position:relative;height:150px;overflow:hidden;border:1px solid #8393a077;border-radius:12px;background:radial-gradient(circle at 78% 30%,#da9f4d44,transparent 22%),linear-gradient(#272a30 0 55%,#303339 56% 67%,#171b22 68%);isolation:isolate}.combat-arena:before,.combat-arena:after{content:"";position:absolute;z-index:-1;bottom:0;width:105px;height:85px;background:#202a31;clip-path:polygon(0 100%,10% 38%,27% 51%,39% 12%,55% 43%,75% 20%,100% 100%)}.combat-arena:before{left:-12px}.combat-arena:after{right:-12px;transform:scaleX(-1)}.cave-glow{position:absolute;top:19px;right:32px;width:75px;height:75px;border-radius:50%;background:#ffbc5266;filter:blur(12px);animation:cave-pulse 1.5s ease-in-out infinite alternate}.combat-player{position:absolute;z-index:3;bottom:17px;left:38px;width:48px;height:75px;border-radius:45% 45% 22% 22%;background:linear-gradient(90deg,#22252b 0 20%,#d9ab3f 21% 78%,#352d20 79%);box-shadow:0 8px 0 -3px #07090c;transform-origin:bottom}.combat-player:before{content:"";position:absolute;top:-17px;left:9px;width:31px;height:31px;border:3px solid #202733;border-radius:50%;background:linear-gradient(#242d38 0 38%,#e5b58f 39%)}.combat-player:after{content:"";position:absolute;right:-11px;top:20px;width:28px;height:9px;border-radius:8px;background:#e5b58f;transform:rotate(-16deg)}.combat-player i{position:absolute;right:8px;bottom:12px;left:8px;height:18px;border-radius:4px;background:#303339}.combat-player b{position:absolute;bottom:-17px;left:4px;color:#fff;font-size:.58rem}.combat-arena .mine-monster{position:absolute;z-index:3;right:43px;bottom:25px;animation:monster-idle .72s ease-in-out infinite alternate}.combat-weapon{position:absolute;z-index:5;bottom:68px;left:82px;font-size:2.2rem;opacity:0;transform-origin:12% 90%}.combat-impact{position:absolute;z-index:6;right:86px;bottom:76px;width:14px;height:14px;border-radius:50%;opacity:0;background:#fff3a6;box-shadow:0 -22px #ffcb45,21px -9px #fff,20px 15px #f06a36,-18px 16px #ffdd65,-23px -7px #fff}.damage-pop{position:absolute;z-index:7;right:68px;top:18px;color:#fff36d;font:900 1.45rem/1 "Saira Condensed",sans-serif;text-shadow:0 3px 0 #8d2419,0 0 8px #000;opacity:0}.strike-wrench .combat-weapon:before{content:"🔧"}.strike-pan .combat-weapon:before{content:"🍳"}.strike-hammer .combat-weapon:before{content:"🔨"}.strike-wrench .combat-weapon,.strike-pan .combat-weapon,.strike-hammer .combat-weapon{animation:weapon-swing .48s ease-in forwards}.strike-hit .combat-player{animation:player-lunge .5s ease}.strike-hit .mine-monster{animation:monster-hit .52s ease}.strike-hit .combat-impact{animation:impact-flash .48s .2s ease}.strike-hit .damage-pop{animation:damage-rise .58s .2s ease}.strike-missed .combat-player{animation:player-lunge .5s ease}.strike-missed .combat-weapon{animation:weapon-miss .5s ease forwards}.strike-missed .mine-monster{animation:monster-dodge .5s ease}.strike-missed .damage-pop{animation:damage-rise .58s .15s ease}.mine-battle.won .mine-monster{animation:monster-defeat .75s ease forwards}.mine-bars{width:100%}@keyframes cave-pulse{to{opacity:.45;transform:scale(1.15)}}@keyframes monster-idle{0%{transform:translate(-8px,0) rotate(-5deg) scaleY(.96)}35%{transform:translate(5px,-9px) rotate(4deg) scaleY(1.04)}70%{transform:translate(10px,-2px) rotate(1deg) scaleY(.98)}100%{transform:translate(-4px,-7px) rotate(-4deg) scaleY(1.03)}}@keyframes player-lunge{45%{transform:translateX(82px) rotate(-6deg)}100%{transform:none}}@keyframes weapon-swing{0%{opacity:0;transform:rotate(-75deg) scale(.7)}25%{opacity:1}70%{opacity:1;transform:translateX(105px) rotate(55deg) scale(1.12)}100%{opacity:0;transform:translateX(115px) rotate(75deg)}}@keyframes weapon-miss{0%{opacity:1;transform:rotate(-70deg)}75%{opacity:1;transform:translate(90px,-45px) rotate(75deg)}100%{opacity:0;transform:translate(110px,-55px) rotate(95deg)}}@keyframes monster-hit{35%{filter:brightness(2.2);transform:translateX(9px) rotate(10deg)}55%{transform:translateX(-8px) rotate(-10deg)}75%{transform:translateX(6px) rotate(7deg)}}@keyframes monster-dodge{45%{transform:translate(28px,-16px) rotate(12deg)}}@keyframes impact-flash{35%{opacity:1;transform:scale(1.8) rotate(35deg)}100%{opacity:0;transform:scale(2.5) rotate(80deg)}}@keyframes damage-rise{20%{opacity:1;transform:scale(1.3)}100%{opacity:0;transform:translateY(-45px)}}@keyframes monster-defeat{to{opacity:.35;transform:translate(24px,24px) rotate(72deg) scale(.75)}}
@media(prefers-reduced-motion:reduce){.synthesis-scene.working .resource,.synthesis-scene.working .synthesis-machine,.combat-arena *{animation:none!important}}
.mine-battle-v2{display:grid!important;grid-template-columns:1fr!important;gap:9px!important;padding:10px!important}.mine-battle-v2 .combat-arena{display:block;width:100%;height:184px}.mine-battle-v2 .mine-bars{display:grid;width:100%;grid-template-columns:auto minmax(90px,1fr);gap:4px 9px;align-items:center}.mine-battle-v2 .mine-bars meter{height:18px}.mine-battle-v2 .combat-player{left:12%;bottom:23px;transform:scale(1.08);transform-origin:bottom}.mine-battle-v2 .mine-monster{right:12%;bottom:34px;width:88px;height:86px;border:7px solid #303339;border-radius:43% 47% 35% 38%;background:radial-gradient(circle at 36% 28%,#b8eeff 0 7%,transparent 8%),linear-gradient(145deg,#42c6dc 0 24%,#4264b7 25% 58%,#6e3c9e 59% 100%);box-shadow:-17px 24px 0 -8px #334a7a,17px 24px 0 -8px #334a7a,0 9px 20px #0009}.mine-battle-v2 .mine-monster:before,.mine-battle-v2 .mine-monster:after{top:-25px;width:26px;height:37px;border:0;border-radius:4px 70% 5px 70%;background:linear-gradient(135deg,#d8fbff,#54c8e7 48%,#4159b0);box-shadow:0 0 9px #77e7ff;transform:rotate(-25deg)}.mine-battle-v2 .mine-monster:before{left:4px}.mine-battle-v2 .mine-monster:after{right:4px;transform:scaleX(-1) rotate(-25deg)}.mine-battle-v2 .mine-monster .monster-face{position:absolute;z-index:2;top:31px;left:20px;width:14px;height:16px;border:0;border-radius:50%;background:#fff3a7;box-shadow:32px 0 #fff3a7,0 0 7px #fff3a7,32px 0 7px #fff3a7}.mine-battle-v2 .mine-monster .monster-face:before{content:"";position:absolute;top:4px;left:4px;width:6px;height:8px;border-radius:50%;background:#17223b;box-shadow:32px 0 #17223b}.mine-battle-v2 .mine-monster .monster-face:after{content:"";position:absolute;top:26px;left:9px;width:29px;height:11px;border-radius:3px 3px 14px 14px;background:#16213b;box-shadow:inset 0 4px #eb7891}.mine-battle-v2 .mine-monster .monster-crystal{position:absolute;z-index:1;width:17px;height:32px;border:0;border-radius:70% 8px;background:linear-gradient(145deg,#e4ffff,#53cfe8 48%,#443aa0);box-shadow:0 0 8px #7deaff}.mine-battle-v2 .mine-monster .crystal-one{top:7px;left:-13px;transform:rotate(-58deg)}.mine-battle-v2 .mine-monster .crystal-two{top:10px;right:-13px;left:auto;transform:rotate(55deg)}.mine-battle-v2 .mine-monster b{top:-16px;left:27px;background:#ffcf58;color:#19233a}.weapon-grid .weapon-button{grid-template-columns:44px minmax(0,1fr);grid-template-rows:auto auto;column-gap:8px;align-items:center;min-height:70px;padding:9px 11px;border:2px solid #546778;background:#303339;text-align:left;opacity:1}.weapon-grid .weapon-button b{grid-row:1/3;font-size:1.55rem}.weapon-grid .weapon-button small{font-size:.7rem}.weapon-grid .weapon-button.selected{border-color:#ffd45d;background:#4a3c20;box-shadow:0 0 0 3px #d9ab3f35}.weapon-grid .weapon-button.selected:after{content:"已選擇";grid-column:2;color:#ffe18c;font-size:.66rem;font-weight:900}.mine-actions .weapon-confirm{grid-column:1/-1;min-height:50px;border-color:#d9ab3f;background:#d9ab3f;color:#17130a;font-weight:900}.mine-actions .weapon-confirm:disabled{border-color:#555d68;background:#282d34;color:#9ca3ad;opacity:1}@media(max-width:460px){.weapon-grid{grid-template-columns:1fr!important}.weapon-grid .weapon-button{min-height:62px}.mine-battle-v2 .combat-arena{height:170px}}
@media(max-height:650px){.station-factory-layout .department-product-art{min-height:54px;padding:6px;gap:0}.station-factory-layout .product-shape{scale:.38;margin:-22px}.station-factory-layout .department-product-art>span{font-size:.55rem}}
.life-zone-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:10px 0}.life-zone-tabs button{display:grid;gap:2px;padding:8px;border:1px solid #526963;border-radius:9px;background:#202a2a;color:#edf3f1;text-align:left}.life-zone-tabs button[aria-pressed="true"]{border-color:#e2b74f;background:#574620;box-shadow:inset 0 0 0 1px #e2b74f}.life-zone-tabs b{font-size:.7rem}.life-zone-tabs small{color:#a9bbb6;font-size:.58rem}.life-map-list>button{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:9px;align-items:center;min-height:65px;padding:8px 10px;border:1px solid #43514f;border-radius:10px;background:#22282b;color:#f2f4f4;text-align:left}.life-map-list>button>i{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:linear-gradient(145deg,#e6bd5b,#a16935);font-size:1.12rem;font-style:normal}.life-map-list>button small,.life-map-list>button b,.life-map-list>button em{display:block}.life-map-list>button small{color:#8fd0b8;font-size:.59rem}.life-map-list>button b{font-size:.78rem}.life-map-list>button em{color:#dcb85d;font-size:.56rem;font-style:normal}.life-map-list>button>strong{color:#9fc9ba;font-size:.6rem;white-space:nowrap}.life-map-list>button[hidden]{display:none}.street-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:9px 0}.street-stats span{padding:7px 4px;border:1px solid #47665d;border-radius:8px;background:#1b1e24;text-align:center;color:#b7c9c3;font-size:.61rem}.street-stats b{display:block;margin-top:2px;color:#f1c85d;font-size:.82rem}.street-mission{margin:10px 0 4px;padding:11px;border:1px solid #d0a64a;border-radius:12px;background:linear-gradient(145deg,#392f20,#20262a)}.street-mission-head{display:grid;grid-template-columns:40px minmax(0,1fr) 34px;gap:8px;align-items:center}.street-mission-head>i{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:#d5a43f;font-style:normal}.street-mission-head small{color:#e0bd67}.street-mission-head h3{margin:2px 0;font-size:.88rem}.street-mission-head>button{width:32px;height:32px;border:1px solid #776b58;border-radius:50%;background:#292b2d;color:#fff;font-size:1.1rem}.street-mission>p{font-size:.73rem;line-height:1.55}.street-answers{display:grid;gap:6px}.street-answers button{min-height:44px;padding:8px 10px;border:1px solid #68777a;border-radius:8px;background:#283337;color:#fff;text-align:left;font-size:.7rem}.street-answers button.correct{border-color:#67c98a;background:#303339}.street-answers button.wrong{border-color:#c97868;background:#4a2926}.street-result{padding:8px;border-radius:8px;background:#171d1e;color:#c6cecc}.street-result.good{color:#8fe0aa;background:#25282e}
.world-life-toggle{position:absolute;z-index:4;top:12px;right:12px;display:grid;grid-template-columns:30px auto;grid-template-rows:auto auto;column-gap:6px;align-items:center;padding:7px 10px;border:2px solid #e2b74f;border-radius:12px;background:#1c1f25ea;color:#fff;text-align:left;box-shadow:0 6px 20px #0008}.world-life-toggle span{grid-row:1/3;font-size:1.35rem}.world-life-toggle b{font-size:.7rem}.world-life-toggle small{color:#a9d3c5;font-size:.53rem}.world-free-pin{position:absolute;z-index:3;display:grid;justify-items:center;gap:2px;padding:0;border:0;background:transparent;color:#fff;filter:drop-shadow(0 3px 3px #000)}.world-free-pin i{display:grid;place-items:center;width:38px;height:38px;border:3px solid #fff;border-radius:50% 50% 50% 10%;background:#cf9f36;font-style:normal;transform:rotate(-45deg)}.world-free-pin span{padding:2px 5px;border-radius:5px;background:#101817e8;font-size:.57rem;font-weight:800}.world-free-pin.pin-north{top:32%;left:27%}.world-free-pin.pin-south{right:29%;bottom:20%}.life-map-screen{position:fixed;z-index:50;top:68px;right:0;bottom:0;left:0;margin:auto;width:min(100%,500px);padding:76px 12px calc(24px + env(safe-area-inset-bottom));overflow-y:auto;background:linear-gradient(180deg,#272a30,#11171a 36%);overscroll-behavior:contain}.life-map-screen[hidden]{display:none}.life-screen-header{position:fixed;z-index:51;top:68px;left:50%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;width:min(100%,500px);min-height:66px;padding:8px 12px;border-bottom:1px solid #57736a;background:#101817f5;transform:translateX(-50%);box-shadow:0 8px 20px #0007}.life-screen-header button{min-height:42px;padding:7px 10px;border:1px solid #697873;border-radius:9px;background:#242d2d;color:#fff;font-size:.7rem}.life-screen-header div{display:grid}.life-screen-header b{font-size:.82rem}.life-screen-header small{color:#9db2ac;font-size:.55rem}.life-screen-header>span{color:#f0c85c;font-size:.68rem;white-space:nowrap}.life-map-screen .free-time-hub,.life-map-screen .life-map-panel{margin-bottom:12px}.life-map-open{height:100dvh;overflow:hidden}.life-map-open .intro-copy{z-index:20}@media(max-width:380px){.world-life-toggle{right:7px;top:7px}.intro-map-badge{max-width:48%}.life-screen-header{grid-template-columns:auto 1fr}.life-screen-header>span{grid-column:2;text-align:left}.life-map-screen{padding-top:88px}}
.life-map-panel{margin:0 0 14px;padding:13px;border:1px solid #517b72;border-radius:14px;background:linear-gradient(145deg,#272a30,#1b2026);overflow:hidden}.life-map-heading{display:flex;align-items:end;justify-content:space-between;gap:8px}.life-map-heading .eyebrow{margin:0}.life-map-heading h2{margin:0;font-size:1.1rem}.life-map-heading>span{padding:4px 8px;border-radius:9px;background:#1b1e24;color:#79d4b4;font-size:.63rem;white-space:nowrap}.life-map-panel>p{margin:6px 0 9px;color:#c0cac8;font-size:.7rem}.life-map-visual{position:relative;height:148px;border:1px solid #668d75;border-radius:12px;overflow:hidden;background:radial-gradient(circle at 22% 28%,#6dbb75 0 4%,transparent 5%),radial-gradient(circle at 72% 70%,#579966 0 7%,transparent 8%),linear-gradient(145deg,#7eb87a,#467f62 58%,#397184);box-shadow:inset 0 0 26px #1d202666}.life-map-visual:before,.life-map-visual:after{content:"";position:absolute;border-radius:50%;background:#79b7cb88}.life-map-visual:before{width:115px;height:72px;right:-38px;top:-16px}.life-map-visual:after{width:95px;height:60px;left:-33px;bottom:-21px}.life-map-road{position:absolute;width:130%;height:12px;background:#dbc99e;border:3px solid #f8e6b8;box-shadow:0 0 0 2px #596559}.road-a{left:-18%;top:66px;transform:rotate(-13deg)}.road-b{left:-14%;top:77px;transform:rotate(54deg)}.life-map-visual>b,.life-map-visual>small{position:absolute;z-index:2;left:15px;padding:3px 7px;background:#1b1e24dd;border-radius:5px}.life-map-visual>b{top:13px;color:#fff}.life-map-visual>small{top:43px;color:#d8e8df;font-size:.58rem}.life-pin{position:absolute;z-index:3;display:grid;place-items:center;width:34px;height:34px;border:3px solid #fff;border-radius:50% 50% 50% 10%;background:#d5a73e;font-style:normal;filter:drop-shadow(0 3px 2px #0007);transform:rotate(-45deg)}.pin-a{left:17%;top:84px}.pin-b{left:40%;top:55px}.pin-c{left:62%;top:94px}.pin-d{right:9%;top:42px}.pin-e{right:27%;top:15px}.life-map-filters{display:flex;gap:6px;margin:10px -2px 7px;padding:2px;overflow-x:auto;scrollbar-width:none}.life-map-filters button{flex:0 0 auto;padding:6px 10px;border:1px solid #61736d;border-radius:999px;background:#242b2c;color:#d9e0de;font-size:.66rem}.life-map-filters button[aria-pressed="true"]{border-color:#e2b74f;background:#e2b74f;color:#1b2021;font-weight:800}.life-map-count{margin:4px 0 8px!important;color:#88bca9!important}.life-map-list{display:grid;gap:7px;max-height:390px;overflow-y:auto;padding-right:2px}.life-map-list article{display:grid;grid-template-columns:40px minmax(0,1fr);gap:9px;align-items:center;min-height:65px;padding:8px 10px;border:1px solid #43514f;border-radius:10px;background:#22282b}.life-map-list article>i{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:linear-gradient(145deg,#e6bd5b,#a16935);font-size:1.12rem;font-style:normal}.life-map-list article small,.life-map-list article b,.life-map-list article em{display:block}.life-map-list article small{color:#8fd0b8;font-size:.59rem}.life-map-list article b{font-size:.78rem}.life-map-list article em{color:#909b9d;font-size:.56rem;font-style:normal}.life-map-list article[hidden]{display:none}.life-map-disclaimer{display:block;margin-top:9px;color:#91a19d;font-size:.56rem;line-height:1.45}
.release-notice{position:fixed;z-index:120;inset:0;display:grid;place-items:center;padding:max(12px,env(safe-area-inset-top)) 16px max(12px,env(safe-area-inset-bottom));background:#080b0dcc;backdrop-filter:blur(6px)}.release-notice>div{display:flex;flex-direction:column;width:min(100%,390px);max-height:100%;min-height:0;padding:20px;border:1px solid #d9ab3f;border-radius:18px;background:linear-gradient(145deg,#242a2d,#16191d);box-shadow:0 18px 60px #000;color:#f4f4f2}.release-badge{display:inline-block;padding:4px 9px;border-radius:999px;background:#d9ab3f;color:#19140a;font:900 .7rem "Saira Condensed",sans-serif}.release-notice h2{margin:9px 0 5px;font-size:1.35rem}.release-notice p{margin:0;color:#bec5c6;font-size:.78rem}.release-notice ul{display:grid;align-content:start;gap:8px;min-height:0;overflow-y:auto;overscroll-behavior:contain;margin:14px 0;padding-left:21px;color:#e2e6e5;font-size:.76rem;line-height:1.5}.release-notice li::marker{color:#e0b548}.release-notice button{flex:none;width:100%;min-height:48px;border:0;border-radius:11px;background:#d9ab3f;color:#17130a;font-weight:900}
.avatar-3d-model{width:158px!important;height:218px!important;top:28px!important}.avatar-3d-cutout{position:absolute!important;inset:0!important;overflow:hidden!important;filter:drop-shadow(0 12px 9px #0009);transform:translateZ(12px)!important}.avatar-3d-cutout img{position:absolute;top:0;left:calc(var(--avatar,0) * -100%);width:400%;height:100%;max-width:none;object-fit:fill}.avatar-3d-depth{position:absolute!important;z-index:-1;inset:8px 13px 4px!important;border-radius:45% 45% 28% 28%;background:var(--uniform);filter:brightness(.5);transform:translateZ(-12px)!important}.question-timer{display:grid;grid-template-columns:1fr auto;align-items:center;gap:5px 10px;margin:8px 0 11px;padding:8px 10px;border:1px solid #b18c3f;border-radius:9px;background:#211f19}.question-timer span{color:#c8cdd2;font-size:.68rem}.question-timer b{color:#ffd56c;font:900 .9rem "Saira Condensed",sans-serif}.question-timer>i{grid-column:1/-1;height:5px;overflow:hidden;border-radius:5px;background:#0e1115}.question-timer em{display:block;width:100%;height:100%;background:linear-gradient(90deg,#d9ab3f,#f4d77e);transition:width .25s linear}
.avatar-3d-depth{inset:35px 22px 12px!important;border-radius:50%!important;opacity:.22;filter:blur(15px) brightness(.65)!important}
.restaurant-city-map{height:310px;background:linear-gradient(145deg,#79b77e,#4e8b6c 58%,#3f7e91)}.restaurant-city-map .city-river{position:absolute;right:-40px;bottom:-18px;width:180px;height:360px;border:12px solid #a7deeb55;border-radius:48%;background:#4d9db8;transform:rotate(28deg);box-shadow:inset 16px 0 #d8f5f055}.restaurant-city-map .city-block{position:absolute;z-index:1;display:grid;place-items:center;border:2px solid #f0d8a0;border-radius:7px;background:repeating-linear-gradient(45deg,#cfb77d 0 9px,#dfc991 10px 18px);color:#44391f;font-size:.56rem;font-weight:900;box-shadow:3px 4px #30333966}.restaurant-city-map .block-a{top:88px;left:18px;width:92px;height:58px}.restaurant-city-map .block-b{right:96px;bottom:32px;width:92px;height:62px;border-radius:50%;background:#82ba6c}.restaurant-city-map .block-c{right:24px;top:71px;width:78px;height:51px}.restaurant-city-map .road-a{top:160px;left:-15%;transform:rotate(-8deg)}.restaurant-city-map .road-b{top:155px;left:-12%;transform:rotate(68deg)}.restaurant-city-map .road-c{position:absolute;top:232px;left:-10%;width:125%;height:10px;border:3px solid #f8e6b8;background:#dbc99e;transform:rotate(12deg);box-shadow:0 0 0 2px #596559}.restaurant-map-pin{position:absolute;z-index:6;display:grid;justify-items:center;gap:1px;padding:0;border:0;background:transparent;color:#fff;filter:drop-shadow(0 3px 3px #0008)}.restaurant-map-pin i{display:grid;place-items:center;width:37px;height:37px;border:3px solid #fff;border-radius:50% 50% 50% 10%;background:#d6a638;font-style:normal;font-size:1rem;transform:rotate(-45deg)}.restaurant-map-pin span{max-width:84px;padding:2px 5px;border-radius:5px;background:#1b1e24e8;font-size:.52rem;font-weight:900;line-height:1.2;text-align:center}.restaurant-pin-1{top:72px;left:33%}.restaurant-pin-2{top:173px;left:12%}.restaurant-pin-3{top:205px;left:42%}.restaurant-pin-4{top:102px;right:31%}.restaurant-pin-5{right:8%;bottom:35px}.restaurant-pin-6{left:24%;bottom:16px}.life-map-list>button.map-highlight{animation:map-card-highlight 1.2s ease 2;border-color:#ffd668;box-shadow:0 0 0 3px #d9ab3f44}@keyframes map-card-highlight{50%{background:#55451f;transform:scale(.985)}}@media(max-width:380px){.restaurant-city-map{height:285px}.restaurant-map-pin span{max-width:70px;font-size:.48rem}}
.life-map-screen:not([hidden]){display:flex;flex-direction:column}.life-map-screen .life-map-panel{order:1;flex-shrink:0}.life-map-screen .free-time-hub{order:2;flex-shrink:0}
.restaurant-card{overflow:hidden;border:1px solid #6a5f61;border-radius:11px;background:#27292e}.restaurant-list .restaurant-card>button{width:100%;border:0;border-radius:0;background:transparent}.restaurant-location{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-top:1px solid #ffffff18;background:#1b1e23}.restaurant-location span{color:#b9c1ca;font-size:.58rem;line-height:1.35}.restaurant-location a{flex:none;padding:7px 9px;border:1px solid #d6a93b;border-radius:8px;color:#f2c764;font-size:.58rem;font-weight:800;text-decoration:none}.restaurant-location a:active{background:#d6a93b;color:#17191d}.restaurant-card.map-highlight{animation:map-card-highlight 1.2s ease 2;border-color:#ffd668;box-shadow:0 0 0 3px #d9ab3f44}
.merchant-scene{position:fixed;z-index:54;top:68px;bottom:0;left:50%;width:min(100%,500px);padding:72px 12px calc(20px + env(safe-area-inset-bottom));overflow-y:auto;background:linear-gradient(#1f2228,#0f1416);transform:translateX(-50%)}.merchant-scene[hidden]{display:none}.merchant-scene>header{position:fixed;z-index:56;top:68px;left:50%;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:10px;width:min(100%,500px);min-height:62px;padding:8px 12px;border-bottom:1px solid #68766f;background:#16191ff5;transform:translateX(-50%)}.merchant-scene>header button{min-height:42px;padding:7px 10px;border:1px solid #78827e;border-radius:9px;background:#252d2c;color:#fff}.merchant-scene>header div{display:grid}.merchant-scene>header small{color:#d5b85f;font-size:.57rem}.merchant-scene>header b{font-size:.85rem}.merchant-shop-world{position:relative;height:390px;overflow:hidden;border:2px solid #d6b45e;border-radius:17px;background:linear-gradient(#74b5d2 0 24%,#e5c58d 24% 66%,#a97b50 66%);box-shadow:inset 0 -45px #0002,0 12px 30px #0008}.merchant-shop-world[data-category="finance"]{background:linear-gradient(#7fb0ce 0 24%,#d5c09a 24% 66%,#826749 66%)}.merchant-shop-world[data-category="home"]{background:linear-gradient(#8cb5c1 0 24%,#a9a59a 24% 66%,#826b55 66%)}.merchant-shop-world[data-category="lifestyle"]{background:linear-gradient(#9ec9de 0 24%,#e0b9a7 24% 66%,#ad8060 66%)}.shop-window{position:absolute;top:24px;left:20px;display:grid;grid-template-columns:1fr 1fr;gap:5px;width:142px;height:105px;padding:8px;border:7px solid #6e4930;background:#9cd4e5;box-shadow:inset 0 -22px #8cc5a0}.shop-window i{border-right:2px solid #ffffff77}.shop-window span{position:absolute;right:8px;bottom:8px;padding:2px 6px;border-radius:4px;background:#303339;color:#fff;font-size:.55rem;font-weight:900}.shop-counter{position:absolute;right:14px;bottom:91px;width:145px;height:67px;border:5px solid #68452e;border-radius:7px 7px 0 0;background:linear-gradient(#c49358 0 20%,#93633d 20%);box-shadow:0 12px #533824}.shop-shelf{position:absolute;top:43px;right:18px;display:flex;align-items:end;justify-content:space-around;width:130px;height:75px;padding:8px;border:6px solid #65452f;background:#8c633f}.shop-shelf i{width:22px;height:35px;border-radius:3px;background:#d9af52;box-shadow:0 -7px #edf0dc}.merchant-npc-sprite{position:absolute;z-index:3;right:51px;bottom:129px;width:74px;height:92px;background:url('../img/npc-sheet-mobile-v81.webp') 0 0/400% 200% no-repeat;filter:drop-shadow(0 7px 5px #0007);animation:merchant-idle 1.5s ease-in-out infinite}.merchant-npc-name{position:absolute;z-index:5;right:26px;bottom:221px;min-width:124px;padding:5px 8px;border:2px solid #fff;border-radius:9px;background:#1d2026e8;color:#fff;font-size:.66rem;font-weight:900;text-align:center}.merchant-player{position:absolute;z-index:4;bottom:34px;left:25px;width:78px;height:104px;transition:left .7s ease}.merchant-player img{position:absolute}.merchant-player.walking img{animation:merchant-walk .18s steps(2) infinite}.merchant-shop-world.npc-near .merchant-player{left:calc(100% - 190px)}.merchant-greeting{position:absolute;z-index:6;right:16px;bottom:18px;left:16px;padding:11px 12px;border:2px solid #fff;border-radius:13px;background:#151b1be8;color:#f4e8c7;font-size:.7rem;text-align:center}.merchant-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}.merchant-controls button{min-height:48px;padding:9px;border:1px solid #d6ad48;border-radius:11px;background:#2d302a;color:#fff;font-weight:900}.merchant-controls button:disabled{border-color:#56605d;color:#7e8784}.merchant-scene .street-mission{position:relative;margin-top:8px;background:linear-gradient(145deg,#473b24,#20282a);box-shadow:0 10px 30px #0008}.npc-dialogue-line{padding:11px;border:1px solid #ffffff22;border-radius:11px;background:#171d1d;color:#fff5d5!important}.merchant-scene .street-answers button{font-size:.75rem}@keyframes merchant-idle{50%{transform:translateY(-3px)}}@keyframes merchant-walk{50%{transform:translateY(-4px) rotate(-2deg)}}
.avatar-3d-light{margin-left:var(--light-shift,0);transition:margin-left .18s ease}.avatar-3d-model{transform:translateX(-50%) rotateY(0);transition:transform .22s ease;animation:avatar-breathe 3s ease-in-out infinite!important}.avatar-3d-stage.dragging .avatar-3d-model{animation:none!important;transition:none}.avatar-3d-cutout{backface-visibility:visible}.avatar-3d-depth{transform:translateZ(-8px) scale(1.04)!important;opacity:.38!important;box-shadow:0 0 0 5px #1118,8px 3px 13px #0008}.avatar-3d-stage.avatar-change .avatar-3d-model{animation:avatar-select-front .5s ease,avatar-breathe 3s .5s ease-in-out infinite!important}@keyframes avatar-breathe{0%,100%{transform:translateX(-50%) translateY(0) scale(1)}50%{transform:translateX(-50%) translateY(-4px) scale(1.015)}}@keyframes avatar-select-front{40%{filter:brightness(1.5);transform:translateX(-50%) translateY(-10px) scale(1.06)}}
.restaurant-pin-7{right:38%;top:135px}.restaurant-pin-7 i{background:#b86a3f}
.life-world-map{height:390px!important;isolation:isolate;background:linear-gradient(#82c8e5 0 22%,#79aa70 22% 100%)!important}.life-world-map[data-theme="business"]{background:linear-gradient(#7eb9d8 0 22%,#87928d 22% 100%)!important}.life-world-map[data-theme="craft"]{background:linear-gradient(#8dbbd0 0 22%,#9b8068 22% 100%)!important}.life-world-map[data-theme="lifestyle"]{background:linear-gradient(#98d0e7 0 22%,#9fc27c 22% 100%)!important}.life-world-map:after{z-index:-1;width:140%;height:17px;left:-20%;bottom:92px;border-radius:0;background:#d9c699;box-shadow:0 0 0 4px #f3dfad,0 0 0 8px #5f6a62;transform:rotate(-8deg)}.life-world-pins{position:absolute;inset:0;z-index:4}.life-world-pin{position:absolute;left:var(--pin-x);top:var(--pin-y);display:grid;justify-items:center;width:74px;padding:0;border:0;background:transparent;color:#fff;transform:translate(-50%,-50%);filter:drop-shadow(0 3px 3px #0008)}.life-world-pin i{display:grid;place-items:center;width:39px;height:39px;border:3px solid #fff;border-radius:50% 50% 50% 10%;background:#d3a335;font-style:normal;font-size:1rem;transform:rotate(-45deg)}.life-world-pin span{max-width:74px;margin-top:3px;padding:2px 5px;border-radius:5px;background:#1a1d23eb;font-size:.49rem;font-weight:900;line-height:1.15}.life-world-pin em{margin-top:2px;padding:1px 4px;border-radius:4px;background:#236540e8;color:#c9f4d5;font-size:.42rem;font-style:normal}.life-world-pin.closed{opacity:.72}.life-world-pin.closed em{background:#642f2fe8;color:#ffd2c9}.life-world-player{position:absolute;z-index:7;left:50%;top:82%;width:46px;height:62px;transform:translate(-50%,-70%);transition:left .55s ease,top .55s ease;filter:drop-shadow(0 4px 3px #0008);pointer-events:none}.life-world-player img{position:absolute}.life-world-player.walking img{animation:merchant-walk .16s steps(2) infinite}.life-minimap{position:absolute;z-index:8;right:8px;top:8px;width:54px;height:43px;border:2px solid #fff8;border-radius:8px;background:#1a1d23cc}.life-minimap i{position:absolute;inset:7px;border:1px solid #78bc8a;background:linear-gradient(35deg,transparent 43%,#e1c98d 44% 56%,transparent 57%)}.life-minimap b{position:absolute;right:3px;bottom:1px;color:#fff;font-size:.37rem}.life-walk-controls{display:grid;grid-template-columns:42px 42px 42px 42px 1fr;gap:6px;margin:7px 0 10px}.life-walk-controls button{min-height:40px;border:1px solid #9d8a51;border-radius:9px;background:#26312f;color:#f4d06e;font-weight:900}.life-walk-controls span{align-self:center;color:#b9c8c4;font-size:.55rem;line-height:1.3}.merchant-shop-world[data-open="false"]:after{content:"非營業時段・店內整理中";position:absolute;z-index:8;top:12px;right:12px;padding:5px 8px;border-radius:7px;background:#5b2828e8;color:#ffe0d8;font-size:.58rem;font-weight:900}@media(max-width:380px){.life-world-map{height:350px!important}.life-walk-controls{grid-template-columns:repeat(4,1fr)}.life-walk-controls span{grid-column:1/-1;text-align:center}.life-world-pin{width:62px}.life-world-pin span{max-width:62px;font-size:.44rem}}
.merchant-real-location{display:grid;gap:7px;margin:10px 0;padding:10px;border:1px solid #54746a;border-radius:11px;background:#1d2026}.merchant-real-location[hidden]{display:none}.merchant-real-location span{color:#c1cfca;font-size:.64rem}.merchant-real-location a{display:block;padding:9px;border:1px solid #d6a93b;border-radius:8px;color:#f4cf72;font-size:.66rem;font-weight:900;text-align:center;text-decoration:none}.merchant-controls #merchant-free-time{grid-column:1/-1;background:#303339}.merchant-controls #merchant-free-time[hidden]{display:none}
.merchant-shop-world[data-scene]{background-position:center;background-size:cover;background-repeat:no-repeat}.merchant-shop-world[data-scene="dining"]{background-image:linear-gradient(#07100b12,#07100b28),url('../img/shop-dining.webp')}.merchant-shop-world[data-scene="business"]{background-image:linear-gradient(#07100b0c,#07100b25),url('../img/shop-business.webp')}.merchant-shop-world[data-scene="craft"]{background-image:linear-gradient(#07100b0c,#07100b28),url('../img/shop-craft.webp')}.merchant-shop-world[data-scene="lifestyle"]{background-image:linear-gradient(#07100b0c,#07100b22),url('../img/shop-lifestyle.webp')}.merchant-shop-world[data-scene] .shop-window,.merchant-shop-world[data-scene] .shop-counter,.merchant-shop-world[data-scene] .shop-shelf{display:none}.merchant-shop-world[data-scene]:before{content:"";position:absolute;z-index:2;right:0;bottom:0;left:0;height:43%;background:linear-gradient(transparent,#07100b52);pointer-events:none}.merchant-shop-world[data-scene] .merchant-greeting,.merchant-shop-world[data-scene] .merchant-player,.merchant-shop-world[data-scene] .merchant-npc-sprite,.merchant-shop-world[data-scene] .merchant-npc-name{z-index:5}
.avatar-3d-stage.user-turned .avatar-3d-model{animation:none!important}.avatar-3d-platform b span{color:#f2c764}.avatar-3d-cutout:after{content:"";position:absolute;z-index:-1;inset:3px -7px;border-radius:45%;background:linear-gradient(90deg,#0d1118,var(--uniform),#0d1118);filter:brightness(.45);transform:translateZ(-10px)}
.avatar-3d-stage,.avatar-3d-stage *{user-select:none;-webkit-user-select:none}.avatar-3d-stage img{-webkit-user-drag:none;pointer-events:none}
.avatar-2d-stage{cursor:default;touch-action:auto}.avatar-2d-stage:active{cursor:default}.avatar-2d-stage .avatar-3d-model{transform:translateX(-50%);animation:avatar-breathe 3s ease-in-out infinite!important}.avatar-2d-stage .avatar-3d-depth,.avatar-2d-stage .avatar-3d-cutout:after{display:none}.avatar-2d-stage .avatar-3d-cutout img{top:0;left:calc(var(--avatar,0) * -100%);width:400%;height:100%}
.operation-mode-panel{margin:14px 0;padding:14px;border:1px solid #d9ab3f66;border-radius:14px;background:#1c2026}.operation-mode-panel h2{margin:2px 0;font-size:1.05rem}.operation-mode-panel>p{color:#aeb5bf;font-size:.72rem;line-height:1.5}.operation-mode-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.operation-mode-options button{min-height:72px;padding:8px 5px;border:1px solid #505761;border-radius:10px;background:#252a31;color:#eef0f2}.operation-mode-options button.selected{border-color:#e5ba4d;background:#3a321f;box-shadow:inset 0 0 0 1px #e5ba4d}.operation-mode-options button:disabled{opacity:.45}.operation-mode-options b,.operation-mode-options small{display:block}.operation-mode-options b{font-size:.75rem}.operation-mode-options small{margin-top:5px;color:#aeb5bf;font-size:.58rem;line-height:1.35}
.auto-dispatch-screen{display:grid;place-items:center;align-content:center;min-height:calc(100dvh - 90px);padding:28px 18px;text-align:center;background:radial-gradient(circle at 50% 35%,#3c3522,#15181d 60%)}.auto-dispatch-screen h1{margin:7px 0;font-size:1.55rem}.auto-dispatch-screen>p:not(.eyebrow){color:#e8c96f}.auto-dispatch-screen>strong{max-width:360px;margin-top:22px;color:#b8bec6;font-size:.75rem}.auto-dispatch-truck{position:relative;font-size:4.5rem;animation:auto-truck 1.1s ease-in-out infinite}.auto-dispatch-truck i{position:absolute;right:-12px;bottom:12px;width:26px;height:3px;background:#e2b747;box-shadow:-12px -9px #e2b747}.auto-dispatch-flow{display:flex;align-items:center;gap:6px;margin-top:22px}.auto-dispatch-flow span{padding:7px;border:1px solid #d9ab3f66;border-radius:8px;background:#20242a;font-size:.62rem}.auto-dispatch-flow i{width:18px;height:2px;background:#d9ab3f}@keyframes auto-truck{50%{transform:translateX(12px) translateY(-3px)}}
.merchant-scene .street-mission:not([hidden]){position:fixed;z-index:70;top:145px;bottom:calc(14px + env(safe-area-inset-bottom));left:50%;display:flex;flex-direction:column;width:min(calc(100% - 24px),476px);max-height:calc(100dvh - 165px);margin:0;padding:17px;border:2px solid #e0b548;border-radius:18px;background:linear-gradient(155deg,#4c3e22 0,#20282a 38%,#151a1c);box-shadow:0 0 0 100vmax #050708d9,0 20px 60px #000;transform:translateX(-50%);overflow-y:auto}.merchant-scene .street-mission-head{grid-template-columns:52px minmax(0,1fr) 42px;gap:11px}.merchant-scene .street-mission-head>i{width:50px;height:50px;font-size:1.35rem}.merchant-scene .street-mission-head h3{font-size:1.08rem}.merchant-scene .street-mission-head small{font-size:.7rem}.merchant-scene .street-mission-head>button{width:40px;height:40px;font-size:1.35rem}.merchant-scene .npc-dialogue-line{margin:13px 0;padding:14px;font-size:.88rem;line-height:1.65}.merchant-scene .street-answers{gap:9px}.merchant-scene .street-answers button{min-height:58px;padding:12px 14px;border-width:2px;border-radius:12px;font-size:.82rem;line-height:1.45}.merchant-scene .street-result{margin-top:12px;padding:11px;font-size:.75rem}@media(max-width:380px){.merchant-scene .street-mission:not([hidden]){top:138px;max-height:calc(100dvh - 154px);padding:14px}}
.audio-start-prompt{max-width:calc(100% - 28px);animation:audio-prompt-in .25s ease}.audio-start-prompt[hidden]{display:none!important}@keyframes audio-prompt-in{from{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%,0)}}

.game-clock{display:grid;place-items:center;min-width:76px;height:38px;padding:0 7px;border:1px solid #826c34;border-radius:10px;background:#211f19;color:#f3ce6b;font:900 .68rem "Saira Condensed",sans-serif;white-space:nowrap}.relationship-panel{margin:0 0 14px;padding:13px;border:1px solid #6d654d;border-radius:14px;background:linear-gradient(145deg,#2c3029,#1b2024)}.relationship-head{display:grid;grid-template-columns:44px 1fr auto;gap:9px;align-items:center}.relationship-head>span{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#c99d3b;font-size:1.3rem}.relationship-head h2,.relationship-head .eyebrow{margin:0}.relationship-head h2{font-size:1rem}.relationship-head>b{color:#f0cb68;font-size:.61rem}.relationship-panel>p{color:#bdc4be;font-size:.67rem;line-height:1.55}.relationship-list{display:grid;grid-template-columns:1fr 1fr;gap:7px;max-height:330px;overflow:auto}.relationship-list>button{display:grid;grid-template-columns:44px minmax(0,1fr) auto;grid-template-rows:auto 6px;gap:2px 7px;align-items:center;min-height:64px;padding:7px;border:1px solid #565e5a;border-radius:10px;background:#252b2a;color:#fff;text-align:left}.relationship-list>button:active{border-color:#dfb649}.social-npc-avatar{grid-row:1/3;width:42px;height:52px;background:url('../img/npc-sheet-mobile-v81.webp') calc(var(--npc-column) * 33.333%) calc(var(--npc-row) * 100%)/400% 200% no-repeat;filter:drop-shadow(0 4px 3px #0008)}.relationship-list span{min-width:0}.relationship-list b,.relationship-list small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.relationship-list b{font-size:.7rem}.relationship-list small{color:#aeb8b3;font-size:.5rem}.relationship-list em{color:#edc85f;font-size:.57rem;font-style:normal}.relationship-list meter{grid-column:2/4;width:100%;height:6px}.company-insights{display:grid;gap:6px;margin-top:9px;padding:9px;border-radius:9px;background:#131918}.company-insights>b{font-size:.68rem}.company-insights>span{display:flex;flex-wrap:wrap;gap:5px;color:#9fa9a5;font-size:.57rem}.company-insights i{padding:4px 6px;border-radius:8px;background:#3a3423;color:#f1ce70;font-style:normal}.social-dialog{position:fixed;z-index:72;top:68px;right:0;bottom:0;left:0;margin:auto;width:min(100%,500px);padding:73px 12px 24px;overflow:auto;background:linear-gradient(#202329,#11171a)}.social-dialog[hidden]{display:none}.social-dialog>header{position:fixed;z-index:73;top:68px;left:50%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;width:min(100%,500px);min-height:64px;padding:8px 12px;border-bottom:1px solid #5b747a;background:#191c22f5;transform:translateX(-50%)}.social-dialog>header button{min-height:42px;padding:7px 9px;border:1px solid #6e7c80;border-radius:9px;background:#263136;color:#fff}.social-dialog>header div{display:grid}.social-dialog>header small{color:#e0b84e;font-size:.53rem}.social-dialog>header b{font-size:.84rem}.social-dialog>header>span{color:#efd06e;font-size:.65rem}.social-scene{position:relative;height:410px;overflow:hidden;border:2px solid #deb64f;border-radius:17px;background:linear-gradient(#5796b3 0 31%,#ddc795 32% 65%,#866246 66%);box-shadow:inset 0 -50px #0002}.social-scene:before{content:"T.SGD 交流休息室";position:absolute;top:22px;right:23px;left:23px;padding:10px;border:5px solid #765036;background:#f0dfa9;color:#4e3a21;font-size:.75rem;font-weight:900;text-align:center}.social-npc-large{position:absolute;right:57px;bottom:79px;width:104px;height:136px;background:url('../img/npc-sheet-mobile-v81.webp') calc(var(--npc-column) * 33.333%) calc(var(--npc-row) * 100%)/400% 200% no-repeat;filter:drop-shadow(0 8px 5px #0008);animation:merchant-idle 1.4s ease-in-out infinite}.social-player{position:absolute;bottom:73px;left:50px;width:92px;height:124px;filter:drop-shadow(0 8px 5px #0008)}.social-player img{position:absolute}.social-clock-label{position:absolute;z-index:3;top:90px;left:18px;padding:5px 8px;border-radius:7px;background:#1f2228dd;color:#f0cd6e;font-size:.62rem;font-weight:900}.social-scene>p{position:absolute;z-index:4;right:14px;bottom:15px;left:14px;margin:0;padding:10px;border:2px solid #fff;border-radius:12px;background:#18201eea;color:#fff4d2;font-size:.68rem;text-align:center}.social-conversation{margin-top:10px;padding:13px;border:1px solid #53676b;border-radius:13px;background:#20292c}.social-conversation h3{margin:3px 0}.social-conversation>p:not(.eyebrow){padding:10px;border-radius:9px;background:#13191b;color:#d9dfdb;font-size:.72rem;line-height:1.55}.social-progress{display:grid;grid-template-columns:1fr auto;gap:4px;margin:9px 0}.social-progress span,.social-progress b{font-size:.65rem}.social-progress meter{grid-column:1/-1;width:100%}.social-result{color:#d6c37d!important}.social-open{height:100dvh;overflow:hidden}body[data-time-phase="dawn"] .intro-map,body[data-time-phase="dawn"] .world-game canvas,body[data-time-phase="dawn"] .life-map-visual{filter:brightness(.86) sepia(.1)}body[data-time-phase="dusk"] .intro-map,body[data-time-phase="dusk"] .world-game canvas,body[data-time-phase="dusk"] .life-map-visual{filter:brightness(.72) sepia(.25) saturate(1.25)}body[data-time-phase="night"] .intro-map,body[data-time-phase="night"] .world-game canvas,body[data-time-phase="night"] .life-map-visual,body[data-time-phase="night"] .home-room{filter:brightness(.43) saturate(.72) hue-rotate(12deg)}body[data-time-phase="night"] .topbar{background:linear-gradient(90deg,#111421,#1c2130)}@media(max-width:430px){.game-clock{position:absolute;top:50px;right:7px;z-index:3;height:22px;min-width:68px;border-radius:0 0 7px 7px;font-size:.57rem}.relationship-list{grid-template-columns:1fr}.relationship-head{grid-template-columns:42px 1fr}.relationship-head>b{grid-column:2}}

.street-funds{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;align-items:center;margin:7px 0 10px;padding:9px 11px;border:1px solid #a88231;border-radius:10px;background:linear-gradient(135deg,#332b19,#1e2127)}.street-funds span{color:#c9d4cf;font-size:.62rem}.street-funds b{justify-self:end;color:#f3cc68;font:900 1rem "Saira Condensed",sans-serif}.street-funds small{grid-column:1/-1;color:#9eb4aa;font-size:.57rem}
.social-open .intro-art{visibility:hidden}

.company-life-panel,.bank-panel{margin:0 0 14px;padding:13px;border:1px solid #6b684f;border-radius:14px;background:linear-gradient(145deg,#26362f,#1a2024)}.company-life-head,.bank-panel-head{display:grid;grid-template-columns:44px 1fr auto;gap:9px;align-items:center}.company-life-head>span,.bank-panel-head>span{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#d6aa40;font-size:1.35rem}.company-life-head h2,.bank-panel-head h2{margin:0;font-size:1rem}.company-life-head .eyebrow,.bank-panel-head .eyebrow{margin:0}.company-life-head>b{color:#f3cf72;font-size:.68rem}.company-life-panel>p,.bank-panel>p{color:#bcc7c1;font-size:.68rem;line-height:1.55}.company-life-panel label{display:grid;gap:5px;color:#d9c783;font-size:.66rem}.company-life-panel select{min-height:44px;padding:7px;border:1px solid #788078;border-radius:9px;background:#1c2524;color:#fff}.dinner-progress{display:grid;gap:3px;margin:9px 0;padding:9px;border-radius:9px;background:#171a20}.dinner-progress span{color:#d6b55c;font-size:.65rem}.dinner-progress b{font-size:.72rem}.company-life-status{margin-bottom:0!important}.bank-panel>small{color:#8f9b97;font-size:.56rem}.bank-visit{position:fixed;z-index:90;inset:0;display:grid;place-items:center;padding:16px;background:#070a0dcc;backdrop-filter:blur(5px)}.bank-visit>div{width:min(100%,440px);max-height:92dvh;padding:17px;overflow:auto;border:2px solid #d7ad43;border-radius:18px;background:linear-gradient(155deg,#303339,#171b20);box-shadow:0 20px 70px #000}.bank-npc{display:grid;grid-template-columns:62px 1fr;gap:10px;align-items:center}.bank-npc>span{display:grid;place-items:center;width:60px;height:72px;border-radius:18px;background:linear-gradient(#86abc0,#303339);font-size:2.4rem;animation:merchant-idle 1.2s ease-in-out infinite}.bank-npc small,.bank-npc b{display:block}.bank-npc small{color:#d9b555}.bank-npc b{font-size:1.05rem}.bank-visit>div>p{font-size:.72rem;line-height:1.55}.loan-offers{display:grid;gap:7px}.loan-offers button,.bank-decline{width:100%;min-height:52px;padding:9px;border:1px solid #697b83;border-radius:10px;background:#303339;color:#fff;text-align:left}.loan-offers button b,.loan-offers button span{display:block}.loan-offers button b{color:#f2cb68}.loan-offers button span{margin-top:4px;color:#bdc8cf;font-size:.62rem}.bank-decline{margin-top:9px;text-align:center}.bank-visit>div>small{display:block;margin-top:9px;color:#8e9ba2;font-size:.56rem}.loan-payment-result{padding:8px;border-radius:8px;background:#342d1d;color:#eed485}

.team-dinner-scene{position:fixed;z-index:92;inset:0;display:grid;place-items:center;padding:14px;background:#050807dc}.dinner-room{position:relative;width:min(100%,430px);height:520px;overflow:hidden;border:2px solid #f1ca62;border-radius:20px;background:linear-gradient(#efb76e 0 18%,#e9d6ae 18% 68%,#8d5c3d 69%);box-shadow:0 20px 70px #000}.dinner-room:before{content:"";position:absolute;top:112px;left:20px;width:110px;height:105px;border:8px solid #70472d;background:linear-gradient(#75bcd5 0 55%,#6caa6f 56%)}.dinner-sign{position:absolute;top:24px;right:18px;left:18px;padding:12px;border:3px solid #7e4d27;border-radius:10px;background:#f8df9d;color:#573418;font-size:1rem;font-weight:900;text-align:center}.dinner-table{position:absolute;right:35px;bottom:126px;left:35px;height:84px;border-radius:50%;background:#b97842;box-shadow:0 18px 0 #704629}.dinner-table i{position:absolute;top:12px;width:45px;height:25px;border-radius:50%;background:#f5eee0;box-shadow:inset 0 0 0 5px #d9643f}.dinner-table i:nth-child(1){left:42px}.dinner-table i:nth-child(2){left:50%;transform:translateX(-50%)}.dinner-table i:nth-child(3){right:42px}.dinner-team{position:absolute;right:23px;bottom:184px;left:23px;display:flex;justify-content:space-around;font-size:3.1rem}.dinner-team span{animation:merchant-idle .8s ease-in-out infinite alternate}.dinner-team span:nth-child(2n){animation-delay:.25s}.dinner-cheer{position:absolute;right:18px;bottom:61px;left:18px;padding:10px;border-radius:11px;background:#352719e8;color:#ffe28b;font-weight:900;text-align:center}.dinner-cheer small{display:block;margin-top:4px;color:#fff;font-size:.62rem}.dinner-room button{position:absolute;right:18px;bottom:14px;left:18px;min-height:42px;border:0;border-radius:10px;background:#d8ab3f;color:#17120a;font-weight:900}

.world-home-pin{position:absolute;z-index:4;left:46%;bottom:34%;display:grid;justify-items:center;padding:0;border:0;background:transparent;color:#fff;filter:drop-shadow(0 4px 4px #000)}.world-home-pin i{display:grid;place-items:center;width:42px;height:42px;border:3px solid #fff;border-radius:50%;background:#4b8d74;font-style:normal;font-size:1.1rem}.world-home-pin span{margin-top:3px;padding:2px 6px;border-radius:5px;background:#101817e8;font-size:.57rem;font-weight:900}.home-preview{margin:0 0 14px;padding:13px;border:1px solid #6f806f;border-radius:14px;background:linear-gradient(145deg,#263831,#1b2226)}.home-preview>div{display:grid;grid-template-columns:45px 1fr auto;gap:9px;align-items:center}.home-preview>div>span{display:grid;place-items:center;width:43px;height:43px;border-radius:12px;background:#51977b;font-size:1.35rem}.home-preview h2,.home-preview .eyebrow{margin:0}.home-preview h2{font-size:1rem}.home-preview>div>b{color:#f0ca67;font-size:.65rem}.home-preview>p{color:#bac8c1;font-size:.68rem}.home-screen{position:fixed;z-index:60;top:68px;right:0;bottom:0;left:0;margin:auto;width:min(100%,500px);padding:76px 12px 25px;overflow-y:auto;background:linear-gradient(#24272d,#11171a)}.home-screen[hidden]{display:none}.home-screen>header{position:fixed;z-index:61;top:68px;left:50%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;width:min(100%,500px);min-height:64px;padding:8px 12px;background:#16191ff5;border-bottom:1px solid #587068;transform:translateX(-50%)}.home-screen>header button{min-height:42px;padding:7px 9px;border:1px solid #6f7b76;border-radius:9px;background:#27302f;color:#fff}.home-screen>header div{display:grid}.home-screen>header small{color:#80c6a9;font-size:.55rem}.home-screen>header>span{color:#f2cc69;font-size:.65rem}.home-room{position:relative;height:430px;overflow:hidden;border:2px solid #d3b768;border-radius:17px;background:linear-gradient(#b7d5d3 0 54%,#9c6f4e 55%);box-shadow:inset 0 -60px #0002}.home-room:before{content:"";position:absolute;right:0;bottom:0;left:0;height:45%;background:repeating-linear-gradient(90deg,#9b6c4a 0 42px,#a97955 43px 46px);transform:skewY(-4deg);transform-origin:right}.home-window{position:absolute;top:25px;left:23px;width:125px;height:105px;border:9px solid #704e36;background:linear-gradient(#86c8e1 0 58%,#78ad6d 59%);box-shadow:inset 57px 0 #ffffff22}.home-window:after{content:"";position:absolute;top:0;bottom:0;left:50%;width:5px;background:#704e36}.home-bed{position:absolute;right:22px;top:93px;font-size:4.8rem;filter:drop-shadow(0 7px 3px #0005)}.home-name{position:absolute;z-index:5;top:18px;right:14px;padding:5px 8px;border-radius:7px;background:#1d2026e8;color:#fff;font-size:.64rem;font-weight:900}.home-avatar{position:absolute;z-index:7;bottom:52px;left:45%;width:82px;height:112px;animation:merchant-idle 1.3s ease-in-out infinite}.home-avatar img{position:absolute}.home-decor{position:absolute;z-index:5;display:grid;justify-items:center}.home-decor i{font-style:normal;font-size:3rem;filter:drop-shadow(0 5px 3px #0006)}.home-decor b{padding:2px 5px;border-radius:4px;background:#141918cc;color:#fff;font-size:.5rem}.decor-sofa{left:18px;bottom:40px}.decor-plant{left:150px;top:105px}.decor-table{right:14px;bottom:35px}.decor-toolbox{left:15px;top:152px}.decor-tsgd-wall{right:37px;top:23px}.decor-garage-lift{right:18px;bottom:126px}.home-garage-door{position:absolute;z-index:1;right:0;bottom:0;width:46%;height:58%;border:7px solid #3b4449;background:repeating-linear-gradient(#8e989d 0 18px,#748087 19px 22px)}.home-garage-door b{display:block;margin:15px 8px;padding:5px;background:#d3a83f;color:#1a1b1b;font-size:.57rem;text-align:center}.home-management{display:grid;gap:10px;margin-top:10px}.home-level-card,.home-shop{padding:11px;border:1px solid #52645f;border-radius:12px;background:#202828}.home-level-card small,.home-level-card b{display:block}.home-level-card small{color:#d5b75f}.home-level-card p{color:#aebbb6;font-size:.65rem}.home-level-card button{width:100%;min-height:44px;border:1px solid #d4ad47;border-radius:9px;background:#3b3525;color:#fff}.home-shop h3{margin:0 0 8px}.home-shop>div{display:grid;grid-template-columns:1fr 1fr;gap:7px}.home-shop button{display:grid;grid-template-columns:36px 1fr;align-items:center;gap:6px;min-height:61px;padding:7px;border:1px solid #5e6e69;border-radius:9px;background:#283330;color:#fff;text-align:left}.home-shop button>i{font-size:1.5rem;font-style:normal}.home-shop button b,.home-shop button small{display:block}.home-shop button b{font-size:.67rem}.home-shop button small{color:#b8c7c1;font-size:.54rem}.home-shop button:disabled{opacity:.48}.home-open{height:100dvh;overflow:hidden}@media(max-width:370px){.home-shop>div{grid-template-columns:1fr}.home-preview>div{grid-template-columns:42px 1fr}.home-preview>div>b{grid-column:2}}

.finance-center{position:fixed;z-index:64;top:68px;right:0;bottom:0;left:0;margin:auto;width:min(100%,500px);padding:75px 12px 28px;overflow-y:auto;background:linear-gradient(#24272d,#11171d)}.finance-center[hidden]{display:none}.finance-center>header{position:fixed;z-index:65;top:68px;left:50%;display:grid;grid-template-columns:auto 1fr;gap:9px;align-items:center;width:min(100%,500px);min-height:64px;padding:8px 12px;border-bottom:1px solid #557080;background:#1a1d23f5;transform:translateX(-50%)}.finance-center>header button{min-height:42px;padding:7px 9px;border:1px solid #687984;border-radius:9px;background:#303339;color:#fff}.finance-center>header div{display:grid}.finance-center>header small{color:#7ec4df;font-size:.55rem}.finance-center-body{display:grid;gap:10px}.finance-center-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.finance-center-summary span{padding:8px 4px;border:1px solid #516a77;border-radius:9px;background:#2a2d33;color:#aebec7;font-size:.54rem;text-align:center}.finance-center-summary b{display:block;margin-top:3px;color:#f0cc69;font-size:.7rem}.finance-center-body>section{padding:12px;border:1px solid #536b78;border-radius:13px;background:#2a2d33}.finance-product-head{display:grid;grid-template-columns:42px 1fr;gap:8px;align-items:center}.finance-product-head>i{display:grid;place-items:center;width:40px;height:40px;border-radius:11px;background:#3f7186;font-size:1.25rem;font-style:normal}.finance-product-head small{color:#87cbe7;font-size:.54rem}.finance-product-head h2{margin:0;font-size:.98rem}.finance-center-body>section>p{color:#b9c5ca;font-size:.65rem}.finance-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.finance-actions button,.stock-list button,.insurance-list button{min-height:42px;padding:7px;border:1px solid #7390a0;border-radius:8px;background:#303339;color:#fff;font-size:.65rem}.stock-list,.insurance-list{display:grid;gap:7px}.stock-list article{display:grid;grid-template-columns:minmax(0,1fr) 68px 68px;gap:6px;align-items:center;padding:8px;border-radius:9px;background:#202329}.stock-list article>div,.insurance-list article>div{display:grid}.stock-list small{color:#7fc9e6}.stock-list b{font-size:.72rem}.stock-list span,.insurance-list span,.insurance-list small{color:#b7c2c8;font-size:.55rem}.insurance-list article{display:grid;grid-template-columns:minmax(0,1fr) 72px;gap:7px;align-items:center;padding:9px;border-radius:9px;background:#202329}.insurance-list b{font-size:.72rem}.insurance-list span{margin:3px 0;line-height:1.4}.finance-simulation-note{color:#8e9ba1;font-size:.56rem;line-height:1.5}.finance-center-open{height:100dvh;overflow:hidden}@media(max-width:370px){.finance-center-summary{grid-template-columns:1fr}.stock-list article{grid-template-columns:1fr 1fr}.stock-list article>div{grid-column:1/-1}}
.finance-board .order-estimate{grid-column:1/-1;border-color:#5c7a4a}.finance-board .order-estimate b{color:#7fd89a}.finance-board .order-estimate.is-loss{border-color:#c0392b}.finance-board .order-estimate.is-loss b,.order-ledger .is-loss{color:#ff7b6b}
.factory-order .order-estimate-line{margin-top:6px;padding-top:6px;border-top:1px dashed #6b604a;color:#e6dcc3}.factory-order .order-estimate-line b{color:#7fd89a;font:700 1.05rem "Saira Condensed"}.factory-order .order-estimate-line.is-loss b{color:#ff7b6b}
/* 介面語言（登入畫面／設定頁）：兩顆按鈕並排，窄螢幕自動換行 */
.intro-locale{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}
.intro-locale button{flex:1 1 130px;min-height:44px;border:1px solid var(--line);border-radius:10px;background:#252a31;color:#e9e3d2;font-weight:700}
.intro-locale button[aria-pressed="true"]{border-color:var(--gold);background:#3a3322;color:#ffe5a0}
.intro-locale-label{flex:1 0 100%;color:#d9c79a;font-size:.85rem;font-weight:700}
.locale-choice{display:flex;flex-wrap:wrap;gap:6px 14px}
.locale-choice label{min-height:44px;display:flex;align-items:center;gap:6px}
button{overflow-wrap:anywhere}
/* 高登市 P2 店內購買 */
.merchant-goods{display:grid;gap:8px;margin:10px 0}
.merchant-goods p{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0;padding:9px 11px;border:1px solid #54746a;border-radius:11px;background:#1d2026;color:#c1cfca;font-size:.64rem}
.merchant-goods p b{color:#f4cf72;font-size:.66rem}
.merchant-goods button{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;min-height:56px;padding:9px 12px;border:1px solid #d6ad48;border-radius:11px;background:#2d302a;color:#fff;text-align:left}
.merchant-goods button i{position:relative;display:grid;place-items:center;width:44px;height:44px;font-size:1.3rem;font-style:normal}
.merchant-goods button i img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.merchant-goods button span{display:grid}
.merchant-goods button b{font-size:.78rem;font-weight:900}
.merchant-goods button small{color:#a8e0b8;font-size:.6rem}
.merchant-goods button em{color:#f4cf72;font-size:.78rem;font-style:normal;font-weight:900}
/* 10-09 v488 金融店內窗口＋真實商家註明 */
.merchant-fiction-note{display:block;margin-top:3px;color:#9fb3ab;font-size:.56rem;line-height:1.35}
.merchant-goods .fin-loan-half{display:flex;align-items:center;gap:6px;padding:4px 2px;color:#f4cf72;font-size:.64rem}
.merchant-goods .fin-stock-row{display:grid;grid-template-columns:1fr auto;gap:6px}
.merchant-goods .fin-stock-row .fin-sell{grid-template-columns:auto;justify-items:center;min-width:64px;padding:9px 10px}
.finance-center .finance-shop-note{margin:0 0 10px;padding:8px 10px;border:1px dashed #d6ad48;border-radius:10px;color:#f4cf72;font-size:.66rem}
.merchant-goods button:disabled{border-color:#56605d;color:#7e8784}
.merchant-goods button:disabled small,.merchant-goods button:disabled em{color:#7e8784}

/* 10-01 介面瘦身第 1 批：窄螢幕 DAY 徽章收回頂欄列內（原本 absolute 垂在欄外佔畫面） */
@media(max-width:430px){.topbar:has(.game-hud) .game-clock{position:static;height:38px;min-width:54px;border-radius:10px;font-size:.57rem;line-height:1.15;white-space:normal;width:auto;padding:0 5px}}
/* 高登市 16 區導覽入口鈕（10-02）：放大地圖右下、與左下訓練鈕對稱；地圖本身也可點 */
.world-district-pin{position:absolute;z-index:4;right:14px;bottom:30px;display:flex;align-items:center;gap:5px;min-height:44px;padding:8px 11px;border:2px solid #edc35c;border-radius:14px;background:#2c2f35;color:#fff;font-weight:800}
.world-district-pin i{font-style:normal;font-size:1.05rem}
.world-district-pin span{font-size:.68rem}
.intro-art{cursor:pointer}
.opening-film{position:fixed;z-index:130;inset:0;display:grid;place-items:center;background:#000;transition:opacity .35s}.opening-film.is-leaving{opacity:0}.opening-film video,.opening-film img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000}.opening-film-skip{position:absolute;top:max(12px,env(safe-area-inset-top));right:16px;min-height:40px;padding:0 16px;border:1px solid #ffffff66;border-radius:999px;background:#000a;color:#fff;font-weight:800}.opening-film-cap{position:absolute;left:50%;bottom:12%;transform:translate(-50%,12px);display:grid;justify-items:center;gap:2px;padding:10px 26px;border-radius:14px;background:#fffbeae6;color:#2a1d04;border:2px solid #d9ab3f;box-shadow:0 6px 24px #0006;opacity:0;transition:opacity .5s,transform .5s;pointer-events:none;text-align:center}.opening-film-cap.is-on{opacity:1;transform:translate(-50%,0)}.opening-film-cap b{font-size:clamp(1.4rem,4vw,2.4rem);font-weight:900;letter-spacing:.12em}.opening-film-cap span{font-size:clamp(.85rem,2vw,1.1rem);font-weight:800;color:#7a5a12}.opening-film-play{position:absolute;min-width:150px;min-height:56px;border:0;border-radius:999px;background:#d9ab3f;color:#17130a;font-size:1.1rem;font-weight:900;box-shadow:0 8px 30px #000}
.facility-sublines{display:grid;gap:6px;margin:10px 0;padding:10px;border:1px solid rgba(255,214,120,.35);border-radius:12px;background:rgba(0,0,0,.25)}
.facility-sublines button{min-height:40px;border-radius:10px;font-weight:700}
.facility-sublines p{margin:0;font-size:.85em;opacity:.85}

/* 10-03 早上營運報表（設計稿 05 營運總覽） */
.ops-report{display:grid;gap:10px}
.ops-welcome{display:flex;flex-direction:column;gap:2px;margin:0 0 8px;padding:12px 14px;border-radius:15px;background:linear-gradient(135deg,#1d2b36,#35290f);border:1px solid #edbd4b88;text-align:center}.ops-welcome b{color:#ffd76a;font-size:1.15em;letter-spacing:.04em}.ops-welcome small{color:#e8ecef;opacity:.85}
.ops-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ops-stats p{display:flex;align-items:center;gap:10px;margin:0;padding:12px;border:1px solid #ffffff42;border-radius:15px;box-shadow:inset 0 1px #ffffff35,0 5px 14px #00171e66}
.ops-stats p[data-tone="cash"]{background:linear-gradient(135deg,#725015,#bd8125 58%,#edbd4b);color:#fff8d8}
.ops-stats p[data-tone="network"]{background:linear-gradient(135deg,#164c76,#167f91 58%,#26afa1);color:#eaffff}
.ops-stats .ui-icon{flex:none;width:32px;height:32px;padding:5px;border-radius:10px;background:#191c2299;color:#fff}
.ops-stats span{display:grid;min-width:0}.ops-stats small{opacity:.86}.ops-stats b{color:#fff;font-size:1.15em;text-shadow:0 2px 4px #0005}
.ops-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ops-tile{display:flex;align-items:center;gap:10px;text-align:left;min-height:68px;padding:10px 12px;border:1px solid #ffffff35;border-radius:15px;color:#fff;box-shadow:inset 0 1px #ffffff24,0 4px 12px #00171e55;transition:transform .15s,filter .15s}
.ops-tile:hover,.ops-tile:focus-visible{filter:brightness(1.12);transform:translateY(-1px)}
.ops-tile[data-tone="factory"]{background:linear-gradient(135deg,#245b88,#27799a)}.ops-tile[data-tone="channel"]{background:linear-gradient(135deg,#6d3f91,#9a5a9e)}
.ops-tile[data-tone="staff"]{background:linear-gradient(135deg,#287060,#35a279)}.ops-tile[data-tone="bank"]{background:linear-gradient(135deg,#85601d,#c2912d)}
.ops-tile[data-tone="home"]{background:linear-gradient(135deg,#a05038,#cf704b)}.ops-tile[data-tone="social"]{background:linear-gradient(135deg,#31518d,#6670bb)}
.ops-tile .ui-icon{flex:none;width:36px;height:36px;padding:6px;border-radius:11px;background:#191c226e;color:#fff;box-shadow:inset 0 1px #ffffff38}
.ops-tile span{display:grid;flex:1;min-width:0}.ops-tile small{opacity:.8;font-size:.78em}
.ops-tile>i{font-style:normal;opacity:.85;font-size:1.2rem}
.ops-foot{text-align:center;margin:0}.ops-foot button{min-height:42px;padding:7px 14px;border:1px solid #d9bd6c70;border-radius:999px;background:#21242acc;color:#ffe28c;display:inline-flex;gap:7px;align-items:center}
@media(max-width:370px){.ops-grid{grid-template-columns:1fr}.ops-stats{gap:6px}.ops-stats p{padding:9px}.ops-stats b{font-size:1em}}
/* 10-08 橫式：八站地圖手機橫拿時鋪滿整個畫面（原本 100vh-68px 加負邊距，上面被切、底下留白） */
@media(min-width:900px) and (max-height:700px){.world-game{position:fixed!important;inset:0!important;height:auto!important;width:auto!important;margin:0!important;min-height:0!important;z-index:5}}
.overseas-logistics{
  background:#fffdf7;
  color:#4a3306;
  border:1px solid #c89a2e;
}
.overseas-logistics .staff-section-head,
.overseas-logistics h4,
.overseas-logistics b{color:#4a3306}
.oversea-summary,
.oversea-assets,
.oversea-assign,
.oversea-events{
  display:flex;
  gap:12px;
  align-items:stretch;
  overflow-x:auto;
  padding:6px 2px 10px;
}
.oversea-summary span,
.oversea-column,
.oversea-assign label,
.oversea-event{
  flex:0 0 260px;
  background:#fffaf0;
  border:1px solid #c89a2e;
  border-radius:8px;
  padding:10px;
  color:#4a3306;
}
.oversea-column{flex-basis:420px}
.oversea-asset{
  display:grid;
  grid-template-columns:minmax(120px,1fr) auto;
  gap:4px 10px;
  align-items:center;
  border-top:1px solid rgba(200,154,46,.35);
  padding:9px 0;
}
.oversea-asset span,
.oversea-event span,
.oversea-column p,
.oversea-assign small,
.oversea-asset small{color:#6f5520}
.oversea-asset .btn{grid-row:1 / span 3;grid-column:2}
.overseas-logistics .btn.primary,
.overseas-logistics .staff-v4-tabs [aria-selected="true"]{
  background:linear-gradient(180deg,#f7d773,#c89a2e);
  color:#4a3306;
  border-color:#a97912;
}
.oversea-assign label{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.oversea-assign select{
  border:1px solid #c89a2e;
  background:#fffdf7;
  color:#4a3306;
  border-radius:8px;
  padding:8px;
}
.oversea-event progress{
  width:100%;
  accent-color:#c89a2e;
}
.oversea-deliveries{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.oversea-deliveries .btn{
  background:#fffdf7;
  color:#4a3306;
  border-color:#c89a2e;
}
.oversea-event progress{-webkit-appearance:none;appearance:none;height:8px;border:1px solid #c89a2e;border-radius:6px;background:#fffdf7;overflow:hidden}
.oversea-event progress::-webkit-progress-bar{background:#fffdf7}
.oversea-event progress::-webkit-progress-value{background:linear-gradient(180deg,#f7dd8f,#e2b84f)}
.oversea-event progress::-moz-progress-bar{background:linear-gradient(180deg,#f7dd8f,#e2b84f)}
.oversea-summary,.oversea-assets,.oversea-assign,.oversea-events{scrollbar-color:#c89a2e #fffdf7}
.oversea-summary::-webkit-scrollbar,.oversea-assets::-webkit-scrollbar,.oversea-assign::-webkit-scrollbar,.oversea-events::-webkit-scrollbar{height:8px;background:#fffdf7}
.oversea-summary::-webkit-scrollbar-thumb,.oversea-assets::-webkit-scrollbar-thumb,.oversea-assign::-webkit-scrollbar-thumb,.oversea-events::-webkit-scrollbar-thumb{background:#e2b84f;border-radius:6px}
/* 10-10 v536 海外物流三張場景圖（港口／機場貨運站／海外事件） */
.oversea-scene{display:block;width:100%;aspect-ratio:3/1;object-fit:cover;border:1.5px solid #c89a2e;border-radius:10px;margin:0 0 8px;background:#fffdf7}
.oversea-board{aspect-ratio:4/1;max-height:150px}

/* v575 福委會活動沿用淺底深字、金色選取。 */
.welfare-event-card select{width:100%;padding:8px;background:#fff8e8;color:#4a3306;border:1px solid #b58a27;border-radius:6px;color-scheme:light}.welfare-event-card select:focus{outline:2px solid #d6a83e}.welfare-event-card option:checked{background:#f7dd8f;color:#4a3306}

body[data-ui-version="3"] .staff-v3 .emp-card.welfare-event-card{display:flex;flex-direction:column;gap:8px;min-width:0;padding:12px;background:#fff8ec;color:#4a3306;border:1px solid #c89a2e;scroll-margin-top:68px}
body[data-ui-version="3"] .staff-v3 .welfare-event-card h4,body[data-ui-version="3"] .staff-v3 .welfare-event-card p{margin:0;color:#4a3306}
body[data-ui-version="3"] .staff-v3 .welfare-event-card label{display:block;width:100%;min-width:0;color:#4a3306}
body[data-ui-version="3"] .staff-v3 .welfare-event-card .welfare-art{display:block;width:100%;height:110px;flex:0 0 110px;margin:0;object-fit:cover;background:#fff8ec;border:1px solid #d6b867;border-radius:8px}
body[data-ui-version="3"] .staff-v3 .welfare-event-card .btn{width:100%;margin-top:auto;background:#f7dd8f;color:#4a3306}

body[data-ui-version="3"] .staff-v3 .emp-grid.welfare-event-grid{grid-template-columns:repeat(2,minmax(0,1fr));width:100%}

/* v590 miner combat setting */
.miner-combat-toggle{margin:12px 0;padding:10px 12px;border:1px solid #b9a582;border-radius:10px;background:#fff8e9;color:#302719;min-width:0}
.miner-combat-toggle legend{font-weight:700;color:#302719;background:#fff8e9;padding:0 5px}
.miner-combat-toggle>div{display:flex;gap:8px}
.miner-combat-toggle button{min-height:40px;min-width:76px;padding:8px 16px;background:#fffdf7;color:#302719;border:1px solid #a79370;border-radius:8px}
.miner-combat-toggle button[aria-pressed="true"]{background:#f0ce77;border-color:#977024;color:#302719;font-weight:700}
.miner-combat-toggle button:disabled{opacity:.65;cursor:not-allowed}
.miner-combat-toggle small{display:block;margin-top:7px;color:#50432f}

body[data-ui-version="3"] :is(#app,dialog.action-confirm) .miner-combat-toggle button[aria-pressed="true"]{background:#f0ce77!important;color:#302719!important;border-color:#977024!important}
@media(max-height:500px){
 body[data-ui-version="3"] dialog.action-confirm.has-miner-setting{width:min(680px,94vw);max-height:94dvh;padding:12px 18px;box-sizing:border-box}
 body[data-ui-version="3"] dialog.action-confirm.has-miner-setting h2{font-size:18px;margin:0 0 6px}
 body[data-ui-version="3"] dialog.action-confirm.has-miner-setting p{margin:6px 0;font-size:13px}
 body[data-ui-version="3"] dialog.action-confirm.has-miner-setting .miner-combat-toggle{margin:6px 0;padding:6px 10px}
 body[data-ui-version="3"] dialog.action-confirm.has-miner-setting>button{display:inline-block!important;width:calc(50% - 6px)!important;min-height:40px!important;margin:4px 3px!important;padding:8px!important}
}

/* 10-24 老闆「任務挑戰要有導引」：任務前往後的上方導引條（js/quest-guide.js） */
.quest-guide{position:fixed;top:calc(env(safe-area-inset-top,0px) + 8px);left:50%;transform:translateX(-50%);z-index:2147483000;display:flex;align-items:center;gap:10px;max-width:min(560px,calc(100vw - 32px));padding:8px 10px 8px 14px;border-radius:14px;background:#fffbe8;color:#3a2a00;border:2px solid #f2b51d;box-shadow:0 6px 20px rgba(0,0,0,.28);font-size:14px;line-height:1.35;animation:quest-guide-in .3s ease-out}
.quest-guide>b{font-size:22px}.quest-guide strong{display:block;font-size:14px}.quest-guide span{display:block;font-size:13px;color:#5a4710}
.quest-guide button{flex:none;min-width:32px;min-height:32px;border:0;border-radius:50%;background:#f2e4b0;color:#3a2a00;font-weight:700;cursor:pointer}
@keyframes quest-guide-in{from{opacity:0;transform:translate(-50%,-12px)}to{opacity:1;transform:translate(-50%,0)}}

/* Game guide uses the same artwork as its real navigation targets. */
dialog#game-guide.game-guide{box-sizing:border-box;width:min(780px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:0;border:2px solid #c9a24a!important;border-radius:20px;background:#fffaf0!important;color:#2b2416!important;display:none;box-shadow:0 18px 50px rgba(0,0,0,.35)!important;overflow:hidden}
dialog#game-guide.game-guide[open]{display:grid;grid-template-columns:minmax(190px,32%) minmax(0,1fr);min-height:min(360px,calc(100dvh - 24px))}
dialog.game-guide::backdrop{background:rgba(10,24,36,.68)!important}
dialog#game-guide.game-guide .game-guide-art{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:22px 16px;background:linear-gradient(155deg,#fff2ca,#e9c66a)!important;text-align:center}
dialog#game-guide.game-guide .game-guide-art img{display:block;width:min(180px,78%);height:auto;max-height:180px;aspect-ratio:1;object-fit:contain;filter:drop-shadow(0 10px 12px #6546194d)}
dialog#game-guide.game-guide .game-guide-art b{font-size:17px;color:#3a2a08}
dialog#game-guide.game-guide .game-guide-art-label{font-size:11px;font-weight:800;letter-spacing:.08em;color:#735516}
dialog#game-guide.game-guide .game-guide-art.is-overview{gap:10px}
dialog#game-guide.game-guide .game-guide-art.is-overview img{width:100%;height:auto;max-height:125px;aspect-ratio:16/9;object-fit:cover;border:2px solid #fff8e4;border-radius:10px;filter:drop-shadow(0 5px 7px #6546194d)}
dialog#game-guide.game-guide .game-guide-overview-keys{display:flex;justify-content:center;flex-wrap:wrap;gap:4px}
dialog#game-guide.game-guide .game-guide-overview-keys span{padding:3px 6px;border-radius:999px;background:#fff7dd;color:#674b15;font-size:10px;font-weight:800}
dialog#game-guide.game-guide .game-guide-text{box-sizing:border-box;display:flex;flex-direction:column;gap:12px;padding:30px 36px 24px;min-width:0;overflow:hidden}
dialog#game-guide.game-guide .game-guide-step{display:inline-flex;align-items:center;gap:9px;width:max-content;max-width:calc(100% - 36px);padding:6px 10px;border:1px solid #dfc981;border-radius:999px;background:#fff4d1;color:#725310!important;font-size:12px;font-weight:700;letter-spacing:.02em}
dialog#game-guide.game-guide .game-guide-step strong{color:#4b3300;font-size:13px}
dialog#game-guide.game-guide .game-guide-text h2{margin:0;font-size:clamp(21px,2.6vw,28px);line-height:1.22;color:#263f4e!important}
dialog#game-guide.game-guide .game-guide-text p{margin:0;font-size:clamp(14px,1.65vw,17px);line-height:1.55;color:#36434b!important}
dialog#game-guide.game-guide .game-guide-dots{display:flex;gap:7px;margin:auto 0 0;padding:0;list-style:none}
dialog#game-guide.game-guide .game-guide-dots li{width:10px;height:10px;border-radius:50%;background:#dddcce!important}
dialog#game-guide.game-guide .game-guide-dots li.on{background:#d9a628!important;width:28px;border-radius:6px}
dialog#game-guide.game-guide .game-guide-actions{display:flex;justify-content:flex-end;gap:10px}
dialog#game-guide.game-guide .game-guide-actions button{min-height:42px;padding:0 20px;border-radius:12px;border:2px solid #c9a24a!important;background:#fff!important;color:#4b3b17!important;font-weight:800;font-size:15px;cursor:pointer}
dialog#game-guide.game-guide .game-guide-actions button.primary{background:#f4cf58!important;border-color:#b78715!important;color:#352500!important}
dialog#game-guide.game-guide .game-guide-x{position:absolute;top:10px;right:10px;width:34px;height:34px;border-radius:50%;border:1px solid #d6c6a1!important;background:#fff7e5!important;color:#4a3c1e!important;font-size:18px;cursor:pointer;z-index:1}
@media(max-width:620px){dialog#game-guide.game-guide[open]{grid-template-columns:1fr;min-height:0}dialog#game-guide.game-guide .game-guide-art{flex-direction:row;justify-content:flex-start;gap:12px;padding:12px 18px;min-height:80px}dialog#game-guide.game-guide .game-guide-art img{order:-1;width:66px;height:66px;flex:none}dialog#game-guide.game-guide .game-guide-art-label{display:none}dialog#game-guide.game-guide .game-guide-art b{font-size:15px}dialog#game-guide.game-guide .game-guide-text{padding:18px 20px 18px;gap:10px}dialog#game-guide.game-guide .game-guide-text h2{font-size:21px}dialog#game-guide.game-guide .game-guide-text p{font-size:14px}}
@media(max-width:620px){dialog#game-guide.game-guide .game-guide-art.is-overview img{width:94px;height:60px;flex:none}dialog#game-guide.game-guide .game-guide-overview-keys{display:none}}
@media(max-height:460px) and (min-width:621px){dialog#game-guide.game-guide[open]{grid-template-columns:27% minmax(0,1fr)}dialog#game-guide.game-guide .game-guide-art{gap:6px;padding:10px}dialog#game-guide.game-guide .game-guide-art img{width:100px;height:100px}dialog#game-guide.game-guide .game-guide-text{padding:14px 26px;gap:6px}dialog#game-guide.game-guide .game-guide-text p{font-size:13px;line-height:1.4}dialog#game-guide.game-guide .game-guide-actions button{min-height:34px}}
.qc-guide-open{display:flex;align-items:center;gap:6px}

