:root{--glass: #0d131b;--glass-2: #131b25;--line: rgba(255, 255, 255, .09);--line-2: rgba(255, 255, 255, .16);--text: #e9eff5;--dim: #8fa1b3;--blue: #5ab2ff;--amber: #ffc25e;--green: #62e293;--red: #ff6457;--sat: env(safe-area-inset-top, 0px);--sab: env(safe-area-inset-bottom, 0px);--sal: env(safe-area-inset-left, 0px);--sar: env(safe-area-inset-right, 0px)}html,body{margin:0;padding:0;overflow:hidden;background:#07101c;height:100%;height:100dvh}#app{width:100vw;height:100vh;width:100dvw;height:100dvh}canvas{display:block}#selection-box{position:absolute;border:1px solid rgba(120,220,130,.9);background:#78dc821f;pointer-events:none;display:none;z-index:5}#hud-root{font-family:Rajdhani,sans-serif;color:var(--text);-webkit-user-select:none;user-select:none;cursor:default}#hud-root .num{font-family:Share Tech Mono,monospace}.glass{background:var(--glass);border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 32px #00000059,inset 0 1px #ffffff12}.panel-label{position:absolute;top:9px;right:12px;font-size:9px;font-weight:700;letter-spacing:.3em;color:#8fa1b38c;pointer-events:none}.lbl{font-size:10px;font-weight:700;letter-spacing:.26em;color:var(--dim)}#topbar{position:fixed;top:0;left:0;right:0;height:42px;z-index:25;display:flex;align-items:center;padding:0 16px;border-radius:0;border:none;border-bottom:1px solid var(--line-2)}.tb-seg{display:flex;align-items:center;gap:10px;padding:0 16px;height:26px}.tb-seg+.tb-seg{border-left:1px solid var(--line)}#logo{display:flex;align-items:center;gap:10px}#logo .name{font-size:16px;font-weight:700;letter-spacing:.22em}#logo .name b{color:var(--blue);font-weight:700}.tb-val{font-size:17px;font-weight:600}#credits-val{color:var(--amber);text-shadow:0 0 16px rgba(255,194,94,.35);font-size:18px}#credits .rate{font-size:11px;color:var(--green);opacity:.9}#supply-val,#buildings-val{font-size:18px;font-weight:600}#supply-val.full,#buildings-val.full{color:var(--red, #e0533d);text-shadow:0 0 16px rgba(224,83,61,.4)}.pips{display:flex;gap:5px}.pip{width:10px;height:10px;transform:rotate(45deg);border-radius:2px;background:#ffffff1a;border:1px solid var(--line-2)}.pip.on{background:linear-gradient(135deg,#8fd0ff,#2e7cc2);border-color:transparent;box-shadow:0 0 8px #5ab2ff80}.pip.next{animation:pipblink 1.6s ease-in-out infinite}@keyframes pipblink{50%{background:#5ab2ff59}}#menu-btn{margin-left:auto;font-family:Rajdhani,sans-serif;font-size:12px;font-weight:700;letter-spacing:.26em;color:var(--text);padding:7px 20px 6px;cursor:pointer;border-radius:6px;background:#ffffff0f;border:1px solid var(--line-2);transition:all .15s}#menu-btn:hover{background:#5ab2ff26;border-color:var(--blue)}#fps-meter{position:fixed;left:14px;top:48px;z-index:24;display:none;font-family:Rajdhani,sans-serif;font-size:12px;font-weight:700;letter-spacing:.14em;color:var(--dim);padding:2px 8px;border-radius:4px;background:#080c118c;border:1px solid var(--line);pointer-events:none}#events{position:fixed;left:14px;top:70px;z-index:15;display:flex;flex-direction:column;gap:5px;pointer-events:none}.evt{font-size:13px;font-weight:600;letter-spacing:.03em;color:#dce6ef;padding:4px 12px;background:#080c118c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:5px;border-left:2px solid var(--green);animation:evtin .35s ease both}.evt.warn{border-left-color:var(--red)}@keyframes evtin{0%{opacity:0;transform:translate(-12px)}to{opacity:1}}#minimap-wrap{position:fixed;top:52px;right:12px;width:190px;height:190px;padding:8px;z-index:20}#bottombar{position:fixed;left:12px;right:12px;bottom:12px;z-index:20;display:none;align-items:flex-end;justify-content:space-between;gap:10px;pointer-events:none}#bottombar.shown{display:flex}#selection,#commandcard{pointer-events:auto}#minimap-wrap .frame{position:relative;border-radius:5px;overflow:hidden;height:100%}#minimap-wrap canvas{display:block;width:100%;height:100%;image-rendering:pixelated}#selection{flex:0 1 auto;box-sizing:border-box;width:max-content;max-width:min(46vw,600px);height:auto;min-height:126px;padding:14px 18px 12px;display:flex;align-items:center;min-width:0;position:relative}#selection:not(.glass){pointer-events:none}#selection:not(.glass) .ugroup,#selection:not(.glass) .pill.act{pointer-events:auto}.sel-chips{display:flex;flex-direction:column;gap:8px;align-items:flex-start;min-width:0}.act-pills{display:flex;gap:6px;flex-wrap:wrap}.pill{display:flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:13px;font-size:9px;font-weight:700;letter-spacing:.16em;white-space:nowrap;color:var(--dim);background:#090f17db;border:1px solid var(--line)}.pill b{color:var(--text);font-weight:400;font-size:11px}.pill .dot{width:7px;height:7px;border-radius:50%;flex:none}.pill.ok{color:#a8e8c0;border-color:#62e29373}.pill.ok .dot{background:var(--green);box-shadow:0 0 8px var(--green)}.pill.bad{color:#ffb3a8;border-color:#f0503c80}.pill.bad .dot{background:var(--red);box-shadow:0 0 8px var(--red)}.pill.act{color:#d7e9fb;cursor:pointer;background:#182c46e6;border-color:#5ab2ff80;transition:all .14s}.pill.act:hover{background:#264266f2;border-color:var(--blue)}.pill.act .k{display:inline-grid;place-items:center;min-width:17px;height:17px;border-radius:4px;background:#5ab2ff29;border:1px solid rgba(90,178,255,.45);color:var(--blue);font-size:10px}html.touch-ui .pill{height:34px;padding:0 12px}html.touch-ui .pill .k{min-width:20px;height:20px}#selection:not(.glass) .stance-btn{pointer-events:auto}.stance-bar{display:flex;flex-direction:column;gap:5px;min-width:0}.stance-label{font-size:9px;font-weight:700;letter-spacing:.16em;color:var(--dim)}.stance-btns{display:flex;gap:4px}.stance-btn{display:flex;align-items:center;gap:6px;height:28px;padding:0 9px;border-radius:5px;cursor:pointer;transition:all .14s;color:var(--dim);background:#090f17db;border:1px solid var(--line)}.stance-btn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.stance-btn:hover{color:#d7e9fb;border-color:#5ab2ff80;background:#182c46e6}.stance-btn .k{display:inline-grid;place-items:center;min-width:15px;height:15px;border-radius:3px;background:#8caac81f;border:1px solid var(--line);color:var(--dim);font-size:9px;font-weight:700}.stance-btn.on{color:#eaf4ff;background:#22548cf2;border-color:var(--blue);box-shadow:0 0 10px #5ab2ff59 inset}.stance-btn.on .k{background:#5ab2ff4d;border-color:#5ab2ff99;color:#eaf4ff}.stance-bar{position:relative}.stance-tip{position:absolute;bottom:100%;left:0;margin-bottom:6px;width:max-content;max-width:260px;padding:6px 9px;border-radius:5px;font-size:10px;line-height:1.35;font-weight:400;letter-spacing:.02em;color:#dcebf9;background:#060b12f2;border:1px solid rgba(90,178,255,.45);opacity:0;pointer-events:none;transition:opacity .12s;z-index:5}.stance-tip.show{opacity:1}html.touch-ui .stance-btn{width:44px;height:44px;padding:0;justify-content:center}html.touch-ui .stance-btn svg{width:21px;height:21px}html.touch-ui .stance-btns{gap:3px}.sel-state{display:none;gap:16px;align-items:center;min-width:0}.sel-state.sel-on{display:flex}.sel-empty{flex:1;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;letter-spacing:.2em;color:#8fa1b373}.portrait{width:86px;height:86px;flex:none;position:relative;border-radius:7px;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 36%,#5ab2ff33,#0a1018d9 78%);border:1px solid var(--line-2)}.portrait:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(to bottom,rgba(255,255,255,.035) 0 1px,transparent 1px 3px)}.portrait svg{width:46px;height:46px;stroke:var(--blue);filter:drop-shadow(0 0 10px rgba(90,178,255,.55))}.portrait .pimg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;filter:drop-shadow(0 4px 8px rgba(0,0,0,.5))}.portrait.p-red{background:radial-gradient(circle at 50% 36%,#ff645738,#180a0ad9 78%);border-color:#ff645759}.sel-name{font-size:20px;font-weight:700;letter-spacing:.14em;line-height:1.1}.sel-sub{font-size:10px;font-weight:700;letter-spacing:.22em;color:var(--dim);white-space:nowrap;margin-top:1px}.sel-col{min-width:0;flex:1 1 auto}.hpbar{width:190px;max-width:100%;height:7px;margin-top:9px;border-radius:4px;background:#0000008c;overflow:hidden}.hpbar i{display:block;height:100%;border-radius:4px;background:linear-gradient(to right,#43c374,var(--green));box-shadow:0 0 10px #62e29380}.hp-num{font-size:11px;color:var(--dim);margin-top:4px}.hp-num b{color:var(--text);font-weight:400}.sel-divider{width:1px;align-self:stretch;margin:4px 2px;background:linear-gradient(to bottom,transparent,var(--line) 25%,var(--line) 75%,transparent);flex:none}.sel-aux{margin-left:28px;display:flex;flex-direction:column;gap:9px;align-items:flex-end;justify-content:center;align-self:stretch;flex:0 1 auto;min-width:0;max-width:230px;padding:10px 4px 0 0}.aux-line{font-size:11px;font-weight:700;letter-spacing:.18em;color:var(--dim);white-space:nowrap;display:flex;align-items:center;gap:7px;max-width:100%}.aux-line.trains-line{display:block;white-space:normal;text-align:right;line-height:1.5}.aux-line b{color:var(--amber);font-family:Share Tech Mono,monospace;font-size:14px;font-weight:400}.aux-line.green b{color:var(--green)}.aux-line.warnline b{color:var(--red)}.aux-line.repair-line,.aux-line.sell-line{cursor:pointer}.aux-line.repair-line:hover,.aux-line.sell-line:hover{color:var(--text)}.aux-line.repair-line.poor{opacity:.55;cursor:not-allowed}.aux-line.repair-line.poor b,.aux-line.sell-line.warnline{color:var(--red)}.aux-line.sell-line.warnline .keycap{color:var(--red);border-color:#ff5a5a80;background:#ff5a5a24}.keycap{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:4px;background:#5ab2ff24;border:1px solid rgba(90,178,255,.4);color:var(--blue);font-size:11px}.upg{min-width:180px}.upg .t{font-size:10px;font-weight:700;letter-spacing:.22em;color:var(--amber)}.progress{height:7px;margin-top:7px;border-radius:4px;background:#0000008c;overflow:hidden}.progress i{display:block;height:100%;border-radius:4px;width:0%;background:linear-gradient(to right,#d99b3a,var(--amber));box-shadow:0 0 10px #ffc25e73}.upg .eta{font-size:11px;color:var(--dim);margin-top:4px}.upg .eta b{color:var(--text);font-weight:400}.group-grid{display:flex;flex-wrap:wrap;gap:8px;align-items:center;align-content:center}.ugroup{width:74px;height:86px;position:relative;cursor:pointer;flex:none;border-radius:7px;background:var(--glass-2);border:1px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;transition:all .15s}.ugroup:hover{border-color:var(--blue);background:#5ab2ff1f}.ugroup:hover .pimg{transform:scale(1.08)}.ugroup{overflow:hidden;justify-content:flex-end;padding-bottom:6px;background:radial-gradient(circle at 50% 34%,#5ab2ff24,#080d14e6 80%)}.ugroup .pimg{position:absolute;top:0;right:0;bottom:14px;left:0;width:100%;height:calc(100% - 14px);object-fit:cover;transition:transform .15s}.ugroup .cnt{position:absolute;top:3px;right:6px;font-size:12px;color:var(--blue);text-shadow:0 1px 3px #000;z-index:1}.ugroup .ghp,.ugroup .tname{position:relative;z-index:1}.ugroup .tname{text-shadow:0 1px 3px #000}.ugroup .ghp{width:50px;height:4px;border-radius:3px;background:#0000008c;overflow:hidden}.ugroup .ghp i{display:block;height:100%;background:var(--green)}.ugroup .ghp.low i{background:var(--amber)}.ugroup .tname{font-size:9px;font-weight:700;letter-spacing:.18em;color:var(--dim)}#ctrlgroups{position:fixed;left:12px;bottom:150px;z-index:21;display:flex;gap:8px;pointer-events:none}.cg-chip{pointer-events:auto;display:flex;align-items:center;gap:7px;height:30px;padding:0 10px 0 6px;border-radius:7px;cursor:pointer;background:var(--glass-2);border:1px solid var(--line);transition:all .12s}.cg-chip:hover{border-color:var(--blue);background:#5ab2ff1f}.cg-chip .cg-num{display:grid;place-items:center;min-width:20px;height:20px;border-radius:4px;background:#5ab2ff2e;border:1px solid rgba(90,178,255,.45);color:var(--blue);font-family:Share Tech Mono,monospace;font-size:13px}.cg-chip .cg-cnt{font-family:Share Tech Mono,monospace;font-size:13px;color:var(--text)}#cmddock{position:fixed;left:50%;transform:translate(-50%);bottom:40px;z-index:22;display:flex;gap:8px;pointer-events:none}.dock-btn{pointer-events:auto;position:relative;width:56px;height:56px;flex:none;cursor:pointer;border-radius:8px;overflow:hidden;border:1px solid var(--line-2);background:radial-gradient(circle at 50% 36%,#5ab2ff29,#080d14eb 80%);box-shadow:0 6px 20px #00000073;transition:border-color .14s,box-shadow .14s,transform .1s}.dock-btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;background:repeating-linear-gradient(to bottom,rgba(255,255,255,.03) 0 1px,transparent 1px 3px)}.dock-btn svg{width:36px;height:36px;stroke:var(--blue);color:var(--blue);position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);transition:stroke .14s;filter:drop-shadow(0 0 8px rgba(90,178,255,.5))}.dock-btn:hover{border-color:var(--blue);box-shadow:0 0 16px #5ab2ff47}.dock-btn:active{transform:translateY(1px)}.dock-btn.d-rally{border-color:#ffc25e66;background:radial-gradient(circle at 50% 40%,#ffc25e29,#0c0b08eb 80%)}.dock-btn.d-rally svg{stroke:var(--amber);color:var(--amber);filter:drop-shadow(0 0 8px rgba(255,194,94,.5))}.dock-btn.d-rally:hover{border-color:var(--amber);box-shadow:0 0 16px #ffc25e4d}.dock-btn.d-rally.armed{border-color:var(--amber);box-shadow:0 0 20px #ffc25e8c;animation:dockpulse 1s ease-in-out infinite}@keyframes dockpulse{50%{box-shadow:0 0 8px #ffc25e40}}.dock-btn.d-rally.d-sea{border-color:#5ab2ff73;background:radial-gradient(circle at 50% 40%,#5ab2ff2e,#080d14eb 80%)}.dock-btn.d-rally.d-sea svg{stroke:var(--blue);color:var(--blue);filter:drop-shadow(0 0 8px rgba(90,178,255,.5))}.dock-btn.d-rally.d-sea:hover{border-color:var(--blue);box-shadow:0 0 16px #5ab2ff4d}.dock-btn.d-rally.d-sea.armed{border-color:var(--blue);box-shadow:0 0 20px #5ab2ff8c;animation:dockpulseblue 1s ease-in-out infinite}@keyframes dockpulseblue{50%{box-shadow:0 0 8px #5ab2ff40}}#commandcard{width:332px;flex:none;padding:14px;position:relative}#commandcard.hidden{display:none}.sec-lbl{font-size:9px;font-weight:700;letter-spacing:.28em;color:var(--dim);margin:0 2px 7px}.sec-lbl.mt{margin-top:11px}.btn-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.cbtn{aspect-ratio:1;position:relative;cursor:pointer;border-radius:7px;overflow:hidden;background:var(--glass-2);border:1px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;transition:all .14s}.cbtn svg{width:25px;height:25px;stroke:var(--text);transition:all .14s}.cbtn .bname{font-size:8px;font-weight:700;letter-spacing:.12em;color:var(--dim)}.cbtn .key{position:absolute;top:3px;left:6px;font-size:10px;color:var(--blue);opacity:.95;font-family:Share Tech Mono,monospace}.cbtn .cost{position:absolute;bottom:3px;right:6px;font-size:9px;color:var(--amber)}.cbtn.has-pic{display:block;background:radial-gradient(circle at 50% 38%,#5ab2ff29,#080d14eb 78%)}.cbtn.has-pic .pimg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;transition:transform .15s;filter:drop-shadow(0 3px 6px rgba(0,0,0,.55))}.cbtn.has-pic:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;background:repeating-linear-gradient(to bottom,rgba(255,255,255,.03) 0 1px,transparent 1px 3px)}.cbtn.has-pic .bname{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:12px 4px 3px;text-align:center;color:var(--text);background:linear-gradient(to top,rgba(4,8,13,.95) 30%,transparent)}.cbtn.has-pic .key{top:3px;left:4px;z-index:1;padding:0 4px;border-radius:4px;background:#04080db8;border:1px solid rgba(90,178,255,.35)}.cbtn.has-pic .cost{top:3px;right:4px;bottom:auto;z-index:1;font-size:10px;padding:1px 5px;border-radius:4px;background:#04080dc7;border:1px solid rgba(255,194,94,.3)}.cbtn.has-pic .cost:before{content:"$";color:var(--green);margin-right:1px;opacity:.9}.cbtn.has-pic.wide{min-height:52px}.cbtn.has-pic.wide .pimg{object-fit:contain}.cbtn:hover:not(.locked):not(.poor):not(.empty){border-color:var(--blue);background:#5ab2ff1f;box-shadow:0 0 16px #5ab2ff33}.cbtn.has-pic:hover:not(.locked):not(.poor):not(.empty){background:radial-gradient(circle at 50% 38%,#5ab2ff4d,#080d14e6 80%)}.cbtn.has-pic:hover:not(.locked):not(.poor):not(.capped):not(.empty) .pimg{transform:scale(1.08)}.cbtn:hover:not(.locked):not(.poor):not(.empty) svg{stroke:var(--blue)}.cbtn:active:not(.locked):not(.poor):not(.empty){transform:translateY(1px)}.cbtn.poor{opacity:.5;cursor:not-allowed}.cbtn.poor .cost{color:var(--red)}.cbtn.poor .pimg{filter:grayscale(.65) brightness(.8)}.cbtn.locked{cursor:not-allowed}.cbtn.locked svg,.cbtn.locked .bname,.cbtn.locked .cost,.cbtn.locked .key{opacity:.25}.cbtn.locked .pimg,.cbtn.capped .pimg,.cbtn.reqlock .pimg{filter:grayscale(.9) brightness(.45)}.cbtn.locked:after{content:"HQ L" attr(data-req);position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:10px;font-weight:700;letter-spacing:.2em;color:var(--amber);background:#080c118c}.cbtn.capped{cursor:not-allowed}.cbtn.capped svg,.cbtn.capped .bname,.cbtn.capped .cost,.cbtn.capped .key{opacity:.25}.cbtn.capped:after{content:"MAX";position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:10px;font-weight:700;letter-spacing:.2em;color:var(--red, #e0533d);background:#080c118c}.cbtn.reqlock{cursor:not-allowed}.cbtn.reqlock svg,.cbtn.reqlock .bname,.cbtn.reqlock .cost,.cbtn.reqlock .key{opacity:.25}.cbtn.reqlock:after{content:"NEED";position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:10px;font-weight:700;letter-spacing:.2em;color:var(--amber);background:#080c118c}.cbtn.empty{background:#ffffff05;border-style:dashed;border-color:#ffffff0f;cursor:default}.cbtn.accent{border-color:#ffc25e73;background:#ffc25e14}.cbtn.accent.has-pic{background:radial-gradient(circle at 50% 40%,#ffc25e2e,#0c0b08eb 78%)}.cbtn.accent svg{stroke:var(--amber)}.cbtn.accent:hover{border-color:var(--amber);background:#ffc25e29;box-shadow:0 0 16px #ffc25e38}.cbtn.accent.has-pic:hover{background:radial-gradient(circle at 50% 40%,#ffc25e4d,#0c0b08e6 80%)}.cbtn.accent:hover svg{stroke:var(--amber)}.cbtn.wide{grid-column:span 2;aspect-ratio:auto}.cbtn.placing{border-color:var(--green);background:#62e2931f;box-shadow:0 0 16px #62e29340}.cbtn.building .key,.cbtn.building .bname,.cbtn.building .cost{display:none}.cbtn.building svg{opacity:.45}.cbtn.building .pimg{opacity:.6}.cbtn.building .clock{position:absolute;top:0;right:0;bottom:0;left:0;background:conic-gradient(transparent 0 var(--p),rgba(5,8,12,.72) var(--p) 100%)}.cbtn.building .pct{position:absolute;left:0;right:0;top:50%;transform:translateY(-58%);text-align:center;font-family:Share Tech Mono,monospace;font-size:15px;color:#fff;text-shadow:0 1px 3px #000}.cbtn.building .stat{position:absolute;left:0;right:0;bottom:4px;text-align:center;font-size:8px;font-weight:700;letter-spacing:.24em;color:var(--green);animation:blink 1.1s steps(2) infinite}@keyframes blink{50%{opacity:.25}}.queue{display:flex;gap:6px;align-items:center}.qslot{width:30px;height:30px;position:relative;border-radius:5px;overflow:hidden;background:#0006;border:1px solid var(--line);display:grid;place-items:center;cursor:pointer}.qslot svg{width:17px;height:17px;stroke:var(--text);position:relative;z-index:1}.qslot .pimg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;z-index:1}.qslot .fill{position:absolute;left:0;right:0;bottom:0;background:#5ab2ff59;height:0%;z-index:2}.qslot:hover:not(.qempty):after{content:"✕";position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#a0281eb3;color:#ffd9d2;font-size:13px;z-index:3}.qslot.qempty{opacity:.3;cursor:default}.note{margin-top:11px;padding:8px 11px;border-radius:6px;background:#62e29312;border:1px solid rgba(98,226,147,.22);font-size:11px;font-weight:600;line-height:1.5;color:#b9dcc6}.note b{color:var(--green)}.note.plain{background:#ffffff0a;border-color:var(--line);color:var(--dim)}.note.plain b{color:var(--blue)}.mp-panel{border:1px solid rgba(159,195,168,.35);padding:26px 30px;background:#0a1624f0;min-width:360px;box-shadow:0 8px 40px #0009}.mp-title{font-weight:700;font-size:15px;letter-spacing:1px;color:#9fc3a8;margin-bottom:10px}.mp-row{display:flex;gap:8px;margin:8px 0}.mp-panel input{flex:1;background:#0a1624;border:1px solid rgba(159,195,168,.4);color:#cfe3d0;font:13px SF Mono,Menlo,monospace;padding:7px 9px;outline:none;text-transform:none}.mp-panel input:focus{border-color:#9fc3a8}.mp-panel button{background:#16301f;border:1px solid #5fa86f;color:#b9f0c4;cursor:pointer;font:700 12px SF Mono,Menlo,monospace;padding:7px 14px;letter-spacing:1px}.mp-panel button:hover:not(:disabled){background:#1e4029}.mp-panel button:disabled{opacity:.35;cursor:default}.cmd-bg{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;background:radial-gradient(110% 130% at 82% 12%,rgba(90,178,255,.17),transparent 55%),radial-gradient(80% 90% at 10% 96%,rgba(255,194,94,.08),transparent 55%),linear-gradient(160deg,#0c1b30,#07101c 55%,#04090f)}.cmd-bg:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(125% 105% at 42% 42%,transparent 52%,rgba(0,0,0,.55) 100%)}.cmd-grid{position:absolute;top:-128px;right:-128px;bottom:-128px;left:-128px;background:linear-gradient(rgba(90,178,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(90,178,255,.06) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:radial-gradient(115% 95% at 62% 38%,#000 28%,transparent 72%);mask-image:radial-gradient(115% 95% at 62% 38%,#000 28%,transparent 72%);animation:cmdDrift 90s linear infinite}@keyframes cmdDrift{to{transform:translate(64px,64px)}}.cmd-sweep{position:absolute;right:-12vw;top:50%;width:64vw;aspect-ratio:1;transform:translateY(-50%);border-radius:50%;border:1px solid rgba(90,178,255,.1);box-shadow:inset 0 0 0 1px #5ab2ff08}.cmd-sweep:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:conic-gradient(from 0deg,rgba(90,178,255,.13),transparent 18%);animation:cmdSweep 14s linear infinite}.cmd-sweep:after{content:"";position:absolute;top:16%;right:16%;bottom:16%;left:16%;border-radius:50%;border:1px solid rgba(90,178,255,.08);box-shadow:inset 0 0 60px #5ab2ff0a}@keyframes cmdSweep{to{transform:rotate(1turn)}}#main-menu{position:fixed;top:0;left:0;width:100vw;height:100vh;width:100dvw;height:100dvh;z-index:50;font-family:Rajdhani,sans-serif;color:var(--text);-webkit-user-select:none;user-select:none}.mm-shell{position:relative;height:100%;display:flex;flex-direction:column;box-sizing:border-box;gap:14px;padding:22px clamp(24px,5vw,64px) 46px}.mm-top{flex:none;display:flex;align-items:baseline;gap:16px}.mm-word{font-size:32px;font-weight:700;letter-spacing:.12em;line-height:1;text-shadow:0 4px 30px rgba(0,0,0,.6)}.mm-word b{color:var(--blue)}.mm-tagline{font-size:11px;font-weight:700;letter-spacing:.34em;color:var(--dim)}.mm-body{flex:1;min-height:0;display:flex;align-items:center;gap:30px;width:100%;max-width:1150px;margin:0 auto}.mm-stack{display:flex;flex-direction:column;gap:10px;width:300px;flex:none}.mm-rail-gap{height:10px}.mm-stage{flex:1;min-width:0;max-width:680px;display:flex;flex-direction:column;gap:14px}#main-menu.on-diff .mm-stage{display:none}.mm-sub{font-size:11px;font-weight:700;letter-spacing:.3em;color:var(--dim);margin-bottom:2px}.mm-btn{text-align:left;font-family:Rajdhani,sans-serif;font-size:17px;font-weight:700;letter-spacing:.18em;color:var(--text);cursor:pointer;padding:14px 20px;border-radius:9px;background:#0d131bd1;border:1px solid var(--line-2);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:all .15s;display:flex;flex-direction:column}.mm-btn:hover{background:#5ab2ff29;border-color:var(--blue);transform:translate(4px)}.mm-btn.mm-primary{background:linear-gradient(135deg,#5ab2ff47,#1d5b9638);border-color:#5ab2ff99}.mm-btn.mm-primary:hover{background:linear-gradient(135deg,#5ab2ff66,#1d5b964d)}.mm-btn.mm-back{font-size:13px;letter-spacing:.26em;color:var(--dim);padding:10px 20px}.mm-btn.mm-play{padding:17px 20px;font-size:19px}.mm-btn.mm-soon{cursor:default;opacity:.55;gap:2px}.mm-btn.mm-soon:hover{transform:none;background:#0d131bd1;border-color:var(--line-2)}.mm-vs{position:relative;display:grid;grid-template-columns:1fr 74px 1fr;align-items:stretch;border:1px solid var(--line-2);border-radius:12px;overflow:hidden;background:linear-gradient(100deg,#5ab2ff29,#090f18e6 42%,#090f18e6 58%,#ff645729)}.mm-vs-side{padding:14px 18px;display:flex;flex-direction:column;gap:7px;min-width:0}.mm-vs-side.mm-vs-r{align-items:flex-end;text-align:right}.mm-crest{width:42px;height:42px}.mm-vs-fac{font-size:10px;font-weight:700;letter-spacing:.3em}.mm-vs-fac.mm-vs-b{color:var(--blue)}.mm-vs-fac.mm-vs-red{color:var(--red)}.mm-vs-name{font-size:21px;font-weight:700;letter-spacing:.08em;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.mm-vs-name.mm-vs-open{color:#5d6c7c}.mm-vs-meta{font-size:11px;font-weight:600;letter-spacing:.06em;color:var(--dim)}.mm-vs-meta b{color:var(--amber);font-weight:700;letter-spacing:.16em}.mm-vs-mid{display:grid;place-items:center;background:#0006;border-left:1px solid var(--line);border-right:1px solid var(--line)}.mm-vs-mid span{font-size:26px;font-weight:700;color:var(--amber);text-shadow:0 0 22px rgba(255,194,94,.55);animation:mmVsPulse 2.4s ease-in-out infinite}@keyframes mmVsPulse{50%{opacity:.55;transform:scale(.92)}}.mm-lamp{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:7px;vertical-align:1px;background:#3a4552}.mm-lamp.on{background:var(--green);box-shadow:0 0 10px var(--green)}.mm-stage-title{font-size:15px;font-weight:700;letter-spacing:.22em}.mm-stage-kicker{margin:0 0 0 auto}.mm-diff{gap:3px;position:relative}.mm-diff.sel{background:linear-gradient(160deg,#5ab2ff42,#1d5b9629);border-color:#5ab2ffb3}.mm-diff.sel:before{content:"";position:absolute;left:-1px;top:14px;bottom:14px;width:3px;border-radius:3px;background:var(--blue)}.mm-diff-n{font-size:17px;letter-spacing:.18em}.mm-diff-d{font-size:11px;font-weight:600;letter-spacing:.08em;color:var(--dim)}.mm-pips{font-size:11px;letter-spacing:.24em;color:var(--amber)}.mm-taunt{font-size:12.5px;font-weight:600;font-style:italic;color:#c8b487;line-height:1.5;border-left:2px solid rgba(255,194,94,.45);padding-left:10px}.mm-btn.mm-go{align-items:center;text-align:center;font-size:16px;letter-spacing:.28em;padding:14px;background:linear-gradient(135deg,#5ab2ff6b,#1d5b964d);border-color:#5ab2ffbf;box-shadow:0 0 30px #5ab2ff33}.mm-btn.mm-go:hover{transform:none;background:linear-gradient(135deg,#5ab2ff8c,#1d5b9666)}.mm-btn.mm-go-wait,.mm-btn.mm-go:disabled{background:#0d131be6;border-color:var(--line-2);color:var(--dim);box-shadow:none;cursor:default}.mm-bf{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#0000006b;border:1px solid var(--line-2);border-radius:10px;padding:10px 14px}.mm-bf .mm-sub{margin:0}.mm-bf-val{font-size:15px;font-weight:700;letter-spacing:.14em;color:var(--text)}.mm-bf-val.mm-bf-rand{color:var(--amber)}.mm-bf-note{font-size:11px;font-weight:600;letter-spacing:.04em;color:#6f8092}.mm-bf-change{margin-left:auto;font-family:Rajdhani,sans-serif;font-size:11px;font-weight:700;letter-spacing:.18em;color:var(--blue);cursor:pointer;padding:7px 12px;border-radius:7px;background:#5ab2ff1a;border:1px solid rgba(90,178,255,.45);transition:all .15s}.mm-bf-change:hover{background:#5ab2ff3d;border-color:var(--blue)}.mm-bfpick{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;background:#04090fd1;padding:4vh 4vw;font-family:Rajdhani,sans-serif;color:var(--text)}.mm-bfpick-panel{width:min(1000px,100%);max-height:92vh;display:flex;flex-direction:column;gap:14px;padding:20px 24px}.mm-bfpick-head{display:flex;align-items:center;gap:16px;flex:none}.mm-bfpick-head .mm-back{margin-left:auto}.mm-bfpick-title{font-size:18px;font-weight:700;letter-spacing:.26em;color:var(--blue)}.mm-bfgrid{flex:1;min-height:0;overflow:auto;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));padding-right:4px}.mm-bfcard{position:relative;display:flex;flex-direction:column;gap:4px;padding:8px;border-radius:10px;cursor:pointer;text-align:left;font-family:Rajdhani,sans-serif;background:#0d131bd1;border:1px solid var(--line-2);transition:all .15s}.mm-bfcard:hover{border-color:var(--blue);transform:translateY(-3px)}.mm-bfcard.sel{border-color:var(--amber);background:linear-gradient(160deg,#ffc25e2e,#0d131be6)}.mm-bfshot{display:block;width:100%;aspect-ratio:1;border-radius:6px;background:#060d16}.mm-bfcard-n{font-size:13px;font-weight:700;letter-spacing:.1em;color:var(--text)}.mm-bfcard-b{font-size:9.5px;font-weight:700;letter-spacing:.2em;color:var(--dim)}.mm-bfcard-rand{grid-column:span 2;align-items:flex-start;justify-content:center;gap:6px;background:linear-gradient(135deg,#ffc25e33,#0d131be6);border-color:#ffc25e80}.mm-bfcard-rand:hover{border-color:var(--amber)}.mm-bf-dice{font-size:34px;line-height:1;color:var(--amber)}.mm-bfcard-rand .mm-bfcard-n{font-size:17px;letter-spacing:.2em;color:var(--amber)}.mm-diffhead{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.mm-diffcards{display:flex;gap:12px}.mm-diffcards .mm-btn{flex:1}#main-menu.on-diff .mm-stack{width:100%;max-width:640px;margin:0 auto}.mm-foot{position:absolute;left:8vw;bottom:26px;display:flex;gap:16px;align-items:baseline;font-family:Share Tech Mono,monospace;font-size:12px;color:var(--dim)}.mm-btn.mm-discord-btn{flex-direction:row;align-items:center;gap:12px;text-decoration:none;border-color:#5865f28c;background:#5865f224}.mm-btn.mm-discord-btn:hover{border-color:#5865f2;background:#5865f242}.mm-discord-btn svg{width:26px;height:26px;flex:none;color:#b9c0ff;transition:color .15s}.mm-discord-btn:hover svg{color:#fff}.mm-btn-col{display:flex;flex-direction:column;gap:2px;min-width:0}.mm-btn-sub{font-size:11px;font-weight:600;letter-spacing:.08em;color:var(--dim);text-transform:none}.mm-btn.mm-getapp{flex-direction:row;align-items:center;gap:12px;text-decoration:none;border-color:#3ddc8480;background:#3ddc841f}.mm-btn.mm-getapp:hover{border-color:#3ddc84;background:#3ddc8438}.mm-getapp-icon{font-size:22px;line-height:1;flex:none}.mm-btn.mm-getapp-soon{border-color:#ffffff24;background:#ffffff0d;cursor:default;opacity:.8}.mm-btn.mm-getapp-soon:hover{transform:none;border-color:#ffffff24;background:#ffffff0d}.mm-feat{display:flex;flex-direction:column;gap:8px;padding:16px 22px 18px}.mm-feat-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.mm-feat-name{font-size:21px;font-weight:700;letter-spacing:.16em;color:var(--blue)}#mm-feat-canvas{display:block;width:100%;height:clamp(150px,26vh,240px);cursor:pointer}.mm-feat-tag{font-size:13px;font-weight:600;letter-spacing:.04em;color:var(--dim)}.mm-feat-stats{display:grid;grid-template-columns:1fr 1fr;gap:7px 22px;margin-top:4px}.mm-stat{display:grid;grid-template-columns:76px 1fr;align-items:center;gap:10px}.mm-stat-k{font-size:10px;font-weight:700;letter-spacing:.18em;color:var(--dim)}.mm-stat-bar{height:5px;background:#ffffff14;border-radius:2px;overflow:hidden}.mm-stat-bar i{display:block;height:100%;border-radius:2px;background:linear-gradient(90deg,#2f76b8,var(--blue));transition:width .4s ease}.mm-cards{display:flex;gap:14px;align-items:stretch}.mm-card{flex:1;min-width:0;padding:13px 18px;display:flex;flex-direction:column;gap:7px}.mm-card ul{margin:0;padding-left:16px;font-size:12.5px;font-weight:600;color:var(--dim);line-height:1.65}.mm-howto{position:absolute;top:0;right:0;bottom:0;left:0;display:none;align-items:center;justify-content:center;background:#07101ccc;z-index:2}.mm-howto.shown{display:flex}.mm-howto-panel{width:min(680px,90vw);max-height:84vh;overflow:auto;padding:26px 30px}.mm-howto-title{font-size:20px;font-weight:700;letter-spacing:.26em;color:var(--blue)}.mm-howto-aim{font-size:14px;font-weight:600;color:var(--text);margin:10px 0 20px;line-height:1.5}.mm-howto-grid{display:grid;grid-template-columns:130px 1fr;gap:11px 18px;align-items:baseline}.mm-ctl-k{font-size:12px;font-weight:700;letter-spacing:.14em;color:var(--amber);text-align:right}.mm-ctl-v{font-size:13px;font-weight:600;color:var(--dim);line-height:1.4}.mm-howto .mm-back{margin-top:22px;width:140px;text-align:center;align-items:center}.mm-mp-conn{font-size:11px;font-weight:700;letter-spacing:.16em;color:var(--dim);margin-left:auto}.mm-mp-conn.mm-mp-err{color:var(--red);letter-spacing:.04em;font-weight:600}.mm-codebox{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:#0000006b;border:1px solid var(--line-2);border-radius:10px;padding:10px 16px}.mm-codebox .mm-sub{margin:0}.mm-code-val{font-family:Share Tech Mono,monospace;font-size:26px;letter-spacing:.28em;color:var(--amber);text-shadow:0 0 18px rgba(255,194,94,.4)}.mm-code-copy{font-family:Rajdhani,sans-serif;font-size:10px;font-weight:700;letter-spacing:.16em;color:var(--blue);cursor:pointer;padding:5px 9px;border-radius:6px;background:#5ab2ff1a;border:1px solid rgba(90,178,255,.45);transition:all .15s}.mm-code-copy:hover{background:#5ab2ff3d;border-color:var(--blue)}.mm-codebox .mm-bf-note{margin-left:auto}.mm-mp-row{display:flex;gap:10px}.mm-mp-row .ag-input{flex:1}.mm-mp-code{max-width:120px;text-transform:uppercase;letter-spacing:.2em;text-align:center}.mm-mp-status{min-height:18px;font-size:12.5px;font-weight:600;color:var(--amber)}.mm-mp-full{width:100%;text-align:center;align-items:center}#main-menu.on-diff .mm-stack.mm-mp-wide{max-width:1020px}#mp-lobbyform,#mp-room{display:flex;flex-direction:column;gap:10px}.mm-lobby-actions{align-items:stretch}.mm-lobby-actions #mp-name{flex:1;min-width:0}.mm-lobby-actions .mm-btn{flex:none;flex-direction:row;align-items:center;padding:10px 18px;font-size:15px}.mm-btn.mm-searching{border-color:var(--amber);color:var(--amber);background:#ffc25e1f}.mm-vis-toggle{display:flex;flex:none;border:1px solid var(--line-2);border-radius:9px;overflow:hidden}.mm-vis-toggle button{font-family:Rajdhani,sans-serif;font-size:11px;font-weight:700;letter-spacing:.18em;color:var(--dim);background:#0d131bd1;border:0;padding:0 14px;cursor:pointer;transition:all .15s}.mm-vis-toggle button.sel{color:var(--blue);background:#5ab2ff29}.mm-lobby-grid{display:grid;grid-template-columns:230px 1fr 310px;gap:10px;align-items:stretch}.mm-lobby-col{display:flex;flex-direction:column;gap:10px;min-width:0}.mm-lobby-grid .mm-lobby-col{height:328px}.mm-lobby-grid .mm-lobby-col .mm-lobby-panel{height:auto;flex:1;min-height:0}.mm-lobby-grid .mm-lobby-col .mm-lobby-lb{flex:none;max-height:66%}.mm-lobby-lb .mm-lobby-list{gap:4px}.mm-lb-row{display:flex;align-items:center;gap:8px;flex:none;font-size:12.5px;font-weight:700;letter-spacing:.05em}.mm-lb-rank{flex:none;width:16px;text-align:right;font-size:10.5px;color:var(--dim)}.mm-lb-row.top .mm-lb-rank{color:var(--amber)}.mm-lb-row .nm{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mm-lb-rating{margin-left:auto;flex:none;font-size:12px;letter-spacing:.08em;color:var(--amber)}.mm-rating-badge{align-self:center;flex:none;display:inline-flex;align-items:center;font-size:12px;font-weight:700;letter-spacing:.1em;color:var(--amber);padding:3px 9px;border-radius:6px;border:1px solid rgba(255,194,94,.45);background:#ffc25e14}.mm-lobby-panel{display:flex;flex-direction:column;gap:8px;min-width:0;box-sizing:border-box;padding:12px 14px;border-radius:9px;background:#0d131bd1;border:1px solid var(--line-2)}.mm-lobby-grid .mm-lobby-panel{height:328px}.mm-lobby-panel .mm-sub{margin:0}.mm-lobby-list{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.mm-lobby-empty{font-size:12px;font-weight:600;letter-spacing:.04em;color:#5d6c7c}.mm-roster-row{display:flex;align-items:center;gap:8px;flex:none;font-size:14.5px;font-weight:700;letter-spacing:.07em}.mm-roster-row .nm{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mm-chip{margin-left:auto;flex:none;font-size:9px;font-weight:700;letter-spacing:.16em;padding:2px 7px;border-radius:5px;border:1px solid var(--line-2);color:var(--dim)}.mm-chip-lobby{color:var(--green);border-color:#62e29373}.mm-chip-queued{color:var(--amber);border-color:#ffc25e73}.mm-chip-room{color:var(--blue);border-color:#5ab2ff73}.mm-chip-playing{color:var(--red);border-color:#ff645773}.mm-game-row{display:flex;align-items:center;gap:10px;flex:none;padding:7px 10px;border-radius:7px;background:#00000052;border:1px solid var(--line-2)}.mm-game-host{font-size:15px;font-weight:700;letter-spacing:.07em;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mm-game-map{flex:none;font-size:9.5px;font-weight:700;letter-spacing:.14em;color:var(--dim);padding:2px 7px;border-radius:5px;border:1px solid var(--line-2)}.mm-game-map.rand{color:var(--amber);border-color:#ffc25e66}.mm-game-n{flex:none;margin-left:auto;font-size:11px;font-weight:700;letter-spacing:.1em;color:var(--dim)}.mm-game-join{flex:none}.mm-join-code{flex:none;flex-direction:row;align-items:center;padding:8px 14px;font-size:12px;letter-spacing:.16em}.mm-chat-log{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600;line-height:1.35}.mm-chat-line{flex:none;overflow-wrap:anywhere;color:var(--text)}.mm-chat-line b{color:var(--blue);letter-spacing:.06em;margin-right:6px}.mm-chat-line b:after{content:":"}.mm-chat-in{flex:none}.mm-room-chat{height:180px}@media (max-width: 900px){.mm-lobby-grid{grid-template-columns:1fr}.mm-lobby-grid .mm-lobby-panel{height:220px}.mm-lobby-grid .mm-lobby-col{height:auto}.mm-lobby-grid .mm-lobby-col .mm-lobby-panel{height:220px;flex:none}.mm-lobby-grid .mm-lobby-col .mm-lobby-lb{height:auto;max-height:220px}}.camp-hub,.camp-ops{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:none;flex-direction:column;box-sizing:border-box;padding:calc(20px + var(--sat)) calc(clamp(20px,4vw,56px) + var(--sar)) calc(20px + var(--sab)) calc(clamp(20px,4vw,56px) + var(--sal))}.camp-hub.shown,.camp-ops.shown{display:flex}.camp-hub>:not(.cmd-bg),.camp-ops>:not(.cmd-bg){position:relative;z-index:1}.camp-scan{position:relative}.camp-scan:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;border-radius:inherit;background:repeating-linear-gradient(0deg,rgba(255,255,255,.028) 0 1px,transparent 1px 3px)}.camp-hub-head{flex:none;display:flex;align-items:center;gap:20px;margin-bottom:14px}.camp-hub-title{font-size:22px;font-weight:700;letter-spacing:.22em;color:var(--text)}.camp-hub-sub{font-size:12px;letter-spacing:.3em;color:var(--blue);margin-left:12px}.camp-hub-prog{margin-left:auto;display:flex;align-items:center;gap:12px}.camp-prog-text{font-family:Share Tech Mono,monospace;font-size:12px;color:var(--dim);letter-spacing:.12em}.camp-progress{width:180px;height:7px;border-radius:4px;background:var(--glass-2);border:1px solid var(--line);overflow:hidden}.camp-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--green));opacity:.75;transition:width .4s ease}.camp-hub-body{flex:1;min-height:0;display:flex;gap:20px;align-items:stretch}.camp-map{flex:1;min-width:0;border:1px solid var(--line);border-radius:10px;background:#07101c8c;overflow:hidden;display:flex;align-items:center;justify-content:center}.camp-world{position:relative;width:100%;height:100%}.camp-world canvas,.camp-world svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.camp-world canvas{object-fit:contain}.camp-coming{font-family:Rajdhani,sans-serif;font-size:20px;font-weight:700;letter-spacing:.34em;fill:var(--dim);opacity:.6}.camp-cellbox{fill:none;pointer-events:none;stroke:#96cdffd9;stroke-width:2;opacity:0;transition:opacity .12s}.camp-cellbox.shown{opacity:1}.camp-route{fill:none;stroke:#5ab2ff8c;stroke-width:3.5;stroke-dasharray:12 12;stroke-linejoin:round;animation:campRoute 1.2s linear infinite}@keyframes campRoute{to{stroke-dashoffset:-24}}.camp-cap{pointer-events:none}.camp-cap text{paint-order:stroke;stroke:#040a12cc;stroke-width:4px}.camp-cap-star{font-size:30px}.camp-cap-name{font-family:Rajdhani,sans-serif;font-size:20px;font-weight:700;letter-spacing:.12em}.camp-cap-role{font-family:Rajdhani,sans-serif;font-size:13px;font-weight:700;letter-spacing:.18em;opacity:.85}.camp-cap-blue text{fill:#7cc0ff}.camp-cap-red text{fill:#ff8a80}.camp-node{cursor:pointer}.camp-node-hit{fill:transparent}.camp-node-ring{fill:#0a111aeb;stroke:var(--blue);stroke-width:3;transition:all .15s}.camp-node-num{font-family:Share Tech Mono,monospace;font-size:26px;fill:var(--text)}.camp-node-name{font-family:Rajdhani,sans-serif;font-size:21px;font-weight:700;letter-spacing:.14em;fill:#cfe2f5;paint-order:stroke;stroke:#040a12d9;stroke-width:4px}.camp-node:hover .camp-node-ring{stroke-width:5;filter:drop-shadow(0 0 6px rgba(90,178,255,.8))}.camp-node-cleared .camp-node-ring{stroke:var(--green)}.camp-node-cleared .camp-node-num{fill:var(--green)}.camp-node-sel .camp-node-ring{stroke:var(--amber);stroke-width:4.5;filter:drop-shadow(0 0 8px rgba(255,194,94,.7))}.camp-node-sel .camp-node-num,.camp-node-sel .camp-node-name{fill:var(--amber)}.camp-node-pulse{fill:none;stroke:var(--amber);stroke-width:2}.camp-node-locked{cursor:default;pointer-events:none}.camp-node-locked .camp-node-ring{stroke:var(--line-2)}.camp-node-locked .camp-node-num{fill:var(--dim);opacity:.55}.camp-detail{width:330px;flex:none;border-radius:10px;padding:22px;display:flex;flex-direction:column;gap:12px;overflow:auto}.camp-detail-name{font-size:28px;font-weight:700;color:var(--text);line-height:1.1}.camp-detail-tags{display:flex;gap:8px;flex-wrap:wrap}.camp-chip{font-family:Share Tech Mono,monospace;font-size:11px;letter-spacing:.08em;color:var(--blue);background:#5ab2ff1a;border:1px solid rgba(90,178,255,.35);border-radius:4px;padding:4px 9px}.camp-chip-threat{color:var(--amber);background:#ffc25e14;border-color:#ffc25e59}.camp-detail-brief{font-size:14px;color:var(--text);line-height:1.6}.camp-detail-obj{font-size:13px;color:var(--text);line-height:1.5;background:var(--glass-2);border:1px solid var(--line);border-radius:6px;padding:10px 12px}.camp-detail-obj .mm-sub{display:block;margin-bottom:4px}.camp-detail #camp-deploy{margin-top:auto;width:100%;text-align:center;align-items:center;justify-content:center}.camp-cinema{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;display:none;background:#000}.camp-cinema.shown{display:block;animation:cinIn .6s ease both}@keyframes cinIn{0%{opacity:0}}#camp-cin-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain}.camp-cin-scan{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(255,255,255,.02) 0 1px,transparent 1px 3px)}.camp-cin-scan:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(120% 120% at 50% 50%,transparent 62%,rgba(0,0,0,.5))}.camp-cin-top{position:absolute;left:0;right:0;top:0;display:flex;align-items:center;justify-content:space-between;box-sizing:border-box;padding:calc(16px + var(--sat)) calc(24px + var(--sar)) 14px calc(24px + var(--sal));font-family:Share Tech Mono,monospace;font-size:11px;letter-spacing:.24em;background:linear-gradient(rgba(0,0,0,.55),transparent)}.camp-cin-live{display:flex;align-items:center;gap:9px;color:#e8f2fc}.camp-cin-src{color:var(--dim)}.camp-cin-corners i{position:absolute;width:26px;height:26px;opacity:.5;border:1px solid rgba(150,205,255,.9)}.camp-cin-corners i:nth-child(1){left:14px;top:calc(14px + var(--sat));border-right:0;border-bottom:0}.camp-cin-corners i:nth-child(2){right:14px;top:calc(14px + var(--sat));border-left:0;border-bottom:0}.camp-cin-corners i:nth-child(3){left:14px;bottom:calc(14px + var(--sab));border-right:0;border-top:0}.camp-cin-corners i:nth-child(4){right:14px;bottom:calc(14px + var(--sab));border-left:0;border-top:0}.camp-cin-bottom{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:22px;box-sizing:border-box;padding:14px calc(24px + var(--sar)) calc(16px + var(--sab)) calc(24px + var(--sal));background:linear-gradient(transparent,#0000008c)}.camp-cin-progress{flex:1;height:2px;background:#96cdff2e}.camp-cin-progress i{display:block;height:100%;width:0;background:var(--blue);box-shadow:0 0 6px #5ab2ffcc}.camp-cin-skip,.camp-cin-play{font-family:Share Tech Mono,monospace;letter-spacing:.2em;color:#cfe2f5;background:#0a111a8c;border:1px solid rgba(150,205,255,.4);border-radius:4px;cursor:pointer;transition:all .15s}.camp-cin-skip{flex:none;font-size:11px;padding:8px 14px}.camp-cin-skip:hover,.camp-cin-play:hover{border-color:var(--blue);color:#fff;background:#1c3450b3;box-shadow:0 0 14px #5ab2ff59}.camp-cin-play{display:none;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:15px;padding:16px 30px}.camp-cin-play.shown{display:block}.camp-ops-head{flex:none;display:flex;align-items:baseline;justify-content:space-between;font-family:Share Tech Mono,monospace;font-size:13px;letter-spacing:.18em;color:var(--amber);margin-bottom:16px}.camp-ops-class{font-size:10px;color:var(--dim);letter-spacing:.28em}.camp-ops-body{flex:1;min-height:0;display:flex;gap:20px}.camp-ops-main{flex:1.2;min-width:0;border-radius:10px;padding:26px 30px;display:flex;flex-direction:column;gap:12px;overflow:auto}.camp-ops-main>*{flex:none}.camp-ops-name{font-size:clamp(30px,4.2vw,44px);font-weight:700;line-height:1.04;letter-spacing:.03em;color:var(--text);text-transform:uppercase}.camp-ops-divider{flex:none;height:1px;margin:8px 0 2px;background:linear-gradient(90deg,var(--line-2),transparent 70%)}.camp-ops-sitrep{font-family:Share Tech Mono,monospace;font-size:14px;color:var(--text);line-height:1.75;min-height:96px}.camp-typing:after{content:"▌";color:var(--green);animation:campBlink .8s steps(2,start) infinite}@keyframes campBlink{to{opacity:0}}.camp-feed-dot{width:7px;height:7px;border-radius:50%;background:var(--red);animation:campBlink 1.6s steps(2,start) infinite}.camp-ops-note{align-self:flex-start;font-family:Share Tech Mono,monospace;font-size:12px;letter-spacing:.04em;color:var(--amber);line-height:1.6;padding:10px 14px;border-left:2px solid rgba(255,194,94,.55);background:#ffc25e0f}.camp-ops-replay{align-self:flex-start;margin-top:auto;font-family:Share Tech Mono,monospace;font-size:11px;letter-spacing:.18em;color:var(--dim);background:none;border:1px solid var(--line);border-radius:4px;padding:8px 14px;cursor:pointer;transition:all .15s}.camp-ops-replay:hover{color:#cfe2f5;border-color:#96cdff80}.camp-ops-side{width:min(380px,34vw);flex:none;display:flex;flex-direction:column;gap:16px}.camp-ops-tac{border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:10px}.camp-ops-tac-head{display:flex;align-items:baseline;justify-content:space-between}.camp-ops-tac-head span:last-child{font-family:Share Tech Mono,monospace;font-size:11px;letter-spacing:.16em;color:var(--blue)}.camp-ops-tacview{position:relative;aspect-ratio:1;border-radius:6px;overflow:hidden;border:1px solid var(--line);min-height:0}#camp-ops-map{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.camp-ops-reticle{position:absolute;left:50%;top:50%;width:34%;aspect-ratio:1;transform:translate(-50%,-50%);pointer-events:none;animation:opsReticle 2.6s ease-in-out infinite}.camp-ops-reticle:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:1px solid rgba(255,194,94,.85);box-shadow:0 0 12px #ffc25e59,inset 0 0 12px #ffc25e33}.camp-ops-reticle:after{content:"";position:absolute;left:50%;top:50%;width:140%;height:140%;transform:translate(-50%,-50%);background:linear-gradient(#ffc25ecc,#ffc25ecc) 50% 0 / 1px 18% no-repeat,linear-gradient(#ffc25ecc,#ffc25ecc) 50% 100% / 1px 18% no-repeat,linear-gradient(#ffc25ecc,#ffc25ecc) 0 50% / 18% 1px no-repeat,linear-gradient(#ffc25ecc,#ffc25ecc) 100% 50% / 18% 1px no-repeat}@keyframes opsReticle{0%,to{opacity:.95}50%{opacity:.55}}.camp-ops-objectives{flex:1;border-radius:10px;padding:16px 18px;overflow:auto}.camp-obj{display:flex;gap:10px;align-items:baseline;font-size:14px;color:var(--text);line-height:1.5;margin-top:10px}.camp-obj b{letter-spacing:.08em;color:var(--blue);font-weight:700}.camp-obj-box{font-family:Share Tech Mono,monospace;color:var(--blue)}.camp-obj-bonus{color:var(--dim)}.camp-obj-bonus b,.camp-obj-bonus .camp-obj-box{color:var(--amber)}.camp-brief-actions{flex:none;display:flex;justify-content:space-between;margin-top:18px}.camp-brief-actions .mm-btn{width:300px;text-align:center;align-items:center;justify-content:center}.camp-brief-actions .mm-back{width:150px}html.touch-ui .camp-hub,html.touch-ui .camp-ops{padding:calc(8px + var(--sat)) calc(12px + var(--sar)) calc(8px + var(--sab)) calc(12px + var(--sal))}html.touch-ui .camp-hub-head{gap:10px;margin-bottom:8px}html.touch-ui .camp-hub-title{font-size:15px}html.touch-ui .camp-hub-sub{font-size:10px;margin-left:8px}html.touch-ui .camp-progress{width:100px}html.touch-ui .camp-prog-text{font-size:10px}html.touch-ui .camp-hub-body{gap:10px}html.touch-ui .camp-detail{width:240px;padding:12px;gap:8px}html.touch-ui .camp-detail #camp-deploy{position:sticky;bottom:0;flex:none;box-shadow:0 -10px 18px #070c1499}html.touch-ui .camp-detail-name{font-size:19px}html.touch-ui .camp-detail-brief{font-size:12px}html.touch-ui .camp-detail-obj{font-size:11px}html.touch-ui .camp-node-name{font-size:15px}html.touch-ui .camp-ops-head{font-size:10px;margin-bottom:8px}html.touch-ui .camp-ops-main{padding:14px 16px;gap:8px}html.touch-ui .camp-ops-name{font-size:24px}html.touch-ui .camp-ops-sitrep{font-size:12px;min-height:60px}html.touch-ui .camp-ops-note{font-size:11px;padding:7px 10px}html.touch-ui .camp-ops-side{width:168px;gap:8px}html.touch-ui .camp-ops-tac{padding:8px;gap:6px}html.touch-ui .camp-ops-tac-head .mm-sub{font-size:9px}html.touch-ui .camp-ops-objectives{padding:8px 10px}html.touch-ui .camp-obj{font-size:11px;margin-top:5px}html.touch-ui .camp-brief-actions{margin-top:8px}html.touch-ui .camp-brief-actions .mm-btn{width:230px;font-size:13px;padding:10px 12px}html.touch-ui .camp-brief-actions .mm-back{width:140px}html.touch-ui .camp-cin-top{font-size:9px;letter-spacing:.18em}html.touch-ui .camp-cin-skip{font-size:10px;padding:7px 11px}#game-over{position:absolute;top:0;right:0;bottom:0;left:0;z-index:45;display:flex;align-items:center;justify-content:center;background:#07101c9e;font-family:Rajdhani,sans-serif;animation:goFade .5s ease both}@keyframes goFade{0%{opacity:0}}.go-panel{padding:40px 56px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}.go-result{font-size:64px;font-weight:700;letter-spacing:.14em;text-shadow:0 3px 24px rgba(0,0,0,.7)}.go-sub{font-size:14px;font-weight:700;letter-spacing:.24em;color:var(--dim);text-transform:uppercase}.go-actions{display:flex;gap:12px;margin-top:24px}.go-btn{font-family:Rajdhani,sans-serif;font-size:15px;font-weight:700;letter-spacing:.2em;color:var(--text);cursor:pointer;padding:12px 28px;border-radius:8px;background:#ffffff0f;border:1px solid var(--line-2);transition:all .15s}.go-btn:hover{background:#5ab2ff29;border-color:var(--blue)}.go-btn.go-primary{background:linear-gradient(135deg,#5ab2ff4d,#1d5b963d);border-color:#5ab2ff99}.go-btn.go-primary:hover{background:linear-gradient(135deg,#5ab2ff6b,#1d5b9652)}.db-panel{max-width:540px;text-align:left;align-items:flex-start}.db-panel .go-result{font-size:40px}.db-name{font-size:16px;font-weight:700;letter-spacing:.26em;color:#dfeaf5}.db-objectives{margin:10px 0 4px;align-self:stretch}.db-obj{display:flex;align-items:baseline;gap:9px;padding:2px 0;font-size:14px;font-weight:600;color:#dfeaf5}.db-obj .db-box{color:var(--green);font-family:Share Tech Mono,monospace}.db-obj.db-missed{opacity:.5}.db-obj.db-missed .db-box{color:var(--dim)}.db-obj .db-prog{font-family:Share Tech Mono,monospace;font-size:12px;color:var(--dim)}.db-obj.db-bonus .db-box{color:var(--amber)}.db-time{font-family:Share Tech Mono,monospace;font-size:12px;letter-spacing:.18em;color:var(--blue);margin-top:2px}.db-line{font-size:14px;font-weight:500;font-style:italic;color:#bcd2e8;border-left:2px solid var(--amber);padding-left:12px;margin-top:10px;max-width:440px}html.touch-ui .db-panel{max-width:460px;padding:16px 26px 18px}html.touch-ui .db-panel .go-result{font-size:26px}html.touch-ui .db-panel .go-actions{margin-top:8px}html.touch-ui .db-obj,html.touch-ui .db-line{font-size:12px}#wt-overlay{position:fixed;left:0;right:0;bottom:152px;z-index:24;display:flex;justify-content:center;pointer-events:none;font-family:Rajdhani,sans-serif}.wt-box{pointer-events:auto;width:min(560px,calc(100vw - 40px));background:#080c11e6;border:1px solid rgba(90,178,255,.5);border-radius:10px;padding:14px 22px 16px;box-shadow:0 12px 40px #00000080;text-align:center;animation:evtin .35s ease both}.wt-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:8px}.wt-step,.wt-name{font-size:10px;font-weight:700;letter-spacing:.3em}.wt-step{color:var(--blue)}.wt-name{color:var(--dim)}.wt-text{font-size:15px;font-weight:600;color:var(--text);line-height:1.5;min-height:3em}.wt-text b{color:var(--amber);font-weight:700}.wt-bar{margin-top:12px;height:3px;border-radius:2px;background:#ffffff14;overflow:hidden}.wt-bar-fill{height:100%;width:0;background:var(--blue);transition:width .4s ease}.wt-skip{margin-top:12px;font-family:Rajdhani,sans-serif;font-size:11px;font-weight:700;letter-spacing:.2em;color:var(--dim);background:#ffffff0f;border:1px solid var(--line-2);border-radius:6px;padding:6px 14px;cursor:pointer}.wt-skip:hover{color:var(--text);border-color:var(--blue)}html.touch-ui #wt-overlay{bottom:calc(78px + var(--sab))}html.touch-ui body:has(#place-bar.visible) #wt-overlay{display:none}html.touch-ui .wt-box{position:relative;width:clamp(300px,calc(100vw - 480px),380px);padding:8px 12px 10px}html.touch-ui .wt-name{display:none}html.touch-ui .wt-head{margin-bottom:5px}html.touch-ui .wt-text{font-size:12px;line-height:1.45;min-height:0}html.touch-ui .wt-bar{display:none}html.touch-ui .wt-skip{position:absolute;top:5px;right:8px;margin:0;padding:5px 9px}#wt-focus{position:fixed;z-index:23;pointer-events:none;border-radius:999px;border:2px solid var(--amber);box-shadow:0 0 14px #ffc25e80,0 0 0 2px #00000059;animation:wtPulse 1.5s ease-in-out infinite}#wt-focus.rect{border-radius:10px;border-style:dashed}#wt-focus.off{border:2px solid var(--amber);border-radius:999px;background:#080c118c;box-shadow:0 0 24px #ffc25e99,inset 0 0 16px #ffc25e38,0 0 0 2px #00000059;animation:wtBeacon 1.1s ease-in-out infinite}#wt-focus.off:before,#wt-focus.off:after{content:"";position:absolute;left:50%;top:50%;width:34px;height:30px;background:var(--amber);clip-path:polygon(0 0,52% 0,100% 50%,52% 100%,0 100%,48% 50%);filter:drop-shadow(0 0 9px rgba(255,194,94,.85)) drop-shadow(0 2px 3px rgba(0,0,0,.6));animation:wtMarch .9s ease-in-out infinite}#wt-focus.off:before{--wt-lead: -22px}#wt-focus.off:after{--wt-lead: 6px;animation-delay:.12s}#wt-focus.hidden{display:none}@keyframes wtPulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.07);opacity:.62}}@keyframes wtBeacon{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.09);opacity:.78}}@keyframes wtMarch{0%,to{transform:translate(-50%,-50%) rotate(var(--wt-angle, 0rad)) translate(var(--wt-lead, 0px));opacity:.55}55%{transform:translate(-50%,-50%) rotate(var(--wt-angle, 0rad)) translate(calc(var(--wt-lead, 0px) + 16px));opacity:1}}.objective-toast{position:fixed;top:64px;left:50%;transform:translate(-50%);z-index:22;font-family:Rajdhani,sans-serif;font-weight:700;letter-spacing:.24em;font-size:15px;color:var(--amber);background:#080c11b8;border:1px solid rgba(255,194,94,.4);border-radius:6px;padding:9px 22px;pointer-events:none;transition:opacity 1s ease;text-shadow:0 2px 8px #000;animation:evtin .4s ease both}#mission-objectives{position:fixed;top:104px;left:50%;transform:translate(-50%);z-index:21;min-width:268px;max-width:360px;padding:9px 15px 8px;font-family:Rajdhani,sans-serif;pointer-events:none;animation:evtin .4s ease both}#mission-objectives .mo-title{font-size:10px;letter-spacing:.28em;font-weight:700;color:var(--blue);opacity:.85;margin-bottom:5px}#mission-objectives .mo-item{display:flex;align-items:center;gap:8px;padding:2px 0;font-size:13px;font-weight:600;letter-spacing:.01em;color:#dfeaf5}#mission-objectives .mo-box{color:var(--amber);font-family:Share Tech Mono,monospace}#mission-objectives .mo-prog{margin-left:auto;padding-left:10px;font-size:12px;font-family:Share Tech Mono,monospace;color:var(--blue);opacity:.9}#mission-objectives .mo-item.mo-done,#mission-objectives .mo-item.mo-done .mo-box{color:var(--green)}#mission-objectives .mo-item.mo-done .mo-label{text-decoration:line-through;opacity:.8}#mission-objectives .mo-item.mo-failed,#mission-objectives .mo-item.mo-failed .mo-box{color:var(--red, #e5484d)}#mission-objectives .mo-item.mo-bonus{color:var(--amber);font-weight:500}#mission-objectives .mo-item.mo-bonus.mo-failed,#mission-objectives .mo-item.mo-bonus.mo-failed .mo-box{color:#8a93a0}#mission-objectives .mo-item.mo-bonus.mo-failed .mo-label{text-decoration:line-through;opacity:.7}html.touch-ui #mission-objectives{top:46px;left:8px;transform:none;min-width:0;max-width:300px;padding:6px 11px 5px}html.touch-ui #mission-objectives .mo-title{pointer-events:auto;cursor:pointer;margin-bottom:3px}html.touch-ui #mission-objectives .mo-item{font-size:11px;padding:1px 0}html.touch-ui #mission-objectives .mo-prog{font-size:10px}#mission-objectives.mo-collapsed .mo-item{display:none}#mp-menu,#kb-menu{position:absolute;top:0;right:0;bottom:0;left:0;display:none;align-items:center;justify-content:center;z-index:60;background:#07101c99;color:#cfe3d0;font:13px/1.7 SF Mono,Menlo,monospace}#kb-menu{z-index:61}.kb-row{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:7px 0}.kb-row span{font-size:12px;letter-spacing:1px;color:#9fc3a8}.kb-key{min-width:96px;background:#16301f;border:1px solid #5fa86f;color:#b9f0c4;cursor:pointer;font:700 12px SF Mono,Menlo,monospace;padding:6px 10px}.kb-key:hover{background:#1e4029}.mp-vol{display:flex;align-items:center;gap:10px;margin:10px 0}.mp-vol label{width:110px;font-size:11px;letter-spacing:1px;color:#9fc3a8}.mp-vol input{flex:1;accent-color:#5fa86f}.mp-vol .mp-pct{width:42px;text-align:right}.mp-vol select{flex:1;background:#0a1624;border:1px solid rgba(159,195,168,.4);color:#cfe3d0;font:13px SF Mono,Menlo,monospace;padding:6px 8px;outline:none;cursor:pointer}.mp-vol select:focus{border-color:#9fc3a8}.mp-vol input[type=checkbox]{flex:0 0 auto;width:18px;height:18px;accent-color:#5fa86f;margin-left:auto;cursor:pointer}#auth-gate{position:absolute;top:0;right:0;bottom:0;left:0;z-index:70;display:flex;align-items:center;justify-content:center;font-family:Rajdhani,sans-serif;animation:goFade .4s ease both}.ag-panel{position:relative;width:min(360px,90vw);padding:30px 28px;display:flex;flex-direction:column;gap:12px;background:#0d131beb}.ag-brand{font-size:34px;font-weight:700;letter-spacing:.12em;color:var(--text);text-align:center;margin-bottom:4px}.ag-brand b{color:var(--blue)}.ag-tabs{display:flex;gap:8px}.ag-tab{flex:1;font-family:Rajdhani,sans-serif;font-size:12px;font-weight:700;letter-spacing:.14em;color:var(--dim);background:transparent;border:none;border-bottom:2px solid var(--line);padding:8px 4px;cursor:pointer;transition:all .15s}.ag-tab:hover{color:var(--text)}.ag-tab.ag-on{color:var(--blue);border-bottom-color:var(--blue)}.ag-google{display:flex;align-items:center;justify-content:center;gap:10px;font-family:Rajdhani,sans-serif;font-size:15px;font-weight:700;letter-spacing:.04em;color:#1a1a1a;background:#fff;border:none;border-radius:8px;padding:11px;cursor:pointer;transition:opacity .15s}.ag-google:hover:not(:disabled){opacity:.9}.ag-or{display:flex;align-items:center;gap:10px;color:var(--dim);font-size:11px;letter-spacing:.2em}.ag-or:before,.ag-or:after{content:"";flex:1;height:1px;background:var(--line)}.ag-input{font-family:Rajdhani,sans-serif;font-size:15px;color:var(--text);background:#0a1018;border:1px solid var(--line-2);border-radius:8px;padding:11px 12px;outline:none;transition:border-color .15s}.ag-input:focus{border-color:var(--blue)}.ag-msg{min-height:16px;font-size:12px;font-weight:600;line-height:1.35}.ag-msg.ag-err{color:var(--red)}.ag-msg.ag-ok{color:var(--green)}.ag-submit{font-family:Rajdhani,sans-serif;font-size:15px;font-weight:700;letter-spacing:.18em;color:var(--text);border:1px solid rgba(90,178,255,.6);border-radius:8px;padding:12px;cursor:pointer;transition:all .15s;background:linear-gradient(135deg,#5ab2ff4d,#1d5b963d)}.ag-submit:hover:not(:disabled){background:linear-gradient(135deg,#5ab2ff6b,#1d5b9652)}.ag-link{font-family:Rajdhani,sans-serif;font-size:12px;font-weight:600;color:var(--dim);background:transparent;border:none;cursor:pointer;padding:2px}.ag-link:hover{color:var(--blue)}#auth-gate button:disabled,#auth-gate input:disabled{opacity:.5;cursor:default}.ag-signout{position:fixed;top:16px;right:18px;z-index:55;font-family:Rajdhani,sans-serif;font-size:11px;font-weight:700;letter-spacing:.18em;color:var(--dim);background:#0d131bb3;border:1px solid var(--line-2);border-radius:6px;padding:7px 12px;cursor:pointer;transition:all .15s}.ag-signout:hover{color:var(--text);border-color:var(--blue)}html.touch-ui #topbar{height:calc(38px + var(--sat));padding:var(--sat) calc(8px + var(--sar)) 0 calc(8px + var(--sal));align-items:center}html.touch-ui #logo .name{font-size:13px;letter-spacing:.12em}html.touch-ui .tb-seg{gap:7px;padding:0 9px;height:26px;align-items:center}html.touch-ui #topbar .lbl{font-size:9px;letter-spacing:.1em}html.touch-ui .tb-seg .num,html.touch-ui .tb-val,html.touch-ui #supply-val,html.touch-ui #buildings-val{font-size:14px;line-height:1}html.touch-ui #credits-val{font-size:15px;line-height:1}html.touch-ui #credits .rate{font-size:10px}html.touch-ui #menu-btn{padding:5px 12px;font-size:10px;letter-spacing:.18em}html.touch-ui #events{top:calc(86px + var(--sat))}html.touch-ui #fps-meter{top:calc(64px + var(--sat))}html.touch-ui .evt{font-size:11px;padding:3px 9px}html.touch-ui #minimap-wrap{box-sizing:border-box;width:96px;height:96px;top:calc(44px + var(--sat));right:calc(8px + var(--sar));padding:6px}html.touch-ui #bottombar{left:calc(8px + var(--sal));right:calc(8px + var(--sar));bottom:calc(6px + var(--sab));gap:6px}html.touch-ui #selection{height:auto;max-width:200px;padding:7px 10px}html.touch-ui .sel-state{gap:9px;flex-wrap:wrap}html.touch-ui .sel-col{flex:1 1 0;min-width:0}html.touch-ui #selection .panel-label{display:none}html.touch-ui .portrait{width:42px;height:42px;border-radius:6px}html.touch-ui .portrait svg{width:23px;height:23px}html.touch-ui .sel-name{font-size:13px;letter-spacing:.08em}html.touch-ui .sel-sub{display:none}html.touch-ui .hpbar{width:92px;height:5px;margin-top:5px}html.touch-ui .hp-num{font-size:9px;margin-top:2px}html.touch-ui .sel-divider{display:none}html.touch-ui .sel-aux{flex:0 0 100%;margin-left:0;margin-top:2px;gap:5px;padding:0;align-items:stretch;align-self:auto;max-width:none}html.touch-ui .sel-aux>.aux-line{display:none}html.touch-ui .sel-aux>.repair-line,html.touch-ui .sel-aux>.sell-line{display:flex;justify-content:space-between;min-height:34px;padding:0 9px;border:1px solid var(--line);border-radius:6px;background:#0a14228c;color:var(--text);letter-spacing:.1em;-webkit-tap-highlight-color:transparent}html.touch-ui .sel-aux>.sell-line.warnline{border-color:#ff5a5a80;background:#50141099;color:var(--red)}html.touch-ui .sel-aux .keycap{display:none}html.touch-ui .upg{min-width:0}html.touch-ui #selection{max-width:min(210px,calc(50vw - 118px))}html.touch-ui .group-grid{gap:6px}html.touch-ui .ugroup{width:52px;height:54px;gap:3px}html.touch-ui .ugroup svg{width:22px;height:22px}html.touch-ui .ugroup .ghp{width:34px}html.touch-ui .ugroup .cnt{top:2px;right:5px;font-size:11px}html.touch-ui .ugroup .tname{display:none}html.touch-ui #commandcard{width:min(224px,calc(50vw - 140px));padding:6px;margin-bottom:46px;overflow-y:auto;overscroll-behavior:contain;box-sizing:border-box;max-height:calc(100dvh - 200px - var(--sat) - var(--sab))}html.touch-ui #commandcard .note.plain{display:none}html.touch-ui .btn-grid{gap:4px}html.touch-ui .cbtn .key,html.touch-ui .pill.act .k,html.touch-ui .stance-btn .k{display:none}html.touch-ui .cbtn svg{width:18px;height:18px}html.touch-ui .cbtn .bname{font-size:7px}html.touch-ui .sec-lbl{font-size:8px;letter-spacing:.2em;margin:0 2px 4px}html.touch-ui .sec-lbl.mt{margin-top:4px}html.touch-ui .cbtn{aspect-ratio:auto;height:40px}html.touch-ui .cbtn.wide{height:40px}html.touch-ui .qslot{width:26px;height:26px}html.touch-ui #ctrlgroups{display:none}html.touch-ui #cmddock{bottom:calc(12px + var(--sab))}html.touch-ui.sel-active #cmddock,.rotate-guard{display:none}html.mobile-web .rotate-guard{position:fixed;top:0;left:0;width:100vw;height:100vh;width:100dvw;height:100dvh;z-index:9999;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:#07101c;color:var(--blue, #5ab2ff);font-family:Rajdhani,sans-serif;text-align:center;padding:calc(20px + var(--sat)) calc(20px + var(--sar)) calc(20px + var(--sab)) calc(20px + var(--sal))}@media (orientation: portrait){html.mobile-web .rotate-guard{display:flex}}.rotate-guard svg{width:76px;height:76px;animation:rotate-guard-tilt 2.4s ease-in-out infinite}.rotate-guard-title{font-size:22px;font-weight:700;letter-spacing:.22em;color:#eaf2ff}.rotate-guard-sub{font-size:14px;font-weight:600;letter-spacing:.04em;color:var(--dim, #7e94ad)}@keyframes rotate-guard-tilt{0%,40%{transform:rotate(0)}70%,to{transform:rotate(-90deg)}}html.touch-ui .mm-shell{overflow:hidden;gap:8px;padding:calc(10px + var(--sat)) calc(18px + var(--sar)) calc(10px + var(--sab)) calc(20px + var(--sal))}html.touch-ui .mm-top .mm-word{font-size:24px}html.touch-ui .mm-tagline{font-size:9px}html.touch-ui .mm-btn{font-size:15px}html.touch-ui .mm-btn:hover{transform:none}html.touch-ui .ag-signout{top:calc(12px + var(--sat));right:calc(14px + var(--sar))}body:has(.camp-hub.shown) .ag-signout,body:has(.camp-cinema.shown) .ag-signout,body:has(.camp-ops.shown) .ag-signout{display:none}html.touch-ui .mm-howto-panel{max-height:calc(100% - var(--sat) - var(--sab) - 28px)}html.touch-ui #main-menu:not(.on-diff) .mm-body{gap:18px;align-items:stretch}html.touch-ui #main-menu:not(.on-diff) .mm-stack{width:clamp(185px,32vw,230px);gap:5px;padding-right:16px;border-right:1px solid var(--line);align-self:stretch;justify-content:safe center;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior:contain}html.touch-ui #main-menu:not(.on-diff) .mm-stack .mm-btn{padding:8px 14px;font-size:14px}html.touch-ui #main-menu:not(.on-diff) .mm-stack .mm-btn.mm-play{font-size:15px}html.touch-ui #main-menu:not(.on-diff) .mm-stack .mm-btn-sub{display:none}html.touch-ui #main-menu:not(.on-diff) .mm-stack .mm-discord-btn svg{width:18px;height:18px}html.touch-ui #main-menu:not(.on-diff) .mm-rail-gap{height:2px}html.touch-ui #main-menu:not(.on-diff) .mm-stage{max-width:none;justify-content:center}html.touch-ui .mm-feat{flex:1;min-height:0;padding:10px 16px 12px}html.touch-ui #mm-feat-canvas{height:auto;flex:1;min-height:80px}html.touch-ui .mm-feat-name{font-size:17px}html.touch-ui .mm-feat-tag{font-size:11px}html.touch-ui .mm-feat-stats{gap:5px 14px}html.touch-ui #main-menu:not(.on-diff) .mm-foot{position:absolute;left:auto;right:calc(22px + var(--sar));bottom:calc(14px + var(--sab))}html.touch-ui #main-menu.on-diff .mm-body{align-items:center}html.touch-ui #main-menu.on-diff .mm-stack{max-width:none;gap:12px}html.touch-ui .mm-diffcards{gap:10px}html.touch-ui .mm-diffcards .mm-btn{padding:10px 12px}html.touch-ui #main-menu.on-diff .mm-top{display:none}html.touch-ui #main-menu.on-diff .mm-shell{padding:10px 14px 12px;gap:0}html.touch-ui #main-menu.on-diff .mm-stack{gap:8px;max-height:100%;overflow-y:auto}html.touch-ui #main-menu.on-diff .mm-stack>*{flex:none}html.touch-ui .mm-stage-kicker{display:none}html.touch-ui .mm-vs{grid-template-columns:1fr 52px 1fr}html.touch-ui .mm-vs-side{padding:8px 12px;gap:4px}html.touch-ui .mm-vs-name{font-size:16px}html.touch-ui .mm-vs-mid span{font-size:20px}html.touch-ui .mm-crest{width:26px;height:26px}html.touch-ui .mm-diff-n{font-size:15px}html.touch-ui .mm-taunt{font-size:11.5px}html.touch-ui .mm-bf{padding:8px 12px}html.touch-ui .mm-btn.mm-go{padding:11px;font-size:15px;position:sticky;bottom:0;background-color:#0b131d}html.touch-ui .mm-code-val{font-size:22px}html.touch-ui .mm-bfgrid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr))}html.touch-ui .mm-bfpick-panel{padding:14px 16px}html.touch-ui #main-menu.on-diff .mm-foot{display:none}
