:root{--paper:#f6f6ff;--ink:#292646;--muted:#68617a;--blue:#4743d4;--gold:#ffdf76;--line:#d9d5e7}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 Arial,Helvetica,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}a{color:var(--blue)}button:focus-visible,a:focus-visible,#map:focus-visible{outline:3px solid #ec6a44;outline-offset:4px}button:disabled{opacity:.4;cursor:default}[hidden]{display:none!important}
.skip{position:absolute;top:10px;left:10px;z-index:10000;transform:translateY(-160%);background:var(--gold);padding:12px 16px;border-radius:8px;color:var(--ink)}.skip:focus{transform:none}
.places-intro{display:flex;justify-content:space-between;align-items:end;gap:28px;padding:40px 0 16px}.places-intro .introduction{margin-bottom:16px;max-width:670px}.collection-summary{font-size:13px;color:var(--muted);white-space:nowrap;padding-bottom:16px}.toolbar{border-top:1px solid var(--line);padding:16px 0;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;scroll-margin-top:16px}.regions,.view-switch{display:flex;gap:6px;flex-wrap:wrap}.toolbar button{border:1px solid var(--line);border-radius:30px;background:#fff;padding:9px 16px;font-size:13px;min-height:42px}.regions button[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}.view-switch button[aria-pressed=true]{background:var(--gold);border-color:#d3ba70}.text-button{border:0;background:none;padding:0;text-decoration:underline;text-underline-offset:4px;color:var(--blue);font-size:13px;min-height:40px}
.map-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(310px,1fr);border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff;min-height:660px}.map-wrap{position:relative;min-width:0}#map{height:100%;min-height:660px;background:#d8e8ec}.map-hint{position:absolute;bottom:28px;left:18px;right:18px;z-index:500;background:#fffffff0;border-radius:6px;padding:8px 12px;width:max-content;max-width:calc(100% - 36px);font-size:11px;box-shadow:0 2px 10px #29264612;pointer-events:none}#map-error{position:absolute;top:80px;left:20px;right:20px;z-index:501;background:#fff2bf;border-radius:6px;padding:12px;font-size:12px}.selection{padding:24px;min-width:0;height:660px;overflow:auto}.selection-head{display:flex;align-items:start;justify-content:space-between;gap:10px}.eyebrow{font:10px ui-monospace,monospace;letter-spacing:1.3px;color:var(--muted)}h2{font:400 28px/1.15 Georgia,serif;margin:8px 0}.area-description{font-size:13px;color:var(--muted);margin:8px 0 20px}.gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px}
.photo-card{border:0;background:none;padding:0;text-align:left;min-width:0;position:relative;border-radius:7px}.photo-card img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:7px;background:#e9e6f4;transition:filter .2s}.photo-card:hover img{filter:brightness(1.08)}.photo-name{display:block;margin-top:7px;font-size:12px;font-weight:600;line-height:1.3}.photo-meta{display:block;color:var(--muted);font-size:11px;margin-top:3px;line-height:1.5}.photo-marker{background:none;border:0}.pin{width:62px;height:64px;position:relative;background:#fff;border:3px solid #fff;box-shadow:0 3px 12px #19152b44;border-radius:8px;transform:rotate(-3deg)}.pin img{width:100%;height:100%;object-fit:cover;border-radius:5px}.pin b{position:absolute;bottom:-8px;right:-8px;border:2px solid #fff;border-radius:20px;padding:2px 6px;background:var(--blue);color:#fff;font:700 10px Arial}.pin:after{content:"";position:absolute;bottom:-9px;left:23px;border-left:6px solid transparent;border-right:6px solid transparent;border-top:7px solid #fff}.cluster-pin{transform:rotate(3deg);border-color:var(--gold);box-shadow:-4px 4px 0 #fff,0 4px 14px #19152b44}.cluster-pin:after{border-top-color:var(--gold)}.cluster-pin b{background:var(--ink)}.leaflet-container{font-family:Arial,sans-serif}.leaflet-control-attribution{font-size:9px!important}.leaflet-control-zoom a{color:var(--ink)!important}.leaflet-tooltip{font-size:12px;border:0;border-radius:4px;box-shadow:0 2px 8px #29264622}.country-label{font:9px Arial,sans-serif;text-align:center;color:#7c7a90;pointer-events:none;opacity:.8}
.coverage{display:flex;gap:24px;justify-content:space-between;font-size:12px;color:var(--muted);padding:18px 0 26px}.coverage p{margin:0;max-width:48%}.photos-view{padding:8px 0 12px}.photos-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:22px}.photos-heading p{font-size:13px;color:var(--muted)}.all-photos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:25px 18px}.all-photos .photo-name{font-size:14px}.all-photos .photo-meta{font-size:12px}.empty{color:var(--muted);font-size:14px;grid-column:1/-1;padding:25px 0}
/* Fit the lightbox to the photograph, with controls taking no image width. */
#photo-dialog{--photo-ratio:1.333333;border:1px solid #ffffff20;padding:0;border-radius:12px;width:min(1600px,calc(100vw - 32px),calc((100svh - 144px) * var(--photo-ratio)));max-width:calc(100vw - 32px);max-height:calc(100svh - 24px);overflow:auto;color:#f6f6ff;background:#1c1b24;box-shadow:0 16px 80px #08071188}
#photo-dialog::backdrop{background:#111017ed}
.dialog-top{position:sticky;top:0;z-index:2;background:#1c1b24;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;min-height:44px;padding:0 6px 0 14px;font:12px/1.3 ui-monospace,monospace}
#photo-location{min-width:0;overflow-wrap:anywhere}
.dialog-top button{border:0;border-radius:6px;background:none;color:inherit;font-size:26px;line-height:1;padding:4px;min-width:44px;min-height:44px}
#photo-position{font:11px/1 ui-monospace,monospace;color:#c7c3d2;white-space:nowrap}
.photo-stage{position:relative;line-height:0;background:#101014}
.photo-stage img{display:block;width:100%;height:auto;object-fit:contain}
.photo-stage button{position:absolute;top:50%;z-index:1;transform:translateY(-50%);display:grid;place-items:center;width:44px;height:44px;min-width:44px;min-height:44px;border:1px solid #ffffff38;border-radius:50%;background:#17151dcc;color:#fff;font-size:30px;line-height:1;padding:0;box-shadow:0 2px 8px #0003}
#previous-photo{left:10px}#next-photo{right:10px}
.photo-stage button:hover,.dialog-top button:hover{background:#373341}
.photo-stage button:disabled{visibility:hidden}
.photo-caption{padding:12px 16px 14px;margin:0}
.photo-caption h2{font:400 20px/1.2 Georgia,serif;margin:0}
.photo-caption p{color:#c7c3d2;font-size:12px;line-height:1.5;margin:5px 0 0;max-width:850px}
#photo-dialog :focus-visible{outline:2px solid var(--gold);outline-offset:-3px}
.noscript{padding:24px;text-align:center}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1600px){.map-layout,.selection{height:720px}#map{min-height:720px}}
@media(max-width:1000px){.collection-summary{display:none}.map-layout{grid-template-columns:minmax(0,1.2fr) minmax(280px,1fr)}.selection{padding:18px}.all-photos{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.places-intro{padding:28px 0 8px}.places-intro .introduction{font-size:15px;line-height:1.65}.toolbar{gap:10px}.toolbar button{padding:8px 11px;font-size:12px;min-height:44px}.map-layout{display:flex;flex-direction:column;min-height:0}.map-wrap{height:390px}#map{height:390px;min-height:390px}.selection{height:auto;max-height:none;padding:20px}.map-hint{font-size:10px;bottom:28px;left:10px;max-width:calc(100% - 20px)}.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.coverage{display:block}.coverage p{max-width:none;margin-bottom:8px}.all-photos{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 12px}.photos-heading{display:block;margin-bottom:20px}#photo-dialog{width:min(calc(100vw - 16px),calc((100svh - 144px) * var(--photo-ratio)));max-width:calc(100vw - 16px);max-height:calc(100svh - 16px);border-radius:8px}.dialog-top{gap:8px;padding-left:12px;font-size:11px}.photo-caption{padding:10px 12px 12px}.photo-caption h2{font-size:18px}#previous-photo{left:6px}#next-photo{right:6px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

#photo-load-status{margin:0;padding:10px 16px;color:#f6f6ff;font-size:13px}#retry-photo{margin:0 16px 14px;padding:8px 14px;background:#ffdf76;color:#292646;border:0;border-radius:6px;min-height:44px}.photo-stage{min-height:120px}
