.map-hero{background:var(--white);height:100svh;min-height:540px;position:relative}.map-hero [hidden]{display:none!important}.map-frame{position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000 0,#000 90px calc(100% - 160px),#0000 100%);mask-image:linear-gradient(#0000 0,#000 90px calc(100% - 160px),#0000 100%)}.map-canvas{width:100%;height:100%}.map-canvas .maplibregl-ctrl-top-right{top:calc(var(--header-h) + 64px)}.map-canvas .maplibregl-ctrl-group{border-radius:12px;box-shadow:0 8px 22px -10px #0b1f4b73}.map-canvas .maplibregl-cooperative-gesture-screen{font-family:var(--font);text-align:center;background:#0b1f4b73;font-weight:600}.map-hero:after{content:"";pointer-events:none;background:radial-gradient(90% 100% at 0 100%,#fffffff5 25%,#fff0 72%);height:58%;position:absolute;bottom:0;left:0;right:0}.map-copy{z-index:10;bottom:28px;left:max(var(--gutter), calc((100% - var(--max)) / 2 + var(--gutter)));width:min(560px, calc(100% - 2 * var(--gutter)));pointer-events:none;animation:.6s ease-out both hero-rise;position:absolute}.map-copy .btn,.map-copy a{pointer-events:auto}.map-copy h1{margin-bottom:.3em;font-size:clamp(1.65rem,4.4vw,3rem)}.map-copy h1:before{content:"";background:var(--yellow);border-radius:3px;width:44px;height:6px;margin-bottom:14px;display:block}.map-copy p{color:var(--muted);margin-bottom:14px;font-size:clamp(.95rem,1.6vw,1.1rem)}.map-locate{z-index:15;right:var(--gutter);top:calc(var(--header-h) + 12px);background:var(--white);min-height:44px;color:var(--blue);font:600 .9rem/1 var(--font);cursor:pointer;border:0;border-radius:999px;align-items:center;gap:8px;padding:0 16px;transition:transform .15s;display:inline-flex;position:absolute;box-shadow:0 10px 26px -12px #0b1f4b80}.map-locate:hover{transform:translateY(-1px)}.map-locate[data-state=unavailable]{color:var(--muted)}.map-note{z-index:15;left:50%;top:calc(var(--header-h) + 68px);width:max-content;max-width:calc(100% - 2 * var(--gutter));background:var(--navy);color:#fff;text-align:center;border-radius:14px;margin:0;padding:10px 16px;font-size:.9rem;position:absolute;transform:translate(-50%)}.map-empty{z-index:20;left:50%;top:calc(var(--header-h) + 68px);width:min(420px, calc(100% - 2 * var(--gutter)));background:var(--white);border-top:5px solid var(--yellow);border-radius:20px;padding:20px;animation:.4s ease-out both card-in;position:absolute;transform:translate(-50%);box-shadow:0 24px 50px -24px #0b1f4b80}.map-empty h2{margin-bottom:.35em;font-size:1.2rem}.map-empty p{color:var(--muted);margin-bottom:12px;font-size:.93rem}.map-empty__link{margin-top:12px;font-size:.93rem;font-weight:600;display:inline-block}.site-badge{cursor:pointer;font-family:var(--font);touch-action:pan-x pan-y;background:0 0;border:0;padding:0}.site-badge:focus-visible{outline:none}.site-badge:focus-visible .badge-tile{outline:3px solid var(--blue);outline-offset:2px}.badge-tile{width:46px;height:46px;animation:.5s cubic-bezier(.2,1.3,.4,1) both badge-in;animation-delay:var(--delay,0s);background:#fff;border-radius:13px;justify-content:center;align-items:center;padding:4px;transition:transform .18s cubic-bezier(.2,1.4,.4,1),box-shadow .18s;display:flex;overflow:hidden;box-shadow:0 8px 18px -6px #0b1f4b73,0 0 0 1px #0b1f4b0f}.site-badge:hover .badge-tile,.site-badge[aria-expanded=true] .badge-tile{box-shadow:0 12px 24px -8px #1e6bff8c, 0 0 0 2px var(--blue);transform:scale(1.14)}.badge-tile img{object-fit:contain;border-radius:9px;width:100%;height:100%}.badge-initial{background:var(--blue);color:#fff;border-radius:9px;justify-content:center;align-items:center;width:100%;height:100%;font-size:1.15rem;font-weight:800;display:flex}.badge-tile--group{background:var(--blue);color:#fff;border-radius:50%;width:50px;height:50px;padding:0;font-size:1.02rem;font-weight:800;box-shadow:0 8px 18px -6px #0b1f4b80,0 0 0 4px #ffc629bf}.floater{z-index:40;width:320px;left:var(--floater-left,16px);top:var(--floater-top,76px);max-height:calc(100% - var(--header-h) - 24px);background:var(--white);border-radius:20px;outline:none;animation:.28s ease-out both card-in;position:absolute;overflow:hidden auto;box-shadow:0 30px 60px -24px #0b1f4b8c,0 0 0 1px #0b1f4b0d}.floater__close{z-index:2;width:40px;height:40px;color:var(--navy);cursor:pointer;background:#fffffff0;border:0;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:10px;right:10px;box-shadow:0 4px 12px -4px #0b1f4b66}.floater__pictures{background:var(--surface);grid-auto-columns:1fr;grid-auto-flow:column;gap:3px;height:130px;display:grid}.floater__pictures:empty{display:none}.floater__pictures img{object-fit:cover;width:100%;height:130px}.floater[data-loading] .floater__pictures{display:block}.floater[data-loading] .floater__area:empty{min-height:1lh;display:block}.floater__logo{background:var(--surface);justify-content:center;align-items:center;height:130px;display:flex}.floater__logo:empty{display:none}.floater__logo .badge-tile{border-radius:18px;width:76px;height:76px;animation:none}.floater__logo .badge-initial{border-radius:14px;font-size:1.8rem}.floater__body{padding:16px 18px 18px}.floater__name{overflow-wrap:anywhere;margin:0 0 4px;padding-right:36px;font-size:1.2rem}.floater__cuisines,.floater__area{color:var(--muted);overflow-wrap:anywhere;margin:0;font-size:.9rem}.floater__cuisines:empty,.floater__area:empty,.floater__pill:empty{display:none}.floater__pill{background:var(--orange);color:var(--navy);border-radius:999px;margin:12px 0 0;padding:6px 14px;font-size:.92rem;font-weight:700;display:inline-block}.floater__pill[data-none]{background:var(--surface);color:var(--muted)}.floater__retry{margin-top:12px}.floater__retry p{margin:0 0 8px;font-size:.92rem}.floater__cta{margin:14px 0 10px;font-size:.93rem;font-weight:600}.map-credit{z-index:12;color:var(--muted);font-size:11px;line-height:1.4;text-decoration:none;position:absolute;bottom:4px;right:8px}.map-credit:hover{text-decoration:underline}@media (width<=719.98px){.map-canvas .maplibregl-ctrl-top-right,.map-hero:after{display:none}.map-copy{pointer-events:auto}.map-copy:before{pointer-events:none;content:"";z-index:-1;inset:-64px calc(-1 * var(--gutter)) -28px;background:linear-gradient(0deg,#fff calc(100% - 64px),#fff0);position:absolute}.map-note,.map-empty{top:calc(var(--header-h) + 62px)}.floater{z-index:60;width:100%;max-height:86svh;padding-bottom:env(safe-area-inset-bottom);border-radius:22px 22px 0 0;animation:.3s cubic-bezier(.2,.9,.3,1) both sheet-up;position:fixed;inset:auto 0 0}}@media (width<=719.98px) and (height<=720px){.map-hero.is-empty .map-copy{display:none}}@keyframes badge-in{0%{opacity:0;transform:translateY(10px)scale(.6)}to{opacity:1;transform:none}}@keyframes hero-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes card-in{0%{opacity:0;translate:0 10px}to{opacity:1;translate:0}}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:none}}
