:root{color-scheme:light;--paper:#edf1e4;--ink:#203d35;--muted:#526258;--pine:#315b48;--gold:#dca553;--line:#ccd3bf;--board-size:460px}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 20% 15%,#fbf8e8 0,transparent 45%),radial-gradient(ellipse at 100% 80%,#d7e1c9 0,transparent 55%),var(--paper);color:var(--ink);font-family:ui-sans-serif,system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif}button,select,a{-webkit-tap-highlight-color:transparent}button,select{font:inherit}button{cursor:pointer}button:disabled{cursor:default}button:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #825512;outline-offset:3px}button{touch-action:manipulation}button,select{min-height:44px}button[hidden],[hidden]{display:none!important}.frontier-app{max-width:1100px;height:100vh;height:100dvh;min-height:0;margin:auto;padding:16px 28px;display:flex;flex-direction:column;gap:12px;overflow:hidden}.topbar{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;flex:none;font-size:12px}.topbar a{color:var(--ink);text-decoration:none;display:flex;align-items:center;min-height:44px}.brand{font-size:10px;font-weight:750;letter-spacing:.22em;color:var(--muted)}.nav-actions{display:flex;gap:6px}.nav-actions button{border:1px solid #b5c4ad;color:var(--ink);background:#f7f8ef;border-radius:12px;padding:0 12px;font-size:12px;white-space:nowrap}.nav-actions #rules-open{width:44px;padding:0;font-size:20px;font-family:Georgia,serif}.heading{display:flex;align-items:center;justify-content:space-between;flex:none;padding:2px 0 8px}.eyebrow{margin:0 0 4px;font-size:10px;letter-spacing:.18em;color:var(--muted)}h1{margin:0;font-family:"Songti SC",SimSun,serif;font-weight:800;font-size:38px;line-height:1.2;letter-spacing:.08em}h1 span{color:var(--pine)}h1 i{display:inline-block;font-style:normal;font-size:31px;color:#946c2e;transform:rotate(-12deg);margin-left:10px}.heading-copy{font-size:12px;color:var(--muted);line-height:1.9;margin:0}.play-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.85fr);grid-template-rows:auto 1fr;grid-template-areas:"map resources" "map commands";gap:14px 32px;min-height:0;flex:1;align-items:start}.resources{grid-area:resources;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:13px 0;gap:2px}.resource{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:0}.resource>div{display:flex;flex-direction:column;align-items:center;gap:2px}.resource-icon{display:block;width:27px;height:27px}.resource-icon svg{width:100%;height:100%}.resource-label{font-size:10px;color:var(--muted);white-space:nowrap}.resource b{font-size:24px;font-variant-numeric:tabular-nums;line-height:1.1}.resource b span{font-size:12px;color:var(--muted);margin-left:2px}.resource b.pulse{animation:counter-pop .45s ease-out}.map-column{grid-area:map;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:start}.map-meta{display:flex;align-items:center;justify-content:space-between;width:min(100%,var(--board-size));height:28px;flex:none;padding:0 5px 5px;font-size:12px;color:var(--muted)}.map-meta>span:first-child{display:flex;align-items:center;gap:9px}.map-meta b{color:var(--ink);font-family:Georgia,serif;font-size:18px}.north{font-size:10px;letter-spacing:2px}.map-shell{position:relative;width:min(100%,var(--board-size));aspect-ratio:1;border-radius:23px;padding:10px;background:#c4cdb7;border:1px solid #b3bea6;box-shadow:0 8px 0 #b4bea3,0 15px 32px #52683a20;isolation:isolate}.map{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(5,minmax(0,1fr));gap:5px;width:100%;height:100%}.tile{position:relative;display:block;min-width:44px;min-height:44px;border:0;padding:0;border-radius:11px;background:#e8e9c8;box-shadow:inset 0 -3px 0 #bec898;overflow:visible;isolation:isolate;transition:filter .15s,box-shadow .15s;outline-offset:0!important}.tile::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;border:2px solid transparent}.tile.fog{background:#728875;box-shadow:inset 0 -3px 0 #5e7563}.tile.fog .tile-art{opacity:.66}.tile.reachable{background:#91a68a;box-shadow:inset 0 -3px 0 #657d63}.tile.reachable::after{border-color:#203d35;box-shadow:inset 0 0 0 1px #ebefcf}.tile.reachable:hover{filter:brightness(1.1)}.tile.selected::after{border:3px solid #594219;box-shadow:0 0 0 2px #fff6d1;z-index:3}.tile.enemy{background:#dcc4ad;box-shadow:inset 0 -3px 0 #bba38b}.tile.owned-outpost{background:#c7d8ad}.tile.terrain-forest{background:#c4d4a6;box-shadow:inset 0 -3px 0 #adbf8e}.tile.terrain-camp{background:#ecdbad;box-shadow:inset 0 -3px 0 #c9ba8d}.tile-art{position:absolute;inset:2%;display:block;pointer-events:none}.tile-art svg{display:block;width:100%;height:100%;overflow:visible}.tile-label{position:absolute;bottom:3px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:10px;line-height:1.2;font-weight:750;color:#203d35;background:#f4f2d9e8;border-radius:6px;padding:2px 4px;pointer-events:none}.tile-badge{position:absolute;top:3px;right:3px;background:#623b2f;color:#fff8e8;font-size:11px;font-weight:750;line-height:18px;min-width:18px;border-radius:6px;padding:0 4px;box-shadow:0 1px 2px #0002;pointer-events:none}.tile.owned-outpost .tile-badge{background:#315b48}.mill-clock{position:absolute;bottom:5px;left:50%;display:flex;gap:3px;transform:translateX(-50%);background:#f4f2d9;padding:3px 4px;border-radius:8px}.mill-clock i{display:block;width:5px;height:5px;border:1px solid #526258;border-radius:50%;background:#f4f2d9}.mill-clock i.filled{background:#315b48}.tile.flip{animation:tile-flip .4s ease-out}.tile.grow .tile-art{animation:building-grow .5s cubic-bezier(.25,1.35,.5,1)}.tile.capture .tile-art{animation:flag-rise .5s ease-out}.tile.recruit .tile-art{animation:troop-hop .42s ease-out}.feedback{font-size:11px;line-height:1.5;text-align:center;color:var(--muted);margin:13px 0 0;min-height:32px;max-width:440px;display:flex;align-items:center;justify-content:center}.command-panel{grid-area:commands;display:flex;flex-direction:column;gap:13px;min-width:0}.strategy-note{padding-top:6px}.note-tag{font-size:10px;letter-spacing:.15em;color:var(--muted)}.strategy-note h2{font-family:"Songti SC",serif;font-size:26px;letter-spacing:.06em;margin:8px 0}.strategy-note p{font-size:12px;color:var(--muted);line-height:1.85;margin:0}.landscape-art{height:75px;margin:8px 0 0;opacity:.9}.landscape-art svg{width:100%;height:100%}.selection{display:flex;gap:10px;align-items:center;min-height:62px;padding:7px 10px;background:#f8f8ec;border:1px solid #d4d9c7;border-radius:13px}.selected-art{flex:0 0 44px;width:44px;height:44px}.selected-art svg{height:100%;width:100%}.selection h2{font-size:14px;margin:0 0 4px;font-weight:750}.selection p{font-size:11px;line-height:1.45;margin:0;color:var(--muted)}.commands{display:grid;grid-template-columns:1fr 1fr;gap:8px}.commands button{border:1px solid var(--pine);border-radius:11px;background:var(--pine);color:#fff8e8;min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:13px;font-weight:700;padding:6px 4px}.commands button small{font-size:10px;font-weight:500}.commands button.secondary{background:#f8f8ec;color:var(--ink);border-color:#a3b39b}.commands button:disabled{background:#e0e5d7;color:#526258;border-color:#c5ceba;opacity:1}.commands button:not(:disabled):active{transform:translateY(1px)}.commands.single{grid-template-columns:1fr}.action-rule{font-size:10px;color:var(--muted);text-align:center;margin:-3px 0 0;white-space:nowrap}.toolbar{display:flex;align-items:center;gap:7px;border-top:1px solid var(--line);padding-top:10px}.toolbar>button,.level-picker{border:1px solid #bac6ad;background:#f8f8ec;border-radius:10px;color:var(--ink);font-size:11px;min-height:44px}.toolbar>button{padding:0 11px;white-space:nowrap}.level-picker{position:relative;flex:1;min-width:0}.level-picker select{appearance:none;-webkit-appearance:none;width:100%;background:transparent;border:0;color:var(--ink);padding:0 24px 0 10px;font-size:11px;min-width:0}.level-picker>span:last-child{position:absolute;right:9px;top:50%;transform:translateY(-50%);pointer-events:none}.progress{font-size:10px;white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums}.result{position:absolute;inset:8%;z-index:5;background:#fbfaefee;backdrop-filter:blur(5px);border:1px solid #fffef5;border-radius:22px;box-shadow:0 12px 35px #283d3533;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:18px;color:var(--ink)}.result-stamp{display:flex;align-items:center;justify-content:center;width:64px;height:64px;border:1px solid #b8c6ab;border-radius:50%;font-size:38px;color:#315b48;background:#e2e9d4;margin-bottom:14px}.result h2{font-size:22px;font-family:"Songti SC",serif;margin:4px 0 10px}.result>p:not(.eyebrow){font-size:12px;line-height:1.7;color:var(--muted);margin:0 0 18px}.result button,#rules-done{border:0;border-radius:12px;min-height:44px;background:#315b48;color:#fff8e8;padding:10px 20px;font-size:13px;font-weight:700}.fx-layer{position:absolute;inset:0;z-index:8;pointer-events:none;overflow:visible}.flying-wood{position:fixed;z-index:1100;width:27px;height:27px;pointer-events:none;animation:wood-fly .65s cubic-bezier(.4,.05,.4,1) forwards}.flying-wood svg{width:100%;height:100%}.float-gain{position:absolute;left:var(--x);top:var(--y);font-size:15px;font-weight:800;color:#203d35;text-shadow:0 1px #fff8e8,0 -1px #fff8e8,1px 0 #fff8e8,-1px 0 #fff8e8;animation:gain-rise .8s ease-out forwards;transform:translateX(-50%)}dialog{width:min(520px,calc(100vw - 24px));max-height:calc(100dvh - 32px);padding:20px;border:1px solid #c3cdb7;border-radius:20px;background:#fbfaef;color:var(--ink);box-shadow:0 25px 80px #203d3540;overflow:auto}dialog::backdrop{background:#203d3566;backdrop-filter:blur(4px)}.rules-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.rules-top h2{font-size:19px;margin:0;font-family:"Songti SC",serif}.rules-top button{border:0;background:#e4e9da;color:#203d35;font-size:24px;width:44px;border-radius:10px;flex:none}.rules-hint{background:#e8eddc;border-radius:10px;padding:12px;font-size:12px;line-height:1.7}dialog ol{padding-left:22px;font-size:13px;line-height:1.8}dialog li{margin-bottom:9px}.save-status{font-size:11px;color:var(--muted)}#rules-done{width:100%;margin-top:7px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.frontier-app.is-expanded{position:fixed;inset:0;z-index:1000;max-width:none;width:100%;height:100vh;height:100dvh;background:var(--paper);padding-inline:max(16px,calc((100vw - 1044px)/2))}.frontier-app:fullscreen::backdrop{background:var(--paper)}body.game-view-open{overflow:hidden}
@keyframes tile-flip{0%{transform:perspective(500px) rotateY(80deg);filter:brightness(.8)}100%{transform:perspective(500px) rotateY(0);filter:brightness(1)}}@keyframes building-grow{0%{transform:scale(.2) translateY(18px);opacity:0}75%{transform:scale(1.08) translateY(-2px)}100%{transform:scale(1)}}@keyframes flag-rise{0%{transform:translateY(10px);opacity:.4}100%{transform:translateY(0);opacity:1}}@keyframes troop-hop{40%{transform:translateY(-7px)}100%{transform:translateY(0)}}@keyframes counter-pop{40%{transform:scale(1.2)}}@keyframes wood-fly{0%{transform:translate(0,0) scale(1);opacity:1}80%{opacity:1}100%{transform:translate(var(--dx),var(--dy)) scale(.55);opacity:0}}@keyframes gain-rise{0%{opacity:0;transform:translate(-50%,2px)}20%{opacity:1}100%{opacity:0;transform:translate(-50%,-28px)}}
@media(min-width:761px) and (min-height:650px){.resources{padding:16px 0}.frontier-app{padding-top:20px;padding-bottom:20px}.play-layout{align-content:center}.map-column{padding-top:4px}}
@media(max-width:760px) and (min-height:501px){:root{--board-size:min(100vw - 32px,100dvh - 375px,390px)}.frontier-app{padding:10px 16px;gap:8px;max-width:500px}.heading{padding:0 0 3px}.heading h1{font-size:29px}.heading .eyebrow{font-size:9px}.heading-copy{font-size:10px;line-height:1.6}.brand{display:none}.play-layout{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto;grid-template-areas:"resources" "map" "commands";gap:8px;align-content:start}.resources{padding:7px 0;min-height:54px}.resource{flex-direction:row;gap:6px}.resource>div{align-items:flex-start}.resource b{font-size:21px}.resource-icon{width:23px;height:23px}.resource-label{font-size:9px}.map-meta{height:24px;font-size:11px}.map-shell{padding:7px;border-radius:17px}.map{gap:4px}.tile{border-radius:9px}.feedback{margin:9px 0 0;min-height:28px;font-size:10px;max-width:100%}.command-panel{gap:6px}.strategy-note{display:none}.selection{min-height:46px;padding:4px 8px;border-radius:10px;gap:8px}.selected-art{width:34px;height:34px;flex-basis:34px}.selection h2{font-size:12px;margin:0 0 2px}.selection p{font-size:10px}.commands button{min-height:46px;font-size:12px;gap:2px;padding:4px}.action-rule{font-size:9px;margin:0}.toolbar{padding-top:5px;gap:7px}.result h2{font-size:19px}.result-stamp{width:52px;height:52px;font-size:31px;margin-bottom:9px}.result>p:not(.eyebrow){font-size:11px;margin-bottom:12px}.frontier-app.is-expanded{padding-inline:16px;max-width:none}.frontier-app.is-expanded .play-layout{width:100%;max-width:460px;align-self:center}}
@media(max-width:760px) and (min-height:501px) and (max-height:700px){:root{--board-size:min(100vw - 24px,100dvh - 320px)}.frontier-app{padding:6px 12px;gap:5px}.heading{display:none}.resources{min-height:48px;padding:4px 0}.play-layout{gap:5px}.map-meta{height:21px}.map-shell{padding:6px}.map{gap:3px}.feedback{margin-top:8px;min-height:26px;line-height:1.35}.selection{min-height:39px;padding:3px 7px}.selected-art{width:30px;height:30px;flex-basis:30px}.selection h2{margin-bottom:1px}.commands button{min-height:44px}.command-panel{gap:5px}.action-rule{display:none}.toolbar{padding-top:5px}.result{inset:5%;padding:12px}.result-stamp{width:40px;height:40px;font-size:26px;margin-bottom:7px}.result h2{font-size:17px;margin:2px 0 7px}.result>p:not(.eyebrow){margin-bottom:9px}.tile-label{font-size:9px;padding:1px 3px;bottom:2px}.tile-badge{font-size:10px;min-width:16px;line-height:16px;top:2px;right:2px}.frontier-app.is-expanded{padding:6px 12px}}
@media(max-height:500px) and (min-width:520px){:root{--board-size:min(100dvh - 108px,380px)}.frontier-app{padding:6px 14px;gap:5px;max-width:980px}.heading,.brand{display:none}.play-layout{grid-template-columns:minmax(244px,1fr) minmax(250px,.95fr);grid-template-rows:58px 1fr;grid-template-areas:"map resources" "map commands";gap:7px 18px;align-content:start}.resources{padding:4px 0;height:58px}.resource{flex-direction:row;gap:5px}.resource>div{align-items:flex-start}.resource-icon{width:23px;height:23px}.resource b{font-size:22px}.resource-label{font-size:9px}.map-meta{height:20px;font-size:11px}.map-shell{padding:6px;border-radius:15px;box-shadow:0 5px 0 #b4bea3,0 10px 22px #52683a20}.map{gap:3px}.tile{border-radius:8px}.tile-label{font-size:9px;bottom:2px;padding:1px 3px}.tile-badge{top:2px;right:2px;font-size:10px;line-height:16px;min-width:16px}.feedback{margin-top:6px;min-height:25px;font-size:10px;line-height:1.3}.command-panel{gap:7px}.strategy-note{display:block;padding:0}.strategy-note .note-tag,.strategy-note h2,.landscape-art{display:none}.strategy-note p{font-size:10px;line-height:1.55}.selection{min-height:44px;padding:4px 7px;border-radius:10px;gap:7px}.selected-art{width:32px;height:32px;flex-basis:32px}.selection h2{font-size:12px;margin-bottom:2px}.selection p{font-size:10px}.commands button{min-height:44px;padding:4px;font-size:12px}.commands button small{font-size:9px}.action-rule{font-size:9px;margin:0}.toolbar{padding-top:6px;gap:6px}.result{inset:5%;padding:10px}.result-stamp{width:36px;height:36px;font-size:23px;margin-bottom:5px}.result h2{font-size:17px;margin:3px 0 6px}.result>p:not(.eyebrow){font-size:10px;margin-bottom:9px}.frontier-app.is-expanded{padding:6px 14px}}
@media(max-height:375px) and (min-width:520px){.strategy-note{display:none}.command-panel{gap:9px}.play-layout{grid-template-rows:58px 1fr}:root{--board-size:244px}.map-meta{height:20px}.feedback{min-height:22px}.resource-icon{display:none}.resources{padding:7px 0}.resource b{font-size:24px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.planning-note{font-size:12px;line-height:1.6;color:#41543d;background:#eef1df;padding:10px 12px;border-radius:10px;margin:10px 0}.toolbar{flex-wrap:wrap}#sound-toggle{min-height:44px}

@media(max-width:760px),(max-height:650px){.planning-note{display:none}}
