/* Chapter one: twelve touch targets, illustrated boss memories, shared combat. */
.campaign-atlas157{align-items:center}
.campaign-map157{position:relative;isolation:isolate;flex:none;width:min(100%,430px);height:clamp(330px,calc(100svh - 245px),550px);border:1px solid #b99b61;border-radius:18px;overflow:hidden;box-shadow:0 14px 35px #0007;background:#102623}
.campaign-map-art157{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.72);z-index:-2}
.campaign-map157:after{content:'';position:absolute;inset:0;background:linear-gradient(#09222944,#0a172677);z-index:-1;pointer-events:none}
.campaign-stations157{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr));gap:10px 8px;height:calc(100% - 32px);padding:15px 12px 3px;box-sizing:border-box}
body.arena75 #app .campaign-node157{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:100%;min-width:0;min-height:52px;padding:4px;border:1px solid #c5ad715e;border-radius:10px;background:#091d25db;box-shadow:0 4px 12px #0005;color:#f5e4bd;line-height:1.16;text-align:center}
.campaign-token157{position:relative;display:block;width:35px;height:35px;margin-bottom:1px}.campaign-token157>img{width:100%;height:100%;object-fit:cover;border:1px solid #c7a667;border-radius:50%}.campaign-token157 b{position:absolute;bottom:-2px;right:-8px;background:#172d2d;color:#fff0bb;border:1px solid #c7a667;border-radius:50%;width:19px;height:19px;display:grid;place-items:center;font-size:10px}.boss .campaign-token157>img{object-fit:contain;border:0;border-radius:0;filter:drop-shadow(0 0 6px #e8bd5355)}
.campaign-node157 strong{font-size:11px;font-weight:650}.campaign-node157 small{font-size:8px;color:#c6d9d0}.campaign-node157.boss small{color:#efd08b}
body.arena75 #app .campaign-node157.boss{border-color:#d1ae67;background:linear-gradient(#2c3125ed,#132326ed)}
body.arena75 #app .campaign-node157.locked{opacity:1;filter:saturate(.3);background:#0e1b24e0;color:#ccd2d1}.campaign-node157.locked .campaign-token157{filter:brightness(.65)}
body.arena75 #app .campaign-node157.claimed{border-color:#8eb49a}.campaign-node157.claimed .campaign-token157 b{background:#295443}
body.arena75 #app .campaign-node157.reward{border:2px solid #ffe0a0;box-shadow:0 0 13px #edc07155}.campaign-node157.reward small{color:#ffe8a6}
body.arena75 #app .campaign-node157:focus-visible{outline:3px solid #fff0b6;outline-offset:3px}
.campaign-caption157{display:block;text-align:center;padding:7px 4px;font-size:10px;color:#dfd4b9}
.campaign-story-grid157{display:grid;grid-template-columns:1fr 1fr;gap:16px}.campaign-story-card157{padding:0;overflow:hidden;text-align:left;background:#172c30;border:1px solid #c1a267;border-radius:14px;min-height:140px}.campaign-story-card157>img{display:block;width:100%;height:clamp(90px,19svh,170px);object-fit:cover}.campaign-story-card157>span{display:flex;flex-direction:column;gap:5px;padding:13px}.campaign-story-card157 strong{font-size:15px;color:#f2ddb3}.campaign-story-card157 small{font-size:10px;color:#c5d2c6}.campaign-story-card157.locked{filter:saturate(.2);opacity:.8}.campaign-epilogue157{font-size:14px;line-height:1.5;color:#d9d9c3}
.campaign-scene157{border:1px solid #c6a666;border-radius:17px;overflow:hidden;background:linear-gradient(135deg,#27392f,#11242c);animation:campaign-reveal157 .45s ease-out}
.campaign-scene-art157{display:block;width:100%;max-height:40svh;aspect-ratio:16/9;object-fit:cover}.campaign-scene-copy157{padding:20px 24px}.campaign-scene-copy157 h2{font-size:clamp(22px,4vw,30px);line-height:1.12;color:#f5dfb1;margin:7px 0 12px}.campaign-scene-copy157 p{font-size:15px;line-height:1.6;color:#e3e6d7;max-width:60ch}.campaign-scene-copy157 .actions{display:flex;justify-content:space-between;gap:12px;margin-top:17px}.campaign-scene-copy157 .actions button{min-height:44px;min-width:110px}.campaign-scene-copy157>small{display:block;font-size:10px;color:#adbfaf;margin-top:10px}
.campaign-loot-art157{object-fit:cover!important;border-radius:12px}.campaign-pending157{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:15px}
#detail-dialog[data-surface="adventure-story157"]{width:min(740px,95vw);max-width:740px}#detail-dialog[data-surface="adventure-story157"] #close-dialog{position:absolute;right:14px;top:14px;background:#14252eef}#detail-dialog[data-surface="adventure-story157"] .campaign-scene157{border:0}
@keyframes campaign-reveal157{from{opacity:.3;transform:translateY(7px)}to{opacity:1;transform:none}}
@media(max-width:620px){.campaign-atlas157{gap:9px}.campaign-map157{width:100%;max-width:420px;height:clamp(320px,calc(100svh - 267px),500px)}.campaign-stations157{gap:7px;padding:10px 9px 3px}.campaign-node157 strong{font-size:10px}.campaign-node157 small{font-size:8px}.campaign-token157{width:31px;height:31px}.campaign-story-grid157{gap:10px}.campaign-story-card157>span{padding:10px}.campaign-story-card157 strong{font-size:13px}.campaign-scene-copy157{padding:16px}.campaign-scene-copy157 p{font-size:14px;line-height:1.5}.campaign-scene-art157{max-height:32svh}.campaign-next-chapter157{grid-column:1/-1;min-height:44px}.adv-map-hub154 .adv-tabs{gap:5px}.adv-map-hub154 .adv-tabs button{font-size:11px;padding-inline:8px}}
@media(orientation:landscape) and (max-height:600px){.campaign-map157{width:min(52vw,430px);height:calc(100svh - 118px);min-height:250px}.campaign-token157{display:none}.campaign-stations157{gap:5px;padding:8px}.campaign-node157 strong{font-size:10px}.campaign-scene157{display:grid;grid-template-columns:1fr 1fr}.campaign-scene-art157{height:100%;min-height:220px;max-height:none;aspect-ratio:auto}.campaign-scene-copy157{padding:16px}.campaign-scene-copy157 h2{font-size:22px}.campaign-scene-copy157 p{font-size:12px}.campaign-story-card157>img{height:70px}}
@media(prefers-reduced-motion:reduce){.campaign-scene157,.campaign-node157{animation:none!important;transition:none!important}}

/* Illustrated chapter switch: navigation never replaces a running adventure. */
.campaign-chapters158{display:flex;gap:10px;margin:0 0 14px}.campaign-chapters158 button{display:flex;align-items:center;gap:10px;flex:1;min-width:0;min-height:60px;padding:7px;text-align:left;border:1px solid #557776;background:#132b31;border-radius:10px;color:#e7dfc8}.campaign-chapters158 button[aria-pressed="true"]{border-color:#d9b772;background:#274042;box-shadow:inset 0 0 0 1px #d9b772}.campaign-chapters158 img{width:57px;height:46px;object-fit:cover;border-radius:6px}.campaign-chapters158 span{display:flex;flex-direction:column;gap:4px}.campaign-chapters158 small{font-size:10px;color:#bacec8}.campaign-chapters158 strong{font-size:13px;line-height:1.2}.campaign-map157:not([data-chapter="1"]) .boss .campaign-token157>img{object-fit:cover;border:1px solid #c7a667;border-radius:50%}.campaign-map157:not([data-chapter="1"])+.adv-route154 .adv-fragments154 img{object-fit:cover;border-radius:8px}
@media(max-width:620px){.campaign-chapters158{gap:6px;margin-bottom:9px}.campaign-chapters158 button{gap:6px;padding:5px;min-height:56px}.campaign-chapters158 img{width:36px;height:40px}.campaign-chapters158 strong{font-size:11px}.campaign-chapters158 small{font-size:9px}.campaign-map157{height:clamp(320px,calc(100svh - 326px),500px)}}

@media(orientation:landscape) and (max-height:600px){.campaign-chapters158{margin-bottom:7px}.campaign-chapters158 button{min-height:44px}.campaign-chapters158 img{height:30px;width:45px}.campaign-map157{height:calc(100svh - 180px);min-height:250px}}

.adv-guardians159{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.adv-guardians159 section{min-width:0;background:#183830;border:1px solid #698775;border-radius:10px;padding:8px}.adv-guardians159 section>strong{font-size:12px;color:#eed7a6}.adv-guardians159 section>div{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin-top:7px}.adv-guardians159 span{min-width:0}.adv-guardians159 .portrait{display:block;width:100%;height:68px;object-fit:cover;border-radius:5px}.adv-guardians159 img{width:100%;height:100%;object-fit:cover}.adv-guardians159 small{display:block;font-size:8px;color:#d4dece;line-height:1.2;margin-top:4px}.adv-guardians159>p{grid-column:1/-1;margin:0;font-size:11px;color:#c1d0c4}.campaign-chapters158 button:focus-visible{outline:3px solid #fff0b6;outline-offset:2px}
@media(max-width:620px){.campaign-chapters158 img{width:28px;height:40px}.campaign-chapters158 button{align-items:flex-start}.campaign-chapters158 strong{font-size:10px}.campaign-chapters158 small{font-size:8px}.adv-guardians159{gap:6px}.adv-guardians159 section{padding:6px}.adv-guardians159 .portrait{height:50px}}

/* Chapter four: warm glass and sand, visible enemy formation before the start. */
.campaign-map157[data-chapter="4"]{background:#493f29;border-color:#d7b675}.campaign-map157[data-chapter="4"]:after{background:linear-gradient(#4b331a30,#152c3277)}
.adv-enemy-preview160{margin:12px 0;border:1px solid #aa945f;background:#262f2b;border-radius:12px;padding:10px}.adv-enemy-preview160 h3{margin:0 0 8px;color:#eedaa9;font-size:13px}.adv-preview-cards160{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.adv-preview-cards160>span{min-width:0}.adv-preview-cards160 .portrait{display:block;width:100%;height:78px;object-fit:cover;border-radius:6px}.adv-preview-cards160 img{width:100%;height:100%;object-fit:cover}.adv-preview-cards160 small{display:block;font-size:10px;color:#e6dfc9;line-height:1.2;margin-top:5px}.adv-enemy-preview160>p,.adv-preview-pacts160{font-size:11px!important;line-height:1.4!important;color:#cbd8c8;margin:8px 0 0!important}.adv-preview-pacts160{padding-left:17px}.adv-preview-pacts160 li+li{margin-top:4px}
@media(max-width:620px){.campaign-chapters158 button{flex-direction:column;align-items:center;text-align:center;gap:4px;min-height:68px}.campaign-chapters158 img{width:100%;height:30px}.campaign-chapters158 strong{display:none}.campaign-chapters158 small{font-size:10px;line-height:1.2}.campaign-map157{height:clamp(320px,calc(100svh - 344px),500px)}.adv-preview-cards160 .portrait{height:62px}.adv-preview-cards160 small{font-size:9px}}

/* Frostmark: cold stone, warm safe camps. Chapter tiles wrap before becoming too small. */
.campaign-map157[data-chapter="5"]{background:#203d50;border-color:#a1c5d2}.campaign-map157[data-chapter="5"]:after{background:linear-gradient(#15395122,#0c223d88)}
.adv-preview-cards160 em{display:block;font-style:normal;font-size:9px;color:#bdd3db;margin-top:3px}.adv-camp-preview161{padding:10px 12px;border-left:3px solid #e2bb79;border-radius:6px;background:#39372b;color:#efdfc0;font-size:12px!important;line-height:1.5!important}
.campaign-chapters158{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}.campaign-chapters158 button{flex-direction:column;align-items:center;text-align:center}.campaign-chapters158 img{width:100%;height:42px}.campaign-chapters158 strong{font-size:11px}.campaign-chapters158 span{min-width:0}
@media(max-width:620px){.campaign-chapters158{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.campaign-chapters158 button{min-height:65px;padding:4px}.campaign-chapters158 img{height:29px}.campaign-chapters158 small{font-size:9px}.campaign-chapters158 strong{display:none}}

/* Glutschmiede: copper, basalt and a readable preview of pact triggers. */
.campaign-map157[data-chapter="6"]{background:#372b27;border-color:#dca873}.campaign-map157[data-chapter="6"]:after{background:linear-gradient(#7b391522,#1d242d88)}
.adv-preview-pacts160 small{display:block;margin-top:2px;color:#bacccc;font-size:10px;line-height:1.4}
@media(max-width:620px){.campaign-chapters158{grid-template-columns:repeat(6,minmax(0,1fr));gap:4px}.campaign-chapters158 button{padding:3px}.campaign-chapters158 small{font-size:9px}}

/* Sunken city and chapter selection that keeps full titles readable on small screens. */
.campaign-map157[data-chapter="7"]{background:#173f42;border-color:#a9c9b0}.campaign-map157[data-chapter="7"]:after{background:linear-gradient(#176f6530,#062e4488)}
.campaign-switch163{display:flex;align-items:center;gap:12px;width:100%;text-align:left;margin:10px 0;padding:7px 12px;background:#203b3c;border:1px solid #77988b;border-radius:12px}.campaign-switch163 img{width:64px;height:44px;object-fit:cover;border-radius:7px}.campaign-switch163 span{flex:1}.campaign-switch163 small,.campaign-switch163 strong{display:block}.campaign-switch163 small{font-size:11px;color:#d2dcca}.campaign-switch163 strong{font-size:14px;color:#f5e4b6}.campaign-switch163 svg{width:22px;height:22px}
.campaign-chooser163{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}.campaign-chooser163 button{padding:0;overflow:hidden;text-align:left;background:#1d3233;border:1px solid #607b70;border-radius:12px;min-width:0}.campaign-chooser163 button[aria-pressed="true"]{border:2px solid #efcf89}.campaign-chooser163 img{display:block;width:100%;height:105px;object-fit:cover}.campaign-chooser163 span{display:block;padding:10px}.campaign-chooser163 small{display:block;color:#bfd4c9;font-size:11px;margin-bottom:5px}.campaign-chooser163 strong{display:block;font-size:14px;line-height:1.3;color:#f8e9c8;overflow-wrap:anywhere}.campaign-chooser163 button:focus-visible,.campaign-switch163:focus-visible{outline:3px solid #fff0b6;outline-offset:3px}
@media(max-width:620px){.campaign-chooser163{gap:9px}.campaign-chooser163 img{height:84px}.campaign-chooser163 strong{font-size:13px}.campaign-map157{height:clamp(320px,calc(100svh - 330px),500px)}}

/* Mirror library: ivory and silver, one readable encounter preview at a time. */
.campaign-map157[data-chapter="8"]{background:#3d4859;border-color:#c5ccdc}.campaign-map157[data-chapter="8"]:after{background:linear-gradient(#edf2ff15,#1c25456e)}
.adv-stage-tabs164{display:flex;gap:7px;margin:12px 0 6px}.adv-stage-tabs164 button{flex:1;min-width:0;padding:10px 5px;border:1px solid #84939d;border-radius:9px;background:#253541;color:#dce5ed}.adv-stage-tabs164 button[aria-pressed="true"]{border-color:#eacf99;background:#4b4b41;color:#fff0ca}.adv-stage-tabs164 small,.adv-stage-tabs164 strong{display:block}.adv-stage-tabs164 small{font-size:10px;margin-bottom:4px}.adv-stage-tabs164 strong{font-size:12px;overflow-wrap:anywhere}.adv-stage-tabs164 button:focus-visible{outline:3px solid #fff0b6;outline-offset:3px}.adv-stage-hint164{font-size:12px;line-height:1.5;color:#d8e1e7}

/* Free borderlands: autumn colors, completed bridges after Grik’s voluntary contribution. */
.campaign-map157[data-chapter="10"]{background:#493c2e;border-color:#d9b36c}.campaign-map157[data-chapter="10"]:after{background:linear-gradient(#865b2522,#192b3577)}

/* Besieged refuge: warm shelters behind cool stone walls. */
.campaign-map157[data-chapter="11"]{background:#33434a;border-color:#d0b484}.campaign-map157[data-chapter="11"]:after{background:linear-gradient(#6d59332b,#192b3a88)}

/* Sky road: bright clouds, copper storm watches, clear sheltered steps. */
.campaign-map157[data-chapter="12"]{background:#42627b;border-color:#d3ac7a}.campaign-map157[data-chapter="12"]:after{background:linear-gradient(#c6eaff12,#203d607d)}

/* Oath net: dark silver spans, clear luminous threads, warm paths to freedom. */
.campaign-map157[data-chapter="13"]{background:#292f3c;border-color:#b5b6c4}.campaign-map157[data-chapter="13"]:after{background:linear-gradient(#bfc9e00c,#111c367e)}

/* Free covenant: black throne stone, warm gold and the first dawn. */
.campaign-map157[data-chapter="14"]{background:#211e25;border-color:#c8a768}.campaign-map157[data-chapter="14"]:after{background:linear-gradient(#efc76914,#100e2477)}
