.wango-platform{background:#122e2b;color:#fff;font:14px/1.5 system-ui,sans-serif;position:relative;z-index:5}.wango-platform nav{max-width:1400px;margin:auto;display:flex;gap:22px;align-items:center;padding:14px 24px;flex-wrap:wrap}.wango-platform a{color:inherit;text-decoration:none}.wango-platform a:hover{text-decoration:underline}.wango-platform a:focus-visible{outline:2px solid #ffc768;outline-offset:4px}.wango-wordmark{font-weight:800;letter-spacing:1px;margin-right:auto}.wango-context{background:#e8f1eb;color:#27453b;padding:10px 24px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.wango-context a{font-weight:700}@media(max-width:600px){.wango-platform nav{gap:12px;padding:12px 16px}.wango-wordmark{width:100%}.wango-context{font-size:12px;padding:10px 16px}}.player-console .draw-count-button{display:flex;flex-direction:row;gap:9px;align-items:center;min-height:55px;padding:8px 10px;border:1px solid #31573b;box-shadow:0 2px #25432c;background:#365d40;color:#fff}.draw-count-number{display:flex;align-items:baseline;gap:2px;flex-shrink:0;border-right:1px solid #ffffff40;padding-right:9px}.draw-count-number b{font-size:27px;line-height:1;font-variant-numeric:tabular-nums}.draw-count-number small{font-size:10px}.draw-count-copy{display:flex;flex-direction:column;align-items:start;gap:3px}.draw-count-copy strong{font-size:12px;line-height:1.3}.draw-count-copy small{font-size:10px;white-space:nowrap;opacity:.85}.player-console .draw-count-button:disabled{background:#e6eadd;color:#68775b;border-color:#cbd3bf;box-shadow:none;opacity:1}.draw-count-button:disabled .draw-count-number{border-color:#bac5ae}.skill-draw-count{display:flex;align-items:center;gap:10px;flex-wrap:wrap;width:100%;padding:10px 12px;border-radius:9px;border:1px solid #d9bb62;background:#fff4cf;color:#73541c}.skill-draw-count>span:first-child{font-size:12px;font-weight:700}.skill-draw-count strong{font-size:30px;line-height:1.1}.skill-draw-count strong small{font-size:12px}.skill-draw-count>span:last-child{width:100%;font-size:10px;opacity:.85}.player-console .inline-effect:has(.skill-draw-count){border:1px solid #d9bb62}.hand-draw-skill{display:block;margin-top:4px;padding:3px 5px;border-radius:5px;background:#f7df93;color:#684a12;border:1px solid #ddbf6c;font-size:10px;line-height:1.2;font-weight:700;white-space:nowrap}.hand-draw-skill strong{font-size:14px}.game-shell .player-console .hand-rack-shell .hand-tile.has-placement-space{height:140px}.hand-rack-shell .hand-tile:has(.hand-draw-skill){height:140px}@media(max-width:850px){.player-console .draw-count-button{min-height:46px;gap:6px;padding:6px 8px}.draw-count-number{padding-right:6px}.draw-count-number b{font-size:24px}.draw-count-copy strong{font-size:11px}.draw-count-copy small{font-size:9px}.game-shell .player-console .hand-rack-shell .hand-tile.has-placement-space{height:116px}.hand-rack-shell .hand-tile:has(.hand-draw-skill){height:116px}.hand-draw-skill{font-size:9px;padding:2px 3px}.hand-draw-skill strong{font-size:12px}.skill-draw-count{gap:6px;padding:8px 10px}.skill-draw-count strong{font-size:25px}}@media(max-width:380px){.player-console .rack-topline{flex-wrap:wrap}.player-console .draw-count-button{width:100%;justify-content:center}.draw-count-copy{flex-direction:row;align-items:center;gap:12px}}.player-console .draw-count-button small{color:inherit}.player-console .draw-count-button:disabled .draw-count-copy small{opacity:1}.hand-rack-shell .hand-tile:disabled:has(.hand-draw-skill){opacity:1}.hand-tile:disabled:has(.hand-draw-skill)>.troop-art{opacity:.62}.audio-controls{display:flex;align-items:center;gap:6px;flex-shrink:0}.music-toggle{position:relative;flex-shrink:0}.music-toggle[aria-pressed=true]{background:#eaf0df;color:#426342}.music-indicator{position:absolute;bottom:5px;right:5px;display:flex;align-items:end;gap:1px;height:8px}.music-indicator i{height:3px;width:2px;border-radius:1px;background:currentColor}.music-toggle:not([aria-pressed=true]) .music-indicator{display:none}.is-playing .music-indicator i{animation:music-meter .8s ease-in-out infinite alternate}.is-playing .music-indicator i:nth-child(2){animation-delay:-.3s}.is-playing .music-indicator i:nth-child(3){animation-delay:-.6s}@keyframes music-meter{to{height:8px}}@media(prefers-reduced-motion:reduce){.is-playing .music-indicator i{animation:none;height:6px}}@media(max-width:560px){.header-inner{flex-wrap:wrap;height:auto;min-height:62px;padding-top:9px;padding-bottom:6px}.header-inner .audio-controls{margin-left:auto}.header-inner nav{order:3;width:100%;justify-content:space-around;margin-left:0;height:30px}.online-header{flex-wrap:wrap}.online-header .audio-controls{gap:3px}.audio-controls .icon-button{width:32px;height:32px}}.victory-stage{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;flex-wrap:wrap;gap:16px;padding:24px 18px;margin:0 0 18px;border:1px solid #e5d69f;border-radius:15px;background:radial-gradient(ellipse at 18% 30%,#fff4c9 0,transparent 65%),#faf5e6;animation:victory-arrive .5s ease-out both}.victory-cup{position:relative;display:grid;place-items:center;flex-shrink:0;width:78px;height:78px;border-radius:50%;color:#a07114;background:linear-gradient(135deg,#fff6c9,#eed080);box-shadow:0 0 0 7px #e9d08a25;animation:victory-cup .85s cubic-bezier(.18,.8,.3,1.3) both}.victory-cup>span{position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border:1px solid #c8a44160;border-radius:50%;animation:victory-ring 1.6s ease-out 2}.victory-sparkle{position:absolute;right:-4px;top:0;color:#b48824;animation:victory-twinkle 1s ease-in-out 3}.victory-heading{display:flex;flex-direction:column;gap:6px;position:relative;z-index:1}.victory-heading>span{font-size:11px;letter-spacing:3px;color:#988041}.victory-heading>strong{font-size:25px;color:#475c36}.victory-replay{display:flex;align-items:center;gap:5px;color:#836522;background:#fffaf0c9;border:1px solid #e0d19c;border-radius:20px;font-size:11px;padding:7px 10px;margin-left:auto;position:relative;z-index:1;min-height:32px}.victory-replay:hover{background:#f2e4b8}.victory-confetti{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0}.victory-confetti i{position:absolute;left:var(--x);top:-15px;width:7px;height:12px;border-radius:2px;background:var(--color);opacity:0;animation:victory-fall 2.8s ease-in var(--delay) both}.victory-confetti i:nth-child(3n){border-radius:50%;height:7px}.match-outcome.blue .match-trophy{animation:victory-cup .7s ease-out both}.online-game .victory-stage{order:0;flex-shrink:0}.online-game .victory-stage .victory-heading>strong{font-size:21px}@keyframes victory-fall{0%{opacity:0;transform:translate3d(0,-10px,0) rotate(0)}12%{opacity:1}80%{opacity:1}to{opacity:0;transform:translate3d(var(--drift),260px,0) rotate(var(--spin))}}@keyframes victory-arrive{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}@keyframes victory-cup{0%{opacity:0;transform:scale(.55) rotate(-16deg)}65%{opacity:1;transform:scale(1.09) rotate(6deg)}to{opacity:1;transform:none}}@keyframes victory-ring{0%{transform:scale(.85);opacity:.8}to{transform:scale(1.3);opacity:0}}@keyframes victory-twinkle{50%{transform:scale(1.2) rotate(12deg);opacity:.5}}@media(max-width:560px){.victory-stage{padding:18px 14px;gap:12px}.victory-cup{width:60px;height:60px}.victory-cup>svg:first-of-type{width:36px}.victory-heading>strong{font-size:21px}.victory-replay{margin-left:72px}.online-game .victory-stage{padding:10px;margin-bottom:0}.online-game .victory-cup{width:40px;height:40px}.online-game .victory-heading>strong{font-size:17px}.online-game .victory-replay{margin-left:0}}@media(prefers-reduced-motion:reduce){.victory-stage,.victory-cup,.victory-cup>span,.victory-sparkle,.victory-confetti i,.match-outcome.blue .match-trophy{animation:none}.victory-confetti{display:none}}.board-frame.supply-focus{--supply-focus-color: #286f91;--supply-focus-paper: #f4f8e8}.board-frame.supply-focus-red{--supply-focus-color: #a34532;--supply-focus-paper: #fff2df}.board-frame.supply-focus .focused-supply-edge .path-shadow{stroke:#fff5d8;stroke-width:2;opacity:.95}.board-frame.supply-focus .focused-supply-edge .path-road{stroke:var(--supply-focus-color);stroke-width:1.1;stroke-dasharray:none;opacity:1}.board-frame.supply-focus .supply-island-edge .path-road{stroke-dasharray:1.5 1.15}.board-frame.supply-focus .board-node.supply-route-node:after,.board-frame.supply-focus .board-node.supply-network-node:after,.board-frame.supply-focus .board-node.supply-island-node:after{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border:2px solid var(--supply-focus-color);border-radius:13px;box-shadow:0 0 0 1px #fff8df;pointer-events:none}.board-frame.supply-focus .board-node.supply-island-node:after{border-style:dashed}.board-frame.supply-focus .board-node.supply-inspect-target{box-shadow:0 0 0 3px #fff7d8,0 3px 0 var(--supply-focus-color)}.board-frame.supply-focus .board-node>.supply-route-index,.board-frame.supply-focus .board-node>.supply-disconnected-label{position:absolute;right:-7px;top:-9px;z-index:4;display:grid;place-items:center;box-sizing:border-box;min-width:21px;min-height:21px;padding:1px 3px;border:2px solid var(--supply-focus-paper);border-radius:6px;background:var(--supply-focus-color);color:#fffdf1;font:700 11px/15px Arial,sans-serif;white-space:nowrap;pointer-events:none}.board-frame.supply-focus .board-node>.supply-disconnected-label{right:-4px;font-size:9px}.board-frame.supply-focus .board-node.supply-top-row>.supply-route-index,.board-frame.supply-focus .board-node.supply-top-row>.supply-disconnected-label{top:1px}.board-frame.supply-focus>.supply-focus-legend{position:static;display:flex;align-items:flex-start;gap:5px;max-width:100%;padding:7px 2px 1px;color:var(--supply-focus-color);font-size:10px;line-height:1.5}.board-frame.supply-focus>.supply-focus-legend>svg{flex-shrink:0;margin-top:1px}.board-frame.supply-focus>.supply-focus-legend>span{min-width:0;overflow-wrap:anywhere}@media(max-width:560px){.board-frame.supply-focus .board-node.supply-route-node:after,.board-frame.supply-focus .board-node.supply-network-node:after,.board-frame.supply-focus .board-node.supply-island-node:after{top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:10px}.board-frame.supply-focus .board-node>.supply-route-index,.board-frame.supply-focus .board-node>.supply-disconnected-label{top:-8px;right:-3px;min-width:19px;min-height:19px;border-width:1px;font-size:10px;line-height:15px}.board-frame.supply-focus .board-node>.supply-disconnected-label{font-size:9px}}.play-layout:has(.castle-board){grid-template-columns:minmax(0,540px) minmax(240px,300px);justify-content:center}.castle-board.board-frame{padding:5px;border:1px solid #535c46;border-radius:9px;background:#3c4835;box-shadow:0 4px #29362b,0 8px 18px #25312326}.arena-column .castle-board.board-frame .board-map{height:auto;aspect-ratio:1000 / 1667;border:0;border-radius:5px;background:#88b64a;overflow:hidden}.castle-board .map-paper{background:url(/toy-battle/assets/official-boards.jpg) 0 0 / 400% 200% no-repeat;z-index:-1}.castle-board .map-paper:after{display:none}.castle-board .board-paths path{fill:none;stroke-linecap:round;stroke-linejoin:round}.castle-board .board-paths g:not(.supply-path):not(.available-path):not(.focused-supply-edge){opacity:0}.castle-board .region-area{fill:transparent}.castle-board .region-area.blue{fill:#487eaf20}.castle-board .region-area.red{fill:#b9524220}.castle-board .region-area.region-focused{fill:#fff0a63d;stroke:#ffedb5;stroke-width:.4}.castle-board .region-area.region-tracked{fill:#ffdc753d;stroke:#ffe9a7;stroke-width:.6}.castle-board .board-map .board-node{width:13.2%;height:7.9184%;border-radius:12%}.castle-board .board-map .board-node.empty{background:transparent;box-shadow:none;border:2px solid transparent}.castle-board .board-node.empty:not(.legal) .base-center{visibility:hidden}.castle-board .board-map .board-node.empty:hover{background:#fff9d630;border-color:#fff8daaa}.castle-board .board-map .board-node.hq.empty{width:23%;height:12%}.castle-board .board-map .board-node.empty.legal{background:#e6ffc350;border-color:#f7ffcf;box-shadow:0 0 0 2px #3d702c}.castle-board .board-map .board-node.empty.legal .base-center{color:#2b4a1a;text-shadow:0 1px #fff}.castle-board .board-map .board-node .hq-caption{position:absolute;bottom:-5px;left:50%;transform:translate(-50%);border-radius:3px;padding:2px 5px;background:#204f6ee8;color:#fffbea;font-size:9px;line-height:1.4;white-space:nowrap}.castle-board .board-map .board-node.red .hq-caption{background:#923b2de8}.castle-board .board-node.occupied{border-width:2px}.castle-board .board-map .board-node.previewable:before{border-color:#fff9d8;box-shadow:0 0 0 1px #3a612f}.castle-board .board-map .board-node.region-member{box-shadow:0 0 0 3px #fff4c8,0 0 0 5px #a77d2c}.castle-board .board-node:focus-visible{outline-color:#ffec97;outline-offset:4px}.castle-board .region-medals{width:10.5%;height:6.3%;min-width:28px;min-height:28px}.castle-board .medal-stack{position:relative;display:block;width:100%;height:100%}.castle-board .medal-counter{position:absolute;width:46%;height:46%;border-radius:50%;background:#334038;color:#ffe26b;border:1px solid #627369;box-shadow:0 3px #172820,inset 0 1px 1px #a6b3a177;display:grid;place-items:center}.castle-board .medal-counter svg{width:72%;height:72%}.castle-board .medals-1 .medal-counter{left:27%;top:27%}.castle-board .medals-2 .medal-counter:first-child{left:0;top:22%}.castle-board .medals-2 .medal-counter:last-child{right:0;top:36%}.castle-board .medals-3 .medal-counter:first-child{left:27%;top:0}.castle-board .medals-3 .medal-counter:nth-child(2){left:0;bottom:4%}.castle-board .medals-3 .medal-counter:nth-child(3){right:0;bottom:4%}.castle-board .claimed.blue .medal-counter{background:#346b94;color:#fff6d0}.castle-board .claimed.red .medal-counter{background:#a54836;color:#fff6d0}.castle-board .tracked-medals .medal-stack{outline:2px solid #ffe69b;outline-offset:2px;border-radius:5px}.castle-board.board-frame>.board-compass{position:static;display:flex;align-items:center;gap:5px;padding:7px 5px 2px;color:#edf0d8;font-size:10px;line-height:1.5}.castle-board.board-frame.supply-focus>.supply-focus-legend{color:#edf0d8}@media(max-width:850px){.play-layout:has(.castle-board){grid-template-columns:minmax(0,540px)}}@media(max-width:370px){.castle-board .board-strength{min-width:18px;height:18px;font-size:11px;line-height:14px}.castle-board .stack-count{font-size:8px;padding:1px 2px}.castle-board .board-map .board-node .hq-caption{font-size:8px;padding:1px 3px}}.hand-rack-shell{width:100%;min-width:0}.hand-rack-shell>.hand-rack{max-width:100%;min-width:0;overscroll-behavior-x:contain;touch-action:pan-x pan-y;scroll-behavior:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.hand-rack-shell>.hand-rack::-webkit-scrollbar{display:none}.hand-rack-shell .hand-tile.has-placement-space{height:116px}.hand-rack-shell .hand-placement-count{display:block;flex-shrink:0;margin-top:4px;padding:1px 2px;border-radius:3px;background:#e0eced;color:#336780;font-size:10px;font-weight:600;line-height:1.5;white-space:nowrap}.hand-rack-shell .hand-tile.has-placement-space .selected-tick{top:-7px;bottom:auto}.hand-rack-shell .hand-tile.no-placement:not(.selected){border-color:#c2c9b7;background:#eef0e7;box-shadow:0 2px 3px #5564410d}.hand-rack-shell .hand-tile.no-placement:not(.selected) .troop-strength{background:#687767}.hand-rack-shell .hand-tile.no-placement .hand-placement-count{background:#e2e6d9;color:#536348}.hand-rack-shell .hand-rack-controls{display:flex;align-items:center;gap:10px;padding:0 13px 7px;margin-top:-3px}.hand-rack-shell .hand-rack-scroll{display:grid;place-items:center;flex:0 0 44px;width:44px;height:36px;border:1px solid #d7dfce;border-radius:7px;background:#f3f5eb;color:#526947;padding:0}.hand-rack-shell .hand-rack-scroll:enabled:hover{background:#e8eedd;border-color:#a9bb99}.hand-rack-shell .hand-rack-scroll:disabled{color:#aab3a1;border-color:#e3e8dd;background:#f8f9f3}.hand-rack-shell .hand-rack-scroll:focus-visible{outline:2px solid #46799b;outline-offset:2px}.hand-rack-shell .hand-rack-more{display:flex;justify-content:center;align-items:baseline;gap:9px;flex:1;min-width:0;color:#728368;font-size:11px;line-height:1.4}.hand-rack-shell .hand-rack-more small{flex-shrink:0;font-size:10px;font-variant-numeric:tabular-nums;color:#819075}@media(max-width:560px){.hand-rack-shell .hand-tile.has-placement-space{height:108px}}@media(max-width:420px){.hand-rack-shell .hand-rack-controls{gap:8px;padding-right:10px;padding-left:10px}.hand-rack-shell .hand-rack-more{gap:6px;font-size:10px}}@media(prefers-reduced-motion:reduce){.hand-rack-shell>.hand-rack{scroll-behavior:auto}.hand-rack-shell .hand-tile{transition:none}}.online-lobby{max-width:1000px;margin:auto;padding:24px;color:#294131}.online-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:26px}.online-header>strong{display:flex;align-items:center;gap:8px}.online-intro{padding:35px 0}.online-intro h1{font-size:clamp(28px,5vw,44px);margin:10px 0}.online-intro p,.network-help{color:#67745a;line-height:1.8}.lobby-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.lobby-card{background:#fffef8;border:1px solid #d3ddc8;border-radius:20px;padding:26px;display:flex;flex-direction:column;gap:18px}.lobby-card h2{margin:0}.lobby-card label{display:flex;flex-direction:column;gap:8px;font-weight:600}.lobby-card input:not([type=checkbox]),.lobby-card select,.invite-panel input{font:inherit;width:100%;min-height:46px;padding:10px;border:1px solid #bac8b0;border-radius:8px;background:#fff;box-sizing:border-box}.lobby-card .online-checkbox{flex-direction:row;align-items:center}.lobby-card p{font-size:13px;color:#6b785e;line-height:1.7;flex:1;margin:0}.lobby-card .primary-button{justify-content:center;min-height:46px}.online-error{background:#fff0e8;color:#a4402d;border-radius:8px;padding:12px;font-size:13px;line-height:1.5;margin:0;order:-1}.online-room-bar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:22px;padding:18px 22px;border:1px solid #cbd7c0;border-radius:16px;background:#f4f6ec}.room-code{display:block;font-size:28px;letter-spacing:5px;font-variant-numeric:tabular-nums}.connection-state{display:flex;align-items:center;gap:5px;font-size:12px;margin-top:7px;color:#69795e}.invite-panel{background:#eef2e3;border-radius:12px;padding:18px;margin-bottom:20px}.invite-panel p{font-size:13px;color:#637554}.online-game .arena-heading{gap:12px;flex-wrap:wrap}.online-game .arena-heading>span{font-size:11px}.online-game .opponent-bar{font-size:12px;gap:10px}.online-game .rack-caption{font-size:12px;line-height:1.7}.online-game .draw-button{display:flex;flex-direction:column;gap:3px}.online-result{padding:18px;border:1px solid #ccdac0;border-radius:12px;background:#edf2e3;order:2}.online-result p{font-size:13px}.online-log{font-size:12px;line-height:1.7;color:#617252;order:5}.online-log p{margin:5px 0}.online-detail{white-space:pre-line;line-height:1.9}.hand-tile.red .troop-strength{background:#b65b44}.hand-tile.red.selected{border-color:#b55b44}.side-red .turn-pip{background:#b65b44}@media(max-width:850px){.online-game .online-log{display:none}.online-game .online-header{margin-bottom:16px}.online-room-bar{padding:12px;gap:8px;flex-wrap:wrap}.room-code{font-size:23px}.online-game .player-console>.online-result{margin:0}.online-lobby{padding:18px}.online-header .secondary-button{font-size:12px}.online-header>strong{font-size:14px}}@media(max-width:560px){.lobby-grid{grid-template-columns:1fr}.online-intro{padding:18px 0}.lobby-card{padding:20px}.online-room-bar .secondary-button{padding:8px}.connection-state{font-size:10px}}@media(max-width:560px){.header-inner nav{gap:10px}.header-inner nav button{white-space:nowrap}.header-inner nav button svg{display:none}}.map-switch{display:inline-flex;align-items:center;gap:4px;border:1px solid #bac4ab;background:#eef1e6;color:#34593c;border-radius:7px;padding:7px 9px;font-weight:700;font-size:12px}.map-picker-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.map-option{border:2px solid #dbe0d2;border-radius:10px;padding:7px;background:#fafaf5;text-align:left;min-width:0;color:#304437;transition:border-color .15s,background .15s}.map-option:hover{border-color:#91a880}.map-option.selected{border-color:#3e6d45;background:#eaf0e1;box-shadow:0 0 0 2px #3e6d4518}.map-thumbnail{display:block;position:relative;aspect-ratio:1000/1667;border-radius:5px;background-image:url(/toy-battle/assets/official-boards.jpg);background-size:400% 200%;overflow:hidden}.map-choice-check{position:absolute;right:5px;top:5px;color:#fff;background:#31593c;border-radius:50%;display:grid;place-items:center}.selected .map-choice-check{width:25px;height:25px}.map-option strong{display:block;margin:9px 0 3px;font-size:14px}.map-option small{display:block;font-size:8px;letter-spacing:.5px;color:#74836a;min-height:20px}.map-stats{display:flex;align-items:center;gap:3px;flex-wrap:wrap;font-size:10px;color:#637356}.map-selection-detail{margin-top:16px;background:#edf0e3;border-radius:9px;padding:13px 16px}.map-selection-detail p{font-size:13px;line-height:1.7;margin:5px 0 0}.terrain-mode-toggle{display:flex;align-items:center;gap:12px;margin:16px 0;cursor:pointer}.terrain-mode-toggle input{width:19px;height:19px;accent-color:#3d6541}.terrain-mode-toggle strong,.terrain-mode-toggle small{display:block}.terrain-mode-toggle small{margin-top:5px;color:#77816c;line-height:1.5}.map-picker-footer{display:flex;justify-content:space-between;gap:12px;padding-top:12px;border-top:1px solid #dfe4d7}.terrain-choices{display:flex;flex-wrap:wrap;gap:8px;max-height:220px;overflow:auto;padding:12px;background:#f0f2e6;border:1px solid #dce4ce;border-radius:10px;margin:10px 0}.terrain-choices button{border:1px solid #bbcaac;border-radius:6px;background:#fff;padding:9px;color:#38563a;font-size:12px}.terrain-choices button:disabled{opacity:.5}.terrain-note{padding:10px;background:#fff1cf;border-radius:8px;font-size:12px}@media(max-width:600px){.map-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.map-thumbnail{aspect-ratio:1000/1667;margin:auto}.map-picker-footer{position:sticky;bottom:-1px;background:#fafaf5;padding:12px 0}.map-picker-footer button{padding:11px;font-size:12px}}.game-shell .play-layout:has(.castle-board){grid-template-columns:minmax(320px,min(500px,calc((100svh - 250px)*.6))) minmax(330px,400px);gap:22px 28px;justify-content:center}.game-shell .arena-column{grid-column:1;grid-row:1}.game-shell .player-console{grid-column:2;grid-row:1;position:sticky;top:18px;min-width:0;display:flex;flex-direction:column;gap:10px;padding-top:1px}.player-console>.turn-banner{order:0;margin:0;flex-wrap:wrap;min-height:35px}.player-console>.turn-banner .turn-instruction{order:4;width:100%;padding-left:17px}.player-console>.rack-panel{order:1;border:1px solid #aabb9e;box-shadow:0 8px 30px #334f2e12}.player-console .rack-topline{gap:9px;padding:14px 12px 8px}.player-console .rack-topline .player-avatar{display:none}.player-console .rack-topline .player-label strong{font-size:14px}.player-console .draw-button{min-height:44px;padding:9px 10px}.player-console .draw-button>svg:last-child{display:none}.player-console .hand-rack{padding-top:16px;padding-bottom:16px}.player-console>.inline-effect{order:2;margin:0;flex-wrap:wrap}.player-console>.terrain-choices,.player-console>.terrain-note{order:3;margin:0}.player-console>.action-feedback{order:4;margin:0}.player-console.has-pending>.inline-effect{order:1}.player-console.has-pending>.terrain-choices{order:2}.player-console.has-pending>.rack-panel{order:3}.game-shell .play-layout>.game-sidebar{grid-column:1 / -1;grid-row:2;padding-top:2px;display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:18px}.game-shell .game-sidebar>.mission-panel{grid-column:1;grid-row:1 / 3}.game-shell .game-sidebar>.selection-panel,.game-shell .game-sidebar>.log-panel{grid-column:2}.game-shell .game-sidebar>.mode-note{grid-column:1 / -1}@media(max-width:850px){.game-shell .play-layout:has(.castle-board){grid-template-columns:minmax(0,500px);gap:20px}main.game-shell{padding-bottom:calc(var(--console-height, 300px) + 24px)}.game-shell .player-console{position:fixed;top:auto;bottom:0;left:0;right:0;z-index:35;grid-column:auto;grid-row:auto;max-height:48svh;overflow-y:auto;overscroll-behavior-y:contain;padding:8px max(10px,env(safe-area-inset-left)) max(8px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-right));background:#fafbf5;border-top:1px solid #b8c6aa;border-radius:15px 15px 0 0;box-shadow:0 -6px 24px #263f2920;gap:6px}.player-console>*{flex-shrink:0}.player-console>.turn-banner{min-height:23px;gap:4px 7px}.player-console>.turn-banner .turn-instruction{display:none}.player-console>.turn-banner strong{font-size:12px}.player-console>.rack-panel{border-radius:9px;box-shadow:none}.player-console .rack-topline{padding:7px 10px 4px}.player-console .rack-topline .player-label strong{font-size:12px}.player-console .draw-button{min-height:38px;padding:6px 9px}.player-console .hand-rack{min-height:0;padding:10px 12px 8px;gap:11px}.player-console .hand-rack-shell .hand-tile.has-placement-space{height:92px}.player-console .hand-tile{width:64px}.player-console .hand-tile>.troop-art{width:47px;height:46px}.player-console .tile-name{font-size:10px}.player-console .hand-placement-count{font-size:9px;margin-top:2px}.player-console .rack-caption{min-height:33px;padding:5px 10px}.player-console .hand-rack-controls{padding-bottom:5px}.player-console .hand-rack-scroll{height:27px}.player-console .selection-caption p{font-size:11px;line-height:1.5}.player-console .action-feedback{font-size:11px;padding:7px 10px}.player-console .terrain-choices{max-height:140px}.arena-column .board-node{scroll-margin-bottom:calc(var(--console-height, 300px) + 20px)}.game-shell .play-layout>.game-sidebar{grid-column:1}}@media(max-width:560px){.game-shell .play-layout>.game-sidebar{grid-template-columns:1fr}.game-shell .game-sidebar>.mission-panel,.game-shell .game-sidebar>.selection-panel,.game-shell .game-sidebar>.log-panel{grid-column:1;grid-row:auto}}.supply-details{min-width:0;margin-top:18px;padding-top:13px;border-top:1px solid #dfe3d5;color:#5d7051}.supply-details.blue{color:#376f93}.supply-details.red{color:#a4543e}.supply-details-summary{display:flex;align-items:flex-start;gap:8px}.supply-details-summary>svg{flex-shrink:0;margin-top:2px}.supply-details-copy{flex:1;min-width:0}.supply-details-heading{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:4px 10px}.supply-details .supply-details-heading h3{margin:0;font-size:13px;line-height:1.5;font-weight:600;overflow-wrap:anywhere}.supply-details-heading>span{flex-shrink:0;font-size:10px;line-height:1.5}.supply-details .supply-details-copy>p{margin:5px 0 0;color:#66755a;font-size:12px;line-height:1.8;overflow-wrap:anywhere}.supply-details-route{min-width:0;margin-top:11px}.supply-details .supply-route-caption{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:3px 9px;margin:0 0 7px;color:#69765f;font-size:10px;line-height:1.5}.supply-details .supply-route-list{display:flex;flex-wrap:wrap;align-items:center;gap:6px 4px;min-width:0;max-width:100%;padding:0;margin:0;list-style:none}.supply-route-list>li{display:flex;align-items:center;gap:4px;min-width:0;max-width:100%}.supply-route-arrow{flex-shrink:0;color:#7a886d}.supply-details .supply-route-step{display:inline-flex;align-items:center;justify-content:flex-start;gap:5px;min-width:0;min-height:36px;max-width:100%;padding:6px 8px;border:1px solid #d5e1df;border-radius:5px;background:#eef3ec;color:#426e80;font-size:11px;line-height:1.5;text-align:left}.supply-details.red .supply-route-step{background:#f5eee5;border-color:#e4d6c7;color:#94513e}.supply-route-step>span:not(.supply-route-number){min-width:0;overflow-wrap:anywhere}.supply-route-number{flex-shrink:0;min-width:13px;color:#64755c;font-size:10px;font-variant-numeric:tabular-nums;text-align:center}.supply-details .supply-route-step.current{border-style:dashed;background:#faf9f2;font-weight:600}.supply-route-step>small{flex-shrink:0;font-size:10px;font-weight:400}.supply-details button.supply-route-step:hover{border-color:#7ca0ad;background:#e5efeb}.supply-details.red button.supply-route-step:hover{border-color:#bc917c;background:#f0e4d8}.supply-details button.supply-route-step:focus-visible{outline:2px solid #376f93;outline-offset:2px}.supply-locate-button{display:flex;align-items:center;gap:7px;width:100%;min-height:40px;margin-top:12px;padding:8px 10px;border:1px solid #cbdcdd;border-radius:5px;background:#edf3ef;color:#376f93;font-size:12px;text-align:left}.supply-locate-button>svg{flex-shrink:0}.supply-locate-button>svg:last-child{margin-left:auto}.supply-details.red .supply-locate-button{border-color:#e2cdbf;background:#f5ede5;color:#94513e}.supply-locate-button:hover{filter:brightness(.96)}.supply-locate-button:focus-visible{outline:2px solid currentColor;outline-offset:3px}@media(max-width:370px){.supply-details .supply-route-step{gap:4px;padding:6px}}.placement-preview{min-width:0;margin-top:18px;padding-top:13px;border-top:1px solid #dfe3d5;color:#556c47}.placement-preview-heading{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:5px 10px}.placement-preview .placement-preview-heading h3{display:flex;align-items:center;gap:6px;margin:0;font-size:13px;font-weight:600;line-height:1.5}.placement-preview-heading>span{color:#68765e;font-size:10px;line-height:1.5}.placement-preview .placement-preview-placement{margin:8px 0 0;color:#637456;font-size:12px;line-height:1.8;overflow-wrap:anywhere}.placement-preview-placement strong{margin:0 2px;color:#405d40;font-weight:600}.placement-preview-victory{display:flex;align-items:flex-start;gap:9px;margin-top:11px;padding:10px 11px;border-left:3px solid #b08b36;border-radius:0 5px 5px 0;background:#f6eed8;color:#89671f}.placement-preview-victory>svg,.placement-preview-medals>svg,.placement-preview-isolated>svg,.placement-preview-skill>svg{flex-shrink:0;margin-top:2px}.placement-preview-victory>div{min-width:0}.placement-preview-victory strong{font-size:13px}.placement-preview .placement-preview-victory p{margin:3px 0 0;font-size:12px;line-height:1.7}.placement-preview-medals{display:flex;align-items:flex-start;gap:7px;margin-top:11px;color:#967126}.placement-preview-medals>div{min-width:0}.placement-preview .placement-preview-medals p{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 9px;margin:0;font-size:12px;line-height:1.5}.placement-preview-medals p>span{color:#69785b;font-size:10px}.placement-preview .placement-preview-medals ul{display:flex;flex-wrap:wrap;gap:5px 10px;margin:5px 0 0;padding:0;list-style:none;font-size:11px;line-height:1.5;color:#6e754f}.placement-preview-medals li>b{margin-left:4px;color:#967126}.placement-preview .placement-preview-neutral{margin:7px 0 0;color:#6b795f;font-size:11px;line-height:1.7}.placement-preview-supply{margin-top:12px}.placement-preview .placement-preview-current-note{margin:0 0 8px;font-size:10px;line-height:1.7;color:#6e795f}.placement-preview-change+.placement-preview-change{margin-top:11px}.placement-preview .placement-preview-change h4{display:flex;align-items:center;flex-wrap:wrap;gap:4px 6px;margin:0 0 6px;font-size:11px;line-height:1.6;font-weight:600}.placement-preview-change h4>span{font-size:10px;font-weight:400}.placement-preview-change.enemy{color:#9b513d}.placement-preview-change.own{color:#376f91}.placement-preview .placement-preview-bases{display:flex;flex-wrap:wrap;gap:6px;min-width:0;margin:0;padding:0;list-style:none}.placement-preview-bases>li{min-width:0;max-width:100%}.placement-preview .placement-preview-bases button{display:inline-flex;align-items:center;gap:5px;min-height:36px;max-width:100%;padding:6px 8px;border:1px solid #d1deda;border-radius:5px;background:#eef3ec;color:inherit;text-align:left;font-size:11px;line-height:1.5}.placement-preview-bases button>span{min-width:0;overflow-wrap:anywhere}.placement-preview-bases button>svg{flex-shrink:0}.placement-preview .enemy .placement-preview-bases button{background:#f5eee6;border-color:#e1d3c5}.placement-preview .placement-preview-bases button:hover{border-color:currentColor}.placement-preview .placement-preview-bases button:focus-visible{outline:2px solid #376f93;outline-offset:2px}.placement-preview .placement-preview-isolated{display:flex;align-items:flex-start;gap:7px;margin:10px 0 0;color:#806b37;font-size:11px;line-height:1.8}.placement-preview-skill{display:flex;align-items:flex-start;gap:6px;margin-top:11px;color:#69795e}.placement-preview .placement-preview-skill p{margin:0;min-width:0;font-size:11px;line-height:1.8;overflow-wrap:anywhere}.placement-preview-skill strong{margin-right:6px;color:#566c47;font-weight:600}@media(max-width:370px){.placement-preview .placement-preview-bases button{padding:6px}}.region-overview{min-width:0}.region-overview .region-overview-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0;padding:15px 17px;border:1px solid #dfe4d1;border-radius:10px;background:#f0f3e7}.region-overview-summary dt{font-size:11px;color:#657255;margin-bottom:6px}.region-overview-summary dd{display:flex;align-items:center;gap:5px;margin:0;color:#567046;white-space:nowrap}.region-overview-summary dd svg{color:#a18135}.region-overview-summary dd strong{font:700 27px/1.1 Arial,sans-serif}.region-overview-summary dd>span{align-self:flex-end;font-size:11px;line-height:1.6;color:#657255}.region-overview .region-overview-intro{margin:13px 1px 19px;font-size:12px;line-height:1.8;color:#6d7c60}.region-overview-group+.region-overview-group{margin-top:22px}.region-overview-group-heading{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:10px;flex-wrap:wrap}.region-overview-group-heading h3{font-size:13px;font-weight:600;color:#4f6543}.region-overview-group-heading>span{font-size:10px;color:#68765b}.region-overview .region-overview-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:10px;padding:0;margin:0;list-style:none}.region-overview-list>li{min-width:0}.region-overview .region-overview-card{width:100%;min-width:0;min-height:140px;height:100%;display:flex;flex-direction:column;align-items:stretch;padding:13px;border:1px solid #dce3d0;border-radius:9px;background:#fffdf7;text-align:left;color:#4a6041;line-height:1.5}.region-overview .region-overview-card.close-to-claim{border-color:#cebe88;background:#fcf8e9}.region-overview .region-overview-card.claimed{border-style:dashed;background:#f1f3ec}.region-overview .region-overview-card:hover{border-color:#99ae89;background:#edf3e5}.region-overview .region-overview-card:focus-visible{outline:2px solid #427697;outline-offset:2px}.region-overview-card-head{display:flex;align-items:center;justify-content:space-between;gap:7px}.region-overview-card-head>strong{font-size:13px;line-height:1.5}.region-overview-value{display:flex;align-items:center;gap:3px;flex-shrink:0;font:700 16px/1.3 Arial,sans-serif;color:#9c7929}.region-overview-value small{font-size:10px;font-weight:400}.region-overview-state{display:flex;align-items:center;gap:4px;margin-top:5px;color:#647554;font-size:10px}.region-overview-state.blue,.region-overview-counts>.blue{color:#376f91}.region-overview-state.red,.region-overview-counts>.red{color:#a25540}.region-overview-progress-label{margin-top:12px;margin-bottom:3px;font-size:10px;color:#6b785f}.region-overview-counts{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:11px}.region-overview-counts b{margin-left:3px;font:700 14px Arial,sans-serif}.region-overview-counts b>span{font-size:11px;font-weight:400}.region-overview-near{display:flex;flex-wrap:wrap;gap:4px;margin-top:7px}.region-overview-near>span{padding:3px 5px;border-radius:4px;font-size:10px;line-height:1.4}.region-overview-near>.blue{background:#e2edf2;color:#326785}.region-overview-near>.red{background:#f5e4db;color:#9c4e39}.region-overview-card-action{display:flex;align-items:center;justify-content:flex-end;gap:2px;margin-top:auto;padding-top:10px;font-size:10px;color:#67765a}.region-overview-complete{display:flex;align-items:center;gap:7px;padding:12px;margin-bottom:18px;border-radius:8px;background:#eaf0e0;color:#59714a;font-size:12px}@media(max-width:520px){.region-overview .region-overview-list{grid-template-columns:minmax(0,1fr);gap:9px}.region-overview .region-overview-card{min-height:134px;padding:12px 13px}.region-overview .region-overview-summary{padding:13px 12px;gap:9px}.region-overview-summary dd strong{font-size:25px}.region-overview-summary dd>span{font-size:10px}}.supply-focus-banner{display:flex;align-items:flex-start;gap:8px;min-width:0;margin-top:10px;padding:10px;border:1px solid #b9cfd6;border-radius:7px;background:#edf3ef;color:#376f93}.supply-focus-banner.red{border-color:#dfc8b9;background:#f5ede5;color:#94513e}.supply-focus-banner>svg{flex-shrink:0;margin-top:2px}.supply-focus-banner>div:not(.supply-focus-actions){flex:1;min-width:0}.supply-focus-banner strong{display:block;font-size:12px;line-height:1.5}.supply-focus-banner p{margin:4px 0;font-size:11px;line-height:1.65;overflow-wrap:anywhere}.supply-focus-banner span{display:block;font-size:10px;line-height:1.5;color:#66755a}.supply-focus-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.supply-focus-actions>button{min-height:36px;padding:6px;color:inherit;font-size:11px;border-radius:4px}.supply-focus-actions>button:not(.icon-button){background:#dce9e9}.supply-focus-banner.red .supply-focus-actions>button:not(.icon-button){background:#ecded2}.supply-focus-actions>button:hover{filter:brightness(.95)}.supply-focus-actions>button:focus-visible{outline:2px solid currentColor;outline-offset:2px}.supply-focus-actions>.icon-button{width:32px}@media(max-width:480px){.supply-focus-banner{flex-wrap:wrap}.supply-focus-actions{justify-content:flex-end;width:100%}}:root{font-family:PingFang SC,Microsoft YaHei,-apple-system,BlinkMacSystemFont,sans-serif;color:#293e32;background:#f8f7f1;font-synthesis:none;--ink: #293e32;--muted: #69765f;--line: #dfe3d5;--paper: #f8f7f1;--green: #36563e;--blue: #376f93;--red: #b85340;--gold: #bf8c31}*{box-sizing:border-box}body{margin:0;min-width:320px;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px)}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit;color:inherit;border:0;cursor:pointer}button:disabled{cursor:default}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}svg{flex-shrink:0}h1,h2,h3,h4,p{margin:0}button:focus-visible,a:focus-visible{outline:3px solid #cc8e2e;outline-offset:4px}::selection{background:#dce6c9}.site-header{border-bottom:1px solid var(--line)}.header-inner{max-width:1320px;margin:auto;height:68px;padding:0 36px;display:flex;align-items:center;gap:28px}.brand{display:flex;gap:22px;align-items:center}.brand-wordmark{font:900 20px/.88 Arial,sans-serif;transform:rotate(-5deg);letter-spacing:-1px;display:flex;flex-direction:column;text-align:center;filter:drop-shadow(1px 2px 0 #e1d8b8)}.brand-wordmark span{font-size:27px;color:#c76043;letter-spacing:1.7px}.brand-wordmark b{color:#486955;line-height:1.2}.brand-chinese{font-size:16px;font-weight:800;letter-spacing:2px;padding-left:22px;border-left:1px solid var(--line)}.header-inner nav{display:flex;align-items:stretch;height:100%;gap:30px;margin-left:auto}.header-inner nav button,.nav-current{display:flex;gap:7px;align-items:center;font-size:13px;background:none;padding:3px 0 0;border-bottom:3px solid transparent;color:#68755f}.header-inner nav button:hover{color:var(--green)}.nav-current{border-color:#46654c;font-weight:600;color:#2d4836}.icon-button{width:40px;height:40px;display:grid;place-items:center;background:transparent;border-radius:50%}.icon-button:hover{background:#e9ece1}.sound-toggle{border:1px solid var(--line)}.game-shell{max-width:1280px;padding:20px 36px 0;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.map-heading{display:flex;gap:12px;align-items:center}.map-emblem{width:44px;height:44px;background:#e9ecdc;color:#70825c;border:1px solid #dce1cd;display:grid;place-items:center;border-radius:12px}h1{font-size:23px;font-weight:800;letter-spacing:-.6px;display:flex;align-items:center;gap:12px}h1 span{font:500 10px Arial,sans-serif;letter-spacing:1.5px;color:#829071}.map-heading p{font-size:12px;color:var(--muted);margin-top:5px}.game-meta{display:flex;align-items:center;gap:20px}.save-indicator{display:flex;align-items:center;gap:5px;font-size:11px;color:#758265}.game-meta>button{background:#fafbf5;border:1px solid var(--line);border-radius:8px;min-height:40px;display:flex;align-items:center;gap:8px;padding:9px 12px;font-size:12px}.game-meta>button:hover{background:#e9eddf}.play-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:26px;align-items:start}.arena-column{min-width:0}.arena-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:24px;margin-bottom:10px}.training-label,.arena-goal{display:flex;align-items:center;gap:5px;font-size:11px;color:#778568}.training-label{background:#edefe2;padding:5px 8px;border-radius:5px}.arena-controls{display:flex;align-items:center;gap:8px}.inspect-toggle{display:flex;align-items:center;gap:5px;min-height:30px;padding:5px 8px;border:1px solid #d8dfca;border-radius:5px;background:#fbfcf5;color:#596e4c;font-size:11px;white-space:nowrap}.inspect-toggle[aria-pressed=true]{background:#e2ebee;border-color:#94b4c1;color:#376f93}.inspect-toggle:hover{border-color:#829f7a}.region-overview-trigger{min-height:32px;padding:6px 8px;border:1px solid #d8d0ac;border-radius:5px;background:#f5f0df;color:#80672d}.region-overview-trigger:hover{background:#ede4c6;border-color:#baab77}.opponent-bar{display:flex;align-items:center;padding:10px 16px;background:#f0f1e8;border:1px solid var(--line);border-bottom:0;border-radius:12px 12px 0 0;min-height:58px;gap:12px}.player-label{display:flex;align-items:center;gap:9px;min-width:0}.player-avatar{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;flex-shrink:0}.player-avatar.red{background:#ead9cf;color:#a54f3c}.player-avatar.blue{background:#dce7e9;color:#356480}.player-label>div{display:flex;flex-direction:column;gap:4px}.player-label strong{display:flex;align-items:center;gap:5px;font-size:13px;white-space:nowrap}.player-label>div>span{color:#707e67;font-size:11px;white-space:nowrap}.opponent-rack{display:flex;align-items:center;gap:3px;margin-left:auto}.card-back{height:32px;width:24px;background:repeating-linear-gradient(45deg,#b8705c,#b8705c 3px,#c37f6b 3px,#c37f6b 5px);border:2px solid #efe5d8;border-radius:4px;display:grid;place-items:center;color:#f6ebd5;box-shadow:0 1px 2px #6a463123}.hand-total{font-size:11px;color:#737861;margin-left:6px;white-space:nowrap}.opponent-thinking{color:var(--red);min-width:18px;display:flex;align-items:center}.thinking-dots{letter-spacing:2px;animation:thinking 1.3s ease-in-out infinite}.score{display:flex;align-items:center;gap:4px;flex-shrink:0}.score strong{font:700 24px Arial,sans-serif}.score>span{font-size:12px;color:#78806a;margin-top:5px}.score.red{color:var(--red)}.score.blue{color:var(--blue)}.board-frame{padding:9px;background:#cfbb93;border:1px solid #b9a57b;box-shadow:0 4px #a59471,0 8px 14px #463e251c;border-radius:4px;position:relative;z-index:1}.board-frame{scroll-margin-top:12px}.board-frame:focus-visible{outline:3px solid var(--blue);outline-offset:4px}.board-map{position:relative;height:clamp(300px,calc(100svh - 592px),500px);border:2px solid #a8b078;border-radius:2px;isolation:isolate;background:#bed298;overflow:hidden;--node-size: 50px}.map-paper{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:linear-gradient(0deg,transparent 43%,#85b1b069 43%,#85b1b069 57%,transparent 57%),radial-gradient(ellipse at 10% 8%,#d3dfa8,transparent 55%),radial-gradient(ellipse at 92% 95%,#acc184,transparent 58%),#bfd396}.map-paper:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:.12;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.38' filter='url(%23n)'/%3E%3C/svg%3E");pointer-events:none}.map-corner-label{position:absolute;top:11px;left:13px;font:600 8px Arial,sans-serif;letter-spacing:2px;color:#76875a}.board-paths{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;pointer-events:none}.board-paths line{stroke-linecap:round}.path-road{stroke:#f7eac4;stroke-width:.8}.path-shadow{stroke:#93a271;stroke-width:1.4;opacity:.75}.region-area{fill:#deebb236;transition:fill .2s}.region-area.blue{fill:#6eabc245}.region-area.red{fill:#d38c6c45}.region-area.region-focused{fill:#fff4b49c;stroke:#c4a444;stroke-width:.5}.supply-path .path-road{stroke:#4c879a;stroke-width:.85}.available-path .path-road{stroke:#4b7845;stroke-width:.75;stroke-dasharray:1.2 1.3}.available-path .path-shadow{stroke:#dde9b4;opacity:.8}.board-node{position:absolute;transform:translate(-50%,-50%);width:var(--node-size);height:var(--node-size);border-radius:10px;border:3px solid #f6edcf;background:#b9c58f;display:flex;align-items:center;justify-content:center;box-shadow:0 3px #8e9c64,inset 0 0 0 2px #9baa72;z-index:3;padding:0;transition:box-shadow .18s,background .18s,transform .18s}.base-center{font:500 24px/1 Arial,sans-serif;color:#fbf6da}.board-node.hq{width:62px;height:54px;flex-direction:column;gap:2px;border-radius:11px;box-shadow:0 4px #a55f47}.board-node.hq.blue{background:#548ca4;border-color:#d1e0c8;box-shadow:0 4px #376f87;color:#fbf6dc}.board-node.hq.red{background:#c57558;border-color:#f3d9b6;color:#fff3d6}.hq>span:not(.node-ring):not(.last-move-label){font-size:9px;font-weight:600}.troop-art{position:relative;display:block;overflow:hidden;flex-shrink:0}.troop-art img{display:block;width:100%;height:auto;max-width:none;transform:translateY(-13%)}.board-node.occupied{background:#6a8ba1;overflow:visible;padding:2px;cursor:pointer}.board-node.occupied>.troop-art{width:100%;height:100%;border-radius:5px}.board-node.occupied.blue{border-color:#467995;box-shadow:0 3px #2f5c78,0 5px 6px #56613920}.board-node.occupied.red{border-color:#b85f4a;box-shadow:0 3px #914735,0 5px 6px #56613920}.board-node.occupied:hover{filter:brightness(1.08)}.board-node.empty:not(.legal):hover{filter:brightness(1.06)}.inspect-mode{border-color:#7b9fac;box-shadow:0 4px #78929a,0 8px 14px #463e251c}.inspect-mode .board-node{cursor:help}.board-strength{position:absolute;left:-7px;top:-9px;background:#396f90;border:2px solid #f4f0d9;color:#fff;min-width:23px;height:23px;padding:0 3px;border-radius:7px;font:800 14px/19px Arial,sans-serif;z-index:1}.red .board-strength{background:#b55340}.stack-count{position:absolute;bottom:-5px;right:-5px;background:#fcf5de;border:1px solid #d6d6b9;border-radius:4px;display:flex;align-items:center;font-size:10px;gap:2px;padding:2px 3px;color:#536148;z-index:1}.disconnected-mark{position:absolute;left:-6px;bottom:-6px;width:19px;height:19px;display:grid;place-items:center;background:#f4edd1;color:#816b3e;border:1px solid #9c9874;border-radius:5px}.board-node.legal{cursor:pointer;background:#e8f2c6;border-color:#fff9da;box-shadow:0 0 0 3px #55883f,0 5px #6c8a45}.board-node.legal:hover{transform:translate(-50%,-57%);box-shadow:0 0 0 3px #356e32,0 8px #6c8a45}.board-node.legal .base-center{color:#497a39}.node-ring{position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border:1px dashed #59804a;border-radius:16px;pointer-events:none}.board-node.effect-target{box-shadow:0 0 0 3px #b95136}.effect-target .node-ring{border-color:#b95136}.last-move-label{position:absolute;right:-9px;bottom:-9px;font-size:9px;font-weight:600;padding:3px 5px;line-height:1;border-radius:4px;background:#3b7796;border:1px solid #f8f3d5;color:#fff;z-index:2}.red .last-move-label{background:#b5553f}.board-node.last-move{animation:placed .45s ease-out}.board-node.advised{box-shadow:0 0 0 3px #ad781f,0 0 0 7px #f2d891a6,0 4px #7a682d}.advised .node-ring{border-color:#ab761e}.advice-node-label{position:absolute;right:-10px;bottom:-9px;padding:3px 6px;border:1px solid #fff7de;border-radius:4px;background:#88621c;color:#fff9e8;font-size:10px;font-weight:600;line-height:1.2;z-index:3}.region-medals{position:absolute;transform:translate(-50%,-50%);width:36px;height:36px;display:grid;place-items:center;background:none;z-index:2;padding:0;transition:transform .15s}.region-medals:hover{transform:translate(-50%,-54%) scale(1.13)}.medal-coin{height:25px;width:25px;border-radius:50%;background:#edc36a;border:2px solid #b48a32;box-shadow:inset 0 0 0 2px #f5d996,0 2px #97844755;color:#70501c;font:800 14px/21px Arial,sans-serif;display:grid;place-items:center;z-index:1}.medal-ribbons{position:absolute;height:10px;width:15px;top:25px;background:#c09740;clip-path:polygon(8% 0,92% 0,100% 100%,50% 68%,0 100%)}.claimed .medal-coin{background:#a1c2ca;border-color:#6598a7;color:#24576e;box-shadow:inset 0 0 0 2px #d0e2dc}.claimed.red .medal-coin{background:#dba38a;border-color:#b27358;color:#7a4233;box-shadow:inset 0 0 0 2px #ebc5a6}.claimed .medal-ribbons{background:#75a1ab}.claimed.red .medal-ribbons{background:#c18160}.board-compass{display:flex;align-items:center;gap:4px;position:absolute;bottom:8px;right:11px;font-size:9px;color:#728758}.region-area.region-tracked{fill:#f9e29c66;stroke:#a27b2c;stroke-width:.7;stroke-dasharray:2 1}.board-node.region-member{box-shadow:0 0 0 3px #fff4c8,0 0 0 5px #a77d2c,0 5px #7d733d}.region-medals.tracked-medals .medal-coin{outline:2px solid #8b641f;outline-offset:3px}.tracked-region-banner{display:flex;align-items:center;gap:8px;margin-top:10px;padding:9px 10px;border:1px solid #dccda3;border-radius:7px;background:#f6efda;color:#82662c}.tracked-region-banner>div{flex:1;min-width:0}.tracked-region-banner strong{display:block;font-size:12px}.tracked-region-banner span{display:block;font-size:10px;margin-top:4px;line-height:1.5}.tracked-region-banner>button:not(.icon-button){flex-shrink:0;font-size:11px;min-height:36px;padding:6px;border-radius:4px;background:#eae0bf;color:#795d23}.tracked-region-banner .icon-button{flex-shrink:0;width:32px;height:36px}.action-feedback{display:flex;align-items:center;gap:8px;min-height:44px;padding:9px 11px 7px;border:1px solid #dbe1cf;border-top:0;background:#f0f2e7;border-radius:0 0 8px 8px;color:#667458}.feedback-icon{display:grid;place-items:center;width:24px;flex-shrink:0}.action-feedback>div{display:flex;align-items:baseline;gap:9px;min-width:0;animation:feedback-in .2s ease-out}.action-feedback strong{font-size:12px;color:#47633d;white-space:nowrap}.action-feedback div>span{font-size:11px;line-height:1.5}.action-feedback.red .feedback-icon,.action-feedback.red strong{color:#9b4b38}.action-feedback.blue .feedback-icon,.action-feedback.blue strong{color:#376f93}.action-feedback.medals,.action-feedback.finish{background:#f4eddb;border-color:#e0d0a8}.report-button{display:flex;align-items:center;gap:5px;padding:6px 9px;margin-left:auto;border-radius:5px;background:#e8ddba;color:#756025;font-size:11px;white-space:nowrap}.turn-banner{display:flex;align-items:center;gap:8px;margin:9px 0;min-height:36px;padding:0 2px}.turn-pip{height:6px;width:6px;background:#557e45;border-radius:50%;box-shadow:0 0 0 3px #e1e8d6;margin-right:3px;flex-shrink:0}.turn-banner strong{font-size:13px;white-space:nowrap}.turn-instruction{font-size:11px;color:var(--muted)}.turn-count{margin-left:auto;font-size:11px;white-space:nowrap;color:#798568}.bot-turn .turn-pip{background:#c06b51;animation:thinking 1.2s ease-in-out infinite}.rack-panel{border:1px solid #d8e0d0;border-radius:12px;background:#fdfcf7;overflow:hidden}.rack-topline{display:flex;align-items:center;gap:18px;padding:11px 15px 6px}.rack-topline>.score{margin-left:auto}.you-label{font-weight:400;font-size:10px;background:#e2ebed;color:#456e89;border-radius:3px;padding:1px 4px}.draw-button{display:flex;align-items:center;gap:10px;background:#36583e;color:#fcfced;padding:8px 12px;border-radius:8px;font-size:13px;font-weight:500;min-height:44px;line-height:1.2}.draw-button:hover{background:#456a49}.draw-button>span{display:flex;flex-direction:column;gap:2px}.draw-button small{font-size:10px;line-height:1.2;color:#d1dec5;font-weight:400}.draw-button:disabled{opacity:.48}.hand-rack{display:flex;gap:12px;padding:12px 17px 13px;min-height:114px;overflow-x:auto;scroll-padding:16px;scrollbar-width:thin;scrollbar-color:#d1dbc5 transparent}.hand-tile{position:relative;width:74px;height:90px;flex-shrink:0;border:2px solid #b3c9d2;border-bottom-width:4px;border-radius:8px;background:#e0e9db;padding:5px 4px 2px;display:flex;align-items:center;flex-direction:column;box-shadow:0 3px 4px #55644112;transition:transform .15s,border-color .15s}.hand-tile:enabled:hover{transform:translateY(-4px);border-color:#658da6}.hand-tile.selected{transform:translateY(-4px);border-color:#346f92;background:#edf5e6;box-shadow:0 0 0 3px #d6e4e9,0 5px 9px #49605020}.hand-tile:disabled{opacity:.62}.troop-strength{position:absolute;left:-6px;top:-7px;background:#3f7595;color:#fff;min-width:24px;height:26px;border:2px solid #fdfbf0;border-radius:7px;font:700 16px/22px Arial,sans-serif;text-align:center;z-index:1;padding:0 3px}.hand-tile>.troop-art{width:58px;height:59px;border-radius:4px}.tile-name{font-size:11px;font-weight:600;margin-top:4px;white-space:nowrap}.selected-tick{position:absolute;right:-5px;bottom:-5px;background:#377293;border:2px solid #fcfcf4;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;color:#fff}.empty-hand{display:flex;align-items:center;gap:12px;justify-content:center;width:100%;color:#77866b;font-size:13px}.rack-caption{display:flex;align-items:center;gap:8px;padding:8px 15px;border-top:1px dashed #dfe5d4;font-size:11px;color:#68775e;min-height:41px}.rack-caption>span{display:flex;align-items:center;gap:5px;white-space:nowrap}.caption-key{font-size:10px;background:#e8eddf;border-radius:4px;width:16px;height:18px;display:grid;place-items:center;color:#536b47}.discard-link{display:flex;align-items:center;gap:4px;padding:4px 0;background:none;font-size:11px;color:#6e7b60;margin-left:auto;min-height:26px;white-space:nowrap}.discard-link:hover{color:#263f2c}.rack-caption.with-selection{display:grid;grid-template-columns:minmax(0,1fr) auto;background:#eff4e7;padding-top:10px;padding-bottom:10px;gap:8px 12px}.with-selection .selection-caption{grid-area:1 / 1}.with-selection .cancel-selection{grid-area:1 / 2;justify-self:end;align-self:start}.selection-destinations{grid-area:2 / 1;min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px}.selection-destinations>span{display:block;line-height:1.7;color:var(--muted)}.board-jump{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:36px;padding:6px 10px;border:1px solid #bdcfd2;border-radius:6px;background:#e4eef0;color:#345e78;font-size:12px}.board-jump:hover{background:#d8e7ec;border-color:#85a8b8}.preview-jump{display:inline-flex;align-items:center;gap:5px;min-height:36px;padding:6px 10px;border:1px solid #c7d1b6;border-radius:6px;background:#f8faee;color:#536c3f;font-size:12px}.preview-jump:hover{border-color:#899e74;background:#eef3e3}.preview-jump:focus-visible{outline:2px solid #536c3f;outline-offset:2px}.board-node.previewable:before{content:"";position:absolute;top:-5px;right:-5px;bottom:-5px;left:-5px;border:2px dashed #526e36;border-radius:13px;pointer-events:none}.with-selection .hint-button{grid-area:2 / 2;justify-self:end}.hint-button{display:flex;align-items:center;justify-content:center;gap:4px;padding:6px 8px;min-height:32px;font-size:11px;color:#796124;background:#f3ead2;border:1px solid #e6d9b5;border-radius:5px;white-space:nowrap;flex-shrink:0}.hint-button:enabled:hover,.hint-button[aria-expanded=true]{background:#e8d6a3}.hint-button:disabled{opacity:.4}.advice-panel{padding:13px 15px 12px;background:#f6efdb;border-top:1px solid #dfce9d}.advice-heading{display:flex;align-items:center;gap:7px;color:#7a5c21}.advice-heading strong{font-size:13px}.advice-heading button{margin-left:auto;padding:3px;display:grid;place-items:center;background:transparent;border-radius:4px}.advice-panel>p{font-size:12px;line-height:1.8;margin:6px 0 8px 24px;color:#736345}.advice-footer{display:flex;align-items:center;gap:12px;margin-left:24px}.advice-footer>span{font-size:11px;color:#81704b}.advice-footer>button{display:flex;align-items:center;gap:3px;background:transparent;color:#725116;padding:5px 0;font-size:12px;font-weight:600;white-space:nowrap;margin-left:auto}.selection-caption{flex:1;min-width:0}.selection-caption strong{display:flex;align-items:center;gap:8px;font-size:12px;color:#304d36}.selection-caption strong span{font-size:10px;color:#718467;font-weight:400}.selection-caption p{font-size:12px;color:#5b7150;line-height:1.7;margin-top:3px}.cancel-selection{display:grid;place-items:center;width:32px;height:32px;flex-shrink:0;background:#e1e9d7;border-radius:50%}.inline-effect{padding:11px 14px;margin-bottom:10px;background:#e9f1da;border:1px solid #b2c891;border-radius:8px;display:flex;align-items:center;justify-content:space-between;gap:12px}.inline-effect strong{font-size:13px}.inline-effect p{font-size:12px;line-height:1.8;color:#657950;margin-top:3px}.effect-actions{display:flex;align-items:center;gap:14px;flex-shrink:0}.effect-actions .text-button{margin:0}.effect-actions .primary-button{font-size:12px;padding:10px 12px}.effect-actions button:disabled{opacity:.45}.game-sidebar{padding-top:34px;display:flex;flex-direction:column;gap:17px}.mission-panel{border:1px solid #dadfcc;border-radius:12px;background:#edefe1;padding:20px 20px 0}.panel-eyebrow{display:flex;align-items:center;gap:7px;font-size:11px;color:#6d7e58}.mission-panel>h2{font-size:22px;margin-top:12px;letter-spacing:-.5px;font-weight:800}.mission-panel>p{font-size:12px;margin-top:6px;color:#69775f}.mission-item{display:flex;gap:10px;margin-top:21px;align-items:flex-start}.mission-icon{width:36px;height:36px;display:grid;place-items:center;background:#dce5ca;border-radius:9px;color:#5a7843;flex-shrink:0}.mission-icon.gold{background:#e7dfbf;color:#967321}.mission-item strong{font-size:13px;line-height:20px}.mission-item p{font-size:12px;line-height:1.85;color:#6e7d5d;margin-top:4px}.mission-or{display:flex;align-items:center;gap:10px;margin:14px 0 -4px 47px;color:#83936f;font-size:10px}.mission-or>span{height:1px;flex:1;background:#d4ddc2}.mission-progress{border-top:1px solid #d4dcc4;display:flex;align-items:center;gap:8px;margin-top:20px;padding:14px 0}.mission-progress>span{font-size:11px;white-space:nowrap;color:#6f7f5e}.mission-progress>div{display:flex;gap:1px;flex:1;justify-content:center;color:#bec9aa}.mission-progress>div svg{width:17px}.mission-progress .earned{fill:#e9bf61;color:#a7802f}.mission-progress>strong{font-size:16px;color:#657b50;white-space:nowrap}.mission-progress small{font-size:10px;font-weight:400;color:#859474}.selection-panel{border:1px solid #dbe2d1;border-radius:10px;padding:17px;background:#fafbf4}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;color:#839370}.panel-heading h3{font-size:13px;font-weight:600;color:#4c6240}.selection-panel h4{font-size:13px;margin-top:15px;font-weight:600;line-height:1.6;color:#536b45}.selection-panel>p{font-size:12px;color:#6b7b5c;line-height:1.85;margin-top:8px}.text-button{padding:0;background:none;color:#526d43;display:flex;align-items:center;gap:5px;font-size:12px;font-weight:500;margin-top:14px;min-height:30px}.text-button:hover{color:#253f2d}.selection-panel.has-effect{background:#eaf1dc;border-color:#b0c293}.selected-detail{display:flex;gap:10px;align-items:center;margin-top:13px}.selected-detail>.troop-art{width:58px;height:65px;border-radius:6px}.selected-detail h4{margin:0}.selected-detail h4 span{display:block;font-size:10px;color:#758767;font-weight:400}.selected-detail p{font-size:11px;line-height:1.8;color:#6d7e5e;margin-top:4px}.legal-count{display:block;font-size:11px;margin-top:7px;color:#477338}.log-panel{padding:1px 4px 0}.log-panel .panel-heading{margin-bottom:13px}.battle-log{display:flex;flex-direction:column;gap:12px;max-height:154px;overflow:auto;scrollbar-width:thin;scrollbar-color:#c6d3ba transparent}.log-item{display:flex;gap:9px;color:#75836a}.log-dot{width:5px;height:5px;background:#95a981;flex-shrink:0;margin-top:8px;border-radius:50%}.log-dot.red{background:#c16c52}.log-dot.blue{background:#4f88a2}.log-item p{font-size:12px;line-height:1.8}.log-item.latest p{color:#46663b}.mode-note{display:flex;gap:7px;align-items:flex-start;padding:13px 2px 0;border-top:1px dashed #dbe2ce;color:#7e8e70}.mode-note svg{margin-top:2px}.mode-note p{font-size:11px;line-height:1.8}footer{display:flex;justify-content:space-between;gap:12px;margin-top:22px;border-top:1px solid var(--line);padding:18px 0 22px;font-size:10px;color:#7b896b}footer>span{display:flex;align-items:center;gap:12px}footer a{display:flex;align-items:center;gap:3px}.footer-dot{color:#9ba78d}.modal{--modal-padding: 26px;border:1px solid #d8dfcd;border-radius:16px;padding:0;overflow:hidden;background:#faf9f2;color:var(--ink);width:min(510px,calc(100% - 28px));max-height:min(86dvh,calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 24px));box-shadow:0 25px 100px #23332035}.modal[open]{display:flex;flex-direction:column}.modal::backdrop{background:#22352575;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-wide{width:min(800px,calc(100% - 28px))}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-shrink:0;padding:16px var(--modal-padding);border-bottom:1px solid var(--line)}.modal-body{min-height:0;overflow-y:auto;overscroll-behavior-y:contain;padding:20px var(--modal-padding) var(--modal-padding)}.modal-body:focus-visible{outline:2px solid var(--blue);outline-offset:-3px}.modal-head h2{font-size:20px;line-height:1.5;letter-spacing:-.5px}.modal-head .icon-button{flex-shrink:0}.modal-description{font-size:14px;line-height:1.9;color:#697a5e;margin-bottom:19px}.rules-intro{font-size:12px;color:#6f865a;margin-bottom:20px}.rules-list{padding-left:22px;display:flex;flex-direction:column;gap:17px}.rules-list li::marker{color:#6a8553;font-size:15px;font-weight:700}.rules-list strong{font-size:14px}.rules-list p{font-size:13px;line-height:1.9;color:#617653;margin-top:6px}.rules-note{font-size:12px;line-height:1.9;color:#6e7e5d;padding:14px;background:#eceedf;border-radius:8px;margin-top:20px}.source-links{display:flex;gap:18px;margin-top:17px;font-size:12px;color:#627e50}.source-links a{display:flex;gap:4px;align-items:center}.primary-button,.secondary-button{display:flex;align-items:center;justify-content:center;gap:9px;padding:12px 17px;border-radius:8px;font-size:13px;white-space:nowrap;min-height:42px}.primary-button{background:#36583e;color:#fbf9e9}.primary-button:hover{background:#496c4d}.secondary-button{background:#e9eedf;color:#586e47}.modal-cta{width:100%;margin-top:24px}.confirm-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:25px}.troop-encyclopedia{display:grid;grid-template-columns:1fr 1fr;gap:13px}.troop-encyclopedia article{display:flex;gap:12px;align-items:center;border:1px solid #dbe3cf;border-radius:10px;padding:13px;background:#f0f3e6}.encyclopedia-art{position:relative;width:70px;flex-shrink:0;height:76px;background:#dae5cd;border-radius:7px}.encyclopedia-art .troop-art{width:100%;height:100%;border-radius:6px}.troop-encyclopedia h3{font-size:14px;margin-bottom:5px}.troop-encyclopedia p{font-size:12px;line-height:1.8;color:#687e57}.stack-list{display:flex;flex-direction:column;gap:12px}.stack-list>div{display:flex;align-items:center;gap:15px;padding:13px;background:#edf0e4;border-radius:8px}.stack-list .troop-art{width:53px;height:61px;border-radius:6px}.stack-list strong{font-size:14px}.stack-list p{font-size:12px;line-height:1.8;margin-top:4px;color:#688055}.region-requirements{display:flex;flex-direction:column;gap:10px}.region-requirements>div{display:flex;align-items:center;gap:10px;padding:11px;background:#eef1e4;border-radius:8px}.region-requirements strong{font-size:13px}.region-requirements>div>span:last-child{margin-left:auto;color:#738567;font-size:12px}.ownership-icon{width:32px;height:32px;background:#e0e6d2;color:#788c62;display:grid;place-items:center;border-radius:7px;flex-shrink:0}.ownership-icon.blue{background:#d2e3e7;color:#386d8d}.ownership-icon.red{background:#eddbcd;color:#b25e43}.region-progress{display:flex;justify-content:space-between;margin:18px 4px 0;font-size:13px}.region-progress>span:first-child{color:#3a7395}.region-progress>span:last-child{color:#a95641}.region-detail-progress{padding:10px 0;margin:0 0 12px;border-block:1px solid var(--line)}.region-base-list{display:grid;gap:9px}.region-base-row{display:flex;align-items:center;width:100%;min-height:64px;gap:9px;padding:10px;border:1px solid #dce3d1;border-radius:7px;background:#f1f3e8;text-align:left}.region-base-row:hover{background:#e7edde;border-color:#a9bd98}.region-base-copy{flex:1;min-width:0}.region-base-copy strong{display:block;font-size:13px}.region-base-copy small{display:block;font-size:11px;color:var(--muted);margin-top:4px}.region-base-state{display:flex;align-items:center;gap:2px;flex-shrink:0;font-size:10px;color:#88723b}.region-base-row.secured .region-base-state{color:var(--blue)}.region-base-row>svg{width:12px;color:#7c8c6b}.region-detail-actions{display:flex;flex-direction:column;gap:10px;margin-top:20px}.region-detail-actions>.text-button{justify-content:center;margin:0;min-height:36px}.discard-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.discard-grid>div{padding:8px;background:#e3ede4;border:1px solid #c1d3d7;border-radius:8px;text-align:center}.discard-grid>div.red{background:#f0e1d5;border-color:#d8b39f}.discard-grid .troop-art{height:66px;width:100%;border-radius:5px}.discard-grid strong{display:block;font-size:12px;margin:8px 0 5px}.discard-grid>div>span:last-child{font-size:11px;color:#738366}.empty-discard{padding:24px 8px;text-align:center;color:#849572}.empty-discard svg{margin:0 auto 18px}.empty-discard p{font-size:15px;margin-bottom:8px}.empty-discard span{font-size:12px}.base-summary{display:flex;align-items:center;gap:12px;margin-bottom:17px}.base-summary>span{display:grid;place-items:center;flex-shrink:0;width:48px;height:48px;background:#e7edda;color:#778764;border-radius:10px}.base-summary.blue>span{background:#dcebef;color:#376f93}.base-summary.red>span{background:#efdfd3;color:#a4543e}.base-summary strong{font-size:14px}.base-summary p{font-size:12px;line-height:1.8;color:#718064;margin-top:3px}.placement-explanation{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid #e3d8b8;border-radius:8px;background:#f4efdf;color:#876d35}.placement-explanation>svg{margin-top:2px}.placement-explanation strong{font-size:13px}.placement-explanation p{font-size:12px;line-height:1.8;margin-top:5px;color:#7a6b4e}.placement-explanation.allowed{background:#eaf1e1;border-color:#c7d9b5;color:#567b42}.placement-explanation.allowed p{color:#60784e}.inspector-stack,.base-connections,.base-regions{margin-top:22px}.inspector-stack h3,.base-connections h3,.base-regions h3{display:flex;align-items:center;gap:6px;font-size:13px;color:#526849;margin-bottom:11px}.inspector-stack h3>span{margin-left:auto;color:#829173;font-size:11px;font-weight:400}.base-connections h3>span{margin-left:auto;font-size:11px;font-weight:400;color:var(--muted)}.base-connections>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.base-connections div>button{display:flex;align-items:center;gap:8px;min-height:54px;padding:9px;background:#edf1e4;border:1px solid #dfe5d3;border-radius:6px;color:#586c4d;text-align:left}.base-connections div>button:hover{background:#e4eddc;border-color:#a8ba9b}.base-connections button>span:not(.neighbor-dot){flex:1;min-width:0}.base-connections button strong{display:block;font-size:12px;line-height:1.5}.base-connections button small{display:block;font-size:10px;color:var(--muted);margin-top:3px}.base-connections button>svg{width:12px}.neighbor-dot{flex-shrink:0;width:6px;height:6px;border-radius:50%;background:#929d83}.neighbor-dot.blue{background:var(--blue)}.neighbor-dot.red{background:var(--red)}.base-regions>button{display:flex;align-items:center;gap:9px;width:100%;text-align:left;background:transparent;border-top:1px solid #e1e5d7;padding:11px 3px;color:#627750}.base-regions>button:hover{background:#f0f3e6}.base-regions button>span{font-size:13px}.base-regions small{display:block;margin-top:4px;font-size:11px;color:#82916f}.base-regions b{margin-left:auto;color:#92732e;font-size:12px;font-weight:500}.inspector-return{width:100%;margin-top:22px;justify-content:center}.result-content{text-align:center;padding:10px}.result-trophy{width:105px;height:105px;margin:5px auto 24px;display:grid;place-items:center;background:#f1e5bf;color:#a68024;border-radius:50%}.result-content h3{font-size:20px}.result-content p{font-size:14px;margin:12px 0;color:#5d784b}.result-content>span{font-size:13px;color:#7b8d6b;line-height:1.8}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.match-outcome{display:flex;gap:17px;align-items:center;padding:18px 0 24px}.match-trophy{width:72px;height:80px;border-radius:14px;display:grid;place-items:center;flex-shrink:0;color:#9d761f;background:#f0e4b9}.match-outcome.red .match-trophy{color:#a0573c;background:#efdfcb}.match-eyebrow{display:block;color:#788462;font-size:11px;margin-bottom:7px}.match-outcome h3{font-size:20px;line-height:1.4;margin-bottom:6px}.match-outcome p{font-size:12px;line-height:1.8;color:#6c785c}.match-stats{width:100%;border-collapse:collapse;font-size:13px}.match-stats th,.match-stats td{padding:13px 12px;border-bottom:1px solid #dde3cf;text-align:center}.match-stats thead{background:#edf0e3}.match-stats thead th{font-size:11px;font-weight:500}.match-stats th:first-child{text-align:left;color:#657852;font-weight:500}.match-stats th span{display:flex;align-items:center;gap:6px}.match-stats th:nth-child(2),.match-stats td:nth-child(2){color:#376f93}.match-stats th:nth-child(3),.match-stats td:nth-child(3){color:#a4543e}.match-stats td{font:700 21px Arial,sans-serif}.match-stat-note{font-size:11px;line-height:1.8;color:#7a856b;margin-top:10px}.match-regions{margin-top:22px}.match-regions h3{font-size:13px;margin-bottom:10px}.match-regions>div{display:flex;flex-wrap:wrap;gap:7px}.match-regions div>span{display:flex;align-items:center;gap:4px;border:1px solid #c7dce0;background:#e6eff0;color:#396a85;border-radius:5px;padding:6px 8px;font-size:11px}.match-regions div>span.red{border-color:#dfc8b6;background:#f2e8dc;color:#a1573e}.match-regions b{margin-left:3px}@keyframes feedback-in{0%{opacity:.25;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@keyframes thinking{50%{opacity:.3}}@keyframes placed{0%{transform:translate(-50%,-65%) scale(1.08)}to{transform:translate(-50%,-50%) scale(1)}}@media(max-width:1100px){.header-inner{padding:0 24px}.game-shell{padding:18px 24px 0}.play-layout{grid-template-columns:minmax(0,1fr) 250px;gap:20px}.game-meta{gap:14px}.header-inner nav{gap:23px}.brand-chinese{font-size:14px}.mission-panel{padding:18px 16px 0}.mission-panel>h2{font-size:20px}.mission-progress>div{gap:0}.mission-progress>div svg{width:15px}.turn-banner{flex-wrap:wrap;gap:6px 8px}.turn-instruction{order:4;width:100%;padding-left:17px}.board-map{--node-size: 46px}.board-node.hq{width:56px;height:52px}.draw-button>svg:last-child{display:none}.selection-panel{padding:16px}}@media(max-width:850px){.header-inner{height:60px;padding:0 20px;gap:20px}.brand-chinese{display:none}.game-shell{padding:14px 18px 0}.page-heading{margin-bottom:14px}.play-layout{grid-template-columns:minmax(0,1fr);gap:20px}.board-map{height:clamp(300px,calc(100svh - 569px),420px);--node-size: 50px}.board-node.hq{width:61px;height:54px}.board-frame{padding:7px}.game-sidebar{padding-top:0;display:grid;grid-template-columns:1fr 1fr;gap:16px}.mission-panel{grid-row:span 2}.mode-note{grid-column:1/-1}.mission-progress>div{gap:2px}.mission-progress>div svg{width:17px}.mission-panel>h2{font-size:23px}.mission-item{margin-top:26px}.log-panel{padding:0 4px}.battle-log{max-height:128px}.selection-panel>p{font-size:13px}.turn-instruction{order:0;width:auto;padding-left:0}}@media(max-width:560px){.header-inner{height:56px;padding:0 14px;gap:14px}.brand-wordmark{font-size:16px}.brand-wordmark span{font-size:22px}.header-inner nav{gap:17px}.header-inner nav button{font-size:12px;gap:4px}.header-inner nav svg{width:14px}.nav-current{display:none}.icon-button{width:36px;height:36px}.game-shell{padding:12px 12px 0}.map-emblem{width:36px;height:38px;border-radius:9px}.map-emblem svg{width:21px}.map-heading{gap:9px}h1{font-size:19px;gap:7px}h1 span{display:none}.map-heading p{font-size:11px}.game-meta{gap:10px}.game-meta>button{padding:8px;min-height:36px}.game-meta>button span{display:none}.save-indicator{font-size:10px;gap:4px}.save-indicator svg{width:12px}.page-heading{margin-bottom:11px}.arena-heading{margin-bottom:8px}.training-label,.arena-goal{font-size:10px;gap:4px}.training-label{padding:4px 6px}.arena-goal svg{width:12px}.opponent-bar{padding:9px 10px;min-height:53px;gap:8px}.player-label{gap:7px}.player-avatar{width:30px;height:30px;border-radius:8px}.player-avatar svg{width:17px}.player-label strong{font-size:12px}.player-label>div>span{font-size:10px}.opponent-rack{gap:2px}.card-back{width:17px;height:26px;border-width:1px}.card-back svg{width:10px}.hand-total{font-size:10px;margin-left:3px}.score{gap:2px}.score strong{font-size:21px}.score>svg{width:17px}.score>span{font-size:10px}.board-frame{padding:6px}.board-map{height:clamp(300px,calc(100svh - 524px),360px);--node-size: 44px;border-width:1px}.arena-column:has(.inline-effect) .board-map{height:clamp(284px,calc(100svh - 584px),330px)}.board-node{border-width:2px;border-radius:8px}.board-node.hq{width:50px;height:49px;border-radius:9px;gap:1px}.board-node.hq>svg{width:24px;height:24px}.hq>span:not(.node-ring):not(.last-move-label){font-size:8px}.board-strength{height:21px;min-width:21px;font-size:12px;line-height:17px;left:-5px;top:-7px}.stack-count{font-size:9px}.node-ring{top:-5px;right:-5px;bottom:-5px;left:-5px;border-radius:11px}.last-move-label{font-size:8px;right:-5px;bottom:-8px;padding:3px 4px}.map-corner-label{top:8px;left:8px;font-size:7px;letter-spacing:1px}.board-compass{bottom:7px;right:7px;font-size:8px}.board-compass svg{width:11px}.region-medals{width:32px;height:32px}.medal-coin{width:23px;height:23px;font-size:13px}.medal-ribbons{top:23px;height:8px;width:13px}.turn-banner{margin:9px 0;gap:4px 7px;min-height:37px}.turn-banner strong{font-size:12px}.turn-count{font-size:10px}.turn-instruction{font-size:11px;order:4;width:100%;padding-left:16px;line-height:1.6}.turn-pip{height:5px;width:5px}.rack-topline{padding:9px 11px 5px;gap:10px}.draw-button{padding:8px 9px;font-size:12px;gap:7px;min-height:42px}.draw-button small{font-size:9px}.draw-button>svg{width:16px}.hand-rack{padding:11px 13px;gap:11px;min-height:104px}.hand-tile{width:68px;height:82px}.hand-tile>.troop-art{width:53px;height:52px}.tile-name{font-size:11px}.troop-strength{height:24px;min-width:23px;line-height:20px;font-size:15px}.rack-caption{padding:6px 11px;gap:6px;font-size:10px;min-height:36px}.rack-caption>span{gap:4px}.caption-key{font-size:9px;width:14px;height:16px}.discard-link{font-size:10px;gap:3px}.selection-caption p{font-size:12px}.inline-effect{padding:10px 12px;gap:10px;align-items:flex-start;flex-wrap:wrap}.inline-effect>div:first-child{flex:1;min-width:155px}.inline-effect .effect-actions{margin-left:auto}.inline-effect p{font-size:12px}.action-feedback{min-height:46px;padding:8px 9px 6px;gap:6px}.action-feedback>div{display:block}.action-feedback strong{font-size:11px;margin-right:6px}.action-feedback div>span{font-size:10px}.feedback-icon{width:20px}.arena-controls{gap:6px}.inspect-toggle{min-height:28px;padding:4px 6px;font-size:10px;gap:4px}.inspect-toggle svg{width:12px}.arena-controls .training-label{padding:4px 5px}.base-summary>span{width:40px;height:44px}.base-summary{gap:10px}.base-summary strong{font-size:13px}.base-summary p,.placement-explanation p{font-size:12px}.inspector-stack,.base-connections,.base-regions{margin-top:18px}.rack-caption{gap:8px}.hint-button{font-size:10px;padding:5px 6px;min-height:30px}.rack-instruction{font-size:10px}.selection-caption p{font-size:11px}.advice-panel{padding:11px}.advice-heading strong{font-size:12px}.advice-panel>p{margin-left:0}.advice-footer{margin-left:0;gap:8px}.advice-footer>span{font-size:10px}.advice-footer>button{font-size:11px}.match-outcome{gap:12px;padding:12px 0 20px}.match-trophy{width:55px;height:70px}.match-outcome h3{font-size:18px}.match-stats th,.match-stats td{padding:12px 8px}.game-sidebar{grid-template-columns:1fr;gap:15px}.mission-panel{grid-row:auto;display:grid;grid-template-columns:1fr 1fr;gap:0 15px;padding:19px 17px 0}.panel-eyebrow,.mission-panel>h2,.mission-panel>p{grid-column:1/-1}.mission-panel>h2{font-size:22px;margin-top:10px}.mission-panel>p{font-size:12px}.mission-or{display:none}.mission-item{margin-top:21px;gap:8px}.mission-icon{width:32px;height:32px}.mission-icon svg{width:19px}.mission-item strong{font-size:12px}.mission-item p{font-size:11px}.mission-progress{grid-column:1/-1;margin-top:18px;padding:13px 0}.mission-progress>div{gap:6px;justify-content:flex-end;margin-right:9px}.mission-progress>div svg{width:18px}.mode-note{grid-column:auto}.battle-log{max-height:154px}.log-item p{font-size:12px}.selection-panel>p{font-size:13px}footer{flex-direction:column;gap:10px;align-items:center;font-size:9px;margin-top:19px;padding:16px 0 22px}footer>span{gap:8px}.modal{--modal-padding: 20px;max-height:min(88dvh,calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 24px))}.modal-head{gap:8px;padding-top:12px;padding-bottom:12px}.modal-head h2{font-size:18px}.modal-description{font-size:13px}.troop-encyclopedia{grid-template-columns:1fr}.troop-encyclopedia article{padding:13px}.troop-encyclopedia p{font-size:13px}.troop-encyclopedia h3{font-size:15px}.confirm-actions{justify-content:stretch}.confirm-actions>*{flex:1}.region-requirements>div{padding:10px;gap:8px;flex-wrap:wrap}.region-requirements strong{font-size:12px}.region-requirements>div>span:last-child{font-size:11px}.discard-grid{grid-template-columns:repeat(3,1fr)}.result-content>span{font-size:12px}}@media(max-width:370px){.header-inner{gap:10px}.header-inner nav{gap:12px}.header-inner nav button{font-size:11px}.game-shell{padding-left:8px;padding-right:8px}.opponent-rack{max-width:132px}.card-back{width:12px}.opponent-bar{gap:6px}.hand-total{font-size:9px}.player-label strong{font-size:11px}.region-medals{width:28px;height:28px}.medal-coin{width:21px;height:21px;font-size:12px}.medal-ribbons{top:20px}.save-indicator{font-size:9px}.save-indicator svg{display:none}.mission-panel{column-gap:10px}.mission-item{flex-direction:column}.rack-topline{gap:8px;padding-left:9px;padding-right:9px}.rack-topline .player-avatar{display:none}.draw-button{font-size:11px}.draw-button>svg{display:none}.draw-button small,.rack-caption,.rack-caption .discard-link{font-size:9px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}.console-toggle{display:none}@media(max-width:850px){html{scroll-padding-bottom:140px;-webkit-text-size-adjust:100%}.game-shell,.arena-column,.rack-panel,.player-console{min-width:0}.game-shell .player-console{max-height:52dvh;-webkit-overflow-scrolling:touch}.game-shell .player-console .console-toggle{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:36px;padding:4px 10px;order:-2;flex-shrink:0;color:#526b45;background:transparent;border-bottom:1px solid #dce3d1;font-size:12px}.game-shell .player-console.console-collapsed>*:not(.console-toggle):not(.turn-banner){display:none}.game-shell .player-console.console-collapsed{gap:2px}.game-shell .player-console .rack-topline{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.game-shell .player-console .rack-topline>.score{grid-column:2;grid-row:1}.game-shell .player-console .draw-count-button{grid-column:1/-1;width:100%;justify-content:center;min-height:44px;padding:6px 10px}.game-shell .draw-count-copy{flex-direction:row;align-items:center;gap:12px}.game-shell .draw-count-copy small{font-size:11px}.game-shell .player-console .hand-rack{padding:10px 12px 9px;gap:12px;touch-action:pan-x pan-y}.game-shell .player-console .hand-tile{width:70px}.game-shell .player-console .tile-name{font-size:11px}.game-shell .player-console .action-feedback{display:none}.game-shell .player-console .rack-caption{flex-wrap:wrap;gap:8px;line-height:1.6}.game-shell .rack-caption button,.game-shell .hand-rack-scroll,.game-shell .effect-actions button,.game-shell .terrain-choices button{min-height:40px}.game-shell .hand-rack-scroll{min-width:44px}.game-shell .arena-controls{flex-wrap:wrap;gap:5px}.game-shell .arena-heading{gap:8px;flex-wrap:wrap}.game-shell .arena-heading button{min-height:38px}.game-shell .terrain-choices{overscroll-behavior:contain}.modal{width:calc(100% - 20px);max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 20px)}.modal-body{-webkit-overflow-scrolling:touch;overflow-x:hidden}.modal-head .icon-button{width:44px;height:44px}.modal .confirm-actions,.map-picker-footer{flex-wrap:wrap}.modal button.primary-button,.modal button.secondary-button{min-height:44px}.online-lobby input,.online-lobby select,.invite-panel input{font-size:16px}.online-room-bar{min-width:0}.online-header{gap:8px;flex-wrap:wrap}}@media(max-width:560px){.wango-platform nav{display:flex;flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;gap:18px;padding:8px 12px;scrollbar-width:none;min-height:42px}.wango-platform nav a{flex-shrink:0;white-space:nowrap;min-height:28px;display:flex;align-items:center}.wango-platform .wango-context{display:none}.site-header .header-inner{padding:8px 12px 4px;gap:8px;height:auto;min-height:60px;align-items:center}.site-header .header-inner nav{display:flex;position:static;order:3;height:38px;width:100%;gap:8px;margin:0;justify-content:space-between}.site-header .header-inner nav button{min-height:38px;font-size:12px;white-space:nowrap}.site-header .header-inner .audio-controls{margin-left:auto}.site-header .audio-controls .icon-button{width:40px;height:40px}main.game-shell{padding-left:10px;padding-right:10px;padding-top:12px}.page-heading{gap:8px;align-items:center;margin-bottom:12px}.map-heading{min-width:0}.map-heading h1{font-size:18px}.game-meta{flex-shrink:0}.game-meta .save-indicator{display:none}.game-shell .player-console .hand-tile{width:68px}.modal{--modal-padding:14px}.modal-head h2{font-size:16px}.modal-body{padding-top:14px}.match-stats{font-size:12px}.match-stats th,.match-stats td{padding:10px 6px}.online-header .audio-controls{margin-left:auto}.online-header>strong{font-size:13px}}@media(max-width:950px)and (max-height:500px)and (orientation:landscape){.wango-platform{display:none}.game-shell .player-console{position:fixed;inset:8px max(8px,env(safe-area-inset-right)) 8px auto;width:min(42vw,350px);max-height:calc(100dvh - 16px);padding:8px;z-index:35}main.game-shell{padding-right:calc(min(42vw,350px) + 24px);padding-bottom:24px}.game-shell .play-layout:has(.castle-board){grid-template-columns:minmax(0,1fr)}.game-shell .arena-column{grid-column:1}.game-shell .play-layout>.game-sidebar{grid-column:1}.game-shell .player-console .console-toggle{display:none}.game-shell .player-console.console-collapsed>*:not(.console-toggle){display:revert}.game-shell .player-console .action-feedback,.game-shell .player-console .online-log{display:none}.game-shell .player-console .rack-topline{display:flex;flex-wrap:wrap}.game-shell .player-console .draw-count-button{width:100%;min-height:40px}.game-shell .player-console .hand-rack{padding:10px}.game-shell .page-heading{flex-wrap:wrap}.game-shell .game-meta{display:none}}@media(max-width:950px)and (max-height:500px)and (orientation:landscape){.site-header .header-inner{margin:0;width:calc(100% - min(42vw,350px) - 16px);height:auto;min-height:58px;padding:8px 12px;flex-wrap:wrap;gap:6px;box-sizing:border-box}.site-header .header-inner .audio-controls{margin-left:auto}.site-header .header-inner nav{position:static;order:3;width:100%;margin:0;height:36px;gap:8px;justify-content:space-between}.site-header .header-inner nav button{font-size:11px;white-space:nowrap;min-height:36px}.site-header .header-inner .nav-current{display:none}.site-header .header-inner nav svg{display:none}.site-header .brand-chinese{display:none}}
