:root{--ink:#2a1f14;--ink2:#5a4526;--paper:#f2e5c4;--paper2:#e6d2a6;--paper3:#f8efdb;--red:#a33025;--red2:#c04a3a;--gold:#c9a227;--gold2:#e8c552;--blue:#3a5a8f;--btn:#3a2c1c;--btn2:#57432c;--hi:#ffd97a;--line:#6b4f2a;--line-soft:#c9b183;--r-lg:14px;--r-md:10px;--r-sm:8px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;overflow:hidden;height:100%;background:#141009;user-select:none;-webkit-user-select:none;overscroll-behavior:none;font-family:PingFang SC,Microsoft YaHei,system-ui,sans-serif;color:var(--ink)}body{height:100dvh}canvas#cv{display:block;position:fixed;inset:0;touch-action:none}.serif{font-family:STKaiti,KaiTi,STSong,serif}.ov{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;z-index:20;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.hidden{display:none!important}.panel{background:linear-gradient(165deg,var(--paper),var(--paper2));border:3px solid var(--line);border-radius:var(--r-lg);box-shadow:0 14px 44px #0000009e,inset 0 1px #ffffff59,inset 0 0 46px #966e2829;padding:16px 18px;max-width:min(92vw,560px);animation:panel-in .22s ease-out}@keyframes panel-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}.panel h2{margin:2px 0 10px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:46px;min-width:46px;padding:10px 18px;border-radius:var(--r-md);border:2px solid #2a1d0e;background:linear-gradient(180deg,var(--btn2),var(--btn));color:#f3e7c8;font-size:16px;font-weight:700;letter-spacing:.04em;cursor:pointer;box-shadow:0 3px #1c130a;text-shadow:0 1px 2px rgba(0,0,0,.5);transition:filter .12s ease,transform .05s ease,box-shadow .12s ease}.btn:active{transform:translateY(2px);box-shadow:0 1px #1c130a;filter:brightness(1.15)}@media(hover:hover){.btn:hover{filter:brightness(1.12)}.btn.sm:hover{filter:brightness(1.15)}}.btn.red{background:linear-gradient(180deg,var(--red2),#8f2c20)}.btn.green{background:linear-gradient(180deg,#4d8a4a,#33602f)}.btn.gold{background:linear-gradient(180deg,#dcbc55,#a37c1d);color:#241a08;text-shadow:none}.btn.blue{background:linear-gradient(180deg,#4a6fc0,#2c4a8f)}.btn:disabled,.btn.dis{opacity:.45;pointer-events:none}.btn.sm{min-height:40px;padding:6px 12px;font-size:14px;border-radius:var(--r-sm)}.seg{display:flex;gap:4px;background:#2a1f1424;border:2px solid var(--line);border-radius:12px;padding:4px;margin:2px 0 10px}.seg .btn{flex:1;min-height:42px;border:none;background:transparent;color:#7a5c34;box-shadow:none;text-shadow:none;border-radius:9px;font-size:15px;padding:8px 10px}.seg .btn:active{transform:none}@media(hover:hover){.seg .btn:hover{filter:none;background:#ffffff4d}}.seg .btn.red,.seg .btn.on{background:linear-gradient(180deg,var(--red2),var(--red));color:#f8ead0;box-shadow:0 2px 4px #00000059,inset 0 1px #ffffff40}.form-card{display:flex;flex-direction:column;gap:10px;width:100%;max-width:340px;margin:0 auto;background:#ffffff47;border:1px solid var(--line-soft);border-radius:12px;padding:14px;box-shadow:inset 0 1px #fff6}.input{padding:11px 12px;border-radius:var(--r-sm);border:2px solid var(--line);background:var(--paper3);font-size:16px;color:var(--ink);font-family:inherit;transition:border-color .15s,box-shadow .15s;width:100%}.input::placeholder{color:#ab8f63}.input:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px #a3302529}.input-row{display:flex;gap:8px;align-items:stretch}.input-row .input{flex:1;min-width:0}.input-row .btn{flex:none}.form-hint{font-size:12px;color:#8a6a3a;line-height:1.6}.agree-row{display:flex;gap:8px;align-items:flex-start;text-align:left;font-size:12.5px;color:#6a5230;background:#c9a2271f;border:1px dashed var(--line-soft);border-radius:var(--r-sm);padding:9px 10px;line-height:1.6}.agree-row input{margin-top:2px;accent-color:var(--red)}.agree-row a,.agree-link{color:var(--blue);text-decoration:underline;cursor:pointer;font-weight:700}.ac-head{display:flex;align-items:center;gap:12px;margin-bottom:6px;text-align:left}.ac-logo{width:48px;height:48px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-size:24px;color:#3a2a10;background:linear-gradient(160deg,var(--gold2),var(--gold));border:2px solid #8a6a20;box-shadow:0 4px 12px #78551466,inset 0 1px #ffffff80}.ac-head .t{font-size:23px;font-weight:900;letter-spacing:.05em}.ac-head .s{font-size:12.5px;color:#7a6440;margin-top:3px;line-height:1.5}.pill{display:inline-flex;align-items:center;gap:5px;padding:3px 11px;border-radius:999px;background:#c9a22729;border:1px solid rgba(160,120,40,.45);font-size:12.5px;font-weight:800;color:#6a4a10}#cityview-ui{position:fixed;top:0;left:0;right:0;z-index:18;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:calc(8px + env(safe-area-inset-top)) calc(10px + env(safe-area-inset-right)) 10px calc(10px + env(safe-area-inset-left));background:linear-gradient(180deg,rgba(16,11,6,.88),rgba(16,11,6,.5) 75%,transparent)}#cityview-ui.hidden{display:none}#cv-title{font-size:clamp(18px,4.6vw,26px);font-weight:900;color:#f3dfae;text-shadow:0 2px 6px #000;letter-spacing:.06em;margin-right:auto;min-width:0}#cv-seg,#cv-view{flex:none;margin:0;background:#140e08ad;border-color:#dcb46480}#cv-seg .btn,#cv-view .btn{min-height:36px;font-size:13px;color:#d8c49a}#cv-seg .btn.red,#cv-view .btn.red{background:linear-gradient(180deg,#c04a3a,#8f2c20);color:#f8ead0}#cv-3d,#cv-sound,#cv-close{flex:none}@media(min-width:1200px){#cityview-ui{flex-wrap:nowrap}#cv-title{flex:1}}@media(max-width:600px){#cityview-ui{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto auto auto;gap:6px}#cv-title{grid-column:1/-1;margin:0;font-size:18px;line-height:1.25}#cv-title .cv-fac-list,#cv-title br{display:none}#cv-title .cv-meta{font-size:10px!important;letter-spacing:0}#cv-seg{grid-column:1/3;grid-row:2}#cv-view{grid-column:1/-1;grid-row:3}#cv-3d{grid-column:3;grid-row:2}#cv-sound{grid-column:4;grid-row:2}#cv-close{grid-column:5;grid-row:2}#cv-seg .btn,#cv-view .btn{min-height:40px;font-size:11px;padding:4px}#cv-3d,#cv-sound,#cv-close{font-size:11px;padding:5px 7px;min-height:44px;white-space:nowrap}}@media(max-height:500px){#cityview-ui{gap:5px}#cv-title{font-size:16px}#cv-title .cv-fac-list,#cv-title br{display:none}}.help-list{text-align:left;font-size:14px;line-height:1.9;color:var(--ink2);background:#ffffff38;border:1px solid var(--line-soft);border-radius:var(--r-md);padding:12px 14px}.menu-list{display:flex;flex-direction:column;gap:7px;margin-top:4px}.menu-list .btn{justify-content:flex-start;padding:11px 15px;font-size:15px;min-height:48px}.menu-list .mi{width:26px;text-align:center;font-size:17px;flex:none}.menu-list .mnote{margin-left:auto;font-size:12px;opacity:.75;font-weight:400}.menu-sec{margin:10px 0 2px;font-size:12px;font-weight:800;color:#8a6a3a;letter-spacing:.12em;text-align:left}#title{background:radial-gradient(120% 100% at 50% 0%,#3a2416,#1d130b 55%,#0d0906)}#title h1{font-size:min(13vw,84px);margin:0;color:#f3dfae;letter-spacing:.08em;text-shadow:0 0 24px rgba(255,180,60,.35),0 4px 0 #5a3a10,0 8px 18px rgba(0,0,0,.8)}#title .sub{color:#d8b878;margin:10px 0 30px;font-size:min(4.2vw,18px);letter-spacing:.4em}#title .col{display:flex;flex-direction:column;gap:14px;width:min(70vw,280px)}#title .btn{width:100%;font-size:18px}#title .tip{position:absolute;bottom:calc(12px + env(safe-area-inset-bottom));color:#8a7350;font-size:12px}#title-ver{margin-top:10px;font-size:12px;color:#8a7a55}#title-ver a{color:inherit;text-underline-offset:3px}#history-view{position:fixed;top:calc(56px + env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:20;background:#140e08e0;color:#f0dcae;border:1px solid rgba(220,180,100,.5);border-radius:10px;padding:8px 12px;display:flex;align-items:center;gap:8px;font-size:13px;flex-wrap:wrap;justify-content:center;max-width:96vw;backdrop-filter:blur(4px)}#history-view.hidden{display:none}#campaign-view{position:fixed;top:calc(56px + env(safe-area-inset-top));right:calc(8px + env(safe-area-inset-right));z-index:20;background:#140e08e0;color:#f0dcae;border:1px solid rgba(220,180,100,.5);border-radius:10px;padding:8px 12px;font-size:12px;max-width:92vw;display:flex;align-items:center;gap:8px;flex-wrap:wrap;backdrop-filter:blur(4px)}#campaign-view.hidden{display:none}#select{background:radial-gradient(120% 100% at 50% 0%,#2e2012,#191009 60%,#0d0906);justify-content:flex-start;overflow-y:auto;padding-top:max(24px,env(safe-area-inset-top));padding-bottom:max(24px,env(safe-area-inset-bottom))}#select h2{color:#f3dfae;margin:0 0 4px;font-size:min(7vw,32px)}#select p{color:#c8a86a;margin:0 0 14px;font-size:14px}#fac-list{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;max-width:640px}.fac-card{width:min(42vw,170px);padding:14px 8px;text-align:center;cursor:pointer;transition:transform .14s ease,box-shadow .14s ease}.fac-card:active{transform:scale(.95)}@media(hover:hover){.fac-card:hover{transform:translateY(-3px);box-shadow:0 10px 26px #00000080,inset 0 0 40px #966e2838}}.fac-flag{width:64px;height:64px;margin:0 auto 8px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:30px;color:#fff;border:3px solid rgba(255,255,255,.25);box-shadow:0 4px 12px #00000080}.fac-name{font-size:18px;font-weight:800}.fac-desc{font-size:12px;color:#7a6440;margin-top:4px;line-height:1.5}#select .demo-heading{margin:18px 0 8px;font-size:13px}#demo-list,#paid-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:640px}.scenario-tabs{min-width:min(92vw,360px)}#select .scenario-note{max-width:640px;text-align:center;font-size:12px;line-height:1.6;margin:8px 0 0}.paid-card .demo-tag{color:#87521c}.difficulty-badge{font-weight:800}.paid-card[data-owned=true]{border-color:#477746}.demo-card{display:flex;flex-direction:column;gap:6px;text-align:left;cursor:pointer;color:var(--ink);font:inherit}.demo-card b{font-size:20px;color:#7f2f22}.demo-card>span:not(.demo-tag){font-size:13px;line-height:1.6}.demo-card small{color:var(--ink2);line-height:1.6}.demo-tag{font-size:12px;color:#28633a;font-weight:700}@media(hover:hover){.demo-card:hover{filter:brightness(1.04);box-shadow:0 8px 20px #0000004d}}@media(max-width:600px){#demo-list,#paid-list{grid-template-columns:1fr;gap:8px}.demo-card{padding:10px 12px;gap:3px}.demo-card b{font-size:18px}}#hud-top{position:fixed;top:0;left:0;right:0;z-index:10;display:flex;align-items:center;gap:8px;padding:calc(6px + env(safe-area-inset-top)) calc(8px + env(safe-area-inset-right)) 6px calc(8px + env(safe-area-inset-left));background:linear-gradient(180deg,rgba(20,14,8,.92),rgba(20,14,8,.65) 80%,transparent);pointer-events:none}#hud-top>*{pointer-events:auto}#hud-info{display:flex;flex-direction:column;gap:3px;align-items:flex-start;min-width:0;max-width:100%;color:#f0dcae;font-size:14px;font-weight:700;background:#0006;border:1px solid rgba(220,180,100,.45);border-radius:10px;padding:6px 11px;backdrop-filter:blur(4px);box-shadow:0 3px 12px #0000004d}#hud-info .hud-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}#hud-info .sep{opacity:.4}#hud-top .spacer{flex:1}@media(max-width:600px){#hud-top{flex-wrap:wrap;gap:5px}#hud-info{flex:1 1 100%;gap:2px;padding:5px 8px;font-size:11px;line-height:1.35}#hud-info .hud-line{gap:5px}#hud-top .spacer{display:none}#bt-help{margin-left:auto}#hud-top .btn.sm{min-height:34px;padding:4px 9px;font-size:12px}}#city-panel{position:fixed;left:0;right:0;bottom:0;z-index:15;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:linear-gradient(180deg,var(--paper),var(--paper2));border-top:3px solid var(--line);box-shadow:0 -8px 28px #0000008c;max-height:82vh;overflow-y:auto;border-radius:16px 16px 0 0;animation:sheet-in .24s ease-out}@keyframes sheet-in{0%{transform:translateY(26px);opacity:.4}to{transform:none;opacity:1}}#city-panel h3{margin:2px 0 6px;font-size:19px;display:flex;align-items:center;gap:8px}#city-panel .meta{font-size:13px;color:#6a5230;margin-bottom:8px;line-height:1.6}.grow{display:flex;align-items:center;gap:8px;padding:8px;border-bottom:1px dashed var(--line-soft);font-size:14px;border-radius:8px}@media(hover:hover){.grow:hover{background:#ffffff52}}.grow .gicon{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:15px;flex:none;box-shadow:0 2px 6px #0000004d}.grow .gava{width:38px;height:38px;border-radius:50%;flex:none;border:2px solid var(--line);object-fit:cover;background:#e0cfa0}.grow .gname{font-weight:800;min-width:52px}.grow .gstat{font-size:12px;color:#6a5230}.grow .gtr{margin-left:auto;font-size:13px;font-weight:700;color:var(--blue);white-space:nowrap}.city-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.city-actions .btn{flex:1;min-width:100px}#army-sel .panel{width:min(94vw,520px);max-height:80vh;display:flex;flex-direction:column}#army-list{overflow-y:auto;margin:8px 0;max-height:44vh}#army-list .grow.sel{background:#a3302521;border-radius:8px}#army-sel .foot{display:flex;gap:8px}#army-sel .foot .btn{flex:1}.route-picker{display:flex;gap:6px;margin:8px 0 2px}.route-picker:empty{display:none}.route-picker .btn{flex:1}.route-tip{font-size:12px;color:#6a5230;line-height:1.5;margin:4px 2px}.route-tip.error{color:#a33025;font-weight:800}#battle-top{position:fixed;top:0;left:0;right:0;z-index:10;display:flex;justify-content:space-between;gap:8px;padding:calc(6px + env(safe-area-inset-top)) calc(8px + env(safe-area-inset-right)) 4px calc(8px + env(safe-area-inset-left));pointer-events:none}.gcard{pointer-events:auto;background:#0f0a06d6;border:1px solid rgba(220,180,100,.5);border-radius:10px;padding:6px 10px;color:#f0dcae;width:min(42vw,250px);min-width:0;max-width:46vw;backdrop-filter:blur(3px);box-shadow:0 4px 14px #0006}.gcard .nm{font-weight:800;font-size:14px;display:flex;justify-content:space-between;gap:8px;align-items:center}.gcard .nm img{flex:none}.bar{position:relative;height:14px;border-radius:4px;background:#241a10;margin-top:4px;overflow:hidden;border:1px solid rgba(0,0,0,.6)}.bar>i{display:block;height:100%;border-radius:4px;transition:width .15s}.bar>span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:9px;line-height:1;color:#fff;text-shadow:0 1px 2px #000;pointer-events:none}.bar.hp>i{background:linear-gradient(90deg,#d84a3a,#f0a03a)}.bar.mp>i{background:linear-gradient(90deg,#3a7ad8,#5ac0f0)}.battle-meta{font-size:11px;margin-top:3px;white-space:nowrap}#battle-bottom{position:fixed;left:0;right:0;bottom:0;z-index:10;max-height:44dvh;overflow-y:auto;overscroll-behavior:contain;pointer-events:auto;padding:6px calc(8px + env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) calc(8px + env(safe-area-inset-left));display:flex;flex-direction:column;gap:6px;align-items:center;background:linear-gradient(0deg,#100b06c2,#100b0600)}#skill-row{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;max-width:100%}.sk-btn{position:relative;min-width:72px;min-height:54px;padding:6px 8px;border-radius:var(--r-md);border:2px solid #2a1d0e;background:linear-gradient(180deg,#57432c,#3a2c1c);color:#f3e7c8;font-size:13px;font-weight:800;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 3px #1c130a;transition:filter .12s ease}.sk-btn:active{transform:translateY(2px)}.sk-btn:disabled{cursor:not-allowed}.sk-btn.cooling:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:conic-gradient(rgba(20,12,8,.52) var(--cd),transparent 0)}.sk-btn.no-mp .mp{color:#f0a090}@media(hover:hover){.sk-btn:hover{filter:brightness(1.15)}}.sk-btn .mp{font-size:11px;color:#7ab8f0;font-weight:700}.sk-btn.dis{opacity:.45;pointer-events:none}#gen-move-row{display:flex;gap:6px;justify-content:center}.move-btn{min-width:44px;min-height:44px;padding:4px 10px;border-radius:9px;border:2px solid #2a1d0e;background:linear-gradient(180deg,#4a3a24,#332611);color:#e8d5a5;font-size:20px;font-weight:900;cursor:pointer;box-shadow:0 2px #1c130a;touch-action:none;transition:filter .12s ease}.move-btn:active{transform:translateY(2px);filter:brightness(1.2)}.move-btn:focus-visible{outline:3px solid #2a6fd4;outline-offset:3px}#cmd-row{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;max-width:min(100%,960px)}.cmd-group{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.cmd-group.primary{padding-bottom:3px;border-bottom:1px solid rgba(220,180,100,.18)}.cmd-btn{min-height:46px;padding:8px 14px;border-radius:var(--r-md);border:2px solid #2a1d0e;font-size:14px;font-weight:800;background:linear-gradient(180deg,#4a3a24,#332611);color:#e8d5a5;cursor:pointer;box-shadow:0 3px #1c130a;transition:filter .12s ease}.cmd-btn:active{transform:translateY(2px)}.cmd-btn.danger{background:linear-gradient(180deg,#8a382c,#542018)}@media(hover:hover){.cmd-btn:hover{filter:brightness(1.15)}}.cmd-btn.on{background:linear-gradient(180deg,#dcbc55,#a37c1d);color:#241a08}@media(max-width:600px){#battle-bottom{max-height:46dvh;gap:4px}#skill-row{width:100%;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;padding-bottom:2px}.sk-btn{min-width:66px;min-height:48px;font-size:12px}#cmd-row,.cmd-group{gap:4px}.cmd-btn{min-height:42px;padding:6px 9px;font-size:12px}.gcard .nm{font-size:12px}.battle-meta{font-size:10px}}@media(prefers-reduced-motion:reduce){.sk-btn,.cmd-btn,.bar>i,#round-banner{transition:none}}#round-banner{position:fixed;top:38%;left:0;right:0;text-align:center;z-index:12;pointer-events:none;font-size:min(9vw,44px);font-weight:900;color:#f3dfae;text-shadow:0 0 18px rgba(255,150,40,.6),0 4px 6px rgba(0,0,0,.8);opacity:0;transition:opacity .3s}#round-banner.show{opacity:1}#result .panel,#end .panel{text-align:center;width:min(92vw,460px)}#result h2,#end h2{margin:4px 0 10px;font-size:min(8vw,34px)}#result .stats{font-size:14px;color:var(--ink2);margin-bottom:12px;line-height:1.8}.cap-row{display:flex;align-items:center;gap:8px;padding:8px;background:#ffffff40;border-radius:8px;margin:6px 0}.cap-row .nm{font-weight:800;flex:1;text-align:left}#end p{font-size:15px;line-height:1.9;color:#4a3820}#toast{position:fixed;top:calc(60px + env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:30;display:flex;flex-direction:column;gap:6px;align-items:center;pointer-events:none;max-width:92vw}.toast-msg{background:#0f0a06eb;color:#f0dcae;border:1px solid rgba(220,180,100,.55);padding:9px 18px;border-radius:22px;font-size:14px;font-weight:700;animation:tin .24s cubic-bezier(.2,.9,.3,1.15);box-shadow:0 6px 20px #00000073;backdrop-filter:blur(3px)}@keyframes tin{0%{opacity:0;transform:translateY(-12px) scale(.92)}to{opacity:1;transform:none}}#zoom-ctl{position:fixed;right:calc(10px + env(safe-area-inset-right));bottom:calc(90px + env(safe-area-inset-bottom));z-index:9;display:flex;flex-direction:column;gap:8px}#zoom-ctl .btn{min-width:48px;min-height:48px;font-size:22px;padding:0;border-radius:50%}#zoom-ctl .btn#map-layer{font-size:12px;padding:0 7px;border-radius:14px}#minimap{position:fixed;left:calc(10px + env(safe-area-inset-left));bottom:calc(12px + env(safe-area-inset-bottom));z-index:9;border:3px solid var(--line);border-radius:12px;box-shadow:0 6px 20px #00000080;background:#2a1f14;cursor:crosshair;touch-action:none;opacity:.94}#minimap.hidden{display:none}@media(max-width:600px){#minimap{width:118px;height:105px}}@media(max-height:500px){#minimap{width:128px;height:114px;bottom:calc(8px + env(safe-area-inset-bottom))}}#orient-hint{position:fixed;inset:0;z-index:50;background:#0a0704eb;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;color:#e8d5a5;font-size:16px;text-align:center;padding:20px}#game-dialog{width:min(94vw,780px);max-width:94vw;max-height:88vh;padding:0;overflow-y:auto;color:var(--ink);background:linear-gradient(160deg,var(--paper),var(--paper2));border:3px solid var(--line);border-radius:var(--r-lg);box-shadow:0 16px 48px #000000ad}#game-dialog:modal{overscroll-behavior:contain}#game-dialog::backdrop{background:#0a0704c7;backdrop-filter:blur(2px);overflow:hidden;overscroll-behavior:contain}#game-dialog[open]{animation:dlg-in .2s ease-out}@keyframes dlg-in{0%{opacity:0;transform:scale(.965)}to{opacity:1;transform:none}}#dialog-body{padding:16px}#dialog-body>h2:first-child{margin:-16px -16px 12px;padding:14px 18px 13px;font-size:min(6.4vw,26px);background:linear-gradient(180deg,#6b4f2a33,#6b4f2a0d);border-bottom:2px solid var(--line-soft);letter-spacing:.05em}#dialog-body h2{margin:0 0 8px;font-size:min(7vw,30px)}#dialog-body h3{display:flex;align-items:center;gap:8px;margin:16px 0 8px;font-size:16.5px;color:#5a3f1e;letter-spacing:.04em}#dialog-body h3:before{content:"";width:4px;height:17px;border-radius:2px;flex:none;background:linear-gradient(180deg,var(--gold2),var(--gold));box-shadow:0 0 7px #c9a2278c}.dialog-meta{color:#6a5230;font-size:13px;line-height:1.7}.dialog-actions{display:flex;gap:10px;margin-top:16px}.dialog-actions .btn{flex:1}.dialog-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0;padding:10px 12px;background:#ffffff47;border:1px solid var(--line-soft);border-radius:var(--r-md)}.dialog-toolbar label{font-weight:800}.dialog-toolbar select{min-height:42px;max-width:100%;padding:8px 10px;color:var(--ink);background:var(--paper3);border:2px solid var(--line);border-radius:var(--r-sm);font:inherit;cursor:pointer}.market-row,.warehouse-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 8px;border-bottom:1px dashed var(--line-soft);border-radius:8px;transition:background .12s}@media(hover:hover){.market-row:hover,.warehouse-row:hover{background:#ffffff57}}.trade-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.item-icon{width:56px;height:56px;object-fit:contain;flex:none;filter:drop-shadow(0 2px 3px rgba(0,0,0,.25))}.item-name{font-weight:800}.item-desc{color:#6a5230;font-size:12px;line-height:1.55}.empty-state{padding:24px 12px;text-align:center;color:#8a6a3a;background:#fff3;border:1.5px dashed var(--line-soft);border-radius:var(--r-md);margin:8px 0;font-size:14px;line-height:1.7}.general-summary{display:flex;align-items:center;gap:14px;margin-bottom:10px}.general-avatar{width:88px;height:88px;border-radius:50%;border:3px solid var(--line);flex:none;box-shadow:0 4px 14px #00000059}.general-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:10px 0}.general-stats>div{padding:8px 6px;background:#ffffff47;border:1px solid rgba(201,177,131,.5);border-radius:8px;text-align:center;font-size:13px}.equipment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.equipment-slot{display:flex;flex-direction:column;align-items:center;gap:5px;padding:12px 10px;text-align:center;background:#ffffff42;border:1px solid var(--line-soft);border-radius:var(--r-md)}.equipment-slot .btn{width:100%}.avatar-btn{padding:0;overflow:hidden;cursor:pointer;background:#e0cfa0}.avatar-btn img{display:block;width:100%;height:100%;object-fit:cover}.skill-list{margin:6px 0;padding-inline-start:20px;color:var(--ink2);font-size:13px;line-height:1.7}:where(.avatar-btn,.btn,.cmd-btn,.sk-btn,.dialog-toolbar select):focus-visible{outline:3px solid #2a6fd4;outline-offset:3px}#game-dialog::-webkit-scrollbar,#city-panel::-webkit-scrollbar,#army-list::-webkit-scrollbar{width:10px}#game-dialog::-webkit-scrollbar-thumb,#city-panel::-webkit-scrollbar-thumb,#army-list::-webkit-scrollbar-thumb{background:#b3965f;border-radius:6px;border:2px solid var(--paper2)}#game-dialog::-webkit-scrollbar-track,#city-panel::-webkit-scrollbar-track,#army-list::-webkit-scrollbar-track{background:transparent}@media(max-width:600px){#dialog-body{padding:12px}#dialog-body>h2:first-child{margin:-12px -12px 10px;padding:12px 14px 11px}.equipment-grid{grid-template-columns:1fr}.general-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.market-row,.warehouse-row{grid-template-columns:auto minmax(0,1fr)}.trade-actions{grid-column:1/-1;justify-content:stretch}.trade-actions .btn{flex:1}.general-summary{align-items:flex-start}.general-avatar{width:70px;height:70px}}@media(pointer:coarse){.trade-actions .btn{min-height:44px}}#city-panel,#army-list,#game-dialog,.ov{overscroll-behavior:contain}#title h1{font-size:clamp(34px,13vw,84px)}#select h2,#dialog-body h2{font-size:clamp(22px,7vw,30px)}#result h2,#end h2{font-size:clamp(24px,8vw,34px)}#city-panel{max-height:82dvh}#army-sel .panel{max-height:80dvh}#army-list{max-height:44dvh}#game-dialog{max-height:88dvh}#result .panel,#end .panel{max-height:88dvh;overflow-y:auto;overscroll-behavior:contain}#result .panel{max-width:min(92vw,560px)}@media(max-width:600px){#game-dialog{max-height:92dvh}#title .tip{width:92%;text-align:center;line-height:1.5}}@media(pointer:coarse){.btn.sm,.cmd-btn{min-height:44px}}@media(max-height:500px){.ov{justify-content:flex-start;overflow-y:auto}#title h1{font-size:clamp(30px,12vh,48px)}#title .sub{margin:4px 0 12px;font-size:clamp(12px,4vh,16px)}#title .col{gap:8px}#title .tip{position:static;margin-top:14px}#select p{margin-bottom:6px}#fac-list{gap:8px}.fac-card{width:130px;padding:6px}.fac-flag{width:44px;height:44px;margin-bottom:4px;font-size:22px}.fac-desc{font-size:11px;line-height:1.3}#army-sel .panel,#result .panel,#end .panel,#game-dialog{max-height:96dvh}#city-panel{max-height:calc(100dvh - 96px)}#army-list{max-height:52dvh}#battle-bottom{flex-direction:row;align-items:flex-end;justify-content:center;flex-wrap:wrap;gap:5px}#skill-row,#cmd-row{gap:5px}.sk-btn{min-width:60px;min-height:44px;padding:4px 6px;font-size:11px}.cmd-btn{min-height:44px;padding:5px 8px;font-size:12px}.gcard{min-width:min(36vw,180px);padding:4px 7px}.gcard .nm{font-size:12px}}@media(max-width:400px)and (max-height:500px){#city-panel{max-height:calc(100dvh - 156px)}}@media(min-width:900px)and (min-height:600px){#city-panel{left:auto;right:calc(8px + env(safe-area-inset-right));top:88px;bottom:calc(8px + env(safe-area-inset-bottom));width:min(420px,38vw);max-height:none;border:3px solid var(--line);border-radius:var(--r-lg)}#zoom-ctl{right:calc(min(420px,38vw) + 22px + env(safe-area-inset-right))}.city-actions .btn{min-width:88px}}#settlement{position:fixed;inset:0;z-index:40;overflow:hidden;pointer-events:none;color:#f3dfae}#settlement-banner{position:absolute;top:12%;left:50%;text-align:center;opacity:0;transform-origin:center}#settlement-seal{display:inline-block;padding:8px 22px;border:5px solid #b63729;border-radius:8px;color:#d94a38;background:#140c07d1;font-size:clamp(28px,6vw,64px);font-weight:900;letter-spacing:.08em;white-space:nowrap;text-shadow:0 2px 0 #2a0d08;box-shadow:0 0 0 3px #b6372959,0 8px 28px #0000008c}#settlement-sub{margin-top:10px;font-size:clamp(13px,2.4vw,20px);font-weight:800;text-shadow:0 2px 5px #000}#settlement-reward{position:absolute;bottom:18%;left:50%;max-width:92vw;padding:12px 18px;opacity:0;text-align:center;color:var(--ink);background:linear-gradient(160deg,var(--paper),var(--paper2));border:3px solid var(--gold);border-radius:12px;box-shadow:0 8px 30px #0000008c;font-size:clamp(13px,2.4vw,18px);font-weight:800;line-height:1.7;white-space:pre-line}#settlement-note{position:absolute;bottom:8%;left:50%;transform:translate(-50%);opacity:0;white-space:nowrap;font-size:clamp(12px,2.2vw,16px);color:#f0dcae;text-shadow:0 2px 5px #000}#settlement-skip{position:absolute;top:calc(10px + env(safe-area-inset-top));right:calc(10px + env(safe-area-inset-right));pointer-events:auto;z-index:41;background:#140c07d9}@media(max-width:600px){#settlement-banner{top:16%;width:94vw}#settlement-seal{padding:6px 12px;border-width:4px;white-space:normal}#settlement-reward{bottom:22%;width:88vw;padding:9px 12px}#settlement-note{bottom:14%;white-space:normal;text-align:center;width:90vw}}@media(prefers-reduced-motion:reduce){#settlement-banner,#settlement-reward,#settlement-note{transition:none}.panel,#game-dialog[open],#city-panel,.toast-msg{animation:none}}
