:root{--bg:#060608;--panel:#0e0e14db;--line:#ffffff17;--text:#d8dce4;--dim:#8a90a0;--you:#40c4ff;--foe:#ff4e3a;--ore:#f0b946;--amber:#ffbe50;--pixel:"Silkscreen", monospace;--mono:"JetBrains Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font:13px/1.4 var(--mono);-webkit-user-select:none;user-select:none;margin:0;overflow:hidden}#view{cursor:crosshair;display:block;position:fixed;inset:0}body:after{content:"";pointer-events:none;background:radial-gradient(#0000 55%,#0000008c 100%);position:fixed;inset:0}.hud{z-index:2;position:fixed}body.demo .hud,.hidden{display:none!important}button{font:inherit;color:var(--text);border:1px solid var(--line);cursor:pointer;background:#ffffff0f;border-radius:3px;padding:4px 8px}button:hover{background:#ffffff21}button.on{border-color:var(--you);color:#fff;background:#40c4ff2e}button.on.hot{border-color:var(--amber);background:#ffbe502e}button.poor{opacity:.5}button em{color:var(--ore);margin-left:4px;font-style:normal}kbd{font:11px var(--mono);border:1px solid var(--line);background:#ffffff0d;border-bottom-width:2px;border-radius:3px;padding:0 4px}#topbar{border-bottom:1px solid var(--line);background:#08080ce6;align-items:center;gap:22px;padding:8px 14px;display:flex;top:0;left:0;right:0}.stat{white-space:nowrap;align-items:baseline;gap:6px;display:flex}.stat b{color:#fff;font-size:15px}.stat small{color:var(--dim)}.stat .lbl{color:var(--dim);font:10px var(--pixel);text-transform:uppercase;letter-spacing:.5px}.stat.bio i{background:var(--ore);width:9px;height:9px;box-shadow:0 0 8px var(--ore);align-self:center}.stat.bio b{color:var(--ore);font-size:18px}.stat.foe b{color:var(--foe)}.stat.speed button{padding:0 7px}.spacer{flex:1}button.ghost{background:0 0;border-color:#0000;font-weight:700}#buildbar{background:var(--panel);border:1px solid var(--line);border-radius:6px;flex-direction:column;gap:4px;width:138px;padding:6px;display:flex;top:50%;right:14px;transform:translateY(-50%)}#buildbar button{text-align:left;align-items:center;gap:7px;padding:5px 8px;display:flex}#buildbar button .name{flex:1}#buildbar button em{color:var(--ore);font-size:11px;font-style:normal}#buildbar button.tech{border-color:#d78cff59}#buildbar .key{font:10px var(--pixel);color:var(--dim);border:1px solid var(--line);border-radius:2px;padding:0 4px}#buildbar .name{font-family:var(--pixel);font-size:11px}#buildbar button.active{border-color:var(--you);background:#40c4ff38}#buildbar button.attack .name{color:var(--foe)}#buildbar .sep{background:var(--line);height:1px;margin:3px 2px}#panel{background:var(--panel);border:1px solid var(--line);border-radius:6px;width:270px;padding:12px;bottom:14px;right:14px}#panel h3{font:14px var(--pixel);color:var(--you);margin:0 0 8px}#panel h3.foe{color:var(--foe)}#panel h3 small{color:var(--dim);margin-left:6px;font-size:10px}#panel .row{align-items:center;gap:6px;margin:6px 0;display:flex}#panel .row>span{color:var(--dim);flex:1}#panel .row.units button{flex:1}#panel .hint{color:var(--dim);margin:6px 0;font-size:11px}.hpbar{background:#ffffff0f;border-radius:2px;height:14px;position:relative;overflow:hidden}.hpbar i{background:linear-gradient(90deg,#2a8a5a,#4cd08a);position:absolute;inset:0 auto 0 0}.hpbar span{padding-left:6px;font-size:10px;line-height:14px;position:relative}.prog{background:#ffffff0f;height:3px;margin:8px 0 2px}.prog i{background:var(--amber);height:100%;display:block}#minimap-wrap{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:4px;bottom:14px;left:14px}#minimap{width:256px;height:160px;image-rendering:pixelated;cursor:pointer;display:block}#toasts{z-index:3;pointer-events:none;flex-direction:column;align-items:center;gap:4px;display:flex;position:fixed;top:52px;left:50%;transform:translate(-50%)}.toast{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--dim);border-radius:3px;padding:5px 12px;transition:opacity .4s,transform .4s}.toast.warn{border-left-color:var(--foe)}.toast.good{border-left-color:#4cd08a}.toast.out{opacity:0;transform:translateY(-6px)}#paused{z-index:3;font:28px var(--pixel);letter-spacing:6px;color:#fff;text-shadow:0 0 20px #000000e6;pointer-events:none;position:fixed;top:40%;left:50%;transform:translate(-50%,-50%)}#overlay{z-index:5;background:#04040673;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.card{border:1px solid var(--line);background:#0a0a0ee6;border-radius:8px;width:min(640px,100vw - 32px);max-height:calc(100vh - 32px);padding:28px 32px;overflow:auto;box-shadow:0 20px 80px #0009}.card h1{font:44px var(--pixel);letter-spacing:4px;color:#fff;text-shadow:3px 3px 0 var(--foe), -3px -3px 0 var(--you);margin:0}.card h1.win{color:#4cd08a}.card h1.lose{color:var(--foe);text-shadow:3px 3px #000}.card h2{font:20px var(--pixel);margin:0 0 12px}.card .tag{color:var(--dim);margin:6px 0 18px}.card .how{margin:0 0 18px;padding-left:20px}.card .how li{margin:4px 0}.card .ore{color:var(--ore)}.diffs{gap:8px;margin:18px 0;display:flex}.diffs button{font:13px var(--pixel);flex:1;padding:10px}.diffs button.primary{border-color:var(--you);background:#40c4ff33}.controls{color:var(--dim);grid-template-columns:1fr 1fr;gap:4px 16px;font-size:12px;display:grid}.stats{border-collapse:collapse;width:100%;margin:8px 0}.stats td,.stats th{text-align:right;border-bottom:1px solid var(--line);padding:4px 8px}.stats td:first-child{text-align:left;color:var(--dim)}img.uicon{width:14px;height:14px;image-rendering:pixelated;vertical-align:-3px;margin-right:2px}.split{color:var(--dim);align-items:center;gap:6px;font-size:12px;display:flex}.stat small.warn,#panel b.warn{color:var(--amber)}.stat.evo b{color:#d78cff;font-size:12px}.stat.evo .mini{background:#ffffff14;align-self:center;width:46px;height:4px}.stat.evo .mini i{background:#d78cff;height:100%;display:block}.stat.evo.stalled b{color:var(--dim);text-decoration:line-through}#buildbar button.active,#buildbar button.strike.active{border-color:var(--you);background:#40c4ff38}#buildbar button.strike .name{color:#ff8a70}#buildbar button.strike.active{background:#ff6e5033;border-color:#ff8a70}body.targeting #view{cursor:cell}#panel{width:300px;max-height:calc(100vh - 80px);overflow-y:auto}#panel .row.units{grid-template-columns:1fr 1fr;gap:4px;display:grid}#panel button.unit{text-align:left;align-items:center;gap:4px;padding:4px 6px;display:flex}#panel button.unit span{flex:1}#panel button.unit.mixed{border-style:dashed}#panel button.unit.locked{opacity:.45}#panel .row.cmds button{flex:1}#panel .hint a{color:var(--you);cursor:pointer;text-decoration:underline}.research{flex-direction:column;gap:3px;margin-top:8px;display:flex}.research button.res{text-align:left;grid-template-columns:1fr auto;padding:4px 8px;display:grid}.research button.res .desc{color:var(--dim);grid-column:1/-1;font-size:10px}.research button.res small{color:var(--dim)}.research button.res.done{opacity:.55;border-color:#4cd08a80}.research button.res.hot{background:#d78cff26;border-color:#d78cff}.toast.link{pointer-events:auto;cursor:pointer}.toast.link:hover{background:#281414f2}#tip{z-index:10;pointer-events:none;background:#08080cf2;border:1px solid #ffffff29;border-radius:4px;max-width:320px;padding:8px 10px;font-size:11px;position:fixed;box-shadow:0 6px 24px #00000080}.th{font:12px var(--pixel);color:#fff;align-items:center;gap:4px;margin-bottom:4px;display:flex}.th small{color:var(--dim);font-family:var(--mono);margin-left:auto;font-size:10px}.tl{justify-content:space-between;gap:12px;padding:1px 0;display:flex}.tl span{color:var(--dim)}.tl b{color:var(--text);text-align:right;font-weight:400}.tl em,.tn em{color:#7dffb0;font-style:normal}.tn{color:var(--text);margin:4px 0 0}.tn.dim{color:var(--dim)}.tn.bad,.bad{color:#ff7a6a}.good{color:#4cd08a}i.sw{vertical-align:-1px;border-radius:2px;width:9px;height:9px;margin-right:5px;display:inline-block}#panel .info .th{font-size:13px}#scores{background:var(--panel);border:1px solid var(--line);border-radius:6px;min-width:170px;padding:4px;font-size:11px;top:44px;left:14px}.score{cursor:pointer;border-radius:3px;grid-template-columns:auto 1fr auto auto;align-items:center;gap:6px;padding:2px 4px;display:grid}.score:hover{background:#ffffff12}.score b{color:#fff;font-weight:400}.score small{color:var(--dim);text-align:right;min-width:44px}.score.dead{opacity:.4;text-decoration:line-through}.score.me span{color:var(--you)}.picker{flex-wrap:wrap;align-items:center;gap:4px;margin:14px 0 0;display:flex}.picker span{color:var(--dim);margin-right:6px}.picker button{min-width:32px}.stats tr.me td{color:var(--you)}.legend{grid-template-columns:1fr;gap:3px;margin:0 0 16px;font-size:12px;display:grid}.legend img.uicon{width:18px;height:18px}.legend span{color:var(--dim)}#build-btns{display:contents}#groups{gap:4px;display:flex;bottom:14px;left:50%;transform:translate(-50%)}#groups:empty{display:none}#groups button{background:var(--panel);align-items:center;gap:4px;padding:3px 7px;font-size:11px;display:flex}#groups button.on{border-color:var(--you);background:#40c4ff2e}#groups kbd{font-size:10px}#tutorial{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--amber);border-radius:6px;width:290px;padding:10px 12px;font-size:12px;bottom:196px;left:14px}#tutorial .th{justify-content:space-between}#tutorial .th button{padding:0 6px;font-size:10px}#tutorial ol{margin:6px 0 0;padding-left:18px}#tutorial li{color:var(--dim);margin:3px 0}#tutorial li.now{color:var(--text)}#tutorial li.done{opacity:.5;text-decoration:line-through}#tutorial li:not(.now) .more{display:none}.counters{margin:0 0 16px;font-size:12px}.counters h3{font:12px var(--pixel);margin:12px 0 4px}.counters .crow{border-bottom:1px solid #ffffff0a;grid-template-columns:170px 1fr;gap:8px;padding:2px 0;display:grid}.counters .crow small{color:var(--dim);margin-left:4px}.counters .crow .ans{color:var(--text)}.counters .crow .ans span+span:before{content:" · ";color:var(--dim)}.name-row.account{flex-wrap:wrap}.name-row.account .acts{gap:6px;margin-left:auto;display:flex}.name-row.account input#kingdom{width:190px}button.primary{border-color:var(--you);background:#40c4ff33}form.auth{flex-direction:column;gap:10px;display:flex}form.auth label{font:11px var(--pixel);color:var(--dim);text-transform:uppercase;flex-direction:column;gap:4px;display:flex}form.auth input{font:14px var(--mono);color:var(--text);border:1px solid var(--line);text-transform:none;background:#ffffff0f;border-radius:4px;padding:8px 10px}form.auth .bad:empty{display:none}.statgrid{grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0;display:grid}.statgrid div{border:1px solid var(--line);background:#ffffff0a;border-radius:4px;flex-direction:column;padding:8px 10px;display:flex}.statgrid b{color:#fff;font-size:18px}.statgrid span{color:var(--dim);font-size:11px}.card h3{font:12px var(--pixel);color:var(--dim);text-transform:uppercase;margin:14px 0 4px}.stats.recent td,.stats.recent th{font-size:11px}.card a[data-acct]{color:var(--you);cursor:pointer}.mp-row.invite input{text-transform:none;letter-spacing:0;flex:1;width:auto;min-width:200px;font-size:12px}.lobby-chat{border:1px solid var(--line);background:#ffffff05;border-radius:6px;margin:12px 0;padding:8px}.lobby-chat .log{min-height:60px;max-height:140px;margin-bottom:8px;font-size:12px;overflow-y:auto}.cl{padding:1px 0}.cl b{color:var(--you);font-weight:400}.cl.pm b{color:#d78cff}.chat-to,.chat-phrases,.chat-emojis{flex-wrap:wrap;align-items:center;gap:3px;margin-top:4px;display:flex}.chat-to .dim{margin-right:4px}.chat-phrases button{padding:2px 6px;font-size:11px}.chat-emojis button.emoji{padding:1px 5px;font-size:16px}#chat{pointer-events:none;width:360px;bottom:196px;left:14px}#chatlog .cl{background:var(--panel);border-radius:3px;margin:1px 0;padding:2px 8px;font-size:12px;display:inline-block}#chatlog{flex-direction:column;align-items:flex-start;display:flex}#chatbox{pointer-events:auto;border:1px solid var(--line);background:#0a0a0ef0;border-radius:6px;margin-top:6px;padding:8px}@media (width<=900px){#minimap-wrap{display:none}#topbar{gap:12px;font-size:11px;overflow-x:auto}.controls{grid-template-columns:1fr}}#inc.pos{color:#7dffb0}#inc.neg{color:#ff7a66}#tip hr{border:0;border-top:1px solid var(--line);margin:4px 0}#buildbar{width:150px}.bgroup{flex-direction:column;gap:3px;display:flex}.bgroup+.bgroup{margin-top:4px}.bhead{font:9px var(--pixel);color:var(--cat);letter-spacing:1px;text-transform:uppercase;opacity:.9;padding:0 2px}#buildbar button.build{border-left:3px solid var(--cat);gap:6px;padding:3px 6px}#buildbar button.build .key{margin-left:2px}img.bicon{width:14px;height:14px;image-rendering:pixelated}.research .rhead{font:9px var(--pixel);color:var(--cat);letter-spacing:1px;text-transform:uppercase;margin:6px 0 1px}.research button.res{border-left:3px solid var(--cat)}#panel{right:178px}@media (height<=700px){#buildbar{width:280px}.bgroup{grid-template-columns:1fr 1fr;display:grid}.bgroup .bhead{grid-column:1/-1}#panel{right:308px}}.name-row{align-items:center;gap:10px;margin:6px 0 14px;display:flex}.name-row label{font:11px var(--pixel);color:var(--dim);text-transform:uppercase}.name-row input,.mp-row input{border:1px solid var(--line);color:var(--text);font:14px var(--mono,"JetBrains Mono", monospace);background:#ffffff0f;border-radius:4px;width:180px;padding:6px 8px}.mp-row input{text-transform:uppercase;letter-spacing:2px;width:80px}.name-row .dim,.dim{color:var(--dim);font-size:11px}.tabs{border-bottom:1px solid var(--line);gap:4px;margin-bottom:12px;display:flex}.tabs button{font-family:var(--pixel);border-bottom:0;border-radius:4px 4px 0 0;padding:7px 16px;font-size:12px}.tabs button.on{border-color:var(--you);background:#40c4ff2e}#mp{min-height:150px}table.lobbies{border-collapse:collapse;width:100%;margin:10px 0;font-size:12px}table.lobbies th{text-align:left;color:var(--dim);border-bottom:1px solid var(--line);padding:4px;font-weight:400}table.lobbies td{border-bottom:1px solid #ffffff0a;padding:4px}.mp-row{flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0;display:flex}ul.players{grid-template-columns:1fr 1fr;gap:4px 16px;margin:10px 0;padding:0;list-style:none;display:grid}ul.players li{background:#ffffff0a;border-radius:3px;padding:4px 8px}b.code{font:20px var(--pixel);letter-spacing:4px;color:var(--you);-webkit-user-select:all;user-select:all}details{margin-top:14px}details summary{cursor:pointer;color:var(--dim);font-size:12px}button[disabled]{opacity:.45;cursor:default}.factions{flex-direction:column;gap:4px;margin:0;display:flex}.fcard{text-align:left;border-left:3px solid var(--fc,var(--line));align-items:center;gap:10px;padding:6px 10px 6px 8px;display:flex}.fcard .ftext{flex-direction:column;gap:1px;min-width:0;display:flex}.fcard b{font-family:var(--pixel);color:var(--fc,var(--text));font-size:11px}.fcard small{color:var(--dim);font-size:10.5px;line-height:1.3}.fcard .ficons{width:66px;font:16px var(--pixel);color:var(--dim);flex:none;justify-content:center;align-items:center;gap:1px;display:flex}.fcard .ficons img.uicon{width:20px;height:20px;image-rendering:pixelated}.fcard.on{background:color-mix(in srgb, var(--fc,var(--you)) 16%, transparent);border-color:var(--fc,var(--you))}.frules{color:var(--dim);margin:10px 0 0;padding-left:18px;font-size:11.5px}.frules li{margin:2px 0}.frules b{color:var(--fc)}.next{border:1px solid var(--line);border-left:3px solid var(--you);background:linear-gradient(90deg,#40c4ff1f,#40c4ff05);border-radius:6px;grid-template-columns:1fr auto;grid-template-areas:"head count""players count""acts acts";align-items:center;gap:6px 24px;margin:0 0 18px;padding:16px 20px;display:grid}.next.in{background:linear-gradient(90deg,#4cd08a24,#4cd08a05);border-left-color:#4cd08a}.next .nhead{flex-wrap:wrap;grid-area:head;align-items:baseline;gap:10px;display:flex}.next .nhead .lbl{font:10px var(--pixel);letter-spacing:2px;color:var(--you);text-transform:uppercase}.next.in .nhead .lbl{color:#4cd08a}.next .nhead b{font:18px var(--pixel);color:#fff}.next .ncount{font:11px var(--pixel);color:var(--dim);white-space:nowrap;text-align:right;flex-direction:column;grid-area:count;justify-content:center;align-items:flex-end;display:flex}.next .ncount b{color:#fff;font-size:34px;line-height:1.1}.next .ncount.soon b{color:var(--amber)}.next .nplayers{flex-wrap:wrap;grid-area:players;gap:4px;display:flex}.next .chip{background:#ffffff14;border-radius:10px;padding:2px 9px;font-size:12px}.next .chip.you{color:#fff;background:#40c4ff40}.next .chip.ai{color:var(--dim)}.next .chip.seat{color:var(--dim);border:1px dashed var(--line);background:0 0}.next .nacts{flex-wrap:wrap;grid-area:acts;align-items:center;gap:14px;margin-top:8px;display:flex}.next .nacts button{font:14px var(--pixel);letter-spacing:2px;padding:12px 30px}.next .nacts button.primary{color:#fff;background:#40c4ff42}.next .nacts button.primary:hover{background:#40c4ff61}.next .nacts .dim{margin-left:auto}.aux-fold summary{cursor:pointer;color:var(--dim);font-size:12px}.aux-fold .hint{margin:6px 0}.acct-box{border:1px solid var(--line);background:#ffffff08;border-radius:6px;gap:8px;margin:6px 0 14px;padding:10px 12px;display:grid}.acct-box .row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.acct-box .row>span:first-child{color:var(--dim);font:11px var(--pixel);text-transform:uppercase;min-width:70px}.acct-box form{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.acct-box input{font:13px var(--mono);color:var(--text);border:1px solid var(--line);background:#ffffff0f;border-radius:4px;width:200px;padding:6px 8px}.badge{text-transform:uppercase;letter-spacing:1px;border-radius:3px;padding:1px 6px;font-size:10px}.badge.ok{color:#4cd08a;background:#4cd08a33}.badge.warn{color:var(--amber);background:#ffbe5033}.card .msg{margin:4px 0;font-size:12px}.card .msg:empty{display:none}.card a.link{color:var(--you);cursor:pointer;font-size:12px;text-decoration:underline}form.auth .aux{justify-content:space-between;align-items:center;display:flex}.statgrid div small{color:var(--dim);font-size:11px}#menu-btn{font:11px var(--pixel);letter-spacing:1px}.card.start{width:min(1040px,100vw - 32px);padding:22px 28px 18px}.lhead{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:16px;display:flex}.lhead .brand .tag{margin:4px 0 0}.card.start h1{font-size:38px}.lhead .name-row.account{justify-content:flex-end;gap:8px;max-width:560px;margin:2px 0 0}.lhead .name-row.account label{margin-left:8px}.lhead .name-row.account input{width:150px}.lhead .name-row.account .acts{flex-basis:100%;justify-content:flex-end;margin-left:0}.lhead .name-row.account+.hint{text-align:right;margin:6px 0 0}.lbody{grid-template-columns:1fr 360px;align-items:stretch;gap:24px;display:grid}.setup{flex-direction:column;display:flex}.setup #mp{flex-direction:column;flex:1;display:flex}.setup #mp>:first-child{margin-top:0}.setup .tabs{margin-bottom:14px}.setup .picker{gap:4px;margin:0 0 12px}.setup .picker>span{font:10px var(--pixel);letter-spacing:1px;text-transform:uppercase;flex-basis:100%;margin:0 0 3px}.setup .hint{margin:-6px 0 12px}.setup #mp{min-height:0}button.play{width:100%;font:18px var(--pixel);letter-spacing:3px;color:#fff;border-color:var(--you);background:#40c4ff38;margin-top:auto;padding:14px;display:block}button.play:hover{background:#40c4ff57}.pick{border:1px solid var(--line);background:#ffffff05;border-radius:6px;padding:12px 14px}.pick h3{margin:0 0 8px}.card.start details{border-top:1px solid var(--line);margin-top:16px;padding-top:10px}@media (width<=900px){.lbody{grid-template-columns:1fr}.lhead{flex-direction:column}.lhead .name-row.account{justify-content:flex-start;max-width:none}.lhead .name-row.account label{margin-left:0}.lhead .name-row.account .acts{justify-content:flex-start}.lhead .name-row.account+.hint{text-align:left}button.play{margin-top:18px}}
