/* Selected battlefield gets the stage; controls stay outside the scrolling area. */
.modal[data-screen="campaign"],.modal[data-screen="campaign-record"]{--map-color:#ffd46b;width:min(720px,100%);height:auto;max-height:100%;padding:0;display:flex;flex-direction:column;overflow:hidden;border:1px solid #344351;background:#101a24;box-shadow:0 24px 80px #0009}
.campaign-header{flex:none;display:flex;align-items:center;gap:8px;padding:8px 16px;border-bottom:1px solid #ffffff0a;background:#101a24}
.campaign-header button{min-width:44px;min-height:44px;padding:0 8px;background:transparent;border-color:transparent;font-size:12px}
@media (hover:hover) and (pointer:fine){html[data-input="mouse"] .campaign-header button:hover:where(:not(:disabled,[aria-disabled="true"],.selected,.armed,[aria-pressed="true"])){background:#ffffff09;border-color:#667785}}
.campaign-header #campaign-back,.campaign-header #record-back{font-size:22px}
.campaign-heading{display:flex;align-items:center;gap:12px;flex:1;min-width:0}
.campaign-heading b{font:800 20px Barlow,Arial,sans-serif;letter-spacing:.8px;color:#ecf2ed}
.campaign-heading span{font-size:11px;color:#8399a6}
.campaign-header #campaign-records{color:#d4bd87;white-space:nowrap}
.campaign-header #campaign-records span{margin-left:4px;font-variant-numeric:tabular-nums}
.campaign-scroll{flex:1 1 auto;min-height:0;padding:18px 24px 16px;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#526471 transparent;scroll-padding:12px}
.campaign-hero{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.45fr);align-items:center;min-height:280px;margin:-18px -24px 0;padding:14px 22px 4px;overflow:hidden;background:radial-gradient(ellipse at 76% 46%,color-mix(in srgb,var(--map-color) 11%,transparent),transparent 63%),linear-gradient(125deg,#152331,#0c151f)}
.campaign-hero:after{content:'';position:absolute;inset:auto 22px 0;height:1px;background:linear-gradient(90deg,var(--map-color),#ffffff13,transparent);opacity:.45}
.battlefield-copy{position:relative;z-index:1;align-self:center;padding:14px 0 28px}
.sector-number{color:var(--map-color);font-size:10px;letter-spacing:1.8px;display:flex;gap:7px;align-items:center;white-space:nowrap}
.sector-number:before{content:'';display:inline-block;width:5px;height:5px;background:var(--map-color)}
.modal .battlefield-copy h2{font-family:Barlow,'PingFang SC','Microsoft YaHei',sans-serif;font-size:clamp(26px,5.4vw,42px);line-height:1.15;letter-spacing:0;margin:16px -5px 12px 0;overflow-wrap:normal;color:#f0f3ed}
.modal .battlefield-tag{font-size:12px;line-height:1.7;color:#adbdc6;margin:0;max-width:160px;text-wrap:balance}
.battlefield-facts{display:flex;flex-wrap:wrap;gap:7px 12px;margin-top:22px;font-size:10px;color:#9db0bd;line-height:1.5}
.battlefield-facts b{color:#e4eae6;font-size:14px;font-weight:500;margin-right:3px}
.battlefield-medals{display:block;color:var(--map-color);font-size:12px;letter-spacing:3px;margin-top:12px}
.battlefield-art{min-width:0;position:relative;align-self:center;width:100%;aspect-ratio:850/880;filter:drop-shadow(0 16px 12px #0006)}
.campaign-map{display:block;width:100%;height:100%;overflow:visible}
.map-ground-shadow{fill:#060c12;stroke:#2c3c49;stroke-width:5}
.map-ground{fill:#101e29;stroke:#3d4b56;stroke-width:2}
.map-corners{fill:none;stroke:var(--map-color);stroke-width:5;opacity:.52}
.map-route path{fill:none;stroke-linejoin:round;stroke-linecap:round}
.road-edge{stroke:#40515d;stroke-width:36}
.road-bed{stroke:#090f17;stroke-width:29}
.road-line{stroke:#bccacb;stroke-width:6;opacity:.78}
.map-route.later .road-edge{stroke:#293b47}
.map-route.later .road-line{stroke-dasharray:8 14;opacity:.32}
.map-pads circle{fill:#283436;stroke:var(--map-color);stroke-opacity:.75;stroke-width:3}
.map-pads path{fill:none;stroke:var(--map-color);stroke-width:3;opacity:.85}
.map-gate{fill:none;stroke:#ff927e;stroke-width:9;stroke-linejoin:round;stroke-linecap:round}
.map-gate.later{stroke:#6b7b8c;stroke-width:7;opacity:.65}
.core-halo{fill:#6fe4bf;opacity:.1}
.core-ring{fill:#103930;stroke:#7cf0c4;stroke-width:3}
.map-core>path{fill:#9af5d1;stroke:#dcfff0;stroke-width:2}
.map-core .core-spark{stroke:#214d42;stroke-width:3;fill:none}
.map-legend{display:flex;align-items:center;gap:17px;justify-content:flex-end;padding:12px 0 15px;font-size:10px;color:#9cafbc}
.map-legend span{display:flex;align-items:center;gap:5px}
.legend-gate{font-style:normal;color:#ff927e;font-size:16px;font-weight:bold;line-height:10px}
.legend-pad{display:inline-flex;align-items:center;justify-content:center;width:11px;height:11px;border:1px solid var(--map-color);border-radius:50%;color:var(--map-color);font-style:normal;font-size:10px}
.legend-core{display:inline-block;width:8px;height:8px;transform:rotate(45deg);background:#9af5d1;margin-right:2px}
.mission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.mission{min-width:0;min-height:56px;display:flex;align-items:center;gap:7px;padding:7px;text-align:left;position:relative;border-radius:7px;background:#121f2a;border:1px solid #2b3b48;overflow:hidden}
.mission .mini-map{flex:none;width:31px;height:34px;opacity:.9}
.mission-copy{min-width:0;display:flex;flex-direction:column;gap:4px}
.mission-copy small{color:#778f9f;font-size:9px;line-height:1;letter-spacing:1px}
.mission-copy b{font-family:Barlow,'PingFang SC','Microsoft YaHei',sans-serif;font-size:12px;line-height:1.2;white-space:nowrap}
.mission.selected{border-color:var(--color);background:color-mix(in srgb,var(--color) 12%,#111d27)}
.mission.selected:after{content:'';position:absolute;left:0;top:12px;bottom:12px;width:2px;background:var(--color)}
.mission.selected .mini-map{opacity:1}
.mission.selected .mission-copy small{color:var(--color)}
.mission .campaign-map{--map-color:var(--color)}
.mission .map-pads{display:none}
.mission .road-edge{stroke-width:24}
.mission .road-bed{stroke-width:16}
.mission .road-line{stroke-width:9;opacity:.9}
.mission:focus-visible{outline-offset:-3px;outline-width:2px}
.campaign-options{margin-top:18px}
.difficulty-label{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:8px;font-size:10px;color:#91a6b4;letter-spacing:.5px}
.difficulty-label span{color:#758b99;letter-spacing:0}
.mode-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.mode-tabs button{display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:0 3px;font-size:11px;background:#101b25;border-color:#31404c}
.mode-tabs .selected{background:color-mix(in srgb,var(--map-color) 9%,#111c25);border-color:var(--map-color);color:#f0eee4}
.mode-mark{display:flex;align-items:flex-end;gap:2px;height:11px;opacity:.65}
.mode-mark i{display:block;width:3px;height:5px;background:currentColor}
.mode-mark i:nth-child(2){height:8px}.mode-mark i:nth-child(3){height:11px}
.mode-tabs .selected .mode-mark{color:var(--map-color);opacity:1}
.mode-power{font-size:16px;line-height:1;color:#a8b9c5}
.modal .mode-description{color:#9eb0bc;font-size:11px;line-height:1.5;margin:8px 0 0;min-height:17px}
.map-brief{min-height:44px;display:flex;align-items:center;gap:5px;border:0;background:transparent;padding:0;color:#91a7b6;font-size:10px;letter-spacing:.3px}
.map-brief span{color:var(--map-color);font-size:14px}@media (hover:hover) and (pointer:fine){html[data-input="mouse"] .map-brief:hover:where(:not(:disabled,[aria-disabled="true"],.selected,.armed,[aria-pressed="true"])){background:transparent;color:#edf4ef}}
.modal .campaign-intel{font-size:12px;line-height:1.65;margin:12px 0 0;padding:10px 12px;border-left:2px solid var(--map-color);background:#192732;color:#b8c7cf}
.campaign-actions{flex:none;padding:13px 24px 17px;background:#111d27;border-top:1px solid #ffffff0b;position:relative;z-index:1}
.modal .campaign-actions .primary{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:52px;padding:0 18px;background:#e8eddf;border-color:#e8eddf;border-radius:7px;color:#122028;font-size:15px;letter-spacing:.2px}
@media (hover:hover) and (pointer:fine){html[data-input="mouse"] .modal .campaign-actions .primary:hover:where(:not(:disabled,[aria-disabled="true"],.selected,.armed,[aria-pressed="true"])){background:#fffdf2;border-color:#fffdf2}}
.campaign-actions .primary>span{font-size:22px;font-weight:400;border-left:1px solid #1c303328;padding-left:18px;line-height:22px}
.campaign-record-scroll{padding:20px 24px;overflow:auto;min-height:0;overscroll-behavior:contain}
.modal .campaign-record-scroll h2{font-size:29px;margin:0 0 20px}
.modal .record-content p{font-size:12px;line-height:1.6;margin:0 0 12px;color:#b0c2ce}
.record-content ul{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0;margin:0 0 24px;list-style:none;font-size:11px;color:#a7bccb}
.modal .record-content li{margin:0}.record-content h3{font-size:12px;color:#dde6e4;margin:0 0 14px}
.record-content .medal-heading{margin-top:24px}.medal-list{display:grid;gap:12px}.medal-list>div{display:grid;gap:5px}.medal-list b{font-size:11px;color:#d5dedf}.medal-list span{font-size:10px;color:#9cafbb;line-height:1.6}
@media(max-width:500px){
 .campaign-header{padding:5px 10px;gap:2px}
 .campaign-heading{gap:7px}.campaign-heading b{font-size:19px}.campaign-heading span{font-size:10px}
 .campaign-header button{font-size:11px}
 .campaign-scroll{padding:14px 16px 8px}
 .campaign-hero{margin:-14px -16px 0;padding:6px 10px 0 17px;min-height:216px;grid-template-columns:minmax(0,.85fr) minmax(0,1.45fr)}
 .campaign-hero:after{inset-inline:17px}
 .battlefield-copy{padding:10px 0 0}
 .modal .battlefield-copy h2{font-size:27px;margin:15px -8px 11px 0;line-height:1.18}
 .modal .battlefield-tag{font-size:11px;max-width:118px}
 .battlefield-facts{margin-top:20px;gap:5px 11px;font-size:9px}
 .battlefield-facts b{font-size:13px}
 .sector-number{font-size:9px;letter-spacing:1.3px}
 .map-legend{padding:11px 0 13px;gap:15px;font-size:10px}
 .mission{min-height:53px;gap:5px;padding:6px}
 .mission .mini-map{width:27px;height:31px}
 .mission-copy b{font-size:11px}.mission-copy small{font-size:8px}
 .campaign-options{margin-top:17px}
 .campaign-actions{padding:11px 16px 14px}
 .campaign-record-scroll{padding:18px}
}
@media(max-width:350px){
 .campaign-heading span{display:none}
 .campaign-hero{min-height:205px;grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr);padding-left:14px}
 .modal .battlefield-copy h2{font-size:21px}
 .sector-number{font-size:8px;letter-spacing:.9px;gap:5px}
 .modal .battlefield-tag{font-size:10px}
 .battlefield-facts{gap:4px 8px;margin-top:14px;font-size:8px}
 .battlefield-facts b{font-size:12px}
 .campaign-scroll{padding-inline:12px}
 .campaign-hero{margin-inline:-12px}
 .mission{padding:5px;gap:4px}
 .mission .mini-map{width:20px;height:26px}
 .mission-copy b{font-size:10px}
 .map-legend{gap:12px;font-size:9px}
}
@media(max-height:540px){
 .campaign-header{padding-block:2px}
 .campaign-actions{padding-block:8px}
 .modal .campaign-actions .primary{min-height:44px}
}
@media(min-width:600px) and (max-height:560px){
 .campaign-scroll{display:grid;grid-template-columns:1fr 1fr;gap:0 20px;padding:10px 20px}
 .campaign-hero{grid-column:1;grid-row:1/5;margin:-10px 0;min-height:230px;padding:8px 0;grid-template-columns:1fr 1.2fr}
 .modal .battlefield-copy h2{font-size:28px}.battlefield-facts{gap:4px 10px;margin-top:14px}
 .map-legend{grid-column:2;padding:0 0 8px;font-size:9px}
 .mission-grid{grid-column:2;gap:5px}.mission{min-height:48px;padding:5px}.mission .mini-map{width:20px}.mission-copy b{font-size:10px}
 .campaign-options{grid-column:2;margin-top:12px}.campaign-intel{grid-column:1/-1}
}

.mission-copy b{font-family:system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;font-weight:650;font-size:12px;white-space:nowrap}.mission-copy{min-width:0}

@media(max-width:480px) and (min-height:501px){.mission-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* KILLGRID: field operations, slate and signal yellow. */
html,body{background:#151914;color:#edf1dc}button{border-radius:3px}.top{border-bottom-color:#46503e}.battle-wrap{border-radius:3px;border-color:#56634d}.console{border-left:1px solid #46503e;padding-left:18px}.console-top{color:#d0dcb9}.primary{background:#e1e98b;color:#192015;border-color:#eaf3a2;box-shadow:0 3px 0 #080d0955}.modal{background:linear-gradient(135deg,#252c22,#131b19);border-color:#77815e;border-radius:3px}.modal[data-screen=intro]{width:min(1120px,100%);height:auto;border-top:4px solid #d4dd7e;background:linear-gradient(130deg,#263025,#131b19)}.entry-header{border-color:#74835d66;background:#171f18}.entry-header .eyebrow{color:#d4dd7e;font-size:12px}.entry-scroll{display:grid;grid-template-columns:1fr 1.1fr;gap:20px;align-items:center;padding:28px 42px}.entry-copy{min-width:0}.entry-copy h1{font-size:clamp(72px,8vw,116px);letter-spacing:-.03em;line-height:.84}.entry-copy h1 span{display:block;color:#dbe38a}.entry-copy .lead{font-size:23px;line-height:1.4}.entry-copy .fine{font-size:14px;color:#c4ccb6}.entry-loop{border-color:#60724c;flex-wrap:wrap;gap:12px}.entry-loop span{color:#d5e39f}.entry-plan{margin:0;min-width:0;position:relative;padding:20px 12px;border:1px solid #667a4566;background:linear-gradient(#70834410 1px,transparent 1px),linear-gradient(90deg,#70834410 1px,transparent 1px),#17251e;background-size:24px 24px}.entry-plan svg{display:block;width:100%;height:auto;max-height:410px}.entry-plan figcaption{font:12px/1.5 ui-monospace,monospace;color:#dbe3b9;text-align:center;padding-top:12px}.entry-actions{border-color:#65764c;background:#1a241b;padding:20px 42px}.entry-actions button{min-height:54px;border-radius:2px;font-size:16px}.modal[data-screen=campaign],.modal[data-screen=campaign-record]{border-radius:3px;border-top:3px solid #d4dd7e}.campaign-header,.campaign-actions{background:#17201b}.campaign-heading b{color:#e7edb4}.mission{border-radius:3px}.mode-tabs button{border-radius:3px}.choice{border-radius:2px;border-left:4px solid var(--color,#d4dd7e)}.selection{border-top:2px solid #768754}.tower-card{border-radius:2px}.modal h2{letter-spacing:0}.backup-link,.collection-return{min-height:44px;font-size:14px}.campaign-hero{background-color:#13201b}
@media(max-width:760px){.console{border-left:0;padding-left:0}.modal[data-screen=intro]{width:min(560px,100%);height:auto;max-height:100%}.entry-scroll{display:flex;flex-direction:column;align-items:stretch;padding:24px 22px 16px;gap:10px}.entry-copy h1{font-size:80px;margin:15px 0}.entry-copy h1 span{display:inline}.entry-copy .lead{font-size:20px}.entry-plan{display:none}.entry-actions{padding:14px 22px 18px}.entry-actions button{font-size:15px}.entry-header{padding-inline:18px}.entry-header .eyebrow{font-size:11px}.entry-loop{gap:8px}.entry-copy .fine{font-size:14px}}

