.battle-station{--army-red:#ac4d3f;--army-blue:#4c7282;--game-ink:#243d34;text-align:left;grid-template-columns:minmax(0,1fr) 276px;align-items:start;gap:24px;width:100%;margin:28px auto 0;display:grid}.battle-stage{min-width:0}.battle-toolbar{justify-content:space-between;align-items:center;gap:12px;margin:0 1px 16px;display:flex}.battle-eyebrow{letter-spacing:.16em;color:#777d70;text-transform:uppercase;font-size:10px;font-weight:800}.battle-turn{color:#44614c;align-items:center;gap:7px;font-size:12px;font-weight:700;display:flex}.battle-dot{background:#c56c51;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 3px #c56c5112}.battle-dot.computer{background:#64899b}.battle-dot.thinking{animation:1s infinite turn-pulse}.board-frame{isolation:isolate;background:#39493d;border:1px solid #24352c;border-radius:10px;padding:22px 24px 23px;position:relative;box-shadow:0 4px #25352a,0 6px #29352b,0 12px 26px #273c3220,inset 0 1px #6b7967}.board-frame:before{content:"";pointer-events:none;border:1px solid #8f9c8035;border-radius:5px;position:absolute;inset:9px}.board-files{text-align:center;color:#c4c8a6;letter-spacing:.02em;grid-template-columns:repeat(10,1fr);font:9px/18px ui-monospace,monospace;display:grid;position:absolute;left:24px;right:24px}.board-files.top{top:2px}.board-files.bottom{bottom:2px}.board-ranks{text-align:center;color:#c4c8a6;grid-template-rows:repeat(10,1fr);align-items:center;width:18px;font:9px ui-monospace,monospace;display:grid;position:absolute;top:22px;bottom:23px}.board-ranks.left{left:3px}.board-ranks.right{right:3px}.battle-grid{aspect-ratio:1;background:#a7b29a;border:2px solid #28392b;border-radius:2px;grid-template-columns:repeat(10,minmax(0,1fr));display:grid;position:relative;overflow:hidden;box-shadow:inset 0 0 16px #24342d25}.battle-cell{appearance:none;aspect-ratio:1;cursor:pointer;touch-action:manipulation;isolation:isolate;background:#b2bc9f;border:0;border-radius:0;min-width:0;min-height:0;padding:0;position:relative;box-shadow:inset -1px -1px #7b8f6d26}.battle-cell.alt{background:#a7b493}.battle-cell.home{background:#c5c5a7}.battle-cell.home.alt{background:#bbc0a0}.battle-cell.enemy-home{background:#a9b99e}.battle-cell.enemy-home.alt{background:#9faf93}.battle-cell:hover:not(:disabled){background:#cbd0ac}.battle-cell:focus-visible{z-index:4;outline-offset:-3px;outline:3px solid #ffed99}.battle-cell:disabled{cursor:default;opacity:1}.battle-cell.lake{cursor:default;background:#7ca4a3;box-shadow:inset -1px -1px #527b7d17}.battle-cell.lake:before{content:"";background:repeating-linear-gradient(170deg,#0000 0 8px,#d5eece24 9px 10px,#0000 11px 18px);border-radius:45%;position:absolute;inset:13% 8%}.battle-cell.lake-edge{box-shadow:inset 0 2px 5px #4c716d38}.battle-cell.selected{z-index:3;box-shadow:inset 0 0 0 3px #f4e8b4;background:#e2cc7f!important}.battle-cell.legal:after{content:"";z-index:5;pointer-events:none;background:#33574485;border-radius:50%;width:20%;height:20%;position:absolute;inset:40%;box-shadow:0 0 0 4px #3a5a3720}.battle-cell.legal.has-piece:after{background:0 0;border:2px solid #fbefb8;border-radius:4px;width:auto;height:auto;inset:3%;box-shadow:inset 0 0 0 1px #935b36}.battle-cell.last-move:not(.selected){box-shadow:inset 0 0 0 2px #eee1a78c}.battle-cell:active:not(:disabled){filter:brightness(1.06)}.miniature{pointer-events:none;filter:drop-shadow(0 3px 1px #27352f43);transition:transform .14s;display:block;position:absolute;inset:3% 7% 4%}.miniature:before{content:"";background:#8e3e32;border-radius:50%;position:absolute;inset:58% 10% 0;box-shadow:0 2px #632c24,inset 0 1px #db9580}.miniature.blue:before{background:#466f81;box-shadow:0 2px #254c60,inset 0 1px #91b2bf}.miniature-sprite{z-index:1;background-image:url(/assets/army-atlas.webp);background-repeat:no-repeat;background-size:400% 400%;position:absolute;inset:-3% -5% 0}.miniature.blue .miniature-sprite{filter:hue-rotate(155deg)saturate(.65)}.miniature.unknown .miniature-sprite{filter:none}.miniature-rank{color:#fff7de;text-shadow:0 1px #2a2b1b;z-index:3;background:#954331;border:1px solid #f3bf8b77;border-radius:3px;justify-content:center;align-items:center;min-width:35%;height:33%;padding:0 2%;font:700 clamp(9px,1.2vw,16px)/1 ui-sans-serif,system-ui,sans-serif;display:flex;position:absolute;bottom:0;right:-1%;box-shadow:0 1px 2px #223b312a}.miniature.blue .miniature-rank{background:#3e6579;border-color:#aac5cb77}.miniature.unknown .miniature-rank{background:#496d7f;border-color:#b3c9c555;font-size:11px}.miniature.unknown:before{background:linear-gradient(135deg,#7095a4,#3b6174);border-radius:35% 35% 20% 20%;inset:13% 16% 4%;box-shadow:inset 2px 2px #a0bac66b,inset -3px -3px #28495f,0 3px 1px #2d4846}.miniature.unknown:after{content:"";z-index:2;opacity:.55;background:#c8d5c5;border-radius:2px 2px 50% 50%;width:27%;height:29%;position:absolute;top:34%;left:37%}.battle-cell.selected .miniature{transform:translateY(-3px)}.battle-bottomline{color:#7b8073;justify-content:space-between;align-items:center;gap:10px;padding:18px 1px 3px;font-size:11px;display:flex}.battle-legend{align-items:center;gap:16px;display:flex}.battle-legend span{align-items:center;gap:6px;display:flex}.army-swatch{background:#ac4d3f;border-radius:2px;width:9px;height:9px;display:inline-block;box-shadow:0 1px #773528}.army-swatch.blue{background:#547c8e;box-shadow:0 1px #314d59}.board-focus{color:#586958;cursor:pointer;background:0 0;border:0;align-items:center;gap:5px;padding:4px;font-size:11px;font-weight:600;display:inline-flex}.board-focus svg{width:14px;height:14px}.battle-caption{color:#7d8277;text-align:center;margin:9px 0 0;font-size:12px;line-height:1.6}.battle-panel{background:#fffdf6;border:1px solid #e1e2d4;border-radius:8px;margin-top:33px;overflow:hidden;box-shadow:0 4px 14px #3a493a04}.battle-panel-head{border-bottom:1px solid #e6e6da;padding:20px 22px 16px}.battle-panel-head .battle-eyebrow{color:#8a8d7a;font-size:9px}.battle-panel-head h2{color:#293e30;letter-spacing:-.6px;margin:8px 0 4px;font-size:22px;font-weight:700}.battle-panel-head p{color:#7e8273;margin:0;font-size:12px;line-height:1.6}.game-mode{background:#f2f3e9;border:1px solid #e0e5d4;border-radius:5px;align-items:center;gap:11px;margin:18px 20px 0;padding:13px;display:flex}.mode-icon{color:#4b6550;background:#e2e9d8;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.mode-icon svg{width:19px;height:19px}.game-mode strong{color:#2d4638;font-size:12px;font-weight:700;display:block}.game-mode small{color:#7a8474;margin-top:3px;font-size:10px;display:block}.mode-check{color:#66815b;margin-left:auto;font-size:15px}.battle-actions{flex-direction:column;gap:10px;padding:18px 20px;display:flex}.battle-primary,.battle-secondary{cursor:pointer;border-radius:5px;justify-content:center;align-items:center;gap:8px;width:100%;min-height:43px;font:600 12px/1.4 inherit;transition:background .15s;display:flex}.battle-primary{color:#fffdf0;background:#2f5944;border:1px solid #244b36;padding:11px 12px;font-size:12px;font-weight:700;box-shadow:0 2px #1b3e2d}.battle-primary:hover{background:#3c674f}.battle-primary:disabled{opacity:.5;cursor:wait}.battle-primary svg,.battle-secondary svg{width:15px;height:15px}.battle-secondary{color:#6a7562;background:#fffdf6;border:1px solid #dce0d1;padding:10px;font-size:11px;font-weight:600}.battle-secondary:hover{background:#f4f4ea}.battle-action-row{gap:8px;display:flex}.battle-action-row>*{flex:1}.battle-secondary.danger{color:#9b5746}.battle-notice{color:#857b5b;background:#f7f0d7;border:1px solid #eadeb8;border-radius:4px;margin:0 20px 16px;padding:10px 12px;font-size:11px;line-height:1.6}.battle-notice.error{color:#8b4f3c;background:#fff0e9;border-color:#ebc8b8}.battle-notice button{cursor:pointer;color:inherit;font:inherit;background:0 0;border:0;padding:0;text-decoration:underline}.battle-section{border-top:1px solid #e6e6da;padding:18px 22px}.battle-section h3{text-transform:uppercase;letter-spacing:.12em;color:#8b8f7e;margin:0 0 12px;font-size:9px;font-weight:800}.battle-tip{color:#7b8170;margin:0;font-size:12px;line-height:1.7}.battle-tip strong{color:#4e6351;font-weight:600}.battle-selection{align-items:center;gap:10px;min-height:57px;display:flex}.selection-model{flex-shrink:0;width:48px;height:52px;position:relative}.selection-copy strong{color:#354d3b;font-size:13px;display:block}.selection-copy small{color:#7c8373;margin-top:4px;font-size:11px;line-height:1.55;display:block}.battle-links{border-top:1px dashed #e0e3d5;justify-content:space-between;margin-top:15px;padding-top:14px;display:flex}.battle-links a{color:#587150;font-size:11px;text-decoration:none}.battle-links a:hover{text-decoration:underline}.battle-history{padding:0 22px 18px}.battle-history summary{color:#718168;cursor:pointer;padding:4px 0;font-size:10px;font-weight:700}.battle-history ol{max-height:174px;margin:10px 0 0;padding:0;list-style:none;overflow:auto}.battle-history li{color:#7a816f;border-top:1px solid #eeeee4;padding:7px 0;font-size:10px;line-height:1.6}.battle-history li:first-child{color:#385840}.captured-line{color:#77816e;justify-content:space-between;font-size:11px;line-height:1.8;display:flex}.captured-line strong{color:#4b634e;font-weight:600}.result-banner{background:#e7eddb;border-bottom:1px solid #d6e0c6;padding:18px 20px}.result-banner strong{color:#375335;margin-bottom:5px;font-size:22px;display:block}.result-banner p{color:#6f7b60;margin:0;font-size:12px;line-height:1.5}.battle-sr{clip:rect(0,0,0,0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.battle-restore{color:#58654b;background:#eef0e0;border:1px solid #dfe3ca;border-radius:5px;justify-content:space-between;align-items:center;gap:10px;margin-bottom:15px;padding:12px;font-size:12px;display:flex}.battle-restore button{font:inherit;color:#365840;cursor:pointer;background:0 0;border:0;text-decoration:underline}.battle-station.focused{z-index:1000;background:#f4f2e7;justify-content:center;margin:0;padding:24px;display:flex;position:fixed;inset:0;overflow:auto}.battle-station.focused .battle-stage{width:min(76vh,820px);max-width:100%}.battle-station.focused .battle-panel{display:none}.battle-station.focused .battle-toolbar{margin-top:0}.battle-station.focused .board-focus{font-size:13px}.battle-station.focused .miniature-rank{font-size:clamp(10px,2vh,16px)}.battle-board-scroll{min-width:0}.battle-view-actions{align-items:center;gap:8px;display:flex}.battle-board-scroll.zoomed{overscroll-behavior:contain;max-height:75vh;padding-bottom:8px;overflow:auto}.battle-board-scroll.zoomed .board-frame{box-sizing:border-box;width:max(100%,650px)}.battle-board-scroll.zoomed .miniature-rank{font-size:15px}.battle-primary,.battle-secondary{font-family:inherit;transition:none}@keyframes turn-pulse{50%{opacity:.4;box-shadow:0 0 0 5px #64899b10}}@media (width>=1200px){.battle-station{grid-template-columns:minmax(0,1fr) 292px;gap:32px}.battle-panel-head{padding:22px 24px 18px}.battle-actions{padding:20px 22px}.game-mode{margin-left:22px;margin-right:22px}}@media (width<=800px){.battle-station{grid-template-columns:minmax(0,1fr) 236px;gap:18px}.battle-panel-head{padding:15px}.battle-panel-head h2{font-size:20px}.battle-actions{padding:14px}.game-mode{gap:8px;margin:14px 14px 0;padding:9px}.battle-section{padding:15px}.battle-history{padding-left:15px;padding-right:15px}.battle-notice{margin-left:14px;margin-right:14px}.board-frame{padding:19px}.board-files{font-size:8px;left:19px;right:19px}.board-ranks{width:15px;font-size:8px;top:19px;bottom:19px}.board-ranks.left{left:1px}.board-ranks.right{right:1px}.miniature-rank{font-size:10px}}@media (width<=640px){.battle-station{grid-template-columns:1fr;gap:8px;margin-top:22px}.battle-toolbar{margin-bottom:11px}.battle-panel{grid-template-columns:1fr 1fr;margin-top:7px;display:grid}.battle-panel-head{border-bottom:0;padding:16px}.battle-panel-head h2{font-size:19px}.battle-panel-head p{font-size:11px}.game-mode{align-self:start;margin:15px 15px 0 0;padding:9px}.mode-icon{width:27px;height:27px}.game-mode strong{font-size:11px}.battle-actions{grid-column:1/-1;grid-template-columns:1.15fr 1fr;padding:5px 15px 16px;display:grid}.battle-actions .battle-tip,.battle-actions .battle-action-row,.battle-section,.battle-history,.battle-notice,.result-banner{grid-column:1/-1}.battle-section{padding:16px}.battle-section h3{margin-bottom:8px}.battle-selection{min-height:40px}.battle-history{padding-bottom:15px}.battle-caption{margin-top:4px;font-size:11px}.battle-bottomline{padding-top:16px;font-size:10px}.board-frame{border-radius:7px;padding:16px;box-shadow:0 3px #25352a,0 5px #29352b,0 9px 16px #273c321c}.board-frame:before{inset:6px}.board-files{font-size:7px;line-height:13px;left:16px;right:16px}.board-files.top{top:1px}.board-files.bottom{bottom:1px}.board-ranks{width:11px;font-size:7px;top:16px;bottom:16px}.board-ranks.left{left:2px}.board-ranks.right{right:2px}.battle-cell.selected{box-shadow:inset 0 0 0 2px #f4e8b4}.miniature{inset:3% 5% 5%}.miniature-rank{border-radius:2px;min-width:37%;height:35%;font-size:9px;bottom:-2%;right:-2%}.miniature.unknown .miniature-rank{font-size:9px}.battle-station.focused{padding:15px 8px}.battle-station.focused .battle-stage{width:100%;min-width:0}.battle-station.focused .battle-grid{min-width:0}.battle-restore{font-size:11px}.battle-legend{gap:12px}}@media (prefers-reduced-motion:reduce){.miniature,.battle-primary,.battle-secondary{transition:none}.battle-dot.thinking{animation:none}}.battle-station{grid-template-columns:minmax(0,620px) 292px;gap:32px;max-width:944px}.battle-station.focused{gap:0;max-width:none}.battle-row{display:contents}.miniature.unknown:before,.miniature.unknown:after{display:none}.miniature-sprite.atlas-trim-top{clip-path:inset(4% 0 0)}@media (width<=1000px){.battle-station{grid-template-columns:minmax(0,1fr) 260px;gap:22px}}@media (width<=900px){.battle-station{grid-template-columns:minmax(0,1fr);gap:8px;max-width:620px}.battle-panel{grid-template-columns:1fr 1fr;margin-top:7px;display:grid}.battle-panel-head{border-bottom:0;padding:16px}.battle-panel-head h2{font-size:19px}.battle-panel-head p{font-size:11px}.game-mode{align-self:start;margin:15px 15px 0 0;padding:9px}.battle-actions{grid-column:1/-1;grid-template-columns:1.15fr 1fr;padding:5px 15px 16px;display:grid}.battle-actions .battle-tip,.battle-actions .battle-action-row,.battle-section,.battle-history,.battle-notice,.result-banner{grid-column:1/-1}.battle-station.focused{max-width:none}}@media (width<=640px){.battle-panel-head{padding:13px 15px 11px}.battle-panel-head h2{margin:5px 0 0;font-size:17px}.battle-panel-head p{display:none}.game-mode{margin-top:11px}.battle-view-actions{gap:3px}.battle-station.focused{gap:0}.battle-panel-head,.battle-panel .game-mode{display:none}.battle-actions{padding-top:15px}.battle-station{margin-top:12px}}
