/* The story surrounds the battle; the existing command and replay controls stay clear. */
:root{--story-gold:#e2d8a2;--story-ink:#111c20;--story-muted:#b7c9c0}
body[data-act="1"]{--story-gold:#a5e2e6;--story-ink:#0d2029;--story-muted:#bbd2dc}
body[data-act="2"]{--story-gold:#e2c3f5;--story-ink:#1c162c;--story-muted:#c9c1dc}
body[data-campaign="true"]{background:radial-gradient(ellipse at 75% 0,#233b3938,transparent 55%),#0f171a}
body[data-act="1"]{background:radial-gradient(ellipse at 65% 0,#18567545,transparent 60%),#0e1820}
body[data-act="2"]{background:radial-gradient(ellipse at 70% 0,#49386550,transparent 60%),#141420}
.page-intro{padding-bottom:12px}
.campaign-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 12px;color:var(--story-muted)}
.campaign-toolbar>span{font-size:10px;letter-spacing:1.6px}
.campaign-toolbar>.text-button{font-size:12px;min-height:38px;padding:6px 14px;border:1px solid #67776570;border-radius:20px;color:var(--story-gold)}
.campaign-acts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:10px}
.act-tab{text-align:left;display:grid;grid-template-columns:auto minmax(0,1fr);gap:3px 10px;border:1px solid #546b5e70;background:linear-gradient(120deg,#24363199,#162225);border-radius:11px;padding:12px 14px;min-height:73px;color:#a9beb6;transition:border-color .2s,background .2s;position:relative;overflow:hidden}
.act-tab:nth-child(2){background:linear-gradient(110deg,#18374499,#15202b)}
.act-tab:nth-child(3){background:linear-gradient(110deg,#37284599,#1c1a29)}
.act-tab>span{font-size:10px;letter-spacing:1px;align-self:center;white-space:nowrap}
.act-tab>strong{font-family:Georgia,'Noto Serif TC',serif;font-size:19px;font-weight:400;line-height:1.3;color:#d4e1d7}
.act-tab>small{grid-column:2;font-size:11px;color:#a7bfb7;line-height:1.4}
.act-tab.selected{border-color:var(--story-gold);box-shadow:inset 0 -2px var(--story-gold),0 4px 24px #09141840}
.act-tab.selected strong,.act-tab.selected>span{color:var(--story-gold)}
.act-tab:focus-visible,.map-stop>button:focus-visible,.journal-tab:focus-visible,.journal-chapter:focus-visible,.ending-choice:focus-visible{outline:3px solid #edf9c5;outline-offset:3px}
body[data-campaign="true"] .campaign-map{margin-bottom:12px}
body[data-campaign="true"] .map-stop{padding:0;display:block;position:relative;overflow:hidden;background:#15231fc9}
body[data-campaign="true"] .map-stop>button{display:flex;align-items:center;gap:9px;width:100%;min-height:48px;height:100%;border:0;background:transparent;color:inherit;text-align:left;padding:9px 11px;border-radius:9px;font-size:11px}
.map-stop>button>span{border:1px solid #6f846880;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;flex:none;font-size:11px}
.map-stop>button>strong{font-weight:500;line-height:1.4;overflow-wrap:normal}
.map-stop>button>small{font-size:14px;margin-left:auto;color:var(--story-gold)}
.map-stop.current>button>span,.map-stop.cleared>button>span{background:var(--story-gold);color:#21302b;border-color:transparent}
.map-stop>button:disabled{opacity:.48;cursor:default}
body[data-campaign="true"] .map-stop.current{border-color:var(--story-gold);background:#2a3d3490}
.chapter-brief{display:flex;align-items:center;gap:20px;border-left:2px solid var(--story-gold);padding:8px 0 9px 14px;margin:14px 0 18px;color:#e2ebe3}
.chapter-brief>div:first-child{min-width:0;flex:1}
.chapter-brief .micro{font-size:9px;letter-spacing:1.25px;color:var(--story-gold)}
.chapter-brief h2{margin:3px 0 4px;font-size:19px;font-weight:500;line-height:1.3}
.chapter-brief p{font-size:12px;line-height:1.5;color:var(--story-muted);max-width:800px;margin:0}
.brief-actions{display:flex;gap:8px;flex:none}
.brief-actions .secondary-button{font-size:12px;min-height:42px;padding:8px 12px;background:#24392c75;border:1px solid #8da58280;border-radius:9px}
body[data-act="1"] .brief-actions .secondary-button{background:#233641}
body[data-act="2"] .brief-actions .secondary-button{background:#332d43}
.quick-builds{padding:10px 11px;margin:12px 0;background:#10211a;border:1px solid #506c4e;border-radius:10px}
.quick-builds>div{display:flex;gap:7px;margin:8px 0}
.quick-builds .secondary-button{padding:8px 10px;font-size:12px;min-height:41px;flex:1;background:#2c4130}
.quick-builds .secondary-button:disabled{opacity:.4;cursor:default}
.quick-builds>p{font-size:11px;color:#b6cbb0;line-height:1.5;margin:5px 0 0}
.quick-builds .micro{color:#d6e8ae}
.build-status{font-size:12px;line-height:1.6;color:#e4eab3;margin:10px 0 0}
.build-status:empty{display:none}
.campaign-notice{font-size:13px;line-height:1.6;color:#dcebd3;border:1px solid #92b9a075;background:#2d494040;padding:12px;border-radius:10px}
.camp-conversation{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px 12px;padding:13px 0 7px;margin-top:10px;border-top:1px solid #80927440}
.camp-conversation strong{font-size:14px;font-weight:500;color:var(--story-gold)}
.camp-conversation p{font-size:11px;line-height:1.5;color:#c0cdb8;margin:5px 0 0}
.camp-portraits{display:flex;align-items:end;width:93px;height:76px;overflow:hidden;filter:drop-shadow(0 4px 5px #0003)}
.camp-portraits>span{display:block;flex:none;width:39px;margin-left:-8px}
.camp-portraits>span:first-child{margin-left:0}
.camp-portraits svg{width:44px;height:75px}
.camp-conversation>.secondary-button{grid-column:1/-1;width:100%;min-height:40px;font-size:12px;padding:8px;background:#30443175}
.checkpoint-note{display:flex;gap:10px;align-items:center;margin-top:12px;padding:12px;background:#14251ca0;border-radius:9px;border:1px dashed #758a5f70}
.checkpoint-note>span{color:#dbe8a3;font-size:21px}
.checkpoint-note strong{font-size:11px;letter-spacing:.2px;color:#d1dfbd}
.checkpoint-note p{font-size:11px;line-height:1.4;margin:4px 0 0;color:#a9bc9c}
.outcome-new-run{margin:18px auto 0;display:flex;justify-content:center;gap:8px}
.outcome-new-run>svg{width:17px;height:17px}
.ending-summary{margin-top:20px;padding:21px 18px;border:1px solid #bfa8ce80;border-radius:14px;background:radial-gradient(ellipse at top,#665a7538,transparent 80%),#1c2426;text-align:left}
.ending-summary h3{font-family:Georgia,'Noto Serif TC',serif;font-size:26px;font-weight:400;line-height:1.3;color:#f0d5f4;margin:8px 0 12px}
.ending-summary p{font-size:13px;line-height:1.7;color:#d1c6d3;margin:8px 0}
.ending-summary .secondary-button{margin-top:12px;min-height:47px;width:100%;border-color:#b8a3c5;color:#f2d9ee;background:#493956}
.ending-summary .text-button{display:flex;justify-content:center;min-height:42px;margin:7px auto 0;color:#deccdf;font-size:12px}
.ending-summary .ending-saved{color:#decaa7;font-size:11px}
/* The dialogue has a still, readable text panel and a living illustrated scene. */
.game-dialog.story-dialog{width:min(1030px,calc(100% - 28px));max-width:1030px;max-height:calc(100dvh - 26px);padding:0;border-radius:19px;overflow:auto;border:1px solid #8a9a8080;background:#16231f;color:#edf3e6;box-shadow:0 30px 140px #000b}
.story-dialog::backdrop,.journal-dialog::backdrop{background:#050d13d4;backdrop-filter:blur(10px)}
.story-illustration{position:relative;width:100%;height:300px;min-height:180px;overflow:hidden;background:#162b35;flex:none}
.story-landscape{position:absolute;inset:0}
.story-landscape>svg{width:100%;height:100%;display:block;object-fit:cover}
.story-letterbox{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;padding:30px 36px;background:linear-gradient(0deg,#111d23 0,transparent 77%);pointer-events:none}
.story-letterbox .micro{color:#f5e3b9;letter-spacing:2px;font-size:11px;text-shadow:0 2px 5px #000}
.story-letterbox h2{font-family:Georgia,'Noto Serif TC',serif;font-size:38px;line-height:1.12;letter-spacing:.3px;color:#f4f0d7;font-weight:400;max-width:88%;margin:9px 0;text-shadow:0 2px 12px #0009}
.story-letterbox p{font-size:12px;color:#d1e2dc;letter-spacing:1px;margin:0}
.story-close.icon-button{position:absolute;right:15px;top:15px;width:42px;height:42px;background:#11221cd9;border:1px solid #cad9bd80;color:#f3efd3;border-radius:50%;font-size:27px;z-index:2}
.story-dialogue{display:grid;grid-template-columns:140px minmax(0,1fr);align-items:center;gap:25px;padding:16px 36px 20px;min-height:203px;background:linear-gradient(125deg,#1f342b,#192527)}
.story-portrait{width:140px;height:168px;align-self:end;display:grid;place-items:center;filter:drop-shadow(0 9px 9px #0004)}
.story-portrait>svg{width:132px;height:168px;max-width:100%}
.story-portrait>img{height:168px;width:140px;object-fit:contain}
.story-words{align-self:center;min-width:0}
.story-words>strong{font-size:11px;color:#dbdfa9;text-transform:uppercase;letter-spacing:1.6px;display:block;margin-bottom:9px}
.story-words>p{font-size:20px;line-height:1.7;margin:0;color:#edf1e4;font-family:Georgia,'Noto Serif TC',serif;overflow-wrap:break-word}
.story-progress-track{height:2px;background:#75836935}
.story-progress-track>span{display:block;height:100%;background:linear-gradient(90deg,#8fa56e,#e6eeb4);transition:width .2s}
.story-controls{display:flex;align-items:center;gap:12px;padding:20px 30px 9px}
.story-controls>div{margin-right:auto;display:flex;flex-direction:column;gap:4px}
.story-controls>div>span{font-size:11px;color:#d0ddbd;line-height:1.4}
.story-controls>div>small{font-size:10px;color:#9eb196;line-height:1.4}
.story-controls .primary-button,.story-controls .secondary-button{min-height:48px;min-width:105px;padding:11px 17px;font-size:13px;line-height:1.4;border-radius:10px}
.story-controls .primary-button{background:linear-gradient(125deg,#e5edb2,#bdd396);color:#213426;border-color:#d8e6ae}
.story-controls .secondary-button{background:#283b2f;border-color:#809371;color:#dfeacc}
.story-controls .secondary-button:disabled{opacity:.35}
.story-skip.text-button{display:block;margin:0 28px 12px auto;min-height:36px;padding:6px 0;color:#b4c5a6;font-size:11px}
.story-dialog[data-act="1"] .story-dialogue{background:linear-gradient(125deg,#1b3844,#182832)}
.story-dialog[data-act="1"] .story-words>strong{color:#b8e8ed}
.story-dialog[data-act="2"] .story-dialogue{background:linear-gradient(125deg,#3a3046,#242739)}
.story-dialog[data-act="2"] .story-words>strong{color:#e5c1ec}
/* The journal is an unlocked story archive, with enemy intents and character voices. */
.game-dialog.journal-dialog{width:min(1100px,calc(100% - 28px));max-width:1100px;max-height:calc(100dvh - 30px);padding:25px 28px;background:linear-gradient(145deg,#24312e,#131f24);border:1px solid #8a9a8080;border-radius:19px;overflow:auto}
.journal-dialog .dialog-heading{margin-bottom:17px}
.journal-dialog .dialog-heading h2{font-family:Georgia,'Noto Serif TC',serif;font-size:29px;font-weight:400;margin:6px 0}
.journal-tabs{display:flex;gap:8px;border-bottom:1px solid #687f6b60;margin:0 0 19px;padding-bottom:13px}
.journal-tab{border:1px solid #71836360;border-radius:8px;background:#23382b;min-height:44px;padding:9px 17px;font-size:13px;color:#cedcc5}
.journal-tab.active{border-color:#d3e3a7;color:#eff5d6;background:#435639}
#journal-content:has(.journal-world){display:grid;grid-template-columns:290px minmax(0,1fr);gap:22px}
.journal-world{max-height:510px;overflow:auto;padding:0 10px 0 0;scrollbar-width:thin;scrollbar-color:#63755b transparent}
.journal-act>h3{font-size:12px;line-height:1.4;letter-spacing:.4px;color:#decfa3;font-weight:500;margin:0 0 9px}
.journal-act+.journal-act{margin-top:18px}
.journal-act>div{display:flex;flex-direction:column;gap:5px}
.journal-chapter{display:grid;grid-template-columns:25px minmax(0,1fr);gap:2px 8px;align-items:center;min-height:55px;text-align:left;padding:8px;border-radius:9px;border:1px solid #4e675075;color:#d2ddc9;background:#17281f;width:100%}
.journal-chapter>span{grid-row:1/span 2;font-size:12px;color:#d9e7b1}
.journal-chapter>strong{font-size:12px;font-weight:500;line-height:1.45}
.journal-chapter>small{font-size:9px;color:#9eb18f}
.journal-chapter.selected{background:#364f33;border-color:#d0dfa7}
.journal-chapter:disabled{opacity:.4;cursor:default}
.journal-entry{min-width:0}
.journal-vista{height:203px;border-radius:12px;overflow:hidden;background:#122532;margin:0 0 18px;border:1px solid #74897855}
.journal-vista>svg{height:100%;width:100%;display:block}
.journal-entry>.micro{font-size:9px;letter-spacing:1px;color:#b9cba6}
.journal-entry h3{font-size:27px;font-family:Georgia,'Noto Serif TC',serif;font-weight:400;color:#eee9ce;margin:7px 0 12px;line-height:1.25}
.journal-entry>p{font-size:14px;line-height:1.75;color:#c7d4c7;margin:0 0 18px}
.journal-tactic{background:#14211c;border:1px solid #52674988;border-radius:10px;padding:12px 14px}
.journal-tactic>strong{font-size:10px;letter-spacing:1px;color:#d6dfb0}
.journal-tactic>p{font-size:12px;line-height:1.65;color:#bfceb5;margin:7px 0 10px}
.intent-cycle{display:flex;flex-wrap:wrap;gap:6px}
.intent-cycle>span{font-size:10px;line-height:1.5;background:#31402d;padding:5px 7px;border-radius:5px;color:#dae0c1}
.intent-cycle b{margin-left:4px;color:#f5d2a1;font-size:12px}
.journal-reading{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.journal-reading>.secondary-button{font-size:12px;min-height:43px;padding:9px 12px;flex:1 1 40%;background:#2b4131;border-color:#82946d}
.journal-reading>.secondary-button:disabled{opacity:.4}
.journal-footer-note{grid-column:1/-1;font-size:11px;color:#aebe9f;margin:0;line-height:1.6}
.journal-note{font-size:10px;color:#9faf9c;margin:19px 0 0;border-top:1px solid #59685460;padding-top:14px;line-height:1.5}
.companion-codex{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.companion-story{display:grid;grid-template-columns:75px minmax(0,1fr);gap:14px;padding:18px 15px;background:#15261f80;border:1px solid #59725270;border-radius:12px;align-items:start}
.codex-portrait{width:75px;height:105px;overflow:hidden;display:grid;place-items:center}
.codex-portrait>svg{width:81px;height:106px}
.companion-story .micro{font-size:9px;letter-spacing:.5px;color:#c6d4ad}
.companion-story h3{font-family:Georgia,'Noto Serif TC',serif;font-size:22px;color:#e9e8c8;margin:5px 0 8px;font-weight:400}
.companion-story p{font-size:12px;line-height:1.7;color:#bfcfbd;margin:7px 0 10px}
.companion-story details>summary{font-size:10px;letter-spacing:.3px;color:#d6ddb1;cursor:pointer;min-height:38px;padding-top:9px}
.companion-story details p strong{display:block;font-size:9px;letter-spacing:1px;color:#d1b994;margin-bottom:4px}
.companion-story.unknown{opacity:.48}
.companion-story.unknown .codex-portrait{filter:grayscale(1)}
.ending-intro{text-align:center;max-width:650px;margin:18px auto 25px}
.ending-intro .micro{color:#ddc7e7}
.ending-intro h3{font-family:Georgia,'Noto Serif TC',serif;font-weight:400;font-size:33px;color:#eee1ea;margin:10px 0 14px;line-height:1.3}
.ending-intro>p{font-size:14px;line-height:1.7;color:#c8cbd0}
.ending-choices{display:grid;grid-template-columns:1fr 1fr;gap:19px}
.ending-choice{text-align:left;display:flex;flex-direction:column;align-items:flex-start;position:relative;overflow:hidden;min-height:255px;padding:25px;border:1px solid #a89a7680;border-radius:15px;background:radial-gradient(circle at 85% 15%,#a4814033,transparent 65%),#203030;color:#ebe5ce}
.ending-choice.release{border-color:#aa86c780;background:radial-gradient(circle at 85% 15%,#8657bc44,transparent 65%),#252638}
.ending-choice:not(:disabled):hover{border-color:#f6e4b3;box-shadow:0 8px 35px #13142280}
.ending-symbol{font-size:49px;color:#efda9e;margin-bottom:16px;line-height:1}
.ending-choice.release .ending-symbol{color:#e7c0f6}
.ending-choice .micro{font-size:9px;color:#d9cda8;letter-spacing:1.5px}
.ending-choice>strong{font-family:Georgia,'Noto Serif TC',serif;font-weight:400;font-size:25px;margin:10px 0 11px;line-height:1.3;color:#f6e7c5}
.ending-choice.release>strong{color:#edcff0}
.ending-choice>p{font-size:13px;line-height:1.65;color:#d3cfcb;margin:0}
.ending-choice:disabled{opacity:.4;cursor:default}
.story-credits{max-width:670px;margin:25px auto 10px;text-align:center}
.story-credits>.micro{color:#b8c8a5;font-size:9px}
.story-credits>p{font-size:11px;line-height:1.65;color:#a0b29f}
@media(max-width:1040px){.act-tab>strong{font-size:17px}.act-tab{padding:11px}.act-tab>small{font-size:10px}.story-illustration{height:260px}.story-words>p{font-size:18px}.story-dialogue{padding:15px 26px;min-height:185px;grid-template-columns:120px 1fr;gap:20px}.story-portrait{height:150px;width:120px}.story-portrait>svg,.story-portrait>img{height:150px;width:120px}}
@media(max-width:820px){
 .campaign-toolbar>span{font-size:9px;letter-spacing:.7px}.campaign-acts{gap:7px}.act-tab{grid-template-columns:1fr;gap:3px;min-height:91px;padding:10px}.act-tab>strong{font-size:17px}.act-tab>small{grid-column:1;font-size:10px}.act-tab>span{font-size:9px}
 .chapter-brief{gap:12px;margin:13px 0 16px}.chapter-brief h2{font-size:18px}.chapter-brief p{font-size:12px}.brief-actions{flex-direction:column;gap:5px}.brief-actions .secondary-button{min-height:36px;font-size:11px;padding:6px 10px}
 .story-letterbox{padding:25px}.story-letterbox h2{font-size:33px}.story-controls{padding:17px 23px 8px;gap:9px}.story-controls>div>small{display:none}
 .game-dialog.journal-dialog{padding:21px}.companion-codex{grid-template-columns:1fr}#journal-content:has(.journal-world){grid-template-columns:230px 1fr;gap:15px}.journal-chapter>strong{font-size:11px}.journal-vista{height:160px}
}
@media(max-width:560px){
 .page-intro h1{font-size:22px}.expedition-summary{min-width:75px}.campaign-toolbar{margin-bottom:8px;gap:7px}.campaign-toolbar>span{font-size:8px;letter-spacing:.5px}.campaign-toolbar .text-button{min-height:35px;padding:5px 10px;font-size:10px}
 .campaign-acts{gap:6px;margin-bottom:8px}.act-tab{padding:9px 8px;min-height:86px;border-radius:10px}.act-tab>strong{font-size:15px;line-height:1.25}.act-tab>small{font-size:9px;line-height:1.25}.act-tab>span{font-size:8px}
 body[data-campaign="true"] .map-stop>button{flex-direction:column;gap:5px;text-align:center;padding:7px 3px;min-height:68px;line-height:1.2;font-size:9px;border-radius:8px}.map-stop>button>span{width:21px;height:21px;font-size:10px}.map-stop>button>strong{line-height:1.25;font-size:9px}.map-stop>button>small{position:absolute;right:4px;top:4px;font-size:10px}
 .chapter-brief{margin:11px 0 14px;padding:5px 0 7px 10px;gap:9px}.chapter-brief .micro{font-size:8px;letter-spacing:.6px}.chapter-brief h2{font-size:17px;line-height:1.3}.chapter-brief p{font-size:11px;line-height:1.45}.brief-actions .secondary-button{padding:6px 8px;font-size:10px;min-width:54px}
 .quick-builds .secondary-button{font-size:11px}.quick-builds>p{font-size:10px}.campaign-notice{font-size:12px}.camp-conversation p,.checkpoint-note p{font-size:11px}
 .game-dialog.story-dialog{width:calc(100% - 14px);max-height:calc(100dvh - 16px);border-radius:15px}.story-illustration{height:205px;min-height:150px}.story-letterbox{padding:21px 20px}.story-letterbox h2{font-size:28px;line-height:1.15;max-width:100%;margin:8px 0}.story-letterbox .micro{font-size:9px;letter-spacing:1px;max-width:90%}.story-letterbox p{font-size:10px;letter-spacing:.5px}
 .story-close.icon-button{right:11px;top:11px;width:38px;height:38px;font-size:24px}.story-dialogue{grid-template-columns:75px minmax(0,1fr);gap:12px;padding:19px 18px 18px;min-height:195px;align-items:start}.story-portrait{height:115px;width:75px;align-self:center}.story-portrait>svg,.story-portrait>img{width:81px;height:118px}.story-words>strong{font-size:9px;letter-spacing:1px;margin-bottom:8px}.story-words>p{font-size:16px;line-height:1.7}
 .story-controls{display:grid;grid-template-columns:1fr 1.3fr;padding:14px 18px 7px;gap:11px}.story-controls>div{grid-column:1/-1;display:block;margin:0}.story-controls>div>span{font-size:10px}.story-controls .primary-button,.story-controls .secondary-button{width:100%;min-height:46px;font-size:12px;padding:9px}.story-skip.text-button{margin-right:20px;margin-bottom:9px;min-height:38px;font-size:10px}
 .game-dialog.journal-dialog{width:calc(100% - 16px);max-height:calc(100dvh - 20px);padding:20px 16px;border-radius:14px}.journal-dialog .dialog-heading h2{font-size:27px}.journal-tabs{gap:6px}.journal-tab{font-size:11px;padding:8px 11px;min-height:42px;flex:1}.journal-dialog .dialog-heading{gap:8px}
 #journal-content:has(.journal-world){display:flex;flex-direction:column;gap:20px}.journal-world{max-height:250px;padding-right:4px;flex:none;border-bottom:1px solid #71816655;padding-bottom:12px}.journal-act>div{display:grid;grid-template-columns:1fr 1fr;gap:5px}.journal-act>h3{font-size:11px}.journal-chapter{min-height:57px;padding:7px;grid-template-columns:19px minmax(0,1fr);gap:2px 5px}.journal-chapter>strong{font-size:10px}.journal-chapter>small{font-size:8px}.journal-chapter>span{font-size:10px}.journal-vista{height:165px;margin-bottom:14px}.journal-entry h3{font-size:25px}.journal-entry>p{font-size:13px}.journal-reading>.secondary-button{font-size:11px;min-height:43px}.intent-cycle>span{font-size:9px}.journal-entry .micro{font-size:9px}
 .companion-story{grid-template-columns:58px 1fr;gap:11px;padding:16px 12px}.codex-portrait{width:58px;height:94px}.codex-portrait>svg{width:65px;height:94px}.companion-story h3{font-size:22px}.companion-story p{font-size:12px}
 .ending-intro{margin:9px auto 20px}.ending-intro h3{font-size:27px}.ending-intro p{font-size:13px}.ending-choices{grid-template-columns:1fr;gap:12px}.ending-choice{min-height:220px;padding:21px}.ending-choice>strong{font-size:24px}.ending-symbol{font-size:40px;margin-bottom:9px}.ending-summary{padding:19px 15px}.ending-summary h3{font-size:24px}
}
@media(max-height:700px) and (min-width:561px){.story-illustration{height:190px}.story-dialogue{min-height:160px;padding-top:10px;padding-bottom:10px}.story-portrait,.story-portrait>svg,.story-portrait>img{height:135px}.story-words>p{font-size:17px}.story-controls{padding-top:12px}}
@media(prefers-reduced-motion:reduce){.story-progress-track>span,.act-tab{transition:none}.story-dialog::backdrop,.journal-dialog::backdrop{backdrop-filter:none}}

/* A route through the existing world. Every marker remains a chapter-journal button. */
.campaign-acts{gap:8px;margin:0 0 10px}
.campaign-acts .act-tab{min-height:68px;padding:11px 13px;border-color:#b4c0a92e;border-radius:10px;box-shadow:none}
.campaign-acts .act-tab>span{font-size:11px;letter-spacing:.65px}
.campaign-acts .act-tab>strong{font-size:18px;line-height:1.3}
.campaign-acts .act-tab>small{font-size:12px;line-height:1.5;color:#bbcec4}
.campaign-acts .act-tab.selected{border-color:var(--story-gold);background:linear-gradient(120deg,#34493d,#1c3033);box-shadow:inset 0 -2px var(--story-gold)}
.campaign-route-vista{--route-ink:#f0dab0;position:relative;isolation:isolate;overflow:hidden;min-width:0;border:1px solid #b4c5b03d;border-radius:13px;background:#182e33;box-shadow:inset 0 1px #e6ead613}
.campaign-route-vista[data-act="1"]{--route-ink:#c6e5ee;background:#20374b}
.campaign-route-vista[data-act="2"]{--route-ink:#e8cff2;background:#302d48}
.route-scenery{position:absolute;inset:0;pointer-events:none;z-index:-1}
.route-region-art{position:absolute;inset:0;overflow:hidden;opacity:.76}
.route-region-art>.world-illustration{display:block;width:100%;height:100%;min-height:210px;object-fit:cover;filter:saturate(.8)}
.route-region-art::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#101f2369,#102229b8 42%,#0f2026ef 100%)}
.route-region-art .world-landmark{opacity:.38}
.route-region-art .world-illustration *{animation:none!important}
.route-path-art{position:absolute;left:20px;top:24px;width:calc(100% - 40px);height:152px;overflow:visible;color:var(--route-ink)}
.route-path{fill:none;stroke:#d5dfcc38;stroke-width:1.5;stroke-linecap:round;stroke-dasharray:3 8;vector-effect:non-scaling-stroke}
.route-path.is-travelled{stroke:var(--route-ink);stroke-width:2;stroke-dasharray:1 6;opacity:.8;filter:drop-shadow(0 0 4px #e9d39a65)}
body[data-campaign="true"] .campaign-map.route-map{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:start;gap:0;list-style:none;min-height:174px;margin:0;padding:24px 20px 14px}
body[data-campaign="true"] .route-map>.map-stop{display:block;min-width:0;min-height:0;margin:0;padding:0 5px;border:0;border-radius:0;background:none;overflow:visible;box-shadow:none}
body[data-campaign="true"] .route-map>.map-stop[data-route-slot="1"],body[data-campaign="true"] .route-map>.map-stop[data-route-slot="3"]{padding-top:26px}
body[data-campaign="true"] .route-map>.map-stop>button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;width:100%;min-width:44px;min-height:110px;padding:0 3px 7px;gap:7px;border:0;border-radius:11px;background:none;color:#cad8ca;text-align:center;box-shadow:none;transition:background .18s,color .18s}
body[data-campaign="true"] .route-map>.map-stop>button>strong{max-width:100%;font-size:14px;line-height:1.4;font-weight:500;text-wrap:balance;overflow-wrap:normal;hyphens:auto;text-shadow:0 2px 4px #071821}
body[data-campaign="true"] .route-map>.map-stop>button>.route-node-symbol{position:relative;display:grid;place-items:center;flex:none;min-width:44px;width:44px;height:44px;border:1px solid #b7c7b660;border-radius:50%;background:#1a3031e8;color:#c1d2c2;font-size:14px;font-weight:500;box-shadow:0 4px 12px #06161b55}
body[data-campaign="true"] .route-map>.cleared>button>.route-node-symbol{color:var(--route-ink);border-color:#dddcb36b;background:#304337eb}
body[data-campaign="true"] .route-map>.route-here>button>.route-node-symbol{color:#fff0bd;border-color:#f0d497;background:radial-gradient(ellipse,#706846,#344138 66%);box-shadow:0 0 0 5px #e9d9a012,0 0 25px #ecd49325,0 5px 13px #05131b73;animation:route-lantern-arrive .65s ease-out both}
.route-lantern{display:block;width:28px;height:35px;filter:drop-shadow(0 0 5px #f3ce83a3)}
body[data-campaign="true"] .route-map>.route-here>button>strong{color:#f4e5bd}
body[data-campaign="true"] .route-map>.map-stop>button>.route-node-state{position:static;display:block;margin:0;font-size:11px;line-height:1.45;font-weight:400;letter-spacing:.1px;color:#a8beb4}
body[data-campaign="true"] .route-map>.route-here>button>.route-node-state{color:#e5d8a8}
body[data-campaign="true"] .route-map>.map-stop>button>.route-finale{position:absolute;top:9px;left:calc(50% + 28px);font-style:normal;font-size:13px;color:var(--route-ink);opacity:.75}
body[data-campaign="true"] .route-map>.map-stop>button:disabled{opacity:.66;cursor:default}
body[data-campaign="true"] .route-map>.map-stop>button:not(:disabled):hover{color:#f1ecd0;background:#d0d9a611}
body[data-campaign="true"] .route-map>.map-stop>button:focus-visible{outline:2px solid #f4e4ac;outline-offset:3px;background:#243d38}
.route-caption{position:relative;display:block;margin:0;padding:11px 18px 13px;border-top:1px solid #a8c0aa27;color:#bbcfc4;background:#12262ac7;font-size:12px;line-height:1.65;text-align:center;text-wrap:balance}
.chapter-brief .micro{font-size:11px;letter-spacing:1px}
.chapter-brief p{font-size:14px;line-height:1.75;color:#c6d8cc}
.brief-actions .secondary-button{min-height:44px;font-size:12px}
.camp-conversation p,.checkpoint-note p{font-size:14px;line-height:1.7}
.camp-conversation>.secondary-button{min-height:44px;font-size:13px}
.checkpoint-note strong{font-size:12px}
.journal-dialog .journal-note,.journal-footer-note{font-size:13px;line-height:1.7}
.journal-entry>p,.journal-tactic p,.companion-story p{font-size:14px;line-height:1.8}
.journal-chapter>strong{font-size:13px;line-height:1.5}
.journal-chapter>small,.journal-entry .micro,.intent-cycle>span{font-size:11px;line-height:1.6}
.journal-tab,.journal-reading>.secondary-button,.story-close.icon-button,.story-skip.text-button{min-height:44px}
.story-close.icon-button{min-width:44px}
.story-words>strong,.story-controls>div>span,.story-letterbox .micro{font-size:12px;line-height:1.5}
.story-letterbox p,.story-skip.text-button{font-size:12px;line-height:1.6}
@keyframes route-lantern-arrive{from{opacity:.35;transform:translateY(4px) scale(.92)}to{opacity:1;transform:none}}
@media(max-width:820px){
  .campaign-acts .act-tab{grid-template-columns:1fr;min-height:74px;padding:10px 11px;gap:3px}
  .campaign-acts .act-tab>strong{font-size:17px}.campaign-acts .act-tab>small{grid-column:1;font-size:11px}
  .chapter-brief{gap:12px}.chapter-brief h2{font-size:21px}
}
@media(max-width:560px){
  .campaign-acts{gap:6px}.campaign-acts .act-tab{min-height:0;padding:10px 8px;border-radius:8px}
  .campaign-acts .act-tab>span{font-size:11px;letter-spacing:0}.campaign-acts .act-tab>strong{font-size:15px;line-height:1.4}.campaign-acts .act-tab>small{font-size:11px;line-height:1.5}
  .campaign-route-vista{border-radius:10px}.route-path-art{left:8px;width:calc(100% - 16px)}
  body[data-campaign="true"] .campaign-map.route-map{padding:24px 8px 12px;min-height:184px}
  body[data-campaign="true"] .route-map>.map-stop{padding-left:0;padding-right:0}
  body[data-campaign="true"] .route-map>.map-stop>button{gap:7px;padding-left:2px;padding-right:2px;min-height:120px;border-radius:7px}
  body[data-campaign="true"] .route-map>.map-stop>button>strong{font-size:12px;line-height:1.45}
  body[data-campaign="true"] .route-map>.map-stop>button>.route-node-state{font-size:11px;line-height:1.4}
  body[data-campaign="true"] .route-map>.map-stop>button>.route-finale{top:2px;left:calc(50% + 19px);font-size:12px}
  .route-caption{font-size:12px;line-height:1.65;padding:11px 12px}
  .chapter-brief{flex-wrap:wrap;padding:7px 0 9px 12px;margin:12px 0 15px}.chapter-brief>div:first-child{flex-basis:100%}.chapter-brief h2{font-size:21px;line-height:1.4}.chapter-brief p{font-size:14px;line-height:1.75}
  .brief-actions{flex-direction:row;gap:8px}.brief-actions .secondary-button{min-height:44px;padding:8px 13px;font-size:12px}
  .journal-chapter>strong{font-size:12px}.journal-chapter>small,.journal-entry .micro,.intent-cycle>span{font-size:11px}.journal-reading>.secondary-button{font-size:12px;min-height:44px}
  .story-words>p{font-size:17px;line-height:1.8}.story-letterbox .micro{font-size:11px}.story-letterbox p{font-size:12px}.story-words>strong,.story-controls>div>span{font-size:12px}
}
@media(prefers-reduced-motion:reduce){body[data-campaign="true"] .route-map>.route-here>button>.route-node-symbol{animation:none!important}.route-map button{transition:none!important}}
html[data-motion="reduced"] .route-map>.route-here>button>.route-node-symbol{animation:none!important}
