.menu-backdrop{pointer-events:none;position:absolute;inset:0;overflow:hidden}.menu-backdrop-poster,.menu-backdrop-video{object-fit:cover;object-position:28% 50%;opacity:0;width:100%;height:100%;transition:opacity .7s;position:absolute;inset:0}.menu-backdrop.ready .menu-backdrop-poster,.menu-backdrop.playing .menu-backdrop-video{opacity:1}.menu-backdrop-shade{opacity:0;background:linear-gradient(270deg,#080d13f0 0%,#080d13d6 28%,#080d136b 52%,#080d1314 70%,#080d1300 82%),linear-gradient(#080d1380 0%,#080d1300 22% 72%,#080d139e 100%),#080d1329;transition:opacity .7s;position:absolute;inset:0}.menu-backdrop.ready .menu-backdrop-shade,.menu-backdrop.playing .menu-backdrop-shade{opacity:1}.main-screen:has(.menu-backdrop.ready) .table{visibility:hidden;transition:visibility 0s linear .7s}@media (prefers-reduced-motion:reduce){.menu-backdrop-poster,.menu-backdrop-video,.menu-backdrop-shade,.main-screen:has(.menu-backdrop.ready) .table{transition:none}}:root{--ink:#e6edf5;--ink-dim:#93a3b6;--amber:#f3b23a;--hot:#ffe24a;--warn:#ff7a66;--good:#79e08e;--kind-build:#436cbe;--kind-action:#01af02;--kind-upgrade:#d06c00;--kind-system:#cfc302;--mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--sans:"Bahnschrift", "DIN Alternate", "Arial Narrow", system-ui, sans-serif;--panel:#1c2633;--panel-hi:#33465b;--panel-lo:#0e151e;--well:#090f16;--edge:#7390b0;--edge-soft:#7390b057;--accent:#7cc4ff;--money:#f1f6ff;--glow:#468cff66;--cmd-border:#00157e;--icon-main:#e9eff6;--icon-hot:#ffb347}.menu-layer{pointer-events:none;font-family:var(--sans);color:var(--ink);z-index:10;position:absolute;inset:0}.menu-layer button,.menu-layer select,.menu-layer input{font:inherit;color:inherit}.menu-layer :focus-visible{outline:2px solid var(--amber);outline-offset:2px}.screen{pointer-events:auto;background:var(--well);flex-direction:column;display:flex;position:absolute;inset:0;overflow:hidden}.screen.overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#04080cb8}.table{background:radial-gradient(at 70% 40%,#17222f 0%,#0b1118 70%);position:absolute;inset:0;overflow:hidden}.table-map{aspect-ratio:1;outline-offset:10px;outline:1px solid #5f789680;height:min(86vh,62vw);position:absolute;top:50%;right:3vw;overflow:hidden;transform:translateY(-46%)perspective(1400px)rotateX(42deg)rotate(-24deg);box-shadow:0 40px 80px #0009}.table-map .map-canvas{filter:saturate(.55)brightness(.62)contrast(1.05);width:100%;height:100%;display:block}.table-map:before{content:"";z-index:1;background-image:linear-gradient(#dde7f11f 1px,#0000 1px),linear-gradient(90deg,#dde7f11f 1px,#0000 1px);background-size:12.5% 12.5%;position:absolute;inset:0}.sweep{z-index:2;mix-blend-mode:screen;background:conic-gradient(#f3b23a57,#f3b23a00 12%,#0000 100%);width:200%;height:200%;animation:8s linear infinite sweep;position:absolute;top:-50%;left:-50%}@keyframes sweep{to{transform:rotate(360deg)}}.table-fade{background:linear-gradient(90deg,#0b1118f7 0%,#0b1118d9 34%,#0b11181a 70%);position:absolute;inset:0}.panel{border:1px solid var(--edge);clip-path:polygon(14px 0,calc(100% - 14px) 0,100% 14px,100% 100%,0 100%,0 14px);background:linear-gradient(#253244,#141c27)}.eyebrow{letter-spacing:.24em;text-transform:uppercase;color:var(--ink-dim);font-size:12px}.screen-head{border-bottom:1px solid #5f789659;align-items:baseline;gap:18px;padding:28px 40px 16px;display:flex;position:relative}.screen-head h1{letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:30px;font-weight:600}.screen-body{flex:1;min-height:0;padding:24px 40px;position:relative;overflow:auto}.screen-foot{border-top:1px solid #5f789659;justify-content:space-between;align-items:center;gap:12px;padding:16px 40px 24px;display:flex;position:relative}.btn{border:1px solid var(--edge);clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:linear-gradient(#3a4b60,#233040);min-width:140px;padding:9px 22px;font-size:14px}.btn:hover:not(:disabled){background:linear-gradient(#475b73,#2a394b)}.btn.primary{border-color:var(--amber);color:#ffe3a6;background:linear-gradient(#5a4a26,#33291a)}.btn.primary:hover:not(:disabled){background:linear-gradient(#6d5a2c,#3d311d)}.btn:disabled{opacity:.45;cursor:default}.field{appearance:none;background:var(--well) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0h10L5 6z' fill='%238a9db3'/%3E%3C/svg%3E") no-repeat right 9px center;cursor:pointer;border:1px solid #34465b;border-radius:2px;padding:6px 28px 6px 10px;font-size:14px}.field:hover:not(:disabled){border-color:var(--edge)}.field:disabled{opacity:.5;cursor:default}.field option:disabled{color:#5d6d80}.toast{border:1px solid var(--edge);border-left:3px solid var(--good);pointer-events:none;z-index:5;background:#141c27f2;padding:8px 18px;font-size:14px;position:absolute;top:18px;left:50%;transform:translate(-50%)}.toast.error{border-left-color:var(--warn)}.main-menu{flex:1;grid-template-rows:auto 1fr auto;justify-items:end;padding:5vh 5.5vw 4vh 8vw;display:grid;position:relative}.main-screen .table-map{left:3vw;right:auto;transform:translateY(-46%)perspective(1400px)rotateX(42deg)rotate(24deg)}.main-screen .table-fade{background:linear-gradient(270deg,#0b1118f7 0%,#0b1118d9 34%,#0b11181a 70%)}.title{text-align:right;margin:0;line-height:.86}.title-main{letter-spacing:.06em;text-transform:uppercase;color:var(--ink);font-size:clamp(54px,9.5vw,132px);font-weight:700;display:block}.title-sub{letter-spacing:.5em;text-transform:uppercase;color:var(--amber);justify-content:flex-end;align-items:center;gap:14px;margin-top:16px;font-size:clamp(16px,1.6vw,22px);font-weight:400;display:flex}.title-sub:before{content:"";background:var(--amber);width:46px;height:2px}.title-note{letter-spacing:.18em;text-transform:uppercase;color:var(--ink-dim);margin-top:10px;font-size:12px}.menu-list{border:1px solid var(--edge-soft);clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px);background:#0d131b99;align-self:start;gap:4px;width:clamp(300px,28vw,440px);margin:4vh 0 0;padding:10px;list-style:none;display:grid}.menu-item{text-align:left;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;border-left:2px solid #0000;justify-content:space-between;align-items:center;width:100%;padding:11px 18px 11px 22px;font-size:20px;transition:background .12s,border-color .12s,padding .16s;display:flex;position:relative}.menu-item kbd{font-family:var(--mono);color:var(--ink-dim);border:1px solid #34465b;border-radius:2px;padding:1px 6px;font-size:12px}.menu-item:hover:not(:disabled),.menu-item:focus-visible{border-left-color:var(--amber);color:#ffe3a6;background:linear-gradient(90deg,#f3b23a29,#f3b23a00);outline:none;padding-left:30px}.menu-item:disabled{color:#5d6d80;cursor:default}.menu-item small{letter-spacing:.06em;text-transform:none;color:var(--ink-dim);margin-top:2px;font-size:12px;display:block}.menu-foot{letter-spacing:.08em;color:var(--ink-dim);font-size:12px}.skirmish{grid-template-columns:minmax(0,1fr) minmax(300px,380px);align-items:start;gap:28px;display:grid}.slots{border-collapse:separate;border-spacing:0 6px;width:100%}.slots th{text-align:left;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-dim);padding:0 8px 2px;font-size:12px;font-weight:400}.slots td{background:#1d2735d9;border-top:1px solid #2c3b4e;border-bottom:1px solid #111821;padding:6px 8px}.slots td:first-child{border-left:3px solid var(--slot-color,#34465b);font-family:var(--mono);color:var(--ink-dim);text-align:center;width:28px}.slots tr.closed td{background:#11182199}.slots tr.closed td:first-child{border-left-color:#24303e}.slots .field{width:100%}.swatch-select{align-items:center;gap:8px;display:flex}.swatch{background:var(--c);border:1px solid #ffffff59;flex:none;width:14px;height:14px}.swatch.random{background:conic-gradient(#3d8bff,#ff4b3e,#3ccf6b,#ffc21a,#3d8bff)}.options-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px 22px;margin-top:22px;display:grid}.labeled{gap:6px;display:grid}.labeled>span{letter-spacing:.16em;text-transform:uppercase;color:var(--ink-dim);font-size:12px}.labeled>input[type=checkbox]{width:18px;height:18px;accent-color:var(--amber);justify-self:start;margin:8px 0 0}.map-side{gap:14px;display:grid}.map-list{gap:2px;margin:0;padding:0;list-style:none;display:grid}.map-option{text-align:left;letter-spacing:.06em;cursor:pointer;background:#111821b3;border:1px solid #0000;justify-content:space-between;width:100%;padding:8px 12px;font-size:15px;display:flex}.map-option span:last-child{color:var(--ink-dim);font-size:12px}.map-option:hover{border-color:#34465b}.map-option[aria-pressed=true]{border-color:var(--amber);color:#ffe3a6;background:#f3b23a1a}.preview{aspect-ratio:1;padding:8px;position:relative}.preview-inner{background:var(--well);width:100%;height:100%;position:relative;overflow:hidden}.preview-map{position:absolute}.preview-map .map-canvas{width:100%;height:100%;display:block}.preview-marker{width:26px;height:26px;font-family:var(--mono);cursor:default;background:#0b1118bf;border:2px solid #ffffffd9;border-radius:50%;place-items:center;margin:-13px 0 0 -13px;padding:0;font-size:12px;font-weight:700;display:grid;position:absolute;box-shadow:0 0 0 3px #00000059}button.preview-marker{cursor:pointer}.preview-marker.taken{background:var(--c);color:#0b1118;border-color:#fff}.preview-supply{background:var(--amber);border:1.5px solid #0b1118d9;width:9px;height:9px;margin:-4.5px 0 0 -4.5px;position:absolute;transform:rotate(45deg);box-shadow:0 0 0 1px #ffffff59}.preview-scale{box-sizing:border-box;font-family:var(--mono);text-align:center;color:#fff;text-shadow:0 0 3px #000,0 1px 2px #000;filter:drop-shadow(0 1px 1px #000000b3);pointer-events:none;border:2px solid #ffffffeb;border-top-width:0;padding-bottom:3px;font-size:11px;font-weight:700;line-height:1.5;position:absolute;bottom:4%;left:4%}.preview-caption{color:var(--ink-dim);letter-spacing:.08em;justify-content:space-between;font-size:12px;display:flex}.setup-error{color:var(--warn);font-size:14px}.setup-note{opacity:.7;margin:10px 0 0;font-size:13px}.settings{grid-template-columns:200px minmax(0,560px);gap:32px;display:grid}.tabs{align-content:start;gap:2px;display:grid}.tab{text-align:left;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);cursor:pointer;background:0 0;border:0;border-left:2px solid #24303e;padding:10px 14px;font-size:15px}.tab[aria-selected=true]{border-left-color:var(--amber);color:var(--ink);background:linear-gradient(90deg,#f3b23a1f,#0000)}.setting{border-bottom:1px solid #5f789638;grid-template-columns:1fr 240px;align-items:center;gap:16px;padding:12px 0;font-size:15px;display:grid}.setting small{color:var(--ink-dim);margin-top:3px;font-size:12px;display:block}.setting input[type=range]{width:100%;accent-color:var(--amber)}.range{grid-template-columns:1fr 48px;align-items:center;gap:10px;display:grid}.range output{font-family:var(--mono);text-align:right;color:var(--ink-dim);font-size:12px}.segmented{border:1px solid #34465b;display:flex}.segmented button{background:var(--well);cursor:pointer;border:0;border-left:1px solid #34465b;flex:1;padding:6px 4px;font-size:13px}.segmented button:first-child{border-left:0}.segmented button[aria-pressed=true]{color:#ffe3a6;background:#f3b23a2e}.setting input[type=checkbox]{width:18px;height:18px;accent-color:var(--amber);justify-self:start}.bindings{border-top:1px solid #5f789638;max-height:min(46vh,520px);margin-top:18px;padding-right:8px;overflow-y:auto}.binding-group h3{letter-spacing:.14em;text-transform:uppercase;color:var(--amber);margin:16px 0 6px;font-size:12px;font-weight:600}.binding-group dl{margin:0}.binding{border-bottom:1px solid #5f78961f;grid-template-columns:minmax(150px,38%) 1fr;gap:12px;padding:4px 0;font-size:13px;display:grid}.binding dt{color:var(--ink)}.binding dd{color:var(--ink-dim);margin:0}.binding kbd{font-family:var(--mono);background:var(--well);color:#ffe3a6;white-space:nowrap;border:1px solid #34465b;border-radius:3px;padding:1px 6px;font-size:12px}.binding em{letter-spacing:.06em;text-transform:uppercase;color:var(--warn);margin-left:8px;font-size:11px;font-style:normal}.binding small{opacity:.8;font-size:11px;display:block}.binding:not(.status-ok) dt kbd{opacity:.6}.loading{flex:1;grid-template-columns:minmax(0,1fr) minmax(300px,420px);align-items:center;gap:48px;padding:6vh 7vw;display:grid;position:relative}.loading .preview{justify-self:center;width:min(100%,72vh);max-height:72vh}.loading h1{letter-spacing:.1em;text-transform:uppercase;margin:6px 0 22px;font-size:clamp(30px,3.6vw,52px);font-weight:600}.roster{gap:6px;margin:0 0 30px;padding:0;list-style:none;display:grid}.roster li{border-left:3px solid var(--c);background:#1d2735cc;align-items:center;gap:10px;padding:7px 12px;font-size:15px;display:flex}.roster li span:last-child{color:var(--ink-dim);letter-spacing:.08em;margin-left:auto;font-size:12px}.progress{grid-template-columns:repeat(var(--n), 1fr);gap:4px;height:8px;display:grid}.progress span{background:#1a2533;position:relative;overflow:hidden}.progress span:after{content:"";width:calc(var(--p) * 100%);background:var(--amber);transition:width .2s;position:absolute;inset:0}.progress-labels{grid-template-columns:repeat(var(--n), 1fr);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);gap:4px;margin-top:6px;font-size:11px;display:grid}.progress-labels .done{color:var(--ink)}.tip{border-left:2px solid var(--amber);background:#111821b3;margin-top:34px;padding:12px 16px;font-size:15px;line-height:1.45}.tip b{letter-spacing:.2em;text-transform:uppercase;color:var(--amber);margin-bottom:4px;font-size:11px;font-weight:400;display:block}.result-banner{text-align:center;margin:auto;position:relative}.result-word{letter-spacing:.22em;text-transform:uppercase;color:var(--amber);text-shadow:0 0 40px #f3b23a59;margin-right:-.22em;font-size:clamp(64px,12vw,168px);font-weight:700;animation:.7s cubic-bezier(.2,.9,.2,1) both stamp;display:block}.result-banner.defeat .result-word{color:var(--warn);text-shadow:0 0 40px #ff7a664d}.result-banner.replayEnd .result-word{color:var(--ink);text-shadow:none;font-size:clamp(40px,6vw,84px)}@keyframes stamp{0%{opacity:0;letter-spacing:.5em;transform:scale(1.25)}}.result-line{letter-spacing:.2em;text-transform:uppercase;color:var(--ink-dim);margin:10px 0 32px;font-size:15px}.result-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.error-banner{max-width:min(720px,90vw)}.error-banner .result-word{font-size:clamp(40px,6vw,84px)}.error-banner .result-line{letter-spacing:.08em;text-transform:none;margin-bottom:14px}.error-detail{font-family:var(--mono);color:var(--ink-dim);border:1px solid var(--edge);overflow-wrap:anywhere;background:#00000059;margin:0 0 28px;padding:8px 12px;font-size:12px}.stats{border-collapse:collapse;width:100%;font-size:15px}.stats th{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim);text-align:right;vertical-align:bottom;padding:6px 10px;font-size:11px;font-weight:400}.stats th.group{text-align:center;color:var(--ink);border-bottom:1px solid #34465b}.stats th:first-child{text-align:left}.stats td{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;background:#1d2735d9 padding-box padding-box;border-bottom:4px solid #0000;padding:10px}.stats td:first-child{text-align:left;font-family:var(--sans);border-left:3px solid var(--c);white-space:nowrap}.stats td.best{color:var(--amber)}.stats .badge{letter-spacing:.16em;text-transform:uppercase;color:var(--good);margin-left:10px;font-size:11px}.stats .badge.out{color:var(--warn)}.stats-meta{color:var(--ink-dim);gap:32px;margin-bottom:18px;font-size:14px;display:flex}.stats-meta b{font-variant-numeric:tabular-nums;color:var(--ink);margin-left:6px;font-weight:600}.replay-bar{pointer-events:auto;align-items:center;gap:12px;padding:8px 14px;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%)}.replay-bar .eyebrow{color:var(--amber)}.replay-bar time{font-family:var(--mono);text-align:center;min-width:96px;font-size:13px}.replay-bar .segmented button{padding:4px 9px}.replay-bar .btn{min-width:0;padding:5px 14px}.replay-warning{letter-spacing:.06em;color:var(--warn);white-space:nowrap;font-size:12px}.credits{max-width:720px;font-size:15px;line-height:1.6}.credits h2{letter-spacing:.2em;text-transform:uppercase;color:var(--amber);margin:26px 0 6px;font-size:13px;font-weight:400}.credits p{color:var(--ink);margin:0 0 8px}.credits code{font-family:var(--mono);color:var(--ink-dim);font-size:13px}@media (width<=860px){.skirmish,.loading,.settings{grid-template-columns:1fr}.screen-head,.screen-body,.screen-foot{padding-left:16px;padding-right:16px}}@media (prefers-reduced-motion:reduce){.sweep,.result-word{animation:none}.menu-item{transition:none}}
