#map-container{position:relative;width:100%;height:calc(100vh - 56px);background:var(--ocean);overflow:hidden}#map-svg{width:100%;height:100%;display:block}.country{fill:var(--land);stroke:var(--border-map);stroke-width:.5px;cursor:pointer;transition:fill var(--transition)}.country:hover{fill:var(--land-hover)}.country.active{fill:var(--land-active)}.state-border{fill:none;stroke:var(--border-dim);stroke-width:.4px;opacity:0;transition:opacity var(--transition-slow);pointer-events:none}.state-border.visible{opacity:1}#states-g{opacity:0;pointer-events:none;transition:opacity var(--transition-slow)}#states-g.visible{opacity:1;pointer-events:all}.state{fill:transparent;stroke:var(--border-dim);stroke-width:.4px;cursor:pointer}.state:hover{fill:rgba(198,120,221,6%)}.graticule{fill:none;stroke:var(--graticule);stroke-width:.3px}.sphere{fill:var(--ocean)}#map-controls{position:absolute;bottom:var(--space-lg);right:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-xs);z-index:var(--z-pins)}.map-btn{width:42px;height:42px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:1.3rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition);font-family:var(--font-mono)}.map-btn:hover{background:var(--panel-2);border-color:var(--accent-purple);color:var(--accent-purple)}#map-breadcrumb{position:absolute;top:var(--space-md);left:var(--space-md);z-index:var(--z-pins);font-family:var(--font-mono);font-size:1rem;display:flex;align-items:center;gap:var(--space-xs);color:var(--text-dim)}#map-breadcrumb .crumb{color:var(--accent-teal);cursor:pointer}#map-breadcrumb .crumb:hover{color:var(--accent-purple)}#map-breadcrumb .sep{opacity:.4}#now-panel{position:absolute;bottom:calc(var(--space-lg) + 34px + var(--space-xs));left:var(--space-lg);z-index:var(--z-pins);background:var(--panel);border:1px solid var(--accent-red);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.8rem;min-width:220px;max-width:300px;max-height:0;overflow:hidden;transition:max-height 250ms ease,border-color 250ms ease}#now-panel.open{max-height:320px}#now-panel[hidden]{display:none}.now-panel-header{padding:var(--space-xs)var(--space-sm);color:var(--accent-red);font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;border-bottom:1px solid var(--border);opacity:.8}.now-event-row{display:flex;flex-direction:column;padding:var(--space-xs)var(--space-sm);cursor:pointer;border-bottom:1px solid var(--border);transition:background var(--transition);gap:1px}.now-event-row:last-child{border-bottom:none}.now-event-row:hover{background:rgba(224,108,117,8%)}.now-event-name{color:var(--text-bright);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.now-event-meta{color:var(--text-dim);font-size:.75rem}#event-count{position:absolute;bottom:var(--space-lg);left:var(--space-lg);z-index:var(--z-pins);font-family:var(--font-mono);font-size:.8rem;color:var(--text-dim);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-xs)var(--space-sm);transition:border-color var(--transition);user-select:none}#event-count.has-now{border-color:var(--accent-red);cursor:pointer}#event-count.has-now:hover{background:var(--panel-2)}.now-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent-red);margin:0 4px 1px 6px;vertical-align:middle;animation:now-pulse 1.4s ease-in-out infinite}@keyframes now-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(.6)}}#now-toast-stack{position:absolute;bottom:calc(var(--space-lg) + 148px);right:var(--space-lg);z-index:var(--z-tooltip);display:flex;flex-direction:column-reverse;gap:var(--space-xs);pointer-events:none}.now-toast{background:var(--panel);border:1px solid var(--accent-red);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.8rem;width:240px;overflow:hidden;pointer-events:all;animation:toast-in .25s ease forwards}.now-toast.out{animation:toast-out .25s ease forwards}.now-toast.paused .now-toast-timer{animation-play-state:paused}.now-toast-body{display:flex;align-items:flex-start;gap:var(--space-sm);padding:var(--space-xs)var(--space-sm)}.now-toast-skull{font-size:1.1rem;opacity:.7;flex-shrink:0;margin-top:1px}.now-toast-text{flex:1;min-width:0}.now-toast-name{color:var(--text-bright);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.now-toast-meta{color:var(--text-dim);font-size:.75rem;margin-top:1px}.now-toast-close{background:0 0;border:none;color:var(--text-dim);cursor:pointer;font-size:1rem;padding:0 2px;flex-shrink:0;line-height:1}.now-toast-close:hover{color:var(--text)}.now-toast-zoom{display:block;width:100%;background:0 0;border:none;border-top:1px solid var(--border);color:var(--accent-red);font-family:var(--font-mono);font-size:.75rem;text-align:left;padding:4px var(--space-sm);cursor:pointer;letter-spacing:.04em}.now-toast-zoom:hover{background:rgba(224,108,117,8%)}.now-toast-timer{height:2px;background:var(--accent-red);opacity:.6;animation:toast-drain 8s linear forwards}@keyframes toast-in{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:none}}@keyframes toast-out{from{opacity:1;transform:none}to{opacity:0;transform:translateX(20px)}}@keyframes toast-drain{from{width:100%}to{width:0%}}#goth-canvas{display:none;position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:9999}#filter-panel{position:absolute;top:var(--space-md);right:var(--space-md);z-index:var(--z-pins);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-sm);display:flex;gap:var(--space-sm);align-items:center}.filter-btn{padding:2px 10px;border-radius:10px;border:1px solid transparent;font-family:var(--font-mono);font-size:.8rem;letter-spacing:.04em;cursor:pointer;transition:all var(--transition);background:0 0;color:var(--text-dim)}.filter-btn.active-club{background:rgba(198,120,221,.2);border-color:var(--accent-purple);color:var(--accent-purple)}.filter-btn.active-event{background:rgba(224,108,117,.2);border-color:var(--accent-red);color:var(--accent-red)}.filter-btn.active-festival{background:rgba(86,182,194,.2);border-color:var(--accent-teal);color:var(--accent-teal)}.filter-btn:hover{opacity:.8}#map-tooltip{position:fixed;z-index:var(--z-tooltip);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-sm)var(--space-md);font-family:var(--font-mono);font-size:.85rem;color:var(--text);pointer-events:none;opacity:0;transition:opacity 150ms ease;max-width:220px;box-shadow:var(--shadow-pin)}#map-tooltip.visible{opacity:1}.tooltip-name{font-family:var(--font-display);font-size:1.1rem;color:var(--text-bright);margin-bottom:2px}.tooltip-type{text-transform:uppercase;font-size:.7rem;letter-spacing:.1em;opacity:.6}.tooltip-venue{color:var(--text);font-size:.8rem;margin-top:3px}.tooltip-city{color:var(--text-dim);font-size:.8rem;margin-top:1px}.tooltip-cta{margin-top:var(--space-xs);color:var(--accent-teal);font-size:.8rem;cursor:pointer}.tooltip-cta:hover{text-decoration:underline}.pin-group{cursor:pointer}.pin-img{filter:drop-shadow(var(--shadow-pin))}.cluster-circle{fill:var(--panel);stroke:var(--accent-purple);stroke-width:1.5px}.cluster-label{fill:var(--text-bright);font-family:var(--font-mono);font-size:10px;text-anchor:middle;dominant-baseline:central}#cluster-popup{position:fixed;z-index:var(--z-tooltip);background:var(--panel);border:1px solid var(--accent-purple);border-radius:var(--radius-md);min-width:200px;max-width:280px;overflow:hidden;box-shadow:var(--shadow-pin)}#cluster-popup[hidden]{display:none}.cluster-popup-header{display:flex;align-items:center;justify-content:space-between;padding:4px var(--space-sm);border-bottom:1px solid var(--border);font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim)}.cluster-popup-close{background:0 0;border:none;color:var(--text-dim);font-size:1rem;line-height:1;cursor:pointer;padding:0 2px}.cluster-popup-close:hover{color:var(--text)}.cluster-popup-item{display:flex;flex-direction:column;gap:2px;padding:var(--space-xs)var(--space-sm);text-decoration:none;border-bottom:1px solid var(--border-dim);transition:background var(--transition)}.cluster-popup-item:last-child{border-bottom:none}.cluster-popup-item:hover{background:var(--panel-2)}.cluster-popup-name{color:var(--text-bright);font-family:var(--font-mono);font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cluster-popup-meta{font-family:var(--font-mono);font-size:.75rem;opacity:.8}#map-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--ocean);z-index:var(--z-overlay);flex-direction:column;gap:var(--space-md);font-family:var(--font-display);font-size:1.8rem;color:var(--accent-purple)}.spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--accent-purple);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}