.interactive-map{width:100%;position:relative}.interactive-map__canvas{width:100%;height:70vh;min-height:24rem;position:relative}.interactive-map .mapboxgl-canvas{filter:saturate(1.08)contrast(1.05)}.interactive-map__canvas:after{content:"";pointer-events:none;z-index:2;background:radial-gradient(circle,#0000 62%,#140f0a40 100%);position:absolute;inset:0}[data-style=vintage] .interactive-map .mapboxgl-canvas{filter:sepia(.4)saturate(1.4)contrast(1.38)brightness(.92)}[data-style=vintage] .interactive-map__canvas:after{background:radial-gradient(circle,#0000 60%,#3b241242 100%),linear-gradient(160deg,#b07c2c0d,#7a3b1d0f)}.map-controls{z-index:5;background:var(--parchment);border:3px solid var(--ink);max-width:calc(100% - 2rem);box-shadow:4px 4px 0 var(--ink);-webkit-backdrop-filter:blur(2px);border-radius:12px;align-items:center;gap:.7rem;padding:.55rem 1.1rem;display:flex;position:absolute;bottom:1rem;right:1rem}.map-controls__btn{border:2px solid var(--ink);background:var(--parchment);width:2.2rem;height:2.2rem;color:var(--ink);cursor:pointer;border-radius:8px;place-items:center;padding:0;transition:background .15s,transform .15s;display:grid}.map-controls__btn--play{width:2.7rem;height:2.7rem}.map-controls__btn:hover:not(:disabled),.map-controls__btn:focus-visible{background:var(--ochre);transform:translateY(-1px)}.map-controls__btn:disabled{opacity:.4;cursor:default}.map-controls__btn svg{fill:currentColor;width:1.1rem;height:1.1rem}.map-controls__readout{font-family:var(--font-typewriter);flex-direction:column;margin:0 .25rem 0 .4rem;line-height:1.15;display:flex}.map-controls__index{letter-spacing:.1em;color:var(--sepia);font-size:.7rem}.map-controls__name{text-overflow:ellipsis;white-space:nowrap;max-width:20ch;color:var(--ink);font-size:.9rem;overflow:hidden}@media (width<=30rem){.map-controls__readout{display:none}}.map-missing{height:100%;font-family:var(--font-typewriter);color:var(--sepia);place-items:center;display:grid}.mapboxgl-marker{z-index:3}.mapboxgl-popup{z-index:4}.map-marker{cursor:pointer;border:3px solid var(--ink);background:var(--ochre);border-radius:50%;width:18px;height:18px;padding:0;transition:transform .15s;box-shadow:0 0 0 3px #fffc}.map-marker:hover{transform:scale(1.2)}.map-marker.is-faded{opacity:.45;background:var(--parchment-deep);border-style:dashed}.map-marker.is-visited{background:var(--rust);box-shadow:0 0 0 3px #fffc}.interactive-map .mapboxgl-popup-content{box-shadow:none;background:0 0;border:none;padding:0}.interactive-map .mapboxgl-popup-tip{display:none}.map-popup{color:var(--ink);background:var(--parchment);border:3px solid var(--ink);transform-origin:bottom;border-radius:12px;margin:0;padding:0 0 .9rem;text-decoration:none;transition:opacity .24s,transform .24s;animation:.3s cubic-bezier(.2,.8,.2,1) map-popup-in;display:block;overflow:hidden;box-shadow:6px 6px #140f0a80}.map-popup.is-leaving{opacity:0;transform:translateY(8px)scale(.96)}@keyframes map-popup-in{0%{opacity:0;transform:translateY(8px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.map-popup{transition:none;animation:none}}@media (orientation:landscape) and (height<=520px){.map-popup__img{height:84px}}.map-popup__img{object-fit:cover;filter:saturate(1.25)contrast(1.05);width:100%;height:130px;display:block}[data-style=vintage] .map-controls{border:1px solid var(--paper-edge);background:linear-gradient(#e7d8b8f2,#d8c39aeb);border-radius:0;box-shadow:0 14px 30px -18px #1f1a14e6}[data-style=vintage] .map-controls__btn{border:1px solid var(--paper-edge);border-radius:2px}[data-style=vintage] .map-marker{border:2px solid var(--ink);box-shadow:0 0 0 3px #e7d8b8b3}[data-style=vintage] .map-marker.is-visited{box-shadow:0 0 0 4px #7a3b1d59}[data-style=vintage] .map-popup{border:1px solid var(--paper-edge);border-radius:0;box-shadow:0 16px 36px -24px #1f1a14e6}[data-style=vintage] .map-popup__img{filter:sepia(.4)contrast(1.05)}.map-popup__title{font-family:var(--font-display);margin:.6rem .9rem .3rem;font-size:1.2rem}.map-popup__desc{font-family:var(--font-typewriter);margin:0 .9rem .6rem;font-size:.85rem;line-height:1.5}.map-popup__link{font-family:var(--font-typewriter);text-transform:uppercase;letter-spacing:.06em;color:var(--rust);margin:0 .9rem;font-size:.8rem;display:inline-block}.map-popup__pending{font-family:var(--font-typewriter);letter-spacing:.06em;color:var(--ink-soft);margin:0 .9rem;font-size:.75rem;display:inline-block}
