:root{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;color:#2c2a21;background:#1f2c26;font-synthesis:none;--paper: #e8dfc5;--paper-dark: #cfc3a4;--ink: #2d3028;--p1: #406a66;--p1-light: #8eb2a7;--p2: #985747;--p2-light: #d2a089;--gold: #c59a43;--river: #477a8d;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{user-select:none;-webkit-user-select:none;touch-action:manipulation}button{font:inherit;color:inherit;min-height:48px;cursor:pointer;touch-action:manipulation}button:disabled{cursor:not-allowed;opacity:.48}.app{height:100%;min-height:100%;padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);display:flex;flex-direction:column;overflow:hidden;position:relative;background:radial-gradient(circle at 50% -20%,#516556 0,#273b32 52%,#1a2822)}.topbar{min-height:72px;height:9.5vh;max-height:86px;padding:8px 20px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;color:#f1ead4;border-bottom:1px solid #ffffff19;box-shadow:0 5px 20px #0005;z-index:2}.brand{display:flex;align-items:center;gap:10px}.brand-mark{display:grid;place-items:center;width:46px;height:46px;border:2px solid #c8a758;border-radius:50%;font:900 26px "Noto Serif SC",serif;color:#e9cf86}.brand b{display:block;letter-spacing:.13em;font-family:Georgia,serif}.brand small{display:block;color:#c5c7b7;margin-top:2px}.turn-badge{min-width:154px;padding:8px 24px;text-align:center;background:#13231db5;border:1px solid #d1b56855;clip-path:polygon(9px 0,calc(100% - 9px) 0,100% 50%,calc(100% - 9px) 100%,9px 100%,0 50%)}.turn-badge small,.turn-badge strong{display:block}.turn-badge small{color:#baae8b;font-size:11px;letter-spacing:.12em}.turn-badge strong{color:#f0d78f;margin-top:2px}.icon-button{justify-self:end;display:flex;align-items:center;gap:7px;padding:0 14px;border:1px solid #ffffff22;border-radius:6px;background:#14231d77;color:#e5ddc6}.icon-button span{font-size:13px}.game-layout{flex:1;min-height:0;display:grid;grid-template-columns:minmax(210px,1fr) minmax(400px,510px) minmax(215px,1fr);gap:clamp(8px,1.4vw,20px);padding:clamp(8px,1.5vh,14px) clamp(10px,1.7vw,22px)}.panel{min-width:0;overflow:hidden}.left-panel{display:flex;flex-direction:column;gap:9px}.player-card{position:relative;padding:10px 12px;border:1px solid #eee0ba2c;border-radius:5px;background:linear-gradient(125deg,#e8e0cb 0,#cfc5ab);box-shadow:0 3px 8px #0004,inset 0 0 24px #694b1720;transition:transform .15s}.player-card.active{outline:2px solid #d7b55c;box-shadow:0 3px 10px #0005,0 0 12px #d3ac4d55;transform:translate(3px)}.player-head{display:flex;align-items:center;gap:9px}.player-head>div{line-height:1.1}.player-head small,.player-head strong{display:block}.player-head small{font-size:10px;color:#615e50}.player-head strong{margin-top:3px;font:700 16px "Noto Serif SC",serif}.player-head em{margin-left:auto;padding:3px 7px;font-style:normal;font-size:10px;color:#fff;border-radius:12px;background:var(--gold)}.player-flag{display:grid;place-items:center;width:40px;height:40px;color:#fff;font-weight:800;border-radius:3px 10px;box-shadow:inset 0 0 0 2px #fff3}.player-card.p1 .player-flag{background:var(--p1)}.player-card.p2 .player-flag{background:var(--p2)}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-top:8px}.stats div{padding:5px 3px 3px;text-align:center;border-left:1px solid #776e5730}.stats div:first-child{border:0}.stats small,.stats b{display:block}.stats small{font-size:9px;color:#6b6759}.stats b{font-size:12px;margin-top:2px}.hp-track,.flag-track{margin-top:6px;height:4px;overflow:hidden;border-radius:3px;background:#6b66574d}.hp-track i,.flag-track i{display:block;width:100%;height:100%;background:#9d4e40;transition:width .3s}.flag-track i{background:#b38b39}.legend,.logbook{padding:10px 12px;color:#ded9c8;border:1px solid #ffffff14;border-radius:5px;background:#12221cb0}.legend h3,.logbook h3{margin:0 0 7px;font:700 12px "Noto Serif SC",serif;color:#d9bf7d;letter-spacing:.1em}.legend>div{display:flex;align-items:center;gap:5px;min-height:24px;font-size:11px}.dot{width:13px;height:13px;border-radius:50%;display:inline-block;margin-left:6px}.dot:first-child{margin-left:0}.move-dot{background:#5fd0b1;box-shadow:0 0 0 3px #5fd0b133}.attack-dot{background:#e35e4b;box-shadow:0 0 0 3px #e35e4b33}.supply-dot{background:#e8bd55}.bridge-mini{display:inline-block;width:19px;height:8px;background:repeating-linear-gradient(90deg,#a17a45 0 4px,#d7b578 4px 7px)}.wall-mini{display:inline-block;width:18px;height:10px;background:repeating-linear-gradient(90deg,#75634d 0 5px,#9a8669 5px 8px);border-bottom:2px solid #4e4639}.logbook{flex:1;min-height:0}.logbook p{margin:0;padding:5px 0;font-size:10px;line-height:1.35;color:#c9c9bb;border-top:1px dashed #ffffff17}.board-wrap{min-width:0;min-height:0;position:relative;align-self:center;justify-self:center;height:100%;max-height:670px;aspect-ratio:10/13;padding:24px 0;filter:drop-shadow(0 8px 14px #0007)}.board{width:100%;height:100%;display:grid;grid-template-columns:repeat(10,1fr);grid-template-rows:repeat(13,1fr);border:8px solid #a48a5f;outline:2px solid #3d392e;border-radius:2px;overflow:hidden;background:#c9b98f;box-shadow:inset 0 0 25px #3a271f55;touch-action:none}.map-label{position:absolute;left:0;right:0;height:24px;display:flex;align-items:center;justify-content:center;color:#ddd3b4;font:700 10px "Noto Serif SC",serif;letter-spacing:.28em}.top-label{top:0}.bottom-label{bottom:0}.cell{position:relative;min-width:0;min-height:0;padding:0;display:grid;place-items:center;border:0;border-right:1px solid #605f4730;border-bottom:1px solid #605f4730;background:transparent;overflow:visible}.cell:before{content:"";position:absolute;inset:4%;border-radius:3px;pointer-events:none}.p1-land{background:#a8b8a4}.p2-land{background:#c7a895}.wild{background-color:#b6ad80;background-image:radial-gradient(#6e745431 1px,transparent 1.3px),linear-gradient(32deg,transparent 45%,#66704f14 46% 54%,transparent 55%);background-size:13px 13px,37px 31px}.wall-zone{background:linear-gradient(#92826b,#6e6251);border-color:#463e34}.river{background:linear-gradient(165deg,#3f7184 0 18%,#6194a2 19% 31%,#477c8e 32% 53%,#72a2ac 54% 67%,#47798b 68%);border-color:#c7e2df28}.bridge{z-index:1;background:repeating-linear-gradient(90deg,#795a35 0 9%,#c59a5d 10% 29%,#8e693a 30% 35%);border-left:3px solid #5f482d;border-right:3px solid #5f482d;box-shadow:inset 0 4px #d6b477,inset 0 -4px #55402b}.river-text{font:900 clamp(12px,1.4vw,20px) "Noto Serif SC",serif;color:#e5e7d7aa;text-shadow:0 1px #264b58}.supply-icon{position:absolute;z-index:1;width:68%;aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px dashed #6c5629;border-radius:50%;font:900 clamp(9px,1vw,14px) "Noto Serif SC",serif;line-height:1;color:#5d481e;background:#e5bd5eaa;box-shadow:0 0 0 4px #e7be4c25}.supply-icon small{font:700 6px sans-serif;margin-top:2px}.supply-icon.controlled-1{border-color:var(--p1);background:#89aca4dd;color:#173e3a}.supply-icon.controlled-2{border-color:var(--p2);background:#c98b79dd;color:#5b2c23}.cell.can-move:before{z-index:2;background:#55d5ae70;border:2px solid #b9ffeb;box-shadow:inset 0 0 12px #19a87e,0 0 7px #4cdfb5}.cell.can-attack:before{z-index:2;background:#d4413655;border:3px solid #ff8a73;box-shadow:inset 0 0 10px #bb1c18,0 0 8px #f24b37}.cell.selected:before{z-index:3;border:3px solid #fff1a1;box-shadow:inset 0 0 12px #f8cf35,0 0 9px #fff09c}.cell.purchase-target:before{z-index:2;background:#dfb74d59;border:2px dashed #fff0a5}.cell.pending-target:before{z-index:3;background:#d9b23f6e;border:3px solid white;box-shadow:0 0 10px #f8cd4b}.cell.can-capture:before{z-index:5;background:#e5c35466;border:3px solid #fff3a5;box-shadow:inset 0 0 15px #d79f1f,0 0 12px #ffe07a;animation:capturePulse 1s ease-in-out infinite}.cell.wall-selected:before{z-index:3;border:3px solid #e8d093}.cell.wall-gap{background:linear-gradient(90deg,#81715c 0 18%,#b0a17d 19% 80%,#776956 81%)}@keyframes capturePulse{50%{filter:brightness(1.25)}}.wall-piece{position:absolute;z-index:2;inset:6% 3%;display:flex;align-items:center;justify-content:center;color:#eee3c6;border:2px solid #493e32;border-radius:3px;background:repeating-linear-gradient(90deg,#766650 0 18%,#97836a 19% 37%,#645745 38% 43%);box-shadow:inset 0 3px #b6a182,0 2px 4px #0006;font:800 9px serif}.wall-piece small{position:absolute;right:2px;bottom:1px;padding:0 2px;background:#2b2923cc;font:700 6px sans-serif}.wall-piece.destroyed{inset:19% 4%;border:1px dashed #eadfbf88;background:#3c362e33;color:#eee0bd}.wall-piece.destroyed i{font:700 7px sans-serif;font-style:normal}.wall-piece.side-1{box-shadow:inset 0 3px var(--p1-light),0 2px 4px #0006}.wall-piece.side-2{box-shadow:inset 0 3px var(--p2-light),0 2px 4px #0006}.flag-piece{position:absolute;z-index:2;left:19%;top:8%;width:58%;height:78%;filter:drop-shadow(0 2px 2px #0007)}.flag-piece:before{content:"";position:absolute;left:19%;top:0;width:3px;height:100%;background:#4e402f}.flag-piece i{position:absolute;left:24%;top:4%;width:70%;height:52%;display:grid;place-items:center;clip-path:polygon(0 0,100% 0,80% 50%,100% 100%,0 100%);color:#f4ead0;font:900 11px "Noto Serif SC",serif;font-style:normal}.flag-piece.side-1 i{background:var(--p1)}.flag-piece.side-2 i{background:var(--p2)}.unit-piece{position:relative;z-index:4;width:82%;max-width:52px;aspect-ratio:1;display:grid;place-items:center;border-radius:50%;color:#f6edd4;border:3px double #f2d59f;box-shadow:0 3px 5px #0008,inset 0 0 8px #0004;font:900 clamp(14px,2.1vw,25px) "Noto Serif SC",serif}.unit-piece.side-1{background:radial-gradient(circle at 35% 25%,#6c9991,var(--p1) 60%,#254b48)}.unit-piece.side-2{background:radial-gradient(circle at 35% 25%,#bd7966,var(--p2) 60%,#6b332b)}.unit-piece.kind-hq{width:92%;border-radius:9px;transform:rotate(45deg)}.kind-hq .unit-glyph{transform:rotate(-45deg)}.unit-piece.kind-artillery{border-style:solid}.unit-piece.kind-turret{border-radius:8px}.unit-piece.kind-barricade{border-radius:3px;background:#675d4b}.unit-piece.kind-general{border-radius:44% 44% 50% 50%;border-color:#f4d56f;box-shadow:0 3px 5px #0008,inset 0 0 0 2px #d5ae48,0 0 7px #f2ce68}.unit-piece.kind-carriage{border-radius:8px 8px 45% 45%;border-style:solid}.unit-hp{position:absolute;right:-6px;bottom:-7px;min-width:28px;padding:1px 3px;border-radius:7px;background:#20251f;border:1px solid #e8dab5;color:#fff;font:700 8px sans-serif;white-space:nowrap}.kind-hq .unit-hp{transform:rotate(-45deg);right:-13px;bottom:0}.unit-hp i{color:#84d9e8;font-style:normal;margin-right:2px}.action-marks{position:absolute;top:-7px;left:-7px;padding:1px 3px;border-radius:5px;background:#292821;color:#d2c6a5;font:700 8px sans-serif}.has-moved,.has-attacked{filter:saturate(.62)}.right-panel{display:flex;flex-direction:column;gap:10px}.info-card,.pending-card{padding:14px;color:#2b2b24;border:1px solid #e7dab8;border-radius:5px;background:linear-gradient(145deg,#eee6d1,#cfc3a4);box-shadow:0 4px 12px #0004,inset 0 0 20px #8e71402a}.info-card.empty{min-height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#5b594e}.info-card.empty h3{margin:6px 0}.info-card.empty p{margin:0;max-width:230px;font-size:12px;line-height:1.5}.compass{font-size:35px;color:#9a7c3e}.eyebrow{color:#715e38;font-size:9px;letter-spacing:.13em;text-transform:uppercase}.info-card h2,.pending-card h3{margin:4px 0 9px;font:900 22px "Noto Serif SC",serif}.unit-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #7e745b4d}.unit-stat-grid span{padding:6px 2px;text-align:center;border-right:1px solid #7e745b4d;font-size:9px;color:#6c685b}.unit-stat-grid span:last-child{border:0}.unit-stat-grid b{display:block;margin-top:3px;font-size:14px;color:#29291f}.equipment{margin-top:9px}.equipment small{font-size:9px;color:#716b5b}.equipment p{margin:2px 0;font-size:11px;min-height:15px}.action-status{display:flex;gap:7px;margin-top:9px}.action-status span{flex:1;padding:5px;text-align:center;border:1px solid #4b7f6c;border-radius:3px;color:#326752;font-size:10px}.action-status .done{border-color:#8b8170;color:#777064;background:#7c74651a}.rule-note{font-size:10px;margin:8px 0 0;color:#8b4939}.wall-info p{margin:8px 0 4px}.wall-info>small{font-size:10px;color:#665f51}.wall-hp{height:8px;margin-top:10px;overflow:hidden;border-radius:5px;background:#635e52aa}.wall-hp span{display:block;height:100%;background:#8b6b43}.pending-card{border:2px solid #d0a748}.pending-card p{font-size:11px}.pending-actions{display:flex;gap:7px}.pending-actions button{flex:1;border:0;border-radius:3px;background:#416a5f;color:#fff;font-size:11px}.secondary{background:#b9ad91!important;color:#37342b!important}.action-stack{margin-top:auto;display:grid;gap:9px}.shop-button{min-height:76px;display:grid;grid-template-columns:55px 1fr;text-align:left;align-items:center;border:1px solid #d5ba754d;border-radius:5px;background:linear-gradient(135deg,#263b31,#182b24);color:#eee4c7;box-shadow:0 4px 10px #0005}.shop-button>span{grid-row:1/3;display:grid;place-items:center;width:44px;height:44px;margin-left:8px;border:2px solid #c9a956;border-radius:4px 12px;color:#e1c77b;font:900 22px "Noto Serif SC",serif}.shop-button b{align-self:end}.shop-button small{align-self:start;color:#9fa99e}.end-turn{border:1px solid #ead28a;border-radius:5px;background:linear-gradient(#c49d47,#926d28);color:#fff;font-weight:800;letter-spacing:.12em;box-shadow:0 4px #5e431c,0 7px 10px #0005}.overlay{position:fixed;z-index:20;inset:0;padding:calc(18px + var(--safe-top)) calc(18px + var(--safe-right)) calc(18px + var(--safe-bottom)) calc(18px + var(--safe-left));display:grid;place-items:center;background:#101a16df;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.handoff-card,.victory-card{width:min(430px,90vw);padding:34px;text-align:center;color:#eee5ce;border:1px solid #d1b4626b;background:radial-gradient(circle at top,#3c5747,#1e3028 70%);box-shadow:0 16px 50px #0009,inset 0 0 40px #0003;clip-path:polygon(18px 0,calc(100% - 18px) 0,100% 18px,100% calc(100% - 18px),calc(100% - 18px) 100%,18px 100%,0 calc(100% - 18px),0 18px)}.seal,.laurel{margin:0 auto 16px;display:grid;place-items:center;width:68px;height:68px;border:3px double #e0bd5b;border-radius:50%;color:#e6ca78;font:900 34px "Noto Serif SC",serif}.handoff-card small,.victory-card small{color:#c2b88f;letter-spacing:.2em}.handoff-card h1,.victory-card h1{margin:8px 0;font:900 28px "Noto Serif SC",serif}.handoff-card p,.victory-card p{color:#bfc6ba;font-size:12px;line-height:1.7}.handoff-card button,.victory-card button{width:100%;margin-top:10px;border:1px solid #ecd98d;border-radius:4px;background:#c29a43;color:#fff;font-weight:800}.victory-card .ghost{background:transparent;color:#c4bcaa;border-color:#ffffff26}.laurel{border-radius:7px;transform:rotate(45deg)}.laurel:first-letter{transform:rotate(-45deg)}.capture-burst{margin:0 auto 16px;display:grid;place-items:center;width:82px;height:64px;color:#f5da7b;border:3px double #e0bd5b;background:#8b4638;clip-path:polygon(0 0,100% 0,84% 50%,100% 100%,0 100%);font:900 25px "Noto Serif SC",serif;animation:captureIn .5s ease-out}@keyframes captureIn{0%{transform:scale(.4) rotate(-12deg);opacity:0}to{transform:scale(1);opacity:1}}.shop.overlay{padding:clamp(8px,2vw,22px)}.shop-building{width:min(1000px,97vw);height:min(680px,94vh);display:flex;flex-direction:column;color:#272a23;border:8px solid #615341;border-radius:4px;background:#d9cfb3;box-shadow:0 18px 70px #000c,inset 0 0 40px #4b321d28}.shop-building>header{min-height:70px;padding:9px 15px;display:flex;align-items:center;justify-content:space-between;color:#eee2c5;background:linear-gradient(#374a3e,#25362e);border-bottom:5px solid #b69657}.shop-building header small{color:#c9bf9f}.shop-building h2{margin:3px 0;font:900 22px "Noto Serif SC",serif;letter-spacing:.1em}.close{padding:0 16px;color:#e9dec4;border:1px solid #ffffff2b;border-radius:3px;background:#18271f}.shop-body{flex:1;min-height:0;display:grid;grid-template-columns:1.7fr 1fr;gap:14px;padding:14px;background-image:linear-gradient(90deg,#523d2810 1px,transparent 1px);background-size:28px 100%}.category-grid{display:grid;grid-template-columns:repeat(6,1fr);grid-template-rows:repeat(3,1fr);gap:10px;min-height:0}.category-grid button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:4px solid #755d3e;background:linear-gradient(150deg,#d4c295,#a99163);box-shadow:inset 0 0 0 2px #eadcb9,0 4px 4px #0004}.category-grid button.small{grid-column:span 2}.category-grid button.large{grid-column:span 3}.category-grid button:before,.category-grid button:after{content:"";position:absolute;width:10px;height:10px;border-radius:50%;background:#645136;box-shadow:inset 0 1px 2px #0008}.category-grid button:before{left:6px;top:6px}.category-grid button:after{right:6px;top:6px}.category-grid button.active{outline:4px solid #e0bd55;background:#ead49a}.category-grid span{display:grid;place-items:center;width:46px;height:46px;border:2px solid #52462f;border-radius:50%;font:900 23px "Noto Serif SC",serif;background:#e4d8b9}.category-grid b{font:700 clamp(10px,1.2vw,14px) "Noto Serif SC",serif}.shelf{min-height:0;padding:12px;overflow:auto;border:5px solid #5a4835;background:#eee5cf;box-shadow:inset 0 0 22px #6a4a2252}.shop-welcome{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#746a55}.shop-welcome>div{display:grid;place-items:center;width:70px;height:70px;border:3px double #897044;border-radius:8px;font:900 25px "Noto Serif SC",serif}.shop-welcome h3{margin:11px 0 3px}.shop-welcome p{font-size:11px}.shelf>h3{margin:5px 0 10px;font:900 18px "Noto Serif SC",serif}.shelf-back{min-height:36px;border:0;background:none;color:#725a32}.shelf article{display:grid;grid-template-columns:48px 1fr;gap:9px;padding:9px;margin-bottom:9px;border:1px solid #a49470;background:#ded2b5}.shelf article.selected{outline:3px solid #c49a3d}.product-icon{grid-row:1/3;display:grid;place-items:center;width:44px;height:44px;border:2px solid #6d5939;border-radius:50%;font:900 19px "Noto Serif SC",serif}.shelf article p{margin:3px 0;font-size:10px;color:#625e52}.shelf article strong{color:#8d6725;font-size:12px}.shelf article button{grid-column:1/3;border:0;border-radius:3px;background:#3e6559;color:#fff;font-size:11px}.buy-confirm{min-height:82px;padding:10px 14px;display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;color:#eee4cb;background:#25382f;border-top:4px solid #b69657}.buy-confirm small,.buy-confirm b,.buy-confirm span{display:block}.buy-confirm span{font-size:10px;color:#b9bba9;margin-top:3px}.buy-confirm button{padding:0 16px;border:1px solid #d5bd79;border-radius:3px;background:#ab8538;color:#fff}.confirm-layer{z-index:40;background:#121a17b8}.confirm-box{width:min(370px,90vw);padding:22px;color:#302e26;border:2px solid #c8af70;border-radius:5px;background:#eee5cd;box-shadow:0 12px 35px #0009}.confirm-box h2{margin:0;font:900 21px "Noto Serif SC",serif}.confirm-box p{font-size:12px;line-height:1.6}.confirm-box>div{display:flex;gap:8px}.confirm-box button{flex:1;border:0;border-radius:3px;background:#3f685d;color:#fff}.confirm-box button.danger{background:#a54d3c}.confirm-box .clear-save{width:100%;margin-top:9px;background:transparent;color:#963e33;border:1px solid #a95c50}.toast{position:fixed;z-index:60;left:50%;bottom:calc(22px + var(--safe-bottom));transform:translate(-50%);padding:10px 18px;border:1px solid #e4ca83;border-radius:24px;background:#18251fee;color:#fff;box-shadow:0 5px 20px #0007;font-size:12px;white-space:nowrap}.save-notice{position:fixed;z-index:70;left:50%;top:calc(16px + var(--safe-top));transform:translate(-50%);width:min(620px,92vw);padding:12px 14px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;color:#332f25;border:2px solid #c29d48;border-radius:5px;background:#f0e5c7;box-shadow:0 8px 28px #0008}.save-notice b{font:800 13px "Noto Serif SC",serif}.save-notice span{font-size:11px}.save-notice button{min-height:40px;padding:0 13px;border:0;border-radius:3px;background:#3f675b;color:#fff}@media(min-width:901px)and (max-width:1100px)and (orientation:landscape){.game-layout{grid-template-columns:minmax(190px,1fr) 510px minmax(190px,1fr);gap:8px;padding:8px 10px}.board-wrap{padding:18px 0}.map-label{height:18px}}@media(max-width:900px)and (orientation:landscape){.topbar{min-height:58px;height:9vh;padding:5px 12px}.brand-mark{width:38px;height:38px;font-size:21px}.brand small,.icon-button span{display:none}.game-layout{grid-template-columns:minmax(175px,.85fr) minmax(350px,460px) minmax(180px,.9fr);gap:7px;padding:7px}.player-card{padding:7px}.legend{display:none}.logbook p:nth-of-type(n+3){display:none}.info-card,.pending-card{padding:9px}.info-card.empty{min-height:130px}.shop-button{min-height:61px}.board-wrap{padding:18px 0}.map-label{height:18px}.shop-building{height:96vh}.shop-building>header{min-height:56px}.shop-body{padding:8px;gap:8px}.category-grid{gap:6px}.buy-confirm{min-height:67px}.unit-piece{border-width:2px}}@media(orientation:portrait),(max-width:700px){html,body,#root{overflow:auto}.app{min-height:100%;height:auto;overflow:visible}.topbar{position:sticky;top:0;height:70px;background:#263a31}.game-layout{grid-template-columns:1fr;grid-template-areas:"board" "right" "left";overflow:visible}.board-wrap{grid-area:board;width:min(94vw,560px);height:auto;aspect-ratio:10/13;min-height:600px}.right-panel{grid-area:right;overflow:visible}.left-panel{grid-area:left;overflow:visible}.legend,.logbook{display:none}.player-card{display:inline-block;width:calc(50% - 5px)}.left-panel{display:block}.player-card+.player-card{margin-left:10px}.info-card.empty{min-height:130px}.action-stack{grid-template-columns:1fr 1fr}.shop-body{grid-template-columns:1fr}.category-grid{min-height:320px}.shelf{min-height:250px}.shop-building{height:95vh;overflow:auto}.buy-confirm{position:sticky;bottom:0}.category-grid button.small{min-height:90px}.save-notice{grid-template-columns:1fr}.save-notice button{width:100%}}@media(max-height:620px)and (orientation:landscape){.topbar{min-height:52px}.game-layout,.player-card{padding:5px 8px}.player-head small,.stats small{display:none}.player-head strong{font-size:13px}.player-flag{width:31px;height:31px}.stats{margin-top:3px}.legend{display:none}.logbook{padding:6px 9px}.info-card{padding:7px}.info-card h2{font-size:17px}.equipment,.action-status{margin-top:5px}.shop-button{min-height:54px}.end-turn{min-height:43px}.board-wrap{padding:16px 0}.map-label{height:16px}}
