@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700&family=Noto+Serif+JP:wght@500;700&display=swap');
:root{color-scheme:dark;font-family:'Noto Sans JP',sans-serif;background:#0c151c;color:#e6e6df;font-size:16px}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;font-size:14px;color:#d9dfde;background:#1a2830;border:1px solid #36444a;padding:10px 14px;cursor:pointer;border-radius:3px}button:hover{border-color:#c7ac74;background:#26363d}button:focus-visible{outline:2px solid #e7c178;outline-offset:3px}button:disabled{opacity:.4;cursor:default}header{height:88px;display:flex;align-items:center;justify-content:space-between;padding:0 32px;border-bottom:1px solid #344047;background:#111c24}.brand{display:flex;gap:14px;text-decoration:none;color:#e3d2a9;font-family:Georgia,serif;font-size:23px;letter-spacing:2px}.brand b{font-weight:400;color:#eee}.brand small{display:block;font-family:'Noto Serif JP',serif;font-size:12px;letter-spacing:5px;margin-top:6px}.crest{font-size:38px}.chapter{font-size:12px;letter-spacing:3px;color:#b8a57e}.chapter span{display:block;color:#d7d9d4;font-size:14px;letter-spacing:1px;margin-top:5px}main{height:calc(100dvh - 88px);min-height:680px;display:grid;grid-template-columns:minmax(0,1fr) 320px}#world{position:relative;overflow:hidden;background:#263d48}canvas{width:100%;height:100%;display:block;touch-action:none}.scene-title{position:absolute;top:30px;left:34px;pointer-events:none;z-index:1;text-shadow:0 2px 10px #112329}.scene-title span{font-size:12px;letter-spacing:3px;color:#d3c5a8}.scene-title h1{font-family:'Noto Serif JP',serif;font-size:28px;font-weight:500;letter-spacing:4px;margin:8px 0}.scene-title p{font-size:14px;color:#c5d0d0;margin-top:8px}.view-controls{position:absolute;bottom:56px;left:28px;display:flex;gap:8px}.view-controls button{background:#142630dd;backdrop-filter:blur(10px)}.scene-footer{position:absolute;bottom:0;left:0;width:100%;display:flex;justify-content:space-between;padding:14px 28px;background:#0c1b26aa;color:#bdc9cc;font-size:12px;letter-spacing:.5px}aside{padding:27px 24px;background:#111c24;border-left:1px solid #344047;display:flex;flex-direction:column;overflow:auto}.eyebrow{color:#a69777;font-size:12px;letter-spacing:2px;margin-bottom:24px}.turn{display:flex;align-items:center;gap:14px}.turn>span{display:grid;place-items:center;width:42px;height:52px;background:#244b67;color:#a8d9f5;border:1px solid #5883a1;font-family:serif;font-size:26px;clip-path:polygon(0 0,100% 0,100% 80%,50% 100%,0 80%)}small{font-size:12px;color:#9cabad}.turn h2{font-family:'Noto Serif JP',serif;font-size:21px;margin:5px 0}.turn>b{margin-left:auto;color:#63757e;font-family:serif;font-size:26px;font-weight:400}#status{margin:20px 0 24px;background:#1d3039;border-left:2px solid #a9c8d9;padding:12px;font-size:14px;color:#c0d7e2}.unit{display:flex;align-items:center;gap:15px;padding-bottom:22px;border-bottom:1px solid #30404a}.unit-symbol{width:58px;height:64px;background:#293d46;border:1px solid #647276;display:grid;place-items:center;font-family:'Noto Serif JP',serif;color:#e5cc94;font-size:29px}.unit h3{font-size:18px;margin:5px 0}.unit p{font-size:12px;color:#9cabad;margin:4px 0}aside h3{font-size:14px;font-weight:500}.reserve{margin-top:13px;min-height:115px}h3 small{float:right;color:#8a9da6;font-weight:400}#hands{display:flex;flex-wrap:wrap;gap:5px}#hands button{padding:8px 10px}.muted{font-size:13px;color:#8d9da4}.log{border-top:1px solid #30404a;padding-top:12px;flex:1;min-height:120px}ol{padding:0;list-style:none;font-size:14px;max-height:200px;overflow:auto}li{padding:8px 0;border-bottom:1px solid #25343e;color:#b5c5cd}li em{font-style:normal;color:#758d9c;margin-right:13px}.bottom{border-top:1px solid #30404a;padding-top:10px}.bottom p{font-size:12px;color:#96a8b1;line-height:1.9}.bottom button{width:48%}#toast{position:absolute;bottom:120px;left:50%;transform:translateX(-50%);background:#101e29e8;border:1px solid #a99a76;padding:12px 22px;text-align:center;min-width:230px;pointer-events:none}dialog{max-width:800px;width:90%;border:1px solid #6c6a55;background:#14242e;color:#e4e8e8;padding:32px;box-shadow:0 25px 100px #0008}dialog::backdrop{background:#040b12bd;backdrop-filter:blur(5px)}dialog h2{font-family:'Noto Serif JP',serif;font-weight:500;font-size:25px;line-height:1.6}dialog p{font-size:14px;line-height:1.9;color:#b4c5cb}dialog a{color:#d9c392;font-size:14px}.close{float:right}.arch-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.arch-grid article{background:#1d303a;padding:18px}.arch-grid b{font-size:12px;color:#c3ac7b;letter-spacing:2px}.arch-grid h3{font-size:18px}.note{border-top:1px solid #40505b;padding-top:14px}#promotion{max-width:450px}#yes{background:#456478} @media(max-width:900px){header{padding:0 18px;height:75px}.chapter{display:none}.brand{font-size:18px}main{height:auto;min-height:0;grid-template-columns:1fr}#world{height:69dvh;min-height:480px}.scene-title{left:18px;top:20px}.scene-title h1{font-size:22px}.scene-title p{display:none}aside{padding:20px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.eyebrow{display:none}.turn{grid-column:1/-1}#status{grid-column:1/-1;margin:4px 0}.unit{border:0}.reserve{margin:0}.log{max-height:170px}.bottom{padding-top:4px}.scene-footer span:last-child{display:none}.view-controls{left:16px;bottom:49px}.scene-footer{padding:12px 16px}.arch-grid{grid-template-columns:1fr}dialog{padding:22px}.brand small{letter-spacing:3px}header button{padding:8px 10px}}

[hidden]{display:none!important}
#world{position:relative;background:#b6ced0;overflow:hidden}
#scene{display:block;width:100%;height:100%;touch-action:none;outline-offset:-4px;cursor:grab}
#scene.panning{cursor:grabbing}
#loading{position:absolute;inset:0;z-index:8;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#152923;color:#e8dec0;padding:24px;text-align:center}
.loading-mark{font-size:56px;color:#e4c785}
.scene-title{pointer-events:none;text-shadow:0 2px 10px #12281888}
.scene-title h1{color:#fff4d6}.scene-title span{color:#f3e9c8}.scene-title p{color:#f5f1dd}
.scene-footer{background:linear-gradient(transparent,#0b241d99);color:#fff6dc;pointer-events:none}
.view-controls{z-index:2}.view-controls button{background:#132b25de;border-color:#789287;color:#fff6dc}
#hands button{margin:4px;padding:10px 16px}#hands button[aria-pressed=true]{outline:2px solid #efd18b}
#toast{z-index:7}.bottom p{font-size:14px}.unit p{font-size:14px}
@media(max-width:900px){#world{height:66dvh;min-height:420px}.scene-title{top:14px;left:16px}.scene-title p{display:none}.scene-title h1{font-size:20px}.scene-footer span{font-size:11px}.view-controls button{padding:9px 12px}aside{padding:16px}.log{max-height:200px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
.mobile-help{display:none}
@media(max-width:900px){.bottom{grid-column:1/-1}.bottom button{width:calc(50% - 4px);white-space:nowrap}.desktop-help{display:none}.scene-footer .mobile-help{display:inline!important;font-size:12px}}

.view-controls{flex-wrap:wrap;right:20px}.view-controls button{font-size:13px}.scene-title p{letter-spacing:.5px}@media(max-width:900px){.view-controls{gap:5px;left:12px;right:8px}.view-controls button{padding:8px;font-size:11px}.unit p{font-size:12px}}

.ai-command{margin:18px 0 8px}.ai-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.ai-heading h3{margin:0}.ai-heading button{font-size:11px;padding:6px 8px}.ai-help,.ai-footnote{font-size:11px;line-height:1.7;color:#9cafb8;margin:9px 0}.ai-footnote a{color:#d4c18d;white-space:nowrap}.ai-card{position:relative;margin:12px 0 0;padding:12px 10px 8px;border:1px solid #354852;min-width:0;background:#15232c}.ai-card legend{font-size:12px;color:#c5d9e2;padding:0 5px}.ai-card[data-active=true]{border-color:#b2a16c;background:#1c302f}.ai-toggle{position:absolute;right:9px;top:-17px;font-size:11px;padding:5px 10px}.ai-toggle[aria-pressed=true]{background:#776331;border-color:#baa573;color:#fff3d1}.ai-options{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:7px}.ai-options label{font-size:11px;color:#b5c5ca;min-width:0}.ai-options select{display:block;width:100%;min-width:0;margin-top:4px;padding:6px 3px;border:1px solid #41535c;background:#10202a;color:#efe6cd;font:inherit;font-size:12px;border-radius:3px}.ai-options select:focus-visible{outline:2px solid #e7c178}.ai-status{font-size:11px;line-height:1.6;margin:8px 0 1px;color:#afc9c5;overflow-wrap:anywhere}.ai-card button[id^=ai-retry]{font-size:11px;padding:5px 10px;margin-top:6px}.unit,.turn,.bottom,.ai-command,.reserve{flex-shrink:0}
@media(max-width:900px){.ai-command{grid-column:1/-1;margin:6px 0}.ai-card{padding:12px}.ai-options select{font-size:14px;min-height:38px}.ai-toggle{min-height:34px;top:-22px}.ai-status{font-size:12px}.ai-help,.ai-footnote{font-size:12px}.ai-heading button{min-height:34px}}
.battle-options{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;margin:12px 0 20px;color:#c5d9e2;font-size:14px}.battle-options label{display:flex;align-items:center;gap:6px}.battle-options label:first-child{width:100%;justify-content:space-between}.battle-options select{font:inherit;color:#efe6cd;background:#10202a;border:1px solid #41535c;border-radius:3px;padding:5px 8px}.battle-options input{accent-color:#cdb779;width:16px;height:16px}.battle-options label:has(:disabled){opacity:.55}
.war-settings,.war-history{font-size:14px;line-height:1.65;color:#d6ddd8;margin:12px 0;flex-shrink:0}.war-settings summary,.war-history summary{cursor:pointer;padding:8px 0;color:#e6cb95}.war-settings label{display:flex;gap:8px;align-items:center;justify-content:flex-start;margin:10px 0}.war-settings select{margin-left:auto;color:#fff2d6;background:#10202a;font:inherit;border:1px solid #526469;padding:6px}.war-settings input{accent-color:#d9be82}.war-settings input[type=range]{min-width:0;max-width:180px;flex:1}.war-settings p{font-size:12px;color:#b0c3c8}.war-history ol{padding-left:20px;max-height:180px;overflow:auto}.war-history li{margin:6px 0;font-size:13px}
#war-presentation,.war-markers{position:absolute;inset:0;pointer-events:none;z-index:5;overflow:hidden}.war-markers{z-index:4}.war-banner{--war-accent:#94cddd;position:absolute;bottom:66px;left:24px;width:min(440px,calc(100% - 48px));padding:14px 22px 16px;border-left:3px solid var(--war-accent);background:linear-gradient(100deg,#0c191df5,#102126d9 85%,#10212600);color:#fff3d5;text-shadow:0 2px 5px #0008;animation:war-arrive .24s ease-out}.war-banner[data-side="1"]{--war-accent:#eeaaa0}.war-side{font:12px system-ui,sans-serif;letter-spacing:1.5px;color:var(--war-accent);margin-bottom:6px}.war-kanji{display:block;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:58px;line-height:1.2;letter-spacing:.12em;font-weight:800}.war-english{display:block;font:12px system-ui,sans-serif;letter-spacing:2px;margin-top:6px;color:#e1cc9e}.war-subtitle{font-size:15px;line-height:1.6;margin:12px 0 0}.war-translation{font:14px/1.5 system-ui,sans-serif;margin:5px 0 0;color:#e0e7df}.war-banner[data-intensity=small]{width:min(370px,calc(100% - 48px));padding:12px 18px}.war-banner[data-intensity=small] .war-kanji{font-size:36px}.war-banner[data-intensity=large]{border-color:#e3c375}.war-banner[data-intensity=large] .war-kanji{color:#f5d78c;font-size:68px}.war-banner[data-mode=subtle]{animation:none}.war-banner[data-mode=subtle] .war-kanji{font-size:32px}.war-command{position:relative;left:auto;bottom:auto;width:100%!important;margin-top:10px;padding:10px!important;pointer-events:none}.war-command .war-kanji{font-size:24px!important}.war-command .war-subtitle,.war-command .war-translation{font-size:13px}.war-command .war-side{display:none}.war-command .war-english{font-size:12px;letter-spacing:1px}.war-mark{position:absolute;display:grid;place-items:center;width:44px;height:44px;transform:translate(-50%,-50%);border:2px solid #e3bd70;outline:1px solid #1e2c2b;border-radius:50%;box-shadow:0 0 18px #f2cb7666;color:#fff4d4;background:#142829b0;font:20px "Yu Mincho",serif;animation:war-ring .8s ease-out infinite}.war-mark[data-side="1"]{border-color:#f3a38b}.war-mark[data-static=true]{animation:none}@keyframes war-arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes war-ring{50%{box-shadow:0 0 26px #f2cb7688}}
@media(max-width:900px){.war-banner{left:12px;bottom:62px;width:calc(100% - 24px);max-width:400px;padding:10px 14px}.war-kanji{font-size:40px}.war-banner[data-intensity=large] .war-kanji{font-size:48px}.war-subtitle{font-size:14px;margin-top:8px}.war-translation{font-size:13px}.war-banner[data-intensity=small]{width:calc(100% - 24px)}.war-history{grid-column:1/-1}.war-command{max-width:none}.war-settings select{min-height:38px}}
@media(prefers-reduced-motion:reduce){.war-banner,.war-mark{animation:none!important}}
.war-banner:not(.war-command){bottom:118px}@media(max-width:900px){.war-banner:not(.war-command){bottom:116px}}

#reset-confirmation{max-width:480px}.reset-actions{display:flex;justify-content:flex-end;gap:12px;flex-wrap:wrap;margin-top:24px}#reset-confirm{background:#456478}

.language-control{display:flex;align-items:center;gap:8px;font-size:12px;color:#b5c5ca}.language-control select{font:inherit;background:#15232c;color:#efe6cd;border:1px solid #41535c;padding:8px;border-radius:3px}@media(max-width:900px){.language-control span{display:none}.language-control select{min-height:38px}}
.unit>div:last-child{min-width:0}.unit p{overflow-wrap:anywhere}
/* Independent tools; the information panel can give its full width back to the field. */
.workspace-tools{display:flex;gap:8px;align-items:center}.workspace-tools button{min-height:40px;background:#14232bcc}.workspace-tools button[aria-expanded=true]{border-color:#c8ad73;background:#293b42;color:#ffe4ac}#open-settings{font-size:23px;line-height:1;padding:8px 12px}
main.panel-closed{grid-template-columns:minmax(0,1fr)}#side-panel{padding:20px 22px;background:linear-gradient(155deg,#14242d,#101c24);gap:22px}#side-panel[hidden],.panel-content[hidden]{display:none!important}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid #b9a06b40;padding-bottom:14px;color:#e4c990;letter-spacing:2px}.panel-heading button{font-size:24px;line-height:1;padding:3px 9px;background:transparent;border-color:transparent}.panel-heading h2{margin:0}.panel-content{min-height:0;min-width:0}#status-panel{display:flex;flex-direction:column;flex:1}#status-panel .bottom{margin-top:auto}#command-panel .ai-command{margin:0}#history-panel .log{border:0;padding:0}#history-panel ol{max-height:none}#settings-dialog{max-width:520px;max-height:85dvh;overflow:auto}#settings-dialog .language-control{justify-content:space-between;margin:22px 0}#settings-dialog .label-setting{margin:16px 0}#settings-dialog .battle-options{border-top:1px solid #34454e;padding-top:18px}#settings-dialog .war-settings{border-top:1px solid #34454e;padding-top:12px}.war-banner:not(.war-command){bottom:56px}
@media(max-width:1100px){.chapter{display:none}}
@media(max-width:900px){header{height:112px;flex-wrap:wrap;padding:8px 14px;gap:6px}.brand{font-size:16px}.brand small{display:none}.crest{font-size:24px}.workspace-tools{width:100%;gap:6px}.workspace-tools button{flex:1;padding:6px;font-size:13px;min-height:36px}#open-settings{flex:0 0 42px;font-size:22px}main{height:calc(100dvh - 112px);min-height:0;display:block}#world{height:100%;min-height:0}#side-panel{position:fixed;right:0;top:112px;bottom:0;width:min(340px,100%);z-index:8;display:flex;box-shadow:-16px 0 40px #0005}#side-panel .turn{display:flex}#side-panel .bottom{padding-top:14px}.war-banner:not(.war-command){bottom:58px}.scene-title{top:18px}.scene-title h1{font-size:20px}#settings-dialog .language-control span{display:inline}}
#stage-dialog{max-width:650px}.stage-options{border:0;margin:20px 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:14px}.stage-options legend{color:#cdb782;margin-bottom:12px}.stage-options label{display:grid;grid-template-columns:auto 1fr;gap:10px;padding:20px 14px;border:1px solid #425662;background:linear-gradient(135deg,#253a36,#18242e);cursor:pointer}.stage-options label:last-child{background:linear-gradient(135deg,#3a2636,#172330)}.stage-options label:has(:checked){outline:2px solid #d9bb78;outline-offset:2px}.stage-options strong{font-size:18px;color:#f1dfb9}.stage-options span{grid-column:1/-1;font-size:13px;color:#bfcbd0;line-height:1.6}.stage-options input{accent-color:#d9bb78}#stage-start{display:block;margin-left:auto;background:#456478}#stage-dialog::backdrop{background:#08121cf2}@media(max-width:550px){.stage-options{grid-template-columns:1fr}.stage-options label{padding:14px}}
.war-banner[data-theme=yankee]{background:linear-gradient(105deg,#101116f5,#171a20ee);border:1px solid #ffffff30;border-left:4px solid var(--war-accent);box-shadow:5px 5px 0 #0005;color:#fafafa;max-width:calc(100% - 24px)}
.war-banner[data-theme=yankee] .war-kanji{font-family:'Yu Gothic','Hiragino Kaku Gothic ProN',sans-serif;font-weight:900;letter-spacing:.035em;font-size:clamp(25px,3.5vw,46px);overflow-wrap:anywhere;text-shadow:2px 2px 0 #000,-1px 0 var(--war-accent);color:#fff}
.war-banner[data-theme=yankee] .war-english{color:var(--war-accent)}
.war-banner[data-theme=yankee][data-event='53']:not([data-mode=subtle]){animation:street-arrive .24s ease-out}
.war-mark[data-theme=yankee]{font-family:'Yu Gothic',sans-serif;border-color:#91cce6;background:#11151cbb;animation-iteration-count:1}
.war-mark[data-theme=yankee][data-side='1']{border-color:#ec8981}
@keyframes street-arrive{from{opacity:0;transform:translateX(-14px)}to{opacity:1;transform:translateX(0)}}
