:root{--ui-scale:1;--text-scale:1;--bg:#0b1013;--panel:#0f1618eb;--panel-solid:#111a1c;--raised:#1a2629;--line:#c4d6cc29;--text:#e9eee6;--dim:#9baba0;--accent:#d2e58f;--accent-ink:#141c10;--warn:#f0c06a;--danger:#ff7a66;--good:#7fe0a8;--radius:5px;font-family:Bahnschrift,Segoe UI Variable Text,Segoe UI,system-ui,sans-serif;font-size:calc(15px * var(--text-scale));color:var(--text)}:root.contrast{--panel:#000;--panel-solid:#000;--raised:#111;--line:#fff;--text:#fff;--dim:#e0e0e0;--accent:#ffe14a;--warn:#ffd23c;--danger:#ff8f7d}:root.reduced-motion *{scroll-behavior:auto!important;transition:none!important;animation:none!important}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;margin:0;overflow:hidden}body{-webkit-user-select:none;user-select:none}[hidden]{display:none!important}h1,h2,h3,p,ul,ol{margin:0}ul,ol{padding:0;list-style:none}h1{letter-spacing:.04em;font-size:1.5rem}h2{letter-spacing:.06em;text-transform:uppercase;color:var(--accent);font-size:1.05rem}h3{color:var(--accent);margin-top:.8rem;font-size:.95rem}.dim{color:var(--dim);font-size:.87rem;line-height:1.45}.warn{color:var(--warn)}p.warn{font-size:.9rem;line-height:1.4}kbd{font:inherit;border:1px solid var(--line);background:var(--raised);border-radius:3px;padding:.1rem .45rem}button,select,input{font:inherit;color:inherit}button,select,input[type=text],input[type=number],input[type=search]{border:1px solid var(--line);background:var(--raised);border-radius:3px;min-height:2.1rem;padding:.3rem .75rem}button{cursor:pointer;transition:background .12s,border-color .12s}button:hover:not(:disabled){border-color:var(--accent);background:#233338}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:700}button.primary:hover:not(:disabled){background:#e4f3a8}button.danger{color:var(--danger)}button.small{min-height:1.6rem;padding:.1rem .5rem;font-size:.85rem}button.big{min-height:2.8rem;padding:.5rem 1.6rem;font-size:1.05rem}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input[type=checkbox]{width:1.15rem;height:1.15rem;accent-color:var(--accent)}input[type=range]{accent-color:var(--accent);min-width:7rem}select{max-width:100%}#app{position:fixed;inset:0}#boot{text-align:center;background:var(--bg);place-content:center;gap:.6rem;display:grid;position:fixed;inset:0}#boot strong{letter-spacing:.2em;text-transform:uppercase;font-size:1.8rem}#boot span{color:var(--dim)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:.85rem}.row{flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:.8rem;display:flex}.tabs{flex-wrap:wrap;gap:.25rem;margin-bottom:.6rem;display:flex}.tabs button{color:var(--dim);background:0 0;border-color:#0000;border-bottom-style:solid;border-bottom-width:2px;border-radius:0}.tabs button.active{color:var(--text);border-bottom-color:var(--accent)}.field{border-bottom:1px solid #ffffff0d;justify-content:space-between;align-items:center;gap:1rem;padding:.35rem 0;display:flex}.field>span:first-child{gap:.15rem;display:grid}.field small{color:var(--dim);font-size:.8rem}.field.inline{border:0;justify-content:flex-start}.slider{align-items:center;gap:.6rem;display:flex}.slider output{text-align:right;font-variant-numeric:tabular-nums;min-width:3.4rem}.screen{zoom:var(--ui-scale);background:radial-gradient(circle at 20% 0%, #18262a 0%, transparent 55%), radial-gradient(circle at 100% 100%, #1c2416 0%, transparent 50%), var(--bg);padding:1.2rem clamp(.8rem,3vw,2.4rem) 1.6rem;position:absolute;inset:0;overflow:auto}.screen-head{align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.screen-head h1{flex:1}.screen-foot{background:linear-gradient(transparent, var(--bg) 35%);justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;padding:.7rem 0 1rem;display:flex;position:sticky;bottom:-1.6rem}.page{max-width:64rem;margin:0 auto}.menu{align-content:center;justify-items:center;gap:1.4rem;min-height:100%;display:grid}.menu-title{text-align:center;justify-items:center;gap:.4rem;display:grid}.menu-title h1{letter-spacing:.22em;text-transform:uppercase;font-size:clamp(2rem,5vw,3.4rem)}.menu-title p{color:var(--dim);letter-spacing:.18em;text-transform:uppercase;font-size:.85rem}.logo{align-items:flex-end;gap:6px;height:46px;display:flex}.logo i{background:var(--accent);clip-path:polygon(0 18%,100% 0,100% 100%,0 100%);width:14px}.logo i:first-child{height:55%}.logo i:nth-child(2){height:100%}.logo i:nth-child(3){height:75%}.menu-list{gap:.45rem;width:min(30rem,100%);display:grid}.menu-entry{text-align:left;gap:.15rem;min-height:3.2rem;padding:.6rem 1rem;display:grid}.menu-entry b{letter-spacing:.05em;font-size:1.05rem}.menu-entry small{color:var(--dim);font-size:.82rem}.menu-entry.primary small{color:#36431f}.menu-foot{color:var(--dim);text-align:center;font-size:.8rem}.menu>.warn{text-align:center;max-width:34rem}.lobby{grid-template-columns:minmax(18rem,22rem) 1fr;align-items:start;gap:1rem;display:grid}.lobby-main{gap:1rem;display:grid}.lobby .panel{gap:.2rem;display:grid}.lobby h2{margin-bottom:.4rem}.map-preview{aspect-ratio:1;width:100%;max-width:18rem;image-rendering:pixelated;border:1px solid var(--line);background:#05080a;border-radius:3px;justify-self:center;margin:.4rem 0}.differences{color:var(--dim);font-size:.85rem}.differences summary{cursor:pointer;color:var(--warn);padding:.3rem 0}.differences li{margin:.3rem 0 .3rem 1rem;line-height:1.4;list-style:outside}.seat{grid-template-columns:1.6rem 6.5rem minmax(7rem,1fr) 6.5rem 6.5rem 9rem 5.5rem 2.2rem;align-items:center;gap:.4rem;padding:.2rem 0;display:grid}.seat.head{color:var(--dim);text-transform:uppercase;letter-spacing:.06em;font-size:.8rem}.seat-no{text-align:center;color:var(--dim)}.seat select{width:100%;padding-inline:.4rem}.slot-list{gap:.45rem;display:grid}.slot-row{align-items:stretch;gap:.45rem;display:flex}.slot-row>button:not(.slot){align-self:center}.slot{text-align:left;flex:1;gap:.15rem;padding:.5rem .8rem;display:grid}.slot span{font-size:.9rem}.slot small{color:var(--dim);font-size:.8rem}.settings-body{gap:.1rem;display:grid}.hotkeys{grid-template-columns:repeat(auto-fill,minmax(19rem,1fr));gap:.25rem 1.2rem;margin-top:.4rem;display:grid}.hotkey{grid-template-columns:1fr auto auto;align-items:center;gap:.4rem;font-size:.9rem;display:grid}.hotkeys.readonly .hotkey{grid-template-columns:1fr auto;padding:.15rem 0}.key{min-width:6.5rem}.key.capture{border-color:var(--accent);color:var(--accent)}.key.conflict{border-color:var(--warn);color:var(--warn)}.help{gap:1.2rem;display:grid}.help section{gap:.5rem;display:grid}.help li{margin-left:1.1rem;font-size:.93rem;line-height:1.5;list-style:outside}.help p{font-size:.93rem;line-height:1.5}.campaign-main{grid-template-columns:minmax(15rem,20rem) 1fr;align-items:start;gap:1rem;margin-top:.6rem;display:grid}.missions{gap:.35rem;display:grid}.mission{text-align:left;gap:.1rem;width:100%;display:grid}.mission small{color:var(--dim);font-size:.8rem}.mission.active{border-color:var(--accent)}.mission.done small{color:var(--good)}.briefing-body{grid-template-columns:15rem 1fr;gap:1rem;margin-top:.6rem;display:grid}.briefing-body p{margin-bottom:.5rem;line-height:1.5}.briefing-body li{margin:.2rem 0 .2rem 1.1rem;list-style:outside}.briefing-body li.done{color:var(--good)}.lobby.net{grid-template-columns:minmax(0,1.5fr) minmax(18rem,1fr)}.net-seat{border-bottom:1px solid #ffffff0d;grid-template-columns:1.7rem minmax(7rem,1.4fr) minmax(7rem,1fr) 6.2rem 6.2rem 6rem;align-items:center;gap:.4rem;padding:.25rem 0;display:grid}.net-seat select{width:100%;padding-inline:.4rem}.net-seat .me{color:var(--accent);font-weight:700}.net-seat .ready{color:var(--good)}.net-actions{flex-wrap:wrap;grid-column:2/-1;align-items:center;gap:.35rem;display:flex}.net-actions:empty{display:none}.net-actions select{width:auto;min-height:1.6rem;padding-block:.1rem;font-size:.85rem}.swatch{color:#0b0f14;border-radius:3px;place-items:center;width:1.5rem;height:1.5rem;font-size:.8rem;font-style:normal;font-weight:700;display:inline-grid}.chat-log{border:1px solid var(--line);-webkit-user-select:text;user-select:text;background:#0006;border-radius:3px;height:11rem;padding:.4rem .6rem;overflow:auto}.chat-log p{overflow-wrap:anywhere;margin:.15rem 0;font-size:.9rem;line-height:1.35}.chat-log p.team b{color:var(--good)}.chat-log p.whisper b{color:var(--warn)}.row input[type=text],.row input[type=password]{flex:1;min-width:8rem}.members{gap:.25rem;margin-top:.3rem;display:grid}.members li{align-items:center;gap:.5rem;font-size:.9rem;display:flex}.members li.out{opacity:.55}.slot.static{cursor:default;border:1px solid var(--line);background:var(--raised);border-radius:3px}.slot-row.wrap{flex-wrap:wrap}.overlay{z-index:40;zoom:var(--ui-scale);background:#040708b8;place-items:center;padding:1rem;display:grid;position:absolute;inset:0;overflow:auto}.overlay.modal{z-index:90;position:fixed}.dialog{background:var(--panel-solid);border:1px solid var(--line);border-radius:var(--radius);gap:.7rem;width:min(30rem,100%);max-height:100%;padding:1.2rem;display:grid;overflow:auto;box-shadow:0 20px 60px #0009}.dialog.wide{width:min(64rem,100%)}.dialog .menu-list{width:100%}.dialog p{line-height:1.45}.app-toasts{z-index:95;pointer-events:none;justify-items:center;gap:.4rem;display:grid;position:fixed;bottom:1.2rem;left:50%;transform:translate(-50%)}.toast{background:var(--panel-solid);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:3px;max-width:40rem;padding:.45rem .9rem;font-size:.92rem}.toast.warn{border-left-color:var(--warn);color:var(--warn)}.toast.jump{cursor:pointer;pointer-events:auto}.table-wrap{overflow:auto}table.stats{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.85rem}table.stats th,table.stats td{text-align:right;border-bottom:1px solid var(--line);white-space:nowrap;padding:.3rem .5rem}table.stats th:nth-child(2),table.stats td:nth-child(2){text-align:left}table.stats th{color:var(--dim);font-weight:500}table.stats tr.me td{color:var(--accent)}.result-objectives li.done{color:var(--good)}.result-objectives li.failed{color:var(--danger)}.game-host,.game{position:absolute;inset:0}.game-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.select-box{border:1px solid var(--accent);pointer-events:none;z-index:5;background:#d2e58f1f;display:none;position:absolute}.hud{pointer-events:none;z-index:10;zoom:var(--ui-scale);position:absolute;inset:0}.hud>*{pointer-events:auto;position:absolute}.topbar{background:var(--panel);border-bottom:1px solid var(--line);align-items:center;gap:.9rem;height:3rem;padding:0 .8rem;display:flex;top:0;left:0;right:0}.map-name{letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;font-weight:700;overflow:hidden}.status{color:var(--warn);letter-spacing:.08em;text-transform:uppercase;font-size:.85rem}.spacer{flex:1}.stat{font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;gap:.45rem;display:flex}.stat b{color:var(--accent)}.stat .value{font-size:1.05rem;font-weight:600}.stat small{color:var(--dim);font-size:.78rem}.stat.low b,.stat.low .value{color:var(--danger)}.meter{border:1px solid var(--line);background:#0006;border-radius:2px;width:4.2rem;height:.4rem;overflow:hidden}.meter i{background:var(--accent);width:0;height:100%;display:block}.meter.low i,.stat.low .meter i{background:var(--danger)}.objectives{gap:.4rem;width:17rem;max-height:40%;font-size:.88rem;display:grid;top:3.6rem;left:.6rem;overflow:auto}.objectives h2{font-size:.85rem}.objectives li{line-height:1.4}.objectives ol li.done{color:var(--good)}.objectives ol li.failed{color:var(--danger);text-decoration:line-through}.objectives ol li.secondary{color:var(--dim)}.objectives ol li.secondary.done{color:var(--good)}.objectives .timer{color:var(--warn);font-variant-numeric:tabular-nums}.players{border-top:1px solid var(--line);gap:.15rem;padding-top:.4rem;font-size:.82rem;display:grid}.players li{align-items:center;gap:.4rem;display:flex}.players li.out{opacity:.5;text-decoration:line-through}.players i{color:#000;border-radius:2px;flex:none;place-items:center;width:.95rem;height:.95rem;font-size:.6rem;font-style:normal;display:inline-grid}.toasts{pointer-events:none;z-index:3;justify-items:center;gap:.3rem;display:grid;top:3.6rem;left:50%;transform:translate(-50%)}.log{z-index:4;gap:.2rem;width:22rem;max-height:55%;display:grid;top:3.6rem;right:21rem;overflow:auto}.log button{text-align:left;font-variant-numeric:tabular-nums;background:0 0;border:0;min-height:0;padding:.15rem .3rem;font-size:.85rem}.log button:disabled{opacity:.8;cursor:default}.panel-heading{color:var(--dim);text-transform:uppercase;letter-spacing:.08em;font-size:.8rem}.subtitle{text-align:center;pointer-events:none;background:#000000d1;border-radius:3px;max-width:min(46rem,60%);padding:.5rem 1rem;font-size:1.05rem;line-height:1.4;bottom:12.5rem;left:50%;transform:translate(-50%)}.subtitle b{color:var(--accent)}.hud[data-place]:not([data-place=""]):after{content:attr(data-place);color:var(--warn);background:#000c;border-radius:3px;padding:.3rem .8rem;font-size:.9rem;position:absolute;top:6.4rem;left:50%;transform:translate(-50%)}.minimap-panel{padding:.4rem;bottom:.6rem;left:.6rem}.minimap{width:13.5rem;height:13.5rem;image-rendering:pixelated;cursor:crosshair;display:block}.radar-off{text-align:center;letter-spacing:.1em;text-transform:uppercase;color:var(--warn);background:#000000b3;padding:.15rem;font-size:.75rem;position:absolute;bottom:.4rem;left:.4rem;right:.4rem}.selection{gap:.45rem;max-height:14rem;display:grid;bottom:.6rem;left:15.4rem;right:21rem;overflow:auto}.sel-single{gap:.8rem;display:flex}.sel-single img{border:1px solid var(--line);background:#0006;border-radius:3px;flex:none;width:5rem;height:5rem}.sel-info{flex:1;gap:.25rem;min-width:0;display:grid}.sel-name{justify-content:space-between;gap:.8rem;font-weight:700;display:flex}.sel-name small{color:var(--dim);font-variant-numeric:tabular-nums;font-weight:400}.sel-name small.enemy{color:var(--danger)}.sel-name small.ally{color:var(--good)}.sel-desc{color:var(--dim);font-size:.85rem}.hp{background:#0006;border-radius:2px;height:.35rem;overflow:hidden}.hp i{background:var(--good);height:100%;display:block}.sel-extra,.sel-multi,.sel-actions,.sel-queue,.sel-research,.sel-orders{flex-wrap:wrap;align-items:center;gap:.3rem;display:flex}.chip{border:1px solid var(--line);white-space:nowrap;border-radius:999px;padding:.1rem .5rem;font-size:.8rem}.chip.warn{border-color:var(--warn)}.sel-actions button,.sel-queue button,.sel-research button,.sel-orders button{min-height:1.8rem;padding:.15rem .6rem;font-size:.85rem}.sel-actions button.active{border-color:var(--accent);color:var(--accent)}.sel-orders span{color:var(--dim);font-size:.8rem}.build{flex-direction:column;gap:.4rem;width:19.8rem;display:flex;top:3.6rem;bottom:.6rem;right:.6rem}.build-title{letter-spacing:.08em;text-transform:uppercase;color:var(--dim);justify-content:space-between;align-items:baseline;font-size:.8rem;display:flex}.build .tabs{margin:0}.build .tabs button{min-height:1.8rem;padding:.2rem .45rem;font-size:.85rem}.cards{flex:1;grid-template-columns:repeat(3,1fr);align-content:start;gap:.35rem;display:grid;overflow:auto}.card{aspect-ratio:1;background:#0b1113;min-height:0;padding:0;position:relative;overflow:hidden}.card img{object-fit:contain;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.card .name{background:#000000b8;padding:.15rem .2rem;font-size:.68rem;line-height:1.15;position:absolute;bottom:0;left:0;right:0}.card .cost{color:var(--accent);text-shadow:0 1px 2px #000;font-variant-numeric:tabular-nums;font-size:.72rem;position:absolute;top:.15rem;right:.25rem}.card .count{text-shadow:0 1px 3px #000;font-size:.95rem;font-weight:700;position:absolute;top:.1rem;left:.25rem}.card .fill{pointer-events:none;background:#d2e58f52;position:absolute;bottom:0;left:0;right:0}.card.locked{filter:grayscale()brightness(.55)}.card.poor .cost{color:var(--danger)}.card.active,.card.ready{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.prepared{color:var(--warn);min-height:1rem;font-size:.8rem}.powers{flex-wrap:wrap;gap:.3rem;display:flex}.power-btn{flex:45%;min-height:1.9rem;padding:.15rem .4rem;font-size:.82rem}.power-btn.ready{border-color:var(--accent);color:var(--accent)}.power-btn.active{background:var(--accent);color:var(--accent-ink)}.tooltip{background:var(--panel-solid);border:1px solid var(--line);pointer-events:none;z-index:20;border-radius:3px;gap:.3rem;width:17rem;padding:.6rem .75rem;font-size:.85rem;line-height:1.4;display:grid}.tooltip .facts{color:var(--dim);font-variant-numeric:tabular-nums}.tooltip .hint{color:var(--dim);font-size:.78rem}.hud.spectator .build,.hud.spectator .stat{display:none}.hud.spectator .selection,.hud.spectator .log{right:.6rem}.gamebar{z-index:12;left:.6rem;bottom:calc(15.2rem * var(--ui-scale));background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);zoom:var(--ui-scale);align-items:center;gap:.4rem;padding:.3rem;display:flex;position:absolute}.gamebar:empty{display:none}.game.replay .gamebar{bottom:auto;left:50%;top:calc(3.5rem * var(--ui-scale));width:min(52rem,60%);transform:translate(-50%)}.timeline{flex:1;min-width:8rem;position:relative}.seek{width:100%;display:block}.marks{pointer-events:none;height:.5rem;position:absolute;top:-.3rem;left:0;right:0}.mark{background:var(--warn);pointer-events:auto;border:0;border-radius:50%;width:.5rem;height:.5rem;min-height:0;padding:0;position:absolute;transform:translate(-50%)}.mark.building{background:var(--danger)}.mark.eliminated{background:#fff}.mark.power{background:#b46cff}.mark.captured{background:var(--good)}.tick{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.85rem}.diag{z-index:12;left:calc(18.4rem * var(--ui-scale));top:calc(3.6rem * var(--ui-scale));pointer-events:none;background:#000c;border-radius:3px;margin:0;padding:.5rem .7rem;font:.78rem/1.5 ui-monospace,Consolas,monospace;position:absolute}@media (width<=1180px){.lobby,.lobby.net,.campaign-main,.briefing-body{grid-template-columns:1fr}.net-seat{grid-template-columns:1.7rem repeat(2,minmax(0,1fr))}.seat{grid-template-columns:1.4rem repeat(3,minmax(0,1fr)) 2rem}.seat>:nth-child(5),.seat>:nth-child(6),.seat>:nth-child(7){grid-row:2}.seat>:nth-child(5){grid-column:2}.seat.head>:nth-child(n+5){display:none}.build{width:14rem}.cards{grid-template-columns:repeat(2,1fr)}.selection{right:15.2rem}.log{width:18rem;right:15.2rem}.objectives{width:14rem}.minimap{width:10.5rem;height:10.5rem}.selection{left:12.4rem}.gamebar{bottom:calc(12.2rem * var(--ui-scale))}.diag{left:calc(15.4rem * var(--ui-scale))}}@media (width<=820px),(height<=560px){.objectives{max-height:22%}.map-name,.sel-desc,.stat small{display:none}}
