/* The atlas shares the page background; the world is the canvas. */
.places .atlas-layout { display: block; }
.places .map-wrap { border: 0; background: transparent; box-shadow: none; }
.world-map-stage { position: relative; width: 100%; min-height: 0; }
.places #atlasMap { aspect-ratio: 1000 / 520; display: grid; place-items: center; width: 100%; overflow: hidden; }
.places .atlas-map { display: block; width: 100%; height: 100%; min-height: 0; max-height: none; overflow: hidden; }
.places .map-land { fill: #151b1d; stroke: #2d3639; stroke-width: .55; stroke-linejoin: round; }
.places .map-region.visited { cursor: pointer; outline: none; }
.places .map-region.visited .map-land { fill: #374245; stroke: #829093; stroke-width: .65; transition: fill .2s, stroke .2s; }
.places .map-region.visited[aria-pressed="true"] .map-land { fill: #4b595d; stroke: #c4cece; }
.places .map-region.visited:hover .map-land, .places .map-region.visited:focus-visible .map-land { fill: #59686b; stroke: #f1f4f3; stroke-width: 1.2; }
.places .map-pin .pin-hit, .places .map-pin.active .pin-hit, .places .map-pin:focus-visible .pin-hit { fill: transparent; stroke: none; }
.places .map-pin .pin-ring { fill: none; stroke: #dce5e52a; stroke-width: 1; }
.places .map-pin .pin-center { fill: #e0e8e8; stroke: #0b1012; stroke-width: 1; }
.places .map-pin.active .pin-ring { fill: #ffffff08; stroke: #e0e8e88c; stroke-width: 1; }
.places .map-pin.active .pin-center { fill: #fff; }
.places .map-pin:hover .pin-ring, .places .map-pin:focus-visible .pin-ring { stroke: #fff; stroke-width: 1.8; }
@media (max-width: 800px) {
  .places .atlas-layout { display: flex; flex: 1; min-height: 0; }
  .places .map-wrap { display: flex; flex-direction: column; flex: 1; min-height: 0; }
  .world-map-stage { display: flex; flex: 1; min-height: 0; }
  .places #atlasMap { aspect-ratio: auto; flex: 1; min-height: 0; }
  .places .map-land { stroke-width: .7; }
  .places .map-region.visited .map-land { stroke-width: 1.1; }
  .places .map-pin .pin-center { r: 4; stroke-width: 1.2; }
}

/* One-finger page scrolling at world view; direct panning after a pinch. */
.places #atlasMap{touch-action:pan-y;user-select:none;-webkit-user-select:none}
.places #atlasMap.is-zoomed{touch-action:none;cursor:grab}
.places #atlasMap.is-dragging,.places #atlasMap.is-dragging *{cursor:grabbing!important}

/* Full-bleed canvas, with a soft atmospheric edge instead of a hard frame. */
.world-map-stage{--map-feather:clamp(24px,4vw,72px);isolation:isolate;overflow:hidden}
.places #atlasMap{
 -webkit-mask-image:linear-gradient(90deg,transparent,#000 var(--map-feather),#000 calc(100% - var(--map-feather)),transparent),linear-gradient(180deg,transparent,#000 var(--map-feather),#000 calc(100% - var(--map-feather)),transparent);
 mask-image:linear-gradient(90deg,transparent,#000 var(--map-feather),#000 calc(100% - var(--map-feather)),transparent),linear-gradient(180deg,transparent,#000 var(--map-feather),#000 calc(100% - var(--map-feather)),transparent);
 -webkit-mask-composite:source-in;mask-composite:intersect;
}
.world-map-stage::after{
 content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
 -webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);
 -webkit-mask-image:linear-gradient(90deg,#000,transparent calc(var(--map-feather)*1.7),transparent calc(100% - var(--map-feather)*1.7),#000),linear-gradient(180deg,#000,transparent calc(var(--map-feather)*1.7),transparent calc(100% - var(--map-feather)*1.7),#000);
 mask-image:linear-gradient(90deg,#000,transparent calc(var(--map-feather)*1.7),transparent calc(100% - var(--map-feather)*1.7),#000),linear-gradient(180deg,#000,transparent calc(var(--map-feather)*1.7),transparent calc(100% - var(--map-feather)*1.7),#000);
 -webkit-mask-composite:source-over;mask-composite:add;
}
.places #atlasMap:focus-visible{outline:0}
.places #atlasMap:focus-visible::before{content:"";position:absolute;inset:var(--map-feather);border:1px solid var(--line);border-radius:2px;pointer-events:none}
