.city-map-preview{position:relative;min-width:0;min-height:480px;margin:32px 24px 32px 0;overflow:hidden;border-radius:var(--radius-card);background:var(--primary-100)}.city-map-preview-link{display:block;position:absolute;inset:0;color:var(--primary-900);overflow:hidden}.city-map-art,.city-map-base{position:absolute;inset:0;display:block;width:100%;height:100%}.city-map-base{-o-object-fit:cover;object-fit:cover;-o-object-position:center top;object-position:center top}.city-map-landmark-guide{display:none}.city-map-neighborhoods text{fill:var(--text-muted);font:500 15px var(--font-sans);letter-spacing:1.5px;text-anchor:middle;paint-order:stroke;stroke:var(--primary-50);stroke-width:4px;stroke-linejoin:round}.city-map-landmark circle{fill:var(--surface);stroke:var(--primary-300);stroke-width:1.5px}.city-map-landmark text{fill:var(--primary-900);font:600 19px var(--font-sans);paint-order:stroke;stroke:var(--primary-50);stroke-width:5px;stroke-linejoin:round}.city-map-landmark-garden circle{fill:var(--primary-700);stroke:var(--surface);stroke-width:3px}.city-map-landmark-garden>svg{color:var(--surface)}.city-map-landmark-garden text{font-size:22px;stroke:var(--primary-300);stroke-width:4px}.city-map-tree>path{fill:var(--primary-700);stroke:var(--surface);stroke-width:3px;filter:drop-shadow(0 4px 4px rgb(var(--primary-rgb)/.2))}.city-map-tree>svg{color:var(--surface)}.city-map-tree text{fill:var(--surface);font:600 20px var(--font-sans);text-anchor:middle}.city-map-footer,.city-map-north,.city-map-place{position:absolute}.city-map-place{top:24px;left:24px;display:flex;align-items:center;gap:12px;padding:12px 18px;background:var(--surface);border-radius:var(--radius-control);box-shadow:0 4px 16px rgb(var(--primary-rgb)/.08)}.city-map-place>svg{width:22px;height:22px;color:var(--primary-700)}.city-map-place small,.city-map-place strong{display:block}.city-map-place strong{font-size:18px;font-weight:600}.city-map-place small{margin-top:2px;color:var(--text-muted);font-size:12px}.city-map-north{top:24px;right:24px;display:grid;justify-items:center;gap:3px;color:var(--primary-700)}.city-map-north b{font-size:12px;font-weight:600}.city-map-north svg{width:24px;height:24px;fill:var(--primary-700);stroke-width:1px}.city-map-footer{right:20px;bottom:44px;left:20px;display:flex;justify-content:space-between;align-items:center;gap:12px}.city-map-footer>span:first-child{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:var(--radius-pill);background:var(--surface);font-size:13px;font-weight:500}.city-map-footer>span:first-child svg{width:18px;height:18px;color:var(--primary-700);flex-shrink:0}.city-map-open{display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;border-radius:50%;background:var(--primary-700);color:var(--surface);transition:background-color .16s ease}.city-map-open svg{width:21px;height:21px}.city-map-preview-link:hover .city-map-open{background:var(--primary-900)}.city-map-preview-link:focus-visible{outline:3px solid var(--primary-700);outline-offset:-5px;border-radius:var(--radius-card)}.city-map-preview figcaption{position:absolute;right:12px;bottom:10px;left:12px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;color:var(--text-muted);font-size:11px;padding:4px 8px;border-radius:4px;background:var(--primary-50);pointer-events:none}.city-map-preview figcaption a{color:var(--primary-700);text-decoration:underline;text-underline-offset:2px;pointer-events:auto}@media (max-width:900px){.city-map-preview{min-height:440px;margin:0 24px 40px}}@media (max-width:600px){.city-map-preview{min-height:420px;margin-inline:16px}.city-map-place{top:16px;left:16px;padding:10px 12px;gap:8px}.city-map-place strong{font-size:16px}.city-map-place small{font-size:11px}.city-map-north{top:18px;right:18px}.city-map-landmark text{font-size:23px;stroke-width:6px}.city-map-landmark-station text{text-anchor:start;transform:translateX(30px)}.city-map-landmark-monument text{text-anchor:end;transform:translate(-12px,65px)}.city-map-landmark-guide{display:block;stroke:var(--primary-300);stroke-width:1.5px}.city-map-neighborhoods{display:none}.city-map-footer{right:14px;left:14px;bottom:58px}.city-map-footer>span:first-child{font-size:11px;padding:10px;gap:5px}.city-map-preview figcaption{font-size:10px}}