/* Cityburger: an independently drawn OpenStreetMap neighbourhood map. */
#city-map{position:relative;perspective:1250px;width:100%;min-width:0;color:var(--cream,#f2efdf)}
.cb-map-figure{position:relative;margin:0;transform-style:preserve-3d;transition:transform .5s cubic-bezier(.2,.8,.2,1);will-change:transform}
.cb-map-frame{position:relative;aspect-ratio:1;overflow:hidden;border:2px solid rgba(242,239,223,.65);border-radius:24px;background:#faf7e9;box-shadow:0 25px 60px -30px #083d3e99;isolation:isolate}
.cb-map-base,.cb-map-ink{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}
.cb-map-base{opacity:1;transform:scale(1.035);transition:opacity 1.7s ease,transform 3.8s ease;filter:saturate(.65)}
.cb-map-frame.is-drawing .cb-map-base{opacity:0;transform:scale(1)}
.cb-map-top{position:absolute;z-index:3;top:19px;left:20px;right:20px;display:flex;justify-content:space-between;align-items:start;color:var(--red,#b41232);pointer-events:none}
.cb-map-top strong{font:800 clamp(17px,1.5vw,24px)/1.05 'Archivo',Arial,sans-serif;letter-spacing:-.03em}
.cb-map-top small{display:block;margin-top:5px;font:600 10px/1.3 Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase}
.cb-map-north{display:grid;justify-items:center;gap:3px;font:700 11px/1 Arial,sans-serif}
.cb-map-north span{font-size:22px}
.cb-map-marker{position:absolute;z-index:4;left:50%;top:50%;width:0;height:0;pointer-events:none}
.cb-map-pin{position:absolute;left:-22px;bottom:0;width:44px;height:54px;border-radius:23px 23px 23px 3px;background:var(--red,#b41232);border:3px solid var(--cream,#f2efdf);box-shadow:0 6px 11px #69102144;transform:translateY(-80px) rotate(-45deg);opacity:0;display:grid;place-items:center}
.cb-map-pin span{transform:rotate(45deg);color:var(--cream,#f2efdf);font:900 15px/1 Arial,sans-serif;letter-spacing:-1px}
.cb-map-marker-label{position:absolute;right:32px;bottom:36px;display:grid;gap:3px;background:var(--yellow,#ffbd11);color:var(--red,#b41232);padding:11px 15px;border-radius:15px 15px 3px 15px;white-space:nowrap;box-shadow:0 5px 12px #69102122;transform:scale(.3) rotate(-5deg);transform-origin:right bottom;opacity:0}
.cb-map-marker-label strong{font:900 clamp(16px,1.65vw,24px)/1 'Archivo',Arial,sans-serif}
.cb-map-marker-label small{font:800 9px/1 Arial,sans-serif;letter-spacing:.06em}
.cb-map-ripple{position:absolute;width:42px;height:16px;left:-21px;top:-6px;border:2px solid var(--red,#b41232);border-radius:50%;opacity:0}
.is-drawing .cb-map-pin{animation:cb-map-drop .85s .1s cubic-bezier(.3,1.5,.5,1) both}
.is-drawing .cb-map-marker-label{animation:cb-map-tag .65s .45s cubic-bezier(.25,1.6,.5,1) both}
.is-drawing .cb-map-ripple{animation:cb-map-ring 2.3s .7s ease-out infinite}
.is-drawing .cb-map-ripple:nth-child(2){animation-delay:1.85s}
.cb-map-poi{position:absolute;z-index:2;max-width:34%;padding:6px 9px;border-radius:20px;background:var(--teal,#2e9a9e);color:white;font:700 clamp(8px,.8vw,11px)/1.15 Arial,sans-serif;box-shadow:0 2px 5px #0e55552a;white-space:nowrap;opacity:0;transform:translate(-50%,-50%) scale(.3);transition:opacity .35s,transform .6s cubic-bezier(.2,1.8,.4,1);pointer-events:none}
.cb-map-poi::before{content:'';display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--yellow,#ffbd11);margin-right:5px;vertical-align:1px}
.cb-map-poi.is-visible{opacity:1;transform:translate(-50%,-50%) scale(1)}
.cb-map-street{position:absolute;z-index:1;max-width:35%;font:600 clamp(8px,.72vw,10px)/1.2 Arial,sans-serif;letter-spacing:.015em;color:#6c3733;text-shadow:0 1px #faf7e9,1px 0 #faf7e9,-1px 0 #faf7e9,0 -1px #faf7e9;transform:translate(-50%,-50%);opacity:0;transition:opacity .7s;pointer-events:none}
.is-drawn .cb-map-street{opacity:.8}
.cb-map-scale{position:absolute;bottom:20px;left:20px;z-index:3;width:13%;min-width:44px;border-bottom:2px solid var(--red,#b41232);color:var(--red,#b41232);font:700 9px/1.4 Arial,sans-serif;text-align:center;padding-bottom:4px}
.cb-map-scale::before,.cb-map-scale::after{content:'';position:absolute;bottom:-2px;width:2px;height:7px;background:var(--red,#b41232)}
.cb-map-scale::before{left:0}.cb-map-scale::after{right:0}
.cb-map-replay{position:absolute;right:14px;bottom:14px;z-index:5;border:0;border-radius:99px;background:var(--red,#b41232);color:var(--cream,#f2efdf);padding:10px 13px;font:700 10px/1.2 Arial,sans-serif;cursor:pointer;box-shadow:0 3px 8px #62182e22;transition:transform .2s,background .2s}
.cb-map-replay:hover{transform:rotate(-3deg);background:#89162e}.cb-map-replay:focus-visible{outline:3px solid var(--yellow,#ffbd11);outline-offset:3px}
.cb-map-credit{display:flex;flex-wrap:wrap;justify-content:space-between;gap:5px 12px;margin-top:13px;font:500 10px/1.4 Arial,sans-serif;opacity:.88;transform:translateZ(0)}
.cb-map-credit a{color:inherit;text-underline-offset:2px}.cb-map-credit small{font:inherit}
.cb-map-loading{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:20px;color:var(--red,#b41232);font:700 15px/1.5 Arial,sans-serif;z-index:5;background:#faf7e9}
.cb-map-loading a{color:inherit}.cb-map-loading[hidden]{display:none}
@keyframes cb-map-drop{0%{opacity:0;transform:translateY(-100px) rotate(-45deg) scale(.6)}65%{opacity:1;transform:translateY(3px) rotate(-45deg) scale(1.08,.94)}100%{opacity:1;transform:translateY(0) rotate(-45deg) scale(1)}}
@keyframes cb-map-tag{to{opacity:1;transform:scale(1) rotate(-5deg)}}
@keyframes cb-map-ring{0%{opacity:.7;transform:scale(.6)}100%{opacity:0;transform:scale(3.5)}}
@media(max-width:600px){.cb-map-frame{border-radius:18px}.cb-map-top{top:14px;left:15px;right:15px}.cb-map-poi{font-size:9px;padding:5px 7px}.cb-map-marker-label{right:28px;padding:9px 11px}.cb-map-marker-label strong{font-size:18px}.cb-map-street{font-size:8px}.cb-map-credit{font-size:9px}}
@media(prefers-reduced-motion:reduce){.cb-map-figure,.cb-map-base,.cb-map-poi,.cb-map-street{transition:none!important}.is-drawing .cb-map-pin{animation:none;opacity:1;transform:rotate(-45deg)}.is-drawing .cb-map-marker-label{animation:none;opacity:1;transform:rotate(-5deg)}.is-drawing .cb-map-ripple{animation:none}.cb-map-replay:hover{transform:none}}
