:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#050505;--panel:#080808;--line:#f2f2f2;--muted:#a9a9a9;--p1:#70ff2d;--p2:#ff57da;--neutral:#fff;--warn:#ffe600}*{box-sizing:border-box}html,body,#app{background:var(--bg);height:100dvh;color:var(--line);margin:0;font-family:Arial,Helvetica,sans-serif}body{min-height:100vh}button{font:inherit;color:inherit;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.app-shell{background:var(--bg);grid-template-rows:auto 1fr auto;min-height:100dvh;display:grid}.card{background:var(--panel);border:2px solid var(--line)}.player-console{grid-template-rows:auto 1fr;align-items:stretch;row-gap:.3rem;margin:.25rem;padding:.3rem;display:grid}.player-console.mirrored{transform:rotate(180deg)}.player-1{color:var(--p1)}.player-2{color:var(--p2)}.console-header{grid-template-columns:minmax(0,1fr) auto;align-items:start;column-gap:.5rem;display:grid}.console-info{min-width:0}.console-title{text-transform:uppercase;letter-spacing:.03em;font-size:.85rem;font-weight:700}.console-subtitle{color:var(--line);font-size:.7rem}.console-status{grid-template-columns:repeat(3,minmax(4.2rem,1fr));justify-content:stretch;align-items:start;gap:.4rem;width:min(15rem,100%);display:grid}.status-item{text-align:center;grid-template-rows:auto auto;justify-items:center;gap:.05rem;min-width:0;display:grid}.status-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.56rem;line-height:1}.status-value{color:var(--line);font-size:1rem;font-weight:700;line-height:1}.status-delta{white-space:nowrap;margin-left:.15rem;font-size:.75em;font-weight:700}.status-delta.positive{color:var(--p1)}.status-delta.negative{color:#ff4d4d}.status-delta.neutral{color:var(--muted)}.console-controls{grid-template-columns:minmax(0,1fr) auto;align-items:stretch;column-gap:.35rem;min-height:0;display:grid}.planet-grid{align-items:stretch;gap:.22rem;min-width:0;height:100%;min-height:0;display:grid}.console-mode-stack{grid-template-rows:1fr 1fr;align-self:stretch;gap:.22rem;width:2.9rem;display:grid}.mode-btn{border:2px solid var(--line);width:100%;min-height:0;color:var(--line);cursor:pointer;background:#000;padding:0;font-weight:700}.mode-btn.active{color:currentColor;background:#222;border-color:currentColor}.mode-btn.inactive,.mode-btn:disabled{opacity:.35;cursor:default}.console-btn,.menu-item{border:2px solid var(--line);cursor:pointer;background:#000;min-width:0;min-height:0}.planet-btn{touch-action:manipulation;place-items:center;gap:.1rem;height:100%;min-height:0;padding:.48rem .14rem;display:grid}.planet-btn .planet-btn-label{font-size:clamp(.82rem,2.2vw,1rem);font-weight:700;line-height:1}.planet-btn .planet-btn-count{opacity:.9;font-size:clamp(.62rem,1.7vw,.78rem);line-height:1}.planet-btn.action-disabled{opacity:.24;color:#888;background:#050505;border-color:#666}.planet-btn.action-source,.planet-btn.action-target,.planet-btn.action-cancel{opacity:1}.planet-btn.action-source{box-shadow:inset 0 0 0 2px}.planet-btn.action-target{background:#111;box-shadow:inset 0 0 0 2px}.planet-btn.action-cancel{background:#161616;box-shadow:inset 0 0 0 2px}.planet-btn.selected{background:#41003c;box-shadow:inset 0 0 0 2px,0 0 0 2px #000,0 0 0 4px}.player-1 .planet-btn.selected{background:var(--p1);color:#000;border-color:var(--p1);box-shadow:inset 0 0 0 2px #000, 0 0 8px var(--p1), 0 0 14px #00ff6459}.player-2 .planet-btn.selected{background:var(--p2);color:#000;border-color:var(--p2);box-shadow:inset 0 0 0 2px #000, 0 0 8px var(--p2), 0 0 14px #41003c}.player-1 .planet-btn.selected,.player-1 .planet-btn.selected .planet-btn-label,.player-1 .planet-btn.selected .planet-btn-count,.player-2 .planet-btn.selected,.player-2 .planet-btn.selected .planet-btn-label,.player-2 .planet-btn.selected .planet-btn-count{color:#000}.planet-btn.perspective-home,.planet-btn.perspective-owned{color:currentColor;border-color:currentColor}.player-1 .planet-btn.perspective-home,.player-1 .planet-btn.perspective-owned{color:var(--p1);border-color:var(--p1)}.player-2 .planet-btn.perspective-home,.player-2 .planet-btn.perspective-owned{color:var(--p2);border-color:var(--p2)}.planet-btn.perspective-enemy{opacity:.85}.player-1 .planet-btn.perspective-enemy{color:var(--p2);border-color:var(--p2)}.player-2 .planet-btn.perspective-enemy{color:var(--p1);border-color:var(--p1)}.planet-btn.perspective-neutral{color:var(--neutral);border-color:var(--neutral)}.planet-btn.has-battle{outline:2px solid var(--warn);outline-offset:-2px}.planet-btn:disabled{cursor:default}.board-stage{justify-content:center;align-items:center;min-height:0;padding:.12rem;display:flex}.board-wrap{justify-content:center;align-items:center;width:100%;height:100%;min-height:100%;display:flex;position:relative;overflow:visible}.game-board{height:100%;min-height:100%;position:relative;overflow:hidden}.board-svg{-webkit-tap-highlight-color:transparent;background:#000;width:100%;height:100%;min-height:45vh;display:block}.board-stage,.board-wrap,.game-board,.board-svg,.board-svg text,.board-svg tspan,.console-title,.console-subtitle,.status-label,.status-value,.planet-btn,.planet-btn .planet-btn-label,.planet-btn .planet-btn-count,.mode-btn,.menu-trigger,.menu-item,.help-panel,.win-panel,.new-game-title,.new-game-top-btn,.new-game-close-btn,.new-game-map-btn,.new-game-section-label,.setting-value-btn,.stepper-btn,.stepper-value,.map-scroll-btn{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.menu-wrap{z-index:20;position:absolute;top:50%;left:0;transform:translateY(-50%)}.menu-trigger{border:2px solid var(--line);cursor:pointer;background:#000;place-items:center;gap:.22rem;width:2.8rem;height:3rem;padding:.35rem;display:grid}.menu-trigger span{background:var(--line);width:100%;height:.2rem;display:block}.menu-panel{z-index:21;gap:.35rem;min-width:9rem;padding:.35rem;display:grid;position:absolute;top:50%;left:3.2rem;transform:translateY(-50%)}.menu-item{text-align:left;min-height:2.2rem;padding:.55rem .7rem}.help-panel{z-index:30;background:#080808fa;width:min(34rem,100% - 2rem);padding:1rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.help-panel h2{margin-top:0}.edge{stroke:var(--line);stroke-width:.7px;opacity:.9}.planet.neutral{color:var(--line)}.planet.owned-player-1{color:var(--p1)}.planet.owned-player-2{color:var(--p2)}.planet-card{fill:#000;stroke:currentColor;stroke-width:.55px}.planet-letter{fill:currentColor;text-anchor:middle;dominant-baseline:middle;font-size:4.9px;font-weight:700}.planet-ships{fill:currentColor;text-anchor:middle;dominant-baseline:middle;font-size:3.2px;font-weight:700}.planet-upgrade-track{fill:#000;stroke:currentColor;stroke-width:.4px}.planet-upgrade-fill{fill:var(--warn)}.planet-diamond{fill:currentColor;stroke:none}.planet-crown{fill:var(--warn);text-anchor:middle;font-size:4px;font-weight:700}.fleet-dot{fill:#000;stroke:currentColor;stroke-width:.45px}.fleet-text{fill:currentColor;text-anchor:middle;font-size:1.7px;font-weight:700}.fleet-player-1{color:var(--p1)}.fleet-player-2{color:var(--p2)}.battle-marker-dot{fill:#000;stroke:currentColor;stroke-width:.45px}.battle-marker-text{fill:currentColor;text-anchor:middle;dominant-baseline:middle;font-size:2.3px;font-weight:700}.battle-player-1{color:var(--p1)}.battle-player-2{color:var(--p2)}.win-panel{z-index:35;text-align:center;background:#080808fa;width:min(22rem,100% - 2rem);padding:1rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.win-panel h2{margin:0 0 .5rem}.win-panel p{color:var(--muted);margin:0 0 .9rem}.new-game-screen{background:#000;grid-template-rows:auto 1fr;gap:.35rem;min-height:100dvh;margin:0;padding:.35rem;display:grid}.new-game-topbar{grid-template-columns:minmax(0,1fr) 6.4rem 3rem;gap:.35rem;display:grid}.new-game-title,.new-game-top-btn,.new-game-close-btn,.new-game-map-btn,.setting-value-btn,.stepper-btn,.stepper-value,.map-scroll-btn{border:2px solid var(--line);color:var(--line);background:#000}.new-game-title{text-transform:uppercase;justify-content:flex-start;align-items:center;padding:.45rem .7rem;font-size:1.05rem;font-weight:700;display:flex}.new-game-top-btn,.new-game-close-btn{cursor:pointer;font-size:.95rem;font-weight:700}.new-game-top-btn:disabled,.new-game-close-btn:disabled,.new-game-map-btn:disabled,.setting-value-btn:disabled,.stepper-btn:disabled,.map-scroll-btn:disabled,.new-game-revert-btn:disabled{opacity:.35;cursor:default}.new-game-close-btn{place-items:center;padding:0;display:grid;position:relative}.close-icon{width:1rem;height:1rem;display:block;position:relative}.close-icon:before,.close-icon:after{content:"";transform-origin:50%;background:currentColor;border-radius:999px;width:1rem;height:.14rem;position:absolute;top:50%;left:50%;translate:-50% -50%}.close-icon:before{transform:rotate(45deg)}.close-icon:after{transform:rotate(-45deg)}.new-game-close-btn:disabled{color:#777;border-color:#666}.new-game-main{grid-template-rows:auto 1fr;gap:.35rem;min-height:0;display:grid}.new-game-map-panel,.new-game-settings-grid{border:2px solid var(--line);min-height:0;padding:.45rem}.new-game-section-header{justify-content:space-between;align-items:center;display:flex}.new-game-section-label{color:var(--line);text-transform:uppercase;letter-spacing:.04em;font-size:.82rem;line-height:1}.new-game-map-panel{gap:.35rem;display:grid}.new-game-map-area{grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:.35rem;min-height:11rem;display:grid}.new-game-map-list-wrap{grid-template-columns:minmax(0,1fr) 2.2rem;gap:.35rem;min-height:11rem;display:grid}.new-game-map-list{scrollbar-width:thin;scrollbar-color:var(--line) #000;grid-auto-rows:minmax(2.1rem,auto);align-content:start;gap:.18rem;min-height:0;max-height:100%;padding-right:.1rem;display:grid;overflow-y:auto}.new-game-map-list::-webkit-scrollbar{width:.45rem}.new-game-map-list::-webkit-scrollbar-track{background:#000}.new-game-map-list::-webkit-scrollbar-thumb{background:var(--line)}.new-game-map-scroll{grid-template-rows:1fr 1fr;gap:.18rem;display:grid}.new-game-map-btn{text-align:left;cursor:pointer;min-height:0;padding:.35rem .6rem;font-weight:700}.new-game-map-btn.selected{background:#111;box-shadow:inset 0 0 0 2px}.map-scroll-btn{cursor:pointer;min-height:0;padding:0;font-size:1.1rem}.new-game-preview-frame{border:2px solid var(--line);min-height:0;padding:.2rem;display:flex}.new-game-preview{background:#050505;flex:1;justify-content:center;align-items:center;min-height:10.5rem;display:flex}.new-game-preview-svg{background:#000;width:100%;height:100%;display:block}.preview-edge{stroke:var(--line);stroke-width:.95px;opacity:.9}.preview-planet-card{stroke:none}.preview-planet.owner-1 .preview-planet-card{fill:var(--p1)}.preview-planet.owner-2 .preview-planet-card{fill:var(--p2)}.preview-planet.owner-0 .preview-planet-card{fill:#d8d8d8}.preview-planet-label{fill:#000;text-anchor:middle;dominant-baseline:middle;font-size:5.4px;font-weight:700}.preview-capital{fill:var(--warn);text-anchor:middle;font-size:5.5px;font-weight:700}.new-game-settings-grid{grid-template-columns:1fr 1fr;align-content:start;gap:.7rem 1rem;display:grid}.new-game-setting-block{gap:.22rem;display:grid}.new-game-setting-block-wide{grid-column:1/2}.new-game-setting-row{grid-template-columns:2.2rem minmax(0,1fr) 2.2rem;align-items:stretch;gap:.12rem;display:grid}.setting-value-btn,.stepper-btn,.stepper-value{min-height:2rem}.setting-value-btn{text-align:left;grid-column:1/span 3;padding:.32rem .55rem;font-weight:700}.stepper-btn{cursor:pointer;padding:0;font-weight:700}.stepper-value{font-variant-numeric:tabular-nums;place-items:center;padding:0 .3rem;font-weight:700;display:grid}.new-game-revert-btn{border:2px solid var(--line);color:var(--line);text-transform:uppercase;cursor:pointer;background:#000;padding:.22rem .55rem;font-size:.78rem;font-weight:700}@media (width>=700px){.app-shell,.new-game-screen{max-width:42rem;margin:0 auto}.board-svg{min-height:34rem}}.stats-screen{background:#000;grid-template-rows:auto auto 1fr;gap:.35rem;min-height:100dvh;padding:.35rem;display:grid}.stats-topbar{grid-template-columns:minmax(0,1fr) 6.8rem;gap:.35rem;display:grid}.stats-title,.stats-top-btn,.stats-player-card,.stats-chart-panel{border:2px solid var(--line);background:#000}.stats-title{padding:.5rem .7rem}.stats-title-main{text-transform:uppercase;font-size:1.05rem;font-weight:700}.stats-title-sub{color:var(--muted);margin-top:.18rem;font-size:.76rem}.stats-top-btn{cursor:pointer;font-weight:700}.stats-summary-grid{grid-template-columns:1fr 1fr;gap:.35rem;display:grid}.stats-player-card{padding:.45rem}.stats-player-name{text-transform:uppercase;margin-bottom:.35rem;font-size:.86rem;font-weight:700}.stats-player-grid{grid-template-columns:1fr 1fr;gap:.3rem;display:grid}.stats-kpi{background:#050505;border:2px solid;padding:.32rem .35rem}.stats-kpi-label{text-transform:uppercase;color:var(--muted);margin-bottom:.1rem;font-size:.58rem}.stats-kpi-value{font-size:1rem;font-weight:700;line-height:1.1}.stats-chart-panel{grid-template-rows:auto 1fr auto;gap:.4rem;min-height:0;padding:.45rem;display:grid}.stats-chart-meta{color:var(--muted);text-transform:uppercase;font-size:.72rem}.stats-multi-chart{border:2px solid var(--line);background:#050505;grid-template-rows:repeat(4,minmax(0,1fr));gap:.28rem;min-height:0;padding:.28rem;display:grid}.stats-mini-chart{grid-template-columns:2.2rem minmax(0,1fr);align-items:stretch;gap:.28rem;min-height:0;display:grid}.stats-mini-chart-label{border:2px solid var(--line);background:#000;justify-content:center;align-items:center;padding:0;display:flex}.stats-mini-chart-label-text{transform-origin:50%;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;font-size:.65rem;font-weight:700;display:inline-block;transform:rotate(-90deg)}.stats-chart-svg{border:2px solid var(--line);background:#000;width:100%;height:100%;min-height:5.1rem;display:block}.stats-chart-bg{fill:#000}.stats-grid-line{stroke:#333;stroke-width:.18px}.stats-axis-line{stroke:var(--line);stroke-width:.28px}.stats-axis-label{fill:var(--muted);font-size:2.3px}.stats-axis-label-y{text-anchor:end;dominant-baseline:middle}.stats-axis-label-centre{text-anchor:middle}.stats-axis-label-right{text-anchor:end}.stats-line{fill:none;stroke-width:.8px;stroke-linecap:round;stroke-linejoin:round}.stats-line-p1{stroke:var(--p1)}.stats-line-p2{stroke:var(--p2)}.stats-legend{flex-wrap:wrap;align-items:center;gap:.9rem;display:flex}.stats-legend-item{align-items:center;gap:.35rem;font-size:.78rem;font-weight:700;display:inline-flex}.stats-legend-dot{border-radius:999px;width:.7rem;height:.7rem;display:inline-block}.stats-legend-dot-p1{background:var(--p1)}.stats-legend-dot-p2{background:var(--p2)}@media (width>=700px){.stats-screen{max-width:42rem;margin:0 auto}.stats-chart-svg{min-height:6rem}}
