:root{font-family:Inter,Microsoft YaHei,PingFang SC,system-ui,sans-serif;color:#e7ece8;background:#101b21;font-synthesis:none;font-size:14px;--accent: #7edbc2;--muted: #8eaaa9;--line: #334448;--panel: #18272d;--bg: #111b20}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,select{font:inherit;color:inherit}button{cursor:pointer;border:1px solid var(--line);background:#213137;border-radius:4px;transition:background .15s,border-color .15s}button:hover:not(:disabled){background:#30494d;border-color:#79cbb7}button:focus-visible,select:focus-visible,canvas:focus-visible{outline:2px solid #a9f4dc;outline-offset:-2px}button:disabled{cursor:not-allowed;opacity:.44}h1,h2,h3,p{margin:0}button,kbd{user-select:none}small{color:var(--muted)}.game-shell{height:100dvh;display:grid;grid-template-columns:minmax(0,1fr) 300px;grid-template-rows:68px minmax(0,1fr) 110px 30px;max-width:2560px;margin:auto;background:var(--bg)}.topbar{grid-column:1/-1;display:flex;align-items:center;gap:36px;padding:0 22px;border-bottom:1px solid #40504d;box-shadow:0 2px 14px #0006;z-index:2}.brand{display:flex;align-items:center;gap:12px;min-width:255px}.brand svg{width:46px;height:42px;color:var(--accent)}h1{font-size:23px;letter-spacing:3px;font-weight:750}.brand span{font-size:8px;letter-spacing:3px;color:#8caaa8}.resource{display:flex;align-items:center;gap:12px}.resource small{font-size:11px;display:block;margin-bottom:1px}.resource strong{font-size:21px;font-weight:650;font-variant-numeric:tabular-nums}.resource em{font-style:normal;color:var(--accent);font-size:10px;margin-top:16px}.resource strong span{font-size:16px;color:var(--muted);font-weight:400}.resource-icon{border:1px solid #648f82;border-radius:50%;color:var(--accent);width:25px;height:29px;text-align:center;line-height:28px;font-size:19px}.resource svg{width:24px;height:29px;color:var(--accent)}.resource.danger strong,.resource.danger svg{color:#f5a080}.top-end{display:flex;align-items:center;gap:10px;margin-left:auto}.top-end time{font-family:Consolas,monospace;color:#91a9aa;font-size:16px;margin-right:12px}.top-end button{height:35px;padding:0 16px;font-size:12px;background:#19272c}.battle-region{position:relative;min-height:0;overflow:hidden}.battle-canvas{display:block;width:100%;height:100%;touch-action:none;outline:none;cursor:crosshair}.battle-title{position:absolute;top:20px;left:22px;display:flex;align-items:center;gap:8px;pointer-events:none;background:#142127d9;padding:10px 13px;border:1px solid #728b8550;font-size:12px;letter-spacing:1px}.battle-title small{border-left:1px solid #65807970;padding-left:10px;margin-left:5px;color:#b6cbc5;font-size:10px}.live-dot{width:5px;height:5px;background:#82dcbc;border-radius:50%;box-shadow:0 0 8px #7fdeba55}.objective-strip{position:absolute;right:18px;top:20px;background:#142127d9;padding:10px 14px;font-size:11px;color:#c5d4c9;pointer-events:none;border:1px solid #728b8550}.objective-strip b{margin-left:14px;color:#e5efdf}.power-warning,.notice,.command-hint{position:absolute;left:50%;transform:translate(-50%);width:max-content;max-width:88%;background:#142127ed;border:1px solid #668f80;padding:12px 18px;font-size:12px;pointer-events:none;text-align:center;line-height:1.6}.notice{bottom:58px;color:#daf5e6;box-shadow:0 5px 25px #0003}.power-warning{top:70px;color:#ffbd95;border-color:#896a4e}.command-hint{top:112px;color:#adf6d7}.camera-controls{position:absolute;bottom:16px;right:16px;display:flex;align-items:center;gap:3px;background:#142127de;padding:4px}.camera-controls button{width:30px;height:28px;font-size:18px;border:0;background:transparent}.camera-controls span{font-size:10px;min-width:33px;text-align:center;color:#acbeba}.battle-log{position:absolute;bottom:14px;left:20px;pointer-events:none;font-size:11px;color:#dbeee1}.battle-log p{margin-top:5px;background:#12232ae8;padding:7px 10px}.battle-log time{color:var(--accent);margin-right:12px;font-size:10px}.sidebar{grid-column:2;grid-row:2/4;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#405950 var(--bg);padding:13px 12px 8px;background:linear-gradient(120deg,#19292e,#122128);border-left:1px solid #3f504e;display:flex;flex-direction:column;gap:10px}.section-label{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#bccdc8;letter-spacing:1px}.section-label small{font-size:9px;color:#738e8d}.section-label>span:last-child:not(:first-child){color:#739990;font-size:10px}.minimap{width:100%;height:auto;aspect-ratio:1.5;border:1px solid #617b6a;display:block;cursor:crosshair;background:#26332e;flex-shrink:0}.map-legend{display:flex;justify-content:space-between;font-size:9px;color:#9bb3ad;margin-top:-5px}.map-legend span{display:flex;align-items:center;gap:5px}.map-legend i{width:5px;height:5px;background:#76e7d5}.map-legend span:nth-child(2) i{background:#f08071}.map-legend span:nth-child(3) i{background:#dfc58b}.mission{padding:11px 12px;border:1px solid #32464a;background:#101d23}.mission small{font-size:9px;letter-spacing:2px}.mission p{font-size:12px;margin-top:5px}.mission p:before{content:"◈";color:var(--accent);margin-right:8px}.production-tabs{display:flex;gap:5px;margin-top:2px}.production-tabs button{flex:1;height:33px;font-size:12px;background:#15232a}.production-tabs .active{background:#2c5754;border-color:#7ac4af;color:#dcfff0}.production-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px}.produce-card{height:102px;position:relative;overflow:hidden;padding:7px 8px 6px;text-align:left;background:linear-gradient(140deg,#25363b,#1a2a30);display:flex;flex-direction:column;border-color:#3a4a4a}.produce-card.chosen{border-color:var(--accent);background:#365b52}.card-name{font-size:11px;z-index:1;letter-spacing:.3px}.portrait{display:block;background-image:url(/assets/units.png);background-size:400% 300%;background-repeat:no-repeat;width:80px;height:70px;flex-shrink:0;pointer-events:none}.produce-card .portrait{position:absolute;width:100px;height:70px;left:50%;transform:translate(-50%);top:15px}.card-price{font-size:11px;color:#8fe0c1;display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:auto;z-index:1;font-variant-numeric:tabular-nums}.card-price small{font-size:8px;color:#829995;max-width:64px;text-align:right}.queue{margin-top:auto;padding-top:4px}.queue-items{display:flex;gap:4px;flex-wrap:wrap;margin-top:7px}.queue-items button{position:relative;width:45px;height:43px;overflow:hidden;background:#213438;padding:0}.queue-items .portrait{width:43px;height:37px}.queue-items small{position:absolute;right:1px;bottom:2px;background:#14232cc9;color:#edf4dd;font-size:9px}.queue-items i{position:absolute;left:0;bottom:0;height:2px;background:var(--accent)}.empty-queue{font-size:10px;color:#6c8989;border:1px dashed #334a4b;padding:14px 8px;text-align:center;margin-top:8px}.sidebar-foot{display:flex;justify-content:space-between;font-size:10px;color:#9eb3ac;padding-top:9px;border-top:1px solid #324448;margin-top:2px}.selection-panel{grid-row:3;grid-column:1;display:flex;align-items:center;padding:12px 18px;gap:18px;border-top:1px solid #48615a;background:linear-gradient(180deg,#1b2b31,#111e25);min-width:0}.selected-summary{display:flex;gap:10px;align-items:center;min-width:250px;flex-shrink:0}.selected-summary>.portrait{width:92px;height:80px}.selected-summary>div{min-width:125px}.selected-summary h2{font-size:17px;letter-spacing:1px;margin:3px 0 9px}.selected-summary small{font-size:9px;color:#8cac9f}.selected-summary span:not(.portrait){font-size:9px;color:#b3c9bb}.health-track{height:4px;background:#304443;width:130px;margin-bottom:5px}.health-track i{display:block;height:100%;background:#78c9a8}.nothing-selected p{font-size:11px;color:var(--muted)}.selection-list{display:flex;align-items:center;gap:5px;flex:1;overflow:hidden;min-width:0}.selection-list button{width:54px;height:64px;position:relative;flex-shrink:0;padding:0;background:#172a30}.selection-list .portrait{width:53px;height:48px}.selection-list i{position:absolute;left:7%;bottom:6px;background:#77d4b4;height:3px}.selection-list>span{font-size:12px}.orders{display:grid;gap:5px;grid-template-columns:1fr;flex-shrink:0}.orders button{height:25px;width:117px;text-align:left;font-size:10px;padding:0 9px;background:#1d3137}.orders kbd{float:right;color:#819b94;font-size:9px;line-height:20px}.bottom-tip{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;padding:0 20px;background:#0d191f;border-top:1px solid #2c3e41;color:#829f99;font-size:10px}.bottom-tip b{margin:0 12px;color:#4d7065}.bottom-tip>span:last-child{font-size:9px;color:#53776e}.modal-shade{position:fixed;inset:0;background:#071018b8;backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;z-index:10;padding:24px}.modal{width:560px;max-height:94dvh;overflow:auto;border:1px solid #45675e;background:linear-gradient(140deg,#23383c,#101f27 80%);padding:34px;box-shadow:0 24px 100px #0008;border-radius:6px}.modal h2{font-size:29px;letter-spacing:3px;margin:8px 0 17px}.eyebrow{font-size:10px;letter-spacing:3px;color:#88beac}.primary{height:45px;width:100%;background:#72cbb0;color:#102e2c;border-color:#9ee7c7;font-weight:700;font-size:13px;letter-spacing:2px}.primary:hover:not(:disabled){background:#97e2c5;color:#102e2c}.secondary{width:100%;height:40px;margin-top:10px;font-size:12px}.text-button{width:100%;background:none;border:0;font-size:11px;color:#9bb4b0;margin-top:16px;padding:7px}.lobby{width:710px;padding:32px 36px}.lobby-heading{display:flex;align-items:center;gap:22px;margin-bottom:22px}.lobby-heading svg{width:72px;height:64px;color:#9be0c2}.lobby-heading h2{font-size:39px;margin:6px 0;letter-spacing:6px}.lobby-heading p{font-size:12px;letter-spacing:2px;color:#a7bdb3}.faction-options{display:grid;grid-template-columns:1fr 1fr;gap:14px}.faction-option{text-align:left;position:relative;padding:18px 20px;background:#14262d;overflow:hidden;border-color:#3d5453;min-height:242px}.faction-option.selected{border-color:#91d2b8;background:linear-gradient(140deg,#294940,#1b3438)}.faction-option:nth-child(2).selected{border-color:#d1a47b;background:linear-gradient(140deg,#474638,#293638)}.faction-number{font-family:Consolas,monospace;font-size:14px;color:#759c8f;display:flex;justify-content:space-between;align-items:center}.faction-number i{font-style:normal;font-size:9px;color:#a9c9bc}.faction-option>.portrait{width:144px;height:102px;margin:-2px auto 0}.faction-option h3{font-size:21px;letter-spacing:3px;margin:2px 0 6px}.faction-option strong{font-size:10px;letter-spacing:1px;color:#a6d7bd;font-weight:400}.faction-option p{font-size:10px;color:#a1b6ae;margin-top:10px;line-height:1.8}.match-options{display:flex;justify-content:space-between;align-items:center;margin:24px 0}.match-options small{display:block;font-size:9px;letter-spacing:2px;margin-bottom:6px}.match-options strong{font-size:13px;letter-spacing:1px}.match-options strong span{font-size:10px;font-weight:400;color:#8ca79d;margin-left:15px}.match-options label{font-size:10px;color:#a3bbb0;display:flex;align-items:center;gap:10px}.match-options select{padding:8px 10px;background:#1c3236;border:1px solid #3d5751;border-radius:3px;font-size:11px;outline:none}.lobby-tip{text-align:center;font-size:10px;line-height:1.7;color:#8eaaa0;margin-top:13px}.start-button{height:47px}.result-desc{font-size:13px;line-height:1.9;color:#a6bdb5;margin-bottom:25px}.result-stats{display:flex;justify-content:space-between;border-top:1px solid #385047;padding:22px 0 28px}.result-stats small{display:block;font-size:10px;margin-bottom:9px}.result-stats strong{font-size:24px;color:#b4e5c8;font-weight:500}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px 16px;padding:8px 0 22px;font-size:10px;color:#b3c5bd}.help-grid kbd{display:block;color:#a9e4c8;font-family:inherit;font-size:11px;margin-bottom:4px}.help-notes{border-top:1px solid #3b514c;padding:16px 0 22px}.help-notes p{font-size:11px;line-height:1.9;color:#a4bbb0;margin-bottom:9px}.help-notes b{color:#d2e1d5}.small-screen{display:none}@media(min-height:950px){.produce-card{height:111px}.produce-card .portrait{height:80px;width:112px;top:17px}.sidebar{gap:12px}}@media(max-height:780px){.game-shell{grid-template-rows:59px minmax(0,1fr) 96px 26px}.sidebar{gap:7px}.minimap{max-height:142px}.produce-card{height:85px}.produce-card .portrait{height:57px;width:82px;top:16px}.mission{padding:7px 10px}.lobby{padding:23px 30px;width:650px}.faction-option{min-height:215px;padding:12px 18px}.faction-option>.portrait{height:82px;width:120px}.lobby-heading{margin-bottom:15px}.match-options{margin:17px 0}.lobby-heading h2{font-size:32px}.lobby-tip{font-size:9px}.topbar{gap:25px}.selected-summary{min-width:225px}.selected-summary>.portrait{width:78px;height:67px}.section-label{font-size:10px}}@media(max-width:1150px){.game-shell{grid-template-columns:minmax(0,1fr) 270px}.brand{min-width:215px}.topbar{gap:20px;padding:0 16px}.resource em{display:none}.top-end time{margin-right:0}.top-end button{padding:0 10px}.selected-summary{min-width:200px}.selection-panel{gap:10px;padding:10px}.selected-summary>.portrait{width:65px}.orders button{width:99px}.objective-strip{display:none}}@media(max-width:959px){.small-screen{display:flex;position:fixed;inset:0;z-index:100;background:#13242c;flex-direction:column;align-items:center;justify-content:center;padding:30px;text-align:center;gap:20px}.small-screen svg{width:80px;height:70px;color:var(--accent)}.small-screen h2{font-size:22px}.small-screen p{max-width:350px;color:#a6bfb7;font-size:14px;line-height:1.9}}@media(prefers-reduced-motion:reduce){button{transition:none}}.portrait-defense{background-image:url(/assets/defenses.png);background-size:200% 200%}.intel-note{font-size:9px;color:#87a49b;line-height:1.5;margin-top:-5px}.tech-hint{display:block;color:#9ed8bc;font-size:10px;line-height:1.7;margin-top:7px;padding-top:6px;border-top:1px solid #32483f}.produce-card:disabled{opacity:.58}.top-end{gap:7px}.top-end button{padding:0 12px}.production-tabs button{font-size:11px}.card-price small{max-width:90px;font-size:8px}.selected-summary .portrait-defense{background-size:200% 200%}.portrait-faction{background-image:url(/assets/factions.png);background-size:200% 200%}.music-setting{display:flex;align-items:center;gap:14px;margin:14px 0;color:#a6c1b9;font-size:13px}.music-setting input{accent-color:#78dcc4;flex:1}.top-end{gap:6px}.top-end button{white-space:nowrap}.map-description{font-size:13px;color:#b6c8ba;border-left:3px solid;padding:9px 12px;background:#1b2c2b;margin:10px 0 16px;line-height:1.6}.portrait-units{background-image:url(/assets/units.png)}.portrait-defenses{background-image:url(/assets/defenses.png)}.portrait-factions{background-image:url(/assets/factions.png)}.portrait-infantry{background-image:url(/assets/infantry.png)}.production-tabs{grid-template-columns:repeat(4,1fr)}.type-filters{display:flex;gap:5px;flex-wrap:wrap;width:100%}.type-filters button{width:auto!important;height:24px!important;padding:3px 8px!important;font-size:10px}.selection-list{flex-wrap:wrap;align-content:center;overflow:auto}.building-actions{display:flex;gap:5px}.building-actions button{font-size:10px;flex:1}.portrait-harvester{background-image:url(/assets/harvester.png)}.orders:has(.building-actions){gap:3px}.building-actions{flex-direction:column}.orders:has(.building-actions)>button{display:none}.selection-list>button{height:52px}.selection-list>button .portrait{height:39px}.incoming-banner{position:fixed;top:70px;left:calc(50% - 310px);z-index:5;background:#6e2529e8;border:1px solid #ea8a72;color:#ffe9dd;padding:10px 25px;font-size:13px;pointer-events:none;animation:incoming 1s ease-in-out infinite alternate}@keyframes incoming{to{background:#a93638e8}}.spawn-choice{display:flex;align-items:center;gap:16px;margin:12px 0;color:#bcd1cd;font-size:13px}.spawn-choice select{background:#172a2e;color:#e0eee9;border:1px solid #42615e;padding:8px 16px}.portrait-bases{background-image:url(/assets/bases.png)}.intel-controls{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 0;color:#bbd4c8;font-size:12px}.intel-controls button{margin-left:auto;background:#23463e;border:1px solid #557d6a;color:#e1eddf;padding:5px 8px;border-radius:3px;cursor:pointer}.intel-controls button:disabled{opacity:.4;cursor:default}.intel-controls small{width:100%;font-size:10px;color:#9cab9d}.model-portrait{object-fit:contain;background-image:none!important}.production-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.quick-music-volume{display:flex;align-items:center;gap:4px;font-size:11px;white-space:nowrap}.quick-music-volume input{width:65px;accent-color:#78dcc4}.quick-music-volume span{width:28px}
