#overlay.campaign-screen{background:#07151c;align-items:stretch;overflow:auto}.campaign-screen button{cursor:pointer}.campaign-screen .arcade-launch{background:linear-gradient(105deg,#e5ae58,#ffdc92);color:#17282b;justify-content:space-between;min-height:44px}.campaign-screen button.menu-selected,.campaign-screen button:focus-visible{outline:2px solid #fff1bd;outline-offset:3px}.campaign-head{display:flex;align-items:center;justify-content:space-between;gap:20px}.campaign-head small,.story-copy>small,.chapter-brief>small,.campaign-ending>small{font-size:10px;letter-spacing:2px;color:#e4bc79}.campaign-head h2{font-size:30px;margin:5px 0 14px;color:#fff0cd}.campaign-map{width:100%;padding:24px 4%;background:radial-gradient(ellipse at 10% 0,#24424588,transparent 65%),#07151c}.rescue-count{display:flex;align-items:center;gap:15px;color:#a2d9c4}.rescue-count>b{font-size:30px}.rescue-count small{font-size:16px;letter-spacing:0}.rescue-count>span{font-size:11px}.map-layout{display:grid;grid-template-columns:1.6fr 1fr;gap:25px}.city-map{position:relative;align-self:start;aspect-ratio:1.5;background:linear-gradient(#07151c22,#07151c44),url('assets/stages/city-map-v090.webp') center/100% 100%;border:1px solid #55777a;box-shadow:inset 0 0 60px #03121ba0,0 15px 35px #0005;overflow:hidden}.city-map svg{position:absolute;width:100%;height:100%;inset:0;overflow:visible}.city-map polyline{fill:none;stroke:#f3cf82;stroke-width:.6;stroke-dasharray:1 1;opacity:.72}.city-marker{position:absolute;transform:translate(-50%,-50%);text-align:center;min-width:110px}.city-marker>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;border:2px solid #82928e;background:#102632;color:#ced0b8;margin:auto;font:bold 12px monospace;box-shadow:0 3px 7px #000a}.city-marker>b{display:block;background:#071923df;border:1px solid #7e8d8260;padding:4px 6px;color:#d8d8c7;font-size:10px;margin-top:4px;font-weight:600}.city-marker.current>span{background:#ffe1a0;color:#17242c;border-color:#fff0be;box-shadow:0 0 0 6px #ffd17e44,0 0 22px #ffe3a0}.city-marker.current>b{color:#ffe4ad;border-color:#d7aa64}.city-marker.cleared>span{background:#7cbf9f;color:#0d2a24;border-color:#b7ebc9}.city-marker.future{opacity:.7}.map-legend{position:absolute;bottom:8px;left:10px;font-size:9px;background:#07151ce6;color:#f9db9f;padding:5px 9px}.map-legend i{display:inline-block;width:6px;height:6px;background:#ffe1a0;border-radius:50%;margin-right:4px}.chapter-brief h3{font-size:24px;line-height:1.35;margin:6px 0 9px;color:#fff0cd}.chapter-location{font-size:12px;color:#91c9c1}.chapter-brief>p{font-size:12px;line-height:1.9;color:#bac9c5;margin:10px 0 12px}.chapter-family{display:flex;gap:7px;margin:10px 0 18px;flex-wrap:wrap}.family-tile{margin:0;text-align:center;min-width:56px;flex:1}.family-tile img{width:100%;max-width:78px;aspect-ratio:1;object-fit:cover;background:#173540;border:1px solid #ac8b5a88}.family-tile figcaption{font-size:10px;line-height:1.5;color:#e0d3b4;margin-top:3px}.family-tile figcaption span{display:block;font-size:8px;color:#c49aa8}.family-tile.rescued img{border-color:#8bd6b3}.family-tile.rescued figcaption span{color:#9fd7b2}.chapter-brief .arcade-launch{width:100%;font-size:13px}.campaign-quit{border:0;background:transparent;color:#849e9e;padding:10px 0;font-size:10px}.rescue-roster{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));gap:5px;margin-top:20px;border-top:1px solid #55777a55;padding-top:14px}.rescue-person{text-align:center;min-width:0}.rescue-person img{width:100%;aspect-ratio:1;object-fit:cover;border:1px solid #536e72}.rescue-person.captive img{filter:grayscale(.8) brightness(.55);border-color:#775363}.rescue-person.safe img{border-color:#7bcc9d}.rescue-person small{font-size:8px;color:#bdcdc5;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rescue-person>span{display:block;font-size:7px;color:#87c8a4;white-space:nowrap}.rescue-person.captive>span{color:#a788a5}.rescue-note{font-size:9px;color:#859e9e;margin:10px 0 0}.debug-route-note{display:block;letter-spacing:0!important;color:#b4c4b7!important;font-size:9px!important}.story-card{width:100%;min-height:100%;display:grid;grid-template-columns:45% 55%;position:relative;background:linear-gradient(90deg,#06131b44,#06131bec 48%),var(--story-bg) center/cover;overflow:hidden}.story-art{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;padding:14%;position:relative;align-content:center}.story-art .story-family{flex:0 0 28%;min-width:65px;filter:grayscale(.6);opacity:.88}.story-art .story-family img{max-width:120px}.story-art .story-family figcaption{font-size:11px}.story-art:has(.story-portrait){padding:12%}.story-portrait{width:100%;max-width:340px;aspect-ratio:1;object-fit:cover;box-shadow:0 15px 55px #0008;border:1px solid #a0c3aa88}.freed-art{background:radial-gradient(ellipse at center,#69b08d44,transparent 60%)}.freed-seal{position:absolute;bottom:18%;padding:9px 16px;background:#12372fee;border:1px solid #8bdcb1;color:#b7f3ce;font-size:11px;letter-spacing:2px}.story-copy{align-self:center;padding:40px 11% 40px 0}.story-copy>small{display:flex;justify-content:space-between;line-height:1.7}.story-copy h2{font-size:clamp(24px,3.3vw,44px);line-height:1.35;color:#fff0cb;letter-spacing:.04em;margin:20px 0}.story-copy p{color:#c6d0c8;font-size:15px;line-height:2.1}.story-copy blockquote{margin:24px 0;padding:0 0 0 15px;border-left:2px solid #d4ab66;color:#ffe7b9;font-size:15px;line-height:1.9}.story-copy blockquote b{display:block;color:#9ed8bc;font-size:11px}.story-actions{display:flex;gap:12px;align-items:center;margin-top:24px}.story-actions>button:not(.arcade-launch){border:0;background:transparent;color:#99ada8;font-size:10px}.story-control{margin-top:14px;font-size:9px!important;letter-spacing:0!important;color:#7c9697!important}.campaign-ending{width:100%;padding:26px 7%;text-align:center;background:radial-gradient(ellipse at 50% 0,#b6965d44,transparent 65%),linear-gradient(#061b20ea,#10282bf0),url('assets/stages/city-map-v090.webp') center/cover}.campaign-ending h2{font-size:40px;color:#ffe9b8;margin:15px 0}.campaign-ending>p{font-size:13px;color:#b8cfc5;line-height:1.9}.campaign-ending blockquote{color:#ffdc99;font-size:18px;margin:14px}.ending-family{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;max-width:650px;margin:24px auto}.ending-family .family-tile img{max-width:72px;border-color:#81cba5}.ending-score{display:flex;justify-content:center;gap:25px;font-size:13px;color:#a5dbc3;margin:15px 0 20px}.ending-score span{color:#e4ce9c}.campaign-ending .arcade-launch{min-width:220px;margin:auto}.rescued-hud{display:block;font-size:10px;color:#9edab7}
@media(max-width:760px){.campaign-map{padding:18px 5%}.campaign-head h2{font-size:25px}.rescue-count{gap:7px}.rescue-count>b{font-size:24px}.rescue-count>span{font-size:9px}.map-layout{grid-template-columns:1fr;gap:20px}.city-marker{min-width:78px}.city-marker>span{width:24px;height:24px;font-size:10px}.city-marker>b{font-size:8px;padding:3px}.chapter-brief h3{font-size:25px}.chapter-family .family-tile img{max-width:65px}.rescue-roster{grid-template-columns:repeat(7,minmax(0,1fr));gap:9px}.rescue-person img{max-width:60px}.story-card{grid-template-columns:1fr;background:linear-gradient(#06131b55,#06131bf5 48%),var(--story-bg) center/cover;overflow:visible}.story-art{min-height:200px;padding:25px 18%;gap:8px}.story-art .story-family{flex-basis:24%;min-width:55px}.story-art .story-family img{max-width:80px}.story-art:has(.story-portrait){padding:25px}.story-portrait{max-width:190px}.freed-seal{bottom:12px;font-size:9px;padding:6px 12px}.story-copy{padding:20px 8% 35px}.story-copy h2{font-size:30px;margin:15px 0}.story-copy p,.story-copy blockquote{font-size:13px}.story-actions{margin-top:18px}.ending-family{gap:6px}.ending-family .family-tile{min-width:0}.ending-family .family-tile figcaption{font-size:8px}.campaign-ending h2{font-size:30px}.ending-score{flex-direction:column;gap:8px}.campaign-ending{padding:28px 6%}}

@media(prefers-reduced-motion:no-preference){.city-map polyline{animation:rescue-route 4s linear infinite}.city-marker.current>span{animation:rescue-location 1.8s ease-in-out infinite}@keyframes rescue-route{to{stroke-dashoffset:-12}}@keyframes rescue-location{50%{box-shadow:0 0 0 9px #ffd17e15,0 0 25px #ffe3a0}}}

@media(min-width:761px){.campaign-map{padding-top:19px;padding-bottom:19px}.rescue-person img{max-width:54px}.rescue-roster{margin-top:15px;padding-top:12px}}
.campaign-head{height:auto;min-height:0;padding:0}.rescue-count>b,.rescue-count>span{white-space:nowrap}
@media(max-width:760px){.campaign-head{flex-direction:column;align-items:flex-start;gap:0}.campaign-head h2{margin-bottom:8px}.rescue-count{margin-bottom:14px;gap:12px}.campaign-head>div>small{font-size:8px;letter-spacing:1px}}

/* Personal epilogues: original portraits on four new peaceful background scenes. */
.story-card.after-story{isolation:isolate;background:#102328;min-height:100%}.after-story:before{content:"";position:absolute;inset:0;z-index:-2;background-image:url('assets/stages/after-scenes-v120.png');background-size:200% 200%;background-position:var(--after-position);filter:brightness(.7)}.after-story:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#14232938,#0b2026e8 50%,#0a1b22f2)}.after-story .story-art{padding:24px 12%}.after-story .story-portrait{max-width:250px;border:2px solid #e4be7b;box-shadow:0 14px 45px #06131999}.after-portrait-wrap{text-align:center;width:100%}.after-p1{display:block;font-size:12px;color:#ffe3ad;letter-spacing:2px;margin-bottom:12px}.after-portrait-wrap>small{display:block;color:#c3d9d1;font-size:8px;letter-spacing:3px;margin:13px 0}.after-companions{display:flex;gap:8px;margin:16px auto 0;max-width:230px}.after-companions .family-tile{min-width:0}.after-companions img{max-width:48px}.after-companions figcaption{font-size:8px}.after-story .story-copy{padding-top:26px;padding-bottom:26px}.after-story .story-copy h2{font-size:clamp(24px,2.7vw,36px);margin:16px 0}.after-story .story-copy p{font-size:14px;line-height:2}.after-story .story-copy blockquote{margin:18px 0;font-size:14px}.after-story-result{background:linear-gradient(#0c2427e8,#0c2427f0),url('assets/stages/after-scenes-v120.png') left top/200% 200%}.after-result-portrait{width:110px;height:110px;object-fit:cover;border:2px solid #e5c084;margin-top:18px}.after-result-actions{display:flex;gap:12px;flex-direction:column;align-items:center}.after-result-actions .arcade-launch{margin:0}.after-story-result h2{font-size:32px}
@media(max-width:760px){.after-story:after{background:linear-gradient(#0b202644,#0b2026ef 40%)}.after-story .story-art{padding:24px 18% 12px;min-height:0}.after-story .story-portrait{max-width:150px}.after-companions{display:none}.after-story .story-copy{padding:20px 8% 30px}.after-story .story-copy h2{font-size:27px}.after-story .story-copy p,.after-story .story-copy blockquote{font-size:13px}.after-portrait-wrap>small{margin:8px 0}.after-story-result h2{font-size:27px}}
