.photo-map{display:block}.photo-map .map-canvas{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.photo-map svg{display:block;width:100%;height:auto}.photo-map .land,.photo-map .land path,.photo-map .details path{fill:var(--surface-2);stroke:var(--line);stroke-width:.8;vector-effect:non-scaling-stroke}.photo-map svg>.land{transition:none}.photo-map svg[data-detail]>.land{opacity:0;transition:opacity .35s ease}.photo-map .land path.lakes,.photo-map .details path.lakes,.photo-map svg>path.lakes{fill:var(--surface);stroke:var(--line);stroke-width:.7;vector-effect:non-scaling-stroke}.photo-map .details>g{opacity:0;transition:opacity .35s ease}.photo-map .details>g.is-current{opacity:1}.photo-map .borders,.photo-map .details path.borders{fill:none;stroke:var(--muted);stroke-width:.7;stroke-dasharray:3 3;opacity:.5;vector-effect:non-scaling-stroke}.photo-map .route{fill:none;stroke:var(--accent);stroke-width:2;stroke-dasharray:2 5;stroke-linecap:round;stroke-linejoin:round;opacity:.7;vector-effect:non-scaling-stroke}.photo-map .map-bar{position:absolute;z-index:4;top:.7rem;left:.7rem;display:flex;align-items:center;gap:.6rem;opacity:0;visibility:hidden;transition:opacity .25s ease,visibility 0s .25s}.photo-map[data-zoomed] .map-bar{opacity:1;visibility:visible;transition:opacity .25s ease .2s}.photo-map .map-back{font-family:var(--font-mono);font-size:.74rem;min-height:36px;padding:.25rem .8rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink-2);cursor:pointer}.photo-map .map-back:hover{border-color:var(--accent);color:var(--accent)}.photo-map .map-title{font-family:var(--font-display);font-weight:600;font-size:.95rem;padding:.05rem .4rem;border-radius:6px;background:color-mix(in srgb,var(--surface) 82%,transparent)}.photo-map .marker{--size: 36px;position:absolute;z-index:1;width:0;height:0;padding:0;border:0;background:none;color:var(--ink);font:inherit;cursor:pointer}.photo-map .marker[open]{z-index:3}.photo-map .marker>summary{list-style:none}.photo-map .marker>summary::-webkit-details-marker{display:none}.photo-map .marker--cluster,.photo-map .marker--place{transition:opacity .25s ease,visibility 0s .25s}.photo-map[data-zoomed] .marker--cluster,.photo-map .marker--place:not([data-current]){opacity:0;visibility:hidden;pointer-events:none}.photo-map .marker--place[data-current]{transition:opacity .3s ease .38s,visibility 0s 0s}.photo-map .pin{position:absolute;left:calc(var(--size) / -2);top:calc(var(--size) / -2);width:var(--size);height:var(--size);border-radius:50%;background:var(--accent);border:2px solid var(--surface);box-shadow:0 0 0 1px var(--line),0 2px 8px #0000002e;transition:box-shadow .15s ease,transform .15s ease}.photo-map .pin img{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover;dynamic-range-limit:standard}.photo-map .order{position:absolute;right:-6px;bottom:-4px;min-width:16px;height:16px;padding:0 3px;border-radius:8px;background:var(--accent);color:var(--bg);font-family:var(--font-mono);font-size:.62rem;line-height:16px;text-align:center}.photo-map .marker:hover .pin,.photo-map .marker[open] .pin,.photo-map .marker[data-active] .pin,.photo-map .marker:focus-visible .pin,.photo-map .marker>summary:focus-visible .pin{box-shadow:0 0 0 2px var(--accent),0 2px 10px #00000038;transform:scale(1.08)}.photo-map .marker:focus-visible .pin,.photo-map .marker>summary:focus-visible .pin{outline:2px solid transparent;outline-offset:2px}.photo-map .marker:focus-visible,.photo-map .marker>summary:focus-visible{outline:none}.photo-map .pin:after{content:"";position:absolute;inset:min(0px,calc((var(--size) - 44px) / 2));border-radius:50%}.photo-map .label{position:absolute;top:0;transform:translateY(-50%);padding:.1rem .45rem;border-radius:6px;background:color-mix(in srgb,var(--surface) 82%,transparent);font-family:var(--font-display);font-weight:600;font-size:.82rem;line-height:1.4;white-space:nowrap}.photo-map .marker[data-side=right] .label{left:calc(var(--size) / 2 + 5px)}.photo-map .marker[data-side=left] .label{right:calc(var(--size) / 2 + 5px)}.photo-map .marker[data-side=below] .label,.photo-map .marker[data-side=above] .label{left:0;transform:translate(-50%)}.photo-map .marker[data-side=below] .label{top:calc(var(--size) / 2 + 4px)}.photo-map .marker[data-side=above] .label{top:auto;bottom:calc(var(--size) / 2 + 4px)}.photo-map .marker:hover .label,.photo-map .marker[open] .label,.photo-map .marker[data-active] .label{color:var(--accent)}.photo-map .label .count{margin-left:.35rem;font-family:var(--font-mono);font-weight:400;font-size:.7rem;color:var(--muted)}.photo-map .pop{position:absolute;top:calc(var(--size) / 2 + 8px);left:-1rem;min-width:13rem;margin:0;padding:.35rem;list-style:none;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.photo-map .marker[data-pop-up] .pop{top:auto;bottom:calc(var(--size) / 2 + 8px)}.photo-map .marker[data-pop-end] .pop{left:auto;right:-1rem}.photo-map .pop a{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.4rem .6rem;border-radius:8px;font-family:var(--font-display);font-weight:600;font-size:.88rem;color:var(--ink)}.photo-map .pop a:hover,.photo-map .pop a[data-active]{background:var(--accent-soft);color:var(--accent)}.photo-map .pop .count{font-family:var(--font-mono);font-weight:400;font-size:.7rem;color:var(--muted);white-space:nowrap}.photo-map .marker--focus{z-index:2;cursor:default}.photo-map .marker--focus .pin{box-shadow:0 0 0 2px var(--accent),0 0 0 7px var(--accent-soft)}.photo-map .marker--focus .label{color:var(--accent)}.photo-map .marker--context{--size: 12px}.photo-map .marker--context .pin{background:color-mix(in srgb,var(--muted) 70%,transparent);box-shadow:none}.photo-map .marker--context:hover .pin,.photo-map .marker--context[open] .pin{background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.photo-map .marker--context .label{opacity:0;pointer-events:none;transition:opacity .15s ease}.photo-map .marker--context:hover .label,.photo-map .marker--context[open] .label,.photo-map .marker--context:focus-visible .label,.photo-map .marker--context:has(:focus-visible) .label{opacity:1}@media(max-width:560px){.photo-map .marker{--size: 26px}.photo-map .marker--context{--size: 10px}.photo-map .label{font-size:.7rem;padding:.05rem .3rem}.photo-map .label .count,.photo-map .marker--cluster .label{display:none}.photo-map .pop{position:fixed;left:1rem;right:1rem;top:auto;bottom:1rem;min-width:0;z-index:20}.photo-map .marker[data-pop-up] .pop,.photo-map .marker[data-pop-end] .pop{left:1rem;right:1rem;top:auto;bottom:1rem}.photo-map .pop a{min-height:44px;align-items:center}.photo-map .marker[data-narrow-side=below] .label{left:0;right:auto;top:calc(var(--size) / 2 + 3px);bottom:auto;transform:translate(-50%)}}
