.photo-page{display:block;position:relative;margin-bottom:32px}.photo-toggle{position:absolute;top:20px;right:0;z-index:5;display:inline-flex;align-items:center;padding:3px;border-radius:999px;background:rgba(0,0,0,.06);isolation:isolate}.photo-toggle-thumb{position:absolute;top:3px;bottom:3px;left:3px;width:calc(50% - 3px);border-radius:999px;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.08),0 1px 3px rgba(0,0,0,.06);transition:transform .32s cubic-bezier(.32, .72, .24, 1.04);z-index:0}.photo-toggle[data-mode=map] .photo-toggle-thumb{transform:translateX(100%)}.photo-mode-btn{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:78px;height:28px;padding:0 14px;border:none;background:0 0;color:var(--font-color-2);font-size:.82rem;line-height:1;cursor:pointer;transition:color .22s ease}.photo-mode-btn svg{fill:currentColor;stroke:none;transition:transform .22s ease}.photo-mode-btn:hover{color:var(--font-color-1)}.photo-mode-btn.is-active{color:var(--font-color-1)}.photo-view{display:none;padding-top:68px}.photo-view.is-active{display:block}.photo-empty,.photo-empty-map,.photo-loading{margin:32px 0;color:var(--font-color-3);font-size:.9rem;text-align:center}.photo-empty code{padding:2px 6px;border-radius:3px;background:var(--accent-color);color:var(--font-color-1);font-size:.84rem}.photo-masonry{column-count:3;column-gap:14px}@media (max-width:980px){.photo-masonry{column-count:2}}@media (max-width:560px){.photo-masonry{column-count:1}}.photo-card{break-inside:avoid;margin-bottom:14px;border-radius:6px;overflow:hidden;background:var(--accent-color);position:relative;cursor:zoom-in;box-shadow:0 1px 2px rgba(0,0,0,.04);transition:transform .25s ease,box-shadow .25s ease}.photo-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,.08)}.photo-card img{display:block;width:100%;height:auto;object-fit:cover;transition:opacity .4s ease;opacity:0}.photo-card img.is-loaded{opacity:1}.photo-card-meta{position:absolute;bottom:0;left:0;right:0;padding:36px 12px 10px;background:linear-gradient(180deg,rgba(0,0,0,0) 0,rgba(0,0,0,.55) 100%);color:#fff;font-size:.78rem;line-height:1.4;opacity:0;transition:opacity .2s ease;pointer-events:none}.photo-card:hover .photo-card-meta{opacity:1}.photo-card-meta .photo-card-caption{font-weight:500;margin-bottom:2px}.photo-card-meta .photo-card-sub{opacity:.85;font-size:.72rem}.photo-map{width:100%;height:min(72vh,720px);border-radius:8px;overflow:hidden;background:#eef1f5}.photo-map .leaflet-bottom.leaflet-right{margin:0 16px 20px 0}.photo-map .leaflet-control-zoom{border:none!important;border-radius:999px!important;overflow:hidden;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.06)}.photo-map .leaflet-control-zoom a{width:34px;height:34px;line-height:34px;background:#fff;color:var(--font-color-1);border:none;font-size:18px;font-weight:500;transition:background-color .18s ease,color .18s ease}.photo-map .leaflet-control-zoom a:hover{background:rgba(0,0,0,.05);color:var(--font-color-1)}.photo-map .leaflet-control-zoom-in{border-radius:999px 999px 0 0!important;border-bottom:1px solid rgba(0,0,0,.08)!important}.photo-map .leaflet-control-zoom-out{border-radius:0 0 999px 999px!important}.photo-map .leaflet-control-attribution{background:rgba(255,255,255,.85);font-size:.66rem}.photo-popup{width:220px;font-family:inherit}.photo-popup img{display:block;width:100%;height:140px;object-fit:cover;border-radius:4px;margin-bottom:8px;cursor:zoom-in}.photo-popup-title{font-size:.86rem;font-weight:600;color:#111;margin-bottom:2px;line-height:1.3}.photo-popup-sub{font-size:.72rem;color:#666;line-height:1.45}.photo-map .marker-cluster-large,.photo-map .marker-cluster-medium,.photo-map .marker-cluster-small{background:rgba(23,23,23,.18)}.photo-map .marker-cluster-large div,.photo-map .marker-cluster-medium div,.photo-map .marker-cluster-small div{background:#171717;color:#fff;font-weight:600;font-size:.78rem}.photo-marker{width:36px;height:36px;border-radius:50%;border:2px solid #fff;background-size:cover;background-position:center;box-shadow:0 2px 6px rgba(0,0,0,.25);cursor:pointer;transition:transform .18s ease}.photo-marker:hover{transform:scale(1.12)}