.food-map-page,.food-map-screen{margin-top:12px}.food-map-screen{overflow-wrap:anywhere;word-break:keep-all;gap:16px;min-width:0;display:grid}.food-map-screen a:focus-visible,.food-map-screen button:focus-visible{outline:2px solid var(--green);outline-offset:2px}.food-map-filters{border:1px solid var(--line);background:#fff;border-radius:16px;gap:2px;min-width:0;padding:10px 16px;display:grid}.food-map-filter-row{grid-template-columns:40px minmax(0,1fr);align-items:center;gap:8px;min-width:0;display:grid}.food-map-filter-label{color:var(--muted);white-space:nowrap;font-size:13.5px;font-weight:800}.food-map-tier-chips,.food-map-kind-chips{gap:8px;margin:0 -4px;padding:4px;display:flex}.food-map-layout{grid-template-columns:minmax(0,1fr) minmax(330px,400px);gap:20px;min-width:0;height:clamp(460px,100vh - 400px,760px);display:grid}.food-map-frame{border:1px solid var(--line);background:color-mix(in srgb, var(--mint) 55%, white);border-radius:18px;min-width:0;height:100%;position:relative;overflow:hidden}.food-map-canvas{position:absolute;inset:0}.food-map-canvas.is-loading{background:linear-gradient(110deg, color-mix(in srgb, var(--mint) 60%, white) 30%, white 50%, color-mix(in srgb, var(--mint) 60%, white) 70%) 0 0 / 300% 100%;animation:1.4s linear infinite food-map-loading}@keyframes food-map-loading{to{background-position:-300% 0}}.food-map-error{color:var(--muted);text-align:center;text-wrap:balance;justify-content:center;align-items:center;margin:0;padding:24px;font-size:15px;font-weight:700;line-height:1.6;display:flex;position:absolute;inset:0}.food-map-frame .maplibregl-ctrl-group{box-shadow:0 2px 8px color-mix(in srgb, var(--ink) 14%, transparent);border-radius:10px}.food-map-frame .maplibregl-ctrl-group button{width:44px;height:44px}.food-map-frame .maplibregl-ctrl-attrib.maplibregl-compact{min-height:44px;box-shadow:0 2px 8px color-mix(in srgb, var(--ink) 12%, transparent);border-radius:22px;padding:0 44px 0 0}.food-map-frame .maplibregl-ctrl-attrib.maplibregl-compact-show{align-items:center;padding:4px 48px 4px 12px;display:flex}.food-map-frame .maplibregl-ctrl-attrib-button{background-position:50%;background-repeat:no-repeat;border-radius:22px;width:44px;height:44px}.food-map-legend{z-index:2;border:1px solid var(--line);height:36px;box-shadow:0 2px 8px color-mix(in srgb, var(--ink) 10%, transparent);color:var(--green-strong);pointer-events:none;white-space:nowrap;background:#fff;border-radius:999px;align-items:center;gap:14px;padding:0 14px;font-size:12.5px;font-weight:800;display:flex;position:absolute;bottom:12px;left:12px}.food-map-frame:has(.food-map-error) .food-map-legend{display:none}.food-map-legend-item{align-items:center;gap:6px;display:inline-flex}.food-map-legend-mark{box-sizing:border-box;border-radius:50%;flex:none;place-items:center;display:inline-grid}.food-map-legend-mark.is-top{background:var(--orange-cta);color:#fff;letter-spacing:0;width:20px;height:20px;font-size:11px;font-weight:800;line-height:1}.food-map-legend-mark.is-top:before{content:"찐";content:"찐" / ""}.food-map-legend-mark.is-recommended,.food-map-legend-mark.is-other{box-shadow:0 0 0 1px color-mix(in srgb, var(--line) 75%, var(--muted));border:2px solid #fff}.food-map-legend-mark.is-recommended{background:var(--green);width:14px;height:14px}.food-map-legend-mark.is-other{background:color-mix(in srgb, var(--muted) 80%, white);width:10px;height:10px}.food-map-marker{z-index:1;width:44px;height:44px}.food-map-marker.is-recommended{z-index:2}.food-map-marker.is-cluster{z-index:3}.food-map-marker.is-top,.food-map-marker.is-cluster.has-top{z-index:4}.food-map-marker:hover{z-index:6}.food-map-marker.is-selected{z-index:7}.food-map-marker.is-clustered,.food-map-marker.is-covered,.food-map-marker.is-under-ui{visibility:hidden}.food-map-pin{z-index:1;cursor:pointer;width:44px;height:44px;font:inherit;background:0 0;border:0;border-radius:50%;place-items:center;margin:0;padding:0;display:grid;position:absolute;inset:0}.food-map-pin:before{box-sizing:border-box;content:"";border-radius:50%;place-items:center;transition:width .15s,height .15s,font-size .15s;display:grid}.food-map-marker.is-top .food-map-pin:before{background:var(--orange-cta);width:28px;height:28px;box-shadow:0 2px 6px color-mix(in srgb, var(--ink) 28%, transparent);color:#fff;content:"찐";content:"찐" / "";letter-spacing:0;border:2px solid #fff;font-size:14px;font-weight:800;line-height:1}.food-map-marker.is-top.is-selected .food-map-pin:before{width:36px;height:36px;box-shadow:0 0 0 6px color-mix(in srgb, var(--orange-cta) 20%, transparent), 0 3px 8px color-mix(in srgb, var(--ink) 30%, transparent);font-size:17px}.food-map-marker.is-recommended .food-map-pin:before,.food-map-marker.is-other .food-map-pin:before{box-shadow:0 0 0 1px color-mix(in srgb, var(--line) 75%, var(--muted)), 0 1px 3px color-mix(in srgb, var(--ink) 18%, transparent);border:2px solid #fff}.food-map-marker.is-recommended .food-map-pin:before{background:var(--green);width:14px;height:14px}.food-map-marker.is-other .food-map-pin:before{background:color-mix(in srgb, var(--muted) 80%, white);width:10px;height:10px}.food-map-marker.is-recommended.is-selected .food-map-pin:before,.food-map-marker.is-other.is-selected .food-map-pin:before{box-shadow:0 0 0 5px color-mix(in srgb, var(--orange-cta) 20%, transparent), 0 2px 6px color-mix(in srgb, var(--ink) 24%, transparent)}.food-map-marker.is-recommended.is-selected .food-map-pin:before{width:20px;height:20px}.food-map-marker.is-other.is-selected .food-map-pin:before{width:16px;height:16px}.food-map-label{z-index:0;box-sizing:border-box;max-width:180px;height:26px;box-shadow:0 2px 8px color-mix(in srgb, var(--ink) 20%, transparent);color:var(--ink);cursor:pointer;letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;background:#fff;border-radius:999px;padding:0 10px 0 13px;font-size:13px;font-weight:800;line-height:26px;display:block;position:absolute;top:50%;left:calc(50% + 6px);overflow:hidden;transform:translateY(-50%)}.food-map-label.is-left{padding:0 13px 0 10px;left:auto;right:calc(50% + 6px)}.food-map-label.is-hidden{visibility:hidden}.food-map-marker.is-top.is-selected .food-map-label{left:calc(50% + 10px)}.food-map-marker.is-top.is-selected .food-map-label.is-left{left:auto;right:calc(50% + 10px)}.food-map-marker.is-selected .food-map-label{pointer-events:none}.food-map-marker:not(.is-top) .food-map-label{color:var(--green-strong);padding:0 10px;font-size:12.5px;left:calc(50% + 14px)}.food-map-marker:not(.is-top) .food-map-label.is-left{left:auto;right:calc(50% + 14px)}.food-map-more{z-index:2;cursor:pointer;min-width:44px;height:44px;font:inherit;background:0 0;border:0;justify-content:center;align-items:flex-end;margin:0;padding:0;display:flex;position:absolute;bottom:calc(50% + 12px);left:50%;transform:translate(-50%)}@media (pointer:fine){.food-map-more{min-width:0;height:26px;padding:0 8px}}.food-map-more.is-hidden{display:none}.food-map-more-face{box-sizing:border-box;min-width:20px;height:18px;box-shadow:0 0 0 1px color-mix(in srgb, var(--line) 75%, var(--muted)), 0 1px 3px color-mix(in srgb, var(--ink) 18%, transparent);color:var(--green-strong);letter-spacing:0;white-space:nowrap;background:#fff;border-radius:999px;justify-content:center;align-items:center;padding:0 5px;font-size:11px;font-weight:800;line-height:1;display:inline-flex}.food-map-marker.is-top.is-selected .food-map-more-face{transform:translateY(-4px)}.food-map-marker.has-top .food-map-more{bottom:calc(50% + 13px)}.food-map-cluster{cursor:pointer;min-width:44px;height:44px;font:inherit;background:0 0;border:0;place-items:center;margin:0;padding:0;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.food-map-cluster-face{box-sizing:border-box;background:var(--green);min-width:26px;height:26px;box-shadow:0 2px 6px color-mix(in srgb, var(--ink) 26%, transparent);color:#fff;letter-spacing:0;white-space:nowrap;border:2px solid #fff;border-radius:999px;justify-content:center;align-items:center;padding:0 7px;font-size:12.5px;font-weight:800;line-height:1;display:inline-flex}.food-map-marker.has-other .food-map-cluster-face{background:color-mix(in srgb, var(--muted) 85%, var(--ink))}.food-map-marker.has-top .food-map-cluster-face{background:var(--orange-cta);min-width:30px;height:30px;box-shadow:0 2px 6px color-mix(in srgb, var(--ink) 28%, transparent);padding:0 10px;font-size:14px}.food-map-marker.is-cluster.is-selected .food-map-cluster-face{box-shadow:0 0 0 5px color-mix(in srgb, var(--orange-cta) 22%, transparent), 0 2px 6px color-mix(in srgb, var(--ink) 28%, transparent)}.food-map-list{border:1px solid var(--line);background:#fff;border-radius:18px;flex-direction:column;min-width:0;height:100%;min-height:0;display:flex;overflow:hidden}.food-map-list-head{border-bottom:1px solid var(--food-divider);flex-wrap:wrap;align-items:center;gap:0 10px;padding:12px 12px 10px 16px;display:flex}.food-map-list-head h2{min-width:0;color:var(--ink);letter-spacing:-.02em;flex-wrap:wrap;align-items:center;gap:4px 8px;margin:0;font-size:18px;font-weight:900;line-height:1.3;display:flex}.food-map-count{background:var(--mint);min-height:26px;color:var(--green-strong);letter-spacing:0;border-radius:999px;align-items:center;padding:0 10px;font-size:13px;font-weight:800;display:inline-flex}.food-map-sort{border:1px solid var(--line);min-height:44px;color:var(--green-strong);cursor:pointer;font:inherit;white-space:nowrap;background:#fff;border-radius:999px;align-items:center;gap:6px;margin-left:auto;padding:0 14px;font-size:14px;font-weight:800;display:inline-flex}.food-map-sort[aria-pressed=true]{border-color:var(--green);background:var(--green);color:#fff}.food-map-sort[aria-busy=true]{cursor:progress;opacity:.7}.food-map-status{color:var(--ink);flex-basis:100%;margin:0;font-size:13.5px;font-weight:700;line-height:1.5}.food-map-status:not(:empty){padding-top:4px}.food-map-rail{flex:1 1 0;min-height:0}.chip-rail-track.food-map-track{overscroll-behavior:contain;scrollbar-width:thin;height:100%;padding:10px 10px 14px;overflow:hidden auto}.food-map-items{gap:8px;margin:0;padding:0;list-style:none;display:grid}.food-map-item{border:1px solid var(--line);background:#fff;border-radius:14px;flex-direction:column;min-width:0;transition:border-color .15s,box-shadow .15s;display:flex}.food-map-item.is-selected{background:var(--food-orange-soft);box-shadow:0 0 0 2px color-mix(in srgb, var(--orange) 16%, white);border-color:#ffc79e}.food-map-item-pick{width:100%;min-width:0;color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;border-radius:14px 14px 0 0;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:12px;margin:0;padding:10px 10px 2px;display:grid}.food-map-item-photo{background:var(--mint);width:64px;height:64px;color:color-mix(in srgb, var(--green) 45%, var(--mint));border-radius:10px;place-items:center;display:grid;position:relative;overflow:hidden}.food-map-item-photo>img{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.food-map-item-copy{gap:3px;min-width:0;display:grid}.food-map-item-head{align-items:center;gap:6px;min-width:0;display:flex}.food-map-item-name{min-width:0;color:var(--ink);letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;font-size:15.5px;font-weight:900;line-height:1.35;overflow:hidden}.food-map-item-distance{color:var(--muted);white-space:nowrap;flex:none;margin-left:auto;padding-left:4px;font-size:13px;font-weight:800}.food-map-item-meta{color:var(--muted);font-size:13px;font-weight:700;line-height:1.35}.food-map-item-evidence{display:block}.food-map-item-links{flex-wrap:wrap;align-items:center;gap:0 4px;margin-top:auto;padding:0 8px 2px 78px;display:flex}.food-map-item-link{min-height:44px;color:var(--green-strong);white-space:nowrap;border-radius:10px;align-items:center;gap:3px;padding:0 8px;font-size:14px;font-weight:800;text-decoration:none;display:inline-flex}.food-map-item-link svg{flex:none}.food-map-empty{margin:12px}@media (hover:hover){.food-map-item:not(.is-selected):hover{border-color:color-mix(in srgb, var(--green) 45%, white);box-shadow:0 6px 18px color-mix(in srgb, var(--ink) 7%, transparent)}.food-map-item-link:hover{color:var(--green)}.food-map-sort[aria-pressed=false]:hover{border-color:color-mix(in srgb, var(--green) 45%, white);background:color-mix(in srgb, var(--mint) 45%, white)}.food-map-more:hover .food-map-more-face{box-shadow:0 0 0 1px var(--green), 0 1px 3px color-mix(in srgb, var(--ink) 18%, transparent)}.food-map-marker.is-recommended:hover .food-map-label.is-hidden{visibility:visible}.food-map-marker.is-recommended:not(.is-selected) .food-map-pin:hover:before{width:18px;height:18px}}@media (prefers-reduced-motion:reduce){.food-map-canvas.is-loading{animation:none}.food-map-pin:before,.food-map-item{transition:none}}@media (max-width:860px){.food-map-layout{grid-template-columns:minmax(0,1fr);gap:14px;height:auto}.food-map-frame{height:340px}.food-map-list{background:0 0;border:0;border-radius:0;height:auto;overflow:visible}.food-map-list-head{border-bottom:0;padding:0 0 10px}.food-map-rail{flex:none}.chip-rail-track.food-map-track{scroll-snap-type:x proximity;scrollbar-width:none;height:auto;margin:-4px;padding:4px;overflow:auto hidden}.food-map-items{gap:12px;display:flex}.food-map-item{scroll-snap-align:center;flex:0 0 min(300px,100vw - 72px)}.food-map-empty{margin:0}}@media (max-width:620px){.food-map-page,.food-map-screen{margin-top:6px}.food-map-filters{padding:8px 12px}.food-map-filter-row{grid-template-columns:34px minmax(0,1fr);gap:6px}.food-map-filter-label{font-size:13px}.food-map-frame{border-radius:16px;height:320px}.food-map-list-head h2{font-size:17px}.food-map-legend{gap:12px;padding:0 12px;bottom:10px;left:10px}}
