.visitor-map-shell { position:relative; width:100%; margin-top:12px; }
#visitor-map { height:420px; width:100%; background:#000; border:1px solid #23221b; border-radius:6px; font-family:monospace; isolation:isolate; }
#visitor-map-status { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); z-index:450; margin:0; padding:9px 14px; background:#000d; color:#b1a98e; font:12px monospace; white-space:nowrap; pointer-events:none; }
.visitor-map-caption { margin:10px 0 0; font:10px/1.6 monospace; color:#777368; }
.visitor-dot { background:none; border:0; }
.visitor-flame { display:block; border-radius:50%; background:#ffd76a; box-shadow:0 0 9px 4px #ffd76a55,0 0 24px 7px #ffd76a1f; animation:visitor-flicker 6s ease-in-out infinite; }
@keyframes visitor-flicker { 0%,100% { opacity:.85; } 28% { opacity:.62; } 33% { opacity:.9; } 60% { opacity:.74; } 78% { opacity:1; } }
#visitor-map .leaflet-tooltip { background:#0a0906ed; border:1px solid #655637; color:#ffd76a; box-shadow:none; font:11px/1.5 monospace; text-transform:lowercase; }
#visitor-map .leaflet-tooltip-top:before { border-top-color:#655637; }
#visitor-map .leaflet-control-attribution { background:#000a; color:#888; font:9px/1.4 monospace; padding:2px 5px; }
#visitor-map .leaflet-control-attribution a { color:#999; }
#visitor-map .leaflet-bar a { background:#111; color:#c6b986; border-color:#333; }
#visitor-map .leaflet-bar a:hover { background:#242015; }
#visitor-map .visitor-dot:focus-visible { outline:1px solid #ffd76a; outline-offset:6px; border-radius:50%; }
@media(max-width:600px) { #visitor-map { height:300px; } }
@media(prefers-reduced-motion:reduce) { .visitor-flame { animation:none; } }

.visitor-unknown{background:#ffd76a33;border:2px dashed #ffd76a;box-sizing:border-box;}

.map-period{display:flex;gap:8px;margin:18px 0}.map-period button{min-height:44px;padding:8px 14px;border:1px solid #665531;background:#080808;color:#ccc;font:inherit;cursor:pointer}.map-period button[aria-pressed=true]{color:#ffd76a;border-color:#ffd76a}.map-period button:disabled{opacity:.5}

.visitor-dot .visitor-flame{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}
#visitor-map .leaflet-tooltip{width:max-content;max-width:210px;white-space:normal;overflow-wrap:anywhere}

#visitor-map .reference-city{background:none;border:0;box-shadow:none;color:#92958c;font:10px monospace;padding:0;opacity:.7}#visitor-map .reference-city:before{display:none}.map-unknown-toggle{display:flex;align-items:center;gap:8px;min-height:44px;margin-top:12px;color:#aaa;font:11px monospace}.map-unknown-toggle input{width:18px;height:18px;accent-color:#ffd76a}#visitor-map-status{white-space:normal;text-align:center;max-width:85%}

.map-focus-label{display:flex;align-items:center;flex-wrap:wrap;gap:10px;font:12px monospace;color:#aaa}.map-focus-label select{min-height:44px;max-width:100%;background:#080808;color:#ffd76a;border:1px solid #665531;font:inherit;padding:8px}

/* Colour is editorial context; only the gold layer represents visitors. */
#visitor-map{background:radial-gradient(ellipse at 15% 40%,#0e2028,transparent 55%),radial-gradient(ellipse at 85% 40%,#21142a,transparent 55%),#080b10}
.reference-city-dot{filter:drop-shadow(0 0 3px currentColor)}
#visitor-map .reference-city{color:#b9bace;opacity:.85;text-shadow:0 1px 3px #000}
.corvus-hotspot{background:none;border:0}.corvus-hotspot-light{position:absolute;inset:15px;background:var(--hotspot);border:1px solid #fff9;transform:rotate(45deg);box-shadow:0 0 16px 7px color-mix(in srgb,var(--hotspot) 45%,transparent),0 0 35px 13px color-mix(in srgb,var(--hotspot) 20%,transparent);pointer-events:none}
#visitor-map .corvus-hotspot-label{color:#f2d9ff;background:#110f1ce8;border-color:#81718d;font-size:10px;max-width:150px;text-align:center}
.map-hotspots,.map-legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;font:11px/1.6 monospace;margin:12px 0}.map-hotspots>span{color:#aaa}.map-hotspots button{min-height:44px;padding:8px 12px;border:1px solid #326365;background:#0d191c;color:#75eeee;font:inherit;cursor:pointer}.map-hotspots button[data-map-hotspot=hk]{border-color:#685077;background:#1c1223;color:#edb2ff}.map-hotspots button:hover{filter:brightness(1.2)}.map-hotspots button:focus-visible,.corvus-hotspot:focus-visible{outline:2px solid #fff;outline-offset:3px}.legend-visitors{color:#ffd76a}.legend-reference{color:#a9c7ff}.legend-hotspot{color:#e7b0ff}

.map-hotspots button[data-map-hotspot=brussels]{border-color:#815b49;background:#24160f;color:#ffab83}.map-hotspots button[data-map-hotspot=ghent]{border-color:#4d7046;background:#142010;color:#a2ed98}
