/* Existing map selection, shared with the start-game container catalogue. */
.map-select-dialog{--map-accent:#53edc3;margin:0;padding:0;width:100vw;max-width:none;height:100svh;max-height:none;border:0;background:#071a20;color:#e8f6f4;overflow:auto;font-family:inherit}
.map-select-dialog::backdrop{background:#041015}
.map-select-header{height:72px;display:flex;align-items:center;gap:36px;padding:0 38px;border-bottom:1px solid #b8d8df29;background:linear-gradient(#051015,#091c22eb);position:relative;z-index:5}
.map-brand{display:flex;align-items:center;gap:9px;color:#edf6f4;white-space:nowrap;font-size:22px;font-weight:800;letter-spacing:-1px}
.map-brand>span{font-size:35px;color:var(--map-accent);font-weight:900;letter-spacing:-8px;margin-right:9px;transform:skew(-12deg)}
.map-top-nav{display:flex;align-self:stretch;align-items:stretch;gap:0}
.map-top-nav>a,.map-top-nav>button,.map-top-nav>span{padding:0 27px;display:flex;align-items:center;border:0;border-bottom:3px solid transparent;background:none;color:#b8c9ca;font-family:inherit;font-size:14px;font-weight:500;line-height:1;letter-spacing:1px;white-space:nowrap}
.map-top-nav .is-current{border-bottom-color:var(--map-accent);color:#effff9;background:linear-gradient(transparent,#76ead51a)}
.map-top-nav>a:hover,.map-top-nav>button:hover{color:white;background:#c6e7e508}
.map-header-status{margin-left:auto;display:flex;align-items:center;gap:9px;font-size:11px;letter-spacing:2px;color:#91adb0;white-space:nowrap}
.map-header-status i{width:5px;height:5px;background:var(--map-accent)}
.map-select-content{position:relative;height:calc(100svh - 72px);min-height:510px;isolation:isolate}
.map-overview{position:absolute;inset:0;isolation:isolate;overflow:hidden;background:#0e333a}
.map-terrain{position:absolute;inset:0;z-index:-2;overflow:hidden;background:#0b2c33}
.map-terrain>img{display:block;width:100%;height:100%;object-fit:cover;opacity:.88}
.map-terrain>canvas{position:absolute;inset:0;display:block;width:100%;height:100%}
.map-terrain>canvas[hidden]{display:none}
.map-terrain[data-terrain-state="ready"]>img{visibility:hidden}
.map-terrain:before{content:"";position:absolute;inset:0;z-index:1;background:radial-gradient(ellipse at 48% 44%,transparent 23%,#031318a3 100%),linear-gradient(#05191b18,#07191c05 65%,#04131672);pointer-events:none}
.map-terrain:after{content:"";position:absolute;inset:0;z-index:1;background:repeating-linear-gradient(0deg,transparent 0,transparent 3px,#091a1c14 4px);pointer-events:none}
.map-operation-context{position:absolute;left:3.8%;top:8%;text-shadow:0 2px 12px #031619b3;pointer-events:none}
.map-operation-context>p{font:9px Consolas,monospace;letter-spacing:3px;color:#75b3b4;margin:0 0 10px}
.map-operation-context h2{font-size:28px;letter-spacing:4px;font-weight:550;margin:0 0 9px;color:#e0f6f1}
.map-operation-context>span{font-size:11px;letter-spacing:2px;color:#a6c3c1}
.map-selection-hint{position:absolute;left:50%;bottom:4%;transform:translateX(-50%);font-size:15px;letter-spacing:3px;line-height:1.5;text-align:center;color:#d8f3eb;margin:0;white-space:nowrap;text-shadow:0 2px 12px #041b1d}
.map-selection-hint>span{display:block;font-size:10px;color:#8fb7b2;letter-spacing:1px;margin-top:9px}
.map-selection-hint[hidden]{display:none}
.map-location{position:absolute;transform:translate(-50%,-50%);transition:left .65s ease,top .65s ease,opacity .3s ease}
.map-location-dam{top:26%;left:44%;z-index:3}
.map-location-grove{top:43%;left:25%}
.map-location-brakkesh{top:66%;left:33%}
.map-location-space{top:53%;left:78%}
.map-location-prison{top:27%;left:71%}
.map-node{display:flex;flex-direction:column;align-items:center;gap:2px;border:0;padding:7px 16px;background:transparent;color:#bd8980;min-width:140px;position:relative;text-shadow:0 2px 12px #00191b;font-family:inherit}
.map-node:disabled{opacity:.58;cursor:not-allowed}
.map-node-label{display:block;text-align:center;white-space:nowrap;margin-bottom:1px}
.map-node-label strong{display:block;font-size:21px;letter-spacing:2px;font-weight:500;color:currentColor}
.map-node-label small{display:block;margin-top:5px;font-size:9px;letter-spacing:1px;opacity:.65}
.map-node-marker{display:grid;place-items:center;position:relative;width:100px;height:83px;filter:drop-shadow(0 2px 8px #70e8ce22)}
.map-node-marker:before{content:"";position:absolute;left:0;right:0;bottom:3px;height:50px;border-radius:50%;border:1px solid currentColor;opacity:.28;background:radial-gradient(ellipse,#ba58452b,transparent 70%);box-shadow:0 0 15px #ab615025}
.map-node-marker:after{content:"";position:absolute;left:9px;right:9px;bottom:8px;height:39px;border-radius:50%;border:1px solid currentColor;opacity:.16}
.map-node-marker svg{position:relative;z-index:1;width:83px;height:63px;overflow:visible;filter:drop-shadow(0 0 7px #ffc0a31c)}
.map-building-side{fill:currentColor;fill-opacity:.54;stroke:currentColor;stroke-opacity:.45;stroke-width:.7}
.map-building-top{fill:currentColor;fill-opacity:.95;stroke:currentColor;stroke-opacity:.5;stroke-width:.6}
.map-building-front{fill:currentColor;fill-opacity:.72;stroke:currentColor;stroke-opacity:.6;stroke-width:.7}
.map-building-line{fill:none;stroke:currentColor;stroke-opacity:.65;stroke-width:1.1}
.map-node.is-available{color:#a9e1d4;cursor:pointer}
.map-node.is-available .map-node-label small{color:#91cfc0;opacity:.85}
.map-node.is-available .map-node-marker:before{border-color:#9ef2d9;opacity:.72;box-shadow:0 0 21px #65f6c838,inset 0 0 20px #63f2ca25;background:radial-gradient(ellipse,#8affd22d,transparent 70%)}
.map-node.is-available .map-node-marker:after{opacity:.5;border-color:#8feaca}
.map-node.is-available .map-node-marker svg{filter:drop-shadow(0 0 9px #a4ffe745)}
.map-node.is-available:hover{color:#ecfff4}
.map-node:focus-visible{outline:1px solid #b6e8d6;outline-offset:4px;border-radius:2px}
.map-node.is-selected{color:#c1ffdf}
.map-node.is-selected .map-node-marker{transform:scale(1.17)}
.map-node.is-selected .map-node-marker:before{box-shadow:0 0 28px #5ef9b94d,inset 0 0 24px #63f2ca38}
.map-node.is-selected .map-node-label strong{font-size:24px;color:#e7fff4}
.has-map-selection .map-location-dam{z-index:4}
.has-map-selection .map-location:not(.map-location-dam){opacity:.45}
.map-radio{position:absolute;left:4%;bottom:7%;display:flex;align-items:center;gap:12px;opacity:.8;color:#7cdbbf;pointer-events:none}
.map-radio-emblem{display:grid;place-items:center;width:38px;height:38px;border:1px solid #9fe7ce77;border-radius:50%;font-size:28px;background:radial-gradient(#5bd7ad55,transparent);box-shadow:0 0 18px #4dcfa21c}
.map-radio small{font-size:9px;letter-spacing:1px;color:#abd6c8}
.map-radio i{display:block;width:95px;height:17px;margin-top:4px;background:repeating-linear-gradient(90deg,transparent,transparent 3px,#82f7c7b3 3px,#82f7c7b3 4px);clip-path:polygon(0 45%,12% 40%,14% 30%,17% 66%,20% 44%,26% 40%,29% 0,33% 100%,37% 33%,43% 58%,47% 45%,53% 36%,57% 66%,60% 40%,64% 0,67% 100%,71% 33%,76% 55%,80% 40%,85% 33%,90% 59%,95% 41%,100% 45%,100% 55%,0 55%)}
.map-details{position:absolute;z-index:4;right:4%;top:50%;transform:translateY(-50%);width:346px;max-width:35%;background:#193e46ba;border:1px solid #d0e7e385;box-shadow:0 12px 50px #00101452;backdrop-filter:blur(11px);animation:map-panel-enter .24s ease-out}
.map-details[hidden]{display:none}
.map-mode-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-bottom:3px solid #d6e9e0}
.map-mode{border:0;border-right:1px solid #adc4c166;background:#102a32a6;color:#acbdbd;min-height:42px;font-size:14px;letter-spacing:2px;font-family:inherit}
.map-mode:last-child{border-right:0}
.map-mode.is-selected{color:#17302f;background:#d6e9e0;font-weight:650}
.map-mode small{display:block;font-size:7px;letter-spacing:1px;margin-top:2px;color:#8aa5a7}
.map-mode:disabled{cursor:not-allowed;color:#7c9b9e}
.map-detail-image{height:164px;position:relative;overflow:hidden}
.map-detail-image>img{width:100%;height:100%;display:block;object-fit:cover}
.map-detail-image:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 55%,#102b37a6)}
.map-detail-image>span{position:absolute;z-index:1;bottom:12px;left:18px;color:#f1f6ee;font:8px Consolas,monospace;letter-spacing:3px}
.map-detail-copy{padding:0 17px 12px}
.map-detail-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid #e6efea3b;padding:12px 0 9px}
.map-detail-heading h3{font-size:23px;letter-spacing:2px;font-weight:500;margin:0}
.map-detail-heading>button{height:25px;width:26px;padding:0;border:1px solid #c3ded863;background:#0e2b3444;color:#d8f5ed;font-size:17px}
.map-detail-heading>button:hover{border-color:var(--map-accent);color:var(--map-accent)}
.map-detail-facts{margin:7px 0 10px}
.map-detail-facts>div{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #c3d6d020;padding:8px 0;font-size:12px}
.map-detail-facts dt{color:#9fbcbf}
.map-detail-facts dd{margin:0;color:#effcf4}
.map-description{font-size:10px;color:#abc9c6;line-height:1.7;margin:0}
.map-confirm-area{padding:0 17px 15px}
.map-confirm-area>p{font-size:10px;color:#a2c8bd;margin:0 0 10px;letter-spacing:.5px}
.map-confirm{display:flex;align-items:center;justify-content:space-between;background:#53edbc;color:#062b21;min-height:48px;padding:10px 18px;font-size:17px;letter-spacing:2px;font-weight:650;box-shadow:0 0 18px #4aeeb31c}
.map-confirm:hover{background:#a2ffdc}
.map-confirm span{font-size:23px;font-weight:400}
.map-confirm-area>small{display:block;text-align:center;font-size:9px;color:#91b3b0;margin-top:9px}
.map-select-footer{height:52px;display:flex;align-items:center;gap:24px;padding:0 38px;background:#081c23f0;border-top:1px solid #b6d5d522;color:#8eb3b0;font-size:10px;position:relative;z-index:5}
.map-back{display:flex;align-items:center;gap:9px;flex:none;white-space:nowrap;padding:6px 10px;border:1px solid #b7dbd52b;background:#86aca50c;color:#c7dbd5;font-family:inherit;font-size:11px;line-height:1.3}
.map-back:hover{color:var(--map-accent);border-color:#a4f3d766}
.map-back kbd{display:grid;place-items:center;min-width:24px;height:20px;background:#b5c9c9;color:#163132;border:1px solid #d3dfd8;font:10px Consolas,monospace;box-shadow:0 1px 0 #728e8b}
.map-select-footer>small{margin-left:auto;font:8px Consolas,monospace;letter-spacing:2px;color:#577c80}
@keyframes map-panel-enter{from{opacity:0;translate:14px 0}to{opacity:1;translate:0 0}}
@media(min-width:1800px){.map-select-header{height:82px;padding-inline:52px;gap:48px}.map-top-nav>a,.map-top-nav>button,.map-top-nav>span{padding-inline:36px;font-size:16px}.map-select-content{height:calc(100svh - 82px)}.map-select-footer{height:58px;padding-inline:52px}.map-details{width:420px}.map-detail-image{height:210px}.map-detail-copy{padding:0 22px 17px}.map-detail-heading{padding-block:15px}.map-detail-heading h3{font-size:27px}.map-detail-facts>div{font-size:14px;padding-block:10px}.map-description{font-size:11px}.map-confirm-area{padding:0 22px 20px}.map-confirm{min-height:57px;font-size:19px}.map-mode{min-height:47px;font-size:16px}.map-node-label strong{font-size:24px}.map-node.is-selected .map-node-label strong{font-size:28px}.map-node-marker{transform:scale(1.16);margin-top:5px}.map-node.is-selected .map-node-marker{transform:scale(1.35)}.map-operation-context h2{font-size:34px}}
@media(max-width:980px){.map-select-header{height:68px;padding-inline:22px;gap:25px}.map-brand{font-size:18px}.map-brand>span{font-size:29px}.map-top-nav>a,.map-top-nav>button,.map-top-nav>span{padding-inline:20px;font-size:12px}.map-header-status{display:none}.map-select-content{height:calc(100svh - 68px);min-height:480px}.map-select-footer{height:50px;padding-inline:22px}.map-operation-context{left:4%;top:7%}.map-operation-context h2{font-size:23px}.map-operation-context>span{font-size:10px}.map-details{width:300px;max-width:39%;right:3%}.map-detail-image{height:135px}.map-detail-heading h3{font-size:20px}.map-mode{min-height:39px;font-size:12px}.map-detail-facts>div{font-size:11px;padding-block:7px}.map-description{font-size:9px}.map-confirm{font-size:15px;min-height:44px}.map-node{min-width:116px;padding-inline:9px}.map-node-label strong{font-size:18px}.map-node.is-selected .map-node-label strong{font-size:21px}.map-location-dam{left:43%;top:26%}.map-location-grove{left:22%;top:46%}.map-location-brakkesh{left:36%;top:70%}.map-location-space{left:81%;top:61%}.map-location-prison{left:72%;top:26%}.has-map-selection .map-location-dam{left:31%;top:48%}.map-radio{bottom:7%}}
@media(max-width:640px){.map-select-header{height:64px;padding:0 14px;gap:10px;position:sticky;top:0}.map-brand{font-size:0;gap:0}.map-brand>span{font-size:28px;margin-right:8px}.map-top-nav{flex:1;justify-content:space-between}.map-top-nav>a,.map-top-nav>button,.map-top-nav>span{font-size:11px;padding-inline:10px;letter-spacing:.5px}.map-select-content{height:calc(100svh - 64px);min-height:480px}.map-operation-context{left:6%;top:5%}.map-operation-context>p{font-size:7px;letter-spacing:2px;margin-bottom:6px}.map-operation-context h2{font-size:22px;letter-spacing:3px;margin-bottom:7px}.map-operation-context>span{font-size:9px}.map-selection-hint{bottom:8%;font-size:13px;letter-spacing:2px}.map-selection-hint>span{font-size:9px}.map-location-dam{left:49%;top:27%}.map-location-grove{left:22%;top:46%}.map-location-brakkesh{left:35%;top:69%}.map-location-space{left:79%;top:66%}.map-location-prison{left:78%;top:40%}.map-node{min-width:92px;padding:5px;gap:0}.map-node-label strong{font-size:15px;letter-spacing:1px}.map-node-label small{font-size:8px;margin-top:3px}.map-node-marker{width:77px;height:65px}.map-node-marker:before{height:38px}.map-node-marker:after{height:29px;bottom:7px}.map-node-marker svg{width:65px;height:51px}.map-node.is-selected .map-node-label strong{font-size:18px}.map-radio{left:6%;bottom:7%;gap:8px}.map-radio-emblem{height:27px;width:27px;font-size:22px}.map-radio small{font-size:7px}.map-radio i{width:60px;height:12px}.map-details{position:relative;top:auto;right:auto;transform:none;max-width:none;width:auto;margin:0 14px 18px;display:grid;grid-template-columns:110px 1fr;align-self:end;background:#183a40ec}.map-details[hidden]{display:none}.has-map-selection .map-select-content{height:auto;min-height:calc(100svh - 64px);padding-top:310px;padding-bottom:1px;display:flex;flex-direction:column;justify-content:flex-end}.has-map-selection .map-overview{min-height:100%;height:100%}.has-map-selection .map-location-dam{left:51%;top:150px}.has-map-selection .map-location:not(.map-location-dam){opacity:.17}.has-map-selection .map-radio{display:none}.map-mode-options{grid-column:1/-1}.map-mode{min-height:42px;font-size:13px}.map-detail-image{height:100%;min-height:140px}.map-detail-image>span{font-size:7px;left:10px;letter-spacing:2px}.map-detail-copy{padding:0 13px 12px}.map-detail-heading{padding:12px 0 9px}.map-detail-heading h3{font-size:20px}.map-detail-heading>button{width:23px;height:23px;font-size:15px}.map-detail-facts{margin-bottom:9px}.map-detail-facts>div{font-size:10px;padding:6px 0}.map-description{font-size:9px}.map-confirm-area{grid-column:1/-1;padding:2px 13px 13px}.map-confirm-area>p{font-size:9px}.map-confirm{min-height:47px;font-size:16px}.map-confirm-area>small{font-size:8px;margin-top:8px}.map-select-footer{height:48px;padding:0 14px;gap:14px}.map-select-footer>span{font-size:8px}.map-select-footer>small{display:none}.map-back{font-size:10px;padding:4px 7px;gap:7px}.map-back kbd{height:18px;font-size:9px;min-width:22px}}
.map-node:focus-visible{outline:none}.map-node:focus-visible .map-node-marker:after{border-color:#caffea;box-shadow:0 0 22px #6ffffa55}.map-terrain>img{transition:opacity .2s}.map-terrain[data-terrain-state="ready"]>img{opacity:0}

/* The seven-section navigation scrolls within the map header on narrow screens. */
.map-select-header{gap:28px}.map-top-nav{min-width:0;flex:1;overflow-x:auto;scrollbar-width:none}.map-top-nav::-webkit-scrollbar{display:none}.map-top-nav>a,.map-top-nav>button{white-space:nowrap;flex:none;padding-inline:20px}.map-top-nav>button:disabled{color:#739095;cursor:default}.map-top-nav>button:disabled:hover{color:#739095;background:transparent}.map-header-status{flex:none}
@media(min-width:1800px){.map-top-nav>a,.map-top-nav>button{padding-inline:26px}}
@media(max-width:980px){.map-select-header{gap:16px}.map-top-nav>a,.map-top-nav>button{padding-inline:16px}}
@media(max-width:640px){.map-select-header{gap:5px}.map-top-nav{justify-content:flex-start}.map-top-nav>a,.map-top-nav>button{padding-inline:14px}}
