/* Map discovery shares the existing community rail and its responsive flow. */
.map-selection{margin:0 0 26px;color:#f6f4e9}
.map-selection header{margin-bottom:14px}
.map-kicker{margin:0 0 6px;font:800 11px/1.4 var(--font-ui);letter-spacing:.18em;color:#d8f98b}
#map-selection-title{margin:0;font:400 clamp(23px,2.1vw,32px)/1.1 var(--font-display);text-transform:uppercase;text-wrap:balance}
.map-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px}
#menu .map-card{position:relative;width:100%;min-width:0;height:208px;display:block;overflow:hidden;border:1px solid #bedce766;border-radius:8px;padding:0;text-align:left;background:#142c3b;color:#fff;box-shadow:0 8px 24px #06111d40;isolation:isolate}
#menu .map-card[aria-pressed=true]{border:2px solid #d8f98b;box-shadow:0 0 0 3px #d8f98b18}
.map-card>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.map-card::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#0b1d2b08 15%,#071b2ca3 50%,#071b2bf5);z-index:-1}
.map-card-body{height:100%;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:14px;gap:5px}
.map-card-tag{margin-bottom:auto;padding:4px 6px;color:#1d3027;background:#d8f98b;font:800 9px/1.2 var(--font-ui);letter-spacing:.1em}
.map-card[data-map=sunreach] .map-card-tag{background:#f5dfb5}
.map-card strong{font:400 clamp(19px,1.8vw,26px)/1.05 var(--font-display);text-transform:uppercase;text-shadow:0 2px 9px #071b2b}
.map-card-detail{font:700 9px/1.4 var(--font-ui);letter-spacing:.035em;color:#e0e8e8}
.map-card-selected{font:800 9px/1.4 var(--font-ui);letter-spacing:.08em;color:#d8f98b}
.map-card[aria-pressed=false] .map-card-selected{color:#fff}
#menu .map-card:hover{border-color:#fff}
#menu .map-card:focus-visible{outline:3px solid #fff;outline-offset:4px}
.map-selection-note{font:12px/1.5 var(--font-reading);margin:12px 0 0;color:#d3e0e5;text-shadow:0 2px 6px #06182b}
#menu .map-motion{font:11px/1.4 var(--font-ui);min-height:32px;padding:5px 0;margin:5px 0 0;border:0;background:transparent;text-decoration:underline;text-underline-offset:4px;color:#e4edf2;box-shadow:none}
#community-spotlight{width:min(47vw,640px);top:clamp(48px,8vh,92px)}
#community-spotlight .spotlight-grid{grid-template-columns:1fr 1fr}
#community-spotlight .spotlight-card{height:180px}
#community-spotlight .spotlight-quote{font-size:15px}
#community-spotlight .spotlight-headline{font-size:15px}
#community-spotlight .spotlight-heading{margin-bottom:10px}
#community-spotlight #spotlight-title{font-size:22px}
#community-spotlight .spotlight-kicker{font-size:9px}
#community-spotlight .spotlight-image{height:56px}
#community-spotlight[data-mode=deployment]{max-width:740px}
#community-spotlight[data-mode=deployment] .map-card{height:170px}
#community-spotlight[data-mode=deployment] .spotlight-card{height:145px}
#community-spotlight[data-mode=deployment] .spotlight-image{display:none}
@media(min-width:961px) and (min-height:681px){
 #menu.ssr-interim:has(#entry-gate:not([hidden])) .entry-gate{max-width:42vw}
 #menu.ssr-interim:has(#entry-gate:not([hidden])) .entry-project-credit{max-width:42vw}
 #menu.ssr-interim .deployment-heading h1{font-size:clamp(48px,8vh,90px)}
}
@media(max-width:960px),(max-height:680px){
 #community-spotlight{width:100%;max-width:740px;position:static}
 .map-selection{margin-bottom:20px}
 #menu .map-card{height:200px}
}
@media(max-width:540px){
 #menu .map-card{height:180px}
 .map-card-body{padding:10px;gap:6px}
 .map-card strong{font-size:21px}
 .map-card-detail{font-size:8px}
 #community-spotlight .spotlight-grid{grid-template-columns:1fr}
 #community-spotlight .spotlight-card{height:170px}
}
.map-loading{align-items:flex-end;justify-content:flex-start;background:linear-gradient(0deg,#061723f5,transparent 85%);padding:clamp(28px,6vw,90px);z-index:1002}
.map-loading-copy{max-width:680px;color:#fff6e3}
.map-loading h2{font:400 clamp(42px,7vw,96px)/1 var(--font-display);margin:12px 0 20px;text-transform:uppercase;text-wrap:balance;text-shadow:0 4px 28px #071320}
.map-loading progress{display:block;width:min(420px,75vw);height:5px;margin:20px 0;accent-color:#d8f98b}
.map-loading-tip{color:#c5d8dd;font:14px/1.5 var(--font-reading)}
.map-loading #map-loading-status{font:700 17px/1.5 var(--font-ui)}
.map-loading button{margin-top:16px;min-height:44px}

.map-concept-link{display:inline-block;margin:8px 0 4px 16px;color:#a8ebdd;font-size:12px;text-underline-offset:3px}

/* Short landscape windows need the same usable deployment layout whether the
   browser identifies touch at startup or is resized into an emulator later. */
@media (orientation:landscape) and (max-height:600px), (min-width:541px) and (max-width:960px) {
 html:is([data-device-mode],:root) #menu.ssr-interim:has(#deployment-controls:not([hidden])){display:block;height:100dvh;padding:max(10px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));overflow:auto}
 html:is([data-device-mode],:root) #menu.ssr-interim:has(#deployment-controls:not([hidden]))>.deployment-heading{display:none}
 html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls:not([hidden]){position:relative;inset:auto;transform:none;display:grid;width:100%;max-width:900px;max-height:none;min-height:0;margin:0 auto;padding:12px;box-sizing:border-box;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);grid-template-rows:auto auto auto;gap:8px 16px;overflow:visible}
 html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls>.deployment-brief:has(.map-selection){display:block;grid-column:1;grid-row:1/3;min-width:0}
 html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls>.deployment-brief>h2,html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls>.deployment-brief>p{display:none}
 html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls>.deployment-actions{grid-column:2;grid-row:1;display:grid;grid-template-columns:1fr 1fr;gap:6px;min-width:0}
 html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls .selected-fighter{grid-column:1/-1;display:flex;align-items:center;height:40px;margin:0;padding:3px 6px;gap:8px}
 html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls .selected-fighter img{width:30px;height:34px;object-fit:contain}
 html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls .selected-fighter small{font-size:10px}
 html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls .selected-fighter strong{font-size:19px}
 html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls .player-identity{grid-column:1/-1;display:flex;align-items:center;gap:8px;margin:0;font-size:15px}
 html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls .player-identity input{width:100%;min-width:0;height:44px;min-height:44px;padding:6px 8px;font-size:18px}
 html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls #username-status{display:none}
 html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls #roster-status{grid-column:1/-1;margin:0;font-size:12px;line-height:1.3}
 html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls .deployment-actions>button{grid-column:auto;min-width:0;min-height:44px;height:auto;margin:0;padding:6px 8px;font-size:17px}
 html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls>.deployment-options{grid-column:2;grid-row:2;position:static;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin:0;padding:0;align-self:start}
 html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls .deployment-options>button,html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls .deployment-options>.leaderboard-menu-link{min-width:0;min-height:44px;margin:0;padding:5px;font-size:12px;line-height:1.1}
 html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls .deployment-options>.leaderboard-menu-link{grid-column:2/4;grid-row:auto}
 html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls>.project-credit{grid-column:1/-1;grid-row:3;margin:0;font-size:9px;line-height:1.25;max-width:none}
 html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls #community-spotlight{position:static;inset:auto;width:100%;height:100%;margin:0;padding:0;max-width:none}
 html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls .spotlight-heading,html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls .spotlight-grid,html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls .spotlight-hint{display:none}
 html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls .map-selection{display:flex;flex-direction:column;height:100%;margin:0;gap:8px}
 html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls .map-selection header{margin:0}
 html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls .map-kicker,html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls .map-selection-note{display:none}
 html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls #map-selection-title{font-size:23px;line-height:1.05}
 html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls .map-cards{flex:1;gap:8px;min-height:0}
 html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls .map-card{height:100%;min-height:150px;max-height:260px}
 html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls .map-card-body{padding:9px;gap:4px}
 html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls .map-card strong{font-size:20px}
 html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls .map-card-detail{font-size:8px}
}
@media (orientation:landscape) and (max-height:600px), (min-width:541px) and (max-width:960px) {
 html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls>.deployment-brief:has(.map-selection){grid-row:1;align-self:stretch}
 html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls>.deployment-options{grid-column:1/-1;grid-template-columns:repeat(6,minmax(0,1fr))}
 html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls .deployment-options>.leaderboard-menu-link{grid-column:span 2}
 html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls #roster-status:has(button){display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px}
 html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls #roster-status button{font-size:14px;min-height:44px;padding:5px 8px;margin:0}
}
@media (orientation:landscape) and (max-height:360px) {
 html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls:not([hidden]){gap:6px 12px;padding:10px}
 html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls .map-card{min-height:130px}
 html:is([data-device-mode],:root) #menu.ssr-interim #deployment-controls #map-selection-title{font-size:20px}
}
/* Native progress gets the same clearly filled track in Safari and Chromium. */
.map-loading progress{appearance:none;-webkit-appearance:none;border:0;border-radius:3px;overflow:hidden;height:8px;background:#102b3d;color:#d8f98b}
.map-loading progress::-webkit-progress-bar{background:#102b3d}
.map-loading progress::-webkit-progress-value{background:#d8f98b}
.map-loading progress::-moz-progress-bar{background:#d8f98b}
