#app.scene-ui .companion-speech{white-space:normal;height:auto;min-height:44px;max-height:none;padding-block:4px}#app.scene-ui .companion-speech>.companion-speaker,.wm-companion-speech>.companion-speaker{flex:none;width:36px;height:36px;display:block}.companion-speaker>.art{width:100%;height:100%;display:block}#app.scene-ui .companion-speech>.companion-speech-text{white-space:normal;line-height:1.35;overflow:visible}#app.scene-ui .result-won .result-summary.companion-summary-slot{color:var(--scene-parchment-ink);font:800 16px/1.35 var(--scene-font);text-wrap:balance;margin:8px 0;display:block}@media (orientation:landscape) and (height<=500px){#app.scene-ui .result-won>.result-summary.companion-summary-slot{grid-column:1}}.companion-dialogue-setting{min-height:44px;font:700 16px/1.5 var(--scene-font);align-items:center;gap:10px;margin-block:10px;display:flex}.companion-dialogue-setting input{accent-color:#3fa66b;width:22px;height:22px;min-width:22px!important;min-height:22px!important}.world-map .wm-companion-speech{z-index:92;color:#fff0c2;width:max-content;max-width:min(580px,100% - 32px);font:800 16px/1.4 var(--scene-font);background:#203c31f5;border:1px solid #be9d5a;border-radius:12px;align-items:center;gap:8px;padding:6px 8px 6px 12px;display:flex;position:absolute;top:144px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0004}.wm-companion-speech>.companion-speech-text{min-width:0}.world-map .wm-companion-speech button{width:44px;height:44px;color:inherit;background:0 0;border:0;flex:none;font-size:24px}@media (orientation:portrait){#app.scene-ui .companion-speech,.world-map .wm-companion-speech{font-size:14px}}: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.webp);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){#app:not([data-motion=full]) .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)}}@font-face{font-family:Bellwatch Title;src:url(/fonts/bellwatch-title.woff)format("woff");font-weight:700;font-display:swap}#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.webp) 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;white-space:nowrap;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:0;font-family:Bellwatch Title,Georgia,serif}.home-tagline{color:#e3e7d9;margin:24px 0 28px;font:16px/1.55 Arial,sans-serif}.home-modes{grid-template-columns:1fr;gap:12px;display:grid}.home-modes button{width:100%;height:64px;min-height:64px;color:var(--home-cream);text-align:center;text-shadow:0 2px 1px #061e19;background:linear-gradient(#345444,#1c392e 48%,#142d24);border:2px solid #a58a54;border-radius:2px;justify-content:center;align-items:center;gap:10px;padding:10px 22px;font-family:Georgia,Palatino Linotype,serif;transition:transform .12s,background .15s,box-shadow .15s;display:flex;position:relative;box-shadow:inset 0 2px #fff0b830,inset 0 -2px #071f1999,0 4px #71562c,0 8px 18px #00110d90}.home-modes button:before{content:"";pointer-events:none;border:1px solid #ceb37442;position:absolute;inset:4px}.home-modes strong{letter-spacing:.7px;font-size:24px;font-weight:800;line-height:1.2;display:block;position:relative}.home-screen svg{flex:none;width:22px;height:22px}.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){#app:not([data-motion=full]) .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 button{height:56px;min-height:56px;padding:10px 15px}.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 button{height:56px;min-height:56px}.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{height:50px;min-height:50px;padding:7px 12px}.home-modes strong{font-size:19px}.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}}html:lang(zh) #app[data-screen=home] #home-title strong{font-family:Bellwatch Title,Georgia,serif!important}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}}@font-face{font-family:Alegreya;src:url(/fonts/alegreya-variable.woff)format("woff");font-weight:400 900;font-display:swap}@font-face{font-family:Nunito;src:url(/fonts/nunito-variable.woff)format("woff");font-weight:400 1000;font-display:swap}:root{--scene-danger:#e5484d;--scene-danger-fill:#c8323a;--scene-danger-edge:#7a1f24;--scene-gold:#f2c14e;--scene-gold-edge:#a87918;--scene-gold-outline:#e7b84a;--scene-blast:#ff9f1c;--scene-friendly-fire:#b8f03a;--scene-safe:#3fa66b;--scene-safe-button:#2f8a57;--scene-safe-edge:#1f5a39;--scene-safe-shadow:#17402a;--scene-warn:#f0a33a;--scene-warn-fill:#d9861f;--scene-warn-edge:#8a5210;--scene-warn-shadow:#67400c;--scene-cost:#9a958a;--scene-cost-outline:#e8e1cf;--scene-cost-crack:#3b3a36;--scene-cost-bg:#4a4d52;--scene-muted:#fff4dc73;--scene-parchment:#f3e6c4;--scene-parchment-edge:#b88a3e;--scene-parchment-ink:#3b2a17;--scene-wood:#6b4426;--scene-wood-dark:#3d2513;--scene-wood-light:#8a5a33;--scene-panel:#203428eb;--scene-panel-shadow:#142019;--scene-ink:#12231b;--scene-text:#fff4dc;--scene-font:Nunito,"Microsoft YaHei","PingFang SC",sans-serif;--scene-heading:Alegreya,"Songti SC",serif}:is(html:has(#app),body:has(#app)){background:var(--scene-ink);height:100%;margin:0;overflow:hidden}#app[data-screen=home] .home-screen{height:100dvh;min-height:0;font-family:var(--scene-font)}#app[data-screen=home] .home-content{min-height:0}#app[data-screen=home] .home-brand h1{font-family:var(--scene-heading)}#app[data-screen=home] :is(.home-eyebrow,.home-play-note,.home-campaign-meta,.home-future small,.home-world-note){font-size:12px}#app[data-screen=home] :is(button,.home-tagline,.home-play-note,.home-campaign-meta,.home-future small){font-family:var(--scene-font)}@media (orientation:portrait) and (height<=700px){#app[data-screen=home] .home-screen{padding:18px 22px}#app[data-screen=home] .home-brand{margin:0}#app[data-screen=home] .home-brand h1{font-size:48px}#app[data-screen=home] .home-tagline{margin:10px 0 12px}#app[data-screen=home] .home-modes{gap:8px}#app[data-screen=home] .home-modes button{min-height:48px}#app[data-screen=home] .home-tools{margin:4px 0 0}}#app.scene-ui[data-screen=game]{max-width:none;height:100dvh;min-height:0;font:800 16px/1.35 var(--scene-font);color:var(--scene-text);background:radial-gradient(at 50% 55%,#12231b8c,#12231b99),url(/art/menu/village-dawn-v1.webp) 50%/cover;margin:0;overflow:hidden}#app.scene-ui .game-layout{background:0 0;max-width:none;height:100%;min-height:0;margin:0;padding:0;display:block}#app.scene-ui .sr-only{position:fixed;top:0;left:0}#app.scene-ui :is(button,.hero-life,.scene-title>span){font-family:var(--scene-font)}#app.scene-ui .playfield{grid-template-rows:76px 1fr;height:100%;padding:0 24px 20px;display:grid;position:relative;overflow:hidden}#app.scene-ui .scene-header{z-index:3;align-items:center;gap:18px;min-width:0;display:flex}#app.scene-ui .scene-pause{border:2px solid var(--scene-gold);width:52px;height:52px;color:var(--scene-gold);background:var(--scene-panel);box-shadow:0 4px 0 var(--scene-panel-shadow);border-radius:50%;flex:none}#app.scene-ui .scene-pause svg{fill:none;stroke:currentColor;stroke-width:4px;width:24px;height:24px}#app.scene-ui .scene-title{min-width:0;max-width:28vw}#app.scene-ui .scene-title h2{font:800 clamp(18px,2vw,30px)/1.1 var(--scene-heading);box-shadow:none;color:var(--scene-text);background:0 0;border:0;margin:0;padding:0}#app.scene-ui .scene-title>span{color:var(--scene-muted);font-size:12px}#app.scene-ui .turn-counter{font:800 16px var(--scene-font);color:var(--scene-gold);background:var(--scene-panel);border-radius:8px;padding:8px}#app.scene-ui .goal-chips{flex:none;gap:8px;margin:0 0 0 auto;display:flex}#app.scene-ui .goal-chip{background:var(--scene-panel);min-width:60px;min-height:48px;color:var(--scene-text);border:1px solid var(--scene-gold-edge);font-size:12px}#app.scene-ui .goal-chip span{white-space:normal;overflow-wrap:anywhere;font-size:12px}#app.scene-ui .goal-chip b{color:var(--scene-gold);font-size:18px}:is(#app.scene-ui .tactical-stage,#app.scene-ui .tactical-stage:has(.choice-actions)){--board-side:min(900px,calc(100dvh - 120px),calc(100vw - 560px));grid-template-columns:minmax(0,1fr) var(--board-side) minmax(0,1fr);align-items:center;gap:40px;width:100%;max-width:none;height:100%;margin:0;display:grid}#app.scene-ui .stage-controls{display:contents}#app.scene-ui .board-surround{width:var(--board-side);grid-area:1/2;max-width:none;margin:0;position:relative}#app.scene-ui .column-labels,#app.scene-ui .row-labels{display:none}#app.scene-ui .board-row{display:block}#app.scene-ui .board-frame{border:3px solid var(--scene-wood-light);background:var(--scene-wood);width:100%;box-shadow:inset 0 2px 2px #ffe1a944,0 6px 0 var(--scene-wood-dark),0 18px 30px #06180e77;border-radius:12px;padding:12px}#app.scene-ui .board{aspect-ratio:1;border:0;width:100%}#app.scene-ui .hero-strip{flex-direction:column;grid-area:1/1;justify-self:end;gap:16px;width:100%;max-width:230px;margin:0;display:flex}#app.scene-ui .hero-card{background:var(--scene-panel);border:2px solid var(--scene-wood-light);min-height:88px;color:var(--scene-text);box-shadow:0 4px 0 var(--scene-panel-shadow);border-radius:12px;flex:none;margin:0;padding:10px;display:flex}#app.scene-ui .hero-card>span:not(.art):not(.hero-life){display:block}#app.scene-ui .hero-card strong{color:var(--scene-text);font-size:16px}#app.scene-ui .hero-card small{color:var(--scene-text);font-size:12px}#app.scene-ui .hero-card>.art{width:64px;height:64px}#app.scene-ui .hero-card .hero-life{color:var(--scene-text);font-size:16px}#app.scene-ui .hero-card .hero-life small{font-size:12px}#app.scene-ui .scene-rail{flex-direction:column;grid-area:1/3;justify-content:center;align-self:center;gap:24px;width:100%;max-width:232px;display:flex}#app.scene-ui .command-dock{box-shadow:none;background:0 0;border:0;width:100%;min-width:0;margin:0;padding:0}#app.scene-ui .command-actions.turn-actions{flex-wrap:wrap;gap:12px;display:flex}#app.scene-ui .turn-actions>.button{min-width:44px;min-height:64px;font:800 16px var(--scene-font);background:var(--scene-parchment);color:var(--scene-parchment-ink);border:2px solid var(--scene-parchment-edge);border-radius:12px;flex:1;padding:8px}#app.scene-ui .turn-actions>[data-end]{background:var(--scene-safe-button);border-color:var(--scene-safe-edge);min-height:88px;box-shadow:0 5px 0 var(--scene-safe-shadow);color:var(--scene-text);flex-basis:100%}#app.scene-ui .turn-actions>[data-end][data-risk=danger]{background:var(--scene-danger-fill);border-color:var(--scene-danger-edge);box-shadow:0 5px 0 var(--scene-danger-edge)}#app.scene-ui .turn-actions>[data-end][data-risk=caution]{background:var(--scene-warn-fill);border-color:var(--scene-warn-edge);box-shadow:0 5px 0 var(--scene-warn-shadow);color:var(--scene-parchment-ink)}#app.scene-ui .compact-hints{gap:8px;margin:0;display:flex}#app.scene-ui .compact-hints .hint-button{min-height:48px;font:800 12px var(--scene-font);background:var(--scene-parchment);color:var(--scene-parchment-ink);border:2px solid var(--scene-parchment-edge);border-radius:10px;padding:8px}#app.scene-ui .compact-hints .hint-button:before{display:none}#app.scene-ui .scene-instruction{max-width:50%;font:800 16px/1.25 var(--scene-font);background:var(--scene-parchment);color:var(--scene-parchment-ink);z-index:2;text-align:center;border-radius:8px;margin:0;padding:5px 12px;position:absolute;top:70px;left:50%;transform:translate(-50%)}#app.scene-ui .scene-archive[hidden]{display:none}#app.scene-ui .pause-menu .scene-archive{gap:16px;display:grid}#app.scene-ui .pause-menu .topbar{flex-wrap:wrap;gap:8px;max-width:none;min-height:0;margin:0;padding:8px;display:flex}#app.scene-ui .pause-menu .topbar nav,#app.scene-ui .pause-menu .header-settings{flex-wrap:wrap;gap:8px;display:flex}#app.scene-ui .pause-menu .brand{display:none}#app.scene-ui .pause-menu .explanations{overscroll-behavior:auto;width:auto;max-height:none;margin:0;display:block;position:static;overflow:visible}#app.scene-ui .pause-menu .coach{width:100%;font-size:16px;display:flex}#app.scene-ui .pause-menu .lesson-heading,#app.scene-ui .pause-menu .compact-hints{display:none}#app.scene-ui .modal{font-family:var(--scene-font);color:var(--scene-parchment-ink);background:var(--scene-parchment);max-height:calc(100dvh - 32px);font-size:16px}#app.scene-ui .modal :is(button,summary,select,input){min-width:44px;min-height:44px}#app.scene-ui .modal :is(p,li){font-size:16px}#app.scene-ui .modal :is(small,label){font-size:12px}#app.scene-ui button:focus-visible{outline:3px solid var(--scene-gold);outline-offset:3px}#app.scene-ui .enemy-number{box-sizing:border-box;background:var(--scene-danger-fill);width:clamp(18px,3.4cqw,30px);min-width:clamp(18px,3.4cqw,30px);height:clamp(18px,3.4cqw,30px);padding:0;font-size:clamp(12px,1.9cqw,18px)}#app.scene-ui .intent-group.friendly{color:var(--scene-friendly-fire)}#app.scene-ui .arrow-head.friendly{stroke:var(--scene-friendly-fire)}#app.scene-ui .intent-group:is(.danger,.hero-danger){color:var(--scene-danger)}#app.scene-ui .intent-group.miss{color:var(--scene-muted)}#app.scene-ui .arrow-head:is(.danger,.hero-danger){stroke:var(--scene-danger)}#app.scene-ui .cell.attackable:after{border-color:var(--scene-gold);background:#f2c14e22}@media (orientation:landscape) and (height<=600px){#app.scene-ui .playfield{grid-template-rows:64px 1fr;padding:0 16px 16px}:is(#app.scene-ui .tactical-stage,#app.scene-ui .tactical-stage:has(.choice-actions)){--board-side:min(calc(100dvh - 90px),calc(100vw - 408px));gap:16px}#app.scene-ui .hero-card{gap:4px;min-height:64px;padding:6px}#app.scene-ui .hero-card>.art{width:44px;height:44px}#app.scene-ui .hero-card strong,#app.scene-ui .hero-card>span>small{display:none}#app.scene-ui .hero-strip{gap:10px}#app.scene-ui .scene-rail{gap:12px;max-width:180px}#app.scene-ui .turn-actions>.button{min-height:48px;font-size:12px}#app.scene-ui .turn-actions>[data-end]{min-height:64px;font-size:16px}#app.scene-ui .scene-instruction{max-width:46%;padding:3px 8px;font-size:12px;top:58px}#app.scene-ui .scene-header{gap:10px}#app.scene-ui .scene-title h2{font-size:18px}}@media (orientation:portrait){#app.scene-ui .playfield{padding:0 12px;display:block}#app.scene-ui .scene-header{align-items:flex-start;gap:12px;height:116px;padding-top:14px;position:relative}#app.scene-ui .scene-pause{width:46px;height:46px}#app.scene-ui .scene-title{max-width:48%;position:absolute;top:78px;left:0}#app.scene-ui .scene-title h2{font-size:18px}#app.scene-ui .scene-title>span{display:none}#app.scene-ui .turn-counter{min-height:44px;font-size:14px}#app.scene-ui .goal-chips{gap:4px;position:absolute;top:68px;right:0}#app.scene-ui .goal-chip{min-width:44px;padding:4px;font-size:12px;display:grid}#app.scene-ui .goal-chip b{font-size:16px}#app.scene-ui .goal-chip span{max-width:52px}:is(#app.scene-ui .tactical-stage,#app.scene-ui .tactical-stage:has(.choice-actions)){--board-side:calc(100vw - 24px);grid-template-columns:1fr;grid-template-rows:var(--board-side) 72px 64px;gap:18px;width:100%;height:auto;padding-top:12px;display:grid}#app.scene-ui .board-surround{grid-area:1/1;width:100%}#app.scene-ui .board-frame{border-width:3px;padding:6px}#app.scene-ui .hero-strip{flex-direction:row;grid-area:2/1;gap:8px;width:100%;max-width:none;height:72px}#app.scene-ui .hero-card{flex:1;justify-content:center;gap:2px;min-height:64px;padding:4px}#app.scene-ui .hero-card>.art{width:44px;height:44px}#app.scene-ui .hero-card strong,#app.scene-ui .hero-card>span>small{display:none}#app.scene-ui .hero-life{margin:0;font-size:16px}#app.scene-ui .hero-life small{font-size:12px}#app.scene-ui .scene-rail{display:contents}#app.scene-ui .command-dock{grid-area:3/1;width:100%}#app.scene-ui .command-actions.turn-actions{flex-wrap:nowrap;gap:8px;height:64px}#app.scene-ui .turn-actions>.button{flex:0 0 56px;min-height:64px;font-size:12px}#app.scene-ui .turn-actions>[data-end]{flex:1;min-height:64px;font-size:18px}#app.scene-ui .compact-hints{position:absolute;top:14px;right:12px}#app.scene-ui .hint-button{width:56px;min-height:46px}#app.scene-ui .scene-rail .hint-button[data-hint=three]{display:none}#app.scene-ui .scene-instruction{width:calc(100% - 32px);max-width:none;font-size:16px;top:auto;bottom:24px}#app.scene-ui .ally-actions{position:absolute;bottom:70px;left:12px;right:12px}}@media (orientation:portrait) and (height<=700px){#app.scene-ui .scene-header{gap:6px;height:64px;padding-top:10px}#app.scene-ui .scene-pause{width:44px;height:44px}#app.scene-ui .scene-title{display:none}#app.scene-ui .turn-counter{white-space:normal;max-width:60px;padding:4px;font-size:12px}#app.scene-ui .goal-chips{gap:2px;margin-left:auto;margin-right:52px;position:static}#app.scene-ui .goal-chip{min-width:44px;min-height:44px;padding:2px;font-size:12px}#app.scene-ui .goal-chip span{display:none}:is(#app.scene-ui .tactical-stage,#app.scene-ui .tactical-stage:has(.choice-actions)){grid-template-rows:var(--board-side) 64px 56px;gap:12px;padding-top:0}#app.scene-ui .hero-strip{height:64px}#app.scene-ui .command-actions.turn-actions{height:56px}#app.scene-ui .turn-actions>.button,#app.scene-ui .turn-actions>[data-end]{min-height:56px}#app.scene-ui .compact-hints{top:10px}#app.scene-ui .hint-button{width:44px;min-height:44px;padding:3px}#app.scene-ui .scene-instruction{padding:4px 8px;font-size:12px;bottom:28px}}#app.scene-ui .hud-icon{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:24px;height:24px}#app.scene-ui .goal-chips{align-items:center;gap:12px}#app.scene-ui .goal-chip{width:64px;min-width:44px;height:72px;min-height:44px;box-shadow:none;color:var(--scene-gold);background:0 0;border:0;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:2px 4px;display:flex}#app.scene-ui .goal-chip .hud-star{width:40px;height:40px;fill:var(--scene-panel);stroke:var(--scene-gold);stroke-width:1.6px;filter:drop-shadow(0 3px 1px var(--scene-panel-shadow))}#app.scene-ui .goal-chip.goal-met .hud-star{fill:var(--scene-gold)}#app.scene-ui .goal-chip.goal-missed .hud-star{fill:var(--scene-cost);stroke:var(--scene-cost-outline)}#app.scene-ui .goal-chip .hud-condition{color:var(--scene-text);font:900 12px/1 var(--scene-font);white-space:nowrap;overflow-wrap:normal;align-items:center;gap:3px;display:flex}#app.scene-ui .hud-condition .hud-icon{width:18px;height:18px}#app.scene-ui .goal-chip .hud-count{font:900 12px/1 var(--scene-font);white-space:nowrap;display:inline}#app.scene-ui .turn-flags{background:0 0;align-items:center;gap:6px;max-width:none;padding:0;display:flex}#app.scene-ui .turn-flag{color:var(--scene-gold);filter:drop-shadow(0 2px 1px var(--scene-panel-shadow))}#app.scene-ui .turn-flag .hud-icon{fill:currentColor;width:28px;height:36px;stroke:var(--scene-gold-edge);stroke-width:1px}#app.scene-ui .turn-flag.current{filter:drop-shadow(0 0 5px #f2c14e88)}#app.scene-ui .hero-card{grid-template-rows:auto auto;grid-template-columns:64px 1fr;gap:0 12px;padding:10px 14px;display:grid;position:relative}#app.scene-ui .hero-card .hero-portrait{grid-area:1/1/3;width:64px;height:64px;display:block}#app.scene-ui .hero-portrait>.art{width:100%;height:100%}#app.scene-ui .hero-card .hero-name{font:900 16px var(--scene-font);grid-area:1/2;display:block}#app.scene-ui .hero-card .hud-hearts{color:var(--scene-danger);grid-area:2/2;align-items:center;gap:3px;display:flex}#app.scene-ui .hud-hearts .hud-icon{width:18px;height:18px}#app.scene-ui .hud-hearts .full{fill:var(--scene-danger);stroke:var(--scene-danger-edge)}#app.scene-ui .hud-hearts .empty{fill:var(--scene-ink);stroke:var(--scene-muted)}#app.scene-ui .hero-card[data-readiness=spent] .art{filter:none}#app.scene-ui .unit.hero[data-readiness=spent]>.art{filter:saturate(.3);opacity:.6}#app.scene-ui .hero-done{color:var(--scene-text);position:absolute;top:3px;right:4px}#app.scene-ui .hero-done .hud-icon{width:18px;height:18px}#app.scene-ui .scene-tools{gap:12px;display:flex}#app.scene-ui .scene-tool{border:2px solid var(--scene-parchment-edge);background:var(--scene-parchment);width:64px;min-width:44px;height:64px;min-height:44px;color:var(--scene-parchment-ink);border-radius:12px;flex:none;justify-content:center;align-items:center;padding:8px;display:flex;box-shadow:0 4px #78582f}#app.scene-ui .scene-tool:disabled{opacity:var(--ghost-low,.5)}#app.scene-ui .scene-tool .hud-icon{width:30px;height:30px}#app.scene-ui .scene-tool:enabled:active{transform:translateY(2px);box-shadow:0 2px #78582f}#app.scene-ui .turn-actions>[data-end]{font:900 23px/1.15 var(--scene-font);justify-content:center;align-items:center;gap:12px;min-width:0;padding:12px;display:flex;position:relative}#app.scene-ui .turn-actions>[data-end]>.hud-icon{width:30px;height:30px}#app.scene-ui .end-house-badge{border:2px solid var(--scene-parchment-edge);background:var(--scene-text);min-height:28px;color:var(--scene-safe-edge);font:900 16px var(--scene-font);border-radius:8px;align-items:center;gap:4px;padding:4px 8px;display:flex;position:absolute;top:-16px;right:6px;box-shadow:0 3px 3px #14201955}#app.scene-ui [data-end][data-risk=danger] .end-house-badge{color:var(--scene-danger-fill);border-color:var(--scene-danger-edge)}#app.scene-ui [data-end][data-risk=caution] .end-house-badge{color:var(--scene-warn-edge);border-color:var(--scene-warn)}#app.scene-ui .end-house-badge .hud-icon{width:20px;height:20px}#app.scene-ui .end-house-badge b{font:inherit;color:inherit}@media (orientation:landscape) and (height<=600px){#app.scene-ui .goal-chip{width:52px;height:56px}#app.scene-ui .goal-chip .hud-star{width:30px;height:30px}#app.scene-ui .hero-card{grid-template-columns:44px 1fr;column-gap:6px;height:64px;min-height:64px;padding:6px}#app.scene-ui .hero-card .hero-portrait{width:44px;height:44px}#app.scene-ui .hero-card .hero-name{display:none}#app.scene-ui .hero-card .hud-hearts{flex-wrap:wrap;grid-row:1/3}#app.scene-ui .scene-tools{gap:12px}#app.scene-ui .scene-tool{width:48px;height:48px}#app.scene-ui .scene-tool .hud-icon{width:26px;height:26px}#app.scene-ui .turn-actions>[data-end]{gap:8px;font-size:18px}#app.scene-ui .scene-rail{gap:24px}}@media (orientation:portrait){#app.scene-ui .scene-header .goal-chips{gap:4px;top:66px;right:0}#app.scene-ui .goal-chip{width:48px;height:56px;padding:0 2px}#app.scene-ui .goal-chip .hud-star{width:30px;height:30px}#app.scene-ui .hero-card{flex-direction:column;justify-content:center;gap:0;padding:3px;display:flex;position:relative}#app.scene-ui .hero-card .hero-portrait{width:44px;height:44px}#app.scene-ui .hero-card .hud-hearts{gap:2px;display:flex}#app.scene-ui .hero-card .hero-name{display:none}#app.scene-ui .hud-hearts .hud-icon{width:16px;height:16px}#app.scene-ui .scene-rail{flex-direction:row;grid-area:3/1;align-items:center;gap:8px;width:100%;max-width:none;height:64px;display:flex}#app.scene-ui .scene-tools{flex:none;gap:8px;display:flex}#app.scene-ui .scene-tool{width:56px;height:64px}#app.scene-ui .scene-tool[data-hint]{z-index:3;width:46px;height:46px;position:fixed;top:14px;right:12px}#app.scene-ui .command-dock{flex:1;width:auto;min-width:0}#app.scene-ui .turn-actions>[data-end]{gap:8px;width:100%;min-height:64px;font-size:20px}#app.scene-ui .turn-actions>[data-end]>.hud-icon{width:24px;height:24px}#app.scene-ui .end-house-badge{min-height:24px;padding:2px 5px;font-size:12px;top:-12px}#app.scene-ui .end-house-badge .hud-icon{width:16px;height:16px}}@media (orientation:portrait) and (height<=700px){#app.scene-ui .scene-header .goal-chips{gap:0;margin-left:auto;margin-right:52px;position:static}#app.scene-ui .goal-chip{gap:0;width:44px;height:44px}#app.scene-ui .goal-chip .hud-star{width:25px;height:25px}#app.scene-ui .goal-chip .hud-condition{font-size:12px;display:flex}#app.scene-ui .hud-condition .hud-icon{width:14px;height:14px}#app.scene-ui .turn-flags{gap:2px}#app.scene-ui .turn-flag .hud-icon{width:18px;height:28px}#app.scene-ui .scene-tool[data-hint]{width:44px;height:44px;top:10px}#app.scene-ui .scene-tool,#app.scene-ui .scene-rail{height:56px}#app.scene-ui .turn-actions>[data-end]{min-height:56px;font-size:18px}}@font-face{font-family:DG Han;src:url(/fonts/dg-han-700.woff)format("woff");font-weight:100 800;font-display:swap}@font-face{font-family:DG Han;src:url(/fonts/dg-han-900.woff)format("woff");font-weight:900 1000;font-display:swap}html:lang(zh){--scene-font:"DG Han",Nunito,"Microsoft YaHei","PingFang SC",sans-serif;--scene-heading:var(--scene-font)}html:lang(zh) #app[data-screen] *{font-family:var(--scene-font)!important}html:lang(zh) #app[data-screen] :is(button,strong,b,summary){font-weight:700!important}html:lang(zh) #app[data-screen] :is(h1,h2,h3){font-weight:900!important}#app.scene-ui[data-screen=game]{isolation:isolate;background:var(--scene-ink);position:relative}#app.scene-ui[data-screen=game]:before{content:"";z-index:-2;pointer-events:none;filter:blur(5px)brightness(.5);background:url(/art/menu/village-empty-v1.webp) 50%/cover;position:absolute;inset:0}#app.scene-ui[data-screen=game]:after{content:"";z-index:-1;pointer-events:none;background:radial-gradient(#12231b10 20%,#12231b8c 70%,#12231bc7 100%);position:absolute;inset:0}#app.scene-ui .danger-tile{z-index:4;box-shadow:inset 0 0 0 3px var(--scene-danger);pointer-events:none;background:#e5484d47;position:absolute;inset:0}#app.scene-ui .board .intents{z-index:12;overflow:hidden}#app.scene-ui .intents .intent-group:is(.danger,.hero-danger){opacity:1;color:var(--scene-danger)}#app.scene-ui .intents .intent-group:is(.danger,.hero-danger) .intent{stroke:var(--scene-danger);stroke-width:4px;stroke-dasharray:none;opacity:1;vector-effect:non-scaling-stroke}#app.scene-ui .intents .arrow-head:is(.danger,.hero-danger){stroke:none;fill:var(--scene-danger)!important}#app.scene-ui .intents .intent-group.friendly .intent{stroke:var(--scene-friendly-fire);stroke-width:3px;stroke-dasharray:8 6;vector-effect:non-scaling-stroke}#app.scene-ui .intents .arrow-head.friendly{stroke:none;fill:var(--scene-friendly-fire)!important}#app.scene-ui .intents .intent-group.miss .intent{stroke:var(--scene-muted);stroke-dasharray:3 7;stroke-width:2px;vector-effect:non-scaling-stroke}#app.scene-ui .intents .arrow-head.miss{stroke:none;fill:var(--scene-muted)!important}#app.scene-ui .board :is(.hp.hero,.hero-actions){display:none}#app.scene-ui .unit.hero:not([data-readiness=spent])>.art{filter:drop-shadow(0 0 4px #f2c14eb3)drop-shadow(0 0 8px #f2c14e66)}#app.scene-ui .hero-card:not([data-readiness=spent]){border-color:var(--scene-gold-outline);box-shadow:0 0 10px #f2c14e33,0 4px 0 var(--scene-panel-shadow)}#app.scene-ui .hero-card.chosen{border-color:var(--scene-gold);box-shadow:0 0 20px #f2c14e88,0 4px 0 var(--scene-panel-shadow)}#app.scene-ui .scene-title>span{font:800 14px/18px var(--scene-font);color:var(--scene-text);text-shadow:0 2px 2px #07170f,0 0 6px #07170f;display:block}#app.scene-ui .turn-flags{background:#142019e6;border:1px solid #e7b84a99;border-radius:8px;justify-content:center;align-items:center;min-height:44px}#app.scene-ui .turn-flag.future{opacity:.75}#app.scene-ui .turn-flag.future .hud-icon{fill:var(--scene-parchment);stroke:var(--scene-gold-outline)}#app.scene-ui .turn-actions{box-shadow:none;background:0 0;outline:0}@media (orientation:portrait){#app.scene-ui .scene-title h2{display:none}#app.scene-ui .scene-title>span{white-space:nowrap;font-size:12px;line-height:18px;display:block}#app.scene-ui .scene-title{max-width:calc(100% - 160px)}}@media (orientation:portrait) and (height<=700px){#app.scene-ui .turn-flags{justify-content:center;align-items:center;gap:2px;max-width:90px;height:36px;min-height:36px;padding:2px 4px}#app.scene-ui .turn-flag{justify-content:center;align-items:center;height:30px;display:flex}#app.scene-ui .turn-flag .hud-icon{width:24px;height:30px}#app.scene-ui .scene-title{max-width:96px;display:block;top:44px;left:50px}#app.scene-ui .scene-title>span{font-size:12px;line-height:16px}}#app[data-screen=home] .home-tagline,#app[data-screen] :is(.mode-note,.upgrade-offers span,.mode-modal>p){font-size:16px}#app[data-screen] .daily-calendar small{font-size:12px}@media (width<=420px){#app[data-screen] .daily-hub{width:calc(100vw - 24px);max-width:none;padding:12px 8px}.daily-calendar{gap:2px}.daily-calendar>button{min-width:44px;min-height:44px}}@media (orientation:landscape) and (width>=600px) and (width<=700px){#app.scene-ui .playfield{grid-template-rows:52px 1fr;padding:0 10px 10px}:is(#app.scene-ui .tactical-stage,#app.scene-ui .tactical-stage:has(.choice-actions)){--board-side:min(calc(100dvh - 72px),calc(100vw - 308px));gap:12px}#app.scene-ui .board-frame{border-width:2px;padding:4px}#app.scene-ui .scene-tools{gap:4px}#app.scene-ui .scene-tool{width:44px;height:44px}#app.scene-ui .scene-title h2{display:none}}#app.scene-ui .pause-menu .practice-nav{align-items:center;gap:8px;display:flex}#app.scene-ui .pause-menu :is(.practice-nav .text-button,[data-picker]){min-width:44px;min-height:44px;font:800 14px var(--scene-font)!important}#app.scene-ui .cell.reachable:after,#app.scene-ui .cell.reachable.attackable:after{background:color-mix(in srgb,var(--scene-safe) 40%,transparent);border:2px solid #b6f0bb}#app.scene-ui .cell.selected:after{border:4px solid var(--scene-gold);box-shadow:0 0 18px #f2c14e99}#app.scene-ui .cell.preview-target:after,#app.scene-ui .cell.reachable.preview-target:after{border:4px solid var(--scene-gold);background:#f2c14e33}#app.scene-ui .cell.blast-target:after,#app.scene-ui .cell.reachable.blast-target:after{border:4px solid var(--scene-blast);background:#ff9f1c55}#app.scene-ui .cell.range-muted:after{opacity:.3}#app.scene-ui .blast-neighbor-ring{border:3px solid var(--scene-gold);pointer-events:none;z-index:17;position:absolute;inset:2px}#app.scene-ui .cell.blast-neighbor:after,#app.scene-ui .cell.reachable.blast-neighbor:after{border:3px solid var(--scene-gold);background:0 0}#app.scene-ui .blast-reticle{z-index:20;fill:none;width:100%;height:100%;stroke:var(--scene-gold);stroke-width:3px;pointer-events:none;position:absolute;inset:0}#app.scene-ui .blast-reticle :is(path,circle){vector-effect:non-scaling-stroke}#app.scene-ui .move-dot{display:none}#app.scene-ui .selection-ranges{z-index:11;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}#app.scene-ui .selection-ranges .attack-ray{fill:none;stroke:var(--scene-gold);stroke-width:3px;stroke-dasharray:9 5;vector-effect:non-scaling-stroke}#app.scene-ui .selection-ranges .attack-end{fill:none;stroke:var(--scene-gold);stroke-width:3px;vector-effect:non-scaling-stroke}#app.scene-ui .board .intents .intent-group:is(.danger,.hero-danger) .intent{stroke-width:max(3px,calc(var(--board-side) / 120))}#app.scene-ui .board .intents .intent-target{stroke-width:max(3px,calc(var(--board-side) / 150));vector-effect:non-scaling-stroke}#app.scene-ui .board .action-preview-arrows{z-index:18;overflow:visible}#app.scene-ui .action-preview-arrows>path{fill:none;stroke:var(--scene-gold);stroke-width:4px;stroke-dasharray:none}#app.scene-ui .action-preview-arrows marker path{fill:var(--scene-gold);stroke:none}#app.scene-ui .action-preview-arrows .preview-flight{stroke-dasharray:10 7;animation:preview-flow var(--flow-duration,1s) linear infinite}#app.scene-ui .action-preview-arrows .preview-walk{stroke-dasharray:10 7}#app.scene-ui .path-step circle{fill:var(--scene-gold);stroke:var(--scene-gold-edge);stroke-width:2px}#app.scene-ui .path-step text{fill:var(--scene-parchment-ink);font:900 26px var(--scene-font);text-anchor:middle;dominant-baseline:central}#app.scene-ui .preview-mark.damage{min-width:0;min-height:0;box-shadow:none;color:#fff;text-shadow:-1px -1px 1px #18251c,1px 1px 1px #18251c,-1px 1px 1px #18251c,1px -1px 1px #18251c;font:900 clamp(12px,1.4vw,20px)/1 var(--scene-font);z-index:3;background:0 0;border:0;padding:0;transform:translate(-100%,-100%)}#app.scene-ui .preview-mark.damage.collateral{color:var(--scene-danger);background:0 0}#app.scene-ui .preview-mark:is(.defeat,.water){box-shadow:none;width:calc(var(--cell-size)*.6);height:calc(var(--cell-size)*.6);z-index:2;background:0 0;border:0;padding:0;transform:translate(-50%,-55%)}#app.scene-ui .defeat-cross{fill:none;stroke-linecap:round;width:100%;height:100%}#app.scene-ui .defeat-cross .cross-outline{stroke:#241b13;stroke-width:8px}#app.scene-ui .defeat-cross .cross-ink{stroke:var(--scene-danger);stroke-width:5px}#app.scene-ui .preview-mark.safe-house{width:calc(var(--cell-size)*.25);height:calc(var(--cell-size)*.25);min-width:0;min-height:0;color:var(--scene-safe);background:var(--scene-text);border:1px solid var(--scene-safe-edge);border-radius:50%;padding:1px;transform:translate(calc(-100% - 3px),3px);box-shadow:0 1px 2px #07170f}#app.scene-ui .safe-house svg{fill:none;width:100%;height:100%;stroke:var(--scene-safe-edge);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}#app.scene-ui .move-cost{z-index:34;background:var(--scene-cost-bg);border:1px solid var(--scene-cost-outline);min-height:18px;color:var(--scene-cost-outline);font:900 clamp(14px,calc(var(--cell-size)*.14),20px)/1 var(--scene-font);white-space:nowrap;pointer-events:none;border-radius:4px;align-items:center;gap:2px;padding:1px 3px;display:flex;position:absolute;transform:none}#app.scene-ui .move-cost :is(.cost-star,.hud-icon){flex:none;width:12px;height:12px}#app.scene-ui .cost-star{width:22px;height:22px;fill:var(--scene-cost);stroke:var(--scene-cost-outline);stroke-width:1.5px}#app.scene-ui .cost-star .crack{fill:none;stroke:var(--scene-cost-crack);stroke-width:2px}#app.scene-ui .cost-star .boot-icon{fill:none}#app.scene-ui .goal-chip.goal-missed .hud-star{animation:.3s ease-out cost-shake}#app.scene-ui .hero-ability{pointer-events:none;grid-column:1/-1;width:100%;height:44px}#app.scene-ui .hero-ability rect{fill:#ff9f1c66;stroke:var(--scene-blast);stroke-width:2px}#app.scene-ui .hero-ability path{fill:none;stroke:var(--scene-gold);stroke-width:2px}#app.scene-ui .hero-moves{height:16px;font:900 12px var(--scene-font);grid-column:1/-1;align-items:center;gap:3px;display:flex!important}#app.scene-ui .hero-moves i{background:var(--scene-safe);border-radius:2px;width:12px;height:12px}#app.scene-ui .hero-moves i.over-budget{background:var(--scene-cost)}#app.scene-ui .hero-moves i.budget-edge{border-left:2px solid var(--scene-gold);margin-left:3px}#app.scene-ui .hero-moves .hud-icon{width:16px;height:16px}#app.scene-ui .ghost{animation:ghost-breathe var(--timing-breath,1.4s) ease-in-out infinite;border:3px solid var(--scene-gold);background:0 0}@keyframes ghost-breathe{0%,to{opacity:var(--ghost-low,.5)}50%{opacity:var(--ghost-high,.72)}}#app.scene-ui .cannon-choice{--face-top:0px;--face-bottom:0px;box-shadow:none;background:0 0;border-radius:8px;gap:4px;display:flex;overflow:visible}#app.scene-ui .cannon-choice .cannon-option{width:auto;min-width:44px;height:48px;min-height:48px;font:900 16px var(--scene-font);flex:1;padding:0}#app.scene-ui .cannon-choice .cannon-option[aria-pressed]:before{background:var(--scene-parchment);border:2px solid var(--scene-parchment-edge);border-radius:6px;inset:0}#app.scene-ui .cannon-choice .cannon-option:after{display:none}#app.scene-ui .cannon-choice .cannon-option{color:var(--scene-parchment-ink);text-shadow:none}#app.scene-ui .cannon-choice .cannon-option[aria-pressed=true]:before{background:var(--scene-safe-button);border-color:var(--scene-gold)}#app.scene-ui .cannon-choice .cannon-option[aria-pressed=true]{color:var(--scene-text)}#app.scene-ui .cannon-choice:after{display:none}#app.scene-ui .hero-strip{position:relative;overflow:visible}#app.scene-ui .choice-placeholder{visibility:hidden}#app.scene-ui .hero-strip>.cannon-choice{z-index:60;gap:8px;position:absolute}#app.scene-ui .board .enemy-number{z-index:36;top:3%;left:3%}#app.scene-ui :is(.move-preview-route,.move-preview-steps){pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}#app.scene-ui .move-preview-route{z-index:4}#app.scene-ui .move-preview-steps{z-index:19}#app.scene-ui .preview-walk{fill:none;stroke:var(--scene-gold);stroke-width:3px;stroke-dasharray:8 6;vector-effect:non-scaling-stroke}#app.scene-ui .scene-round-group{flex-direction:column;flex:none;align-items:flex-start;gap:2px;display:flex}#app.scene-ui .round-puzzle-number{font:800 12px/16px var(--scene-font);color:var(--scene-text);text-shadow:0 2px 2px #07170f,0 0 6px #07170f;white-space:nowrap}#app.scene-ui .hud-star .star-crack{fill:none;stroke:var(--scene-cost-crack);stroke-width:2px}#app.scene-ui .landing-shadow{fill:#12231b99;transform-box:fill-box;transform-origin:50%;animation:.32s ease-in forwards landing-shadow}@keyframes landing-shadow{0%{opacity:.2;transform:scale(.3)}to{opacity:.8;transform:scale(1)}}#app.scene-ui .board .attack-effects{z-index:24}#app.scene-ui .board .outcome-feedback{z-index:30}#app.scene-ui [data-teaching-dim=true],#app.scene-ui .turn-actions>[data-end][data-teaching-dim=true]{opacity:.3}#app.scene-ui [data-teaching-dim=true]:is(.hero-card,[data-end]){box-shadow:none}#app.scene-ui .hero-card[data-readiness=spent]{filter:none;opacity:1}#app.scene-ui .hero-card[data-readiness=spent] .hero-portrait{filter:saturate(.3);opacity:.6}#app.scene-ui .hero-card[data-readiness=spent] .hero-name{color:#f7f4e8;text-shadow:0 1px 2px #07170f}#app.scene-ui .scene-tool:disabled{opacity:.3;filter:grayscale();box-shadow:none;cursor:default}#app.scene-ui .cell.teaching-unrelated:before{content:"";z-index:2;pointer-events:none;background:#00000029;position:absolute;inset:0}#app.scene-ui[data-teaching=true] .cell:not(.teaching-unrelated).reachable:not(.blast-target):after{background:0 0}#app.scene-ui .scene-instruction[data-teaching-bar]{white-space:nowrap;z-index:4;justify-content:center;align-items:center;gap:8px;width:max-content;max-width:none;min-height:36px;max-height:44px;padding:4px 10px;display:flex;top:12px;bottom:auto;font:900 22px/1.2 var(--scene-font)!important}#app.scene-ui .teaching-hand{fill:#fff;stroke:#5b482b;stroke-width:1.4px;flex:none;width:24px;height:28px}#app.scene-ui .teaching-dots{align-items:center;gap:4px;display:flex}#app.scene-ui .teaching-dots i{border:1px solid var(--scene-parchment-edge);background:#a89c7c;border-radius:50%;width:7px;height:7px}#app.scene-ui .teaching-dots i.current{background:var(--scene-gold);box-shadow:0 0 5px #a87918}#app.scene-ui .teaching-dots i.done{background:var(--scene-safe)}#app.scene-ui .cell.guided{overflow:visible}#app.scene-ui .cell.guided:after{border:3px solid var(--scene-gold);animation:tutorial-glow var(--timing-breath,1.4s) ease-in-out infinite;box-shadow:inset 0 0 12px #f2c14e88,0 0 16px 4px #f2c14ecc}#app.scene-ui .cell.guided .unit:before{content:"";border:3px solid var(--scene-gold);animation:tutorial-glow var(--timing-breath,1.4s) ease-in-out infinite;pointer-events:none;border-radius:50%;position:absolute;inset:8%;box-shadow:0 0 12px 5px #f2c14eb3,inset 0 0 8px #f2c14e88}#app.scene-ui .tutorial-beacon{pointer-events:none;z-index:40;position:absolute;inset:0}#app.scene-ui .tutorial-beacon .teaching-hand{filter:drop-shadow(0 2px 2px #07170f);width:45%;height:50.625%;animation:tap-float var(--timing-breath,1.4s) ease-in-out infinite;position:absolute;bottom:4%;left:50%;transform:translate(-50%)}#app.scene-ui .cell .tutorial-beacon .teaching-hand{--tap-lift:clamp(2px,calc(var(--cell-size)*.05),6px);bottom:-8%;left:90%;rotate:-35deg}#app.scene-ui .cell .tap-ripple{width:30%;height:30%}#app.scene-ui .cannon-option>.tutorial-beacon{width:44px;height:48px;inset:auto -22px -6px auto}#app.scene-ui .cannon-option>.tutorial-beacon .teaching-hand{width:28px;height:32px;bottom:0;rotate:-25deg}#app.scene-ui .cannon-option>.tutorial-beacon .tap-ripple{width:24px;height:24px}#app.scene-ui .tap-ripple{fill:none;stroke:#fff;stroke-width:2px;filter:drop-shadow(0 1px 2px #07170f);width:46%;height:46%;animation:tap-ripple var(--timing-breath,1.4s) ease-out infinite;position:absolute;top:45%;left:50%;transform:translate(-50%,-50%)}#app.scene-ui [data-end]>.tutorial-beacon{width:40px;left:auto;right:2px}#app.scene-ui [data-end]>.tutorial-beacon .teaching-hand{width:28px;height:32px}#app.scene-ui [data-end]>.tutorial-beacon .tap-ripple{width:30px;height:30px;top:calc(96% - 30px)}#app.scene-ui .teaching-ready{animation:.5s ease-out teaching-ready}@keyframes tutorial-glow{0%,to{box-shadow:inset 0 0 8px #f2c14e66,0 0 12px 3px #f2c14e99}50%{box-shadow:inset 0 0 14px #f2c14ebb,0 0 24px 7px #f2c14eee}}@keyframes tap-float{0%,to{transform:translate(-50%)}50%{transform:translate(-50%,calc(-1 * var(--tap-lift,8px)))}}@keyframes tap-ripple{0%{opacity:.9;transform:translate(-50%,-50%)scale(.6)}to{opacity:0;transform:translate(-50%,-50%)scale(1.5)}}@keyframes teaching-ready{50%{filter:brightness(1.5);box-shadow:0 0 18px var(--scene-gold)}}@keyframes preview-flow{to{stroke-dashoffset:-28px}}@keyframes cost-shake{25%{transform:rotate(-6deg)}75%{transform:rotate(6deg)}}@media (orientation:landscape) and (height<=600px){#app.scene-ui[data-teaching=true] .scene-title h2{display:none}#app.scene-ui .hero-ability,#app.scene-ui .hero-moves{display:none!important}}@media (orientation:portrait){#app.scene-ui .scene-title{display:none}#app.scene-ui .hero-ability,#app.scene-ui .hero-moves{display:none!important}#app.scene-ui[data-teaching=true] .scene-header{height:156px}#app.scene-ui .scene-instruction[data-teaching-bar]{width:max-content;max-width:calc(100% - 24px);top:126px}}@media (orientation:portrait) and (height<=700px){#app.scene-ui .scene-round-group{gap:0;max-width:96px}#app.scene-ui[data-teaching=true] .scene-header{height:104px}#app.scene-ui .scene-instruction[data-teaching-bar]{min-height:34px;top:66px}}@media (width>=1280px){#app.scene-ui .scene-instruction[data-teaching-bar]{max-height:none;font-size:clamp(22px,1.75vw,34px)!important}#app.scene-ui .scene-instruction>.teaching-hand{width:1em;height:1.2em}#app.scene-ui .teaching-dots i{width:clamp(7px,.55vw,11px);height:clamp(7px,.55vw,11px)}}@media (orientation:portrait),(orientation:landscape) and (height<=600px){#app.scene-ui .hero-card .hero-moves{gap:2px;height:12px;position:absolute;bottom:3px;right:4px;display:flex!important}#app.scene-ui .hero-moves .hud-icon{width:12px;height:12px}#app.scene-ui .hero-card:has(.hero-moves) .hud-hearts{height:16px;line-height:16px;position:absolute;bottom:3px;left:4px;display:flex!important}}@media (orientation:landscape) and (height<=600px){#app.scene-ui .hero-card .hero-moves{bottom:8px;left:58px;right:auto}#app.scene-ui .hero-card:has(.hero-moves) .hud-hearts{top:8px;bottom:auto;left:58px}}@media (orientation:portrait){#app.scene-ui .hero-card:has(.hero-moves) .hero-portrait{width:40px;height:40px;position:absolute;top:0;left:calc(50% - 20px)}}@media (prefers-reduced-motion:reduce){#app.scene-ui:not([data-motion=full]) :is(.tap-ripple,.tutorial-beacon .teaching-hand,.preview-flight,.goal-missed .hud-star,.ghost),#app.scene-ui:not([data-motion=full]) .cell.guided:after,#app.scene-ui:not([data-motion=full]) .cell.guided .unit:before{animation:none}}#app.scene-ui .star-arriving .hud-star{animation:star-arrive var(--timing-starPop) ease-out 1;transform-origin:50%}#app.scene-ui .star-breaking .hud-star{animation:star-break var(--timing-starBreak) ease-out 1;transform-origin:50%}#app.scene-ui .goal-chip.goal-missed:not(.star-breaking) .hud-star{animation:none}#app.scene-ui .goal-chip.goal-missed .hud-count{background:var(--scene-cost-bg);color:var(--scene-cost-outline);border-radius:3px;padding:2px 3px}@keyframes star-arrive{0%{transform:scale(1)}45%{filter:drop-shadow(0 0 10px #f2c14e);transform:scale(1.35)}to{transform:scale(1)}}@keyframes star-break{20%{transform:rotate(-6deg)}60%{transform:rotate(6deg)}to{transform:rotate(0)}}#app .challenge-spark{z-index:1000;pointer-events:none;background:#fff3bd;border-radius:50%;width:14px;height:14px;position:fixed;box-shadow:0 0 9px 4px #f2c14e}#app.scene-ui .move-cost{font-size:max(14px,calc(var(--cell-size)*.16));min-height:20px;padding:2px 4px}#app.scene-ui .move-cost :is(.cost-star,.hud-icon){width:max(14px,calc(var(--cell-size)*.14));height:max(14px,calc(var(--cell-size)*.14))}#app.scene-ui .hero-moves i{flex:none;width:14px;height:14px}#app.scene-ui .hero-card .hero-moves{height:14px}#app.scene-ui .preview-mark.damage{font-size:max(12px,calc(var(--cell-size)*.18))}#app.scene-ui .preview-mark:is(.defeat,.water){transform:translate(-50%,-60%)}@media (orientation:landscape){#app.scene-ui .hero-strip>.cannon-choice{flex:none;align-self:stretch;margin-top:-4px;position:relative;width:100%!important;top:auto!important;left:auto!important}}@media (width>=1280px){#app.scene-ui .cannon-choice .cannon-option{height:56px;min-height:56px;font-size:clamp(18px,1.2vw,24px)}}@media (orientation:portrait){#app.scene-ui .cannon-option>.tutorial-beacon{bottom:7px;right:-4px}#app.scene-ui [data-end]>.tutorial-beacon{height:44px;top:-18px;bottom:auto;right:58px}#app.scene-ui .hero-card:has(.hero-moves) .hero-portrait{width:36px;height:36px;left:calc(50% - 18px)}#app.scene-ui .hero-card .hero-moves{gap:1px;right:3px}}#app.scene-ui dialog.intro-card{box-sizing:border-box;border:5px solid var(--scene-parchment-edge);background:var(--scene-parchment);width:min(840px,100vw - 32px);max-width:none;height:min(580px,100dvh - 32px);max-height:none;color:var(--scene-parchment-ink);font:800 18px/1.35 var(--scene-font);border-radius:28px;margin:auto;padding:38px 30px 26px;overflow:hidden;box-shadow:0 20px 70px #07170f99}#app.scene-ui dialog.intro-card[open]{flex-direction:column;align-items:center;gap:22px;display:flex}#app.scene-ui .intro-card::backdrop{-webkit-backdrop-filter:blur(10px)brightness(.45);backdrop-filter:blur(10px)brightness(.45);background:#0002}#app.scene-ui .intro-ribbon{background:var(--scene-gold);color:var(--scene-parchment-ink);font:900 16px var(--scene-font);letter-spacing:1px;white-space:nowrap;border-radius:0 0 8px 8px;padding:6px 30px;position:absolute;top:0;left:50%;transform:translate(-50%)}#app.scene-ui .intro-ribbon.unit-ribbon{background:var(--scene-danger-fill);color:#fff}#app.scene-ui .intro-close{min-width:44px;min-height:44px;color:var(--scene-parchment-ink);font:900 28px var(--scene-font);box-shadow:none;background:0 0;border:0;border-radius:50%;position:absolute;top:8px;right:10px}#app.scene-ui .intro-body{flex:1;grid-template-columns:.85fr 1.15fr;align-items:center;gap:28px;width:100%;min-height:0;display:grid}#app.scene-ui .intro-identity{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;min-width:0;display:flex}#app.scene-ui .intro-identity h2{font:900 32px/1.1 var(--scene-heading);color:var(--scene-parchment-ink);margin:4px 0 0}#app.scene-ui .intro-portrait{width:210px;height:210px;display:block;position:relative}#app.scene-ui .intro-hearts{color:var(--scene-danger-fill);gap:8px;display:flex}#app.scene-ui .intro-hearts .hud-icon{fill:currentColor;width:28px;height:28px}#app.scene-ui .intro-star{place-items:center;width:190px;height:190px;display:grid;position:relative}#app.scene-ui .intro-star>.hud-star{width:100%;height:100%;fill:var(--scene-gold);stroke:var(--scene-gold-edge);stroke-width:.8px;filter:drop-shadow(0 7px 1px #ad7d2944)}#app.scene-ui .intro-star>.hud-icon{width:66px;height:66px;stroke:var(--scene-parchment-ink);stroke-width:2px;position:absolute;top:70px;left:62px}#app.scene-ui .intro-third-hero{width:42px;height:60px;fill:var(--scene-cost);position:absolute;bottom:0;right:0}#app.scene-ui .intro-enemy-cross{color:var(--scene-danger-fill);font-size:50px;position:absolute;bottom:24px;right:40px}#app.scene-ui .intro-hud-sample{align-items:center;gap:8px;font-size:22px;display:flex}#app.scene-ui .intro-demonstration{text-align:center;min-width:0}#app.scene-ui .intro-demonstration p{font:900 18px/1.35 var(--scene-font);color:var(--scene-parchment-ink);margin:16px 0 0}#app.scene-ui .intro-demo{aspect-ratio:4/3;border:5px solid var(--scene-wood-light);width:100%;box-shadow:0 5px 0 var(--scene-wood-dark);background:#6f8841;border-radius:14px;overflow:hidden}#app.scene-ui .intro-demo:not([data-demo=bombardier]){aspect-ratio:400/340}#app.scene-ui .intro-demo>svg{width:100%;height:100%;display:block;overflow:hidden}#app.scene-ui .intro-demo *{animation-duration:var(--timing-introLoop)!important}#app.scene-ui :is(.demo-tile,.demo-sprite){width:100%;height:100%;position:relative;overflow:visible}#app.scene-ui .demo-tile{overflow:hidden}#app.scene-ui :is(.demo-tile,.demo-sprite)>.art{width:100%;height:100%;margin:0;position:absolute;inset:0}#app.scene-ui .demo-sprite>.art{transform:translate(var(--art-x),var(--art-y))}#app.scene-ui .demo-tile>.art{transform:scale(var(--tile-scale-x),var(--tile-scale-y)) translate(var(--art-x),var(--art-y))}#app.scene-ui .demo-highlights rect{fill:#ff9f1c44;stroke:var(--scene-gold);stroke-width:4px}#app.scene-ui .demo-highlights .demo-neighbor{fill:none;stroke-width:3px}#app.scene-ui .demo-hud-bg{fill:var(--scene-panel)}#app.scene-ui .demo-lines{fill:none;stroke:var(--scene-gold);stroke-width:5px;stroke-linecap:round;stroke-linejoin:round}#app.scene-ui .demo-arc{stroke-dasharray:9 8}#app.scene-ui .demo-shell{fill:#574d40;stroke:#ffe3a0;stroke-width:2.5px;filter:drop-shadow(0 2px 2px #12231b);animation:3s linear infinite demo-shell}#app.scene-ui .demo-shell-glint{fill:none;stroke:#fff4dc;stroke-width:3px;stroke-linecap:round}#app.scene-ui .demo-cannon-impact{transform-box:fill-box;transform-origin:50%}#app.scene-ui .demo-cannon-impact circle{fill:#ff9f1c99;stroke:#ffe3a0;stroke-width:4px}#app.scene-ui .demo-cannon-impact path{fill:none;stroke:var(--scene-gold);stroke-width:4px;stroke-linecap:round}#app.scene-ui .demo-blast{fill:#ff9f1c99;stroke:#ffe3a0;stroke-width:4px;transform-origin:250px 150px;animation:3s ease-out infinite demo-blast}#app.scene-ui .demo-push-arrows{fill:none;stroke:var(--scene-gold);stroke-width:5px;animation:3s linear infinite demo-show}#app.scene-ui .demo-push-up{animation:3s ease-in-out infinite demo-push-up}#app.scene-ui .demo-push-right{animation:3s ease-in-out infinite demo-push-right}#app.scene-ui .demo-push-left{animation:3s ease-in-out infinite demo-push-left}#app.scene-ui :is(.demo-hit,.demo-victim){animation:3s ease-in infinite demo-victim}#app.scene-ui .demo-drown{animation:3s ease-in-out infinite demo-drown}#app.scene-ui .demo-redirect{animation:3s ease-in-out infinite demo-redirect}#app.scene-ui .demo-friendly{stroke:var(--scene-friendly-fire,#b8f03a);stroke-dasharray:12 9;animation:3s linear infinite demo-show}#app.scene-ui .demo-arrow{stroke-dasharray:250;stroke-dashoffset:250px;animation:3s linear infinite demo-arrow}#app.scene-ui .demo-splash{fill:none;stroke:#dbfff7;stroke-width:5px;transform-origin:0 0;animation:3s ease-out infinite demo-splash}#app.scene-ui .demo-impact{fill:none;stroke:var(--scene-danger);stroke-width:8px;animation:3s linear infinite demo-show}#app.scene-ui .demo-smoke{fill:#e6dcc5;transform-origin:0 0;animation:3s ease-out infinite demo-smoke}#app.scene-ui .demo-team-one{animation:3s ease-in-out infinite demo-team-one}#app.scene-ui .demo-team-two{animation:3s ease-in-out infinite demo-team-two}#app.scene-ui .demo-lunge{animation:3s ease-in-out infinite demo-lunge}#app.scene-ui .demo-stays{opacity:.65}#app.scene-ui .demo-two-steps{animation:3s ease-in-out infinite demo-two-steps}#app.scene-ui .demo-walk{fill:none;stroke:var(--scene-gold);stroke-width:5px;stroke-dasharray:8 8}#app.scene-ui .demo-steps circle{fill:var(--scene-gold);stroke:var(--scene-gold-edge);stroke-width:2px}#app.scene-ui .demo-steps text{font:900 22px var(--scene-font);fill:var(--scene-parchment-ink);text-anchor:middle}#app.scene-ui .demo-earned{fill:var(--scene-panel);stroke:var(--scene-gold);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round;transform-box:fill-box;transform-origin:50%;animation:3s ease-out infinite demo-earned}#app.scene-ui [data-demo=maxMoves] .demo-earned{animation-name:demo-move-earned}#app.scene-ui [data-demo=maxMoves] .demo-gold-spark{animation-name:demo-move-spark}#app.scene-ui .demo-gold-spark{fill:none;stroke:#fff1a6;stroke-width:10px;stroke-linecap:round;stroke-dasharray:1 100;stroke-dashoffset:1px;animation:3s ease-in infinite demo-spark}#app.scene-ui .demo-count{font:900 25px var(--scene-font);fill:#fff;stroke:#263929;stroke-width:4px;paint-order:stroke;animation:3s step-end infinite demo-count}#app.scene-ui .demo-count.done{animation:3s step-end infinite demo-count-done}#app.scene-ui .intro-accept{border:2px solid var(--scene-safe-edge);background:var(--scene-safe-button);color:#fff;width:240px;height:68px;min-height:44px;box-shadow:0 5px 0 var(--scene-safe-shadow);font:900 24px var(--scene-font);border-radius:14px;flex:none;padding:0}#app.scene-ui .intro-actions{flex:none;justify-content:center;align-items:center;gap:12px;width:100%;display:flex}#app.scene-ui .intro-meet{border:2px solid var(--scene-parchment-edge);min-width:44px;min-height:48px;color:var(--scene-parchment-ink);font:800 16px/1.3 var(--scene-font);background:0 0;border-radius:12px;padding:10px 18px}@media (orientation:portrait){#app.scene-ui .intro-actions:has(.intro-meet)>button{flex:1;width:auto;min-height:60px;padding-inline:8px}}@keyframes demo-blast{0%,41%{opacity:0;transform:scale(.2)}43%{opacity:1;transform:scale(.5)}59%,to{opacity:0;transform:scale(1.5)}}@keyframes demo-push-up{0%,42%{transform:translateY(0)}62%,92%{transform:translateY(-60px)}to{transform:translateY(0)}}@keyframes demo-push-right{0%,42%{transform:translate(0)}62%,92%{transform:translate(45px)}to{transform:translate(0)}}@keyframes demo-push-left{0%,42%{transform:translate(0)}62%,92%{transform:translate(-100px)}to{transform:translate(0)}}@keyframes demo-victim{0%,40%{opacity:1;transform:scale(1)}52%,92%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}@keyframes demo-drown{0%,35%{opacity:1;transform:translate(0)}53%{opacity:1;transform:translate(100px)}68%,92%{opacity:0;transform:translate(100px)scale(.25)}to{opacity:1;transform:translate(0)}}@keyframes demo-redirect{0%,20%{transform:translateY(0)}36%,92%{transform:translateY(-100px)}to{transform:translateY(0)}}@keyframes demo-arrow{0%,15%{stroke-dashoffset:250px;opacity:0}17%{opacity:1}35%{stroke-dashoffset:0;opacity:1}42%,to{opacity:0;stroke-dashoffset:0}}@keyframes demo-show{0%,42%{opacity:0}43%,90%{opacity:1}to{opacity:0}}@keyframes demo-splash{0%,50%{opacity:0;transform:scale(.3)}55%{opacity:1;transform:scale(.8)}78%,to{opacity:0;transform:scale(1.3)}}@keyframes demo-smoke{0%,40%{opacity:0;transform:scale(.3)}50%{opacity:.9;transform:scale(1)}73%,to{opacity:0;transform:scale(1.6)}}@keyframes demo-team-one{0%,12%{transform:translate(0)}30%,92%{transform:translate(100px)}to{transform:translate(0)}}@keyframes demo-team-two{0%,30%{transform:translate(0)}48%,92%{transform:translate(100px)}to{transform:translate(0)}}@keyframes demo-lunge{0%,30%{transform:translate(0)}40%{transform:translate(35px)}53%,to{transform:translate(0)}}@keyframes demo-two-steps{0%,15%{transform:translate(0)}35%,45%{transform:translateX(var(--demo-first-step))}65%,92%{transform:translateX(var(--demo-final-step))}to{transform:translate(0)}}@keyframes demo-earned{0%,66%{fill:#203428;scale:1}72%{fill:#f2c14e;scale:1.35}80%,94%{fill:#f2c14e;scale:1}to{fill:#203428;scale:1}}@keyframes demo-spark{0%,55%{stroke-dashoffset:1px;opacity:0}56%{opacity:1;stroke-dashoffset:1px}66%{stroke-dashoffset:-100px;opacity:1}68%,to{opacity:0;stroke-dashoffset:-100px}}@keyframes demo-move-spark{0%,69%{stroke-dashoffset:1px;opacity:0}70%{opacity:1;stroke-dashoffset:1px}80%{stroke-dashoffset:-100px;opacity:1}82%,to{opacity:0;stroke-dashoffset:-100px}}@keyframes demo-move-earned{0%,80%{fill:#203428;scale:1}86%{fill:#f2c14e;scale:1.35}92%,96%{fill:#f2c14e;scale:1}to{fill:#203428;scale:1}}@keyframes demo-count{0%,64%{opacity:1}65%,to{opacity:0}}@keyframes demo-count-done{0%,64%{opacity:0}65%,94%{opacity:1}95%,to{opacity:0}}@media (orientation:portrait){#app.scene-ui dialog.intro-card{gap:16px;height:min(580px,100dvh - 32px);max-height:calc(100dvh - 32px);padding:42px 16px 18px}#app.scene-ui .intro-body{flex-direction:column;gap:14px;width:100%;display:flex}#app.scene-ui .intro-identity{text-align:left;grid-template-rows:auto auto;grid-template-columns:95px 1fr;gap:4px 10px;width:100%;height:110px;min-height:110px;display:grid}#app.scene-ui .intro-identity h2{grid-area:1/2;max-width:none;font-size:26px}#app.scene-ui .intro-portrait{width:100px;height:100px}#app.scene-ui .intro-identity>.intro-portrait,#app.scene-ui .intro-star{grid-area:1/1/3}#app.scene-ui .intro-hearts{grid-area:2/2;gap:2px;position:static}#app.scene-ui .intro-hearts .hud-icon{width:18px;height:18px}#app.scene-ui .intro-star{width:95px;height:95px}#app.scene-ui .intro-star>.hud-icon{width:33px;height:33px;top:35px;left:31px}#app.scene-ui .intro-hud-sample{grid-area:2/2;font-size:16px}#app.scene-ui .intro-third-hero{width:21px;height:30px}#app.scene-ui .intro-enemy-cross{font-size:25px;bottom:12px;right:20px}#app.scene-ui .intro-demonstration{width:100%;max-width:350px}#app.scene-ui .intro-demonstration p{margin-top:12px;font-size:16px}#app.scene-ui .intro-accept{width:min(240px,100%);height:60px}}@media (orientation:landscape) and (height<=600px){#app.scene-ui dialog.intro-card{gap:12px;padding:36px 24px 16px}#app.scene-ui .intro-body{grid-template-columns:1fr 1.1fr;gap:24px}#app.scene-ui .intro-portrait{width:130px;height:130px}#app.scene-ui .intro-star{width:120px;height:120px}#app.scene-ui .intro-star>.hud-icon{width:42px;height:42px;top:44px;left:39px}#app.scene-ui .intro-demo{max-width:290px;margin:auto}#app.scene-ui .intro-identity{gap:4px}#app.scene-ui .intro-identity h2{font-size:28px}#app.scene-ui .intro-demonstration p{margin-top:8px;font-size:16px}#app.scene-ui .intro-accept{height:48px;font-size:20px}}@media (prefers-reduced-motion:reduce){#app.scene-ui:not([data-motion=full]) :is(.star-arriving .hud-star,.star-breaking .hud-star){animation:none}#app.scene-ui:not([data-motion=full]) .intro-demo *{animation-play-state:paused;animation-delay:-2.4s}}#app.scene-ui[data-motion=reduced] :is(.star-arriving .hud-star,.star-breaking .hud-star){animation:none}#app.scene-ui[data-motion=reduced] .intro-demo *{animation-play-state:paused;animation-delay:-2.4s}#app.scene-ui[data-motion=reduced] :is(.demo-shell,.demo-cannon-impact){opacity:0}#app.scene-ui .hud-enemy-head{flex:none;display:inline-block;position:relative;overflow:hidden}#app.scene-ui .hud-enemy-head>.enemy-head-crop>.art{width:170%;height:170%;position:absolute;top:-8%;left:-35%}#app.scene-ui .intro-star>.hud-enemy-head{width:66px;height:66px;position:absolute;top:70px;left:62px}#app.scene-ui .intro-hud-sample .hud-enemy-head{width:24px;height:24px}#app.scene-ui .demo-blast-fixed{fill:#ff9f1c99;stroke:#ffe3a0;stroke-width:4px}#app.scene-ui .demo-friendly-fixed{stroke:#b8f03a;stroke-dasharray:12 9}#app.scene-ui .demo-sword-swipe{fill:none;stroke:#fff1bb;stroke-width:6px;stroke-linecap:round;filter:drop-shadow(0 1px 1px #70441c)}#app.scene-ui .demo-hit-impact{fill:none;stroke:#f2c14e;stroke-width:4px;stroke-linecap:round}#app.scene-ui .demo-damage{fill:var(--scene-danger-fill);stroke:#fff4dc;stroke-width:2px;paint-order:stroke;font:900 22px var(--scene-font)}#app.scene-ui .demo-lines .demo-enemy-attack{stroke:var(--scene-danger-fill)}#app.scene-ui .demo-house-heart{fill:#f45e62;stroke:#543c30;stroke-width:1.5px}#app.scene-ui .demo-strike-frame{opacity:0}#app.scene-ui .demo-splash-fixed{fill:none;stroke:#dbfff7;stroke-width:5px}#app.scene-ui .turn-actions>[data-result=won]{min-height:88px;font:900 clamp(18px,1.4vw,24px) var(--scene-font);border:2px solid var(--scene-safe-edge);background:var(--scene-safe-button);color:var(--scene-text);box-shadow:0 5px 0 var(--scene-safe-shadow);border-radius:12px}@media (orientation:portrait){#app.scene-ui .intro-star>.hud-enemy-head{width:33px;height:33px;top:35px;left:31px}#app.scene-ui .turn-actions>[data-result=won]{min-height:64px}}@media (orientation:landscape) and (height<=600px){#app.scene-ui .intro-star>.hud-enemy-head{width:42px;height:42px;top:44px;left:39px}#app.scene-ui .turn-actions>[data-result=won]{min-height:64px}}#app.scene-ui .demo-actor.demo-stays{filter:grayscale(.8)}#app.scene-ui[data-motion=reduced] :is(.demo-strike-frame,.demo-sword-swipe,.demo-hit-impact,.demo-damage){display:none}#app.scene-ui[data-motion=reduced] .demo-house-heart[data-demo-heart-final=empty]{fill:#667365}@media (orientation:portrait){#app.scene-ui dialog.intro-card[data-intro-kind=houseHp]{height:min(600px,100dvh - 32px)}}@media (orientation:portrait) and (height<=700px){#app.scene-ui dialog.intro-card[data-intro-kind=houseHp]{height:min(560px,100dvh - 32px)}#app.scene-ui [data-intro-kind=houseHp] .intro-body{gap:10px}#app.scene-ui [data-intro-kind=houseHp] .intro-identity{grid-template-columns:80px 1fr;height:90px;min-height:90px}#app.scene-ui [data-intro-kind=houseHp] .intro-portrait{width:80px;height:80px}#app.scene-ui [data-intro-kind=houseHp] .intro-identity h2{font-size:22px}#app.scene-ui [data-intro-kind=houseHp] .intro-demonstration{max-width:250px}#app.scene-ui [data-intro-kind=houseHp] .intro-demonstration p{margin-top:8px;font-size:15px}#app.scene-ui [data-intro-kind=houseHp] .intro-accept{height:48px;min-height:48px}}#app.scene-ui .hud-enemy-head{overflow:visible}#app.scene-ui .enemy-head-crop{position:absolute;inset:0;overflow:hidden}#app.scene-ui .enemy-head-cross{color:var(--scene-danger-fill);font:900 12px/1 var(--scene-font);position:absolute;bottom:-2px;right:-3px}#app.scene-ui .intro-star .enemy-head-cross{font-size:26px}@media (orientation:portrait){#app.scene-ui .intro-star .enemy-head-cross{font-size:16px}}#app.scene-ui .intro-card .enemy-head-cross{text-shadow:1px 0 var(--scene-parchment),-1px 0 var(--scene-parchment),0 1px var(--scene-parchment),0 -1px var(--scene-parchment)}#app.scene-ui .intro-star .enemy-head-cross{bottom:-5px;right:-7px}@media (orientation:portrait){#app.scene-ui .intro-star .enemy-head-cross{font-size:20px}}#app.scene-ui .result-modal h2{color:var(--scene-parchment-ink);font-family:var(--scene-heading);text-shadow:none}#app.scene-ui .result-modal :is(p,summary,.modal-close){color:var(--scene-parchment-ink)}html,body,#app,#app>.game-layout,#app[data-screen=home] .home-screen{background-color:var(--scene-ink,#12231b)}#app.scene-ui .result-won{border:4px solid var(--scene-parchment-edge);overscroll-behavior:contain;text-align:center;isolation:isolate;border-radius:24px;width:min(560px,100vw - 32px);padding:30px 28px 24px;overflow-y:auto}#app.scene-ui .result-won .result-actions{grid-template-columns:1fr auto;gap:16px 12px;margin:20px 0 4px;display:grid}#app.scene-ui .result-won .result-actions>.result-next{border:2px solid var(--scene-safe-edge);background:var(--scene-safe);width:100%;min-height:72px;color:var(--scene-text);box-shadow:0 5px 0 var(--scene-safe-shadow);font:900 28px var(--scene-font);text-shadow:none;border-radius:14px;grid-column:1/-1;padding:10px 20px}#app.scene-ui .result-won .result-actions>.result-replay{border:2px solid var(--scene-parchment-edge);width:60px;height:60px;min-height:60px;color:var(--scene-parchment-ink);text-shadow:none;background:0 0;border-radius:12px;flex:none;grid-column:1/-1;justify-self:center;padding:12px;box-shadow:0 3px #b88a3e44}#app.scene-ui .result-replay .hud-icon{fill:none;stroke:currentColor;stroke-width:2px;width:30px;height:30px}#app.scene-ui .result-won .result-summary{font:800 16px/1.35 var(--scene-font)}#app.scene-ui .result-won h2{font:900 30px/1.1 var(--scene-heading);margin:12px 0 6px}#app.scene-ui .result-confetti{pointer-events:none;z-index:2;border-radius:20px;position:absolute;inset:0;overflow:hidden}#app.scene-ui .result-confetti i{left:var(--confetti-x);background:var(--confetti-color);opacity:0;width:7px;height:12px;animation:result-confetti 1.3s ease-in var(--confetti-delay) 1 both;position:absolute;top:-12px}@keyframes result-confetti{0%{opacity:0;transform:translateY(-15px)rotate(0)}8%{opacity:1}85%{opacity:1}to{opacity:0;transform:translate(var(--confetti-drift),560px) rotate(var(--confetti-spin))}}#app.scene-ui[data-motion=reduced] .result-confetti{display:none}@media (orientation:portrait){#app.scene-ui .result-won{padding:28px 20px 20px}#app.scene-ui .result-won h2{font-size:26px}#app.scene-ui .result-won .result-actions{margin-top:18px}}@media (height<=500px){#app.scene-ui .result-won{padding:16px 22px}#app.scene-ui .result-won .result-actions{gap:8px;margin:12px 0 0}#app.scene-ui .result-won .result-actions>.result-next{min-height:56px}#app.scene-ui .result-won .result-actions>.result-replay{width:48px;height:48px;min-height:48px;padding:7px}}#app.scene-ui button:active:not(:disabled):not(.wm-node){transition:transform 35ms;transform:translateY(2px)scale(.97)}#app.scene-ui .scene-impact{z-index:35;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.scene-impact .impact-particle{fill:var(--scene-gold);transform-box:fill-box;animation:impact-burst var(--timing-highlight) ease-out both}.scene-impact.impact-friendly .impact-particle{fill:var(--scene-friendly-fire,#b8f03a)}.scene-impact.impact-water .impact-particle{fill:#d4fbff}.scene-impact.impact-empty .impact-particle{fill:#c6ac7e}.scene-impact .impact-chain{fill:var(--scene-gold);stroke:#3b2a17;stroke-width:5px;paint-order:stroke;stroke-linejoin:round;font:900 31px var(--scene-font);animation:.3s ease-out both chain-pop}.scene-impact .impact-chain-prefix{font-size:24px}@keyframes impact-burst{0%{opacity:1;transform:translate(0)scale(.7)}to{opacity:0;transform:translate(var(--particle-x),var(--particle-y)) scale(.2)}}@keyframes chain-pop{0%{opacity:0;transform:scale(.6)}45%{opacity:1;transform:scale(1.2)}to{opacity:1;transform:scale(1)}}#app.scene-ui[data-failure-replay=true] .board-frame{box-shadow:0 0 0 4px var(--scene-danger),0 0 28px #e5484d88}#app.scene-ui .chapter-subtitle{max-width:calc(100vw - 32px);color:var(--scene-text);border:1px solid var(--scene-parchment-edge);font:800 16px var(--scene-font);z-index:8;white-space:nowrap;background:#12231be8;border-radius:10px;align-items:center;gap:12px;padding:0 4px 0 12px;display:flex;position:fixed;bottom:8px;left:50%;transform:translate(-50%)}#app.scene-ui .chapter-subtitle button{min-width:44px;min-height:44px;color:inherit;background:0 0;border:0;font-size:24px}#app.scene-ui .result-won .result-summary{display:none}#app.scene-ui .result-won h2{white-space:nowrap;font-size:clamp(23px,3.4vw,32px)}#app.scene-ui .result-heroes{justify-content:center;gap:10px;height:62px;margin:6px 0;display:flex}.result-heroes>span{width:62px;height:62px;animation:hero-cheer .45s ease-out calc(var(--hero-order)*.1s) both}.result-heroes .art{width:100%;height:100%}@keyframes hero-cheer{0%,to{transform:translateY(0)}45%{transform:translateY(-12px)rotate(-4deg)}70%{transform:translateY(2px)scale(1.06,.94)}}#app.scene-ui .result-won .result-actions>.result-secondary{grid-column:1/-1;justify-content:center;gap:16px;display:flex}#app.scene-ui .result-secondary>.result-replay,#app.scene-ui .result-secondary>.result-icon{border:2px solid var(--scene-parchment-edge);width:60px;height:60px;min-height:60px;color:var(--scene-parchment-ink);background:0 0;border-radius:12px;padding:12px;position:relative;box-shadow:0 3px #b88a3e44}.result-secondary .hud-icon{fill:none;stroke:currentColor;stroke-width:2px;width:30px;height:30px}.result-secondary .retry-star>span{color:var(--scene-gold);text-shadow:0 1px #3b2a17;font-size:26px;position:absolute;top:-9px;right:-4px}#app.scene-ui .result-secondary>.retry-star{background:var(--scene-parchment);border-color:var(--scene-parchment-edge);width:86px}#app.scene-ui .reward-star.result-cracked .star-face{fill:var(--scene-cost);stroke:var(--scene-cost-outline)}#app.scene-ui .reward-star .star-crack{fill:none;stroke:var(--scene-cost-crack);stroke-width:7px;stroke-linecap:round}#app.scene-ui .result-condition{color:var(--scene-parchment-ink);font:900 14px var(--scene-font);justify-content:center;align-items:center;gap:4px;display:flex}.result-condition .hud-icon{width:20px;height:20px}#app.scene-ui .result-won:has(.result-cracked) .result-stars{margin-bottom:24px}#app.scene-ui .optimal-badge{color:#3b2a17;background:var(--scene-gold);font:900 18px var(--scene-font);border:2px solid #a87918;border-radius:18px;align-items:center;gap:7px;padding:4px 14px;animation:.5s cubic-bezier(.2,1.7,.4,1) both optimal-arrive;display:inline-flex}.optimal-badge .hud-icon{fill:none;stroke:currentColor;stroke-width:2px;width:22px;height:22px}@keyframes optimal-arrive{0%{opacity:0;transform:scale(.5)rotate(-10deg)}65%{opacity:1;transform:scale(1.15)rotate(3deg)}to{transform:scale(1)rotate(0)}}#app.scene-ui .result-lost{text-align:center;border:4px solid var(--scene-parchment-edge);border-radius:24px;width:min(460px,100vw - 32px);padding:24px}#app.scene-ui .result-lost .result-actions{gap:12px;display:grid}#app.scene-ui .result-lost .result-actions>.primary{background:var(--scene-safe);min-height:72px;color:var(--scene-text);font:900 24px var(--scene-font)}#app.scene-ui .result-lost .result-actions>.secondary{min-height:60px;color:var(--scene-parchment-ink);font-size:18px}.chapter-star-progress{background:#10241c;border:1px solid #e7b84a;border-radius:10px;height:12px;margin:0 20px 12px;overflow:hidden}.chapter-star-progress>i{background:#f2c14e;height:100%;transition:width .3s ease-out;display:block}.map-star-flight{z-index:20;color:#f2c14e;text-shadow:0 0 12px #fff4dc;pointer-events:none;font-size:30px;position:absolute}.chapter-reward .chapter-star-progress{animation:.8s ease-out chapter-progress}@keyframes chapter-progress{45%{box-shadow:0 0 22px #f2c14e}}.campaign-node.new-route .map-medallion{animation:.8s ease-out route-light}@keyframes route-light{40%{transform:scale(1.12);box-shadow:0 0 32px #f2c14e}}.chapter-celebration{z-index:30;color:#3b2a17;font:900 28px var(--scene-heading);white-space:nowrap;pointer-events:none;background:#f2c14e;border:4px solid #fff4dc;border-radius:22px;padding:18px 28px;animation:.5s ease-out optimal-arrive;position:fixed;top:30%;left:50%;transform:translate(-50%)}.chapter-celebration i{color:#f2c14e;text-shadow:0 0 8px #12231b;--burst-angle:0deg;font-size:24px;animation:.9s ease-out both chapter-burst;position:absolute;top:50%;left:50%}@keyframes chapter-burst{0%{transform:rotate(var(--burst-angle)) translateX(0);opacity:1}to{transform:rotate(var(--burst-angle)) translateX(180px);opacity:0}}.input-queued{filter:brightness(1.25);outline:3px solid var(--scene-gold)!important}@media (orientation:portrait){#app.scene-ui .chapter-subtitle{max-height:44px;font-size:14px;top:77px;bottom:auto}#app.scene-ui .chapter-subtitle button{height:44px}#app.scene-ui .result-heroes{height:54px}#app.scene-ui .result-heroes>span{width:54px;height:54px}}@media (height<=500px){#app.scene-ui .result-won{padding:12px 22px}#app.scene-ui .result-heroes{height:40px}#app.scene-ui .result-heroes>span{width:40px;height:40px}#app.scene-ui .result-won .result-actions{gap:8px;margin:10px 0}#app.scene-ui .result-secondary>.result-replay,#app.scene-ui .result-secondary>.result-icon{width:48px;height:48px;min-height:48px;padding:7px}#app.scene-ui .result-won .result-actions>.result-next{min-height:72px}#app.scene-ui .result-won h2{margin:5px 0;font-size:24px}}#app.scene-ui[data-motion=reduced] .impact-particle,#app.scene-ui[data-motion=reduced] .impact-chain,#app.scene-ui[data-motion=reduced] .result-heroes>span,#app.scene-ui[data-motion=reduced] .optimal-badge{animation:none}#app.scene-ui .chapter-subtitle{width:max-content;max-width:calc(100% - 24px);height:44px;padding:0 4px 0 12px;font-size:16px;position:absolute;top:12px;bottom:auto;left:50%;transform:translate(-50%)}@media (orientation:portrait){#app.scene-ui .chapter-subtitle{top:auto;bottom:12px}}@media (orientation:landscape) and (height<=500px){#app.scene-ui .result-won{grid-template-columns:1fr 1.2fr;column-gap:22px;width:680px;max-width:calc(100vw - 32px);display:grid}#app.scene-ui .result-won>.result-stars,#app.scene-ui .result-won>h2,#app.scene-ui .result-won>.result-heroes,#app.scene-ui .result-won>.optimal-badge{grid-column:1}#app.scene-ui .result-won>.result-actions{grid-area:1/2/6;align-self:center}#app.scene-ui .result-won>.result-report{grid-column:1/-1}#app.scene-ui .result-won>.result-confetti{position:absolute}#app.scene-ui .result-won .result-stars{margin:0 auto 8px}#app.scene-ui .result-won h2{font-size:24px}#app.scene-ui .result-won>.optimal-badge{justify-self:center;margin:6px 0}#app.scene-ui .result-secondary{gap:12px!important}}.scene-impact.impact-landing .impact-particle{fill:#c6ac7e;animation-duration:var(--timing-landingDust)}@media (orientation:landscape) and (height<=500px){#app.scene-ui .result-won{padding-top:48px}#app.scene-ui .result-won .result-stars{height:84px}#app.scene-ui .result-won .reward-star{width:62px;height:62px}#app.scene-ui .result-won .reward-star:nth-child(2){width:76px;height:76px;transform:translateY(-5px)}#app.scene-ui .result-won>.result-back{top:8px;right:8px}}#app.scene-ui .hero-card-composite{flex:1;grid-template-columns:56px minmax(44px,1fr);gap:4px;width:100%;min-width:104px;height:100%;display:grid}#app.scene-ui .hero-card-composite .hero-card{flex-direction:column;justify-content:center;align-items:center;gap:0;width:56px;min-width:56px;height:100%;min-height:64px;padding:2px;display:flex}#app.scene-ui .hero-card-composite .hero-portrait{width:40px;height:40px}#app.scene-ui .hero-card-composite .hud-hearts{flex-wrap:nowrap;gap:0;height:14px;line-height:14px;display:flex!important;position:static!important}#app.scene-ui .hero-card-composite .hero-name,#app.scene-ui .hero-card-composite .hero-moves,#app.scene-ui .hero-card-composite .hero-ability{display:none!important}#app.scene-ui .ally-card-command{border:2px solid var(--scene-gold-edge);background:var(--scene-parchment);min-width:44px;min-height:44px;color:var(--scene-parchment-ink);font:900 18px/1.15 var(--scene-font);border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:2px;margin:0;padding:4px;display:flex}#app.scene-ui .ally-card-command strong,#app.scene-ui .ally-card-command span{font:inherit;display:block}@media (orientation:portrait),(width<=1000px){#app.scene-ui .ally-card-command{padding:2px;font-size:12px}#app.scene-ui .hero-card-composite .hero-card{height:100%}}#app.scene-ui .campaign-map.map-reward-view .map-intro{padding:2px 0 6px}#app.scene-ui .map-reward-view .map-intro>small,#app.scene-ui .map-reward-view .map-caption{display:none}#app.scene-ui .map-reward-view .map-intro h2{margin:4px 0;font-size:24px;line-height:1.1}#app.scene-ui .map-reward-view .map-intro p{font:800 16px/1.15 var(--scene-font);white-space:nowrap;margin:4px 0}#app.scene-ui .map-reward-view .map-intro .button{min-height:44px;margin:4px 0;font-size:16px}#app.scene-ui .map-reward-view .chapter-reward .chapter-star-progress{top:var(--map-reward-header-height);z-index:4;pointer-events:none;box-shadow:0 0 0 6px var(--scene-parchment);position:sticky}#app.scene-ui .chapter-celebration{animation:.5s cubic-bezier(.2,1.4,.4,1) both chapter-arrive}#app.scene-ui .chapter-celebration i{animation-duration:var(--timing-chapterCelebration)}@keyframes chapter-arrive{0%{opacity:0;transform:translate(-50%)scale(.5)}65%{opacity:1;transform:translate(-50%)scale(1.08)}to{opacity:1;transform:translate(-50%)scale(1)}}#app.scene-ui .ally-card-command{white-space:normal;overflow-wrap:anywhere;text-align:center}#app.scene-ui[data-motion=reduced] .chapter-celebration i{display:none}#app.scene-ui[data-motion=reduced] .chapter-star-progress>i{transition:none}#app.scene-ui .map-reward-view .campaign-node.current{scroll-margin-block:18px}#app.scene-ui:has(dialog[open]) .outcome-dock{visibility:hidden}#app.scene-ui .result-confetti{z-index:-1}#app.scene-ui .result-report>summary{font:800 14px/1.35 var(--scene-font);min-height:44px}#app.scene-ui .star-arriving .hud-star{animation-delay:calc(var(--star-sequence,0)*var(--timing-starStagger));animation-fill-mode:both}#app.scene-ui .result-secondary>.result-icon,#app.scene-ui .result-secondary>.result-replay:not(.retry-star){background:var(--scene-parchment)}#app.scene-ui .campaign-map small,#app.scene-ui .campaign-map .map-chapter-count,#app.scene-ui .campaign-map .map-node-label{font-family:var(--scene-font);font-size:12px}#app.scene-ui .chapter-subtitle>span{text-overflow:ellipsis;min-width:0;overflow:hidden}#app.scene-ui .chapter-subtitle>button{flex-shrink:0}@media (orientation:landscape) and (height<=500px){#app.scene-ui .chapter-subtitle{font-size:14px;top:76px;left:16px;transform:none}}#app.scene-ui .result-lost .result-actions>.primary{border:2px solid #235b3c;border-radius:12px;box-shadow:0 3px #183c29}#app.scene-ui .result-lost .result-actions>.secondary{background:var(--scene-parchment);border:2px solid var(--scene-parchment-edge);border-radius:12px;box-shadow:0 3px #b88a3e44}#app.scene-ui .scene-impact{overflow:hidden;background:0 0!important}.scene-impact .impact-chain{transform-box:fill-box;transform-origin:50%}.scene-impact .impact-splash{fill:none;stroke:#d4fbff;stroke-width:4px;stroke-linecap:round;animation:impact-burst var(--timing-highlight) ease-out both;--particle-x:0px;--particle-y:0px}#app.scene-ui .scene-instruction[aria-hidden=true]{visibility:hidden}#app.scene-ui .failure-emphasis{z-index:40;pointer-events:none;background:0 0;width:100%;height:100%;position:absolute;inset:0}.failure-emphasis :is(path,circle){fill:none;stroke:var(--scene-danger);stroke-width:7px;stroke-linecap:round;stroke-linejoin:round}.failure-emphasis marker path{fill:var(--scene-danger);stroke:none}.chapter-celebration strong{z-index:1;position:relative}#app.scene-ui .outcome-tile.drown{overflow:hidden}#app[data-assets-loading=true] :is(.board-frame,.hero-strip){visibility:hidden}#app.scene-ui .board .intents .intent{stroke-linecap:round}#app.scene-ui .action-preview-arrows .preview-flight{stroke-linecap:round;animation:none}#app.scene-ui[data-motion=full][data-page-visible=true] .intents .intent-group:not(.miss):not(.cancelled) :is(.intent,.intent-underlay),#app.scene-ui[data-motion=full][data-page-visible=true] .action-preview-arrows .preview-flight{animation:enemy-intent-flow var(--intent-flow-duration,1s) linear infinite}@keyframes enemy-intent-flow{to{stroke-dashoffset:var(--intent-flow-distance,-24px)}}#app.scene-ui .cell.guided:has(.unit):after{box-shadow:none;background:0 0;border:0;animation:none}#app.scene-ui .cell.guided .unit:before{display:none}#app.scene-ui .cell.guided .unit>.art{filter:drop-shadow(0 0 5px #f2c14e88)}#app.scene-ui .teaching-halo{z-index:4;pointer-events:none;position:absolute;inset:-2%}#app.scene-ui .teaching-halo>i{border:clamp(2px,calc(var(--cell-size)*.04),4px) solid var(--scene-gold);opacity:.9;pointer-events:none;border-radius:50%;position:absolute;inset:0;box-shadow:0 0 14px 3px #f2c14e99}#app.scene-ui .teaching-halo>i+i{border-width:2px;inset:11%;box-shadow:0 0 9px 1px #f2c14e88}#app.scene-ui[data-motion=full][data-page-visible=true] .teaching-halo>i{animation:guide-ring-breathe var(--timing-breath,1.4s) ease-in-out infinite}#app.scene-ui[data-motion=full][data-page-visible=true] .teaching-halo>i+i{animation-delay:calc(var(--timing-breath,1.4s)*-.5)}@keyframes guide-ring-breathe{0%,to{opacity:.95;transform:scale(1)}50%{transform:scale(var(--teaching-ring-scale,1.08));opacity:.55}}#app.scene-ui[data-motion=full][data-page-visible=true] .board .cell.house.threatened>.terrain-piece[data-sprite^=house]:not(.ruined){animation:house-warning var(--timing-houseWarning,.5s) ease-in-out infinite}@keyframes house-warning{0%,to{translate:0}25%{translate:calc(-1 * var(--house-warning-px,2px)) 0}75%{translate:var(--house-warning-px,2px) 0}}#app.scene-ui:has(dialog[open]) :is(.intents .intent,.intent-underlay,.preview-flight,.teaching-halo>i,.cell.house>.terrain-piece,.tap-ripple,.tap-dot){animation-play-state:paused}#app.scene-ui .board .board-health{--health-point-size:clamp(16px,calc(var(--cell-size)*.15),22px);z-index:37;pointer-events:none;filter:drop-shadow(0 1px 1px #07170f);gap:2px;width:max-content;height:max-content;margin:0;padding:0;line-height:1;display:grid;position:absolute}#app.scene-ui .board .enemy-health{grid-template-columns:var(--health-point-size);inset:3% 3% auto auto}#app.scene-ui .board .house-health{grid-template-columns:repeat(var(--health-columns,2),var(--health-point-size));inset:auto auto 3% 3%}#app.scene-ui .board-health .hp-point{width:var(--health-point-size);height:var(--health-point-size);background:0 0;border:0;place-items:center;display:grid}#app.scene-ui .board-health svg{width:100%;height:100%;display:block;overflow:visible}#app.scene-ui .board-health path{fill:#ef6265;stroke:#391c20;stroke-width:1.2px;stroke-linejoin:round}#app.scene-ui .board-health :is(.empty,.lost) path{fill:#b4bcad;stroke:#26372b}#app.scene-ui .board .preview-mark:is(.defeat,.water){width:calc(var(--cell-size)*var(--preview-cross-ratio,.45));height:calc(var(--cell-size)*var(--preview-cross-ratio,.45))}#app.scene-ui .defeat-cross .cross-outline{stroke-width:5px}#app.scene-ui .defeat-cross .cross-ink{stroke-width:3px}#app.scene-ui .board .intents .intent-underlay{fill:none;stroke:#fff4dc;stroke-linecap:round;opacity:.85;vector-effect:non-scaling-stroke}#app.scene-ui .intents .arrow-head:is(.danger,.hero-danger){stroke:#fff4dc;stroke-width:1.1px;stroke-linejoin:round;vector-effect:non-scaling-stroke;paint-order:stroke fill}#app.scene-ui .board .intents .intent-group:is(.miss,.cancelled){opacity:.85;color:#cbd2c2}#app.scene-ui .board .intents .intent-group:is(.miss,.cancelled) .intent{stroke:#cbd2c2;stroke-dasharray:6 6;opacity:1;filter:drop-shadow(0 1px 1px #12231b);animation:none}#app.scene-ui .board .intents .arrow-head.miss{fill:#cbd2c2!important}#app.scene-ui .tutorial-beacon .tap-dot{width:clamp(10px,calc(var(--cell-size,80px)*.2),18px);height:clamp(10px,calc(var(--cell-size,80px)*.2),18px);pointer-events:none;background:#fff;border-radius:50%;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 5px #07170f88}#app.scene-ui .tutorial-beacon .tap-ripple{stroke-width:3px;opacity:.55;animation:none}#app.scene-ui[data-motion=full][data-page-visible=true] .tutorial-beacon .tap-ripple{animation:click-ripple var(--timing-breath,1.4s) ease-out infinite}@keyframes click-ripple{0%{opacity:.9;transform:translate(-50%,-50%)scale(.6)}to{opacity:0;transform:translate(-50%,-50%)scale(1.6)}}#app.scene-ui .board>.cannon-choice{z-index:60;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:16px var(--choice-button-height);box-sizing:border-box;outline:2px solid var(--scene-gold);outline-offset:-1px;touch-action:manipulation;background:#12231bf5;border:0;border-radius:10px;gap:4px;margin:0;padding:6px;display:grid;position:absolute;box-shadow:0 4px 12px #07170f99}#app.scene-ui .board>.cannon-choice[data-layout=column]{grid-template-columns:minmax(0,1fr);grid-template-rows:16px repeat(2,var(--choice-button-height))}#app.scene-ui .board>.cannon-choice .choice-coordinate{color:var(--scene-gold);font:900 14px/16px var(--scene-font);text-align:center;grid-column:1/-1;display:block}#app.scene-ui .board>.cannon-choice .cannon-option{width:100%;height:var(--choice-button-height);min-height:var(--choice-button-height);min-width:44px;font-size:16px}#app.scene-ui .board>.cannon-choice .cannon-option>.tutorial-beacon{width:32px;height:32px;bottom:-23px;right:0}#app.scene-ui .board>.cannon-choice .cannon-option>.tutorial-beacon .teaching-hand{width:24px;height:27px;bottom:0;left:50%;rotate:-25deg}#app.scene-ui .board>.cannon-choice .cannon-option>.tutorial-beacon .tap-dot{width:10px;height:10px}#app.scene-ui .cannon-choice-link{z-index:59;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}#app.scene-ui .cannon-choice-link path{fill:none;stroke:var(--scene-gold);stroke-width:1.5px;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}@media (width>=1280px){#app.scene-ui .board>.cannon-choice .cannon-option{font-size:18px}}#app.scene-ui .action-preview-arrows .preview-collision path{fill:none;stroke:var(--scene-gold);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}#app.scene-ui[data-teaching-level=learn-04-collision] .board[data-preview-mode=attack] .cell.guided:has(.unit.enemy) .teaching-hand{left:10%;rotate:35deg}#app.scene-ui .board>.cannon-choice[data-tight=true]{grid-template-rows:14px var(--choice-button-height);gap:2px;padding:4px}#app.scene-ui .board>.cannon-choice[data-tight=true][data-layout=column]{grid-template-rows:14px repeat(2,var(--choice-button-height))}#app.scene-ui .board>.cannon-choice[data-tight=true] .choice-coordinate{line-height:14px}#app.scene-ui .board>.cannon-choice[data-tight=true] .cannon-option>.tutorial-beacon{bottom:-19px}#app .mode-modal{font-family:var(--scene-font);color:var(--scene-parchment-ink);border:3px solid var(--scene-parchment-edge);overscroll-behavior:contain;scrollbar-color:#a48045 #e5d5ae;scrollbar-gutter:stable;background:linear-gradient(135deg,#fff3d5,#f3e6c4 60%,#e9d8ad);border-radius:18px;width:min(640px,100vw - 24px);max-height:calc(100dvh - 24px);padding:24px;font-size:16px;line-height:1.4;box-shadow:0 6px #5d4125,0 18px 60px #071b17aa}#app .mode-modal::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#10251fcc}#app .mode-modal :is(button,summary,select){min-height:44px;font-family:inherit}#app .mode-modal :is(h2,h3,strong){font-family:inherit}#app .mode-modal h2{margin:2px 0 0;font-size:30px;font-weight:900;line-height:1.1}#app .mode-modal h3{font-size:20px;font-weight:900}#app .mode-modal p{font-size:14px;line-height:1.5}#app .mode-modal>.modal-close{color:#fff4dc;background:#294c38;border:2px solid #a48045;border-radius:50%;width:44px;min-width:44px;height:44px;padding:0;box-shadow:0 3px #153526}.mode-card-heading{align-items:center;gap:14px;min-height:56px;padding-right:48px;display:flex}.mode-icon{color:#365a3e;background:#f7e4a8;border:2px solid #b58a3c;border-radius:14px;flex:none;place-items:center;width:52px;height:52px;display:grid;box-shadow:0 3px #c4a76d}.mode-icon svg{width:30px;height:30px}#app .mode-eyebrow{font:900 12px/1.2 var(--scene-font);letter-spacing:1.5px;color:#856029}#app .mode-modal .button.primary{color:#fff4dc;min-height:50px;font:900 18px var(--scene-font);text-shadow:0 1px 1px #17402a;background:linear-gradient(#409b65,#2f8a57);border:2px solid #1f5a39;border-radius:12px;padding:10px 18px;box-shadow:0 4px #17402a}#app .mode-modal .button.secondary{color:#53401f;background:#f8edcf;border:1px solid #a3814e;border-radius:10px;font-weight:800}#app .mode-modal button:enabled:active{translate:0 2px;box-shadow:0 1px #694e2d}#app .mode-modal button:focus-visible{outline-offset:3px;outline:3px solid #357a50}.daily-today-card{background:#fff7e299;border:1px solid #baa36e;border-radius:12px;grid-template-columns:64px minmax(0,1fr);align-items:center;column-gap:12px;margin-top:18px;padding:12px;display:grid}.daily-today-card>.art{filter:drop-shadow(0 3px 2px #7d673455);grid-area:1/1/3;width:64px;height:64px;position:relative!important;inset:auto!important}.daily-today-card .button{width:100%;margin:0!important}#app .daily-today-card .mode-note{color:#665736;margin:8px 0 0;font-size:12px}#app .mode-stats{grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0;display:grid}#app .mode-stats>span{text-align:center;color:#6d5a33;background:#e2d1a75c;border:1px solid #bfaa78;border-radius:10px;padding:10px 6px;font-size:12px}#app .mode-stats b{font:900 23px/1.1 var(--scene-font);color:#30543a;margin-bottom:4px}#app .calendar-heading{border-top:1px solid #b9a36c;gap:10px;margin-top:10px;padding-top:12px}#app .calendar-heading h3{font-size:18px}#app .calendar-heading button{color:#5c4929;background:#f9efcf;border:1px solid #b39a66;border-radius:50%;width:44px;font-size:24px}#app .daily-calendar{gap:6px;margin:8px 0 14px}#app .daily-calendar>button{color:#58431f;background:linear-gradient(#fff4d8,#e9d8ab);border:1px solid #bca370;border-radius:10px;min-height:48px;box-shadow:0 2px #c7b182}#app .daily-calendar b{font-family:var(--scene-font);font-size:17px}#app .daily-calendar small{font-size:12px}#app .daily-calendar [aria-current=date]{color:#fff4dc;background:#2f8a57;border:2px solid #e2bf59;box-shadow:0 0 0 2px #2f8a5733}#app .daily-calendar button:disabled{opacity:.42;box-shadow:none}.mode-rules{border-top:1px solid #c6b380;margin:16px 0 8px;padding-top:4px}.mode-rules summary{cursor:pointer;color:#766039;align-items:center;font-weight:800;display:flex}.mode-records{color:#75613a;font-size:12px!important}.expedition-brief{text-align:center;background:#fff7e299;border:1px solid #bca370;border-radius:12px;margin:18px 0;padding:18px}.expedition-party{justify-content:center;align-items:end;gap:10px;margin-bottom:10px;display:flex}.expedition-party>.art{filter:drop-shadow(0 3px 2px #7d673455);width:64px;height:68px;position:relative!important;inset:auto!important}.expedition-brief strong{color:#30543a;font-size:20px}#app .expedition-brief p{color:#6d5a33;margin:8px 0 0}#app .expedition-route>h3{color:#6d5a33;margin:18px 0 0;font-size:16px}#app .expedition-route .patrol-road{margin-top:6px}#app .expedition-restart-note{color:#75613a;margin:3px 0 8px;font-size:12px}#app .phase-upgrade .expedition-route>h3,#app .phase-upgrade .expedition-restart-note{display:none}#app .patrol-road{grid-template-columns:repeat(8,1fr);gap:7px;margin:18px 0;position:relative}#app .patrol-road li{color:#776541;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:3px;height:68px;display:flex}.patrol-road li>b{background:#e3d7b5;border:2px solid #b3a174;border-radius:50%;place-items:center;width:36px;height:36px;font-size:16px;display:grid;box-shadow:0 3px #b7a477}.patrol-road li>small{white-space:nowrap;font-size:11px}#app .patrol-road .cleared{color:#2f7047}.patrol-road .cleared>b{color:#fff4dc;background:#367b4e;border-color:#d7ba6d}#app .patrol-road .current{color:#2f7047;outline:0}.patrol-road .current>b{color:#fff4dc;background:#2f8a57;border-color:#fff4dc;box-shadow:0 0 0 3px #d1a64388,0 3px #25573a}#app .patrol-team{grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0;display:grid}.patrol-member{background:#fff2d280;border:1px solid #bda571;border-radius:10px;grid-template-columns:44px minmax(0,1fr);align-items:center;padding:8px 6px;font-size:12px;display:grid}.patrol-member>.art{width:44px;height:50px;position:relative!important;inset:auto!important}.patrol-member>span{min-width:0}.patrol-member b{color:#34623e;font-size:18px!important}.patrol-budget{color:#715e38;margin:8px 0;font-size:13px!important}#app .upgrade-offers{gap:10px}#app .upgrade-offers button{color:#fff4dc;background:linear-gradient(#365a40,#213d30);border:2px solid #a7803f;border-radius:12px;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:12px;padding:12px;box-shadow:0 4px #816137}#app .upgrade-offers strong{font:900 19px var(--scene-font)}#app .upgrade-offers span{font:14px/1.35 var(--scene-font)}.upgrade-portrait{width:48px;height:54px;position:relative}.upgrade-portrait>.art{width:100%;height:100%;position:absolute!important;inset:0!important}.upgrade-description{gap:4px;display:grid}.active-upgrade-list{gap:10px;margin:18px 0;padding:0;list-style:none;display:grid}.active-upgrade-list li{background:#fff2d180;border:1px solid #b9a371;border-radius:10px;grid-template-columns:50px 1fr;align-items:center;gap:12px;padding:12px;display:grid}.active-upgrade-list .art{width:50px;height:54px;position:relative!important;inset:auto!important}.active-upgrade-list strong,.active-upgrade-list small{display:block}.active-upgrade-list small{margin-top:4px;font-size:14px;line-height:1.5}#app.scene-ui .mode-upgrade-button{color:#3b2a17;width:44px;min-width:44px;height:44px;min-height:44px;font:900 13px var(--scene-font);background:#f3e6c4;border:2px solid #b88a3e;border-radius:12px;justify-content:center;align-items:center;gap:2px;padding:4px;display:flex;position:relative;box-shadow:0 3px #78582f}#app.scene-ui .mode-upgrade-button .hud-icon{width:22px;height:22px}#app.scene-ui .scene-tools:has(.mode-upgrade-button){grid-template-columns:repeat(2,minmax(44px,1fr));gap:10px;display:grid}#app.scene-ui .scene-tools:has(.mode-upgrade-button)>button{width:100%;height:64px}.mode-upgrade-label{font-size:12px}#app .mode-result .result-summary{font-family:var(--scene-font);color:var(--scene-parchment-ink);font-size:14px}#app.scene-ui .mode-result.result-won .result-summary{margin:8px 0 14px;display:block}#app .phase-upgrade .mode-intro,#app .phase-upgrade .upgrade-lead,#app .phase-upgrade .mode-rules,#app .phase-upgrade .mode-records,#app .phase-upgrade .expedition-reward-schedule{display:none}#app .phase-upgrade .patrol-road{margin:10px 0}#app .phase-upgrade .patrol-road li{height:50px}#app .phase-upgrade .patrol-team{margin:8px 0}#app .phase-upgrade .patrol-budget{display:none}#app .phase-upgrade .patrol-member>.art{height:40px}#app .phase-upgrade h3{margin:12px 0}#app .mode-result.result-lost .result-art{display:none}#app .mode-result.result-lost .result-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}#app .mode-result.result-lost .result-actions .button{min-height:48px;font-size:16px}#app .mode-result.result-lost{font-family:var(--scene-font)}#app .mode-result.result-lost h2{font:900 24px/1.2 var(--scene-font);margin:10px 0 14px;padding:0 28px}#app .mode-result.result-lost .result-actions>button{font:800 16px/1.2 var(--scene-font);color:#53401f;background:#f8edcf;border:2px solid #a3814e;border-radius:10px;min-height:48px;padding:10px 14px;box-shadow:0 3px #aa8d5b}#app .mode-result.result-lost .result-actions>.primary{color:#fff4dc;background:linear-gradient(#409b65,#2f8a57);border-color:#1f5a39;box-shadow:0 3px #17402a}#app .mode-result.result-lost .result-actions>button:disabled{opacity:.45;box-shadow:none}#app .mode-result.result-lost>.modal-close{color:#53401f;width:44px;min-width:44px;height:44px;font:900 24px/1 var(--scene-font);background:#f8edcf;border:1px solid #a48045;border-radius:50%;top:10px;right:10px}@media (width<=600px){#app .mode-modal{border-radius:14px;padding:16px}#app .mode-modal h2{font-size:26px}.mode-card-heading{gap:10px;min-height:50px;padding-right:32px}.mode-icon{width:44px;height:44px}#app .daily-today-card{grid-template-columns:48px minmax(0,1fr);gap:8px;margin-top:12px;padding:10px}.daily-today-card>.art{width:48px;height:54px}#app .daily-today-card .button.primary{min-height:48px;padding:8px;font-size:15px}#app .mode-stats{margin:12px 0}.mode-stats>span{padding:8px 4px}#app .daily-calendar{gap:4px}#app .daily-calendar>button{min-height:44px}#app .patrol-road{grid-template-columns:repeat(4,1fr);row-gap:6px;margin:14px 0}#app .patrol-road li{height:56px}.patrol-road li>b{width:30px;height:30px}#app .patrol-team{gap:5px}.patrol-member{text-align:center;grid-template-columns:1fr;justify-items:center;padding:6px 3px}.patrol-member>.art{width:46px;height:46px}.patrol-member b{display:inline;font-size:15px!important}#app .phase-upgrade .patrol-road{justify-content:space-between;gap:3px;margin:10px 0;display:flex}#app .phase-upgrade .patrol-road li{height:28px}#app .phase-upgrade .patrol-road small,#app .phase-upgrade .mode-records,#app .phase-upgrade .mode-rules{display:none}#app .phase-upgrade .patrol-team{margin:8px 0}.phase-upgrade .patrol-member>.art{width:36px;height:32px}#app .phase-upgrade .upgrade-offers button{grid-template-columns:40px minmax(0,1fr);gap:8px;min-height:76px;padding:10px}#app .phase-upgrade .upgrade-offers strong{font-size:16px}.phase-upgrade .upgrade-portrait{width:40px;height:46px}}@media (orientation:landscape) and (height<=600px){#app.scene-ui .scene-tools:has(.mode-upgrade-button)>button{height:48px}.mode-upgrade-label{display:none}}@media (orientation:portrait){#app.scene-ui .scene-tools:has(.mode-upgrade-button){gap:8px;display:flex}#app.scene-ui .scene-tools:has(.mode-upgrade-button)>.scene-tool{width:56px}#app.scene-ui .scene-tools:has(.mode-upgrade-button)>.mode-upgrade-button{z-index:4;width:46px;height:46px;position:fixed;top:14px;right:66px}.mode-upgrade-label{display:none}}@media (orientation:portrait) and (height<=700px){#app.scene-ui .scene-tools:has(.mode-upgrade-button){gap:6px}#app.scene-ui .scene-tools:has(.mode-upgrade-button)>button{width:44px;height:56px}#app.scene-ui .scene-tools:has(.mode-upgrade-button)>.mode-upgrade-button{width:44px;height:56px;position:relative;top:auto;right:auto}}@media (orientation:portrait){#app.scene-ui .scene-tools:has(.mode-upgrade-button)>.scene-tool[data-hint]{width:46px;height:46px}}@media (orientation:portrait) and (height<=700px){#app.scene-ui .scene-tools:has(.mode-upgrade-button)>.scene-tool[data-hint]{width:44px;height:44px}}@media (orientation:landscape) and (height<=550px){#app .expedition-hub.phase-upgrade{width:min(760px,100vw - 24px);padding:16px}#app .phase-upgrade .patrol-road li{height:36px}#app .phase-upgrade .patrol-team{margin:6px 0}#app .phase-upgrade .upgrade-offers{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}#app .phase-upgrade .upgrade-offers button{grid-template-columns:minmax(0,1fr);align-content:center;min-height:128px;padding:10px}#app .phase-upgrade .upgrade-portrait{display:none}#app .phase-upgrade .upgrade-offers strong{font-size:18px}#app .expedition-brief{text-align:left;grid-template-columns:110px minmax(0,1fr);gap:4px 12px;margin:10px 0;padding:10px;display:grid}.expedition-brief .expedition-party{grid-row:1/3;margin:0}.expedition-brief .expedition-party>.art{width:32px;height:42px}#app .expedition-brief strong{font-size:17px}#app .expedition-brief p{margin:0;font-size:12px}}.companion-book{box-sizing:border-box;color:#293e32;width:min(920px,100vw - 32px);max-width:none;height:min(720px,100dvh - 32px);max-height:calc(100dvh - 32px);font-family:var(--scene-font);background:#ece0bb;border:2px solid #be9d5a;border-radius:18px;padding:20px;overflow:hidden;box-shadow:0 16px 80px #0009}.companion-book[open]{grid-template-rows:auto auto minmax(0,1fr) auto;gap:14px;display:grid}.companion-book::backdrop{background:#11251bd9}.companion-book header{justify-content:space-between;align-items:center;gap:12px;display:flex}.companion-book h2,.companion-book h3,.companion-book p{margin:0}.companion-book header small{text-transform:uppercase;letter-spacing:.08em;color:#586346;font-size:12px;font-weight:800}.companion-book h2{font-size:28px;line-height:1.15}.companion-book button{min-height:44px;font:800 16px var(--scene-font);color:#293e32;cursor:pointer;background:#f6ebcd;border:1px solid #a78c4f;border-radius:10px}.companion-book .companion-close{flex:none;width:44px;font-size:28px}.companion-book nav{gap:8px;display:flex}.companion-book nav button{flex:1}.companion-book nav button[aria-pressed=true]{color:#fff4d7;background:#365b42;box-shadow:inset 0 -3px #efc65b}.companion-pages{overscroll-behavior:contain;scrollbar-gutter:stable;grid-template-columns:minmax(200px,38%) minmax(0,1fr);align-items:start;gap:24px;min-height:0;padding:0 8px 12px 0;display:grid;overflow:auto}.companion-pages figure{margin:0;position:sticky;top:0}.companion-pages img{aspect-ratio:4/5;object-fit:contain;background:#80976b;border-radius:12px;width:100%;height:auto;display:block}.companion-pages figcaption{text-align:center;padding:10px 0;font-size:14px;font-style:italic;line-height:1.4}.companion-pages article{font:400 16px/1.5 var(--scene-font);flex-direction:column;align-self:stretch;display:flex}.companion-pages .companion-biography{flex-direction:column;flex:1;justify-content:space-between;gap:18px;display:flex}.companion-pages .companion-biography>p{font:inherit;margin:0;font-size:16px;line-height:1.5}.companion-pages .companion-role{color:#596747;margin-bottom:0;font-size:13px;font-weight:800}.companion-pages h3{font-size:36px;line-height:1.2}.companion-pages blockquote{border-left:3px solid #ab8339;margin:14px 0;padding-left:12px;font-weight:800}.companion-book footer{justify-content:flex-end;display:flex}.companion-book footer button{color:#fff4d7;background:#4c7941;border-color:#90ac5e;min-width:120px}#app.scene-ui .hero-card .hero-name{line-height:1.12}#app.scene-ui .hero-card .hero-role{font:700 12px/1.2 var(--scene-font);color:var(--scene-text);margin-top:3px;display:block}@media (orientation:portrait){.companion-book{gap:10px;padding:14px}.companion-book h2{font-size:22px}.companion-pages{padding-right:8px;display:block}.companion-pages figure{max-width:220px;margin:0 auto 16px;position:static}.companion-pages h3{font-size:30px}#app.scene-ui .hero-card .hero-name{font-size:12px;display:block}#app.scene-ui .hero-card .hero-role{display:none}#app.scene-ui .hero-card .hero-portrait{width:32px;height:32px}#app.scene-ui .hero-card:has(.hero-moves) .hero-portrait{width:30px;height:30px;left:calc(50% - 15px)}}@media (orientation:landscape) and (height<=600px){.companion-book{gap:8px;padding:12px}.companion-book h2{font-size:22px}.companion-pages{grid-template-columns:180px 1fr;gap:18px}#app.scene-ui .hero-card .hero-name{font-size:12px;display:block}#app.scene-ui .hero-card .hero-role{display:none}#app.scene-ui .hero-card .hud-hearts{grid-row:2}}.home-tools{gap:8px}.home-tools button{white-space:nowrap;padding-inline:3px}.companion-book :is(button,.companion-pages):focus-visible{outline-offset:2px;outline:3px solid #916a26}#app.scene-ui .hero-profile-frame{flex:none;width:100%;min-width:0;position:relative}#app.scene-ui .hero-profile-frame>.hero-card{width:100%}#app.scene-ui .companion-entry{width:44px;min-width:44px;height:44px;min-height:44px;color:var(--scene-gold);box-shadow:none;z-index:3;cursor:pointer;background:0 0;border:0;border-radius:10px;place-items:start end;padding:5px;display:grid;position:absolute;top:0;right:0}#app.scene-ui .companion-entry svg{filter:drop-shadow(0 1px 1px #142019);width:18px;height:18px}#app.scene-ui .companion-entry-new svg{animation:companion-entry-glint var(--companion-entry-flash) ease-out 1}#app.scene-ui .companion-entry:focus-visible{outline:2px solid var(--scene-gold);outline-offset:1px;background:var(--scene-panel)}#app.scene-ui .hero-profile-frame .hero-done{top:auto;bottom:5px}@keyframes companion-entry-glint{0%,to{filter:drop-shadow(0 1px 1px #142019)}35%{color:#fff5d4;filter:drop-shadow(0 0 5px #f2c14e);transform:scale(1.15)}}@media (orientation:portrait){#app.scene-ui .hero-profile-frame{flex:1;width:auto;height:100%}#app.scene-ui .hero-profile-frame>.hero-card{height:100%}}#app.scene-ui[data-motion=reduced] .companion-entry-new svg{animation:none}@media (orientation:portrait) and (height<=700px){.companion-pages figure{max-width:160px}}#app.scene-ui .chapter-subtitle>.companion-speaker{flex:none;width:40px;height:40px;display:block}#app.scene-ui .ally-bubble{z-index:42;box-sizing:border-box;color:#3b2a17;font:800 12px/1.1 var(--scene-font);text-align:left;background:#f3e6c4;border:1px solid #a89366;border-radius:10px;grid-template-columns:minmax(0,1fr);gap:2px;padding:4px;display:grid;position:absolute;box-shadow:0 2px 5px #07170f66}#app.scene-ui .ally-names{font:900 12px/1.15 var(--scene-font);overflow-wrap:normal;padding-right:12px;display:block}#app.scene-ui .ally-cost{font:900 12px/1.1 var(--scene-font);color:#8a2830;display:block}#app.scene-ui .ally-bubble-actions{gap:4px;display:flex}#app.scene-ui .ally-bubble button{box-sizing:border-box;color:#3b2a17;min-width:44px;min-height:44px;font:900 13px/1.1 var(--scene-font);box-shadow:none;background:#eee0bd;border:1px solid #aa946c;border-radius:6px;flex:1;margin:0;padding:3px}#app.scene-ui .ally-bubble .ally-attack{color:#7a1f24;background:#f7ead0;border-color:#9f6660}#app.scene-ui .ally-bubble .ally-close{text-align:left;background:0 0;border:0;width:100%;padding:0;position:relative}#app.scene-ui .ally-close-mark{font:900 18px/1 var(--scene-font);position:absolute;top:0;right:0}#app.scene-ui .ally-bubble [aria-pressed=true]{box-shadow:inset 0 0 0 2px #a87918}#app.scene-ui .ally-bubble[data-narrow=true] .ally-bubble-actions{gap:2px;min-width:0}#app.scene-ui .ally-bubble[data-narrow=true] .ally-bubble-actions button{flex:1 1 0;width:0;padding:0;font-size:12px}#app.scene-ui .ally-bubble button:focus-visible{outline-offset:1px;outline:3px solid #a87918}#app.scene-ui .ally-bubble[data-compact=true]{border:0;width:44px;height:44px;padding:0}#app.scene-ui .ally-bubble[data-compact=true] :is(.ally-names,.ally-cost,.ally-close,[data-ally-preview]){display:none}#app.scene-ui .ally-bubble[data-compact=true] .ally-attack{width:44px;height:44px;font-size:22px}@media (width>=1280px){#app.scene-ui .ally-names,#app.scene-ui .ally-cost{font-size:14px}#app.scene-ui .ally-bubble button:not(.ally-close){font-size:16px}}#app.scene-ui .pause-header{z-index:10;background:var(--scene-parchment);box-shadow:0 -32px 0 0 var(--scene-parchment),0 4px 0 0 var(--scene-parchment);border-bottom:1px solid var(--scene-parchment-edge);grid-template-columns:auto minmax(0,1fr) 44px;align-items:center;gap:12px;margin-bottom:18px;padding:0 0 12px;display:grid;position:sticky;top:0}#app.scene-ui .pause-header h2{text-align:center;font:900 24px/1.15 var(--scene-font);margin:0}#app.scene-ui .pause-header .modal-close{color:var(--scene-parchment-ink);border:1px solid var(--scene-parchment-edge);border-radius:8px;position:static;inset:auto}#app.scene-ui .pause-header .pause-home{background:var(--scene-panel);width:auto;min-width:44px;min-height:44px;color:var(--scene-text);border:2px solid var(--scene-gold-edge);font:900 15px/1 var(--scene-font);white-space:nowrap;justify-content:center;align-items:center;gap:7px;padding:8px 10px;display:inline-flex}#app.scene-ui .pause-home .hud-icon{width:23px;height:23px}#app.scene-ui .pause-header .pause-home:hover{background:#365b42}#app.scene-ui .pause-header button:focus-visible{outline:3px solid var(--scene-gold-edge);outline-offset:2px}@media (width<=420px){#app.scene-ui .pause-header{gap:8px}#app.scene-ui .pause-header h2{font-size:19px}#app.scene-ui .pause-header .pause-home{gap:5px;padding:8px;font-size:14px}}#app.scene-ui .pause-menu .explanations>summary{scroll-margin-top:65px;top:61px}#app.scene-ui .board-coordinates{z-index:13;pointer-events:none;color:#fff0c2;font:900 12px/1 var(--scene-font);text-shadow:0 1px 2px #241508,1px 0 1px #241508,-1px 0 1px #241508;position:absolute;inset:0}#app.scene-ui .board-coordinates span{text-align:center;min-width:.7em;position:absolute;transform:translate(-50%,-50%)}#app.scene-ui .board-coordinates [data-active=true]{color:#fff9df;text-shadow:0 0 4px #f2c14e,0 1px 2px #241508}#app.scene-ui .cell[data-hint-source=true]{box-shadow:inset 0 0 0 3px #f2c14e,inset 0 0 16px #f2c14e55}#app.scene-ui .cell[data-hint-destination=true]{outline-offset:-5px;outline:3px solid #ffe69a}#app.scene-ui .hint-coordinate{z-index:11;pointer-events:none;color:#3b2a17;font:900 12px/1.15 var(--scene-font);text-shadow:none;background:#fff3d5;border:1px solid #b88a3e;border-radius:4px;padding:1px 4px;position:absolute;bottom:4px;right:4px}#app.scene-ui .board-frame{position:relative}#app.scene-ui .board-hint{z-index:12;box-sizing:border-box;color:#3b2a17;font-family:var(--scene-font);pointer-events:auto;background:#fff3d5;border:2px solid #b88a3e;border-radius:12px;gap:2px;padding:6px;display:grid;position:absolute;box-shadow:0 3px #704b2877,0 3px 10px #10251f55}#app.scene-ui .board-hint p{font:900 14px/1.15 var(--scene-font);overflow-wrap:normal;min-height:16px;margin:0}#app.scene-ui .hint-heading{font:800 12px/1 var(--scene-font);color:#766039}#app.scene-ui .board-hint-actions{justify-content:space-between;gap:0;display:flex}#app.scene-ui .board-hint button{color:#3b2a17;min-width:44px;min-height:44px;font:900 14px/1 var(--scene-font);box-shadow:none;background:0 0;border:0;border-radius:8px;padding:3px}#app.scene-ui .board-hint [data-hint-more]{color:#fff4dc;background:#367b4e;flex:1}#app.scene-ui .board-hint [data-hint-close]{font-size:24px}#app.scene-ui .board-hint button:disabled{opacity:.45}#app.scene-ui .board-hint button:focus-visible{outline-offset:1px;outline:3px solid #d39a29}#app.scene-ui .board-hint[data-compact=true]{gap:2px;padding:3px}#app.scene-ui .board-hint[data-compact=true] .hint-heading{display:none}#app.scene-ui .board-hint:after{content:"";pointer-events:none;background:#fff3d5;border:2px solid #b88a3e;border-width:0 2px 2px 0;width:9px;height:9px;position:absolute}#app.scene-ui .board-hint[data-direction=bottom]:after{bottom:-6px;left:calc(50% - 4px);transform:rotate(45deg)}#app.scene-ui .board-hint[data-direction=top]:after{top:-6px;left:calc(50% - 4px);transform:rotate(225deg)}#app.scene-ui .board-hint[data-direction=right]:after{top:calc(50% - 4px);right:-6px;transform:rotate(-45deg)}#app.scene-ui .board-hint[data-direction=left]:after{top:calc(50% - 4px);left:-6px;transform:rotate(135deg)}#app.scene-ui .board-hint[data-placement=edge]{align-items:center;gap:4px;display:flex}#app.scene-ui .board-hint[data-placement=edge] p{flex:1}#app.scene-ui .board-hint[data-placement=edge]:after{display:none}#app.scene-ui .board-hint[data-placement=micro]{border:0;width:44px;height:44px;padding:0;overflow:hidden}#app.scene-ui .board-hint[data-placement=micro] button{word-break:break-all;width:44px;height:44px;padding:3px;font-size:12px;line-height:12px;overflow:hidden}#app.scene-ui .board-hint[data-placement=micro]:after{display:none}
