<!-- SOLID CITY · part 1372 -->
AP.cx - MAP.span / 2)) * px, szp = (az - (MAP.cz - MAP.span / 2)) * px, sr = rad * px;
    rg.imageSmoothingEnabled = true; rg.drawImage(mapImg, sxp - sr, szp - sr, sr * 2, sr * 2, 0, 0, W, H);
  }
  var sc = (W / 2) / rad;
  function blip(x, z, col, r, txt) { var bx = W / 2 + (x - ax) * sc, by = H / 2 + (z - az) * sc; var d = Math.hypot(bx - W / 2, by - H / 2); if (d > W / 2 - 8) { bx = W / 2 + (bx - W / 2) / d * (W / 2 - 8); by = H / 2 + (by - H / 2) / d * (W / 2 - 8); } rg.fillStyle = col; rg.beginPath(); rg.arc(bx, by, r, 0, Math.PI * 2); rg.fill(); if (txt) { rg.font = 'bold 15px system-ui'; rg.fillText(txt, bx + r + 2, by + 5); } }
  rg.fillStyle = 'rgba(30,20,24,.6)'; var cr = 800 * sc; rg.beginPath(); rg.arc(W / 2 + (0 - ax) * sc, H / 2 + (0 - az) * sc, Math.max(cr, 3), 0, Math.PI * 2); rg.fill();
  blip(D.plaza.x, D.plaza.z, '#e8c36a', 6, flying ? '' : 'F');
  blip(D.studio.x, D.studio.z, '#e8c36a', 6, flying ? '' : 'M');
  blip(D.port.x, D.port.z, '#ff3048', 7, flying ? 'PORT' : 'S');
  blip(D.soul.x, D.soul.z, '#49a6ff', 5, flying ? '' : 'SP');
  if (!flying) blip(SABLE_POS.x, SABLE_POS.z, '#ff8fa0', 4, '');
  if (window.CityHyper) try { CityHyper.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityWatch) try { CityWatch.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityCitizens) try { CityCitizens.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityMonuments) try { CityMonuments.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CitySanctuary) try { CitySanctuary.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityCampus) try { CityCampus.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityBook) try { CityBook.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityPodium) try { CityPodium.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityHyperTrain) try { CityHyperTrain.radar(rg, blip, flying); } catch (e) {}
  if (window.CitySolidSanctuary) try { CitySolidSanctuary.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityAncestorRoads) try { CityAncestorRoads.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityColosseum) try { CityColosseum.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityImperialColosseum) try { CityImperialColosseum.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityVillageMauna) try { CityVillageMauna.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityMountainHomes) try { CityMountainHomes.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityGateAncestors) try { CityGateAncestors.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityLanternVigil) try { CityLanternVigil.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityCompassMeridian) try { CityCompassMeridian.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityRoostKeel) try { CityRoostKeel.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityOverlookMira) try { CityOverlookMira.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityEighthGate) try { CityEighthGate.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityHallBecoming) try { CityHallBecoming.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityFoundry) try { CityFoundry.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityHyperCity) try { CityHyperCity.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityFirstCity) try { CityFirstCity.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityFirstParking) try { CityFirstParking.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityFirstWard) try { CityFirstWard.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityWards) try { CityWards.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CitySkyward) try { CitySkyward.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityJubilee) try { CityJubilee.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CitySouthGate) try { CitySouthGate.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityWardHouses) try { CityWardHouses.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityAnnex) try { CityAnnex.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityQuadrantCrown) try { CityQuadrantCrown.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityLostWings) try { CityLostWings.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityOctaPool) try { CityOctaPool.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CitySolidFigure) try { CitySolidFigure.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CitySolidMirror) try { CitySolidMirror.radar(rg, blip, flying, sc, ax, az); } catch (e) {