@layer zcook.features{.shelf[data-view=map]{padding-top:10px;padding-bottom:28px}.shelf[data-view=map] .shelf-head{display:none}.shelf[data-view=map] .shelf-bar-sentinel{margin-top:0}.shelf[data-view=map] .shelf-results-head{margin:10px 2px 8px}.shelf-map{--map-top:0px;--map-ease:cubic-bezier(0.22,1,0.36,1);display:grid;grid-template-columns:minmax(0,1fr) clamp(290px,27vw,360px);gap:14px;height:max(520px,calc(100dvh - var(--map-top) - 18px));margin-top:6px;animation:shelf-fade .42s ease both}.shelf-map-stage{position:relative;min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:26px;background:radial-gradient(ellipse 80% 70% at 50% 44%,var(--porcelain),var(--wash))}.shelf-map-status{position:absolute;inset:auto 50% 50% auto;display:flex;align-items:center;gap:10px;margin:0;padding:10px 14px;border-radius:12px;background:var(--porcelain);box-shadow:0 10px 30px -18px rgba(40,28,10,.5);color:var(--text-soft);font:500 14px/1.3 var(--font-body);white-space:nowrap;transform:translate(50%,50%)}.food-map{position:absolute;inset:0;outline:none;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}.food-map:focus-visible{box-shadow:inset 0 0 0 2px var(--focus)}.food-map[data-dragging]{cursor:grabbing}.food-map[data-over-food]:not([data-dragging]){cursor:pointer}.food-map-canvas{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity .7s ease}.food-map[data-ready] .food-map-canvas{opacity:1}.food-map[data-flat] .food-map-canvas{display:none}.food-map-leaders,.food-map-pins{position:absolute;inset:0;pointer-events:none}.food-map-leaders{width:100%;height:100%;overflow:visible}.food-map-leaders path{fill:none;stroke-linecap:round}.food-map-leader-casing{stroke:var(--porcelain);stroke-width:3}.food-map-leader{stroke:var(--pencil);stroke-opacity:.55;stroke-width:1}.food-pin{--photo:50px;position:absolute;top:0;left:0;width:0;height:0;padding:0;border:0;background:none;color:var(--ink);cursor:pointer;pointer-events:none;transition:none;will-change:transform}.food-pin[data-scope=region]{--photo:38px}.food-pin[data-tier=full]{z-index:2}.food-pin>*{position:absolute;pointer-events:auto;transition:opacity .16s ease,transform .2s var(--map-ease),box-shadow .2s ease}.food-pin[data-tier=off]>*{opacity:0;pointer-events:none}.food-pin-dot{top:-3px;left:-3px;width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 1.5px var(--porcelain);opacity:.85}.food-pin-photo{top:calc(var(--photo) / -2);left:calc(var(--photo) / -2);display:grid;width:var(--photo);height:var(--photo);overflow:hidden;border-radius:50%;background:var(--wash);box-shadow:0 0 0 2.5px var(--porcelain),0 8px 18px -10px rgba(40,28,10,.6)}.food-pin-label,.food-pin-photo{translate:var(--dx,0) var(--dy,0)}.food-pin-photo>*{grid-area:1/1}.food-pin-photo img{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .46s ease}.food-pin[data-frame="0"] .food-pin-photo img:first-child,.food-pin[data-frame="1"] .food-pin-photo img:nth-child(2),.food-pin[data-frame="2"] .food-pin-photo img:nth-child(3){opacity:1}.food-pin-initial{display:grid;place-items:center;color:var(--pencil);font:italic 500 20px/1 var(--font-display)}.food-pin-label{top:calc(var(--photo) / 2 + 6px);left:0;display:inline-flex;align-items:baseline;gap:5px;padding:3px 7px;border-radius:8px;background:var(--porcelain);box-shadow:0 0 0 1px var(--line),0 6px 14px -10px rgba(40,28,10,.5);color:var(--ink);font:600 12px/1.2 var(--font-body);white-space:nowrap;transform:translateX(-50%)}.food-pin-count{color:var(--pencil);font-weight:500;font-size:11px}.food-pin:is([data-scope=macroregion],[data-scope=continent]) .food-pin-label{top:-12px;font:italic 500 13.5px/1.2 var(--font-display);letter-spacing:.01em}.food-pin[data-tier=dot] .food-pin-photo{opacity:0;transform:scale(.4);pointer-events:none}.food-pin[data-tier=dot] .food-pin-label{opacity:0;transform:translateX(-50%) translateY(-4px);pointer-events:none}.food-pin[data-tier=full] .food-pin-dot{opacity:0;transform:scale(.5);pointer-events:none}.food-pin[data-big] .food-pin-dot{top:-4px;left:-4px;width:8px;height:8px}.food-pin[data-tier=full][data-stepped] .food-pin-dot{top:-3px;left:-3px;width:6px;height:6px;background:var(--porcelain);box-shadow:inset 0 0 0 1.25px color-mix(in srgb,var(--ink) 70%,transparent),0 0 0 1.5px var(--porcelain);opacity:1;transform:none;pointer-events:auto}.food-pin[data-tier=full][data-stepped]:hover .food-pin-dot{background:var(--accent)}.food-pin[data-above] .food-pin-label{top:auto;bottom:calc(var(--photo) / 2 + 6px)}.food-pin:hover .food-pin-photo{transform:scale(1.08);box-shadow:0 0 0 2.5px var(--porcelain),0 12px 24px -12px rgba(40,28,10,.7)}.food-pin[data-highlight]>:is(.food-pin-photo,.food-pin-label){opacity:1;pointer-events:none}.food-pin[data-highlight] .food-pin-photo{transform:scale(1.08);box-shadow:0 0 0 2.5px var(--accent),0 12px 24px -12px rgba(40,28,10,.7)}.food-pin[data-highlight] .food-pin-label{transform:translateX(-50%)}.food-pin[data-selected] .food-pin-photo{transform:scale(1.14);box-shadow:0 0 0 3px var(--accent-strong),0 14px 28px -12px rgba(40,28,10,.7)}.food-pin[data-selected] .food-pin-label{background:var(--ink);box-shadow:none;color:var(--paper)}.food-pin[data-selected] .food-pin-count{color:color-mix(in srgb,var(--paper) 70%,transparent)}.food-pin:focus-visible{outline:none}.food-pin:focus-visible .food-pin-label,.food-pin:focus-visible .food-pin-photo{outline:2px solid var(--focus);outline-offset:3px}.food-pin:focus-visible,.food-pin:hover,.food-pin[data-highlight],.food-pin[data-selected]{z-index:400}.food-map-tooltip{position:absolute;top:0;left:0;padding:5px 9px;border-radius:9px;background:var(--ink);color:var(--paper);font:600 12px/1.3 var(--font-body);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .14s ease}.food-map-tooltip[data-shown]{opacity:1}.food-map-controls{position:absolute;bottom:16px;left:16px;display:grid;gap:6px}.food-map-controls button{display:grid;place-items:center;width:38px;height:38px;padding:0;border:1px solid var(--line);border-radius:11px;background:var(--porcelain);color:var(--text-soft);cursor:pointer;transition:border-color .16s ease,color .16s ease,transform .16s ease}.food-map-controls button:hover{border-color:var(--line-strong);color:var(--ink)}.food-map-controls button:active{transform:scale(.96)}.food-map-controls button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.food-map-hint{position:absolute;bottom:18px;left:50%;margin:0;padding:8px 12px;border-radius:10px;background:var(--ink);color:var(--paper);font:600 13px/1.2 var(--font-body);opacity:0;pointer-events:none;transform:translate(-50%,6px);transition:opacity .2s ease,transform .26s var(--map-ease)}.food-map-hint[data-shown]{opacity:1;transform:translate(-50%)}.shelf-map-side{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;border:1px solid var(--line);border-radius:26px;background:var(--porcelain)}.shelf-map-list,.shelf-map-place-detail{display:flex;flex-direction:column;min-height:0;height:100%;animation:shelf-fade .26s ease both}.shelf-map-list-head{padding:22px 22px 10px}.shelf-map-kicker{margin:0;color:var(--accent-strong);font:600 11px/1.3 var(--font-body);letter-spacing:.14em;text-transform:uppercase}.shelf-map-list-summary{margin:6px 0 0;color:var(--pencil);font-size:13.5px}.shelf-map-places{flex:1;min-height:0;margin:0;padding:4px 10px 14px;overflow-y:auto;list-style:none;scrollbar-width:thin}.shelf-map-place{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;padding:7px 10px;border:0;border-radius:14px;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background-color .16s ease}.shelf-map-place:hover{background:var(--wash)}.shelf-map-place:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.shelf-map-place-photo{display:grid;place-items:center;width:40px;height:40px;overflow:hidden;border-radius:50%;background:var(--wash);color:var(--pencil);font:italic 500 17px/1 var(--font-display)}.shelf-map-place-photo img{width:100%;height:100%;object-fit:cover}.shelf-map-place[data-scope=region] .shelf-map-place-name:after{content:" · region";color:var(--pencil);font-weight:400;font-size:12.5px}.shelf-map-place:is([data-scope=macroregion],[data-scope=continent]) .shelf-map-place-photo{border-radius:12px}.shelf-map-place-name{overflow:hidden;color:var(--ink);font:500 15px/1.3 var(--font-body);text-overflow:ellipsis;white-space:nowrap}.shelf-map-place-count{color:var(--pencil);font:500 13px/1 var(--font-body);font-variant-numeric:tabular-nums}.shelf-map-note{margin:0;padding:12px 22px 18px;border-top:1px solid var(--line);color:var(--pencil);font-size:12.5px;line-height:1.5}.shelf-map-detail-head{display:flex;flex-direction:column;align-items:flex-start;padding:18px 22px 14px;border-bottom:1px solid var(--line)}.shelf-map-back{display:inline-flex;align-items:center;gap:6px;margin:0 0 14px -4px;padding:4px;border:0;border-radius:8px;background:none;color:var(--text-soft);font:600 13px/1 var(--font-body);cursor:pointer}.shelf-map-back:hover{color:var(--ink)}.shelf-map-back:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.shelf-map-title{margin:8px 0 0;font:500 clamp(30px,2.6vw,38px)/1.02 var(--font-display);letter-spacing:-.02em}.shelf-map-count{margin:6px 0 0;color:var(--pencil);font-size:14px}.shelf-map-plates{margin-top:14px}.shelf-map-about{display:-webkit-box;margin:10px 0 0;overflow:hidden;color:var(--text-soft);font-size:13.5px;line-height:1.5;-webkit-box-orient:vertical;-webkit-line-clamp:3}.shelf-map-parent{padding:0;border:0;background:none;color:inherit;font:inherit;letter-spacing:inherit;text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 40%,transparent);text-transform:inherit;text-underline-offset:3px;cursor:pointer}.shelf-map-parent:hover{text-decoration-color:currentColor}.shelf-map-parent:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:4px}.shelf-map-regions{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}.shelf-map-region{display:inline-flex;align-items:baseline;gap:6px;padding:6px 10px;border:1px solid var(--line);border-radius:10px;background:var(--porcelain);color:var(--ink);font:500 13px/1.2 var(--font-body);white-space:nowrap;cursor:pointer;transition:border-color .16s ease,background-color .16s ease}.shelf-map-region:hover{border-color:var(--line-strong);background:var(--wash)}.shelf-map-region:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.shelf-map-region span{color:var(--pencil);font-size:12px;font-variant-numeric:tabular-nums}.shelf-map-dishes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px;margin:0;padding:16px 18px;overflow-y:auto;list-style:none;scrollbar-width:thin}.shelf-map-dishes>li{min-width:0;animation:shelf-rise .42s var(--map-ease) both;animation-delay:calc(var(--i, 0) * 30ms)}.shelf-map-dish{display:flex;flex-direction:column;align-items:flex-start;gap:6px;width:100%;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.shelf-map-dish-photo{display:block;width:100%;aspect-ratio:4/3;overflow:hidden;border-radius:14px;background:var(--wash)}.shelf-map-dish-photo img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--map-ease)}.shelf-map-dish:hover .shelf-map-dish-photo img{transform:scale(1.05)}.shelf-map-dish:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:14px}.shelf-map-dish[data-peeking]{visibility:hidden}.shelf-map-dish-title{display:-webkit-box;overflow:hidden;color:var(--ink);font:500 15px/1.2 var(--font-display);-webkit-box-orient:vertical;-webkit-line-clamp:2}.shelf-map-dish-meta{color:var(--pencil);font-size:12px}.shelf-map-dish-ghost{aspect-ratio:4/3.6;border-radius:14px;background:var(--skeleton-surface);animation:shelf-shimmer 1.4s ease-in-out infinite}.shelf-map-more{align-self:center;margin:0 0 18px}@media (max-width:860px){.shelf-map{position:relative;display:block;height:auto}.shelf-map-stage{height:70dvh;min-height:420px;border-radius:22px}.shelf-map-side{margin-top:12px;border-radius:22px}.shelf-map-places{max-height:420px}.shelf-map[data-place] .shelf-map-side{position:fixed;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));left:10px;z-index:30;max-height:min(46dvh,380px);margin:0;box-shadow:0 20px 50px -24px rgba(40,28,10,.6);animation:shelf-rise .36s var(--map-ease) both}.shelf-map[data-place] .shelf-map-place-detail{overflow-y:auto}.shelf-map[data-place]{padding-bottom:min(46dvh,380px)}.food-map-controls{bottom:auto;top:12px;left:12px}.shelf-map-detail-head{display:grid;grid-template-areas:"back kicker plates" "back title plates" "back count plates" "regions regions regions";grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:12px;padding:14px 16px 6px;border-bottom:0}.shelf-map-back{grid-area:back;justify-content:center;width:38px;height:38px;margin:0;border:1px solid var(--line);border-radius:11px;font-size:0}.shelf-map-detail-head .shelf-map-kicker{grid-area:kicker;font-size:10px}.shelf-map-title{grid-area:title;margin:2px 0 0;overflow:hidden;font-size:26px;text-overflow:ellipsis;white-space:nowrap}.shelf-map-count{grid-area:count;margin:2px 0 0;font-size:12.5px}.shelf-map-plates{grid-area:plates;min-height:38px;margin:0;padding:8px 12px}.shelf-map-about,.shelf-map-plates-tail{display:none}.shelf-map-regions{grid-area:regions;flex-wrap:nowrap;margin:10px -16px 0;padding:0 16px 2px;overflow-x:auto;scrollbar-width:none}.shelf-map-dishes{grid-auto-columns:minmax(148px,44%);grid-auto-flow:column;grid-template-columns:none;padding:10px 16px 16px;overflow-x:auto;overscroll-behavior-x:contain;scroll-padding-inline:16px;scroll-snap-type:x proximity}.shelf-map-dishes>li{scroll-snap-align:start}.shelf-map-more{display:none}}@media (prefers-reduced-motion:reduce){.food-pin>*,.shelf-map,.shelf-map *{animation:none!important;transition-duration:0s!important}}}