.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:rgba(0,0,0,0)}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none !important;max-height:none !important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none !important;max-height:none !important;width:auto;padding:0}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:rgba(0,0,0,0)}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0, 0, 0.25, 1);-moz-transition:-moz-transform .25s cubic-bezier(0, 0, 0.25, 1);transition:transform .25s cubic-bezier(0, 0, 0.25, 1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:rgba(255,255,255,.5)}.leaflet-container{font-family:"Helvetica Neue",Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px rgba(0,0,0,.65);border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:bold 18px "Lucida Console",Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px rgba(0,0,0,.4);background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(images/layers.png);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(images/layers-2x.png);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(images/marker-icon.png)}.leaflet-container .leaflet-control-attribution{background:#fff;background:rgba(255,255,255,.8);margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{display:inline !important;vertical-align:baseline !important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;-moz-box-sizing:border-box;box-sizing:border-box;background:rgba(255,255,255,.8);text-shadow:1px 1px #fff}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:17px 0;margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px rgba(0,0,0,.4)}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:rgba(0,0,0,0)}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px rgba(0,0,0,.4)}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{position:absolute;pointer-events:none;border:6px solid rgba(0,0,0,0);background:rgba(0,0,0,0);content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
.leaflet-cluster-anim .leaflet-marker-icon,.leaflet-cluster-anim .leaflet-marker-shadow{-webkit-transition:-webkit-transform .3s ease-out,opacity .3s ease-in;-moz-transition:-moz-transform .3s ease-out,opacity .3s ease-in;-o-transition:-o-transform .3s ease-out,opacity .3s ease-in;transition:transform .3s ease-out,opacity .3s ease-in}.leaflet-cluster-spider-leg{-webkit-transition:-webkit-stroke-dashoffset .3s ease-out,-webkit-stroke-opacity .3s ease-in;-moz-transition:-moz-stroke-dashoffset .3s ease-out,-moz-stroke-opacity .3s ease-in;-o-transition:-o-stroke-dashoffset .3s ease-out,-o-stroke-opacity .3s ease-in;transition:stroke-dashoffset .3s ease-out,stroke-opacity .3s ease-in}
:root {
  --blue: #1867d8;
  --text: #172033;
  --muted: #6f7a8c;
  --line: #dfe5ee;
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--text);
  background: #f5f7fa;
}
* {
  box-sizing: border-box;
}
body {
  margin: 0;
}
body.archive-page {
  min-height: 100dvh;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  overflow-x: hidden;
}
a {
  color: inherit;
  text-decoration: none;
}
button,
input {
  font: inherit;
}
button {
  cursor: pointer;
}
a:focus-visible,
button:focus-visible,
input:focus-visible {
  outline: 3px solid var(--blue);
  outline-offset: 3px;
}
.topbar {
  min-height: 78px;
  padding: 0 28px;
  background: white;
  border-bottom: 1px solid var(--line);
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 28px;
}
.brand {
  display: flex;
  align-items: center;
  gap: 12px;
  width: fit-content;
}
.brand img {
  width: 42px;
}
.brand b {
  font-size: 20px;
}
.brand em {
  font-style: normal;
  color: var(--blue);
}
.brand small {
  display: block;
  margin-top: 3px;
  color: #8a94a5;
  font-size: 11px;
}
.topbar nav {
  display: flex;
  justify-content: flex-end;
  font-size: 14px;
  font-weight: 600;
}
.topbar nav a {
  padding: 28px 0 24px;
}
.topbar nav .active {
  color: var(--blue);
  border-bottom: 2px solid var(--blue);
}
.archive-main {
  min-height: 0;
  padding: 14px;
  overflow: hidden;
}
.workspace {
  width: 100%;
  height: 100%;
  min-height: 0;
  padding: 0;
}
.map-section {
  position: relative;
  height: 100%;
  min-height: 0;
}
.map {
  height: 100%;
  min-height: 0;
  border-radius: 16px;
  border: 1px solid #d9dfcf;
  background: #e5ebdf;
  z-index: 0;
}
.map .leaflet-control-zoom {
  margin: 16px;
  border: 0;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 5px 18px #0002;
}
.map .leaflet-control-zoom a {
  width: 42px;
  height: 42px;
  line-height: 42px;
  color: var(--text);
}
.map .leaflet-control-attribution {
  font-size: 10px;
}
.map .leaflet-control-scale {
  margin: 0 0 16px 16px;
}
.nearby {
  margin: 0;
  padding: 16px;
  background: white;
  border: 1px solid var(--line);
  border-radius: 16px;
  box-shadow: 0 8px 22px #1c2b4412;
}
.nearby-cards {
  display: flex;
  gap: 12px;
  min-width: 0;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  padding-bottom: 4px;
  cursor: grab;
  touch-action: pan-y;
}
.nearby-cards.is-dragging {
  cursor: grabbing;
  user-select: none;
}
.nearby-card {
  min-width: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--text);
  text-align: left;
}
.nearby-card {
  flex: 0 0 170px;
}
.nearby-card img {
  display: block;
  width: 100%;
  aspect-ratio: 1.5 / 1;
  margin-bottom: 8px;
  border-radius: 10px;
  background: #edf2f8;
  object-fit: cover;
}
.nearby-card strong,
.nearby-card small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.nearby-card strong {
  font-size: 12px;
}
.nearby-card small {
  margin-top: 3px;
  color: var(--muted);
  font-size: 11px;
}
.archive-footer {
  min-width: 0;
  padding: 0 14px 14px;
  color: #7d8796;
  font-size: 11px;
}
.archive-cluster {
  display: grid;
  place-items: center;
  border: 4px solid #ffffffe6;
  border-radius: 50%;
  background: var(--blue);
  color: white;
  font-weight: 700;
  box-shadow: 0 4px 18px #1867d859;
}
.photo-pin {
  padding: 0;
  border-radius: 50%;
  background: white;
  border: 1px solid #c8d0dc;
  box-shadow: 0 5px 16px #0004;
  overflow: hidden;
}
.photo-placeholder {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: #edf2f8;
  color: var(--blue);
  overflow: hidden;
}
.photo-placeholder img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: none;
  border-radius: 50%;
  object-fit: cover !important;
  object-position: center;
}
.photo-placeholder svg {
  width: 28px;
  height: 28px;
}
.photo-pin-title {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  overflow-wrap: anywhere;
  width: 100%;
  color: var(--text);
  font-size: 11px;
  font-weight: 600;
  line-height: 14px;
  text-align: center;
}
.photo-thumbnail {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 7px;
  overflow: hidden;
  background: #edf2f8;
}
.photo-thumbnail img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.photo-thumbnail.unavailable {
  display: grid;
  place-items: center;
  text-align: center;
  color: var(--muted);
  font-size: 10px;
}
.photo-popup {
  width: 100%;
  max-width: 100%;
  font-family: Inter, system-ui, sans-serif;
}
.photo-popup .photo-thumbnail {
  height: min(340px, 40dvh);
}
.photo-popup .photo-thumbnail img {
  object-fit: contain;
}
.photo-popup h2 {
  font-size: 17px;
  margin: 12px 0 6px;
  overflow-wrap: anywhere;
}
.photo-popup p {
  color: var(--muted);
  margin: 6px 0;
  overflow-wrap: anywhere;
}
.photo-popup .photo-preview {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: zoom-in;
}
.photo-popup .photo-original {
  display: block;
  width: 100%;
  border: 0;
  margin-top: 14px;
  padding: 10px;
  border-radius: 9px;
  background: var(--blue);
  color: white;
  text-align: center;
}
.map .photo-card-popup .leaflet-popup-content-wrapper {
  padding: 0;
  overflow: hidden;
  background: #172033;
}
.map .photo-card-popup .leaflet-popup-content {
  margin: 0;
}
.map .photo-card-popup .photo-popup {
  position: relative;
  overflow: hidden;
  border-radius: 12px;
}
.map .photo-card-popup .photo-preview,
.map .photo-card-popup .photo-thumbnail {
  height: 100%;
  border-radius: 0;
}
.map .photo-card-popup .photo-thumbnail img {
  object-fit: cover;
}
.photo-popup-caption {
  position: absolute;
  inset: auto 0 0;
  padding: 48px 16px 16px;
  background: linear-gradient(transparent, rgba(0, 0, 0, 0.85));
  color: white;
  pointer-events: none;
}
.photo-popup-caption h2 {
  margin: 0 0 6px;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}
.photo-popup-caption p {
  color: #ffffffde;
  margin: 3px 0 0;
  font-size: 12px;
}
.map .photo-card-popup a.leaflet-popup-close-button {
  top: 8px;
  right: 8px;
  width: 28px;
  height: 28px;
  line-height: 28px;
  font-size: 16px;
  border-radius: 50%;
  background: #0009;
  color: white;
}
.photo-viewer-open {
  overflow: hidden;
}
.photo-viewer {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100dvh;
  max-width: none;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: #101318;
  color: white;
}
.photo-viewer[open] {
  display: grid;
  place-items: center;
}
.photo-viewer::backdrop {
  background: #101318;
}
.photo-viewer img {
  width: 100%;
  height: 100dvh;
  object-fit: contain;
  cursor: zoom-out;
}
.photo-viewer [hidden] {
  display: none;
}
.photo-viewer-close {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 1;
  width: 44px;
  height: 44px;
  border: 1px solid #ffffff66;
  border-radius: 50%;
  background: #101318cc;
  color: white;
  font-size: 28px;
}
.photo-viewer p {
  padding: 24px;
  text-align: center;
}
@media (max-width: 900px) {
  .topbar {
    grid-template-columns: 1fr auto;
    gap: 12px;
    padding: 12px 14px;
  }
  .topbar nav a {
    padding: 8px 0;
  }
  .brand small {
    display: none;
  }
  .archive-main {
    padding: 8px;
  }
  .nearby {
    margin: 0;
  }
  .archive-footer {
    padding: 0 8px 8px;
  }
}
@media (width < 740px) {
  .map .photo-card-popup a.leaflet-popup-close-button {
    width: 56px;
    height: 56px;
    line-height: 56px;
    font-size: 32px;
  }
  .topbar {
    min-height: unset;
    padding: 4px 14px;
  }
}
@media (max-width: 600px) {
  .map .leaflet-popup-content-wrapper {
    max-width: calc(100vw - 32px);
  }
  .map .leaflet-popup-content {
    margin: 10px;
  }
  .photo-popup .photo-thumbnail {
    height: min(280px, 36dvh);
  }
  .photo-popup h2 {
    font-size: 16px;
  }
  .photo-popup .photo-original {
    margin-top: 10px;
    padding: 9px 8px;
  }
  .nearby-card {
    flex: 0 0 150px;
  }
}

