/* Reserved source strip: copyright never overlaps the map or its controls.
   This stylesheet lives only inside the experimental viewer iframe. */
.map-card{display:flex;flex-direction:column}
.map-viewport{position:relative;flex:1 1 0;min-height:0;width:100%;overflow:hidden}
.map-source-bar{position:relative;z-index:7;flex:0 0 auto;display:flex;align-items:center;gap:12px;padding:7px 10px;background:#f8fafc;border-top:1px solid #dce5eb;color:#53677a}
.map-source-credits{flex:1;min-width:0;display:flex;flex-wrap:wrap;column-gap:13px;row-gap:2px;font-size:10px;line-height:1.5}
.map-source-credits span{max-width:100%;overflow-wrap:anywhere}
.map-source-credits a{color:inherit;text-decoration:none}
.map-source-credits a:hover{text-decoration:underline;color:#144f86}
.map-card .map-source-bar .map-data-note{position:static;flex:0 0 auto;max-width:none;max-height:none;margin:0;padding:0;border:0;background:transparent;overflow:visible;font-size:10px;color:#244f71}
.map-source-bar .map-data-note summary{list-style:none;border:1px solid #cfdde8;border-radius:6px;padding:7px 8px;white-space:nowrap;background:#fff;font-weight:650;cursor:pointer}
.map-source-bar .map-data-note summary::-webkit-details-marker{display:none}
.map-source-bar .map-data-note summary:focus-visible{outline:3px solid #e2b65c;outline-offset:2px}
.map-source-bar .map-data-note[open] summary{background:#e8f1f9;border-color:#93b2cd}
.map-source-details{position:absolute;bottom:calc(100% + 8px);right:8px;max-width:calc(100% - 16px);width:420px;max-height:min(300px,55vh);overflow:auto;overscroll-behavior:contain;background:#fffffff9;border:1px solid #d7e2eb;border-radius:10px;padding:15px;box-shadow:0 6px 25px #1739532b;font-size:11px;line-height:1.6;color:#476177}
.map-source-details>strong{font-size:13px;color:#183e5d}
.map-source-details p{margin:9px 0}
.map-card .map-options{left:10px;right:auto;bottom:34px;padding:6px 8px}
.map-card .map-hint{left:10px;right:110px;bottom:7px;max-width:calc(100% - 120px);font-size:9px;margin:0}
.map-card .maplibregl-ctrl-bottom-left{left:auto;right:9px;bottom:7px}
.map-card .maplibregl-ctrl-scale{margin:0;background:#ffffffe8}
.map-card .tour-panel{bottom:88px;max-height:calc(100% - 200px);overflow:auto}
.map-card .places-drawer{max-height:calc(100% - 110px)}
@media(max-width:600px){
  .map-source-bar{gap:5px;padding:5px 7px;align-items:flex-start}
  .map-source-credits{display:block;font-size:9px;line-height:1.4}
  .map-source-credits span{display:block;margin-bottom:1px}
  .map-card .map-source-bar .map-data-note{font-size:9px}
  .map-source-bar .map-data-note summary{padding:6px}
  .map-card .map-hint{display:none}
  .map-card .map-options{bottom:8px;left:8px;gap:5px;padding:5px 6px}
  .map-card .map-options label{font-size:9px}
  .map-card .maplibregl-ctrl-bottom-left{bottom:43px;right:8px}
  .map-card .tour-panel{bottom:48px;max-height:calc(100% - 165px)}
}
/* Match the named attraction circles: 80px desktop / 66px narrow map canvas.
   MapLibre owns the root transform; only the colour and halo are animated. */
.project-marker--reference{box-sizing:border-box;width:80px;height:80px;padding:8px 5px;border:2px solid #fff;border-radius:50%;background:#0755aa;color:#fff;letter-spacing:0;line-height:1;z-index:6;isolation:isolate;box-shadow:0 3px 14px #073b6870,0 0 0 4px #288ef33d;animation:project-marker-glow 1.8s ease-in-out infinite}
.project-marker--reference .project-marker__brand{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:100%;height:100%;position:relative;z-index:1;pointer-events:none}
.project-marker--reference img{display:block;object-fit:contain;filter:brightness(0) invert(1);pointer-events:none}
.project-marker--reference .project-marker__symbol{width:19px;height:22px}
.project-marker--reference .project-marker__wordmark{width:57px;height:11px}
.project-marker--reference strong{display:block;font-size:18px;line-height:1;font-weight:800;letter-spacing:.45px;color:#fff}
.project-marker--reference::before{content:"";position:absolute;inset:-5px;border:2px solid #72c5ff;border-radius:50%;z-index:-1;pointer-events:none;animation:project-marker-halo 1.8s ease-out infinite}
.project-marker--reference::after{content:"";position:absolute;bottom:-13px;left:50%;transform:translateX(-50%);border-left:11px solid transparent;border-right:11px solid transparent;border-top:13px solid #0755aa;filter:drop-shadow(0 1.5px 0 #fff);pointer-events:none}
.project-marker--reference.is-mobile{width:66px;height:66px;padding:6px 4px}
.project-marker--reference.is-mobile .project-marker__brand{gap:2px}
.project-marker--reference.is-mobile .project-marker__symbol{width:15px;height:17px}
.project-marker--reference.is-mobile .project-marker__wordmark{width:46px;height:9px}
.project-marker--reference.is-mobile strong{font-size:15px;letter-spacing:.3px}
.project-marker--reference.is-mobile::after{bottom:-11px;border-left-width:9px;border-right-width:9px;border-top-width:11px}
.project-marker--reference:hover,.project-marker--reference:focus-visible{background:#0764be;box-shadow:0 3px 18px #073b6890,0 0 0 5px #51baff80;animation:none}
.project-marker--reference:focus-visible{outline:3px solid #fff;outline-offset:5px}
@keyframes project-marker-glow{0%,100%{background:#0755aa;box-shadow:0 3px 14px #073b6870,0 0 0 3px #288ef333}50%{background:#086bc9;box-shadow:0 3px 19px #073b6880,0 0 17px 5px #64c3ffb3}}
@keyframes project-marker-halo{0%{transform:scale(.98);opacity:.8}80%,100%{transform:scale(1.18);opacity:0}}
@media(prefers-reduced-motion:reduce){.project-marker--reference,.project-marker--reference::before{animation:none}.project-marker--reference::before{opacity:.45}}

/* Minimal model chrome: retain zoom/fullscreen and all source credits. */
.map-card .maplibregl-ctrl-top-right{top:8px;right:4px}
.map-embedded .map-options{display:none}
@media(max-width:600px){
  .map-card .maplibregl-ctrl-bottom-left{bottom:8px}
}
