.map-holder{isolation:isolate}
.dearcity-map-base{position:absolute;inset:0;width:100%;height:100%;min-height:456px;border:0;z-index:0}
.dearcity-map-overlay{position:absolute;inset:0;z-index:2;pointer-events:none}
.dearcity-map-overlay .map-stage{position:absolute;inset:0;overflow:hidden;background:transparent}
.dearcity-map-overlay .map-key{position:absolute;left:16px;right:16px;bottom:12px;display:flex;justify-content:space-between;gap:12px;color:rgba(244,237,225,.7);font:10px/1 'IBM Plex Mono',monospace;letter-spacing:.04em;pointer-events:none}
.dearcity-map-overlay .city-dot{position:absolute;display:block;width:7px;height:7px;border-radius:999px;background:#f4ede1;border:1px solid rgba(25,23,18,.8);box-shadow:0 0 0 0 rgba(244,237,225,.7);transform:translate(-50%,-50%);pointer-events:auto;z-index:2}
.dearcity-map-overlay .city-dot:after{content:'';position:absolute;inset:-5px;border:1px solid rgba(244,237,225,.7);border-radius:50%;animation:dearcity-map-pulse 2.6s infinite}
.dearcity-map-overlay .city-dot span{position:absolute;left:14px;top:-8px;white-space:nowrap;color:#faf6ed;background:rgba(5,4,3,.94);padding:7px 9px;font:10px/1 'IBM Plex Mono',monospace;opacity:0;pointer-events:none;border-radius:8px;transition:opacity .16s ease}
.dearcity-map-overlay .city-dot:hover span,.dearcity-map-overlay .city-dot:focus-visible span{opacity:1}
@keyframes dearcity-map-pulse{0%,100%{transform:scale(.7);opacity:.8}50%{transform:scale(1.35);opacity:0}}
