@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Serif+Display&display=swap');
:root{--cream:#f5f2eb;--paper:#fffcf7;--ink:#191b1b;--pink:#e8343f;--muted:#777974;--line:#deddd6;--shadow:0 24px 60px rgba(20,20,20,.08);--serif:'DM Serif Display',Georgia,serif;--sans:'DM Sans','Helvetica Neue',Helvetica,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.42}a{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #fa8d93;outline-offset:3px}button:focus:not(:focus-visible){outline:none}img{max-width:100%}em{font-style:normal;color:var(--pink)}[hidden]{display:none!important}
#app{max-width:1440px;margin:auto}.masthead{height:86px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 clamp(21px,5vw,76px);border-bottom:1px solid rgba(25,27,27,.09)}.wordmark{display:flex;gap:11px;align-items:center;text-decoration:none;font-family:var(--serif);font-size:25px;letter-spacing:-.035em}.logo-n{font-family:var(--serif);display:grid;place-items:center;width:43px;height:43px;color:var(--cream);background:var(--ink);border-radius:50%;font-size:30px;line-height:1;position:relative}.logo-dot{position:absolute;font-family:var(--sans);font-size:32px;color:var(--pink);top:-15px;right:2px}.location-label{font-size:12px;letter-spacing:.045em;color:var(--muted);display:flex;align-items:center;gap:10px}.signal{width:7px;height:7px;border-radius:50%;background:var(--pink)}.screen{min-height:calc(100dvh - 86px);padding:42px clamp(21px,5vw,76px) 100px}.onboarding{max-width:1030px;margin:auto}.kicker{font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--pink);margin:0 0 18px}.display{font-family:var(--serif);font-weight:400;letter-spacing:-.046em;line-height:1.02;font-size:clamp(52px,7.8vw,111px);margin:0 0 24px;max-width:1050px}.intro{font-size:clamp(15px,1.65vw,19px);line-height:1.65;max-width:660px;color:#656862;margin:0 0 27px}.btn{background:transparent;border:1px solid var(--ink);color:var(--ink);padding:17px 26px;border-radius:100px;font-size:14px;font-weight:700;min-height:55px;transition:transform .26s cubic-bezier(.19,1,.22,1),background .2s;display:inline-flex;align-items:center;justify-content:center;gap:20px}.btn:active{transform:scale(.98)}.btn-accent{background:var(--pink);border-color:var(--pink);color:white}.btn-accent:not(:disabled):hover{background:#cc2531}.btn-outline:hover{background:var(--ink);color:var(--cream)}.text-button{background:none;border:0;color:var(--ink);padding:14px 5px;text-decoration:underline;text-underline-offset:4px;font-weight:600;font-size:13px}.link-button{border:0;background:none;font-size:13px;font-weight:700;display:flex;gap:8px;align-items:center}.fineprint{font-size:11px;line-height:1.6;color:#92918a}.welcome-photo{position:relative;margin:-13px 0 36px;width:100%;height:clamp(210px,39vh,440px);border-radius:12px;overflow:hidden;background:#3b3330}.welcome-photo img{width:100%;height:100%;object-fit:cover;filter:brightness(.78) saturate(.9)}.welcome-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.4),transparent 45%)}.welcome-photo-label{position:absolute;bottom:25px;left:27px;font-size:11px;letter-spacing:.18em;color:#fff;z-index:2}.welcome-copy{padding-bottom:25px}.welcome-copy .display{max-width:780px}.welcome-copy .btn{margin-right:22px}.welcome-copy .fineprint{margin-top:23px}#name-screen,#quiz{display:flex;flex-direction:column;min-height:calc(100dvh - 86px);max-width:780px}#name-screen .display{margin-top:65px}.field-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;margin:25px 0 13px}.input-name{border:0;border-bottom:2px solid var(--ink);background:transparent;font-size:clamp(25px,4vw,39px);padding:14px 0;outline:none;border-radius:0}.input-name:focus{border-color:var(--pink)}.grow{flex:1;min-height:40px}#name-screen .btn,#quiz .btn{width:100%}.quiz-top{display:flex;justify-content:space-between}.progress{height:3px;background:#d5d0c8;border-radius:7px;overflow:hidden;margin:17px 0 55px}.progress>div{height:100%;width:0;background:var(--pink);transition:width .34s}.quiz-tag{text-transform:uppercase;font-size:12px;letter-spacing:.15em;color:var(--muted)}.quiz-head{font-size:clamp(38px,6.2vw,75px);max-width:780px}.quiz-answers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin:25px 0 34px}.answer{border:1px solid var(--line);background:var(--paper);border-radius:12px;padding:22px 20px;text-align:left;min-height:87px;color:var(--ink);font-weight:600;font-size:15px;transition:background .18s,border-color .18s,transform .18s}.answer:hover{transform:translateY(-2px)}.answer[aria-pressed="true"]{border-color:var(--pink);background:#ffebea;color:#af1c28}.quiz-actions{display:flex;justify-content:space-between;margin-top:12px}
.section-intro{padding-top:22px}.section-intro .display{font-size:clamp(52px,7vw,100px)}.heading-line{display:flex;justify-content:space-between;align-items:flex-end;gap:40px}.side-intro{max-width:240px;font-size:15px;margin-bottom:30px}.feature-photo{height:clamp(240px,35vw,460px);border-radius:11px;overflow:hidden;position:relative;margin:28px 0 62px;background:#232323}.feature-photo img{height:100%;width:100%;object-fit:cover;filter:brightness(.72)}.feature-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.5),transparent 75%)}.feature-overlay{position:absolute;bottom:38px;left:40px;z-index:1;color:#fff}.eyebrow-light{font-size:11px;letter-spacing:.17em;color:#eee}.feature-overlay p{font:400 clamp(36px,5vw,74px)/1.1 var(--serif);max-width:510px;margin:14px 0 0}.feature-overlay em{color:#ff7378}.catalogue-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:21px}.catalogue-head .kicker{margin-bottom:10px}.catalogue-head h2{font:400 clamp(31px,4vw,50px)/1.1 var(--serif);letter-spacing:-.03em;margin:0}.lens{display:flex;gap:7px;flex-wrap:wrap;margin:24px 0}.lens-button{border:1px solid var(--line);border-radius:99px;background:transparent;padding:13px 19px;color:#5f625d;font-size:13px;font-weight:700}.lens-button.active{border-color:var(--ink);background:var(--ink);color:white}.soft-label{font-size:10px;opacity:.55;margin-left:4px}.filter-row{display:flex;gap:12px;margin-bottom:23px}.search-shell{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:var(--paper);border-radius:8px;padding:0 16px;flex:1;min-width:0}.search-shell input{padding:17px 0;border:0;outline:none;background:transparent;min-width:0;width:100%;font-size:14px;color:var(--ink)}.filter-row select{max-width:260px;border:1px solid var(--line);background:var(--paper);border-radius:8px;padding:15px;font-size:13px;color:var(--ink)}.status{font-size:13px;color:var(--muted);line-height:1.6;min-height:23px}.status.error{color:#a72934}.venue-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:15px 0 40px}.venue-card{background:var(--paper);border:1px solid #e9e5dd;border-radius:9px;min-width:0;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 3px 10px rgba(0,0,0,.025);transition:transform .28s cubic-bezier(.19,1,.22,1),box-shadow .28s}.venue-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.venue-photo{height:185px;background:radial-gradient(ellipse at 75% 70%,#5e4a40,#2a3031 70%);display:flex;align-items:flex-end;justify-content:flex-start;position:relative;overflow:hidden;color:#ddd5c5;padding:19px;font:400 26px var(--serif)}.venue-photo img{inset:0;position:absolute;width:100%;height:100%;object-fit:cover}.venue-photo .photo-note{position:relative;z-index:1;font:500 10px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#f5eee2}.venue-photo:has(img) .photo-note{background:#181818a0;padding:7px 9px;border-radius:5px}.venue-body{padding:22px 21px 19px;display:flex;flex-direction:column;flex:1}.venue-meta{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#88857f;font-weight:700}.venue-body h3{font:400 28px/1.14 var(--serif);margin:12px 0 13px;letter-spacing:-.02em}.venue-address{color:var(--muted);font-size:12px;line-height:1.5;margin-bottom:18px}.match{display:flex;align-items:baseline;gap:10px;border-top:1px solid var(--line);padding-top:15px;margin-top:auto}.match strong{font:400 35px var(--serif)}.match .match-label{font-size:11px;color:#767772}.venue-actions{display:flex;gap:9px;align-items:center;margin-top:15px;justify-content:space-between}.save-button{background:var(--ink);color:white;border:0;border-radius:99px;padding:11px 16px;font-size:12px;font-weight:700}.save-button.saved{background:var(--pink)}.secondary-actions{display:flex;align-items:center;gap:8px}.icon-button{border:1px solid var(--line);background:transparent;border-radius:50%;width:38px;height:38px;display:grid;place-items:center;color:var(--ink)}.icon-button svg{width:18px;height:18px;stroke:currentColor;stroke-width:1.7;fill:none}.more{display:flex;margin:10px auto 20px}.empty-state{padding:50px 20px;border:1px dashed #ceccc4;border-radius:8px;color:var(--muted);text-align:center}.compact-head{margin:20px 0 25px}.compact-head .display{font-size:clamp(54px,7vw,85px)}.map-shell{position:relative;height:clamp(370px,60vh,700px);border-radius:10px;overflow:hidden;background:#e8e9e4}.map-shell #map-canvas{height:100%;width:100%;position:relative;z-index:2}.map-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;background:radial-gradient(#dfe7da,#e9e8e0);z-index:1;text-align:center;padding:30px}.map-placeholder p:last-child{font:400 26px var(--serif)}.map-tools{position:absolute;right:18px;top:18px;z-index:510;display:flex;flex-direction:column;gap:9px}.map-control{border:0;border-radius:9px;background:white;box-shadow:0 5px 20px #0002;width:47px;height:47px;font-size:23px}.leaflet-container{font-family:var(--sans)!important}.leaflet-popup-content-wrapper{border-radius:12px!important}.leaflet-popup-content{font-size:13px;line-height:1.7}.map-credit{margin-top:9px}.map-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.map-row{padding:18px 20px;border:1px solid var(--line);border-radius:9px;background:var(--paper);text-align:left;display:flex;justify-content:space-between;gap:10px;align-items:center}.map-row h3{font:400 21px var(--serif);margin:0 0 5px}.map-row span{font-size:12px;color:var(--muted)}.map-row strong{font:400 24px var(--serif);white-space:nowrap}.list-counter{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--pink);font-weight:700;margin:40px 0 20px}.compact-grid .venue-photo{height:100px}.compact-grid .venue-body h3{font-size:25px}.profile-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.85fr);gap:70px;align-items:center;margin:35px 0}.radar-shell{max-width:490px;width:100%;margin:auto}.radar-shell svg{width:100%;overflow:visible}.taste-scores{display:grid;grid-template-columns:1fr 1fr;gap:22px}.score-row{padding:5px 0 12px;border-bottom:1px solid var(--line)}.score-row span{display:block;font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}.score-row strong{font:400 46px var(--serif)}.privacy{margin-top:65px;border-top:1px solid var(--line);padding-top:32px;max-width:730px}.privacy h2{font:400 38px var(--serif);margin:0 0 12px}.privacy p:not(.kicker){line-height:1.7;color:var(--muted);font-size:14px}.danger{color:#9f2630}.attribution{padding:65px 0 10px;font:400 20px var(--serif)}.attribution span{font:500 10px var(--sans);letter-spacing:.07em;color:var(--muted)}.bottom-nav{position:fixed;z-index:999;bottom:0;left:0;right:0;display:flex;justify-content:center;gap:14px;padding:13px 12px calc(13px + env(safe-area-inset-bottom));background:#f5f2ebef;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);border-top:1px solid #e3ded7}.bottom-nav button{border:0;background:transparent;color:#96948f;display:flex;flex-direction:column;align-items:center;gap:5px;min-width:69px;font-size:10px;font-weight:700}.bottom-nav button[aria-current="page"]{color:var(--ink)}.bottom-nav button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.toast{position:fixed;bottom:calc(88px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%,25px);background:var(--ink);color:white;padding:13px 19px;border-radius:90px;z-index:1500;font-size:13px;pointer-events:none;opacity:0;transition:transform .25s,opacity .25s;box-shadow:0 9px 35px #0003;max-width:90vw;text-align:center}.toast.visible{opacity:1;transform:translate(-50%,0)}
@media(min-width:800px){.bottom-nav{max-width:500px;left:50%;right:auto;transform:translateX(-50%);bottom:19px;border:1px solid #dedbd4;border-radius:99px;padding:12px 19px;background:#fffcf5e8;box-shadow:0 9px 32px #2222}.bottom-nav button{flex-direction:row;min-width:90px;gap:8px;font-size:12px}.screen.app-screen{padding-bottom:145px}}
@media(max-width:950px){.venue-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.heading-line{display:block}.side-intro{max-width:none}.profile-layout{gap:25px}}
@media(max-width:600px){.masthead{height:68px;padding:0 20px}.wordmark{font-size:20px}.logo-n{height:34px;width:34px;font-size:24px}.logo-dot{font-size:27px;top:-12px}.location-label{font-size:10px}.screen{min-height:calc(100dvh - 68px);padding:28px 20px 140px}.display{font-size:clamp(48px,13vw,67px)}.welcome-photo{height:33vh;min-height:190px;margin:-8px 0 25px}.welcome-photo-label{left:20px;bottom:18px}.welcome-copy .display{font-size:clamp(52px,12.9vw,72px)}.welcome-copy .btn{width:100%;margin:0}.welcome-copy .text-button{width:100%;margin-top:6px}.intro{font-size:15px}.feature-photo{height:235px;margin:20px 0 42px}.feature-overlay{bottom:20px;left:21px}.feature-overlay p{font-size:39px}.catalogue-head h2{font-size:34px}.lens{gap:5px}.lens-button{padding:12px 13px;font-size:12px}.filter-row{flex-direction:column}.filter-row select{max-width:100%;width:100%}.venue-grid{grid-template-columns:1fr;gap:15px}.venue-photo{height:180px}.venue-card{flex-direction:row;min-height:200px}.venue-card .venue-photo{height:auto;width:38%;flex:none;padding:9px}.venue-card .venue-photo .photo-note{font-size:8px}.venue-card .venue-body{padding:16px 13px 13px}.venue-body h3{font-size:24px;margin:8px 0}.venue-meta{font-size:9px}.venue-address{font-size:11px;margin-bottom:12px}.match{padding-top:9px}.match strong{font-size:29px}.match .match-label{font-size:10px}.venue-actions{margin-top:10px}.save-button{padding:9px 12px;font-size:11px}.icon-button{height:33px;width:33px}.icon-button svg{height:16px;width:16px}#name-screen,#quiz{min-height:calc(100dvh - 68px)}.quiz-head{font-size:46px}.progress{margin:15px 0 35px}.quiz-answers{grid-template-columns:1fr;gap:9px}.answer{padding:17px;min-height:64px}.map-shell{height:54vh;min-height:350px}.map-list{grid-template-columns:1fr}.profile-layout{grid-template-columns:1fr;gap:8px}.radar-shell{max-width:330px}.taste-scores{gap:12px}.score-row strong{font-size:34px}.bottom-nav{gap:0;justify-content:space-around}.bottom-nav button{min-width:58px}.compact-grid .venue-photo{height:auto}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
.nb-map-pin{background:none;border:0}.nb-map-disc{width:38px;height:38px;border-radius:50%;background:#e8343f;color:#fff;border:3px solid #fff;display:grid;place-items:center;box-shadow:0 7px 17px #0003;font:700 12px 'DM Sans','Helvetica Neue',sans-serif;transition:transform .18s}.nb-map-pin:hover .nb-map-disc{transform:scale(1.12)}
/* NEIGHBOURHOODS V4.1 — editorial, photo-led map parity.
   Map first. White location dots. Persistent frosted photographic deck.
   Touch is handled by native scroll-snap; no card DOM regeneration mid-swipe. */
#map-view{padding-bottom:calc(110px + env(safe-area-inset-bottom));}
#map-view .compact-head{margin:0 0 15px}
#map-view .compact-head .display{font-size:clamp(37px,5vw,65px);margin-bottom:8px}
#map-view .compact-head .intro{font-size:13px;line-height:1.4;max-width:730px;margin-bottom:15px}
.editorial-map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:9px}
.editorial-map-toolbar p{font-family:var(--serif);font-size:25px;margin:5px 0 0}
.editorial-map-eyebrow{font-size:10px;letter-spacing:.14em;font-weight:700;color:var(--pink)}
.editorial-area-label{font-size:11px;display:flex;align-items:center;gap:8px;color:#777}
.editorial-area-label select{max-width:230px;border:0;border-radius:24px;color:#242424;background:#fffdfa;padding:12px 34px 12px 15px;box-shadow:0 4px 24px #00000012;font-size:13px;appearance:auto}
.editorial-map-shell{height:clamp(480px,69vh,770px);border-radius:22px;isolation:isolate;background:#e4e4d9;overflow:hidden;box-shadow:0 19px 62px #201c1812}
.editorial-map-shell .leaflet-container{z-index:2!important;background:#dfe6dd}
/* The website's restrained, warm map treatment, not vivid generic Street tiles. */
.editorial-map-shell .leaflet-tile-pane{filter:grayscale(.58) sepia(.21) saturate(.68) contrast(.94) brightness(1.035)}
.editorial-map-shell .map-tools{top:18px;right:18px;z-index:510}
.editorial-map-shell .map-control{border-radius:50%;width:43px;height:43px;background:rgba(255,253,248,.94);backdrop-filter:blur(18px);box-shadow:0 5px 24px #0002;font-size:21px}
.editorial-map-shell .leaflet-control-zoom{border:0!important;box-shadow:0 3px 20px #0002!important;border-radius:14px!important;overflow:hidden}
.editorial-map-shell .leaflet-control-zoom a{background:rgba(255,253,248,.92)!important;color:#242424!important;border:0!important}
.editorial-map-shell .leaflet-control-attribution{background:rgba(255,253,248,.7)!important;font-size:9px!important}
.nb-editorial-pin{background:transparent!important;border:0!important;z-index:1!important;outline-offset:4px}
.nb-pin-dot{display:block;width:24px;height:24px;border:5px solid #fff;box-shadow:0 4px 15px #0004,0 0 0 1px rgba(0,0,0,.08);border-radius:50%;background:#fff;position:absolute;top:5px;left:5px;transition:background .24s,box-shadow .24s,transform .24s;transform:translateZ(0)}
.nb-editorial-pin.is-selected .nb-pin-dot{background:var(--pink);box-shadow:0 0 0 5px #e8343f26,0 7px 21px #0004;transform:scale(1.15)}
.nb-editorial-pin:focus-visible .nb-pin-dot{outline:3px solid var(--ink)}
.map-dock{position:absolute;z-index:510;left:0;right:0;bottom:14px;display:flex;align-items:stretch;gap:16px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:max(16px,calc((100% - 340px)/2));padding:10px max(16px,calc((100% - 340px)/2)) 14px;scrollbar-width:none;-webkit-overflow-scrolling:touch;touch-action:pan-x;contain:layout style}
.map-dock::-webkit-scrollbar{display:none}
.dock-card{width:340px;min-width:340px;height:248px;position:relative;scroll-snap-align:center;flex:0 0 340px;overflow:hidden;background:rgba(252,249,242,.93);border:1px solid #ffffffb3;border-radius:18px;box-shadow:0 11px 38px #0003;backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);transform:translateZ(0);will-change:transform;transition:box-shadow .23s,background .23s}
.dock-card.is-selected{box-shadow:0 18px 48px #0004;background:rgba(255,253,249,.97)}
.dock-photo{position:relative;background:linear-gradient(135deg,#303333,#6f5d51);height:145px;overflow:hidden}
.dock-photo img{width:100%;height:100%;object-fit:cover;display:block}
.dock-photo.missing-photo:after{content:'Neighbourhoods';position:absolute;inset:0;display:grid;place-items:center;color:#f5f2eb;font:24px var(--serif)}
.dock-copy{height:102px;padding:11px 15px 10px;display:flex;flex-direction:column}
.dock-overline{font:700 9px var(--sans);letter-spacing:.115em;text-transform:uppercase;color:#8a7771;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dock-copy h3{font:400 23px/1.08 var(--serif);margin:5px 75px 0 0;letter-spacing:-.025em;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.dock-foot{display:flex;align-items:center;justify-content:space-between;gap:9px;margin-top:auto;min-height:27px}
.dock-rating{color:#746f69;font-size:11px}
.dock-details{border:0;border-radius:24px;background:#1e2020;color:white;padding:8px 14px;line-height:1;font-size:11px;font-weight:600}
.dock-percent{position:absolute;right:13px;top:12px;border-radius:50%;width:59px;height:59px;background:#e8343f;color:white;display:grid;place-items:center;box-shadow:0 8px 26px #0004;font-size:15px;font-weight:700}
.editorial-map-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:9px 0 0}
.editorial-map-foot p{font-size:12px;color:#6c706d;margin:0;line-height:1.5}
.editorial-map-foot .link-button{white-space:nowrap;font-size:12px}
.map-credit{color:#8a8882;margin:8px 0 2px}
.details-button{background:transparent;border:1px solid #ddd6cf;border-radius:99px;padding:10px 15px;font-size:12px;font-weight:700}
.venue-photo[role="button"]{cursor:pointer}
body.sheet-open{overflow:hidden}
.venue-sheet{position:fixed;inset:0;z-index:2200;display:flex;align-items:center;justify-content:center;padding:25px;isolation:isolate}
.venue-sheet-scrim{position:absolute;inset:0;background:#191b1bbf;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.venue-sheet-panel{position:relative;z-index:1;width:min(590px,100%);max-height:min(90vh,950px);overflow-y:auto;overscroll-behavior:contain;background:#f5f2eb;border-radius:24px;box-shadow:0 25px 85px #0005;animation:sheet-appear .38s cubic-bezier(.18,.81,.21,1) both}
@keyframes sheet-appear{from{opacity:.7;transform:translateY(20px) scale(.99)}to{opacity:1;transform:none}}
.venue-sheet-top{display:flex;align-items:center;justify-content:space-between;padding:17px 24px 12px}
.venue-sheet-top .kicker{margin:0;font-size:10px}
.sheet-close{border:0;width:38px;height:38px;border-radius:50%;background:#fffdf8;color:#292929;font-size:25px}
.sheet-photo{height:235px;background:linear-gradient(135deg,#41403d,#b6aba0);position:relative;overflow:hidden}
.sheet-photo img{height:100%;width:100%;object-fit:cover}
.sheet-photo.missing-photo:after{content:'Neighbourhoods';position:absolute;inset:0;display:grid;place-items:center;color:white;font:36px var(--serif)}
.sheet-heading{padding:24px 28px 0}
.sheet-overline{font-size:10px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:#8f6769}
.sheet-heading h2{font:400 clamp(42px,6vw,62px)/1.05 var(--serif);margin:7px 0 13px;letter-spacing:-.04em}
.sheet-match{display:flex;align-items:center;gap:11px;margin-top:12px}
.sheet-match strong{font:400 47px var(--serif);color:var(--pink)}
.sheet-match span{font-size:12px;color:#716c67}
.sheet-intro{padding:0 28px 20px;font-size:13px;color:#665e59}
.sheet-intro span{display:inline-block;margin-right:18px}
.sheet-address{margin:12px 0 0;line-height:1.55}
.sheet-section{border-top:1px solid #dfd8d0;padding:20px 28px}
.sheet-section h3{font:400 26px var(--serif);margin:0 0 9px}
.sheet-section p{font-size:13px;line-height:1.65;color:#67645f;margin:5px 0}
.sheet-facts{padding:0 28px 18px;display:grid;grid-template-columns:1fr 1fr;gap:14px}
.sheet-fact-key{display:block;font-size:10px;letter-spacing:.08em;color:#9b8f88;text-transform:uppercase}
.sheet-fact strong{font-size:13px;line-height:1.5;font-weight:500}
.sheet-links{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:15px 28px 0}
.sheet-link{display:grid;place-items:center;text-decoration:none;background:#292929;color:#fff;padding:15px 10px;font-size:12px;border-radius:50px;font-weight:600}
.sheet-link.apple{background:var(--pink)}.sheet-link.website{grid-column:1/-1;background:transparent;color:#292929;border:1px solid #c9c1b9}
.sheet-actions{display:flex;gap:14px;align-items:center;padding:18px 28px 29px}
.sheet-dismiss{border:0;background:transparent;color:#817570;font-size:12px}
@media(max-width:640px){
 #map-view{padding:14px 0 calc(100px + env(safe-area-inset-bottom))}
 #map-view .compact-head{padding:0 21px}
 #map-view .compact-head .display{font-size:43px}
 #map-view .compact-head .intro{font-size:12px;margin-bottom:8px}
 .editorial-map-toolbar{padding:5px 20px 10px;gap:5px}
 .editorial-map-toolbar p{font-size:18px}
 .editorial-map-eyebrow{font-size:8px}
 .editorial-area-label{font-size:0}
 .editorial-area-label select{font-size:12px;max-width:150px;padding:11px 8px}
 .editorial-map-shell{height:calc(100dvh - 270px);min-height:440px;border-radius:0}
 .map-dock{bottom:14px;gap:13px;padding:8px 22px 16px;scroll-padding-inline:22px}
 .dock-card{width:calc(100vw - 44px);min-width:calc(100vw - 44px);flex-basis:calc(100vw - 44px);height:239px;border-radius:17px}
 .dock-photo{height:139px}
 .dock-copy{height:100px}
 .editorial-map-foot{padding:8px 20px 0}
 .editorial-map-foot p{font-size:11px}
 .editorial-map-foot .link-button{font-size:11px}
 .venue-sheet{padding:0;align-items:flex-end}
 .venue-sheet-panel{max-height:94dvh;width:100%;border-radius:24px 24px 0 0;padding-bottom:env(safe-area-inset-bottom);animation:sheet-rise .37s cubic-bezier(.16,.86,.22,1) both}
 @keyframes sheet-rise{from{transform:translateY(100%)}to{transform:translateY(0)}}
 .sheet-photo{height:35dvh;min-height:195px;max-height:300px}
 .sheet-heading{padding:18px 22px 0}
 .sheet-intro{padding:0 22px 14px}
 .sheet-section{padding:16px 22px}
 .sheet-facts{padding:0 22px 16px}
 .sheet-links{padding:12px 22px 0}
 .sheet-actions{padding:18px 22px 24px}
}
@media(prefers-reduced-motion:reduce){.dock-card,.nb-pin-dot,.venue-sheet-panel{animation:none!important;transition:none!important}.map-dock{scroll-behavior:auto!important}}

/* Neighbourhoods V4.2 — editorial icons, individual taste narratives and collections. */
.nh-icon{width:44px;height:44px;min-width:44px;display:inline-grid;place-items:center;border:0;border-radius:50%;background:rgba(250,248,241,.94);color:#292b2b;box-shadow:0 3px 14px rgba(0,0,0,.13);backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);cursor:pointer;transition:background .19s,color .19s,transform .26s cubic-bezier(.18,.8,.24,1),box-shadow .2s;touch-action:manipulation}
.nh-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.nh-icon:active{transform:scale(.88);color:var(--pink)}
.nh-icon:hover{color:var(--pink);box-shadow:0 4px 18px #0003}
.nh-icon.save-toggle.is-saved{color:var(--pink);background:#fff7f4;box-shadow:0 3px 20px #e8343f30}
.nh-icon.save-toggle.is-saved svg path{fill:var(--pink);stroke:var(--pink)}
.venue-photo{isolation:isolate}
.photo-tap{position:absolute;inset:0;border:0;background:none;z-index:1;width:100%;height:100%;cursor:pointer}
.photo-tools{position:absolute;z-index:4;top:11px;right:11px;display:flex;gap:7px}
.venue-photo .photo-note{z-index:2;pointer-events:none}
.venue-actions{justify-content:flex-end;margin-top:12px}
.venue-actions .nh-icon{width:38px;height:38px;min-width:38px;box-shadow:none;background:transparent;border:1px solid #e5dfd6}
.venue-actions .hide-toggle:active,.sheet-actions .hide-toggle:active{color:var(--pink)}
.venue-card .match .match-label{font-size:12px;line-height:1.45;max-width:230px}
.venue-card .match{margin-top:auto}
.dock-tools{position:absolute;z-index:5;top:12px;left:12px;display:flex;gap:7px}
.dock-foot{gap:10px;justify-content:space-between}
.dock-fit{font-size:10px;font-weight:500;color:#84766f;max-width:195px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:right}
.dock-copy h3{margin-right:0}
.sheet-heading-top{display:flex;align-items:center;justify-content:space-between;gap:15px}
.sheet-heading-top .nh-icon{box-shadow:none;background:#fffdfa;border:1px solid #e2dcd5;flex:none}
.sheet-heading h2{margin-top:11px}
.persona-eyebrow{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--pink);display:block;margin-bottom:8px}
.sheet-section .fit-editorial{font:400 clamp(18px,2vw,21px)/1.58 var(--serif);color:#34332f;max-width:56ch;margin:11px 0 0}
.collection-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0 13px}
.collection-chip{display:flex;align-items:center;justify-content:flex-start;gap:11px;min-height:52px;border:1px solid #ded7ce;border-radius:15px;padding:11px 14px;background:#fffdf8;color:#333;font-size:12px;font-weight:650;text-align:left;transition:background .2s,color .2s,transform .22s}
.collection-chip svg{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.collection-chip.is-member{background:#ffe9e9;border-color:#f3b5b8;color:var(--pink)}
.collection-chip.is-member svg path{fill:#e8343f17;stroke:var(--pink)}
.collection-chip:active{transform:scale(.965)}
.sheet-section .collection-note,.list-privacy-note{font:400 11px/1.6 var(--sans);color:#827c75}
.sheet-actions{justify-content:flex-end;padding-top:7px}
.sheet-actions .nh-icon{box-shadow:none;border:1px solid #dfd7cf;background:transparent}
.list-tabs{display:flex;gap:12px;align-items:stretch;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:3px 1px 15px;margin:0 0 18px;scroll-snap-type:x proximity}
.list-tabs::-webkit-scrollbar{display:none}
.list-tab{scroll-snap-align:start;display:flex;gap:10px;align-items:center;flex:1 0 auto;min-height:62px;border:0;border-bottom:2px solid transparent;background:transparent;color:#74726d;text-align:left;padding:10px 15px 14px;font-size:13px;font-weight:700;white-space:nowrap}
.list-tab svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
.list-tab.active{color:var(--pink);border-bottom-color:var(--pink)}
.list-tab.active svg{stroke:var(--pink)}
.list-tab-count{margin-left:auto;font-size:11px;background:#e8e4dc;color:#716962;border-radius:99px;padding:4px 8px}
.list-tab.active .list-tab-count{background:#fce6e7;color:var(--pink)}
.list-privacy-note{margin-top:15px}
@media(max-width:640px){
 .photo-tools{top:8px;right:8px;gap:5px}
 .photo-tools .nh-icon{width:44px;height:44px;min-width:44px}
 .photo-tools .nh-icon svg{width:17px;height:17px}
 .dock-tools .nh-icon{width:44px;height:44px;min-width:44px}
 .list-tabs{margin-inline:-6px;gap:1px}
 .list-tab{flex:0 0 auto;padding:9px 12px 12px;min-height:52px;font-size:12px}
 .collection-picker{gap:8px}
 .collection-chip{padding:10px 9px;font-size:11px;gap:8px}
 .venue-card .match .match-label{font-size:11px}
 .sheet-section .fit-editorial{font-size:19px;line-height:1.53}
}
@media(prefers-reduced-motion:reduce){.nh-icon,.collection-chip{transition:none!important}}


/* Neighbourhoods V4.3 — immersive viewport map and Safari glass navigation.
   Only the discover home carries a masthead. Controls float above full-bleed map.
   Browser CSS approximates Apple Liquid Glass; it is not UIKit's native material. */
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
body.view-map{overflow:hidden;overscroll-behavior:none}
body.view-map #app{max-width:none}
body.view-map #main{height:100dvh}
#map-view{position:fixed;inset:0;z-index:20;display:block;padding:0!important;margin:0;width:100%;height:100vh;height:100dvh;min-height:0;max-width:none;overflow:hidden;overscroll-behavior:none;background:#dedfd8}
#map-view .editorial-map-shell{position:absolute;inset:0;width:100%;height:100%!important;min-height:0!important;max-height:none!important;isolation:isolate;overflow:hidden;border:0!important;border-radius:0!important;box-shadow:none!important;background:#dddcd1}
#map-view #map-canvas{position:absolute;inset:0;z-index:2;width:100%;height:100%}
#map-view .map-placeholder{z-index:1}
#map-view .editorial-map-toolbar{position:absolute;z-index:600;top:calc(12px + env(safe-area-inset-top));left:clamp(12px,3.2vw,34px);right:clamp(12px,3.2vw,34px);display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0;padding:0;pointer-events:none}
#map-view .editorial-map-toolbar>*{pointer-events:auto}
#map-view .map-city-label{display:flex;flex-direction:column;justify-content:center;padding:10px 17px 11px;background:rgba(252,250,245,.79);-webkit-backdrop-filter:blur(26px) saturate(165%);backdrop-filter:blur(26px) saturate(165%);border-radius:23px;box-shadow:0 6px 26px #2323231c,inset 0 1px 1px #ffffffb5}
#map-view .map-city-kicker{font:700 9px/1.3 var(--sans);letter-spacing:.13em;color:#8b8078}
#map-view .map-city-label p{font:400 22px/1.1 var(--serif);margin:3px 0 0;color:#222}
#map-view .editorial-area-label{font-size:0;flex:none;display:block}
#map-view .editorial-area-label select{appearance:auto;-webkit-appearance:menulist;min-height:49px;max-width:min(42vw,210px);width:auto;min-width:105px;padding:0 12px;border:0!important;outline-offset:3px;border-radius:24px;background:rgba(252,250,245,.83);color:#252525;-webkit-backdrop-filter:blur(26px) saturate(165%);backdrop-filter:blur(26px) saturate(165%);box-shadow:0 6px 26px #2323231c,inset 0 1px 1px #ffffffb5;font:600 13px var(--sans)}
#map-view .map-tools{position:absolute;z-index:610;top:calc(92px + env(safe-area-inset-top));right:clamp(12px,3.2vw,34px);display:flex;flex-direction:column;gap:10px}
#map-view .map-control{display:grid;place-items:center;width:47px;height:47px;border:0!important;outline-offset:3px;border-radius:50%;background:rgba(252,250,245,.84);color:#242424;box-shadow:0 7px 28px #14141428,inset 0 1px 1px #ffffffab;-webkit-backdrop-filter:blur(24px) saturate(165%);backdrop-filter:blur(24px) saturate(165%);font-size:0;touch-action:manipulation;transition:transform .18s,color .2s}
#map-view .map-control svg{width:23px;height:23px;stroke:currentColor;stroke-width:1.9;fill:none;stroke-linecap:round;stroke-linejoin:round}
#map-view .map-control .location-arrow{fill:currentColor;stroke:none;width:22px;height:22px;transform:rotate(-8deg)}
#map-view .map-control:active{transform:scale(.92)}
#map-view .map-control.has-location{color:var(--pink)}
#map-view .map-control[aria-busy="true"]{opacity:.6}
#map-view .leaflet-control-zoom{display:none!important}
#map-view .leaflet-control-attribution{font-size:9px!important;background:rgba(252,250,245,.60)!important;color:#5b5b57!important;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
#map-view .map-credit{display:none}
#map-view .map-dock{position:absolute;z-index:610;left:0;right:0;top:auto;bottom:calc(104px + env(safe-area-inset-bottom));height:auto;display:flex;gap:13px;align-items:stretch;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding-inline:max(16px,calc((100% - 360px)/2));padding:10px max(16px,calc((100% - 360px)/2)) 8px;margin:0;border:0;background:none;scrollbar-width:none;touch-action:pan-x;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;contain:layout style}
#map-view .dock-card{flex:0 0 min(360px,calc(100vw - 36px));width:min(360px,calc(100vw - 36px));min-width:min(360px,calc(100vw - 36px));height:clamp(190px,29dvh,257px);border:0!important;border-radius:22px;box-shadow:0 14px 36px #0b0b0b3b;overflow:hidden;background:#fffcf7}
#map-view .dock-card.is-selected{box-shadow:0 18px 43px #08080842}
#map-view .dock-photo{height:60%;min-height:0}
#map-view .dock-copy{height:40%;min-height:0;padding:10px 15px 12px}
#map-view .dock-copy h3{font-size:clamp(19px,3.6vw,24px);margin:4px 0 0;max-width:100%}
#map-view .dock-foot{min-height:20px;gap:8px}
#map-view .dock-tools{top:11px;left:11px}
#map-view .dock-percent{width:52px;height:52px;font-size:13px}
#map-view .map-next-picks{position:absolute;z-index:615;bottom:calc(100px + env(safe-area-inset-bottom) + clamp(190px,29dvh,257px) + 21px);left:50%;transform:translateX(-50%);padding:10px 16px;border:0;border-radius:99px;background:rgba(252,250,245,.83);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);box-shadow:0 4px 19px #0002;color:#242424;font:700 11px var(--sans);white-space:nowrap}
#map-view .map-next-picks:active{transform:translateX(-50%) scale(.97)}
/* Floating navigation is its own translucent control layer, not a solid page footer. */
.bottom-nav{position:fixed!important;z-index:1000;bottom:calc(12px + env(safe-area-inset-bottom))!important;left:50%!important;right:auto!important;transform:translateX(-50%);display:flex;align-items:center;justify-content:space-between;width:min(calc(100% - 28px),450px);max-width:450px;padding:6px!important;gap:2px!important;border:0!important;border-radius:32px;background:rgba(248,248,245,.69);-webkit-backdrop-filter:blur(29px) saturate(175%);backdrop-filter:blur(29px) saturate(175%);box-shadow:0 10px 38px #14141436,inset 0 1px 1px #ffffffde,inset 0 -1px 0 #ffffff7a;isolation:isolate}
.bottom-nav::before{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;box-shadow:inset 0 1px 2px #fff9;z-index:-1}
.bottom-nav button{flex:1 1 0;min-width:0!important;min-height:61px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:7px 3px;border:0!important;border-radius:26px;background:transparent;color:#777974;font:600 10px/1.1 var(--sans);letter-spacing:0;touch-action:manipulation;transition:background .25s cubic-bezier(.16,1,.3,1),color .2s,transform .24s}
.bottom-nav button[aria-current="page"]{background:rgba(255,255,255,.62);color:#202323;box-shadow:0 3px 14px #0000000d,inset 0 1px 1px #fff8}
.bottom-nav button:active{transform:scale(.94)}
.bottom-nav button svg{width:23px;height:23px;stroke-width:1.7}
.bottom-nav button[aria-current="page"] svg{stroke-width:2}
.toast{bottom:calc(108px + env(safe-area-inset-bottom))}
/* Existing approved cards and detail sheets preserve their own layout and photo. */
@media(max-width:640px){
 #map-view{padding:0!important}
 #map-view .editorial-map-toolbar{top:calc(10px + env(safe-area-inset-top));left:13px;right:13px;padding:0}
 #map-view .map-city-label{padding:9px 13px 10px;border-radius:20px}
 #map-view .map-city-label p{font-size:20px}
 #map-view .editorial-area-label select{font-size:12px;padding:0 10px;min-height:48px;max-width:38vw}
 #map-view .map-tools{top:calc(79px + env(safe-area-inset-top));right:13px}
 #map-view .map-dock{bottom:calc(96px + env(safe-area-inset-bottom));gap:12px;scroll-padding-inline:18px;padding:8px 18px 10px;height:auto}
 #map-view .dock-card{flex-basis:calc(100vw - 36px);width:calc(100vw - 36px);min-width:calc(100vw - 36px);height:clamp(195px,29dvh,244px);border-radius:21px}
 #map-view .dock-photo{height:60%}
 #map-view .dock-copy{height:40%}
 #map-view .map-next-picks{bottom:calc(93px + env(safe-area-inset-bottom) + clamp(195px,29dvh,244px) + 21px)}
 .bottom-nav{bottom:calc(10px + env(safe-area-inset-bottom))!important;width:calc(100% - 24px);max-width:440px;border-radius:30px}
 .bottom-nav button{min-height:60px;font-size:10px}
 .bottom-nav button svg{width:22px;height:22px}
}
@media(max-height:600px) and (orientation:landscape){
 #map-view .map-dock{bottom:calc(77px + env(safe-area-inset-bottom))}
 #map-view .dock-card{height:clamp(128px,37dvh,190px)}
 #map-view .dock-photo{height:57%}
 #map-view .dock-copy{height:43%;padding:6px 12px}
 #map-view .map-next-picks{display:none}
 .bottom-nav button{min-height:47px}
}
@media(prefers-reduced-transparency:reduce){
 .bottom-nav,#map-view .map-control,#map-view .map-city-label,#map-view .editorial-area-label select,#map-view .map-next-picks{background:#fbfaf6;-webkit-backdrop-filter:none;backdrop-filter:none}
}
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
 .bottom-nav,#map-view .map-control,#map-view .map-city-label,#map-view .editorial-area-label select,#map-view .map-next-picks{background:rgba(250,248,243,.97)}
}
@media(prefers-reduced-motion:reduce){.bottom-nav button,#map-view .map-control{transition:none!important}}

/* V4.4 — information belongs with the copy, never stamped across photography.
   Image, venue facts, MICHELIN distinction and icon actions are separate layers. */
.venue-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.venue-card,.compact-grid .venue-card{display:flex;flex-direction:column!important;min-height:0;height:auto;border:0;border-radius:19px;background:#fffdf9;overflow:hidden;box-shadow:0 8px 28px rgba(38,32,23,.085)}
.venue-card .venue-photo,.compact-grid .venue-card .venue-photo{position:relative;display:block;flex:none;width:100%;height:clamp(194px,21vw,265px);min-height:0;margin:0;padding:0;overflow:hidden;background:#3d3830}
.venue-card .venue-photo img,.compact-grid .venue-card .venue-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.venue-card .venue-photo .photo-tap{z-index:2}
.venue-card .venue-photo .photo-tools,.venue-card .venue-photo .photo-note{display:none!important}
.venue-card .venue-body,.compact-grid .venue-card .venue-body{flex:1;padding:17px 19px 16px;min-width:0;display:flex;flex-direction:column;align-items:stretch}
.venue-card .venue-body .venue-meta{color:#9b514d;font-size:10px;letter-spacing:.115em;line-height:1.45;font-weight:700;text-transform:uppercase}
.venue-card .venue-body h3,.compact-grid .venue-card .venue-body h3{margin:7px 0 11px;font:400 clamp(27px,2.7vw,37px)/1.06 var(--serif);color:#242323;letter-spacing:-.035em}
.venue-facts{display:flex;flex-wrap:wrap;align-items:center;gap:6px 11px;min-height:26px;color:#514d47}
.venue-fact{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;max-width:100%;font:600 11px/1.35 var(--sans);color:#514d47;text-decoration:none}
.venue-fact.venue-price{font-weight:750;color:#282b2b}
.venue-fact.venue-price.is-unverified{font-weight:400;color:#9c9690;font-size:10px}
.venue-fact.venue-google-rating{color:#44413d}
.venue-fact.venue-michelin{color:#9e323c;gap:6px;font-size:10px;font-weight:750}
.venue-fact.venue-michelin:hover{text-decoration:underline}
.venue-michelin img{width:16px;height:16px;object-fit:contain;display:inline-block;flex:none;filter:none}
.venue-card .venue-address{font-size:11px;line-height:1.46;color:#7a746d;margin:9px 0 4px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.venue-card .match{margin-top:13px;padding-top:11px;border-top:1px solid #eeeae4;gap:8px;min-height:0}
.venue-card .match strong{font:400 33px/1 var(--serif);color:var(--pink)}
.venue-card .match .match-label{font-size:11px;max-width:none;line-height:1.35}
.venue-actions.venue-actions-below{display:flex;align-items:center;justify-content:space-between;gap:11px;margin-top:auto;padding-top:15px;min-height:56px}
.venue-actions-primary,.venue-actions-secondary{display:flex;gap:8px;align-items:center}
.venue-actions-below .nh-icon{height:43px;width:43px;min-width:43px;border:0;background:#f5f2ed;box-shadow:none;color:#313130;border-radius:50%;display:inline-grid;place-items:center}
.venue-actions-below .nh-icon:hover{box-shadow:0 4px 15px #0001;color:var(--pink)}
.venue-actions-below .nh-icon.save-toggle.is-saved{color:var(--pink);background:#fff0f0;box-shadow:0 2px 10px #e8343f1e}
.venue-actions-below .nh-icon:focus-visible,.dock-tools .nh-icon:focus-visible{outline:2px solid var(--pink);outline-offset:3px}
.venue-actions-below .nh-icon svg{width:20px;height:20px}
.sheet-intro .venue-facts{gap:11px;margin:4px 0 8px}
.sheet-intro .venue-fact{margin:0}
.sheet-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
/* Map photo remains uninterrupted; MICHELIN and actions live underneath it. */
#map-view .dock-card{display:flex;flex-direction:column}
#map-view .dock-photo{position:relative;flex:0 0 49%!important;height:49%!important;min-height:0!important}
#map-view .dock-copy{flex:1 1 auto;height:51%!important;min-height:0!important;display:flex;flex-direction:column;padding:9px 14px 9px!important;overflow:hidden}
#map-view .dock-copy h3{margin:2px 0 2px!important;font-size:clamp(19px,3.6vw,23px);line-height:1.07}
#map-view .dock-copy .venue-facts{flex-wrap:nowrap;gap:8px;min-height:20px;overflow:hidden}
#map-view .dock-copy .venue-fact{font-size:10px;overflow:hidden;text-overflow:ellipsis}
#map-view .dock-copy .venue-michelin{font-size:9px;flex-shrink:0}
#map-view .dock-copy .venue-michelin img{width:13px;height:13px}
#map-view .dock-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;min-height:38px}
#map-view .dock-bottom .dock-fit{font-size:10px;color:#7f746d;min-width:0;max-width:none;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}
#map-view .dock-tools{position:static!important;inset:auto!important;display:flex;gap:7px;flex:0 0 auto;z-index:auto}
#map-view .dock-tools .nh-icon{width:37px;height:37px;min-width:37px;border-radius:50%;border:0;box-shadow:none;background:#f0eee9;color:#282828}
#map-view .dock-tools .nh-icon svg{width:18px;height:18px}
#map-view .dock-tools .nh-icon.save-toggle.is-saved{background:#ffe9e9;color:var(--pink)}
#map-view .dock-percent{top:10px;right:10px;width:43px;height:43px;font-size:12px}
@media(max-width:950px){.venue-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){
 .venue-grid,.compact-grid{grid-template-columns:1fr;gap:18px}
 .venue-card,.compact-grid .venue-card{display:flex;flex-direction:column!important;min-height:0!important;max-width:100%}
 .venue-card .venue-photo,.compact-grid .venue-card .venue-photo{height:clamp(194px,54vw,260px)!important;width:100%!important;min-width:0!important;flex:none!important;padding:0!important}
 .venue-card .venue-body,.compact-grid .venue-card .venue-body{padding:15px 17px 14px!important;width:100%!important;flex:1}
 .venue-card .venue-body h3,.compact-grid .venue-card .venue-body h3{font-size:30px;margin:6px 0 9px}
 .venue-card .venue-meta{font-size:10px}
 .venue-card .venue-address{font-size:11px;margin:8px 0 3px}
 .venue-card .match{padding-top:9px;margin-top:10px}
 .venue-actions.venue-actions-below{margin-top:5px;padding-top:10px}
 #map-view .dock-card{height:clamp(220px,32dvh,255px)!important}
 #map-view .map-next-picks{bottom:calc(93px + env(safe-area-inset-bottom) + clamp(220px,32dvh,255px) + 21px)!important}
 #map-view .dock-photo{height:47%!important;flex-basis:47%!important}
 #map-view .dock-copy{height:53%!important;padding:8px 12px!important}
 #map-view .dock-copy h3{font-size:21px}
 #map-view .dock-tools .nh-icon{width:36px;min-width:36px;height:36px}
 .sheet-intro .venue-facts{gap:9px}
}
@media(max-height:600px) and (orientation:landscape){
 #map-view .dock-card{height:clamp(150px,41dvh,190px)!important}
 #map-view .dock-photo{height:44%!important;flex-basis:44%!important}
 #map-view .dock-copy{height:56%!important}
 #map-view .dock-copy .dock-fit{display:none}
}

/* V4.5 — Map starts immediately: no map title or masthead card, only area selector. */
#map-view .editorial-map-toolbar{justify-content:flex-end!important}
#map-view .map-city-label,#map-view .map-city-kicker{display:none!important}
/* Clear, explicit reputation: distinct from the customer's hot-pink six-axis match. */
.venue-facts{display:flex;flex-wrap:wrap;gap:7px 11px;align-items:center}
.venue-fact.venue-public-rating{font-weight:760;color:#222b2b;background:#f2eee8;border-radius:999px;padding:3px 8px}
.venue-fact.venue-price{color:#3b3530;font-size:12px;font-weight:700}
.venue-fact.venue-price.is-unverified{font-weight:400;color:#988f86;font-size:11px}
.sheet-fact .source-inline{font-size:11px;text-decoration:underline;color:#ab4147;margin-left:5px}
#map-view .dock-copy .venue-facts{flex-wrap:wrap;gap:3px 7px;min-height:0;overflow:visible}
#map-view .dock-copy .venue-fact{font-size:10px;white-space:nowrap;line-height:1.25}
#map-view .dock-copy .venue-price{font-size:10px;font-weight:700}
#map-view .dock-copy .venue-public-rating{font-size:10px;padding:2px 5px}
#map-view .dock-card{height:clamp(242px,34dvh,290px)!important}
#map-view .dock-photo{height:43%!important;flex-basis:43%!important}
#map-view .dock-copy{height:57%!important;gap:2px!important;padding:8px 14px 10px!important}
#map-view .dock-bottom{min-height:34px;gap:7px}
/* Pins communicate the personal taste test only after a real profile is saved. */
#map-view .nb-match-pin{background:transparent;border:0}
#map-view .nb-pin-match{display:flex!important;align-items:center;justify-content:center;width:48px!important;height:48px!important;border:2px solid #fff!important;border-radius:999px!important;background:#f5f2eb!important;color:#292827!important;font:750 13px/1 var(--sans)!important;box-shadow:0 4px 15px #1d242536!important;transform:translate(-50%,-50%)}
#map-view .nb-match-pin.is-selected .nb-pin-match{color:#fff!important;background:#e8343f!important;box-shadow:0 0 0 5px #e8343f2a,0 4px 15px #1d242536!important}
@media(max-width:600px){
 #map-view .dock-card{height:clamp(235px,33dvh,275px)!important}
 #map-view .dock-photo{height:43%!important;flex-basis:43%!important}
 #map-view .dock-copy{height:57%!important;padding:8px 13px 9px!important}
 #map-view .dock-copy h3{font-size:21px}
 #map-view .map-next-picks{bottom:calc(93px + env(safe-area-inset-bottom) + clamp(235px,33dvh,275px) + 21px)!important}
}
@media(max-height:600px) and (orientation:landscape){
 #map-view .dock-card{height:clamp(158px,41dvh,198px)!important}
 #map-view .dock-photo{height:41%!important;flex-basis:41%!important}
 #map-view .dock-copy{height:59%!important}
}
/* Centre the percentage marker inside the Leaflet icon without inheriting dot offsets. */
#map-view .nb-match-pin .nb-pin-match{position:absolute!important;left:2px!important;top:2px!important;transform:none!important}
#map-view .nb-match-pin.is-selected .nb-pin-match{transform:scale(1.06)!important}

/* Neighbourhoods V4.6 · The Critics' Table — an editorial shelf, not another map overlay. */
.critics-table{margin:50px 0 52px;min-width:0;max-width:100%}
.critics-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:19px}
.critics-heading h2{font:400 clamp(35px,5.6vw,58px)/1.08 var(--serif);letter-spacing:-.035em;margin:9px 0 10px}
.critics-heading h2 em{font-style:normal;color:var(--pink)}
.critics-intro{font:400 14px/1.65 var(--sans);color:var(--muted);max-width:470px;margin:0}
.critics-side-note{font:700 10px/1.4 var(--sans);color:#898782;letter-spacing:.12em;white-space:nowrap;padding-bottom:14px}
.critics-filters{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;padding:0 0 12px}
.critics-filters::-webkit-scrollbar,.critics-grid::-webkit-scrollbar{display:none}
.critic-filter{border:0;flex:0 0 auto;border-radius:999px;padding:11px 16px;background:#eae7e0;color:#4f4c48;font:600 12px var(--sans);transition:background .18s,color .18s;min-height:42px}
.critic-filter.is-active{background:#222421;color:#fff}
.critic-filter:focus-visible,.critic-source:focus-visible,.critic-venue-name:focus-visible{outline:2px solid var(--pink);outline-offset:3px}
.critics-grid{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:4px;scrollbar-width:none;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;padding:5px 5px 18px;margin:0 -5px}
.critics-card{flex:0 0 min(325px,82vw);width:min(325px,82vw);min-width:0;scroll-snap-align:start;overflow:hidden;background:#fffcf8;border:0;border-radius:21px;box-shadow:0 6px 24px #1c1b1515;display:flex;flex-direction:column}
.critic-photo{height:188px;background:#dad1c3;position:relative;overflow:hidden}
.critic-photo img{width:100%;height:100%;object-fit:cover;display:block}
.critic-photo.missing-photo{background:linear-gradient(135deg,#dfded5,#b4b3aa)}
.critic-copy{padding:17px 18px 14px;display:flex;flex:1;flex-direction:column;align-items:flex-start}
.critic-name-line{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 9px;width:100%}
.critic-byline{font:700 10px var(--sans);letter-spacing:.055em;text-transform:uppercase;color:var(--pink)}
.critic-publication{font:500 10px var(--sans);color:#8b8781}
.critic-venue-name{padding:0;border:0;background:none;color:var(--ink);font:400 31px/1.15 var(--serif);letter-spacing:-.02em;text-align:left;cursor:pointer;margin:9px 0 3px}
.critic-area{font:700 10px var(--sans);text-transform:uppercase;letter-spacing:.06em;color:#85817c;margin:0 0 13px}
.critic-summary{font:400 13.5px/1.55 var(--sans);color:#4e504d;margin:0 0 13px;min-height:62px}
.critic-date{font:600 10px var(--sans);letter-spacing:.09em;text-transform:uppercase;color:#9a938b;margin-top:auto}
.critic-taste{font:700 12px var(--sans);color:var(--pink);margin-top:11px}
.critic-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #ebe6dd;padding-top:12px;margin-top:14px;width:100%}
.critic-source{color:#343632;font:650 12px var(--sans);text-underline-offset:3px;white-space:nowrap}
.critic-actions{display:flex;gap:7px}
.critic-actions .nh-icon{width:37px;height:37px;min-width:37px;background:#f0ede6;border:0;box-shadow:none}
.critic-actions .nh-icon svg{width:17px;height:17px}
.critic-actions .save-toggle.is-saved{background:#e8343f;color:white}
.critics-empty{padding:24px;color:#79746e;font:400 14px/1.5 var(--sans)}
.critics-integrity{font:400 11px/1.55 var(--sans);color:#8b8882;margin:7px 0 0}
.critics-differ{margin-top:18px;padding:19px 21px;border-radius:18px;background:#eae7df}
.critics-differ[hidden]{display:none}
.critic-disagreement-tag{font:700 10px var(--sans);color:#9a3941;letter-spacing:.13em}
.critics-differ p{font:400 14px/1.6 var(--sans);margin:9px 0 11px;max-width:650px}
.critic-disagreement-links{display:flex;flex-wrap:wrap;gap:10px 19px}
.critic-disagreement-links a{font:650 12px var(--sans);text-underline-offset:4px;color:#343434}
@media(max-width:700px){.critics-table{margin:32px -4px 42px}.critics-heading{display:block;padding:0 4px}.critics-heading h2{font-size:39px}.critics-intro{font-size:13px}.critics-side-note{display:none}.critics-filters{padding-inline:4px}.critics-grid{gap:12px;scroll-padding-inline:4px}.critics-card{flex-basis:min(285px,79vw);width:min(285px,79vw)}.critic-photo{height:173px}.critic-copy{padding:15px 15px 13px}.critic-venue-name{font-size:27px}.critics-differ{margin-inline:4px}}
@media(prefers-reduced-motion:reduce){.critic-filter,.critics-card{transition:none!important}}

/* Critics' source context in the existing details sheet */
.critic-sheet{margin-top:27px}
.critic-sheet-note{padding:14px 0;border-bottom:1px solid #ece7e1}
.critic-sheet-note strong{font:700 11px var(--sans);color:#9f3640;letter-spacing:.035em}
.critic-sheet-note p{font:400 13px/1.6 var(--sans);color:#484944;margin:8px 0}
.critic-sheet-note a{font:650 12px var(--sans);color:#32322e;text-underline-offset:3px}
.critic-sheet-disclosure{font:400 10px/1.5 var(--sans);color:#89837c;margin:11px 0}

/* Neighbourhoods V4.7 · taste-first cards. Scoped to card interiors; map tiles,
   location dots, bottom navigation and fluid swipe mechanics are unchanged. */
#discover .critics-table{margin-top:12px}
.venue-title-row{display:flex;align-items:center;justify-content:space-between;gap:15px;min-width:0}
.venue-title-copy{flex:1;min-width:0}
.venue-title-row h3{margin:7px 0 7px!important}
.taste-ring{position:relative;flex:none;display:grid;place-items:center;width:67px;height:67px;color:var(--pink);isolation:isolate}
.taste-ring svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);overflow:visible}
.taste-ring circle{fill:none;stroke-width:3.3}
.taste-ring .taste-track{stroke:#f2ddd9}
.taste-ring .taste-arc{stroke:var(--pink);stroke-linecap:round}
.taste-ring-label{position:relative;font:750 16px/1 var(--sans);letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.taste-ring-small{width:49px;height:49px}
.taste-ring-small .taste-ring-label{font-size:13px}
.taste-ring-small circle{stroke-width:3.6}
.taste-editorial{display:flex;flex-direction:column;gap:5px;margin-top:12px;background:#f6f1ea;border-radius:12px;padding:10px 12px}
.taste-editorial-caption{color:#ad454a;font:750 9px/1.3 var(--sans);letter-spacing:.095em;text-transform:uppercase}
.taste-editorial-copy{font:500 12px/1.4 var(--sans);color:#49413e;white-space:normal;overflow-wrap:break-word}
.venue-card .taste-editorial-copy{margin:0}
.taste-teaser{align-self:flex-start;border:0;border-radius:999px;background:#f6eee8;color:#ae3b46;font:700 11px/1.3 var(--sans);padding:10px 14px;margin-top:12px;text-align:left;cursor:pointer}
.taste-teaser:focus-visible,.taste-ring:focus-visible{outline:2px solid var(--pink);outline-offset:3px}
.venue-card .venue-facts{gap:6px 10px;min-height:0;margin-top:2px}
.venue-card .venue-address{margin:6px 0 0;line-height:1.3}
.venue-card .venue-actions.venue-actions-below{border-top:1px solid #eee8e1;margin-top:12px;padding-top:10px;min-height:48px}
/* Map photo is clean; personal percentage lives in the information panel, never the image. */
#map-view .dock-percent{display:none!important}
#map-view .dock-card{height:clamp(250px,34dvh,310px)!important;min-height:250px!important}
#map-view .dock-photo{flex:0 0 40%!important;height:40%!important;min-height:0!important}
#map-view .dock-copy{flex:1 1 auto;height:60%!important;min-height:0!important;display:flex;flex-direction:column;padding:10px 14px 9px!important;gap:3px!important;overflow:hidden}
#map-view .dock-head{display:flex;justify-content:space-between;align-items:center;gap:10px;min-width:0;min-height:48px}
#map-view .dock-ident{flex:1;min-width:0}
#map-view .dock-overline{font-size:9px;line-height:1.15}
#map-view .dock-copy .dock-head h3{margin:5px 0 0!important;font-size:clamp(21px,3.8vw,25px);line-height:1.08;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
#map-view .dock-copy .venue-facts{display:flex;flex-wrap:nowrap;align-items:center;gap:7px;min-height:20px;margin:0;overflow:hidden}
#map-view .dock-insight{display:flex;gap:7px;align-items:baseline;min-width:0;flex:0 0 auto;margin-top:3px}
#map-view .dock-insight .taste-editorial-caption{font-size:8px;white-space:nowrap}
#map-view .dock-insight .taste-editorial-copy{display:block;min-width:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10px}
#map-view .taste-teaser-compact{margin:3px 0 0;padding:5px 9px;font-size:10px;line-height:1.1;min-height:0}
#map-view .dock-bottom{display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:31px;margin-top:auto!important}
#map-view .dock-footnote{font:500 9px/1.25 var(--sans);color:#8c8279;max-width:56%;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}
#map-view .dock-tools{position:static!important;display:flex;gap:6px;align-items:center;flex:none}
#map-view .dock-tools .nh-icon{width:32px;height:32px;min-width:32px;border:0!important}
#map-view .dock-tools .nh-icon svg{width:17px;height:17px}
#map-view .map-next-picks{bottom:calc(104px + env(safe-area-inset-bottom) + clamp(250px,34dvh,310px) + 20px)!important}
@media(max-width:600px){
 #map-view .dock-card{height:clamp(250px,34dvh,285px)!important;min-height:250px!important}
 #map-view .dock-photo{flex-basis:40%!important;height:40%!important}
 #map-view .dock-copy{height:60%!important;padding:9px 13px 8px!important}
 #map-view .map-next-picks{bottom:calc(103px + env(safe-area-inset-bottom) + clamp(250px,34dvh,285px) + 19px)!important}
 .venue-title-row .taste-ring{width:62px;height:62px}
}
@media(max-height:600px) and (orientation:landscape){
 #map-view .dock-card{height:clamp(190px,44dvh,225px)!important;min-height:190px!important}
 #map-view .dock-photo{flex-basis:35%!important;height:35%!important}
 #map-view .dock-copy{height:65%!important;padding:6px 11px!important;gap:1px!important}
 #map-view .dock-insight{display:none}
 #map-view .dock-head{min-height:40px}
 #map-view .map-next-picks{bottom:calc(104px + env(safe-area-inset-bottom) + clamp(190px,44dvh,225px) + 15px)!important}
}
@media(prefers-reduced-motion:reduce){.taste-ring,.taste-editorial,.taste-teaser{transition:none!important}}

/* Keep taste score unmistakably separate from diner review stars. */
.taste-ring{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1px}
.taste-ring-caption{font:800 7px/1.1 var(--sans);letter-spacing:.04em;color:#9d5250}
.taste-ring-small{gap:0}
.taste-ring-small .taste-ring-caption{font-size:6px}

/* Neighbourhoods V5.0 — completed MICHELIN/count + location work; interaction foundation. */
.venue-michelin{display:inline-flex!important;align-items:center;gap:2px!important;text-decoration:none!important;white-space:nowrap}
.venue-michelin img{height:17px!important;width:17px!important;object-fit:contain;flex:0 0 auto}
.venue-michelin:focus-visible{outline:2px solid #e8343f;outline-offset:3px;border-radius:5px}
.venue-distance{font-variant-numeric:tabular-nums;white-space:nowrap;color:#57524c;font-weight:650}
.catalogue-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.catalogue-locate{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:999px;background:#eae7e0;padding:11px 14px;color:#292a27;min-height:42px;font:650 12px var(--sans);white-space:nowrap;transition:background .2s,color .2s,transform .24s cubic-bezier(.2,.86,.28,1)}
.catalogue-locate svg{height:17px;width:17px;fill:currentColor;transform:rotate(-15deg)}
.catalogue-locate.has-location{background:#f5e5e2;color:#e8343f}
.catalogue-locate:active{transform:scale(.95)}
#map-view .dock-overline{font-variant-numeric:tabular-nums}
/* No competing animation loop: native scrolling retains momentum and rubber-band edge behaviour. */
#map-view .map-dock{scroll-snap-type:x mandatory;scroll-behavior:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
#map-view .dock-card{scroll-snap-stop:always;backface-visibility:hidden;transform:translate3d(0,0,0);transition:box-shadow .26s cubic-bezier(.16,1,.3,1),background-color .26s cubic-bezier(.16,1,.3,1)}
#map-view .dock-card.is-selected{transform:translate3d(0,0,0)}
@media(max-width:560px){.catalogue-head{gap:12px}.catalogue-actions{gap:6px}.catalogue-locate{min-height:38px;padding:9px 11px;font-size:11px}.catalogue-locate svg{width:15px;height:15px}}
@media(prefers-reduced-motion:reduce){.catalogue-locate,#map-view .dock-card{transition:none!important}}
