:root{--olive: url(../art/ui_olive.webp);--steel: url(../art/ui_steel.webp);--paper: url(../art/ui_paper.webp);--canvas: url(../art/ui_canvas.webp);--amber: #f0c860;--text: #ece7d3;--mute: #b0ab8e;--red: #ff6a52;--ink: #2a2418;--bevel: inset 0 1px 0 rgba(255,255,255,.22), inset 0 -2px 0 rgba(0,0,0,.45), inset 1px 0 0 rgba(255,255,255,.06), inset -1px 0 0 rgba(0,0,0,.3);--rivets: radial-gradient(circle at 5px 5px, #b9bd9a 0 1.4px, #23261a 1.5px 3px, transparent 3.1px), radial-gradient(circle at calc(100% - 5px) 5px, #b9bd9a 0 1.4px, #23261a 1.5px 3px, transparent 3.1px), radial-gradient(circle at 5px calc(100% - 5px) , #b9bd9a 0 1.4px, #23261a 1.5px 3px, transparent 3.1px), radial-gradient(circle at calc(100% - 5px) calc(100% - 5px) , #b9bd9a 0 1.4px, #23261a 1.5px 3px, transparent 3.1px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;overflow:hidden;background:#0a0b08;color:var(--text);font:13px/1.3 PingFang SC,Noto Sans SC,Microsoft YaHei,system-ui,-apple-system,sans-serif;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;overscroll-behavior:none;touch-action:none}#c{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;touch-action:none}svg{display:block}.plate,.box,#top,#wave,#confirm{background:var(--rivets),linear-gradient(180deg,#ffffff12,#00000047),var(--olive);background-size:auto,auto,190px;border:1px solid #10120a;border-radius:5px;box-shadow:var(--bevel),0 3px 10px #0009}button{font:inherit;color:var(--text);padding:0;touch-action:manipulation;cursor:pointer;border-radius:4px;background:linear-gradient(180deg,#ffffff24,#0000004d),var(--steel);background-size:auto,160px;border:1px solid #07080a;box-shadow:var(--bevel),0 2px 4px #00000080;text-shadow:0 1px 0 rgba(0,0,0,.8)}button:active{filter:brightness(1.4);transform:translateY(1px);box-shadow:inset 0 2px 4px #0009}#top{position:fixed;top:calc(6px + env(safe-area-inset-top));left:calc(6px + env(safe-area-inset-left));display:flex;gap:3px 13px;flex-wrap:wrap;padding:7px 18px;max-width:calc(50vw - 110px);font-variant-numeric:tabular-nums}.res{display:inline-flex;align-items:center;gap:5px}.res svg{width:17px;height:17px;flex:none;filter:drop-shadow(0 1px 1px rgba(0,0,0,.8))}.res b{font-weight:800;color:var(--amber);font-size:15px;letter-spacing:.3px;text-shadow:0 1px 0 #000,0 0 6px rgba(0,0,0,.6)}.res i{font-style:normal;color:#d9d4b6;font-size:10.5px;opacity:.8}.res.bad b{color:var(--red)}#top .sep{width:2px;align-self:stretch;background:linear-gradient(90deg,#0009 50%,#ffffff24 50%);margin:0 1px}#wave{position:fixed;top:calc(6px + env(safe-area-inset-top));left:50%;transform:translate(-50%);width:204px;padding:5px 14px 7px;text-align:center}.wv-a{display:flex;align-items:center;justify-content:center;gap:6px;font-size:11.5px;letter-spacing:1px;color:#dcd7ba}.wv-a svg{width:14px;height:14px}.wv-a b{color:#fff;font-size:13px}.wv-a em{font-style:normal;color:var(--amber)}.wv-t{font-size:27px;font-weight:900;line-height:1.05;letter-spacing:2px;color:#fff7dc;font-variant-numeric:tabular-nums;text-shadow:0 2px 0 #000,0 0 12px rgba(0,0,0,.7)}.wv-bar{height:5px;margin:3px 0 4px;border-radius:3px;background:#0009;box-shadow:inset 0 1px 2px #000,0 1px #ffffff1f;overflow:hidden}.wv-bar i{display:block;height:100%;background:linear-gradient(90deg,#c9a13e,#f3d67a)}.wv-s{font-size:10.5px;color:var(--mute);letter-spacing:.5px;font-variant-numeric:tabular-nums}#wave.warn{background:var(--rivets),linear-gradient(180deg,#be2818b8,#5a0e08db),var(--olive);background-size:auto,auto,190px;animation:blink 1.2s ease-in-out infinite}#wave.warn .wv-bar i{background:linear-gradient(90deg,#ff5a3c,#ffb199)}#wave.warn .wv-t{color:#ffe1da}@keyframes blink{50%{filter:brightness(1.3)}}#mini{position:fixed;top:calc(6px + env(safe-area-inset-top));right:calc(6px + env(safe-area-inset-right));width:142px;height:142px;border:5px solid transparent;border-radius:5px;background:linear-gradient(#000,#000) padding-box,var(--steel) border-box;background-size:auto,160px;touch-action:none;box-shadow:0 0 0 1px #07080a,inset 0 0 0 1px #ffffff2e,0 3px 10px #000000a6}#ctrl{position:fixed;top:calc(156px + env(safe-area-inset-top));right:calc(6px + env(safe-area-inset-right));width:142px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:4px}#ctrl button{height:36px;font-size:13px;font-weight:700;letter-spacing:.5px;display:grid;place-items:center}#ctrl button svg{width:15px;height:15px}#ctrl button.on{background:linear-gradient(180deg,#f0c860bf,#966e1ecc),var(--steel);color:#fff7dc}#bar{position:fixed;left:0;right:0;bottom:0;padding:7px calc(8px + env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) calc(8px + env(safe-area-inset-left));display:flex;gap:8px;border-top:1px solid #0c0d08;background:linear-gradient(180deg,#ffffff14,#0000006b),var(--olive);background-size:auto,190px;box-shadow:inset 0 2px #fff3,inset 0 3px #00000059,0 -6px 18px #000000a6}#tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;flex:none;align-content:center}#tabs button{width:50px;height:33px;font-size:12.5px;font-weight:700;letter-spacing:1.5px;color:#cfcab0}#tabs button.on{background:linear-gradient(180deg,#f0c860cc,#966e1ed9),var(--steel);color:#fff7dc}#items{display:flex;gap:5px;overflow-x:auto;flex:1;scrollbar-width:none;touch-action:pan-x;padding:1px}#items::-webkit-scrollbar{display:none}.item{flex:none;width:90px;height:80px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:0;padding-bottom:4px;position:relative;background:linear-gradient(180deg,#ffffff1a,#00000073),var(--canvas);background-size:auto,150px}.item .g{width:80px;height:42px;display:grid;place-items:center;margin-bottom:2px}.item .g img{max-width:80px;max-height:42px;pointer-events:none;filter:drop-shadow(0 3px 3px rgba(0,0,0,.75))}.item .n{font-size:11.5px;font-weight:700;white-space:nowrap;line-height:1.2;letter-spacing:.5px;text-shadow:0 1px 2px #000,0 0 4px #000}.item .c{font-size:9.5px;font-weight:600;color:var(--amber);text-shadow:0 1px 2px #000;white-space:nowrap;letter-spacing:-.1px;line-height:1.2}.item.no{filter:grayscale(.75) brightness(.6)}.item.on{box-shadow:inset 0 0 0 2px #f6dc84,0 0 14px #f6dc8473;filter:brightness(1.2)}.paper{background:linear-gradient(180deg,#ffffff1f,#3c280a29),var(--paper);background-size:auto,230px;color:var(--ink);border:1px solid #1c160c;border-radius:3px;box-shadow:0 0 0 4px #14160ec7,0 6px 18px #000000b3,inset 0 0 26px #5a3c1447}#panel{position:fixed;left:calc(10px + env(safe-area-inset-left));bottom:calc(102px + env(safe-area-inset-bottom));width:292px;padding:11px 14px 12px;display:none}#panel h3{margin:0 0 4px;font-size:16px;font-weight:900;letter-spacing:2px;color:#2c2416}#panel h3 small{font-size:11px;font-weight:600;letter-spacing:0;color:#6b5c3c;margin-left:4px}#panel .hd{display:flex;gap:10px;align-items:center;padding-bottom:7px;margin-bottom:6px;border-bottom:1px dashed rgba(60,45,20,.55)}#panel .hd>div{flex:1;min-width:0}#panel .pic{flex:none;width:84px;height:66px;display:grid;place-items:center;background:#46371929;border:1px solid rgba(60,45,20,.5);box-shadow:inset 0 0 10px #3c280a4d}#panel .pic img{max-width:80px;max-height:62px;filter:drop-shadow(0 2px 2px rgba(0,0,0,.5))}#panel p{margin:3px 0;font-size:12px;color:#3b3220}#panel p.stat{color:#5a4a26;font-weight:600}#panel .ln{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:#44391f;margin:3px 0;white-space:nowrap;font-variant-numeric:tabular-nums}#panel .ln.bad{color:#a2281a}.meter{flex:1;min-width:40px;height:7px;background:#281e0a59;border:1px solid rgba(40,30,10,.6);border-radius:2px;overflow:hidden}.meter i{display:block;height:100%}.meter.ok i{background:#5d8a3a}.meter.low i{background:#b8402c}.meter.ammo i{background:#b88a2c}.meter.build i{background:#4a78a0}#panel .cards{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-top:7px}#panel .card{display:flex;flex-direction:column;align-items:center;padding:2px 0 4px;height:82px}#panel .card img{height:46px;pointer-events:none;filter:drop-shadow(0 2px 2px rgba(0,0,0,.7))}#panel .card b{font-size:11px;line-height:1.25;white-space:nowrap}#panel .card small{font-size:9px;color:var(--amber);white-space:nowrap;letter-spacing:-.2px}#panel .card.no{filter:grayscale(.8) brightness(.62)}#panel .squad{display:flex;flex-wrap:wrap;gap:4px 8px;padding:4px 0 7px;margin-bottom:5px;border-bottom:1px dashed rgba(60,45,20,.55)}#panel .mini{display:inline-flex;align-items:center;gap:3px;font-size:11.5px;color:#3b3220}#panel .mini img{height:34px;filter:drop-shadow(0 1px 1px rgba(0,0,0,.5))}#panel .mini i{font-style:normal;font-weight:800;color:#7a4a14}#panel .row{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}#panel .row button{padding:6px 11px;min-height:34px;font-size:12px;font-weight:700;letter-spacing:.5px}#panel button.danger{background:linear-gradient(180deg,#c83c28b3,#64140cd9),var(--steel);color:#ffe1da}#confirm{position:fixed;left:50%;transform:translate(-50%);bottom:calc(102px + env(safe-area-inset-bottom));display:none;align-items:center;gap:9px;padding:8px 10px 8px 18px;max-width:560px}#confirm .t{font-size:12px;color:#dcd7ba}#confirm .t b{font-size:14px;color:var(--amber);letter-spacing:1px;text-shadow:0 1px 0 #000}#confirm .t em{font-style:normal;color:#ff9c8c;font-weight:600}#confirm button{width:50px;height:44px;font-size:22px;flex:none}#confirm .ok{background:linear-gradient(180deg,#78c85ab3,#285a1ed9),var(--steel);color:#f0ffe2}#confirm .ok.no{filter:grayscale(.8) brightness(.6)}#toasts{position:fixed;top:calc(104px + env(safe-area-inset-top));left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:4px;pointer-events:none}.toast{padding:4px 14px;background:#10120adb;border-left:3px solid var(--amber);font-size:12.5px;letter-spacing:.5px;animation:fade 3.2s forwards;box-shadow:0 2px 6px #00000080}@keyframes fade{0%,75%{opacity:1}to{opacity:0}}#overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#080906d6;z-index:10}#overlay .card{max-width:520px;padding:26px 32px 28px;text-align:left}#overlay h1{margin:0 0 4px;font-size:38px;font-weight:900;letter-spacing:10px;color:#f6efd6;text-shadow:0 3px 0 #000,0 0 26px rgba(0,0,0,.85)}#overlay h2{margin:0 0 14px;padding-bottom:11px;font-size:12.5px;font-weight:500;letter-spacing:2.5px;color:var(--amber);border-bottom:2px solid rgba(0,0,0,.5);box-shadow:0 1px #ffffff24}#overlay li{margin:6px 0;color:#e0dbc2}#overlay li b{color:#fff}#overlay ul{padding-left:18px;margin:8px 0 20px}#overlay button{padding:12px 40px;font-size:17px;font-weight:800;letter-spacing:8px;background:linear-gradient(180deg,#82d25fbf,#285f1ee6),var(--steel);color:#f3ffe6}#overlay.title{background:linear-gradient(90deg,#080906f0,#08090699 55%,#08090633),url(../art/title.webp) center / cover no-repeat #0a0b07;place-items:center start}#overlay.title .card{margin-left:5vw}#load{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);color:var(--mute);font-size:14px;letter-spacing:2px}#vig{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.4;transition:opacity 1.5s;background:radial-gradient(ellipse at center,#0000 55%,#0000006b)}#vig.danger{background:radial-gradient(ellipse at center,#0000 45%,#3c000073 88%,#6e000080);animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{50%{filter:brightness(1.5)}}.edge{position:fixed;pointer-events:none;opacity:0;transition:opacity .6s}#edge0{top:0;left:0;right:0;height:90px;background:linear-gradient(rgba(220,20,10,.6),transparent)}#edge2{bottom:0;left:0;right:0;height:130px;background:linear-gradient(transparent,#dc140a99)}#edge3{top:0;bottom:0;left:0;width:90px;background:linear-gradient(90deg,rgba(220,20,10,.6),transparent)}#edge1{top:0;bottom:0;right:0;width:90px;background:linear-gradient(270deg,rgba(220,20,10,.6),transparent)}#banner{position:fixed;left:0;right:0;top:24%;text-align:center;pointer-events:none;opacity:0;font-size:30px;font-weight:900;letter-spacing:10px;color:#fff;text-shadow:0 0 18px #000,0 2px 0 #000;padding:14px 0;border-top:1px solid rgba(255,255,255,.18);border-bottom:1px solid rgba(0,0,0,.6)}#banner.show{animation:banner 4.5s ease-out forwards}#banner.warn{color:#ffe3dc;background:linear-gradient(90deg,transparent,rgba(120,12,4,.85) 22%,rgba(150,16,6,.9) 50%,rgba(120,12,4,.85) 78%,transparent)}@keyframes banner{0%{opacity:0;transform:scaleX(1.3)}8%{opacity:1;transform:none}80%{opacity:1}to{opacity:0}}.res i.cap{opacity:.55;font-size:10px;margin-left:-3px}.res i.neg{color:#ff9c8c;opacity:1}.res.full b{color:#ffe9a8;text-decoration:underline dotted rgba(255,233,168,.6)}#top{max-width:calc(50vw - 112px);gap:2px 11px;padding:6px 16px}#obj{position:fixed;left:calc(6px + env(safe-area-inset-left));top:calc(82px + env(safe-area-inset-top));width:232px;padding:8px 14px 9px;display:none;font-size:12px}#obj h4{margin:0 0 4px;font-size:12px;letter-spacing:2px;color:var(--amber)}#obj h4 small{color:var(--mute);letter-spacing:0;font-weight:400;margin-left:4px}#obj .ob{padding:2px 0;color:#b9b49a}#obj .ob.ok{color:#8fbf6a;text-decoration:line-through rgba(143,191,106,.5)}#obj .ob.cur{color:#fff7dc;font-weight:600}#obj .ob.bad{color:var(--red);font-weight:600}#groups{position:fixed;right:calc(6px + env(safe-area-inset-right));top:calc(282px + env(safe-area-inset-top));width:142px;display:grid;grid-template-columns:repeat(4,1fr);gap:4px}#groups button{height:34px;position:relative;font-size:15px;font-weight:800;color:#9a967c}#groups button.has{color:#fff7dc;background:linear-gradient(180deg,#78aa5a8c,#28461ebf),var(--steel)}#groups button i{position:absolute;right:3px;bottom:1px;font-style:normal;font-size:9.5px;font-weight:600;color:var(--amber)}#ctrl button.busy{color:#9fd0ff}#ctrl button.idle{box-shadow:var(--bevel),0 0 0 1px #f0c860b3,0 0 8px #f0c86059;color:var(--amber)}#ctrl button.ready{background:linear-gradient(180deg,#dc5a3cbf,#6e180ee6),var(--steel);color:#ffe1da}#ctrl button.cd{color:var(--mute);font-variant-numeric:tabular-nums}.item .lk{display:none;position:absolute;top:0;right:0;bottom:0;left:0;place-items:center;background:#0a0b089e;border-radius:4px;color:#d8d3b8}.item .lk svg{width:22px;height:22px}.item.locked .lk{display:grid}.item.locked .c{visibility:hidden}#panel .row button small{display:block;font-size:9.5px;font-weight:500;color:var(--amber)}#panel .row button.dim{filter:grayscale(.7) brightness(.7)}#panel .row button.hot{background:linear-gradient(180deg,#dc5a3cbf,#6e180ee6),var(--steel);color:#ffe1da}.stars{display:inline-flex;margin-left:2px}.stars svg{width:10px;height:10px}#confirm .t b{white-space:nowrap}#modal{position:fixed;top:0;right:0;bottom:0;left:0;display:none;place-items:center;background:#060704b8;z-index:8}#modal .win{width:min(440px,92vw);padding:16px 20px 18px}#modal .win.wide{width:min(880px,96vw);max-height:88vh;overflow-y:auto;touch-action:pan-y}#modal h3{margin:0 0 12px;font-size:17px;font-weight:900;letter-spacing:3px;color:#f6efd6;display:flex;align-items:baseline;gap:10px;text-shadow:0 2px 0 #000}#modal h3 small{font-size:11.5px;font-weight:500;letter-spacing:.5px;color:var(--amber);flex:1}#modal .x{width:34px;height:30px;margin-left:auto;font-size:15px}#modal .hint{margin:0 0 12px;color:#cfcab0;font-size:12px}.techs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.techs h4{margin:0 0 6px;font-size:12px;letter-spacing:3px;color:var(--amber);text-align:center}.tech{display:block;width:100%;text-align:left;padding:7px 10px 8px;margin-bottom:6px;min-height:76px}.tech b{display:block;font-size:13.5px;letter-spacing:1px}.tech span{display:block;font-size:11px;font-weight:400;color:#cfcab0;margin:2px 0 4px;line-height:1.35}.tech i{display:flex;align-items:center;gap:6px;font-style:normal;font-size:10.5px;color:var(--amber)}.tech.done{background:linear-gradient(180deg,#78aa5a80,#28461eb3),var(--steel)}.tech.done i{color:#c9f0a8}.tech.cur{box-shadow:var(--bevel),0 0 0 2px #7cc8ff}.tech.cur i{color:#bfe3ff}.tech.locked{filter:grayscale(.8) brightness(.55)}.tech.cant i{color:#ff9c8c}.perks{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.perk{padding:16px 10px;min-height:124px;display:flex;flex-direction:column;gap:8px;align-items:center;text-align:center;background:linear-gradient(180deg,#f0c86052,#5a421080),var(--steel)}.perk b{font-size:15px;letter-spacing:2px;color:#fff3cc}.perk span{font-size:12px;font-weight:400;color:#e6e0c4;line-height:1.4}.menu{display:grid;gap:7px}.menu button{height:42px;font-size:14px;font-weight:700;letter-spacing:2px}button.danger{background:linear-gradient(180deg,#c83c28b3,#64140cd9),var(--steel);color:#ffe1da}#overlay .card{width:min(560px,92vw);max-width:none}#overlay .tabs{display:flex;gap:6px;margin:0 0 14px}#overlay .tabs button{flex:1;padding:8px 0;font-size:13.5px;font-weight:700;letter-spacing:2px;background:linear-gradient(180deg,#ffffff24,#0000004d),var(--steel);color:#cfcab0}#overlay .tabs button.on,.optrow button.on{background:linear-gradient(180deg,#f0c860cc,#966e1ed9),var(--steel);color:#fff7dc}.optrow{display:flex;align-items:center;gap:6px;margin:7px 0}.optrow span{width:44px;font-size:12.5px;letter-spacing:2px;color:var(--amber)}#overlay .optrow button{flex:1;padding:8px 0;font-size:13px;font-weight:600;letter-spacing:1px;background:linear-gradient(180deg,#ffffff24,#0000004d),var(--steel);color:#d8d3b8}#overlay .go{display:flex;gap:8px;margin-top:16px}#overlay button.big{flex:1;padding:13px 0;font-size:17px;font-weight:800;letter-spacing:8px}#overlay button.big.alt{letter-spacing:3px;font-size:14.5px;background:linear-gradient(180deg,#78aadcb3,#1e3c64e6),var(--steel);color:#e8f4ff}#overlay .best{margin:10px 0 0;text-align:right;font-size:11.5px;color:var(--mute);letter-spacing:1px}.missions{display:grid;gap:6px}#overlay .mission{display:block;text-align:left;padding:9px 12px;letter-spacing:0;background:linear-gradient(180deg,#ffffff24,#0000004d),var(--steel);color:var(--text)}.mission b{display:block;font-size:14px;letter-spacing:2px;color:#fff3cc}.mission span{display:block;font-size:11.5px;font-weight:400;color:#cfcab0;margin-top:3px;line-height:1.4}.mission.locked{filter:grayscale(.8) brightness(.55)}.mission.done b{color:#c9f0a8}.score{display:flex;align-items:baseline;gap:12px;margin:4px 0 10px}.score span{font-size:12px;letter-spacing:3px;color:var(--amber)}.score b{font-size:40px;font-weight:900;color:#fff7dc;text-shadow:0 3px 0 #000;font-variant-numeric:tabular-nums}.score em{font-style:normal;font-size:12px;font-weight:700;color:#1c1408;background:var(--amber);padding:2px 8px;border-radius:3px;letter-spacing:2px}.score i{font-style:normal;font-size:12px;color:var(--mute)}#overlay ul.stats{list-style:none;padding:0;margin:0 0 6px;display:grid;grid-template-columns:1fr 1fr;gap:3px 18px}#overlay ul.stats li{display:flex;justify-content:space-between;margin:0;padding:3px 0;border-bottom:1px dashed rgba(255,255,255,.14);font-size:12.5px}#overlay ul.stats li span{color:#b9b49a}#toasts{top:calc(110px + env(safe-area-inset-top))}#top{display:flex;flex-wrap:nowrap;gap:0;padding:5px 10px 5px 12px;max-width:none;align-items:stretch}#top .res{display:flex;align-items:center;gap:6px;padding:1px 10px 1px 0;margin-right:10px;border-right:1px solid rgba(0,0,0,.35);box-shadow:1px 0 #ffffff14}#top .res:last-child{border:0;box-shadow:none;margin-right:0;padding-right:2px}#top .res svg{width:20px;height:20px}#top .res>span{display:flex;flex-direction:column;line-height:1.1}#top .res b{font-size:15.5px}#top .res i{font-size:9.5px;color:#cfcab0;opacity:.85;white-space:nowrap;font-style:normal}#top .res em{font-style:normal;font-weight:700}#top .res em.pos{color:#b7e08a}#top .res em.neg{color:#ff9c8c}#top .res.full b{text-decoration:none;color:#fff0b8}#top .res.full i{color:#ffd66b;opacity:1}#top .sep{display:none}#obj{top:calc(60px + env(safe-area-inset-top))}#ctrl{gap:4px}#ctrl button{height:42px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-size:12px}#ctrl button svg{width:17px;height:17px}#ctrl button i{font-style:normal;font-size:9.5px;font-weight:600;letter-spacing:1px;opacity:.85}#ctrl button.spd b{font-size:15px;line-height:1.1;color:var(--amber)}#ctrl button.busy svg{color:#9fd0ff}#ctrl button.idle svg{color:var(--amber)}#groups{top:calc(298px + env(safe-area-inset-top))}#modal h3 svg{width:22px;height:22px;flex:none;align-self:center;color:var(--amber)}#modal .win{border-radius:6px;box-shadow:var(--bevel),0 12px 40px #000c}#modal .techwin{width:min(900px,97vw);padding:14px 18px 16px;max-height:96vh;display:flex;flex-direction:column}.treewrap{padding:10px 14px 14px;overflow:auto;touch-action:pan-x pan-y;border-radius:3px;background:linear-gradient(rgba(70,50,20,.06) 1px,transparent 1px) 0 0 / 100% 18.5px,linear-gradient(180deg,#ffffff1a,#3c280a24),var(--paper);background-size:auto,auto,230px;box-shadow:inset 0 0 30px #5a3c144d,0 0 0 1px #1c160c}.treewrap .cols{display:grid;grid-template-columns:232px 232px 232px;column-gap:66px;margin-bottom:8px;width:828px}.treewrap .cols span{text-align:center;font-size:11.5px;font-weight:800;letter-spacing:6px;color:#6b5330;border-bottom:2px solid rgba(90,65,30,.45);padding-bottom:3px}.tree{position:relative}.tree svg{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.tree svg path{fill:none;stroke:#503c1e73;stroke-width:2.5;stroke-dasharray:5 5;stroke-linejoin:round}.tree svg path.open{stroke:#9a6a1c;stroke-dasharray:none}.tree svg path.on{stroke:#4f7a32;stroke-dasharray:none;stroke-width:3.5}.node{position:absolute;width:232px;height:62px;display:flex;align-items:center;gap:9px;padding:0 10px 0 6px;text-align:left;border-radius:5px;background:linear-gradient(180deg,#ffffff29,#00000057),var(--olive);background-size:auto,190px;border:1px solid #1a1c10}.node .ic{flex:none;width:54px;height:50px;display:grid;place-items:center;border-radius:4px;background:#00000057;box-shadow:inset 0 1px 3px #000000b3,0 1px #ffffff1f}.node .ic img{max-width:50px;max-height:46px;filter:drop-shadow(0 2px 2px rgba(0,0,0,.7));pointer-events:none}.node .tx{display:flex;flex-direction:column;gap:2px;min-width:0}.node .tx b{font-size:14px;letter-spacing:1.5px;color:#fff7dc;white-space:nowrap}.node .tx i{font-style:normal;font-size:10.5px;font-weight:600;color:var(--amber);white-space:nowrap}.node .bd{position:absolute;right:7px;top:6px;width:18px;height:18px;display:grid;place-items:center;border-radius:50%}.node .bd svg{width:12px;height:12px}.node.ok{box-shadow:var(--bevel),0 0 0 2px #e8c860,0 0 12px #e8c86073}.node.cant .tx i{color:#ffb0a2}.node.done{background:linear-gradient(180deg,#96c86e80,#28501eb8),var(--olive)}.node.done .tx i{color:#d6f5b8}.node.done .bd{background:#3f6a28;color:#eaffd8}.node.locked{filter:grayscale(.7) brightness(.62)}.node.locked .bd{background:#00000080;color:#d8d3b8}.node.cur{box-shadow:var(--bevel),0 0 0 2px #7cc8ff,0 0 12px #7cc8ff80}.node.cur .tx i{color:#cfeaff}.node .pg{position:absolute;left:6px;right:6px;bottom:4px;height:4px;border-radius:2px;background:#0000008c;overflow:hidden}.node .pg i{display:block;height:100%;background:linear-gradient(90deg,#4a9ad8,#a8dcff)}.node.sel{outline:3px solid #fff3cc;outline-offset:2px;filter:none}.node.locked.sel{filter:grayscale(.5) brightness(.8)}.tdetail{display:flex;align-items:center;gap:14px;margin-top:12px;padding:10px 14px;border-radius:5px;background:#0000004d;box-shadow:inset 0 1px 4px #0009,0 1px #ffffff1a}.tdetail .big{flex:none;width:92px;height:76px;display:grid;place-items:center;background:#0000004d;border-radius:5px;box-shadow:inset 0 1px 4px #000000b3}.tdetail .big img{max-width:86px;max-height:70px;filter:drop-shadow(0 3px 3px rgba(0,0,0,.7))}.tdetail .info{flex:1;min-width:0}.tdetail .info>b{font-size:17px;letter-spacing:3px;color:#fff7dc}.tdetail .info p{margin:3px 0 6px;font-size:12.5px;color:#dcd7ba}.uls{display:flex;flex-wrap:wrap;gap:5px 10px}.ul{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--amber)}.ul img{height:26px;max-width:40px;object-fit:contain;filter:drop-shadow(0 1px 1px rgba(0,0,0,.7))}.ul b{font-weight:600}.tdetail .act{flex:none;width:176px;text-align:center}.tdetail .go{width:100%;padding:9px 0 8px;font-size:15px;font-weight:800;letter-spacing:3px;background:linear-gradient(180deg,#82d25fc7,#285f1eeb),var(--steel);color:#f3ffe6}.tdetail .go small{display:block;font-size:10.5px;font-weight:600;letter-spacing:.5px;color:#ffe9a8;margin-top:1px}.tdetail .go.no{background:linear-gradient(180deg,#ffffff24,#0000004d),var(--steel);color:#ffb0a2;font-size:12.5px;letter-spacing:1px}.tdetail .tag{display:inline-block;padding:8px 12px;border-radius:4px;font-size:12.5px;font-weight:700;letter-spacing:1px;background:#0006;color:#cfcab0}.tdetail .tag.done{background:#3f6a28;color:#eaffd8}.tdetail .tag.cur{background:#2c5a80;color:#dff1ff}#modal .perkwin{width:min(640px,95vw)}.perks{gap:12px}#modal .perk{padding:16px 12px 12px;min-height:196px;gap:6px;color:var(--ink);text-shadow:none;border-radius:3px;border:1px solid #1c160c;box-shadow:0 0 0 3px #14160eb3,0 6px 14px #0009,inset 0 0 22px #5a3c144d}#modal .perk .em svg{width:44px;height:44px;filter:drop-shadow(0 2px 2px rgba(0,0,0,.4))}#modal .perk b{font-size:17px;letter-spacing:3px;color:#2c2416;border-bottom:1px dashed rgba(60,45,20,.55);padding-bottom:6px;width:100%}#modal .perk .ds{flex:1;font-size:12.5px;color:#3b3220;line-height:1.45}#modal .perk i{font-style:normal;font-size:12px;font-weight:800;letter-spacing:4px;color:#fff7dc;background:#7a2a1c;padding:4px 16px;border-radius:3px;box-shadow:0 2px #3c120c}#modal .perk:active{transform:translateY(2px) rotate(-.5deg);filter:brightness(1.08)}#modal .perk{background:linear-gradient(180deg,#ffffff24,#3c280a29),var(--paper);background-size:auto,230px}#modal .perk .ds{color:#3b3220;font-weight:500}#top{padding:5px 6px 5px 10px;max-width:calc(50vw - 110px);overflow:hidden}#top .res{gap:4px;padding-right:7px;margin-right:7px}#top .res svg{width:17px;height:17px}#top .res b{font-size:14.5px;letter-spacing:0}#top .res i{font-size:9px}#top{max-width:none;overflow:visible}#wave,#toasts,#confirm{left:max(50%,640px)}.chips{display:inline-flex;gap:3px;flex-wrap:nowrap}.chip{display:inline-flex;align-items:center;gap:2px;padding:1px 5px 1px 3px;border-radius:9px;background:#00000080;box-shadow:inset 0 1px 2px #0009,0 1px #ffffff1a}.chip svg{width:11px;height:11px}.chip b{font-size:10.5px;font-weight:700;color:#ffe9a8;font-variant-numeric:tabular-nums;text-shadow:none}.chip.lack{background:#78140abf}.chip.lack b{color:#ffb7aa}.chip.free b{color:#c9f0a8;padding-left:2px}.scs{display:flex;flex-wrap:wrap;gap:4px;margin:5px 0 3px}.sc{display:inline-flex;align-items:center;gap:3px;padding:2px 7px 2px 4px;border-radius:3px;background:#3c2d1429;border:1px solid rgba(60,45,20,.4);color:#4a3d22}.sc svg{width:12px;height:12px}.sc b{font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}.sc.pos{color:#3d6a22;background:#50822829;border-color:#3c6e1e80}.sc.neg{color:#9a2a1c;background:#a028141f;border-color:#96281473}.tag{display:inline-block;margin-left:8px;padding:1px 7px;border-radius:3px;font-size:10.5px;font-weight:700;letter-spacing:1px;vertical-align:2px;color:#f6efd6;background:#5a4a26}#bar{padding-top:8px;gap:9px}#tabs{gap:4px}#tabs button{width:56px;height:38px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;letter-spacing:0}#tabs button svg{width:15px;height:15px}#tabs button i{font-style:normal;font-size:10.5px;font-weight:700;letter-spacing:2px}#items{gap:6px;padding:1px 1px 2px}.item{width:100px;height:82px;padding:0 0 4px;justify-content:flex-start;border-radius:5px;overflow:hidden;background:linear-gradient(180deg,#ffffff0f,#00000080),var(--canvas);background-size:auto,150px}.item .g{width:100%;height:44px;margin:0;background:radial-gradient(ellipse at 50% 70%,#fff0c833,#0000006b 75%);box-shadow:inset 0 -1px #0009,inset 0 1px #ffffff1f}.item .g img{max-width:82px;max-height:42px}.item .n{margin-top:3px;font-size:12px;letter-spacing:1px;line-height:1.25}.item .c{display:none}.item .chips{margin-top:2px}.item .chip{padding:0 4px 0 2px}.item .chip svg{width:10px;height:10px}.item .chip b{font-size:10px}.item.no{filter:none}.item.no .g,.item.no .n{filter:grayscale(.8) brightness(.62)}.item .lk{flex-direction:column;gap:2px;background:#0a0b08b3}.item .lk i{font-style:normal;font-size:10px;font-weight:600;color:var(--amber);letter-spacing:1px}.item.locked .chips{visibility:hidden}.item.on{box-shadow:inset 0 0 0 2px #f6dc84,0 0 14px #f6dc8480;filter:none}.item.on .g{background:radial-gradient(ellipse at 50% 70%,#ffe69680,#5a461480 80%)}#panel,#confirm{bottom:calc(108px + env(safe-area-inset-bottom))}#confirm{padding:7px 9px;gap:10px;max-width:620px}#confirm .pic{flex:none;width:74px;height:56px;display:grid;place-items:center;border-radius:4px;background:#0000005c;box-shadow:inset 0 1px 3px #000000b3}#confirm .pic img{max-width:70px;max-height:52px;filter:drop-shadow(0 2px 2px rgba(0,0,0,.7))}#confirm .t{display:flex;flex-direction:column;gap:3px;min-width:150px}#confirm .t1{display:flex;align-items:center;gap:8px}#confirm .hint{font-size:11.5px;color:#cfcab0;max-width:300px}#confirm .scs{margin:0}#confirm .sc{background:#00000057;border-color:#00000080;color:#e6e0c4}#confirm .sc.pos{color:#c9f0a8}#confirm .sc.neg{color:#ffb7aa}#panel{width:312px;padding:12px 14px}#panel:before{content:"";position:absolute;left:50%;top:-9px;width:70px;height:16px;transform:translate(-50%);border-radius:3px;background:linear-gradient(180deg,#8a8d86,#4a4c48);box-shadow:0 2px 3px #0009,inset 0 1px #fff6}#panel h3{display:flex;align-items:center;margin-bottom:5px}#panel .hd{padding-bottom:9px;margin-bottom:7px}#panel .pic{width:92px;height:72px;background:linear-gradient(180deg,#ffffff4d,#46371933)}#panel .pic img{max-width:88px;max-height:68px}#panel .desc{font-style:normal;line-height:1.45}#panel .cards{grid-template-columns:repeat(4,1fr);gap:5px}#panel .card{height:88px;padding:2px 0 4px;gap:1px}#panel .card img{height:44px}#panel .card .chips{gap:2px}#panel .card .chip{padding:0 3px 0 2px}#panel .card .chip svg{width:9px;height:9px}#panel .card .chip b{font-size:9.5px}.acts{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:10px}.act{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:46px;padding:4px 2px}.act svg{width:16px;height:16px}.act b{font-size:11.5px;font-weight:700;letter-spacing:1px}.act small{font-size:9.5px;color:var(--amber);font-weight:600}.act.wide{grid-column:span 2}.act.pri{background:linear-gradient(180deg,#82d25fbf,#285f1ee6),var(--steel);color:#f3ffe6}.act.hot{background:linear-gradient(180deg,#e6783ccc,#78280eeb),var(--steel);color:#fff0e2}.act.dim{filter:grayscale(.7) brightness(.7)}#obj{width:252px;padding:12px 14px 10px;color:var(--ink);top:calc(64px + env(safe-area-inset-top))}#obj .clip{position:absolute;left:50%;top:-8px;width:64px;height:15px;transform:translate(-50%);border-radius:3px;background:linear-gradient(180deg,#8a8d86,#4a4c48);box-shadow:0 2px 3px #0009,inset 0 1px #fff6}#obj h4{display:flex;justify-content:space-between;align-items:baseline;margin:0 0 4px;font-size:13px;font-weight:900;letter-spacing:4px;color:#2c2416}#obj h4 small{font-size:11px;letter-spacing:0;color:#6b5c3c;font-weight:700}.obar{height:5px;border-radius:3px;background:#281e0a4d;border:1px solid rgba(40,30,10,.5);overflow:hidden;margin-bottom:6px}.obar i{display:block;height:100%;background:#5d8a3a}#obj .ob{display:flex;gap:7px;align-items:flex-start;padding:3px 0;color:#6b5c3c;font-size:12px;text-decoration:none}#obj .ob .cb{flex:none;width:14px;height:14px;margin-top:1px;border:1.5px solid #5a4a26;border-radius:2px;display:grid;place-items:center}#obj .ob .cb svg{width:11px;height:11px;color:#3d6a22}#obj .ob.ok{color:#7a6c4c;text-decoration:line-through rgba(60,45,20,.5)}#obj .ob.cur{color:#2c2416;font-weight:800;font-size:12.5px}#obj .ob.cur .cb{border-color:#a2281a;box-shadow:0 0 0 2px #a2281a40;animation:blink 1.4s ease-in-out infinite}#obj .ob i{display:block;font-style:normal;font-weight:500;font-size:10.5px;color:#6b5330;margin-top:1px;line-height:1.35}.ost{display:flex;align-items:center;gap:6px;margin-top:5px;padding:4px 7px;border-radius:3px;font-size:11.5px;font-weight:600;color:#2c4a66;background:#3c6ea029;border:1px solid rgba(50,90,130,.45)}.ost svg{width:13px;height:13px;flex:none}.ost span{flex:1}.ost b{font-variant-numeric:tabular-nums}.ost.idle{color:#7a5a10;background:#c8a02833;border-color:#966e1480}.ost.bad{color:#9a2a1c;background:#a0281424;border-color:#96281480}#modal .menuwin{width:min(470px,94vw)}.msts{display:grid;grid-template-columns:repeat(3,1fr);gap:0;padding:4px 6px;border-radius:3px;border:1px solid #1c160c;box-shadow:inset 0 0 20px #5a3c144d;color:var(--ink);background:linear-gradient(180deg,#ffffff1f,#3c280a24),var(--paper);background-size:auto,230px}.mst{display:grid;grid-template-columns:18px 1fr;align-items:center;column-gap:6px;padding:7px 8px;border-bottom:1px dashed rgba(60,45,20,.4)}.mst:nth-last-child(-n+3){border-bottom:0}.mst svg{width:16px;height:16px;grid-row:span 2;color:#5a4a26}.mst span{font-size:10.5px;letter-spacing:1px;color:#6b5c3c}.mst b{font-size:16px;font-weight:900;color:#2c2416;font-variant-numeric:tabular-nums}.tgls{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:10px 0}.tgl{display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 0}.tgl span{font-size:10.5px;letter-spacing:2px;color:#cfcab0}.tgl b{font-size:13.5px;letter-spacing:2px;color:#9a967c}.tgl.on b{color:var(--amber)}.tgl.on{box-shadow:var(--bevel),0 0 0 1px #f0c86099}.menu{gap:7px}.menu button{height:46px;display:flex;align-items:center;justify-content:center;gap:9px}.menu button svg{width:16px;height:16px}.menu button b{font-size:14.5px;letter-spacing:3px}.menu button.pri{background:linear-gradient(180deg,#82d25fc7,#285f1eeb),var(--steel);color:#f3ffe6}#modal .menuwin .hint{margin:10px 0 0;text-align:center;font-size:11px;color:#b9b49a}#overlay .card{width:min(600px,93vw);padding:0 0 22px;overflow:hidden}#overlay .ttl{padding:22px 30px 14px;margin-bottom:14px;background:linear-gradient(180deg,#00000073,#0000001f);border-bottom:2px solid rgba(0,0,0,.55);box-shadow:0 1px #ffffff24}#overlay .ttl h1{font-size:clamp(26px,3.5vw,36px);line-height:1.12;letter-spacing:.03em;overflow-wrap:anywhere;text-wrap:balance;margin:0;background:linear-gradient(180deg,#fff9e2 20%,#d8c486 75%,#a8904c);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none;filter:drop-shadow(0 3px 0 #000) drop-shadow(0 0 14px rgba(0,0,0,.7))}#overlay .ttl h2{margin:6px 0 0;padding:0;border:0;box-shadow:none;font-size:12px;letter-spacing:3px}#overlay .tabs,#overlay .optrow,#overlay .od,#overlay .go,#overlay .best,#overlay .missions,#overlay .help,#overlay .score,#overlay ul.stats{margin-left:30px;margin-right:30px}#overlay .card>h1,#overlay .card>h2{margin-left:30px;margin-right:30px}#overlay .card>h1{margin-top:22px}#overlay .tabs button{display:flex;align-items:center;justify-content:center;gap:7px;padding:9px 0}#overlay .tabs button svg{width:15px;height:15px}#overlay .tabs button b{font-size:13.5px;letter-spacing:2px}.optrow{margin-top:9px;margin-bottom:0}.optrow>span{width:46px;font-size:13px;font-weight:800}.seg{flex:1;display:flex;padding:3px;gap:3px;border-radius:6px;background:#0000006b;box-shadow:inset 0 1px 4px #000000b3,0 1px #ffffff1a}#overlay .seg button{flex:1;padding:8px 0;font-size:13px;font-weight:700;letter-spacing:1px;box-shadow:none;border-color:transparent;background:transparent;color:#b9b49a}#overlay .seg button.on{background:linear-gradient(180deg,#f0c860d9,#966e1ee6),var(--steel);color:#fff7dc;box-shadow:var(--bevel),0 2px 4px #00000080;border-color:#07080a}#overlay .od{margin-top:3px;margin-bottom:0;padding-left:52px;font-size:11px;color:#b9b49a;letter-spacing:.5px}#overlay .go{margin-top:18px}#overlay button.big{display:flex;align-items:center;justify-content:center;gap:10px}#overlay button.big svg{width:17px;height:17px}#overlay .best{display:flex;justify-content:flex-end;align-items:center;gap:5px;margin-top:10px;margin-bottom:0}#overlay .best svg{width:13px;height:13px}#overlay .best b{color:var(--amber);font-size:13px}#overlay .mission{display:flex;gap:12px;align-items:center;padding:9px 12px}.mission .no{flex:none;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-size:17px;font-weight:900;color:#fff7dc;background:radial-gradient(circle at 35% 30%,#c9a24a,#6a4f16);box-shadow:0 2px 4px #0009,inset 0 1px #fff6}.mission .no svg{width:17px;height:17px}.mission.done .no{background:radial-gradient(circle at 35% 30%,#8fc86a,#2f5a1e)}.mission.locked .no{background:radial-gradient(circle at 35% 30%,#8a8d86,#3a3c38)}.mission .mt{flex:1;display:block;margin:0}.mission .mt>b{display:block;font-size:14.5px;letter-spacing:2px;color:#fff3cc}.mission .mt>span{display:block;font-size:11.5px;font-weight:400;color:#cfcab0;margin-top:2px;line-height:1.4}.mission .tags{display:flex!important;gap:4px;margin-top:4px!important}.mission .tags i{font-style:normal;font-size:10px;font-weight:600;padding:1px 6px;border-radius:8px;background:#00000073;color:var(--amber)}.help{display:grid;gap:7px}.hp{display:flex;gap:11px;align-items:center;padding:7px 10px;border-radius:4px;background:#0000004d;box-shadow:inset 0 1px 3px #00000080,0 1px #ffffff14}.hp svg{flex:none;width:20px;height:20px;color:var(--amber)}.hp b{display:block;font-size:13px;letter-spacing:2px;color:#fff3cc}.hp span{display:block;font-size:11.5px;color:#cfcab0;line-height:1.4}#perf{position:fixed;left:50%;bottom:calc(96px + env(safe-area-inset-bottom));transform:translate(-50%);padding:2px 10px;font:11px/1.5 ui-monospace,monospace;color:#cfe8a8;background:#0009;border-radius:3px;pointer-events:none;z-index:5;white-space:nowrap}#overlay.busy>*{opacity:.25;pointer-events:none;transition:opacity .15s}#overlay.busy:after{content:"正在生成战场…";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:14px 28px;background:#12100ceb;border:1px solid rgba(214,180,110,.45);border-radius:6px;color:#e8d9b4;font-size:16px;letter-spacing:4px;box-shadow:0 8px 30px #0009}
