:root{color:#233e35;font-synthesis:none;--paper:#f3efe5;--surface:#fbf8ef;--ink:#203c32;--muted:#6d776c;--green:#264c3c;--line:#d9d4c3;--red:#ae4b38;--shadow:0 8px 30px #4e382012;background:#e9e2d5;font-family:Noto Sans SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(at 20% 0,#fbf7e9 0,#0000 60%),#e9e2d5;min-height:100vh;margin:0}button,a,input{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible{outline-offset:4px;outline:3px solid #d18b25}button{touch-action:manipulation}a{color:inherit}.topbar{border-bottom:1px solid var(--line);max-width:1400px;box-shadow:var(--shadow);background:#fbf8efdd;border-radius:12px 12px 0 0;justify-content:space-between;align-items:center;gap:20px;margin:20px auto 0;padding:12px 30px;display:flex}.brand{white-space:nowrap;align-items:center;gap:12px;font-family:Noto Serif SC,Songti SC,serif;font-size:27px;font-weight:800;text-decoration:none;display:flex}.brand>.art{width:44px;height:44px}.brand small{letter-spacing:2px;color:var(--muted);margin-top:2px;font-family:Noto Sans SC,sans-serif;font-size:10px;font-weight:400;display:block}.topbar nav{align-self:stretch;gap:28px;display:flex}.nav-button{background:0 0;border:0;border-bottom:3px solid #0000;padding:10px 4px;font-size:16px;font-weight:600}.nav-button.active{border-color:var(--green)}.text-button{color:#536254;background:0 0;border:0;min-height:44px;padding:10px 8px;font-size:13px}.text-button:hover{color:var(--green);text-decoration:underline}.help-button{font-size:15px}.help-button span{border:1px solid var(--line);border-radius:50%;justify-content:center;align-items:center;width:23px;height:23px;margin-left:8px;display:inline-flex}.game-layout{background:var(--paper);grid-template-columns:minmax(0,1.65fr) minmax(310px,1fr);gap:30px;max-width:1400px;min-height:740px;margin:0 auto;padding:32px 32px 24px;display:grid}.playfield{min-width:0}.board-heading{justify-content:space-between;align-items:center;gap:16px;padding:0 0 18px 24px;display:flex}.board-heading h1{margin:0 0 5px;font-family:Noto Serif SC,serif;font-size:27px;font-weight:800}.board-heading p{color:var(--muted);margin:0;font-size:13px}.turn-counter{white-space:nowrap;font-size:14px;font-weight:500}.turn-counter b{font-size:19px}.board-surround{max-width:700px;margin:0 auto}.column-labels{color:#636b57;text-align:center;grid-template-columns:repeat(6,1fr);margin-bottom:7px;padding-left:24px;padding-right:9px;font-family:Georgia,serif;font-size:14px;display:grid}.board-row{align-items:stretch;gap:7px;display:flex}.row-labels{color:#636b57;flex-shrink:0;grid-template-rows:repeat(6,1fr);width:17px;font-family:Georgia,serif;font-size:14px;display:grid}.row-labels span{justify-content:center;align-items:center;display:flex}.board-frame{background:#91714e;border-radius:4px;flex:1;min-width:0;padding:7px;box-shadow:inset 0 1px 1px #fff,0 0 0 1px #6c583d,0 5px #6e5337,0 12px 24px #4f392122}.board{aspect-ratio:1;background:#667746;border:1px solid #586a3a;grid-template-columns:repeat(6,1fr);display:grid;position:relative}.cell{aspect-ratio:1;background:#b6c17d;border:1px solid #667a4870;border-radius:0;min-width:0;padding:0;position:relative;overflow:visible}.cell:nth-child(3n){background:#afbc79}.art{background-image:url(/art/pieces.png);background-size:400% 300%;background-position:var(--sx) var(--sy);background-repeat:no-repeat;flex-shrink:0;display:block}.ground{opacity:.64;z-index:0;pointer-events:none;position:absolute;inset:-1px}.terrain-piece{z-index:1;pointer-events:none;position:absolute;inset:1%}.water>.ground{opacity:0}.water{background:#86b6b6}.terrain-piece.ruined{filter:grayscale();opacity:.35}.unit{z-index:5;pointer-events:none;transition:filter .18s;position:absolute;inset:3%}.unit>.art{filter:drop-shadow(0 3px 2px #1d292c40);width:100%;height:100%}.unit.hero>.art{filter:drop-shadow(0 2px 1px #143b63aa)}.hp{z-index:7;justify-content:center;gap:3px;width:100%;display:flex;position:absolute;bottom:0}.hp i{background:#798569;border:1.5px solid #fff7e8;border-radius:50%;width:9px;height:9px;box-shadow:0 1px 2px #203b32}.hp.hero .full{background:#3d78b3}.hp.enemy .full{background:#b64230}.enemy-number{color:#fff9e8;z-index:9;background:#ae4b38;border:1.5px solid #f3e7cc;border-radius:50%;justify-content:center;align-items:center;min-width:20px;height:20px;font-size:11px;display:flex;position:absolute;top:0;left:0;box-shadow:0 1px 3px #4c2b1f55}.intents{z-index:3;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.intent{fill:none;stroke-width:6px;stroke-linecap:round;opacity:.9}.intent.danger{stroke:#bb4639}.intent.hero-danger{stroke:#a45175}.intent.friendly{stroke:#bc811d}.intent.miss{stroke:#727e66;stroke-dasharray:8 9;opacity:.58}.intent.dimmed{opacity:.17}.arrow-head.danger{fill:#bb4639}.arrow-head.hero-danger{fill:#a45175}.arrow-head.friendly{fill:#bc811d}.arrow-head.miss{fill:#727e66}.cell:after{content:"";pointer-events:none;z-index:4;border:2px solid #0000;border-radius:3px;position:absolute;inset:2px}.cell.reachable:after{background:#bce7a34d;border:2px solid #e5f7cd70}.cell.reachable:hover:after{background:#c9f1ba77;border-color:#e9ffdd}.cell.attackable:after{background:#cc6b3030;border:2px solid #b8443180}.cell.selected:after{border:3px solid #f1ce5f;box-shadow:0 0 0 1px #4b5d37}.cell.guided:after{border:3px solid #fff7ba;box-shadow:0 0 0 2px #698d42,0 0 15px #faffac99}.cell.preview-target:after{background:#eed58240;border:3px solid #fff1ab}.cell.threatened:not(.preview-target):before{content:"";z-index:6;pointer-events:none;border:3px solid #b34637;border-radius:3px;position:absolute;inset:2px}.move-dot{z-index:4;background:#497b50;border:1px solid #d2eab6;border-radius:50%;width:8px;height:8px;position:absolute;top:calc(50% - 4px);left:calc(50% - 4px)}.danger-flag{z-index:8;background:var(--red);color:#fff;border-radius:3px;width:17px;height:20px;font-size:13px;font-weight:800;position:absolute;bottom:2px;right:3px}.ghost{z-index:8;opacity:.5;pointer-events:none;background:#e7f4bb4d;border:2px dashed #f6e6a1;width:16.6667%;height:16.6667%;position:absolute}.ghost>.art{width:100%;height:100%}.cell.acting:after{border:3px solid #f7df7e;box-shadow:0 0 10px #ffe383}.board-caption{color:#65715d;align-items:center;gap:6px;padding:14px 0 12px 24px;font-size:11px;line-height:1.6;display:flex}.legend-line{background:var(--red);flex-shrink:0;width:19px;height:3px}.phase-label{color:var(--green);margin-left:auto;font-size:11px}.hero-strip{gap:8px;margin:0 0 0 24px;display:flex}.hero-card{border:1px solid var(--line);text-align:left;background:#f9f5e9;border-radius:6px;flex:1;align-items:center;gap:9px;min-width:0;padding:8px 10px;display:flex}.hero-card>.art{width:49px;height:49px}.hero-card strong{font-size:14px;display:block}.hero-card small{color:var(--muted);margin-top:3px;font-size:10px;display:block}.hero-card.chosen{background:#f2ecd6;border-color:#a68b42;box-shadow:0 0 0 1px #c1a45a}.hero-life{color:#416c59;text-align:center;margin-left:auto;font-family:Georgia,serif;font-size:22px}.hero-life small{font-family:inherit;font-size:9px}.board-tools{gap:12px;margin:5px 0 0 20px;display:flex}.board-tools button:last-child{margin-left:auto}.coach{flex-direction:column;gap:18px;min-width:0;padding:0 0 0 6px;display:flex}.progress-row{align-items:center;gap:20px;min-height:30px;margin-bottom:22px;font-family:Georgia,serif;font-size:18px;display:flex}.progress-dots{flex:1;justify-content:space-between;align-items:center;max-width:270px;display:flex;position:relative}.progress-dots:before{content:"";background:#d3cebd;height:2px;position:absolute;left:6px;right:6px}.progress-dots i{outline:4px solid var(--paper);z-index:1;background:#d6d1c0;border-radius:50%;width:12px;height:12px}.progress-dots i.current{background:var(--green);box-shadow:0 0 0 1px var(--green)}.progress-dots i.complete{background:#97aa78}.lesson-heading h2{letter-spacing:-.5px;margin:0 0 14px;font-family:Noto Serif SC,serif;font-size:30px;font-weight:800}.lesson-heading>p{color:#344c3f;min-height:60px;margin:0;font-size:16px;line-height:1.85}.unit-detail{background:#e6e7d9;border-radius:6px;align-items:center;gap:12px;min-height:95px;padding:14px 12px;display:flex}.unit-detail>.art{width:65px;height:65px}.unit-detail strong{font-size:14px}.unit-detail p{color:#64705e;margin:5px 0 0;font-size:12px;line-height:1.8}.enemy-detail{background:#eee0d3}.lesson-steps{flex-direction:column;gap:0;margin:0;padding:2px 0;list-style:none;display:flex}.lesson-steps li{color:#7d8274;align-items:center;gap:15px;min-height:51px;font-size:14px;display:flex;position:relative}.lesson-steps li>span{background:#e3dfd0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-family:Georgia,serif;font-weight:600;display:flex}.lesson-steps li.current{color:var(--ink);font-weight:600}.lesson-steps li.current>span{background:var(--green);color:#f9f6eb}.lesson-steps li.done>span{color:#537345;background:#e0e7cf}.coach-note{color:#6c7666;font-size:13px;line-height:1.8}.coach-note p{margin:0}.notice{color:#3a5742;background:#e4e9d5;border-left:3px solid #7c9567;padding:10px 12px}.action-panel{border-top:1px solid var(--line);flex-direction:column;gap:10px;margin-top:auto;padding-top:16px;display:flex}.mode-picker{background:#e7e4d8;border-radius:6px;gap:6px;padding:4px;display:flex}.mode-picker[hidden]{display:none}.mode-picker button{background:0 0;border:0;border-radius:4px;flex:1;min-height:38px;font-size:14px}.mode-picker button[aria-pressed=true]{color:var(--green);background:#faf7ed;font-weight:600;box-shadow:0 1px 4px #263d321a}.preview-summary{background:#fffbee;border:1px solid #ddd2ae;border-radius:5px;padding:12px 14px;font-size:12px;line-height:1.75}.preview-summary strong{font-size:13px}.preview-summary ul{margin:5px 0 0;padding-left:16px}.preview-summary .warning{color:#a33b2e;border-top:1px solid #dfc7b5;margin:8px 0 0;padding-top:8px}.future-summary{align-items:center;gap:10px;padding:9px 0;font-size:12px;line-height:1.65;display:flex}.future-summary small{letter-spacing:.5px;color:var(--muted);font-size:10px;display:block}.future-summary.unsafe{color:#9c3e2f}.status-dot{background:#6d8d5e;border-radius:50%;flex-shrink:0;width:8px;height:8px}.unsafe .status-dot{background:#ac4636}.button{border:1px solid var(--green);letter-spacing:.5px;border-radius:5px;width:100%;min-height:48px;padding:12px 16px;font-size:16px;font-weight:600;transition:background .15s,box-shadow .15s}.primary{color:#fffaf0;background:var(--green);box-shadow:0 2px #163528}.primary:hover:not(:disabled){background:#325f4b;box-shadow:0 3px 6px #1c372626}.secondary{color:var(--green);background:0 0;border-color:#a7a996}.secondary:hover:not(:disabled){background:#e6e8d8}.danger-button{background:#a34633;border-color:#a34633;box-shadow:0 2px #6e2e26}.hint-button{color:#6e775f;background:0 0;border:0;min-height:38px;font-size:12px}.hint-button span{margin-left:8px}.hint-button:hover{text-decoration:underline}.nudge{outline-offset:3px;outline:2px solid #b5963b}.page-footer{background:var(--paper);color:#92927e;border-radius:0 0 12px 12px;justify-content:space-between;max-width:1400px;margin:0 auto 20px;padding:0 32px 18px;font-size:10px;display:flex}.modal{color:var(--ink);background:#f8f4e9;border:1px solid #c7b995;border-radius:12px;width:calc(100% - 32px);max-width:560px;max-height:calc(100dvh - 36px);padding:32px;overflow:auto;box-shadow:0 15px 100px #172c3560}.modal::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#1d312b80}.modal h2{margin:0 0 18px;font-family:Noto Serif SC,serif;font-size:26px}.modal p{color:#596a59;font-size:14px;line-height:1.9}.modal-close{color:#6b7866;background:0 0;border:0;width:44px;height:44px;font-size:26px;position:absolute;top:9px;right:9px}.modal-intro{border-bottom:1px solid var(--line);padding-bottom:18px}.help-rules section{margin:22px 0}.help-rules h3{margin:0 0 4px;font-size:15px}.help-rules p{margin:0;font-size:13px}.help-hero{align-items:center;gap:16px;display:flex}.help-hero>.art{width:60px;height:60px}.help-modal>.text-button{width:100%;margin-top:10px}.course-list{flex-direction:column;gap:6px;display:flex}.course-list button{text-align:left;border:0;border-bottom:1px solid var(--line);background:0 0;align-items:center;gap:14px;min-height:72px;padding:10px 4px;display:flex}.course-list button:hover{background:#e9eadb}.course-list button>span:first-child{color:#7c8c70;font-family:Georgia,serif;font-size:21px}.course-list button>span:last-child{margin-left:auto}.course-list small{color:#7d836e;margin-top:5px;font-size:11px;line-height:1.7;display:block}.course-list strong{font-size:14px}.practice-picker{font-size:14px;line-height:2;display:block}.practice-picker input{border:1px solid var(--line);background:#fffaf0;border-radius:5px;width:100%;margin:14px 0;padding:10px 14px;display:block}.result-modal{text-align:center;max-width:450px;padding:26px 32px}.result-art{width:125px;height:125px;margin:0 auto 18px}.result-modal h2{font-size:25px}.result-detail{color:#8b8e77!important;font-size:12px!important}.result-modal .button{margin:6px 0}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}details summary{cursor:pointer;min-height:32px}@media (width>=1450px){.game-layout{gap:40px;padding:36px 40px}.coach{padding:0 10px}.topbar{padding:16px 40px}}@media (width<=1050px) and (width>=701px){.game-layout{grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr);gap:20px;min-height:660px;padding:24px 20px}.topbar{margin:10px 10px 0;padding:12px 20px}.lesson-heading h2{font-size:25px}.lesson-heading>p{font-size:14px}.hero-card{gap:5px;padding:8px 5px}.hero-card>.art{width:36px;height:36px}.hero-card small{font-size:9px}.hero-life{display:none}.board-heading{padding-left:24px}.board-heading p{font-size:11px}.board-caption{font-size:10px}.phase-label{display:none}.progress-row{margin-bottom:14px}.unit-detail{gap:5px;padding:10px}.unit-detail>.art{width:48px;height:48px}.lesson-steps li{min-height:44px;font-size:12px}.coach{gap:14px}.page-footer{padding:0 20px 16px}.brand{font-size:23px}.topbar nav{gap:18px}}@media (width<=700px){body{background:var(--paper)}.topbar{box-shadow:none;border-radius:0;gap:12px;min-height:62px;margin:0;padding:8px 14px}.brand{gap:6px;font-size:20px}.brand>.art{width:34px;height:34px}.brand small{display:none}.topbar nav{gap:12px;margin-left:auto}.nav-button{padding:8px 0;font-size:12px}.help-button{min-height:44px;padding:4px;font-size:0}.help-button span{margin:0;font-size:14px}.game-layout{flex-direction:column;gap:0;min-height:0;padding:18px 12px 0;display:flex}.coach{display:contents}.lesson-heading{order:0;margin-bottom:12px}.progress-row{gap:12px;min-height:15px;margin-bottom:8px;font-size:13px}.progress-dots{max-width:140px}.progress-dots i{outline-width:3px;width:7px;height:7px}.lesson-heading h2{letter-spacing:0;margin:0 0 6px;font-size:23px}.lesson-heading>p{min-height:0;font-size:13px;line-height:1.75}.playfield{order:1}.board-heading{padding:0 0 8px 18px}.board-heading h1{margin:0;font-size:14px}.board-heading p{display:none}.turn-counter{font-size:11px}.turn-counter b{font-size:13px}.column-labels{margin-bottom:4px;padding-left:18px;padding-right:6px;font-size:11px}.board-row{gap:3px}.row-labels{width:15px;font-size:11px}.board-frame{border-radius:2px;padding:4px}.board-surround{max-width:470px}.enemy-number{border-width:1px;min-width:15px;height:15px;font-size:9px}.hp{gap:2px;bottom:-1px}.hp i{border-width:1px;width:6px;height:6px}.cell.guided:after,.cell.selected:after,.cell.preview-target:after{border-width:2px}.cell.reachable:after{border-width:1px}.move-dot{width:6px;height:6px;top:calc(50% - 3px);left:calc(50% - 3px)}.danger-flag{width:12px;height:15px;font-size:10px}.board-caption{gap:5px;padding:10px 0 8px 18px;font-size:9px}.phase-label{display:none}.hero-strip{gap:6px;margin-left:18px}.hero-card{gap:6px;padding:6px}.hero-card>.art{width:36px;height:36px}.hero-card strong{font-size:12px}.hero-card small{font-size:9px}.hero-life{font-size:17px}.hero-life small{font-size:8px}.board-tools{gap:5px;margin-left:15px}.board-tools .text-button{min-height:38px;padding:5px;font-size:11px}.unit-detail,.lesson-steps{display:none}.coach-note{order:2;margin:6px 0;font-size:12px;line-height:1.75}.coach-note>p:not(.notice){display:none}.action-panel{background:var(--paper);order:3;gap:8px;margin-top:0;padding:10px 0 14px;position:relative}.mode-picker{gap:3px;padding:3px;position:relative}.mode-picker button{min-height:36px;font-size:13px}.future-summary{padding:5px 2px;font-size:12px}.future-summary small{font-size:10px}.button{min-height:46px;padding:10px;font-size:14px}.action-panel:has(.preview-summary){z-index:20;padding-bottom:max(12px,env(safe-area-inset-bottom));position:sticky;bottom:0;box-shadow:0 -8px 14px #f3efe5e8}.preview-summary{padding:8px 10px;font-size:11px}.preview-summary strong{font-size:12px}.preview-summary ul{margin:3px 0}.action-panel:has(.preview-summary) .future-summary{font-size:11px}.action-panel:has(.preview-summary) .hint-button{display:none}.action-panel:has(.preview-summary) .mode-picker{display:none}.hint-button{min-height:36px;font-size:11px}.page-footer{gap:10px;margin:0;padding:2px 12px 16px;font-size:9px;line-height:1.8}.page-footer span:last-child{display:none}.modal{max-height:calc(100dvh - 24px);padding:26px 20px}.modal h2{font-size:23px}.modal p{font-size:13px}.course-list button{min-height:70px}.result-art{width:100px;height:100px}.result-modal h2{font-size:22px}}#app[data-motion=reduced],#app[data-motion=reduced] *,#app[data-motion=reduced] :before,#app[data-motion=reduced] :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}@media (width>=701px){.topbar,.game-layout,.page-footer{max-width:1280px}.game-layout{min-height:0;padding-top:24px}.board-surround{width:min(100%,max(360px,100dvh - 440px));max-width:620px}.board-heading{max-width:620px;margin-inline:auto;padding-bottom:12px}.board-caption{padding-top:12px;padding-bottom:10px;font-size:12px}.hero-card strong{font-size:15px}.hero-card small{font-size:11px}.unit-detail p{font-size:13px}.coach-note{font-size:14px}.future-summary{font-size:13px}.future-summary small{font-size:11px}}.cell{overflow:hidden}.ground{opacity:.75;inset:-15%}@media (width<=700px){.lesson-heading>p{font-size:14px}.board-tools{margin-top:2px}.action-panel{padding-top:6px}.board-caption,.hero-card small{font-size:10px}}.lesson-heading>.lesson-principle{color:#6c7666;min-height:0;margin-top:8px;font-size:12px;line-height:1.8}.preview-tip{color:#61764e;border-top:1px solid #e2dcc8;margin:8px 0 0;padding-top:7px}@media (width<=700px){.action-panel:has(.preview-summary){box-shadow:none;position:relative;bottom:auto}.lesson-heading>.lesson-principle{font-size:12px}.preview-tip{font-size:11px}}.intent-explanation{color:#4a5f49;margin:0;padding:0 0 4px 18px;font-size:12px;line-height:1.85;list-style:none}.intent-explanation li+li{margin-top:5px}.redirect-story{color:#526846;border-top:1px solid #dfd6b9;margin-top:8px;padding-top:7px}.redirect-story p{margin:0;line-height:1.85}.more-intents{color:#68735d;font-size:12px}.more-intents ul{margin:4px 0;padding-left:18px}@media (width<=700px){.intent-explanation{padding-left:2px;font-size:11px}.redirect-story{font-size:11px}}.intents{z-index:3;overflow:hidden}.terrain-piece{z-index:4}.intent-group{color:#ad4b3b;opacity:.76;transition:opacity .15s}.intent-group.friendly{color:#a47120}.intent-group.hero-danger{color:#96566c}.intent-group.miss{color:#6b7763;opacity:.5}.intent-group .intent{fill:none;stroke:currentColor;stroke-width:2.1px;stroke-dasharray:5 6;opacity:1}.intent-target{fill:none;stroke:currentColor;stroke-width:2.8px;stroke-linecap:round}.arrow-head{stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;fill:none!important}.arrow-head.danger{stroke:#ad4b3b}.arrow-head.friendly{stroke:#a47120}.arrow-head.hero-danger{stroke:#96566c}.arrow-head.miss{stroke:#6b7763}.intent-focused .intent-group:not(.is-focused){opacity:.25}.intent-group.is-focused,.intent-group.changed{opacity:1}.intent-group.is-focused .intent,.intent-group.changed .intent{stroke-width:3px;stroke-dasharray:6 5}.intent-group.is-focused .intent-target,.intent-group.changed .intent-target{stroke-width:4px}.intent-group.cancelled{color:#767b70;opacity:.38}.intent-group.cancelled .intent{stroke-dasharray:2 9}.intent-cancel{fill:none;stroke:currentColor;stroke-width:3px;stroke-linecap:round}.intent-history{fill:none;stroke:#8e8978;stroke-width:1.7px;stroke-dasharray:3 7;opacity:0;animation:.65s ease-out old-intent-out}@keyframes old-intent-out{0%{opacity:.55}to{opacity:0}}.cell.threatened:not(.preview-target):before{display:none}.legend-line{border-top:2px solid var(--red);border-left:2px solid var(--red);background:0 0;width:12px;height:10px}.tactical-stage{max-width:620px;margin-inline:auto}.board-surround{width:100%;max-width:none}.round-review{color:var(--ink);text-align:left;border-block:1px solid var(--line);margin:6px 0 8px 24px;font-size:12px;line-height:1.7}.round-review summary{min-height:38px;padding:6px 0}.round-review ol{margin:2px 0 10px;padding-left:22px}.round-review li{padding:4px 0}.round-review li small{color:var(--muted);font-size:10px;display:block}.result-modal .round-review{margin:8px 0}.battle-verdict{text-align:left;background:#e4e9d5;border-radius:5px;padding:10px 12px;color:var(--green)!important;font-size:12px!important;line-height:1.7!important}.outcome-dock{border-color:#97aa78}.practice-nav{align-items:center;gap:2px;display:flex}.practice-nav .text-button{min-width:30px;min-height:36px;padding:4px;font-size:18px}.picker-button{white-space:nowrap;border-radius:4px;min-height:36px;border:1px solid #a7a996!important;padding:4px 8px!important;font-size:12px!important}.header-picker{display:none}@media (width>=600px) and (height<=600px){.header-picker:not([hidden]){border:1px solid #a7a996;border-radius:4px;min-height:36px;display:block}.lesson-heading [data-picker]{display:none}}@media (width<=700px){.lesson-heading:has([data-picker]) h2{font-size:17px}.lesson-heading:has([data-picker]) .progress-row{gap:4px;font-size:11px}.practice-nav .text-button{min-width:26px;padding:2px}.picker-button{padding:4px 5px!important;font-size:11px!important}.lesson-heading:has([data-picker]) .progress-dots{width:48px}}.history-modal{max-width:600px}.history-modal>p{font-size:12px}.history-turns{padding-left:24px;font-size:12px;line-height:1.8}.history-turns>li{border-top:1px solid var(--line);padding:8px 0}.history-turns h3{margin:0 0 4px;font-size:13px}.history-turns ul{padding-left:18px}.history-turns ul li{padding:3px 0}@media (width<=700px){.round-review{margin-left:18px;font-size:11px}}.command-dock{background:#faf7ec;border:1px solid #d6cfb8;border-radius:7px;margin:12px 0 0 24px;padding:10px 12px;box-shadow:0 3px 9px #4b452b0b}.command-summary{min-width:0;margin-bottom:8px;line-height:1.5;display:block}.command-summary strong{justify-content:space-between;align-items:baseline;gap:6px;font-size:13px;display:flex}.command-summary>span{color:#63715e;font-size:11px;display:block}.command-status{color:#63715e;font-size:10px;font-weight:400}.command-status.unsafe{color:#a33b2e}.command-actions{align-items:stretch;gap:10px;display:flex}.command-actions[hidden]{display:none}.command-actions .button{letter-spacing:0;flex:1;width:auto;min-height:44px;padding:8px;font-size:14px}.choice-actions{flex-wrap:wrap;margin-bottom:8px}.choice-actions .text-button{min-height:36px;padding:4px}.choice-actions .button{min-width:105px}.command-dock:has(.choice-actions) .command-summary strong{flex-wrap:wrap}@media (width<=700px){.tactical-stage:has(.choice-actions){width:min(100%,max(294px,100dvh - 365px))}.choice-actions{gap:6px}.choice-actions .text-button{flex-basis:auto;min-width:30px;padding:0;font-size:11px}.choice-actions .button{font-size:12px}}.command-actions .mode-picker{flex:1;min-width:140px}.command-actions .mode-picker[hidden]+.button{max-width:none}.command-dock.has-warning{border-color:#b57858}.has-warning .command-summary>span{color:#a33b2e}.has-warning .command-summary{align-items:flex-start}.has-warning .command-summary>span{font-weight:500}.action-panel{margin-top:0}.action-panel:has(.preview-summary){box-shadow:none;position:static}@media (width>=701px){.tactical-stage{width:min(100%,max(310px,100dvh - 320px))}.board-surround{width:100%}.board-heading h1{font-size:23px}.lesson-heading>p{min-height:0;font-size:14px;line-height:1.75}.lesson-heading h2{font-size:26px}.progress-row{margin-bottom:12px}.coach{gap:14px}.lesson-steps li{min-height:40px}.unit-detail{min-height:0;padding:10px}.unit-detail>.art{width:48px;height:48px}.board-caption,.hero-strip,.board-tools{max-width:620px;margin-inline:auto}}@media (width<=700px){.game-layout{padding-top:10px}.lesson-heading{grid-template-columns:1fr auto;align-items:center;column-gap:8px;margin-bottom:8px;display:grid}.lesson-heading h2{grid-area:1/1;margin-bottom:4px;font-size:21px}.progress-row{grid-area:1/2;gap:6px;margin:0;font-size:12px}.progress-dots{width:60px}.progress-dots i{outline-width:2px;width:5px;height:5px}.lesson-heading>p{grid-column:1/-1;font-size:12px;line-height:1.6}.lesson-heading>.lesson-principle{display:none}.board-heading{padding-bottom:4px}.board-heading h1{font-size:12px}.turn-counter{font-size:10px}.tactical-stage{width:min(100%,max(294px,100dvh - 296px));max-width:470px}.board-surround{width:100%;max-width:none}.command-dock{margin:10px 0 0 18px;padding:8px}.command-summary{margin-bottom:6px;line-height:1.5;display:block}.command-summary strong{font-size:12px}.command-status{font-size:9px}.command-summary>span{font-size:10px;display:block}.command-actions{gap:8px}.command-actions .button{min-height:44px;font-size:13px}.command-actions .mode-picker{min-width:125px}.command-actions .mode-picker button{min-height:36px;font-size:12px}.board-caption{padding-top:8px;font-size:9px}.hero-strip,.board-tools{max-width:470px;margin-inline:auto}.coach-note{margin-top:10px}.action-panel{padding-top:12px}}@media (width>=600px) and (height<=600px){.topbar{border-radius:0;min-height:44px;margin:0;padding:0 14px}.brand{font-size:19px}.brand>.art{width:32px;height:32px}.brand small{display:none}.topbar nav{gap:16px}.nav-button{padding:6px;font-size:12px}.help-button{font-size:12px}.game-layout{padding:6px 14px;display:block}.board-heading{max-width:none;margin:0;padding:0 0 1px}.board-heading h1{font-size:13px}.board-heading p{display:none}.turn-counter{font-size:11px}.column-labels{margin-bottom:3px;font-size:11px}.tactical-stage{grid-template-columns:max(310px,min(100dvh - 92px,100vw - 288px)) minmax(220px,1fr);align-items:center;gap:20px;width:100%;max-width:none;display:grid}.coach{display:flex}.tactical-stage:has(.choice-actions){width:100%}.command-dock{margin:0;padding:12px}.command-summary{display:block}.command-summary strong{margin-bottom:5px;display:block}.command-summary>span{font-size:12px;display:block}.command-actions{flex-wrap:wrap}.command-actions .mode-picker{flex-basis:100%}.command-actions .button{font-size:14px}.board-caption{padding:8px 0}.hero-strip,.board-tools{max-width:none}.coach{padding-top:20px}}.board .unit>.art,.board .ghost>.art,.board .terrain-piece:not([data-sprite=water]){transform:translate(var(--art-x),calc(var(--art-y) - 3%))}.board .ground,.board .terrain-piece[data-sprite=water]{transform:translate(var(--art-x),var(--art-y))}@media (width>=600px) and (height<=600px){.command-summary strong{display:flex}}.practice-goals{border-block:1px solid var(--line);text-align:left;padding:12px 0;font-size:12px;line-height:1.7}.practice-goals>strong{font-size:13px}.practice-goals>small{color:#67745f;font-size:11px;line-height:1.7;display:block}.rating-goals{gap:8px;margin:8px 0;padding:0;list-style:none;display:grid}.rating-goals li{align-items:flex-start;gap:8px;display:flex}.rating-goals b{color:#8b7027;white-space:nowrap;font-weight:400}.rating-goals small{color:#6c7665;font-size:11px;display:block}.goal-mark{color:#6d7c60;flex-shrink:0}.goal-met .goal-mark{color:var(--green);font-weight:700}.goal-missed small{color:#8a5b3e}.result-goals{margin:12px 0}.result-goals .rating-goals{gap:10px}.stage-controls .hero-strip{margin-top:12px}.stage-controls{container-type:inline-size}.stage-controls .hero-life{flex-shrink:0;display:block}@container (width<=450px){.stage-controls .hero-card{grid-template-columns:minmax(0,1fr) auto;align-content:center;gap:4px 6px;display:grid}.stage-controls .hero-card>span:nth-child(2){grid-area:2/1/auto/-1;min-width:0}.stage-controls .hero-card strong{overflow-wrap:anywhere}.stage-controls .hero-life{grid-area:1/2;margin-left:0}}@container (width<=280px){.stage-controls .hero-strip{flex-direction:column}.stage-controls .hero-card{grid-template-columns:32px minmax(0,1fr) auto}.stage-controls .hero-card>span:nth-child(2){grid-area:1/2}.stage-controls .hero-life{grid-column:3}}@media (width>=600px) and (height<=600px){.stage-controls{flex-direction:column;gap:16px;display:flex}.stage-controls .hero-strip{width:100%;margin:0}.stage-controls .hero-card{gap:5px;padding:8px 5px}.stage-controls .hero-card>.art{width:32px;height:32px}.stage-controls .hero-card strong{font-size:12px}.stage-controls .hero-card small{font-size:10px}}.hint-actions{flex-wrap:wrap;gap:12px;display:flex}.hint-actions .hint-button{border:1px solid var(--line);border-radius:5px;flex:1;min-height:44px}.hint-actions .hint-button:disabled{opacity:.5}.route-picker summary{cursor:pointer;color:var(--ink);padding:.5rem 0}.result-modal.has-recap .result-art{width:64px;height:64px;margin-bottom:8px}.result-modal.has-recap h2{margin-bottom:8px}.result-modal.has-recap>p{margin:8px 0}.solution-recap{color:var(--ink);margin:12px 0}.solution-recap dl{grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 8px;display:grid}.solution-recap dl>div{background:#e9e9dc;border-radius:5px;padding:7px 3px}.solution-recap dt{color:var(--muted);font-size:11px}.solution-recap dd{margin:2px 0;font-family:Georgia,serif;font-size:23px}.solution-recap dd small{margin-left:3px;font:11px Noto Sans SC,sans-serif}.solution-recap small{color:#63705f;font-size:10px;line-height:1.6;display:block}.solution-recap dd small{display:inline}.personal-records{text-align:left;border-top:1px solid var(--line);margin-top:12px;padding-top:8px;font-size:12px}.personal-records summary{min-height:44px;color:var(--green);line-height:44px}.personal-records p{font-size:11px;line-height:1.7}.personal-records table{border-collapse:collapse;text-align:left;width:100%;font-size:12px}.personal-records th,.personal-records td{border-bottom:1px solid var(--line);padding:7px 3px}.solution-recap .record-save-status{color:#a34633;margin-top:4px}.board .unit>.art{transform-origin:calc(50% - var(--art-x)) calc(50% - var(--art-y))}.board{container-type:inline-size}.board .enemy-number{border-width:clamp(1px,.22cqw,1.5px);width:clamp(12px,3.4cqw,22px);min-width:clamp(12px,3.4cqw,22px);height:clamp(12px,3.4cqw,22px);font-size:clamp(8px,1.9cqw,12px);line-height:1}.motion-settings{border-block:1px solid var(--line);margin:12px 0;padding:12px 0}.motion-settings label{cursor:pointer;align-items:center;gap:8px;min-height:44px;font-size:14px;display:flex}.motion-settings select{border:1px solid var(--line);background:var(--surface);width:100%;min-height:44px;color:var(--ink);font:inherit;border-radius:5px;margin-bottom:8px;padding:8px 12px;display:block}.motion-settings small{color:var(--muted);font-size:11px;line-height:1.7;display:block}#app[data-motion=reduced] .attack-effects[data-attack-phase=flight]{visibility:hidden}#app[data-motion=reduced] .attack-effects *{animation:none!important}.attack-effects{z-index:8;pointer-events:none;color:#f4d083;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.board .cell:disabled{opacity:1}.attack-effects path{fill:none;stroke:currentColor;stroke-width:4px;stroke-linecap:round;stroke-linejoin:round}.flying-arrow{filter:drop-shadow(0 1px 1px #263b2c)}.flying-spit{fill:#c8db7e;stroke:#536d37;stroke-width:2px}.attack-effects .spit-tail{stroke:#d7e3a1;stroke-width:3px}.flying-stone{fill:#574d40;stroke:#e0c18a;stroke-width:2px}.stone-glint{fill:#efdcac}.attack-effects:not(.effect-running) .projectile,.attack-effects:not(.effect-running) .strike-swipe{visibility:hidden}.attack-effects .strike-swipe{stroke:#fff0bc;stroke-width:7px;filter:drop-shadow(0 1px 2px #58462d);stroke-dasharray:90}.attack-effects.effect-running .strike-swipe{animation:90ms ease-out both strike-swipe}.attack-impact{animation:.1s ease-out both attack-impact}.attack-impact circle{fill:#fff3bc35;stroke:#ffe4a4;stroke-width:4px}.attack-impact path{stroke:#fff0bc;stroke-width:3px}.attack-impact .blast-push{stroke:#f0cd8f;stroke-width:4px}.attack-effects.reduced .attack-impact{animation:none}@keyframes strike-swipe{0%{stroke-dashoffset:90px;opacity:.5}to{stroke-dashoffset:0;opacity:1}}@keyframes attack-impact{0%{opacity:1}to{opacity:.25}}.outcome-feedback{z-index:9;pointer-events:none;position:absolute;inset:0;overflow:hidden}.outcome-tile{pointer-events:none;width:16.6667%;height:16.6667%;position:absolute}.outcome-label{color:#8f3425;background:#fff6de;border-radius:4px;padding:2px 4px;font-size:clamp(9px,2.3cqw,15px);font-weight:700;line-height:1.2;position:absolute;top:7%;right:4%;box-shadow:0 1px 3px #342b2250}.outcome-tile.hero .outcome-label{color:#773346;background:#f1d9dc}.outcome-tile.hurt .outcome-label{animation:.35s ease-out both damage-label}.hurt-ring{border:2px solid #f8d99e;border-radius:50%;animation:.28s ease-out both hurt-ring;position:absolute;inset:19%;box-shadow:0 0 5px #b44f3270}.unit[data-hurt]>.art{animation:.26s ease-out both unit-hurt}.departure-body{transform-origin:50% 75%;animation:.46s ease-in both defeat-exit;position:absolute;inset:calc(3% + 1px)}.departure-body>.art{width:100%;height:100%;transform:translate(var(--art-x),calc(var(--art-y) - 3%));filter:drop-shadow(0 2px 1px #263b3280)}.departure-body>.character-art{background-image:none;position:relative;transform:none}.outcome-tile.drown .departure-body{animation:.46s ease-in both drown-exit}.water-ripple{border:2px solid #e0f7ed;border-radius:50%;height:18%;animation:.46s ease-out both water-ripple;position:absolute;top:60%;left:17%;right:17%}.collision-marker{width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.collision-marker path{fill:none;stroke:#fff2c2;stroke-width:4px;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 1px #684527)}@keyframes unit-hurt{0%,to{translate:0}25%{translate:-3%}55%{translate:3%}}@keyframes hurt-ring{0%{opacity:1;scale:.7}to{opacity:0;scale:1.2}}@keyframes damage-label{0%{opacity:1;translate:0 10%}to{opacity:1;translate:0 -20%}}@keyframes defeat-exit{0%,20%{opacity:1;transform:scale(1)}to{opacity:0;transform:translateY(8%)scale(.65,.35)}}@keyframes drown-exit{0%,15%{opacity:1;transform:scale(1)}to{opacity:0;transform:translateY(25%)scale(.3)}}@keyframes water-ripple{0%{opacity:1;scale:.6}to{opacity:0;scale:1.3}}#app[data-motion=reduced] .unit[data-hurt]>.art,#app[data-motion=reduced] .outcome-feedback *,.outcome-feedback.reduced *{animation:none!important}#app[data-motion=reduced] .outcome-feedback .departure-body,.outcome-feedback.reduced .departure-body{opacity:.35}#app[data-motion=reduced] .outcome-feedback .hurt-ring,.outcome-feedback.reduced .hurt-ring{opacity:.6}.board .unit>.art.character-art{background-image:none;position:relative;transform:none}.character-frame{background-image:var(--pose-sheet);background-size:calc(var(--pose-count)*100%) 100%;background-position:var(--pose-x) 0;pointer-events:none;background-repeat:no-repeat;width:150%;height:150%;display:block;position:absolute;top:-25%;left:-25%}.character-frame.strike-frame,.character-frame.hatch-frame{width:200%;height:200%;top:-50%;left:-50%}.character-attacks{z-index:6;pointer-events:none;position:absolute;inset:0;overflow:hidden}.character-attack-layer{width:16.6667%;height:16.6667%;position:absolute}.strike-actor{pointer-events:none;position:absolute;inset:3%}.strike-actor>.art{filter:drop-shadow(0 3px 2px #1d292c40);background-image:none;width:100%;height:100%;position:relative;transform:none}.strike-actor.hero>.art{filter:drop-shadow(0 2px 1px #143b63aa)}.attack-origin>.art{visibility:hidden}.board:has(.character-attacks) .unit{z-index:auto}.board:has(.character-attacks) .unit>.art{z-index:5;position:relative}@media (prefers-reduced-motion:reduce){.attack-effects *{animation:none!important}}@media (height<=500px){.result-modal.has-recap{padding:14px 24px}.result-modal.has-recap .result-art{display:none}.result-modal.has-recap h2{margin-bottom:6px;font-size:20px}.result-modal.has-recap>p{margin:6px 0;line-height:1.5}.result-modal.has-recap .solution-recap{margin:8px 0}.result-modal.has-recap .solution-recap dl>div{padding:4px 3px}}.audio-settings{border-bottom:1px solid var(--line);margin:12px 0;padding:0 0 12px}.audio-settings h3{margin:0 0 4px;font-size:15px}.audio-option{grid-template-columns:1fr 1.4fr;align-items:center;gap:10px;display:grid}.audio-option label{align-items:center;gap:8px;min-height:44px;font-size:13px;display:flex}.audio-option input[type=checkbox]{width:20px;height:20px;accent-color:var(--green)}.audio-volume input{width:100%;min-width:50px;accent-color:var(--green);height:32px}.audio-volume{white-space:nowrap}.audio-volume output{text-align:right;min-width:34px;font-size:11px}.audio-settings small{color:var(--muted);font-size:11px;line-height:1.8;display:block}.course-list button:disabled{opacity:.6;cursor:default}.course-list button:disabled:hover{background:0 0}.course-list button:disabled>span:last-child{white-space:nowrap;font-size:11px}.cooperation-picker{margin-top:16px}.route-picker{margin:16px 0}.progress-dots{min-width:0}@media (width<=420px){.audio-option{grid-template-columns:1fr}.audio-volume{margin-top:-8px}.audio-volume input{max-width:180px}.progress-dots[aria-label=主线进度]{display:none}}.unit.hero[data-readiness=spent]>.art,.hero-card[data-readiness=spent]>.art{filter:saturate(.35)brightness(.65)drop-shadow(0 2px 1px #143b6355)}.hero-actions{z-index:8;pointer-events:none;color:#315d4b;background:#f7f2dfeb;border-radius:3px;justify-content:center;align-items:center;gap:2px;padding:2px;display:flex;position:absolute;top:0;left:0;box-shadow:0 1px 2px #273d3044}.hero-actions svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:clamp(7px,1.8cqw,12px);height:clamp(7px,1.8cqw,12px)}.hero-actions.moved .move-mark{opacity:.2}.hero-actions.spent{color:#485448;background:#d2cfbfe8}.action-complete{text-align:center;width:clamp(10px,2.2cqw,15px);height:clamp(10px,2.2cqw,15px);font-size:clamp(10px,2.2cqw,15px);font-weight:700;line-height:1;display:block}.walking-piece{z-index:10;pointer-events:none;width:16.6667%;height:16.6667%;position:absolute}.walking-piece>.unit{width:auto;height:auto;inset:3%}.ally-command small{color:#8d573b;letter-spacing:0;white-space:normal;font-size:10px;font-weight:400;line-height:1.5;display:block}.ally-actions{margin-bottom:8px}@media (width>=600px) and (width<=700px) and (height<=600px){.tactical-stage{grid-template-columns:max(294px,min(100dvh - 92px,100vw - 288px)) minmax(220px,1fr)}}.header-settings{flex-shrink:0;align-items:center;gap:8px;display:flex}.language-button{border:1px solid var(--line);letter-spacing:0;border-radius:4px;min-width:36px;min-height:36px;padding:4px;font-size:12px}:lang(en) .brand>span{letter-spacing:0;font-size:22px}:lang(en) .button{letter-spacing:0}:lang(en) .command-summary strong{flex-wrap:wrap}:lang(en) .choice-actions .button{min-width:86px}@media (width<=700px){:lang(en) .brand>span{font-size:16px}:lang(en) .nav-button{padding-inline:7px;font-size:12px}.header-settings{gap:4px}:lang(en) .lesson-heading h2{font-size:18px}}html:lang(en){font-family:Segoe UI,system-ui,sans-serif}@media (width<=700px){:lang(en) .brand>span{font-size:14px}:lang(en) .brand{gap:8px}:lang(en) .nav-button{padding-inline:5px;font-size:11px}}.modal.campaign-map{background:var(--paper);width:min(760px,94vw);max-width:760px;max-height:90dvh;padding:24px 28px}.campaign-map .modal-close{z-index:5;width:44px;height:44px;min-height:44px;font-size:26px;position:absolute;top:8px;right:0}.map-intro{z-index:3;background:var(--paper);border-bottom:1px solid var(--line);padding:10px 0 14px;position:sticky;top:-24px}.map-intro>small{color:var(--muted);letter-spacing:2px;font-size:11px}.map-intro h2{margin:6px 0 8px;font-size:28px}.map-intro p{margin:8px 0;font-size:13px}.map-intro .button{width:100%;margin:4px 0}.map-intro .map-caption{color:var(--muted);font-size:12px;line-height:1.6}.map-chapters{padding:12px 0}.map-chapter{border-bottom:1px solid var(--line);padding:6px 0}.map-chapter summary{cursor:pointer;align-items:center;gap:12px;min-height:58px;list-style:none;display:flex}.map-chapter summary::-webkit-details-marker{display:none}.map-chapter summary:after{content:"⌄";color:var(--green);font-size:20px}.map-chapter[open] summary:after{content:"⌃"}.map-chapter summary strong{font-size:17px;display:block}.map-chapter summary small{color:var(--muted);margin-top:4px;font-size:11px;display:block}.map-chapter-number{border:1px solid var(--line);width:28px;height:28px;color:var(--green);border-radius:50%;flex-shrink:0;place-items:center;font:16px Georgia,serif;display:grid}.map-chapter-count{white-space:nowrap;color:var(--muted);margin-left:auto;font-size:12px}.campaign-nodes{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:118px;row-gap:12px;margin:16px 0 10px;padding:0;display:grid;position:relative}.campaign-node{grid-column:var(--map-col);grid-row:var(--map-row);z-index:1;min-width:0;color:var(--ink);text-align:center;background:0 0;border:0;border-radius:8px;flex-direction:column;justify-content:flex-start;align-items:center;gap:4px;padding:10px 2px 0;display:flex;position:relative}.map-medallion{background:#f2ead6;border:2px solid #c6b893;border-radius:50%;place-items:center;width:62px;height:62px;font:24px Georgia,serif;display:grid;position:relative;box-shadow:inset 0 0 0 4px #faf5e8,0 3px #b4a581}.campaign-node.current .map-medallion{color:#fff9e7;background:#315b4c;border-color:#234638;box-shadow:inset 0 0 0 4px #456d5d,0 3px #183c30}.campaign-node.completed .map-medallion{background:#eee0b7;border-color:#a98b3d}.campaign-node.locked{opacity:.66}.campaign-node.locked .map-medallion{background:#e8e4d7;border-style:dashed;box-shadow:inset 0 0 0 4px #f4f0e5,0 2px #c6bca4}.campaign-node.map-selected .map-medallion{outline-offset:4px;outline:2px solid #b79740}.campaign-node:focus-visible{outline:2px solid var(--green);outline-offset:1px}.map-stars{background:var(--paper);gap:2px;padding:0 3px;line-height:16px;display:flex}.map-stars i{color:#d0c7ad;font-size:16px;font-style:normal}.map-stars i.earned{color:#a77a22}.map-node-label{background:var(--paper);max-width:100%;padding:0 3px;font-size:10px;line-height:1.3}.map-lock,.map-tick{background:var(--paper);width:20px;height:20px;color:var(--green);border:1px solid #ad9b71;border-radius:50%;place-items:center;font:12px sans-serif;display:grid;position:absolute;bottom:-1px;right:-2px}.map-trail{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.map-trail polyline{fill:none;stroke:#c8c8ab;stroke-width:2px;stroke-dasharray:4 5}.map-trail-phone{display:none}@media (width<=600px){.modal.campaign-map{width:94vw;padding:18px 16px}.map-intro{top:-18px}.map-intro h2{font-size:25px}.campaign-nodes{grid-template-columns:repeat(3,minmax(0,1fr))}.campaign-node{grid-column:var(--map-phone-col);grid-row:var(--map-phone-row)}.map-trail-wide{display:none}.map-trail-phone{display:block}.map-chapter summary strong{font-size:15px}.map-chapter summary{gap:8px}.map-chapter-count{font-size:11px}}.lesson-rating b{color:#ae7d20;letter-spacing:.12em}.house-health{pointer-events:none;gap:3%;bottom:3%;left:0}.house-health i{aspect-ratio:1;background:#d6c5a4;width:clamp(4px,10%,9px);height:auto}.house-health i.full{background:#b88125}.future-summary.house-warning{color:#916318}.house-warning .status-dot{background:#b88125}.house-health-note{color:var(--muted);margin-top:5px;display:block}.choice-actions:has([data-choose]){flex-wrap:nowrap}.choice-actions [data-choose]{min-width:0}.choice-actions [data-cancel]{flex:0 0 44px;min-width:44px;min-height:44px}.compact-ui{margin-top:0!important}.compact-ui .topbar{max-width:650px;min-height:44px;margin:0 auto;padding:0 14px}.compact-ui .brand{font-size:18px}.compact-ui .brand>.art{width:30px;height:34px}.compact-ui .brand small{display:none}.compact-ui .game-layout{max-width:650px;margin-inline:auto;padding:10px 14px;display:block}.compact-ui .playfield{min-width:0}.compact-ui .lesson-heading{grid-template-columns:1fr auto;gap:3px 8px;margin:0 0 7px;display:grid;position:relative}.compact-ui .lesson-heading .progress-row{grid-area:1/1/auto/-1;min-height:24px;margin:0;font-size:11px}.compact-ui .lesson-heading h2{grid-area:2/1;margin:0;font-size:21px;line-height:1.2}.compact-ui .lesson-heading>p{grid-area:3/1/auto/-1;min-height:0;margin:1px 0;font-size:12px;line-height:1.45}.compact-ui .lesson-heading .turn-counter{grid-area:2/2;align-self:center;font-size:11px}:is(.compact-ui .tactical-stage,.compact-ui .tactical-stage:has(.choice-actions)){width:min(100%,max(300px,100dvh - 350px));max-width:560px;margin-inline:auto}.compact-ui .stage-controls{flex-direction:column;gap:5px;display:flex}.compact-ui .command-dock{box-shadow:none;background:0 0;border:0;margin:0 0 0 24px;padding:0}.compact-ui .compact-message{border-left:3px solid var(--green);background:#e9eddf;width:min(100%,560px);margin:4px auto 6px;padding:4px 8px;line-height:1.35}.compact-ui .compact-message strong{font-size:12px;display:block}.compact-ui .compact-message>span{font-size:11px}.compact-ui .compact-message.message-warning{background:#f3e7d0;border-color:#b88125}.compact-ui .hero-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;width:auto;max-width:none;margin:5px 0 0 24px;display:grid}.compact-ui .hero-strip:has(>.hero-card:only-child){grid-template-columns:1fr}.compact-ui .hero-card{text-align:left;grid-template-rows:17px 17px;grid-template-columns:16px minmax(0,1fr) auto;align-items:center;gap:0 2px;min-width:0;min-height:44px;padding:2px;display:grid}.compact-ui .hero-card>.art{flex:none;grid-area:1/1/3;width:16px;min-width:16px;height:24px}.compact-ui .hero-card>span:not(.art):not(.hero-life){display:contents}.compact-ui .hero-card strong{white-space:nowrap;grid-area:1/2/auto/4;max-width:none;font-size:11px;line-height:17px;overflow:visible}.compact-ui .hero-card strong+small{white-space:nowrap;grid-area:2/2;max-width:none;font-size:9px;line-height:17px}.compact-ui .hero-card .hero-life{white-space:nowrap;grid-area:2/3;align-items:baseline;gap:2px;font-size:11px;line-height:17px;display:flex}.compact-ui .hero-card .hero-life small{font-size:9px;line-height:17px}.compact-ui .turn-actions{align-items:stretch;gap:4px;display:flex}.compact-ui .turn-actions>[data-undo],.compact-ui .turn-actions>[data-restart]{flex:none;min-width:64px;padding:6px;font-size:12px}.compact-ui .turn-actions>[data-end],.compact-ui .turn-actions>[data-result]{flex:1;min-width:0;min-height:44px;padding:6px;font-size:12px}.compact-ui .coach{gap:8px;margin-top:14px}.compact-ui .coach .board-tools{justify-content:center;gap:16px;margin:0}.compact-ui .coach .board-caption{max-width:none;margin:0}html[lang=en] .compact-ui h1,html[lang=en] .compact-ui h2,html[lang=en] .compact-ui h3{font-family:Georgia,Palatino Linotype,Times New Roman,serif}.compact-ui .cannon-choice{z-index:60;background:var(--paper);touch-action:manipulation;border:0;border-radius:2px;grid-template-rows:44px;grid-template-columns:repeat(2,48px);gap:4px;margin:0;padding:0;display:grid;position:absolute;box-shadow:0 3px 14px #152d2860}.compact-ui .cannon-choice[data-layout=column]{grid-template-rows:repeat(2,44px);grid-template-columns:48px}.compact-ui .cannon-choice button.cannon-option{width:48px;min-width:44px;height:44px;min-height:44px;color:var(--green);white-space:nowrap;background:#faf7ec;border:1px solid #8c9985;border-radius:2px;place-items:center;padding:6px 3px;font:13px/1.2 Arial,sans-serif;display:grid}.compact-ui .cannon-choice button[aria-pressed=true]{background:var(--green);color:#fff}.compact-ui .cannon-choice button:focus-visible{outline-offset:1px;outline:2px solid #ae7d20}.compact-ui .cannon-choice [data-confirm-ready=true]{outline-offset:-3px;outline:2px solid #ae7d20}.chapter-story-modal{text-align:left;max-width:440px}.chapter-story-modal>small{color:var(--muted);font:12px Arial,sans-serif}.chapter-story-modal h2{margin:12px 0;font:26px Georgia,serif}.chapter-story-modal>p{font-size:15px;line-height:1.65}.chapter-story-modal .button{width:100%;min-height:44px;margin-top:10px}.chapter-story-modal .modal-close{min-width:44px;min-height:44px}.chapter-story-button{border:1px solid var(--line);border-radius:4px;min-height:44px;padding:8px 12px}.compact-ui .compact-message .command-status{display:block}.compact-ui .topbar nav{gap:6px}.compact-ui .header-settings{gap:4px}.compact-ui .history-button{min-width:44px;min-height:44px;padding:4px;font:11px Arial,sans-serif}.compact-ui .goal-chips{gap:4px;margin:5px 0;display:flex}.compact-ui .goal-chip{border:1px solid var(--line);min-width:0;min-height:48px;color:var(--ink);white-space:nowrap;background:#f7f3e8;border-radius:5px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;padding:4px;font:600 16px/1.15 Arial,sans-serif;display:flex}.compact-ui .goal-chip b{letter-spacing:1px;color:#ae7d20;font-size:12px}.compact-ui .goal-chip.goal-missed{opacity:.65}.compact-ui .goal-chip.goal-met{background:#e4ecd9;border-color:#7c966e}.compact-ui .forecast-strip{min-height:44px;color:var(--green);background:#e5ecd9;border-radius:5px;justify-content:space-between;align-items:center;gap:6px;margin-bottom:5px;padding:0 6px;display:flex}.compact-ui .forecast-strip.unsafe{color:#a33b2e;background:#f4dbd4}.compact-ui .forecast-strip.house-warning{color:#8a5b18;background:#f2e5cc}.compact-ui .forecast-strip small{font-size:9px;display:block}.compact-ui .forecast-strip strong{font-size:12px;line-height:1.3;display:block}.compact-ui .forecast-strip button{min-width:48px;min-height:44px;color:inherit;padding:3px;font-size:11px}.compact-ui .teaching-callout{font-size:12px!important}.compact-ui .explanations{border-top:1px solid var(--line);margin-top:8px}.compact-ui .explanations>summary{cursor:pointer;min-height:44px;color:var(--green);padding:10px 4px;font-size:12px}.compact-ui .explanations>.coach{margin:0;padding:8px 4px;display:flex}.compact-ui .explanations:not([open])>.coach{display:none}.compact-ui .compact-hints{margin-top:8px}.compact-ui .compact-hints .hint-button{min-height:44px}@media (width<=700px){.compact-ui .brand>span:not(.art){display:none}.compact-ui .topbar nav button{padding:4px;font-size:11px}.compact-ui .goal-chip{font-size:16px}}.action-preview-arrows{z-index:18;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.action-preview-arrows>path{fill:none;stroke:#315b68;stroke-width:3px;stroke-dasharray:5 3}.action-preview-arrows marker path{fill:none;stroke:#315b68;stroke-width:2px}.preview-marks{pointer-events:none;z-index:32;position:absolute;inset:0}.preview-mark{color:#fff;background:#315b4c;border:1px solid #f6f3e8;border-radius:4px;place-items:center;min-width:20px;min-height:20px;padding:1px 3px;font:700 13px Arial,sans-serif;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 1px 4px #18352a60}.preview-mark.collateral{background:#a33b2e}.preview-mark.water{background:#266982}@media (width>=600px) and (height<=600px){.compact-ui .stage-controls .goal-chips,.compact-ui .stage-controls .forecast-strip{margin:0}.compact-ui .stage-controls .goal-chip{flex-direction:column;gap:2px;font-size:16px}.compact-ui .stage-controls .forecast-strip strong{font-size:12px}.compact-ui .stage-controls .lesson-heading{grid-template-columns:1fr auto;gap:2px 8px;width:100%;margin:0;display:grid}}@media (width<=700px){.compact-ui .topbar{padding-inline:12px}.compact-ui .brand{font-size:13px}.compact-ui .game-layout{padding:4px 12px}.compact-ui .lesson-heading h2{font-size:17px}.compact-ui .command-dock,.compact-ui .hero-strip{margin-left:18px}.compact-ui .compact-message{font-size:11px}}@media (width>=600px) and (height<=600px){.compact-ui .game-layout{max-width:none;padding:4px 14px}.compact-ui .lesson-heading{justify-content:space-between;align-items:center;margin:0 0 2px;display:flex}.compact-ui .lesson-heading>.progress-row{min-height:0}.compact-ui .lesson-heading>p{display:none}.compact-ui .lesson-heading h2{font-size:14px}.compact-ui .compact-message{display:none}:is(.compact-ui .tactical-stage,.compact-ui .tactical-stage:has(.choice-actions)){grid-template-columns:max(310px,min(100dvh - 98px,100vw - 288px)) minmax(220px,1fr);gap:20px;width:100%;max-width:none;display:grid}.compact-ui .hero-strip,.compact-ui .command-dock{margin:0}.compact-ui .stage-controls{gap:10px}}.compact-ui .forecast-strip .ally-actions{flex:1;gap:0;min-width:0;margin:0}.compact-ui .forecast-strip .ally-command{min-width:0;min-height:44px;padding:4px;font-size:11px;line-height:1.2}.compact-ui .forecast-strip .ally-command small{font-size:9px;line-height:1.2;display:block}@media (width>=1100px) and (height>=700px){.compact-ui .topbar{max-width:1040px}.compact-ui .game-layout{grid-template-columns:min(560px,max(300px,100dvh - 350px)) minmax(300px,380px);justify-content:center;align-items:start;gap:28px;max-width:1040px;display:grid}:is(.compact-ui .tactical-stage,.compact-ui .tactical-stage:has(.choice-actions)){width:100%;max-width:none}.compact-ui .explanations{overscroll-behavior:contain;scrollbar-gutter:stable;border:1px solid var(--line);background:var(--paper);border-radius:6px;min-width:0;max-height:calc(100dvh - 88px);margin:0;padding:0 12px;position:sticky;top:64px;overflow-y:auto}.compact-ui .explanations>summary{z-index:2;background:var(--paper);border-bottom:1px solid var(--line);font-size:13px;position:sticky;top:0}.compact-ui .explanations>.coach{padding:10px 0}}.compact-ui .hero-strip[hidden]{display:none}.compact-ui .turn-actions .danger-button{color:#fffaf0;background:#a33b2e;border-color:#8c3025;box-shadow:0 2px #69251d}.compact-ui .turn-actions .danger-button:hover:not(:disabled){background:#852e24;box-shadow:0 3px 6px #69251d40}.compact-ui .turn-actions .caution-button{color:#fffaf0;background:#875d1e;border-color:#775018;box-shadow:0 2px #624216}.compact-ui .turn-actions .caution-button:hover:not(:disabled){background:#714c16}.compact-ui .turn-actions [data-end]:disabled{box-shadow:none;color:#626b5c;background:#d7d9cf;border-color:#b9bdb0}.result-stars{isolation:isolate;justify-content:center;align-items:center;gap:2px;height:100px;margin:0 auto 12px;display:flex}.reward-star{filter:drop-shadow(0 3px 2px #79571d30);width:76px;height:76px;display:block;position:relative;transform:rotate(-12deg)}.reward-star:nth-child(2){z-index:1;width:96px;height:96px;transform:translateY(-7px)}.reward-star:nth-child(3){transform:rotate(12deg)}.reward-star svg{width:100%;height:100%;display:block;overflow:visible}.star-shadow{fill:#ad741d;transform:translateY(5px)}.star-face{fill:#f5c748;stroke:#b47c21;stroke-width:2px;stroke-linejoin:round}.star-shine{fill:none;stroke:#fff4b9;stroke-width:5px;stroke-linecap:round;stroke-linejoin:round}.unearned{filter:none}.unearned .star-shadow{fill:#d5d0bf}.unearned .star-face{fill:#ebe6d7;stroke:#bcb39a}.unearned .star-shine{stroke:#f8f4e9}.result-stars .earned:before{content:"";z-index:-1;background:radial-gradient(circle,#fbd66a60,#0000 70%);border-radius:50%;position:absolute;inset:8px}#app[data-motion=full] .result-stars .earned svg{animation:.46s cubic-bezier(.2,.8,.3,1.2) both reward-star-arrive;animation-delay:calc((var(--star-order) - 1)*.13s)}@keyframes reward-star-arrive{0%{opacity:0;transform:scale(.35)rotate(-18deg)}65%{opacity:1;transform:scale(1.12)rotate(4deg)}to{opacity:1;transform:scale(1)rotate(0)}}#app[data-motion=reduced] .result-stars *{animation:none!important}@media (height<=500px){.result-stars{gap:4px;height:38px;margin:0 auto 6px}.reward-star{width:32px;height:32px}.reward-star:nth-child(2){width:40px;height:40px;transform:translateY(-2px)}}#app[data-screen=home]{max-width:none;margin:0}.home-screen{--home-cream:#fff2cf;--home-gold:#eac16c;--home-border:#d0bd864d;isolation:isolate;min-height:100svh;color:var(--home-cream);background:#102824 url(/art/menu/village-dawn-v1.png) 50%/cover no-repeat;align-items:center;padding:48px clamp(28px,8vw,150px);display:flex;position:relative;overflow:hidden}.home-screen:before{content:"";z-index:-1;background:linear-gradient(90deg,#051c18ed 0%,#0a2620c9 29%,#0a262043 50%,#0a262000 75%),linear-gradient(#0000 65%,#071b1859);position:absolute;inset:0}.home-content{text-shadow:0 2px 12px #00110ee0;width:390px;max-width:100%}.home-eyebrow{letter-spacing:2.3px;color:#c7d4b9;margin:0 0 18px;font:600 10px/1.5 Arial,sans-serif}.home-brand h1{letter-spacing:-3px;text-shadow:0 3px #17281e,0 6px 30px #001410;margin:0;font:700 clamp(64px,6.5vw,96px)/.86 Georgia,Palatino Linotype,serif}.home-brand h1 span,.home-brand h1 strong{font-weight:700;display:block}.home-brand h1 strong{color:var(--home-gold);margin-top:7px}.home-tagline{color:#e3e7d9;margin:24px 0 28px;font:16px/1.55 Arial,sans-serif}.home-modes{gap:14px;display:grid}.home-mode{min-width:0}.home-modes button{width:100%;min-height:56px;color:var(--home-cream);text-align:center;text-shadow:0 2px 1px #061e19;cursor:pointer;background:linear-gradient(#345444,#1c392e 48%,#142d24);border:2px solid #a58a54;border-radius:2px;justify-content:center;align-items:center;gap:9px;padding:10px 22px;font-family:Georgia,Palatino Linotype,serif;transition:border-color .12s,box-shadow .12s,background .12s;display:flex;position:relative;box-shadow:inset 0 1px #f8e2aa40,inset 0 -2px #061c1680,0 4px #332d1b,0 7px 12px #00100e70}.home-modes button:before{content:"";pointer-events:none;border:1px solid #ceb37442;position:absolute;inset:4px}.home-modes strong{letter-spacing:.7px;font-size:22px;font-weight:700;line-height:1.2;display:block;position:relative}.home-modes .home-play{color:#fff1c7;background:linear-gradient(#416c50,#234b38 48%,#153628);border-color:#d5b567;min-height:64px;box-shadow:inset 0 2px #fff0b85e,inset 0 -2px #071f1999,0 4px #71562c,0 8px 18px #00110d90}.home-modes .home-play:before{border-color:#f4d79170}.home-modes .home-play strong{letter-spacing:1.2px;font-size:26px}.home-play strong:before,.home-play strong:after{content:"";vertical-align:middle;background:#c9ac68;border:1px solid #e6cd85;width:5px;height:5px;margin:0 17px;display:inline-block;transform:rotate(45deg);box-shadow:1px 1px 1px #091b12}.home-play-note,.home-campaign-meta{color:#d6d3b9;text-align:center;margin:8px 0 0;font:11px/1.4 Arial,sans-serif}.home-campaign-meta{color:#c7c9b0;justify-content:center;align-items:center;gap:12px;display:flex}.home-star-total{color:var(--home-gold);white-space:nowrap}.home-future{grid-template-columns:1fr 1fr;gap:10px;display:grid}.home-unreleased{text-align:center;min-width:0}.home-future button{color:#b0b9a3;opacity:1;cursor:default;background:linear-gradient(#283b30e8,#152b23ed);border-color:#63705a;min-height:50px;padding:9px 10px;box-shadow:inset 0 1px #b7bf9b25,0 3px #18251b,0 5px 9px #00100e40}.home-future button:before{border-color:#9baf8b26}.home-future strong{letter-spacing:0;font-size:15px}.home-future small{color:#b5bba6;margin-top:6px;font:10px/1.4 Arial,sans-serif;display:block}.home-screen svg{flex:none;width:20px;height:20px}.home-future svg{color:#98a68d;width:18px;height:18px}.home-tools{color:#d4ddc8;justify-content:center;align-items:center;gap:22px;margin-top:12px;display:flex}.home-tools button{min-height:44px;color:inherit;letter-spacing:.3px;background:0 0;border:0;justify-content:center;align-items:center;gap:7px;padding:6px;font:14px Georgia,Palatino Linotype,serif;display:flex}.home-tools button:hover{color:#ffe4a0}.home-tools svg{width:17px;height:17px}.home-tools>span{color:#9eaf9570}.home-world-note{letter-spacing:3px;color:#fff5c9b3;text-shadow:0 1px 8px #091c17;margin:0;font:10px Georgia,serif;position:absolute;bottom:24px;right:32px}@media (hover:hover){.home-modes button:enabled:hover{background:linear-gradient(#4b7557,#2b513d 48%,#1b3c2e);border-color:#ffe2a0;box-shadow:inset 0 2px #fff4bd70,inset 0 -2px #071f1999,0 4px #71562c,0 0 18px #d5bd6030,0 8px 18px #00110d90}}.home-modes button:enabled:active{transform:translateY(2px);box-shadow:inset 0 2px 4px #05170f80,0 1px #584424,0 3px 8px #00110d70}.home-screen button:focus-visible{outline-offset:4px;outline:3px solid #ffe8a0}.home-settings{text-align:left;max-width:430px}.home-settings h2{margin-bottom:20px}.home-settings .language-button{border:1px solid var(--line);background:var(--surface);border-radius:5px;min-height:44px;padding:8px 14px}.home-settings>.button,.home-settings .audio-settings{margin-top:18px}.home-message{color:#ffe2a2;margin:0 0 12px;font:13px/1.5 Arial,sans-serif}.home-modes button:disabled:not([data-unreleased]){cursor:wait;opacity:.7}#app[data-motion=reduced] .home-modes button{transition:none}@media (prefers-reduced-motion:reduce){.home-modes button{transition:none}}@media (width<=700px) and (height>=501px){.home-screen{background-position:69%;align-items:stretch;min-height:100svh;padding:28px 22px 16px}.home-screen:before{background:linear-gradient(#071e1b73 0%,#071e1b54 28%,#071e1bd9 65%,#061e1bf5 100%)}.home-content{flex-direction:column;justify-content:space-between;width:100%;min-height:calc(100svh - 44px);display:flex}.home-brand h1{letter-spacing:-2px;font-size:56px;line-height:.88}.home-brand h1 span,.home-brand h1 strong{display:inline}.home-brand h1 strong{margin:0}.home-eyebrow{letter-spacing:1.5px;margin-bottom:10px;font-size:8px}.home-tagline{margin:13px 0 28px;font-size:13px}.home-brand{margin-bottom:44px}.home-world-note{display:none}.home-modes{gap:12px}.home-modes .home-play{min-height:60px}.home-modes button{min-height:52px;padding:10px 15px}.home-modes .home-play strong{font-size:24px}.home-modes .home-campaign strong{font-size:21px}.home-future button{min-height:48px;padding:9px 10px}.home-future strong{font-size:14px}.home-play-note,.home-campaign-meta{margin-top:6px;font-size:10px}.home-tools{margin-top:10px}}@media (width>=701px) and (height<=740px){.home-screen{padding-block:24px}.home-brand h1{font-size:68px}.home-eyebrow{margin-bottom:12px}.home-tagline{margin:18px 0 20px;font-size:14px}.home-modes{gap:12px}.home-modes .home-play{min-height:60px}.home-modes button{min-height:52px}.home-future button{min-height:48px}.home-tools{margin-top:8px}}@media (height<=500px){.home-screen{min-height:100svh;padding:18px 24px}.home-screen:before{background:linear-gradient(90deg,#061f1ce8,#071f1c94)}.home-content{grid-template-columns:minmax(180px,.85fr) minmax(280px,1fr);align-items:center;gap:28px;width:100%;display:grid}.home-brand h1{letter-spacing:-2px;font-size:clamp(42px,6.5vw,64px)}.home-eyebrow{letter-spacing:1px;margin-bottom:13px;font-size:8px}.home-tagline{margin:18px 0 0;font-size:13px}.home-modes{gap:8px}.home-modes button{min-height:46px;padding:7px 12px}.home-modes .home-play{min-height:50px}.home-modes .home-play strong{font-size:22px}.home-modes strong{font-size:19px}.home-play-note,.home-campaign-meta{margin-top:5px;font-size:9px}.home-future button{gap:7px;min-height:44px;padding:8px 9px}.home-future strong{font-size:13px}.home-future svg{width:16px;height:16px}.home-future small{margin-top:5px;font-size:9px}.home-tools{gap:16px;margin-top:4px}.home-tools button{font-size:13px}.home-world-note{display:none}}@media (width<=420px) and (height<=600px){.home-screen{padding-top:18px}.home-brand{margin-bottom:16px}.home-content{min-height:calc(100svh - 34px)}.home-brand h1{font-size:49px}.home-tagline{margin-bottom:18px}}body:has(#app[data-screen=game]){background:radial-gradient(at 45% 0,#2e4539 0,#0000 65%),repeating-linear-gradient(90deg,#00000005 0 1px,#0000 1px 64px),#101f1a}#app[data-screen=game]{--war-cream:#eee4c7;--war-gold:#c2a36b;--war-edge:#8f784f;--war-dark:#172e25;--war-paper:#eee4ca;min-height:100svh;color:var(--war-cream)}#app[data-screen=game] .game-layout{background:0 0}#app[data-screen=game] .topbar{color:var(--war-cream);background:linear-gradient(#2d4438f2,#1b3028f2);border-bottom:1px solid #ad925b88;border-radius:0;box-shadow:0 2px 9px #00000035}#app[data-screen=game] .topbar :is(.nav-button,.text-button),#app[data-screen=game] .brand{color:#dad9bf;text-shadow:0 1px 2px #07170f}#app[data-screen=game] .topbar .nav-button.active{color:#ffe8af;border-bottom-color:var(--war-gold)}#app[data-screen=game] .help-button span{color:#e7d7ab;border-color:#a18d5a99}#app[data-screen=game] .lesson-heading h2{color:#f2e4bc;text-shadow:0 2px 2px #06170e;background:linear-gradient(#344a3a,#20372c);border:1px solid #9c86584d;border-bottom-color:#b79b60;width:fit-content;min-width:0;max-width:100%;padding:3px 8px;box-shadow:inset 0 1px #ead8a31a,0 2px 3px #07160f45}#app[data-screen=game] .lesson-heading .progress-row{color:#b7bca3}#app[data-screen=game] .lesson-heading .progress-row>span:first-child{font-variant-numeric:tabular-nums;letter-spacing:.2px;color:#e2d5b4;font:600 14px/1.3 Arial,sans-serif}#app[data-screen=game] .lesson-heading :is(.teaching-callout,.lesson-principle){color:#d3d6bf}#app[data-screen=game] .picker-button{color:#e8dbb5;background:#203c30;text-decoration:none;border-color:#8d8055!important}#app[data-screen=game] .turn-counter{color:#e1d6b7;background:linear-gradient(#3f4e38,#273929);border:1px solid #9d875c;border-radius:3px;padding:3px 7px;line-height:1;box-shadow:inset 0 1px #e2d1a32b,0 2px 2px #09150f70}#app[data-screen=game] .turn-counter b{color:#fff0c4;font-family:Georgia,serif;font-size:16px}#app[data-screen=game] .goal-chips{border:1px solid var(--war-edge);background:linear-gradient(#304839,#1d352a);border-radius:2px;gap:0;box-shadow:inset 0 1px #e4d3a62b,0 2px 4px #07150f60}#app[data-screen=game] .goal-chip{color:#f0e9d2;min-height:46px;box-shadow:none;opacity:1;background:0 0;border:0;border-left:1px solid #9e8d5a6b;border-radius:0}#app[data-screen=game] .goal-chip:first-child{border-left:0}#app[data-screen=game] .goal-chip b{color:#d4b270;text-shadow:0 1px 1px #05190e}#app[data-screen=game] .goal-chip>span{font-variant-numeric:tabular-nums;font-size:18px}#app[data-screen=game] .goal-chip.goal-met{color:#f1ebd0;background:#9eb97d0c}#app[data-screen=game] .goal-chip.goal-missed{color:#dba392}#app[data-screen=game] .goal-chip.goal-missed b{color:#ba8d70}#app[data-screen=game] .goal-chip:focus-visible{outline-offset:-3px;outline:2px solid #f6d288}#app[data-screen=game] .forecast-strip{color:#e1e8c5;background:linear-gradient(90deg,#354f37,#273c2c);border:1px solid #7e8d60;border-radius:2px;position:relative;box-shadow:inset 0 1px #e6e9bb1a}#app[data-screen=game] .forecast-strip:not([data-context=ally]){padding-left:25px}#app[data-screen=game] .forecast-strip:not([data-context=ally]):before{content:"";opacity:.75;clip-path:polygon(0 0,100% 0,100% 100%,50% 75%,0 100%);pointer-events:none;background:currentColor;width:9px;height:16px;position:absolute;top:12px;left:8px}#app[data-screen=game] .forecast-strip.unsafe{color:#ffe0bf;background:linear-gradient(90deg,#62382e,#462b25);border-color:#b37b62}#app[data-screen=game] .forecast-strip.house-warning{color:#f4df9b;background:linear-gradient(90deg,#60502c,#443b27);border-color:#b79b5c}#app[data-screen=game] .forecast-strip small{color:inherit;opacity:.8}#app[data-screen=game] .forecast-strip :is(.text-button,.ally-command){color:inherit;text-decoration:none}#app[data-screen=game] :is(.column-labels,.row-labels){color:#d2c49d;text-shadow:0 1px 2px #09170f}#app[data-screen=game] .board-frame{background:repeating-linear-gradient(0deg,#fff3c207 0 1px,#0000 1px 9px),linear-gradient(115deg,#a37b4a,#6d4e30 45%,#987143);border-radius:2px;position:relative;box-shadow:inset 0 1px #e1c58b,0 0 0 1px #c0a16c,0 0 0 3px #382d1d,0 5px #49351f,0 12px 20px #00000060}#app[data-screen=game] .board-frame:after{content:"";pointer-events:none;background:radial-gradient(circle,#d9bf7c 0 1px,#614c2d 2px,#0000 3px) 0 0/9px 9px no-repeat,radial-gradient(circle,#d9bf7c 0 1px,#614c2d 2px,#0000 3px) 100% 0/9px 9px no-repeat,radial-gradient(circle,#d9bf7c 0 1px,#614c2d 2px,#0000 3px) 0 100%/9px 9px no-repeat,radial-gradient(circle,#d9bf7c 0 1px,#614c2d 2px,#0000 3px) 100% 100%/9px 9px no-repeat;position:absolute;inset:0}#app[data-screen=game] .board .water{background:#548f9f}#app[data-screen=game] .board .water>.ground{opacity:.75}#app[data-screen=game] .board .water>.terrain-piece[data-sprite=water]{background-position:35.3544% 91.8418%;background-size:522.744% 392.058%;inset:0;transform:none}#app[data-screen=game] .turn-actions{background:#14291f;outline:1px solid #8b795044;box-shadow:0 4px 8px #06120d45}#app[data-screen=game] .turn-actions>button{text-shadow:0 1px 1px #07170e;background-image:linear-gradient(#ffffff10,#00000020);border-color:#9b895d;border-radius:2px;position:relative;box-shadow:inset 0 1px #f6e6ae45,0 3px #18251c,0 5px 7px #06120d55}#app[data-screen=game] .turn-actions>:is([data-undo],[data-restart]){color:#eee3c6;background-color:#304838;font-family:Georgia,serif;font-size:13px}#app[data-screen=game] .turn-actions>[data-end]{color:#fff1d4;border-color:#bca26c;font:700 14px/1.2 Georgia,Palatino Linotype,serif}#app[data-screen=game] .turn-actions>button:enabled:hover{border-color:#e0be78;box-shadow:inset 0 1px #fff0b85e,0 3px #18251c,0 5px 8px #06120d70}#app[data-screen=game] .turn-actions>button:before{content:"";pointer-events:none;border:1px solid #e6d49c2e;position:absolute;inset:3px}#app[data-screen=game] .turn-actions>button:disabled{opacity:1;color:#9da68e;text-shadow:none;background-color:#2c3b2f;border-color:#59664d;box-shadow:inset 0 1px #d7ddba17}#app[data-screen=game] .turn-actions>button:enabled:active{transform:translateY(1px);box-shadow:inset 0 1px 3px #04120b90,0 1px #18251c}#app[data-screen=game] .compact-hints .hint-button{color:#d9d5b5;box-shadow:none;background:0 0;border:0;border-bottom:1px solid #93825255;border-radius:0;font-family:Georgia,serif;font-size:13px}#app[data-screen=game] .compact-hints .hint-button:before{content:"";vertical-align:-2px;border:1px solid #c8b888;border-radius:2px;width:10px;height:13px;margin-right:8px;display:inline-block;transform:rotate(-7deg);box-shadow:2px 1px 0 -1px #c8b888}#app[data-screen=game] .compact-message{color:#2c4635;background:linear-gradient(100deg,#e7d9b7,#d6c59e);border-left-color:#b29a5b}#app[data-screen=game] .explanations{--journal-title-height:44px;background:linear-gradient(#344d3c,#22382c) left top/100% var(--journal-title-height) no-repeat,repeating-linear-gradient(0deg,#83684605 0 1px,transparent 1px 4px),linear-gradient(100deg,#f0e8d2,#e5d9ba);color:var(--ink);scrollbar-color:#9c8d62 transparent;border:1px solid #9e875a;border-radius:2px;box-shadow:0 5px 14px #06150f45}#app[data-screen=game] .explanations>summary{color:#eee2bd;text-shadow:0 1px 1px #05150f;-webkit-tap-highlight-color:transparent;background:linear-gradient(#344d3c,#22382c);border-bottom:1px solid #9e875a;padding-inline:10px;font-family:Georgia,serif;font-size:14px}#app[data-screen=game] .explanations>summary:active{filter:brightness(1.12)}#app[data-screen=game] .explanations>summary:focus-visible{outline-offset:-3px;outline:2px solid #f6d288}#app[data-screen=game] .explanations>.coach{padding-inline:10px;font-family:Arial,sans-serif}#app[data-screen=game] .explanations .lesson-principle{color:#5c6951}#app[data-screen=game] .page-footer{color:#a0aa93;background:0 0;border-radius:0}#app[data-screen=game] .cannon-choice{--face-top:14px;--face-bottom:0px;box-shadow:none;background:0 0;outline:none}#app[data-screen=game] .cannon-choice[data-vertical=below]{--face-top:0px;--face-bottom:14px}#app[data-screen=game] .cannon-choice .cannon-option{z-index:0;padding:var(--face-top) 0 var(--face-bottom);color:#fff0c6;text-shadow:0 1px 1px #061e19;box-shadow:none;-webkit-tap-highlight-color:transparent;background:0 0;border:0;font:700 13px/1.2 Georgia,Palatino Linotype,serif;position:relative}#app[data-screen=game] .cannon-choice .cannon-option:before{content:"";z-index:-1;inset:var(--face-top) 0 var(--face-bottom);pointer-events:none;background:linear-gradient(#3b5b45,#203d2e);border:1px solid #b99b5f;border-radius:2px;position:absolute;box-shadow:inset 0 1px #f6e6ae3b,0 2px #172217,0 4px 8px #06130c8c}#app[data-screen=game] .cannon-choice .cannon-option:after{content:"";inset:calc(var(--face-top) + 3px) 3px calc(var(--face-bottom) + 3px);pointer-events:none;border:1px solid #dac17d38;position:absolute}#app[data-screen=game] .cannon-choice .cannon-option:is(:hover,[aria-pressed=true]):before{background:linear-gradient(#55714b,#304f35);border-color:#f0cc80}#app[data-screen=game] .cannon-choice .cannon-option[data-confirm-ready=true]{outline:none}#app[data-screen=game] .cannon-choice .cannon-option[data-confirm-ready=true]:before{outline-offset:-3px;outline:2px solid #e2bd71}#app[data-screen=game] .cannon-choice .cannon-option:active:before{box-shadow:inset 0 2px 4px #061a1299}#app[data-screen=game] .result-modal{color:#eee3c4;background:radial-gradient(at 50% 0,#56704b44,#0000 60%),repeating-linear-gradient(90deg,#d0c28c04 0 1px,#0000 1px 8px),linear-gradient(#2a4434,#152d24);border:2px solid #b99b5f;border-radius:3px;box-shadow:inset 0 0 0 4px #1b3025,inset 0 0 0 5px #c6ad684d,0 6px #2c291b,0 16px 48px #0009}#app[data-screen=game] .result-modal h2{color:#f6e7bd;text-shadow:0 2px 1px #091d13;font-family:Georgia,Palatino Linotype,serif}#app[data-screen=game] .result-modal .result-summary{color:#cbd0b8;margin:8px 0;font:14px/1.5 Arial,sans-serif}#app[data-screen=game] .result-modal .result-back{color:#d6c99f;background:0 0}#app[data-screen=game] .result-modal .result-art{width:76px;height:76px;margin-bottom:10px}#app[data-screen=game] .result-modal .result-actions{align-items:stretch;gap:8px;margin:16px 0 10px;display:flex}#app[data-screen=game] .result-actions>button{color:#e6dbb9;background:linear-gradient(#314a36,#20392b);border:1px solid #9d8756;border-radius:2px;flex:1;width:auto;min-width:0;min-height:48px;margin:0;padding:8px;font:700 14px/1.3 Georgia,Palatino Linotype,serif;box-shadow:inset 0 1px #f6e6ae35,0 3px #0c2018}#app[data-screen=game] .result-actions>.primary{color:#fff1c7;background:linear-gradient(#496b4a,#274b36 50%,#1c3b2c);border-color:#dab96d;flex:2}#app[data-screen=game] .result-actions>button:enabled:hover{filter:brightness(1.1);border-color:#ffe09c}#app[data-screen=game] .result-actions>button:enabled:active{transform:translateY(1px);box-shadow:inset 0 2px 4px #071c1380,0 1px #0c2018}#app[data-screen=game] .result-report{text-align:left;border-top:1px solid #a38d5855;margin-top:12px}#app[data-screen=game] .result-report>summary{color:#d7cba4;cursor:pointer;min-height:44px;padding:12px 4px;font:14px/1.4 Georgia,serif}#app[data-screen=game] .result-report-body{color:#314735;background:linear-gradient(100deg,#eee5cc,#e2d6b7);border:1px solid #ac945d;padding:12px;line-height:1.6}#app[data-screen=game] .result-report-body p{color:#46523e;font:13px/1.6 Arial,sans-serif}#app[data-screen=game] .result-report-body .button{border-radius:2px;font-family:Georgia,serif}#app[data-screen=game] .result-report-body>.text-button{min-height:44px;display:block}#app[data-screen=game] .result-report-body .solution-recap{color:var(--ink)}#app[data-screen=game] .result-modal :is(button,summary):focus-visible{outline-offset:2px;outline:2px solid #ffe3a0}@media (height<=500px){#app[data-screen=game] .result-modal .result-art{width:40px;height:40px;margin:0 auto 6px}#app[data-screen=game] .result-modal .result-actions{margin:10px 0 4px}#app[data-screen=game] .result-modal .result-actions>button{min-height:44px}#app[data-screen=game] .result-modal .result-report{margin-top:6px}}@media (width>=1100px) and (height>=700px){#app[data-screen=game] .explanations{padding-inline:0}#app[data-screen=game] .explanations>.coach{padding-inline:14px}}@media (width>=600px) and (height<=600px){#app[data-screen=game] .turn-counter{padding:3px 5px}#app[data-screen=game] .turn-counter b{font-size:14px}#app[data-screen=game] .turn-actions>:is([data-undo],[data-restart]){font-size:12px}}.mode-modal{text-align:left;box-sizing:border-box;width:min(580px,100vw - 24px);max-height:calc(100svh - 24px);padding:24px;overflow-y:auto}.mode-modal h2{margin:8px 48px 12px 0;font-size:28px}.mode-modal .modal-close{float:right;z-index:2;color:#ffe6aa;background:#274735;border:1px solid #9d814e;min-width:44px;min-height:44px;position:sticky;top:0;right:0}.mode-eyebrow{letter-spacing:2px;color:#716140;font-weight:700}.mode-modal>.button{min-height:44px;margin:8px 6px 8px 0}.mode-note{font-size:13px;line-height:1.5}.mode-stats{flex-wrap:wrap;gap:16px;margin:20px 0;display:flex}.mode-stats b{color:#274735;font-size:24px;display:block}.calendar-heading{justify-content:space-between;align-items:center;gap:12px;margin-top:18px;display:flex}.calendar-heading button{min-width:44px;min-height:44px}.calendar-heading h3{margin:0}.daily-calendar{text-align:center;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.daily-calendar>button{color:#244635;cursor:pointer;background:#e8e2cc;border:1px solid #93815c;min-width:0;min-height:48px;padding:4px 0}.daily-calendar small{min-height:13px;font-size:10px;display:block}.daily-calendar b{font-size:16px}.daily-calendar [aria-current=date]{background:#fff2c2;border:2px solid #2d6445}.daily-calendar button:disabled{opacity:.38;cursor:default}.patrol-road{grid-template-columns:repeat(8,1fr);gap:5px;margin:22px 0;padding:0;list-style:none;display:grid}.patrol-road li{color:#4c503c;background:#ded7bc;border:1px solid #8e805e;place-items:center;height:34px;display:grid}.patrol-road .cleared{color:#fff0ba;background:#32583e}.patrol-road .current{outline-offset:2px;outline:2px solid #9c7538}.patrol-team{justify-content:space-between;gap:8px;font-size:13px;display:flex}.patrol-team b{font-size:20px;display:block}.upgrade-offers{gap:10px;display:grid}.upgrade-offers button{text-align:left;color:#ffeac2;cursor:pointer;background:linear-gradient(#365a40,#213d30);border:2px solid #96804e;gap:6px;min-height:72px;padding:14px;display:grid;box-shadow:inset 0 0 0 3px #1b3426,0 3px #54452b}.upgrade-offers strong{font:700 19px Georgia,serif}.upgrade-offers span{font:14px/1.4 Arial,sans-serif}.patrol-upgrades{margin:16px 0}.patrol-upgrades summary{cursor:pointer;min-height:44px}.mode-modal textarea{resize:vertical;color:#203c2d;box-sizing:border-box;background:#ebe5ce;width:100%;min-height:140px;padding:12px;font:15px/1.7 Arial,sans-serif}.mode-banner{color:inherit;font-size:13px}.mode-battle-link{color:#f4dfa6;min-height:44px}.home-future button:enabled{cursor:pointer;color:#ffedc3;background:linear-gradient(#365a40,#20392d);border-color:#ad9259}.home-future button:enabled svg{color:#e5c17a}.home-daily-meta{color:#f4dfad!important;font-size:12px!important}.mode-modal button:focus-visible{outline-offset:3px;outline:3px solid #bc7d2c}@media (width<=400px){.mode-modal{padding:16px}.daily-calendar{gap:2px}.daily-calendar button{min-height:44px}.patrol-team{font-size:12px}}@media (width<=600px){.phase-upgrade .mode-intro,.phase-upgrade .upgrade-lead{display:none}.phase-upgrade .patrol-road,.phase-upgrade h3{margin:12px 0}.phase-upgrade h2{font-size:25px}.phase-upgrade .upgrade-offers{gap:8px}.phase-upgrade .upgrade-offers button{min-height:70px;padding:10px}.phase-upgrade .upgrade-offers strong{font-size:17px}.phase-upgrade .upgrade-offers span{font-size:13px}.phase-upgrade .patrol-team b{font-size:15px;display:inline}.phase-upgrade .patrol-team{flex-wrap:wrap}}
