.photo-atlas-map { background: #ecefe7; }
.photo-atlas-map .maplibregl-canvas-container, .photo-atlas-map .maplibregl-canvas, .photo-atlas-pin, .photo-atlas-active { touch-action:none; }
.photo-atlas-map .maplibregl-canvas:focus-visible { outline: 1px solid #657768; outline-offset: -4px; }
.photo-atlas-map .maplibregl-ctrl-attrib { background: #f7f5f0ed; color: #62695e; font: 10px/1.5 system-ui, sans-serif; }
.photo-atlas-map .maplibregl-ctrl-attrib a { color: #535d50; }
.photo-atlas-map .maplibregl-ctrl-attrib-button { filter: none; }
.photo-atlas-hover { pointer-events: none; }
.photo-atlas-hover .maplibregl-popup-content { background: #f7f5f0f5; color: #353831; padding: 9px 12px; border: 1px solid #ccd2c5; box-shadow: 0 8px 24px #53614f1c; border-radius: 3px; font: 11px/1.6 system-ui, sans-serif; max-width: 250px; overflow-wrap: anywhere; }
.photo-atlas-hover.maplibregl-popup-anchor-bottom .maplibregl-popup-tip { border-top-color: #f7f5f0f5; }
.photo-atlas-hover.maplibregl-popup-anchor-top .maplibregl-popup-tip { border-bottom-color: #f7f5f0f5; }
.photo-atlas-hover.maplibregl-popup-anchor-left .maplibregl-popup-tip { border-right-color: #f7f5f0f5; }
.photo-atlas-hover.maplibregl-popup-anchor-right .maplibregl-popup-tip { border-left-color: #f7f5f0f5; }
.photo-atlas-active { position: relative; width: 40px; height: 40px; padding: 0; border: 0; border-radius: 50%; background: transparent; cursor: pointer; color: #586b5b; }
.photo-atlas-active[hidden] { display: none; }
.photo-atlas-pin { z-index: 2; width: 52px; height: 58px; }
.photo-atlas-print { position: relative; display: block; width: 52px; height: 58px; padding: 3px 3px 12px; border: 1px solid #ccd2c5; border-radius: 2px; background: #f7f5f0; color: #353831; cursor: pointer; box-shadow: 0 8px 24px #53614f24; transition: translate .25s, box-shadow .25s; }
.photo-atlas-print img { position: absolute; inset: 3px 3px 12px; width: calc(100% - 6px); height: calc(100% - 15px); object-fit: cover; border-radius: 1px; pointer-events: none; }
.photo-atlas-print.is-stack { border-bottom-color: #9dac95; box-shadow: 0 3px 0 -1px #d4dccf, 0 6px 0 -2px #b8c4b1, 0 8px 24px #53614f24; }
.photo-atlas-print.is-stack img:not(:last-child) { display: none; }
.photo-atlas-pin-count { position: absolute; z-index: 4; inset: auto 0 0; height: 12px; text-align: center; color: #353831; font: 600 9px/12px system-ui,sans-serif; letter-spacing: .04em; white-space: nowrap; }
.photo-atlas-print:hover, .photo-atlas-print:focus-visible { translate: 0 -4px; box-shadow: 0 12px 28px #53614f33; outline: 2px solid #657768; outline-offset: 4px; }
.photo-atlas-print.is-selected { background: #dce5d6; border-color: #586b5b; box-shadow: 0 0 0 2px #65776844, 0 8px 24px #53614f26; }
.photo-atlas-map[data-atlas-paused='true'] .photo-atlas-pin { pointer-events: none; }
@media (prefers-reduced-motion: reduce) { .photo-atlas-print { transition: none; } }
.photo-atlas-active span { position: absolute; inset: 11px; border-radius: 50%; background: #657768; border: 3px solid #f7f5f0; box-shadow: 0 0 0 1px #657768, 0 0 25px #65776822; }
.photo-atlas-active::before, .photo-atlas-active::after { content: ''; position: absolute; inset: 5px; border: 1px solid #65776880; border-radius: 50%; pointer-events: none; }
.photo-atlas-active::after { animation: atlas-active-pulse 3s ease-out infinite; }
.photo-atlas-active:focus-visible { outline: 2px solid #657768; outline-offset: 4px; }
.photo-atlas-map[data-atlas-paused='true'] .photo-atlas-active::after { animation-play-state: paused; }
.photo-atlas-map[data-atlas-reduced='true'] .photo-atlas-active::after { animation: none; }
.photo-atlas-group { position: absolute; z-index: 8; box-sizing: border-box; display: grid; grid-template-rows: 44px minmax(0,1fr) 44px; padding: 8px 10px; border: 1px solid #ccd2c5; border-radius: 5px; background: #f7f5f0f5; color: #353831; box-shadow: 0 16px 55px #53614f26; backdrop-filter: blur(18px); overflow: hidden; touch-action: auto; animation: atlas-group-arrive .18s ease-out; }
.photo-atlas-group[hidden] { display: none!important; }
.photo-atlas-group *, .photo-atlas-group *::before, .photo-atlas-group *::after { box-sizing: border-box; }
.photo-atlas-group__header, .photo-atlas-group__footer { display: flex; align-items: center; gap: 8px; min-width: 0; height: 44px; }
.photo-atlas-group__title { font: 500 12px/1.4 system-ui,sans-serif; letter-spacing: .06em; margin-right: auto; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.photo-atlas-group button { cursor: pointer; -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
.photo-atlas-group .photo-atlas-group__close, .photo-atlas-group .photo-atlas-group__prev, .photo-atlas-group .photo-atlas-group__next { flex: 0 0 44px; width: 44px; height: 44px; padding: 0; background: transparent; color: #535d50; border: 0; font: 20px/1 system-ui,sans-serif; }
.photo-atlas-group .photo-atlas-group__close { margin-right: -6px; }
.photo-atlas-group button:disabled { opacity: .28; cursor: default; }
.photo-atlas-group button:focus-visible { outline: 2px solid #657768; outline-offset: -2px; }
.photo-atlas-group__grid { display: grid; grid-template-columns: repeat(var(--atlas-group-columns,3),minmax(0,1fr)); align-content: start; gap: 8px; padding: 0; min-height: 0; min-width: 0; }
.photo-atlas-group .photo-atlas-group__photo { display: block; min-width: 0; min-height: 44px; padding: 3px; margin: 0; border: 1px solid #ccd2c5; border-radius: 2px; background: #efede6; color: #353831; overflow: hidden; text-align: left; transition: border-color .15s, background .15s; }
.photo-atlas-group .photo-atlas-group__photo[aria-pressed='true'] { background: #dce5d6; border-color: #586b5b; box-shadow: 0 0 0 1px #dce5d6; }
.photo-atlas-group__image { display: block; width: 100%; height: var(--atlas-group-image-height,64px); object-fit: cover; margin: 0; background: #e3e7dd; }
.photo-atlas-group__caption { display: block; height: 18px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 9px/18px system-ui,sans-serif; }
.photo-atlas-group__footer { justify-content: space-between; }
.photo-atlas-group__page { text-align: center; flex: 1; min-width: 0; color: #62695e; font: 10px/1.4 ui-monospace,monospace; letter-spacing: .04em; }
.photo-atlas-map[data-atlas-paused='true'] .photo-atlas-group { display: none; }
@keyframes atlas-group-arrive { from { opacity: 0; translate: 0 5px; } to { opacity: 1; translate: 0 0; } }
@keyframes atlas-active-pulse { 0% { transform: scale(.9); opacity: .65; } 80%, 100% { transform: scale(1.8); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .photo-atlas-active::after, .photo-atlas-group { animation: none; } .photo-atlas-group__photo { transition: none; } }
