.mobile-areas,.mobile-cats{display:none}

:root{--paper:#faf9f4;--ink:#263c33;--green:#27513f;--muted:#81877c;--line:#e4e5dc;--orange:#dba56c}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #d59b5b;outline-offset:4px}a{color:inherit}button{color:inherit}header{height:88px;padding:0 36px;display:flex;align-items:center;gap:30px;border-bottom:1px solid var(--line);background:#fffefb}.brand{text-decoration:none;display:flex;align-items:center;gap:10px;font-weight:750;font-size:21px;letter-spacing:-.8px}.brandmark{position:relative;display:grid;place-items:center;width:39px;height:42px;background:var(--green);color:#fff9e9;border-radius:12px;font:italic bold 42px Georgia}.brandmark span{color:#efb773;font:28px Georgia;position:absolute;right:3px;top:-9px}.brandlight{font-weight:400}.brand small{display:block;letter-spacing:2.1px;font-size:8px;font-weight:600;margin-top:-2px}nav{display:flex;gap:5px;margin:auto}.navtab{border:0;background:none;padding:12px 18px;border-radius:9px;font-weight:600;color:#81857d}.navtab.active{background:#edf1e7;color:var(--green)}.soon{font-size:8px;text-transform:uppercase;background:#eeece4;padding:3px 4px;border-radius:3px;margin-left:5px}.prototype{color:#899083;font-size:10px;border:1px solid var(--line);border-radius:20px;padding:5px 10px}main{display:grid;grid-template-columns:226px minmax(350px,1fr) 390px;max-width:1680px;margin:auto;min-height:calc(100vh - 127px)}aside{border-right:1px solid var(--line);padding:26px 22px;background:#fbfaf6;display:flex;flex-direction:column}.eyebrow{font-size:8px;font-weight:700;letter-spacing:1.7px;color:#7d8878}.sidehead h1{font:normal 31px/1.12 Georgia,serif;letter-spacing:-.7px;margin:12px 0}.sidehead p{color:#85897f;font-size:11px;line-height:1.7;margin-bottom:25px}h2{font-size:12px;margin:0}.filtertitle{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}.textbtn{border:0;background:none;color:#6d796c;text-decoration:underline;text-underline-offset:3px;font-size:10px;padding:6px}.arealist{display:grid;gap:3px}.area-button{width:100%;display:flex;align-items:center;justify-content:space-between;padding:10px 11px;border:1px solid transparent;border-radius:7px;background:transparent;text-align:left;font-size:12px}.area-button.selected{background:#eaf0e4;border-color:#d4ddcc;color:#214b38;font-weight:650}.area-button span:last-child{font-size:10px;color:#8c9686}.interest-title{margin:23px 0 11px}.categorylist{display:grid;gap:4px}.category-button{display:flex;align-items:center;gap:9px;padding:9px 6px;border:1px solid transparent;border-radius:7px;background:none;text-align:left;font-size:11px}.category-button.selected{background:#eaf0e4;border-color:#d4ddcc}.cat-icon{width:23px;height:23px;display:grid;place-items:center;font-size:16px}.check{margin-left:auto;width:14px;height:14px;border:1px solid #cbd1c4;border-radius:4px;font-size:10px;display:grid;place-items:center}.selected .check{background:var(--green);color:white;border-color:var(--green)}.filterhelp{font-size:9px;color:#8c9084;line-height:1.7;padding-left:6px}.sidefoot{margin-top:auto;padding-top:35px;font:italic 17px/1.3 Georgia;color:#929b87;position:relative}.sidefoot span{position:absolute;right:1px;bottom:0;color:#c8d0b9;font:36px Georgia}.mapsection{padding:27px 26px 20px;min-width:0}.mapheading{display:flex;justify-content:space-between;gap:8px;align-items:end}.mapheading h2{font:normal 24px Georgia;margin:8px 0 0}.mapbadge{font-size:9px;color:#8a917f;white-space:nowrap}.mapbadge span{font-size:24px;vertical-align:middle;margin-left:7px}.mapcanvas{margin-top:23px;border:1px solid #dfdfd1;border-radius:17px;overflow:hidden;background:#f3f1e8;box-shadow:0 8px 25px #273e3110}.mapcanvas svg{width:100%;height:auto;display:block}.map-pin{cursor:pointer;outline:none}.map-pin:hover .pinbody,.map-pin:focus-visible .pinbody{stroke:#d29b5d;stroke-width:3}.map-pin .pinbody{fill:#fffef8;stroke:#dedfcf;stroke-width:1;filter:drop-shadow(0 3px 3px #273e3110)}.map-pin.selected .pinbody{fill:#27513f;stroke:#27513f}.map-pin .pin-name{fill:#263e31;font-size:14px;font-weight:650}.map-pin .pin-desc{fill:#929987;font-size:8px}.map-pin.selected .pin-name{fill:#fffdf5}.map-pin.selected .pin-desc{fill:#d4ddcb}.map-pin .pin-count{fill:#879b78;font-size:9px}.map-pin.selected .pin-count{fill:#e6c596}.mapfooter{display:flex;justify-content:space-between;font-size:8px;color:#929787;margin-top:12px}.dot{display:inline-block;width:5px;height:5px;background:#7c9b65;border-radius:50%;margin-right:5px}.mapnote{display:flex;gap:13px;border-top:1px solid var(--line);padding-top:22px;margin-top:28px}.mapnote>span{font-size:30px;color:#aebd9b}.mapnote strong{font:17px Georgia}.mapnote p{font-size:10px;color:#8e9487;margin:4px 0}.results{border-left:1px solid var(--line);padding:27px 22px;background:#fffefb;min-width:0}.resulthead{display:flex;align-items:center;justify-content:space-between}.resulthead h2{font:22px Georgia;margin-top:8px}.resulthead h2>span{font:10px system-ui;background:#edf0e8;padding:3px 7px;border-radius:10px;vertical-align:middle;margin-left:3px}.chips{display:flex;gap:5px;flex-wrap:wrap;margin:13px 0}.chip{border:1px solid #d9e1d1;background:#f2f5ed;color:#506c49;border-radius:20px;font-size:9px;padding:4px 9px}.spot-card{border:1px solid #e3e4da;border-radius:12px;overflow:hidden;margin-bottom:15px;transition:transform .18s,box-shadow .18s}.spot-card:hover{transform:translateY(-2px);box-shadow:0 6px 18px #263c3310}.card-link{text-decoration:none;display:block}.card-art{height:116px;position:relative;overflow:hidden;background:#e6e7d8}.card-art svg{width:100%;height:100%;display:block}.art-label{position:absolute;right:9px;bottom:6px;color:#fff9;font-size:7px;letter-spacing:1.4px}.card-body{padding:12px 14px}.card-area{font-size:8px;text-transform:uppercase;letter-spacing:1.5px;color:#8b937f}.card-body h3{font:20px/1.15 Georgia;margin:4px 0 6px}.card-desc{font-size:11px;color:#81877b;line-height:1.55;margin:0 0 10px}.tags{font-size:8px;color:#69775e;display:flex;gap:6px;flex-wrap:wrap;margin-bottom:9px}.tags span{background:#f0f2e9;border-radius:4px;padding:3px 6px}.card-meta{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #eeeee7;padding-top:9px;font-size:9px;color:#909584}.card-meta b{color:#345a43;font-size:10px;font-weight:600}.resultfoot{font-size:10px;color:#929989;padding:8px 4px 25px}.resultfoot p{font-size:9px;line-height:1.7;border-top:1px solid var(--line);margin-top:18px;padding-top:15px}.filter-toggle,#apply{display:none}.pagefooter{border-top:1px solid var(--line);display:flex;justify-content:space-between;padding:13px 30px;font-size:9px;color:#8c9485}.pagefooter span:first-child{color:var(--green);font-weight:bold}dialog{padding:0;border:0;border-radius:18px;max-width:700px;width:calc(100% - 30px);max-height:90dvh;color:var(--ink);background:var(--paper);box-shadow:0 25px 90px #13291b55}dialog::backdrop{background:#172b255c;backdrop-filter:blur(4px)}.close{position:absolute;right:15px;top:15px;background:#fffef8;border:1px solid #dfe4d4;border-radius:50%;width:38px;height:38px;font-size:26px;z-index:2}.detailbody{padding:28px 34px}.detailbody h1{font:36px/1.15 Georgia;margin:10px 0 15px}.detailbody>p{color:#737e6d}.detailbody h2{font:22px Georgia;margin:26px 0 12px}.detailbody ul{padding-left:20px;color:#687760;line-height:1.9}.detailstats{display:flex;gap:8px;flex-wrap:wrap}.detailstats span{background:#eaf0e4;border-radius:7px;padding:9px 12px;font-size:11px}.notice{border-left:3px solid #cca16c;padding:10px 14px;font-size:11px;background:#f0ebdc}.primary{border:0;border-radius:8px;background:var(--green);color:white;display:inline-block;padding:13px 19px;text-decoration:none;font-size:12px;font-weight:600}.detail-actions{display:flex;gap:12px;align-items:center;margin-top:22px;flex-wrap:wrap}.detailbody .textbtn{font-size:12px}.standalone{max-width:800px;margin:50px auto;padding:20px}.empty{padding:40px 15px;text-align:center;border:1px dashed #d6ddca;border-radius:12px}.empty h3{font:24px Georgia}.empty p{color:#84907b}.empty button{margin-top:10px}#food{max-width:800px;min-height:70vh;margin:70px auto;padding:30px}#food h1{font:44px Georgia;max-width:500px}#food p{color:#7d8974;max-width:500px}.foodcriteria{display:flex;gap:10px;flex-wrap:wrap;margin:30px 0}.foodcriteria span{padding:16px;background:#eaf0e4;border-radius:9px}[hidden]{display:none!important}
@media(min-width:1400px){main{grid-template-columns:240px minmax(400px,1fr) 440px}.card-art{height:145px}.mapsection{padding:30px 34px}.results{padding:30px}.sidehead h1{font-size:35px}.mapheading h2{font-size:29px}.mapcanvas{margin-top:30px}.mapsection{position:sticky;top:0;align-self:start}aside{position:sticky;top:0;align-self:start;min-height:calc(100vh - 88px)}}
@media(min-width:951px) and (max-width:1150px){main{grid-template-columns:190px minmax(300px,1fr) 320px}aside{padding:24px 14px}.mapsection{padding:25px 16px}.mapbadge{display:none}.results{padding:25px 15px}.sidehead h1{font-size:28px}.mapheading h2{font-size:22px}}
@media(max-width:950px){header{height:72px;padding:0 20px;gap:10px}.prototype{display:none}.brand{font-size:19px}.brandmark{width:33px;height:36px;font-size:37px}nav{margin-left:auto;margin-right:0}.navtab{font-size:11px;padding:9px 10px}main{display:block;min-height:0}aside{position:fixed;top:0;bottom:0;left:0;width:min(330px,90vw);z-index:20;transform:translateX(-102%);transition:transform .2s;overflow-y:auto;box-shadow:10px 0 40px #273e3122}body.filters-open aside{transform:translateX(0)}.sidefoot{display:none}#apply{display:block;width:100%;margin-top:20px}.filterbody{padding-bottom:20px}#scrim{position:fixed;inset:0;background:#13291b55;z-index:19}.mapsection{padding:22px 20px 10px}.mapheading h2{font-size:28px}.mapbadge{font-size:9px}.mapcanvas{max-width:640px;margin:17px auto 0}.mapcanvas svg{max-height:390px}.mapfooter{max-width:640px;margin:9px auto}.mapnote{display:none}.results{border-left:0;padding:20px;background:var(--paper)}.resulthead h2{font-size:25px}.filter-toggle{display:block;border:1px solid #d6ddce;border-radius:8px;background:#fffef7;padding:10px 14px;font-size:12px}.filter-toggle span{font-size:10px}#cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.spot-card{margin:0}.card-art{height:150px}.resultfoot{margin-top:20px}.pagefooter{padding:15px 20px;gap:15px}.pagefooter span:last-child{max-width:260px;text-align:right}.mobile-areas{display:flex;overflow-x:auto;gap:6px;padding:12px 0 2px;scrollbar-width:none}.mobile-areas button{white-space:nowrap;border:1px solid #dedfd1;background:#fffdf6;border-radius:30px;padding:7px 13px;font-size:10px}.mobile-areas button.selected{background:var(--green);color:white;border-color:var(--green)}.mobile-cats{display:flex;gap:6px;overflow-x:auto;margin-top:8px;padding-bottom:4px;scrollbar-width:none}.mobile-cats button{white-space:nowrap;border:1px solid #dedfd1;background:none;border-radius:7px;padding:6px 10px;font-size:10px}.mobile-cats button.selected{background:#dfe9d5;border-color:#b4c5a3}}
@media(max-width:520px){header{padding:0 14px;height:68px}.brand{font-size:16px;gap:7px}.brand small{font-size:6px;letter-spacing:1.4px}.navtab{font-size:10px;padding:9px 7px}.soon{display:none}.mapsection{padding:17px 15px 6px}.eyebrow{font-size:7px;letter-spacing:1.3px}.mapheading h2{font-size:25px;margin-top:5px}.mapbadge{display:none}.mapcanvas{margin-top:12px}.mapcanvas svg{max-height:305px}.mapfooter{font-size:7px}.results{padding:16px 15px}.resulthead h2{font-size:23px}#cards{grid-template-columns:1fr;gap:13px}.spot-card .card-link{display:grid;grid-template-columns:118px minmax(0,1fr)}.card-art{height:100%;min-height:173px}.card-art svg{width:100%;height:100%;position:absolute}.card-body{padding:12px}.card-body h3{font-size:20px}.card-desc{font-size:10px;line-height:1.5;margin-bottom:8px}.card-meta{font-size:8px}.tags{font-size:7px;margin-bottom:8px}.art-label{font-size:5px;right:4px;letter-spacing:1px}.filter-toggle{padding:8px 10px;font-size:11px}.chips{margin:10px 0}.detailbody{padding:23px}.detailbody h1{font-size:30px}.pagefooter{font-size:8px}#food{margin:30px auto;padding:24px}#food h1{font-size:36px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
/* Neighbourhood explorer */
.back-map{display:inline-flex;align-items:center;gap:7px;margin:18px 0 0;padding:8px 11px;border:1px solid #d7dfce;border-radius:7px;background:#fffdf6;color:#31543e;font-size:11px;font-weight:600}.local-map{position:relative;aspect-ratio:640/560;margin-top:13px;border:1px solid #dedfd1;border-radius:16px;overflow:hidden;background:#f0efe5;isolation:isolate}.local-world{position:absolute;inset:0;transform-origin:center;will-change:transform}.local-world>svg{display:block;width:100%;height:100%}.local-pins{position:absolute;inset:0}.local-pin{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;background:transparent;z-index:2;padding:4px;touch-action:manipulation}.pin-number{display:grid;place-items:center;width:32px;height:32px;border-radius:50% 50% 50% 8px;transform:rotate(-45deg);background:#315d45;color:#fffdf5;border:2px solid #fffdf5;box-shadow:0 3px 8px #183a3430;font-weight:700;font-size:13px}.pin-number::first-letter{transform:rotate(45deg)}.pin-number{border-radius:50%;transform:none}.local-pin-name{position:absolute;left:50%;top:42px;transform:translateX(-50%);background:#fffef6ef;border:1px solid #e1e3d4;border-radius:5px;padding:3px 5px;font-size:9px;font-weight:600;color:#3d573f;white-space:nowrap;pointer-events:none;box-shadow:0 2px 4px #263c3308}.local-pin.is-selected,.local-pin.is-highlighted{z-index:5}.local-pin.is-selected .pin-number,.local-pin.is-highlighted .pin-number{background:#d59a54;color:#253e31;outline:3px solid #e8bd7280}.local-pin.is-selected .local-pin-name,.local-pin.is-highlighted .local-pin-name{background:#f9e9c8;border-color:#d9ad74;color:#304630}.map-tools{position:absolute;top:13px;left:13px;z-index:8;display:grid;border-radius:9px;overflow:hidden;box-shadow:0 2px 10px #263c3320;border:1px solid #d9decf}.map-tools button{width:37px;height:36px;background:#fffef7;border:0;border-bottom:1px solid #e5e7dc;font-size:21px;line-height:1}.map-tools button:last-child{border:0;font-size:18px}.map-tools button:disabled{color:#adb4a4;cursor:default}.map-scale-label{position:absolute;bottom:10px;right:11px;padding:5px 8px;background:#fffef6e8;border:1px solid #e3e5d6;border-radius:6px;font-size:9px;pointer-events:none}.local-map.can-pan{touch-action:none;cursor:grab}.local-map.can-pan:active{cursor:grabbing}.map-empty{position:absolute;inset:40% 15% auto;background:#fffdf4ee;padding:15px;border:1px solid #dedfcf;border-radius:10px;text-align:center;font:18px/1.5 Georgia}.local-preview{display:flex;overflow:hidden;border:1px solid #dce2d2;border-radius:12px;background:#fffdf6;margin-top:17px;min-height:105px}.preview-art{width:110px;flex-shrink:0;position:relative;overflow:hidden}.preview-art svg{position:absolute;width:100%;height:100%;object-fit:cover}.preview-art>span{position:absolute;bottom:7px;left:8px;color:#fff9;font-size:6px;letter-spacing:1px}.preview-info{padding:14px;min-width:0;flex:1}.preview-info h3{font:24px/1.15 Georgia;margin:5px 0 7px}.preview-info p{font-size:11px;color:#78856d;margin:0 0 12px}.preview-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.preview-bottom>span{font-size:10px;color:#7d8871}.preview-bottom .primary{font-size:10px;padding:9px 12px}.preview-prompt{padding:20px;display:flex;align-items:center;gap:15px}.preview-prompt>span{font-size:27px;color:#98ab82}.preview-prompt strong{font:20px Georgia}.preview-prompt p{font-size:11px;color:#849077;margin:6px 0 0}.spot-card.is-highlighted{border-color:#d6a15f;box-shadow:0 0 0 2px #e8bd7250}.card-number{display:inline-grid;place-items:center;width:19px;height:19px;background:#315d45;color:white;border-radius:50%;margin-right:6px;font-size:10px;letter-spacing:0}.mapsection{align-self:start;position:sticky;top:0}.mapheading{scroll-margin-top:15px}.local-pin:focus-visible{outline:3px solid #cf9857;outline-offset:1px;border-radius:50%}
@media(max-width:950px){.mapsection{position:static}.local-map{max-width:640px;margin:13px auto 0;max-height:none}.local-preview{max-width:640px;margin:15px auto 0}.back-map{margin-top:12px}.mobile-areas button,.mobile-cats button{min-height:40px}.map-tools button{width:42px;height:42px}}
@media(max-width:520px){.local-map{aspect-ratio:640/590}.local-world>svg{max-height:none}.local-pin-name{font-size:8px;top:38px;padding:2px 4px}.local-pin{width:44px;height:44px}.pin-number{width:30px;height:30px;font-size:12px}.map-tools{left:8px;top:8px}.map-tools button{width:34px;height:34px}.preview-art{width:85px}.preview-info{padding:11px}.preview-info h3{font-size:21px}.preview-info p{font-size:10px;margin-bottom:8px}.preview-bottom>span{font-size:9px}.preview-bottom .primary{min-height:36px}.preview-prompt{padding:16px}.preview-prompt strong{font-size:19px}.mapfooter{font-size:7px}.map-scale-label{font-size:8px;right:7px;bottom:7px}.back-map{font-size:11px;min-height:38px}.local-preview{margin-top:12px}}
@media(min-width:951px){.local-map{max-width:520px;margin-left:auto;margin-right:auto}.local-preview{max-width:600px;margin-left:auto;margin-right:auto}.local-pin-name{font-size:10px}}
@media(max-width:950px){.mapsection{display:flex;flex-direction:column}.mapheading{order:0}.back-map{order:1;align-self:flex-start}.mobile-cats{order:2;margin-top:12px}#map,.local-map{order:3;width:100%}.mapfooter{order:4;width:100%}.local-preview{order:5;width:100%}.mobile-areas{order:6}.mapnote{order:7}.map-tools button{width:44px;height:44px}}
.map-scale-label{top:10px;right:40px;bottom:auto}
/* Verified visitor information. */
.card-hours{font-size:10px;color:#66775e;margin:8px 0 6px;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.entry-tag{display:inline-block;padding:3px 7px;background:#eaf0e4;border-radius:5px;font-size:9px;color:#3c6040;margin-bottom:10px}.visit-info{margin:16px 0;border:1px solid #dce3d4;border-radius:12px;overflow:hidden;background:#fffdf7}.visit-info>div{display:grid;grid-template-columns:93px 1fr;gap:16px;padding:14px 17px;border-bottom:1px solid #e6e9df}.visit-info>div:last-child{border:0}.visit-info dt{font-size:11px;color:#6c7b60;font-weight:650}.visit-info dd{margin:0;font-size:12px;color:#3b5340;line-height:1.7}.source-note{font-size:10px;color:#77856e}.source-note a{color:#325c41;text-underline-offset:3px}@media(max-width:520px){.card-hours{font-size:9px;-webkit-line-clamp:2}.entry-tag{font-size:8px}.visit-info>div{grid-template-columns:70px 1fr;gap:9px;padding:12px}.visit-info dd{font-size:11px}.visit-info dt{font-size:10px}.local-pin-name{max-width:104px}}
.dense-map .local-pin.is-selected .local-pin-name,.dense-map .local-pin.is-highlighted .local-pin-name,.dense-map .local-pin:hover .local-pin-name,.dense-map .local-pin:focus-visible .local-pin-name{visibility:visible}

/* Independent pins on an expanded neighbourhood canvas. */
.exploring-local{max-width:1800px;grid-template-columns:190px minmax(420px,1fr) 300px}
.exploring-local .mapsection{padding:25px 22px;position:static}
.exploring-local .local-map{width:100%;max-width:none;height:720px;aspect-ratio:auto}
.exploring-local .local-preview{max-width:none}
.exploring-local .results{padding:25px 16px}
.pin-leaders{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.pin-leaders line{stroke:#63816c;stroke-width:1.2;opacity:.55}
.pin-leaders circle{fill:#54745d;opacity:.7}
.local-pins{pointer-events:none}
.local-pin{pointer-events:auto}
.local-pin-name{z-index:1}
.dense-map .local-pin .local-pin-name{visibility:hidden}
.dense-map .local-pin.is-selected .local-pin-name,.dense-map .local-pin.is-highlighted .local-pin-name,.dense-map .local-pin:hover .local-pin-name,.dense-map .local-pin:focus-visible .local-pin-name{visibility:visible}
@media(min-width:951px) and (max-width:1100px){.exploring-local{grid-template-columns:170px minmax(390px,1fr) 270px}.exploring-local .mapsection{padding:25px 12px}}
@media(max-width:950px){.exploring-local{display:block}.exploring-local .mapsection{padding:20px}.exploring-local .local-map{height:680px;max-width:760px}.exploring-local .local-preview{max-width:760px}}
@media(max-width:520px){.exploring-local .mapsection{padding:17px 12px 6px}.exploring-local .local-map{height:620px}.exploring-local .results{padding:16px 15px}.local-pin{width:44px;height:44px}.local-pin-name{top:42px}.map-scale-label{right:10px;top:12px}}

/* Shared interest palette: map, controls and place cards. */
.category-button .cat-icon{color:white;background:var(--cat-color);border-radius:50%;flex-shrink:0;font-weight:700}
.category-button.selected{border-color:var(--cat-color);background:color-mix(in srgb,var(--cat-color) 10%,#fffdf7)}
.category-button.selected .check{background:var(--cat-color);border-color:var(--cat-color)}
.mobile-cats button{display:inline-flex;align-items:center;gap:6px}
.mobile-cat-dot,.category-chip::before{display:inline-block;flex-shrink:0;width:10px;height:10px;border-radius:50%;background:var(--cat-color)}
.mobile-cats button.selected{background:color-mix(in srgb,var(--cat-color) 10%,#fffdf7);border-color:var(--cat-color);color:var(--ink)}
.category-chip::before{content:'';width:7px;height:7px;margin-right:5px}
.category-chip{border-color:var(--cat-color);background:color-mix(in srgb,var(--cat-color) 8%,#fffdf7);color:var(--ink)}
.local-pin .pin-number,.local-pin.is-selected .pin-number,.local-pin.is-highlighted .pin-number{background:var(--spot-fill);color:white;text-shadow:0 1px 2px #0009}
.local-pin.is-selected .pin-number,.local-pin.is-highlighted .pin-number{outline:3px solid #263c33;outline-offset:2px;box-shadow:0 0 0 6px #fffdf8}
.card-number{background:var(--spot-fill,#315d45);color:white;text-shadow:0 1px 2px #0009}
.map-legend{margin:15px 0 0;border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:#fffef9}
.legend-title{font-size:8px;font-weight:700;letter-spacing:1.4px;color:#74806e}
.legend-items{display:flex;flex-wrap:wrap;gap:9px 16px;margin-top:8px}
.legend-items>span{display:flex;align-items:center;gap:6px;font-size:10px;white-space:nowrap}
.legend-items i{font-style:normal;display:inline-grid;place-items:center;width:20px;height:20px;color:white;background:var(--cat-color);border-radius:50%;font-size:13px}
.map-legend p{font-size:9px;margin:9px 0 0;color:#788570}
.spot-categories{display:flex;gap:5px 9px;flex-wrap:wrap;margin:8px 0 10px}
.spot-categories>span{display:inline-flex;align-items:center;gap:4px;font-size:9px;color:#50604c}
.spot-categories i{width:7px;height:7px;border-radius:50%;background:var(--cat-color);flex-shrink:0}
.detailbody .spot-categories{margin:0 0 18px;gap:9px 16px}.detailbody .spot-categories>span{font-size:11px}
@media(max-width:950px){.map-legend{order:3;width:100%;max-width:760px;align-self:center;margin-top:10px}.legend-items{gap:7px 12px}.map-legend p{margin-top:7px}}
@media(max-width:520px){.map-legend{padding:10px 11px}.legend-items>span{font-size:9px}.legend-items i{width:17px;height:17px;font-size:11px}.spot-categories>span{font-size:8px}.spot-categories{margin:6px 0 8px}}

/* Verified address, clipboard control and per-destination map actions. */
.location-section{margin:25px 0}.location-section h2{margin:0 0 12px}
.location-box{border:1px solid #dce3d4;border-radius:12px;background:#fffef9;padding:17px;margin:10px 0}
.location-box h3{font-size:13px;line-height:1.5;margin:0 0 6px;font-weight:650}
.address-en{font-size:12px;line-height:1.7;color:#52654c;margin:5px 0 11px}
.address-row{display:flex;align-items:center;gap:12px;border-radius:8px;background:#f0f3e9;padding:10px 12px}
.address-ja{flex:1;min-width:0;margin:0;font-size:12px;line-height:1.8;overflow-wrap:anywhere;user-select:text;-webkit-user-select:text}
.copy-address{flex-shrink:0;display:inline-flex;gap:5px;align-items:center;justify-content:center;min-width:72px;min-height:44px;background:#fffef9;border:1px solid #c5d1bb;border-radius:7px;padding:8px;color:#2e553b;font-size:11px}
.copy-address:disabled{opacity:.65}.copy-status{font-size:11px;color:#315d45;margin:7px 0 0;min-height:0}.copy-status:empty{display:none}
.location-note{font-size:11px;line-height:1.7;color:#697b61;margin:12px 0}
.location-actions{display:flex;gap:10px 14px;align-items:center;flex-wrap:wrap;margin-top:14px}.location-actions .primary{min-height:44px;font-size:11px;padding:12px 14px}
.directions-link{font-size:11px;min-height:44px;display:inline-flex;align-items:center;color:#315d45;text-underline-offset:3px}
.location-source{font-size:9px;line-height:1.7;color:#7b8872;margin:11px 0 0}.location-source a{text-underline-offset:3px}
@media(max-width:520px){.location-box{padding:13px}.address-row{gap:8px;padding:9px}.address-en,.address-ja{font-size:11px}.copy-address{min-width:65px}.location-actions{gap:5px 14px}.location-section{margin:22px 0}}
/* Prototype 07: a larger movable map with readable place names. */
.local-world{inset:auto;left:50%;top:50%;transform-origin:center}
.exploring-local .local-map{height:610px;touch-action:none;overscroll-behavior:contain;cursor:grab;background:#eeeee4}
.local-map:active{cursor:grabbing}.local-map:focus-visible{outline:3px solid #315d45;outline-offset:3px}
.map-toolbar{display:flex;align-items:center;gap:10px;justify-content:space-between;margin-top:15px;min-width:0}
.map-jumps{display:flex;gap:5px;overflow-x:auto;scrollbar-width:thin;min-width:0;padding:2px 1px 5px}
.map-jumps button{flex-shrink:0;min-height:40px;padding:8px 10px;border:1px solid #d6dfce;border-radius:7px;background:#fffef8;font-size:10px;white-space:nowrap}
.map-jumps button:hover,.map-jumps button.selected{background:#e4ecdc;border-color:#9ab28e}
.expand-map{display:inline-flex;align-items:center;justify-content:center;gap:5px;border:0;border-radius:8px;min-height:44px;padding:9px 13px;background:#27513f;color:white;font-size:11px;white-space:nowrap;flex-shrink:0}
.named-pin{width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border:0;display:flex;align-items:center;justify-content:center;border-radius:50%;background:none;z-index:2;transform:translate(-50%,-50%)}
.place-dot{display:block;width:18px;height:18px;border:2px solid #fffdf7;background:var(--spot-fill);border-radius:50%;flex-shrink:0;box-shadow:0 1px 4px #203d3140;pointer-events:none}
.named-pin .local-pin-name{position:absolute;display:none;visibility:visible!important;transform:none;max-width:none;white-space:nowrap;overflow:visible;text-overflow:clip;line-height:30px;height:30px;padding:0 8px;border:1px solid #d8dfcf;border-radius:7px;background:#fffef9f5;color:#263e31;box-shadow:0 2px 6px #263c3315;font:600 12px/28px system-ui;pointer-events:auto;text-align:center}
.named-pin.has-name .local-pin-name{display:block}
.named-pin:hover,.named-pin:focus-visible,.named-pin.is-selected,.named-pin.is-highlighted{z-index:7}
.named-pin:not(.has-name):hover .local-pin-name,.named-pin:not(.has-name):focus-visible .local-pin-name{display:block;left:33px;top:7px;width:max-content;max-width:200px;white-space:normal;height:auto;line-height:1.5;padding:6px 8px}
.named-pin.is-selected .place-dot,.named-pin.is-highlighted .place-dot{outline:3px solid #263c33;outline-offset:2px;box-shadow:0 0 0 6px #fffdf8}
.named-pin.is-selected .local-pin-name,.named-pin.is-highlighted .local-pin-name{background:#fff7df;border-color:#7f9273;color:#263e31}
.card-colour{display:inline-block;width:12px;height:12px;border-radius:50%;background:var(--spot-fill);margin-right:6px;vertical-align:-2px}
.map-scale-label{top:12px;right:10px;max-width:148px;font-size:10px;background:#fffef9f2}
.map-visibility-note{position:absolute;bottom:10px;left:10px;right:10px;text-align:center;padding:6px 8px;border-radius:7px;background:#fffef9ef;font-size:10px;color:#687b5c;pointer-events:none;z-index:9}
.map-tools{top:10px;left:10px}.map-tools button{width:42px;height:42px}
.expanded-map{position:fixed;inset:0;margin:0;padding:0;max-width:none;max-height:none;width:100%;height:100dvh;border:0;border-radius:0;background:var(--paper);color:var(--ink);overflow:hidden}
.expanded-map[open]{display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto}
.expanded-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 18px 8px}.expanded-heading h2{font:25px Georgia;margin:3px 0}
.exit-map{padding:9px 12px;min-height:44px;flex-shrink:0;border:1px solid #c9d5c0;border-radius:8px;background:white;font-size:12px}
.expanded-interests{display:flex;gap:6px;overflow-x:auto;padding:8px 16px;scrollbar-width:thin}
.expanded-interests button{display:flex;align-items:center;gap:6px;border:1px solid #d6ddcf;border-radius:7px;background:#fffef9;white-space:nowrap;padding:8px 10px;min-height:40px;font-size:11px}
.expanded-interests button.selected{background:color-mix(in srgb,var(--cat-color) 10%,#fffdf7);border-color:var(--cat-color)}
.expanded-jumps{padding:0 16px 5px}.expanded-slot{min-height:0;position:relative}
.expanded-slot>.local-map{height:100%;width:100%;max-width:none;margin:0;border-radius:0;border-left:0;border-right:0;aspect-ratio:auto}
.expanded-help{margin:0;padding:8px 14px max(8px,env(safe-area-inset-bottom));font-size:10px;text-align:center;color:#6e7f63;background:#fffef9}
body.map-expanded{overflow:hidden}
@media(max-width:950px){.map-toolbar{order:3;width:100%;max-width:760px;align-self:center;flex-wrap:wrap;gap:5px;margin-top:10px}.map-toolbar>.map-jumps{width:100%;order:2}.expand-map{width:100%;order:1}.map-legend{order:4}.exploring-local .local-map{order:5;height:520px}.mapfooter{order:6}.local-preview{order:7}.mobile-areas{order:8}.map-legend{margin-top:5px}.map-legend p{display:none}.legend-items{margin-top:6px}.mapsection .map-legend{padding:9px 11px}}
@media(max-width:520px){.exploring-local .mapsection{padding:16px 10px 6px}.exploring-local .local-map{height:500px;border-radius:12px}.map-legend .legend-title{display:none}.legend-items{gap:5px 9px;margin:0}.legend-items>span{font-size:9px}.map-visibility-note{font-size:9px}.map-scale-label{font-size:9px}.expanded-heading{padding:10px 12px 4px}.expanded-heading h2{font-size:22px}.expanded-heading .eyebrow{font-size:7px}.expanded-interests{padding:6px 10px}.expanded-jumps{padding:0 10px 4px}.expanded-slot>.local-map{height:100%;border-radius:0}.expanded-help{font-size:9px}.exit-map{font-size:11px}}

.expanded-map[open]{grid-template-columns:minmax(0,1fr)}.expanded-map> *{min-width:0;max-width:100%}.expanded-heading>div{min-width:0}.pin-leaders .label-leader{stroke:#536b5a;opacity:.7}

/* The schematic continues beyond the original neighbourhood frame at every zoom. */
.local-world>#local-landscape{position:absolute;max-width:none;max-height:none;pointer-events:none}
/* Guided day planner. */
.planner-panel{margin-top:16px;padding:18px;background:linear-gradient(135deg,#f0f4e8,#fffdf5);border:1px solid #cddbc2;border-radius:15px;min-width:0}
.planner-heading{display:flex;align-items:flex-start;gap:12px}.planner-spark{display:grid;place-items:center;width:36px;height:36px;background:#dbe8cc;border-radius:11px;color:#315d45;font-size:25px;flex-shrink:0}.planner-heading h3{font:26px/1.15 Georgia;margin:5px 0 7px;letter-spacing:-.3px}.planner-heading p{font-size:11px;line-height:1.6;color:#6b7c60;margin:0}
.planner-editor{margin-top:15px}.planner-editor>summary{font-size:12px;cursor:pointer;color:#315d45;font-weight:650;padding:8px 0}.planner-editor>summary span{font-size:10px;font-weight:400;color:#7d8a72;margin-left:8px}.planner-editor[open]>summary{display:none}
.planner-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}.planner-fields label{display:flex;flex-direction:column;gap:5px;font-size:10px;font-weight:650;color:#53664a;min-width:0}.planner-fields select,.planner-fields input{font:12px/1.4 system-ui;color:#263e31;background:#fffef9;border:1px solid #cbd7c0;border-radius:7px;padding:10px 8px;min-height:44px;width:100%;min-width:0}.planner-fields select:focus-visible,.planner-fields input:focus-visible{outline:3px solid #b7cf9d;outline-offset:1px}.planner-when{margin:12px 0}.planner-when summary{font-size:10px;color:#5f7653;cursor:pointer;padding:9px 0}.planner-when[open]{border-top:1px solid #dce5d4}.build-plan{display:flex;justify-content:space-between;align-items:center;width:100%;min-height:46px;font-size:12px;margin-top:10px}.build-plan span{font-size:19px}
.planner-status{font-size:11px;line-height:1.6;color:#365d3f;margin:12px 0}.planner-status:empty{display:none}.planner-baseline{font-size:9px;line-height:1.6;color:#7b876e;margin:11px 0 0}
.plan-overview{display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid #d7e2cd;margin-top:12px;padding-top:15px}.plan-tag{display:inline-block;font-size:9px;padding:4px 8px;border-radius:5px;background:#e0ebd6;color:#45613b}.plan-overview h4{font:23px/1.15 Georgia;margin:8px 0}.plan-overview p{font-size:10px;color:#607455;margin:0}.plan-overview>.primary{font-size:11px;white-space:nowrap;flex-shrink:0;min-height:44px}.plan-timing-note{font-size:10px;color:#7c886f;line-height:1.6;margin:11px 0}.plan-route-summary{font-size:12px;line-height:1.8;color:#2c5139;margin:10px 0}.plan-route-summary>span{color:#a1b58f;margin:0 5px}
.plan-stop-list{border:1px solid #d6e0cc;border-radius:9px;background:#fffef8;margin:12px 0;overflow:hidden}.plan-stop-list>summary{font-size:11px;font-weight:650;color:#31543d;padding:13px;cursor:pointer}.plan-stops{list-style:none;padding:0 14px 10px;margin:0}.plan-stops>li{border-top:1px solid #e2e8da;padding:11px 0 14px}.plan-leg-label{font-size:9px;line-height:1.7;color:#7c886f;margin:0 0 9px}.plan-leg-label>a{color:#476940;display:inline-block;margin-left:6px;min-height:25px;text-underline-offset:3px}.plan-stop-main{display:flex;align-items:flex-start;gap:10px}.plan-stop-main>div{min-width:0;flex:1}.plan-order-number{width:25px;height:25px;display:grid;place-items:center;flex-shrink:0;border-radius:50%;color:white;background:var(--spot-fill);font-weight:750;font-size:12px;text-shadow:0 1px 2px #0008;border:2px solid white;box-shadow:0 1px 4px #315d4530}.plan-stop-time{font-size:9px;font-weight:650;color:#7b8e69}.plan-stop-title{border:0;padding:5px 0;background:none;font:20px/1.2 Georgia;color:#294d35;text-align:left;display:block;min-height:38px}.plan-stop-main p{font-size:11px;line-height:1.6;color:#6a7b5f;margin:4px 0 8px}.plan-stop-fee{display:inline-block;font-size:9px;padding:3px 6px;border-radius:5px;background:#eef3e7;color:#4d6a41}.plan-stop-main .plan-stop-note{font-size:10px;padding-left:8px;border-left:2px solid #c7d9b5;color:#7b866f;margin:9px 0}.plan-stop-actions{display:flex;gap:12px;flex-wrap:wrap}.plan-stop-actions button{border:0;background:none;text-decoration:underline;text-underline-offset:3px;font-size:10px;color:#59754b;min-height:38px;padding:5px 0}.plan-stop-actions button:last-child{color:#8c7c6a}
.plan-actions{display:flex;flex-wrap:wrap;gap:6px}.plan-actions button{border:1px solid #cbd9bd;border-radius:6px;background:#fffef8;font-size:10px;min-height:40px;padding:8px 10px;color:#416538}.plan-actions button:last-child{margin-left:auto;color:#857d6c;border-color:#dfdfd1}.plan-actions [data-plan-clear]{font-weight:700}.plan-edit-note{font-size:9px;line-height:1.6;color:#7c896e;margin:9px 0 0}
.plan-route{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.plan-route>path{fill:none;stroke:#315d45;stroke-width:2.5;stroke-dasharray:7 6;opacity:.75}
.is-plan-stop .place-dot{width:27px;height:27px;display:grid;place-items:center;color:white;font-size:12px;font-weight:750;text-shadow:0 1px 2px #0009;box-shadow:0 0 0 3px #fffef8,0 2px 7px #315d4550}.card-plan-number{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#315d45;color:white;font-size:10px;font-weight:700;letter-spacing:0;margin-right:6px}
#expanded-plan-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:4px 0 8px;font-size:10px;color:#57734a}#expanded-plan-actions>span{margin-right:auto}#expanded-plan-actions button{border:1px solid #cbd9bd;background:#fffef8;color:#315d45;border-radius:6px;min-height:36px;padding:7px 9px;font-size:10px}
@media(max-width:950px){.planner-panel{order:1;margin-top:12px;width:100%;max-width:760px;align-self:center}.back-map{order:1}.planner-heading h3{font-size:25px}}
@media(max-width:520px){.planner-panel{padding:14px}.planner-heading{gap:9px}.planner-spark{width:30px;height:30px;font-size:21px;border-radius:9px}.planner-heading h3{font-size:24px}.planner-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.planner-fields label:last-child{grid-column:1/-1}.planner-fields select,.planner-fields input{font-size:12px}.planner-heading p{font-size:10px}.planner-when summary{font-size:9px;line-height:1.7}.plan-overview{align-items:stretch;flex-direction:column;gap:12px}.plan-overview>.primary{text-align:center}.plan-overview h4{font-size:23px}.plan-actions{display:grid;grid-template-columns:1fr 1fr}.plan-actions button:last-child{margin:0}.plan-actions button{font-size:9px;padding:7px}.plan-stop-title{font-size:19px}.plan-stop-main p{font-size:10px}.plan-route-summary{font-size:11px}.planner-editor>summary span{display:block;margin:3px 0 0}.plan-leg-label>a{min-height:30px}.plan-stops{padding:0 11px 8px}}

/* Keep large schematic street labels behind the highlighted itinerary unobtrusive. */
.plan-focused #local-landscape>g[font-size="12"],.plan-focused #local-landscape>g[letter-spacing]{opacity:.18}
/* Prototype 09: multiple interests and transparent visit budgets. */
.planner-interests{border:0;margin:14px 0 8px;padding:0;min-width:0}.planner-interests legend{font-size:12px;font-weight:650;color:#456044;margin-bottom:9px}.planner-interests>div{display:flex;flex-wrap:wrap;gap:8px}.planner-interests label{position:relative;min-width:0;max-width:100%;cursor:pointer}.planner-interests input{position:absolute;opacity:0;width:1px;height:1px}.planner-interests label>span{display:flex;align-items:center;gap:7px;min-height:44px;border:1px solid #d2dac7;background:#fffef7;border-radius:9px;padding:8px 12px;font-size:11px;color:#466044}.planner-interests i{width:9px;height:9px;flex-shrink:0;border-radius:50%;background:var(--cat-color)}.planner-interests input:checked+span{border-color:var(--cat-color);box-shadow:inset 0 0 0 1px var(--cat-color);background:#f0f5e8;font-weight:700}.planner-interests input:checked+span:after{content:'✓';color:var(--cat-color)}.planner-interests input:focus-visible+span{outline:3px solid #253f30;outline-offset:3px}.planner-interests p{font-size:10px;color:#718368;line-height:1.6;margin:8px 0}.planner-fields:has(>[name]){min-width:0}
.plan-cost{border:1px solid #c9d5bd;background:#fffef8;border-radius:12px;padding:16px;margin:17px 0}.cost-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.cost-head h4{font:21px/1.25 Georgia;margin:5px 0;color:#304f36}.cost-head .eyebrow{font-size:8px}.cost-total{font-size:22px;line-height:1.3;color:#355b3c;white-space:nowrap}.cost-scope,.cost-input-help,.cost-exclusions{font-size:11px;line-height:1.7;color:#6e7e61;margin:10px 0}.cost-breakdown>summary{cursor:pointer;font-size:12px;font-weight:650;color:#3b5e3c;padding:11px 0;min-height:44px}.cost-items{list-style:none;padding:0;margin:0}.cost-items li{border-top:1px solid #e1e6d8;padding:12px 0}.cost-items li>div,.cost-subtotal{display:flex;justify-content:space-between;gap:10px;font-size:12px;line-height:1.6}.cost-items strong{text-align:right;flex-shrink:0;font-size:11px}.cost-items p{font-size:10px;line-height:1.7;color:#738069;margin:5px 0}.cost-items a{font-size:10px;color:#416d43;display:inline-block;padding:6px 0}.cost-subtotal{border-top:1px solid #d7dfcb;padding:12px 0;color:#365738}.cost-budget-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.cost-budget-fields label,.cost-input-label{display:block;font-size:10px;line-height:1.6;color:#526c47;font-weight:600}.cost-budget-fields input,.cost-input-label input{display:block;width:100%;max-width:100%;min-width:0;min-height:44px;border:1px solid #cbd6be;background:white;color:#2c4b31;padding:8px;border-radius:7px;font-size:12px;margin-top:5px}.cost-input-label{max-width:270px;margin:9px 0}.spot-cost-box{padding:16px;border:1px solid #d6ddcb;border-radius:10px;background:#f7f8ed;margin:22px 0}.spot-cost-box h2{font-size:22px!important;margin:0 0 10px!important}.spot-cost-box strong{color:#3c643f;font-size:17px}.spot-cost-box p{font-size:12px;line-height:1.7;margin:8px 0}.spot-cost-box small{font-size:10px;line-height:1.7;color:#748269}.spot-cost-box a{color:#456a44}
@media(max-width:520px){.planner-interests>div{display:grid;grid-template-columns:1fr 1fr}.planner-interests label>span{font-size:10px;padding:8px;line-height:1.4;height:100%}.planner-interests label:last-child{grid-column:1/-1}.plan-cost{padding:12px}.cost-head{align-items:flex-start;flex-direction:column;gap:5px}.cost-head h4{font-size:20px}.cost-total{font-size:24px}.cost-items li>div{flex-direction:column;gap:2px}.cost-items strong{text-align:left}.cost-budget-fields{grid-template-columns:1fr}.cost-exclusions,.cost-scope{font-size:10px}}
/* Prototype 10: visible preference order and checked Google Maps snapshots. */
.planner-interests input:checked+span:after{display:none}.interest-rank:empty{display:none}.interest-rank{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:21px;height:21px;border-radius:50%;background:var(--cat-color);color:white;font-size:11px;margin-left:auto}.card-rating{font-size:10px;line-height:1.7;margin:6px 0 9px;color:#795d28}.result-sort-note{font-size:11px;line-height:1.7;color:#7c8573;margin:10px 0 15px;max-width:650px}.spot-review-box{background:#fbf7ec;border:1px solid #e6dcc4;border-radius:10px;padding:16px;margin:20px 0}.spot-review-box h2{font-size:22px!important;margin:0 0 10px!important}.spot-review-box p{font-size:12px;line-height:1.8}.spot-review-box strong{color:#876722}.spot-review-box small{font-size:10px;line-height:1.8;color:#7e806f}.spot-review-box a{color:#576e44}.plan-stop-main .plan-stop-rating{font-size:10px;color:#876722;margin:5px 0}.plan-tag{white-space:normal;line-height:1.8;max-width:100%}

#planner-form>.planner-fields:first-child{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:520px){#planner-form>.planner-fields:first-child>label:last-child{grid-column:auto}}
/* Prototype 11: on-demand Instagram, shared by modal and standalone pages. */
.spot-media{margin:24px 0 28px;padding:20px;background:#f5f4e9;border:1px solid #d8ddcb;border-radius:16px;min-width:0}.media-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.media-heading .eyebrow{font-size:9px;color:#7b785f}.media-type{font-size:10px;background:#e9e5d4;padding:4px 8px;border-radius:5px;color:#716650;flex-shrink:0}.spot-media h2{font:29px/1.15 Georgia,serif!important;color:#35513c;margin:12px 0!important}.spot-media .media-summary{font-size:13px;line-height:1.7;color:#61705c;margin:10px 0}.media-highlights{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0}.media-highlights span{font-size:10px;padding:5px 8px;border-radius:5px;background:#e7eddd;color:#53694b;line-height:1.6}.media-facade{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:220px;border:1px solid #d8d9c6;border-radius:11px;background:radial-gradient(ellipse at 25% 15%,#f4dbcf66,transparent 60%),linear-gradient(145deg,#e8ead9,#e3e7d7 55%,#dadfc9);padding:22px 18px;text-align:center}.media-facade[hidden],.media-controls[hidden],.media-slot[hidden]{display:none!important}.media-camera{display:grid;place-items:center;border:1px solid #9da98d;color:#476440;border-radius:14px;width:49px;height:49px;font-size:24px;line-height:1}.media-facade-title{font:22px/1.3 Georgia,serif;color:#42613e}.media-load{display:flex;align-items:center;justify-content:space-between;gap:22px;min-height:48px;max-width:100%}.media-facade small{font-size:10px;line-height:1.7;color:#718266}.media-source{display:flex;flex-wrap:wrap;gap:5px 14px;justify-content:space-between;font-size:10px;line-height:1.8;margin-top:12px}.media-source a{color:#4d6d48;overflow-wrap:anywhere}.media-source>span{color:#8c8c77}.spot-media .media-note{font-size:11px;line-height:1.7;color:#79836e;margin:9px 0 0;padding-left:9px;border-left:2px solid #c8cfb8}.media-status{font-size:11px;line-height:1.7;color:#6c7c60;margin:9px 0}.media-status:empty{display:none}.media-slot{width:100%;max-width:540px;margin:16px auto 0;min-width:0;min-height:260px}.media-slot .instagram-media,.media-slot iframe{max-width:100%!important;min-width:0!important;width:100%!important;margin:0!important;box-sizing:border-box!important;border-radius:9px!important}.media-controls{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin-top:12px}.media-controls button{border:1px solid #bdc9af;border-radius:6px;background:#fffdf4;color:#546f47;padding:8px 12px;min-height:44px;font-size:11px}.media-controls>span{font-size:10px;line-height:1.7;color:#7a876e}.card-media-label{position:absolute;left:10px;bottom:10px;padding:5px 8px;border-radius:6px;background:#fffdf2e8;color:#526b48;font-size:9px;line-height:1.4;box-shadow:0 1px 5px #314e3c15}.media-load:disabled{opacity:.65;cursor:wait}
@media(max-width:520px){.spot-media{padding:14px;margin:20px 0}.spot-media h2{font-size:25px!important}.spot-media .media-summary{font-size:12px}.media-facade{padding:20px 12px;min-height:210px}.media-facade-title{font-size:21px}.media-heading{align-items:flex-start}.media-heading .eyebrow{font-size:8px;line-height:1.8}.media-highlights span{font-size:9px}.media-slot{margin-top:12px}.spot-media .media-note{font-size:10px}}

.media-slot{position:relative;overflow:hidden}.media-slot iframe{max-width:none!important;transform-origin:top left}@media(max-width:520px){.detailbody .spot-media{margin-left:-19px;margin-right:-19px;padding:15px 10px}.spot-media .media-slot{margin-left:-10px;margin-right:-10px;width:calc(100% + 20px);max-width:none}.standalone{padding:10px;margin-top:24px}}

/* Text-first spot details, with portrait-phone media using the available width. */
#detail .detailbody>h1{padding-right:42px}#detail .detailbody>.eyebrow{display:block;padding-right:42px}
@media(max-width:520px){#detail{width:calc(100% - 16px);max-height:calc(100dvh - 16px);border-radius:14px}#detail .detailbody,.standalone .detailbody{padding:24px 18px 20px}#detail .detailbody>h1{font-size:29px}#detail .close{right:10px;top:10px}.detailbody .spot-media{margin-left:-14px;margin-right:-14px}.spot-media .media-slot{width:calc(100% + 20px)}}

.licensed-photo{margin:18px 0}.licensed-photo img{display:block;width:100%;height:auto;border-radius:12px}.licensed-photo figcaption{font-size:12px;line-height:1.6;margin-top:10px;overflow-wrap:anywhere;color:var(--muted,#63726d)}

.experience-gallery{padding:22px}.place-photos{display:grid;gap:20px;margin-top:20px}.place-photo{margin:0;min-width:0}.place-photo img{display:block;width:100%;height:auto;max-height:390px;object-fit:contain;background:#e7ebe5;border-radius:12px}.place-photo figcaption{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:13px;line-height:1.5;padding-top:10px}.place-photo figcaption span{font-size:11px;color:#66746c}.photo-credit{font-size:11px;color:#66746c;margin-top:5px;overflow-wrap:anywhere}.photo-credit summary{cursor:pointer;min-height:28px;display:list-item;padding:5px 0}.photo-credit p{line-height:1.6;margin:5px 0}.photo-related{display:block;border:1px solid #c2cec4;border-radius:10px;padding:13px 15px;margin-top:18px;color:#245841;font-weight:600;text-decoration:none}.photo-related:hover{background:#e7eee5}@media(max-width:600px){.experience-gallery{padding:16px}.place-photo img{max-height:none}.place-photo figcaption strong{font-size:13px}.experience-gallery h2{font-size:24px}}

.photo-credit-line{font-size:11px;line-height:1.5;color:#66746c;overflow-wrap:anywhere;margin:6px 0 0}.photo-credit-line a{color:inherit}
/* Geographic Shinjuku map: north-up; spot anchors never move for label spacing. */
.local-world>#local-landscape{left:0;top:0;width:100%;height:100%;overflow:hidden}
.base-parks{fill:#d5e1c4;stroke:#c7d5b4;stroke-width:1}.base-water{fill:#b9d5d9;stroke:none}
.base-buildings{fill:#e0dfd5;stroke:#d6d4c9;stroke-width:.8;opacity:0}
.base-platforms{fill:#c9d0be;stroke:#b4beaa;stroke-width:1}
.base-major{fill:none;stroke:#fffef8;stroke-width:10;stroke-linejoin:round;stroke-linecap:round}
.base-minor{fill:none;stroke:#fffef8;stroke-width:5;stroke-linejoin:round;stroke-linecap:round;opacity:0}
.base-paths{fill:none;stroke:#e1d8bd;stroke-width:2.2;stroke-dasharray:3 3;opacity:0}
.base-rail{fill:none;stroke:#a8b2a4;stroke-width:1.8;opacity:.8}
.local-map[data-detail="1"] .base-minor{opacity:.6}
.local-map[data-detail="2"] .base-minor,.local-map[data-detail="3"] .base-minor{opacity:1}
.local-map[data-detail="2"] .base-buildings{opacity:.6}
.local-map[data-detail="3"] .base-buildings,.local-map[data-detail="3"] .base-paths{opacity:1}
.base-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.base-label{position:absolute;display:flex;align-items:center;justify-content:center;white-space:nowrap;font:500 11px/20px system-ui;color:#8b897c;text-shadow:0 1px 2px #fff,1px 0 2px #fff,-1px 0 2px #fff}
.base-label.station{font-weight:700;color:#50644f;background:#f7f8f0ee;border:1px solid #c8d1be;border-radius:5px;text-shadow:none}.base-label.station i{font-style:normal;color:#768c63;margin-right:3px}
.base-label.district{letter-spacing:1px;font-size:10px;font-weight:700;color:#929a83}.base-label.landmark{color:#7e8f70}
.exact-pin .place-dot{width:15px;height:15px;border:2px solid #fff;box-shadow:0 1px 3px #203d3166}
.exact-pin.is-plan-stop .place-dot{width:23px;height:23px}
.pin-leaders .label-leader{stroke:#7f8e78;stroke-width:1;opacity:.7}
.map-compass{position:absolute;top:53px;right:15px;display:grid;text-align:center;font-size:24px;color:#4e6754;background:#fffdf6e8;width:31px;border-radius:6px;line-height:25px;pointer-events:none}.map-compass b{font:700 10px system-ui;padding-bottom:5px}
.map-distance{position:absolute;bottom:8px;left:12px;border:solid #62735e;border-width:0 1px 2px;text-align:center;font:600 10px/18px system-ui;color:#52624e;background:#fffdf4c9;pointer-events:none;z-index:10}
.map-attribution{position:absolute;bottom:3px;right:4px;padding:3px 4px;background:#fffef8e8;font:8px/14px system-ui;color:#6b7364;z-index:10}.map-attribution a{color:inherit;text-decoration:none}.map-attribution a:hover{text-decoration:underline}
.map-visibility-note{bottom:34px;left:8px;right:8px;font-size:9px;padding:4px;background:#fffef8dd;white-space:normal}
.map-point-choices{position:absolute;bottom:62px;left:10px;right:10px;max-height:55%;overflow:auto;background:#fffdf5;border:1px solid #bccbb4;box-shadow:0 4px 24px #263e3140;border-radius:12px;padding:12px;z-index:12;cursor:default}.map-point-choices[hidden]{display:none}.map-point-choices>div{display:flex;justify-content:space-between;align-items:center;font:600 13px system-ui}.map-point-choices>div button{background:none;border:0;font-size:22px;width:34px;height:34px}.map-point-choices>p{font:11px/1.5 system-ui;margin:0 0 8px;color:#75836b}.point-choice{display:flex;align-items:center;gap:10px;border:0;border-top:1px solid #e1e6d8;background:none;padding:12px 0;width:100%;min-height:44px;text-align:left;font:600 12px/1.5 system-ui;color:#2f503b}.point-choice i{width:14px;height:14px;flex-shrink:0;border-radius:50%}.point-choice b{margin-left:auto}
@media(max-width:520px){.map-attribution{font-size:7px}.map-distance{font-size:9px;bottom:7px}.map-compass{right:10px}.base-label{font-size:10px}}
/* JR station and exits use a transport style distinct from tourism pins. */
.base-label.station-main{display:flex;gap:6px;padding:4px 6px;background:#244e3b;color:#fffdf4;border:1px solid #fffdf6;border-radius:7px;box-shadow:0 2px 10px #223e3150;text-shadow:none;font:700 11px/13px system-ui;z-index:1}
.base-label.station-main .jr-badge{display:grid;place-items:center;width:22px;height:22px;border:1px solid #b9cfb7;border-radius:4px;font:800 12px system-ui;color:#fff4c9;font-style:normal;flex-shrink:0}
.base-label.station-main strong{display:block;font-size:11px;letter-spacing:0}.base-label.station-main small{display:block;font-size:9px;line-height:11px;font-weight:500;letter-spacing:1px;margin-top:0;color:#e0ebd9}
.station-access{position:absolute;inset:0;pointer-events:none;z-index:3}.station-exit-leaders{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.station-exit-leaders line{stroke:#a87930;stroke-width:1.3}
.station-exit{position:absolute;transform:translate(-50%,-50%);width:44px;height:44px;display:grid;place-items:center;border:0;padding:0;background:none;color:#6b4b17;pointer-events:auto;cursor:pointer}
.station-exit>i{display:grid;place-items:center;width:18px;height:18px;background:#fff1c8;border:2px solid #a87930;border-radius:4px;font:bold 14px/1 system-ui;font-style:normal;box-shadow:0 1px 3px #31442d30}
.exit-label{position:absolute;display:flex;flex-direction:column;justify-content:center;height:39px;padding:3px 7px;background:#fff7df;border:1px solid #c5a26a;border-radius:6px;white-space:nowrap;box-shadow:0 1px 4px #31442d22;text-align:center}
.exit-label strong{font:700 11px/15px system-ui;color:#674815}.exit-label small{font:500 10px/13px system-ui;color:#8b6b37}.station-exit:focus-visible{outline:2px solid #946421;outline-offset:2px;border-radius:8px}.station-exit:hover .exit-label{background:#ffe7a8}
.map-point-choices .exit-floor{font-weight:700;color:#8b621e;margin:2px 0 6px}.exit-official{display:inline-block;min-height:40px;padding-top:9px;font:600 11px/1.5 system-ui;color:#315d45;text-underline-offset:3px}
.base-label.station-main{z-index:4}
.station-exit>i{font-size:10px;font-weight:800;width:22px;height:20px}

/* Food map shell: shares the geographic map, with separate filter and view state. */
.map-mode-switch{display:flex;align-items:center;justify-content:center;gap:14px;background:#fff5e8;color:#854d21;border:1px solid #dfba90;border-radius:9px;padding:11px 16px;font-weight:650;font-size:12px;min-height:44px}.mapsection>.map-mode-switch{margin-top:15px;width:100%;order:1}.map-mode-switch:hover{background:#f7e5cf}
#food{max-width:1680px;min-height:calc(100vh - 130px);margin:0 auto;padding:28px 30px}#food h1{font:34px/1.15 Georgia;max-width:none;margin:6px 0 8px}#food p{max-width:none}.food-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.food-heading p{margin:0;font-size:12px}.food-layout{display:grid;grid-template-columns:255px minmax(0,1fr) 260px;gap:24px}.food-filters{padding:18px;border:1px solid var(--line);border-radius:13px;background:#fffdf8;align-self:start}.food-filters fieldset{border:0;padding:0;margin:22px 0}.food-filters legend,.food-budget-label{font-size:12px;font-weight:700;margin-bottom:10px}.food-choices{display:flex;flex-wrap:wrap;gap:7px}.food-choices label{position:relative;cursor:pointer}.food-choices input{position:absolute;opacity:0;width:1px;height:1px}.food-choices span{display:block;border:1px solid #dfe1d4;border-radius:8px;padding:10px 12px;font-size:11px;background:#fffefb;min-height:42px}.food-choices input:checked+span{background:#f4e0c6;border-color:#b77d44;color:#74421e;font-weight:650}.food-choices input:focus-visible+span{outline:3px solid #c59052;outline-offset:2px}.food-budget-label{display:block}.food-budget-label select{display:block;width:100%;margin-top:10px;padding:12px 8px;background:#fffefb;border:1px solid #dfe1d4;border-radius:8px;color:var(--ink);font:inherit}#food .food-scope{font-size:10px;line-height:1.6;margin:8px 0}.food-map-column{min-width:0}.food-map-status{display:flex;align-items:center;gap:10px;color:#7b806e;font-size:10px;margin:0 0 9px}.food-draft-badge{background:#f2e2cd;color:#81562e;font-size:9px;letter-spacing:1px;font-weight:700;padding:5px 8px;border-radius:5px}#food-map-slot>.local-map{height:590px;aspect-ratio:auto;width:100%;margin:0;max-width:none}#food .food-map-help{font-size:10px;margin:10px 0;color:#7d8777}.food-results{padding:18px 0;min-width:0}.food-results h2{font:25px Georgia;margin:8px 0 12px}.food-results h2 span{font:12px system-ui;background:#f1e4d1;padding:4px 8px;border-radius:20px}.food-results #food-summary{font-size:11px;line-height:1.8;overflow-wrap:anywhere}.food-empty{border:1px dashed #d8cfbf;border-radius:12px;padding:24px 18px;margin-top:20px;background:#fffdf8}.food-empty>span{font-size:32px;color:#b57d42}.food-empty h3{font:23px Georgia;margin:12px 0}.food-empty p{font-size:12px;line-height:1.8}
@media(max-width:1100px){.food-layout{grid-template-columns:235px minmax(0,1fr)}.food-results{grid-column:1/-1;padding:0}.food-empty{margin-top:12px}.food-heading{align-items:flex-start}}
@media(max-width:650px){#food{padding:20px 12px;margin:0}#food h1{font-size:29px}.food-heading{display:block;margin-bottom:16px}.food-heading>.map-mode-switch{width:100%;margin-top:15px}.food-layout{display:flex;flex-direction:column;gap:16px}.food-filters{width:100%;padding:14px}.food-filters fieldset{margin:16px 0}.food-choices span{min-height:44px;padding:11px 12px}.food-filters .filtertitle h2{font-size:14px}#food-map-slot>.local-map{height:480px}.food-results{padding:0 3px}.food-map-status{flex-wrap:wrap;gap:6px}}

.food-filter-panel{min-width:0;align-self:start}.food-filter-panel>summary{cursor:pointer;padding:12px 15px;background:#f4eadb;border:1px solid #e1d2bd;border-radius:9px;font-weight:650;min-height:44px}.food-filter-panel>summary span{font-size:10px;font-weight:400;margin-left:8px}.food-filter-panel[open]>summary{margin-bottom:8px}@media(min-width:651px){.food-filter-panel>summary{font-size:12px}}@media(max-width:650px){.food-filter-panel{width:100%}.food-filter-panel>summary{display:list-item;list-style-position:inside}}

/* Compact, always discoverable planner. Entire header toggles in one tap. */
.planner-panel{padding:0;overflow:hidden}.planner-shell>.planner-launch{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 15px;cursor:pointer;list-style:none;min-height:78px}.planner-launch::-webkit-details-marker{display:none}.planner-launch:focus-visible{outline:3px solid #d59b5b;outline-offset:-4px}.planner-launch .planner-heading{align-items:center;min-width:0}.planner-launch .planner-heading h3{font-size:21px;margin:3px 0 4px}.planner-launch .eyebrow{font-size:7px}.planner-launch-action{display:flex;align-items:center;gap:9px;flex-shrink:0;background:#315d45;color:#fffdf4;padding:10px 13px;border-radius:8px;font-size:11px;font-weight:650;min-height:44px}.planner-launch-action b{font-size:16px}.planner-close-label{display:none}.planner-shell[open]>.planner-launch .planner-open-label{display:none}.planner-shell[open]>.planner-launch .planner-close-label{display:inline}.planner-shell[open]>.planner-launch .planner-launch-action b{transform:rotate(180deg)}.planner-shell[open]>.planner-launch{border-bottom:1px solid #d7dfcc}.planner-shell-body{padding:0 18px 16px}.planner-launch .planner-heading p{font-size:10px}
@media(max-width:520px){.planner-shell>.planner-launch{padding:10px;gap:7px;min-height:80px}.planner-launch .planner-spark{display:none}.planner-launch .planner-heading h3{font-size:19px;line-height:1.15;max-width:215px}.planner-launch .planner-heading p{font-size:9px}.planner-launch-action{padding:9px 10px;font-size:10px;gap:6px}.planner-launch .eyebrow{display:none}.planner-shell-body{padding:0 13px 13px}.planner-panel{padding:0}}

/* Warm city guide palette: evergreen, coral, apricot and clear mint parkland. */
:root{--paper:#fff8ee;--ink:#243f3b;--green:#20594e;--muted:#64776f;--line:#e6d9c6;--orange:#e6a057;--coral:#b94e38;--mint:#e3efe2;--cream:#fff8ee}
body{background:radial-gradient(ellipse at 90% 0%,#ffe4cd70,transparent 42%),var(--paper);color:var(--ink)}
header{background:#1d5148;border-bottom:3px solid #e7ad61;box-shadow:0 3px 16px #244b3b10}.brand{color:#fff8e9}.brandmark{background:#fff0cb;color:#20594e;box-shadow:0 2px 0 #0001}.brandmark span{color:#c65b40}.brand small{color:#d5e5d5}.navtab{color:#e0e9dc}.navtab:hover{background:#ffffff12;color:white}.navtab.active{background:#fff0d1;color:#245147;box-shadow:0 2px 6px #0001}.prototype{color:#e1e9dd;border-color:#ffffff40}
aside{background:#f3efde;border-right-color:#ddd9c3}.sidehead h1{color:#26594d}.sidehead p,.filterhelp{color:#64766b}.sidefoot{color:#547b63}.sidefoot span{color:#d48b57}.eyebrow{color:#8b563b}.textbtn{color:#476756}.area-button.selected{background:#dce9d5;border-color:#b7cdb5;color:#184c3b}.area-button:hover{background:#e6edda}.category-button:hover{background:#f5e9d6}.category-button.selected{background:#e0ebd8;border-color:#b9cdb3}.check{border-color:#aebda6}
.mapheading h2{color:#245b4e}.mapheading .eyebrow{color:#a05235}.mapbadge{color:#775f44}.map-mode-switch{background:#ffead6;color:#904325;border-color:#d7a275;box-shadow:0 2px 0 #ad744315}.map-mode-switch:hover{background:#ffdfbd}.back-map{background:#fffaf0;border-color:#d9c8ae;color:#3d6654}.planner-panel{background:linear-gradient(110deg,#e3edda,#fff0d4 65%,#ffe0c7);border-color:#c8d0b2;box-shadow:0 3px 10px #7253340a}.planner-launch .planner-heading h3{color:#275c4c}.planner-launch .planner-heading p{color:#596e5e}.planner-launch-action{background:#246354;color:#fff8e7;box-shadow:0 2px 0 #173d3320}.planner-launch:hover{background:#fff8e93d}.planner-shell[open]>.planner-launch{border-color:#d2cfad}.primary,.expand-map{background:#235e50;color:#fff9e9}.primary:hover,.expand-map:hover{background:#174d41}.map-jumps button{border-color:#dbcdb5;background:#fffaf0;color:#4b6454}.map-jumps button.selected{background:#dce9d0;border-color:#aac39f;color:#254f3f}.mobile-cats button,.mobile-areas button{background:#fffaf1;border-color:#dcccb4;color:#3f5e4b}.mobile-cats button.selected{background:#dfebd5;border-color:#abc29d}.mobile-areas button.selected{background:#245d4d;color:#fff8e7}.map-legend{background:#fffaf1;border-color:#dfd2ba}.legend-title{color:#8a6241}.local-map,.mapcanvas{border-color:#d3c4a9;box-shadow:0 5px 18px #65563a12;background:#f2ebdf}.base-parks{fill:#c9dfbd;stroke:#b1cea5}.base-water{fill:#a8d6d8}.base-buildings{fill:#dfd3c1;stroke:#d1c3ac}.base-major{stroke:#fffdf4}.base-minor{stroke:#fffbef}.base-rail{stroke:#8c9c85}.base-label.road{color:#72694e}.base-label.station{background:#f3f7e9f5;color:#345d4a;border-color:#bac8a7}.base-label.district{color:#65805c}.base-label.station-main{background:#1d5d4c;border-color:#fff1c9;color:#fffbea;box-shadow:0 2px 8px #183f3e35}.base-label.station-main .jr-badge{background:#fff0c8;color:#235b4b;border-color:#fff2c9}.named-pin .local-pin-name{background:#fffdf5f5;border-color:#d9cdb6;color:#2c5547;box-shadow:0 2px 5px #5c4b2f12}.mapnote{border-color:#dfcdb1}.mapnote>span{color:#c77c49}.mapnote strong{color:#8b4c32}.mapnote p,.mapfooter{color:#637466}.map-tools{border-color:#cfbea0}.map-tools button{background:#fffaf0;color:#24594c;border-color:#e4d5bd}.map-compass,.map-scale-label,.map-attribution{background:#fffaf0ed;color:#52674e}.map-visibility-note{background:#fff7e9ed;color:#665e46}.station-exit>i{background:#ffe8aa;border-color:#a27730}.exit-label{background:#fff1cc;border-color:#b99659}.exit-label strong{color:#644613}.exit-label small{color:#795a27}
.results{background:#fffaf2;border-color:#e6d6bf}.resulthead h2{color:#315d4c}.resulthead h2>span{background:#f3dec0;color:#7d4c2e}.result-sort-note{color:#6e786c}.spot-card{background:#fffdf8;border-color:#e1d2ba;box-shadow:0 3px 12px #67472208}.spot-card:hover{box-shadow:0 7px 20px #67472215;border-color:#cb9b6a}.card-body h3{color:#2d5b49}.card-desc,.card-hours{color:#5d6f60}.card-rating{color:#765633}.card-area{color:#8b5d3a}.tags span{background:#f6e8d2;color:#735735}.card-meta{border-color:#e8ddcb;color:#657360}.card-meta b{color:#a14b30}.entry-tag{background:#e6eedb;color:#375b3f}.chip{background:#f9e7cf;border-color:#dfbd8e;color:#80502c}.local-preview{background:#fff9ec;border-color:#d8c9aa}.preview-prompt strong{color:#536e47}.preview-prompt>span{color:#c47a46}.preview-prompt p{color:#65745e}.resultfoot{color:#6b7869}.resultfoot p{color:#6b7869}
#food h1,.food-results h2{color:#285e4d}.food-filter-panel>summary{background:#f8e1bf;border-color:#d6b184;color:#714d2c}.food-filters,.food-empty{background:#fffdf5;border-color:#decdb1}.food-empty>span{color:#b96540}.food-empty h3{color:#8d5034}.food-heading .eyebrow{color:#a25735}#food p{color:#5e735e}.food-draft-badge{background:#eed3ae;color:#7b4b27}.food-choices input:checked+span{background:#f5d8b1;border-color:#bb7d43;color:#75421f}.pagefooter{background:#ecedda;color:#5b715e;border-color:#d2d5ba}
dialog{background:#fffaf0}.detailbody h1,.detailbody h2{color:#2d5d4c}.detailbody>p{color:#586d5d}.spot-media{border-color:#dfd0b8}.notice{background:#f7e7ca;border-color:#c78143;color:#6d573b}
@media(prefers-reduced-motion:no-preference){.navtab,.map-mode-switch,.primary,.area-button,.planner-launch{transition:background-color .16s ease,box-shadow .16s ease}}

/* Gesture frames move existing layers; labels are laid out only after settling. */
.map-overlay{position:absolute;inset:0;transform-origin:0 0;pointer-events:none}.map-overlay .base-labels{overflow:visible}.map-moving .map-overlay{will-change:transform}.map-moving .map-overlay button{pointer-events:none}.map-moving{cursor:grabbing}.map-overlay .local-pins,.map-overlay .station-access,.map-overlay svg{overflow:visible}

/* Bound raster and compositor surfaces to the visible map, including on high-DPR phones. */
.map-basemap{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none;contain:strict}.map-overlay{contain:layout style}.map-overlay .local-pin,.map-overlay .station-exit{touch-action:none}

/* Shared destination photography. Full image preserved; credits stay outside the card link. */
.card-art:has(.card-photo){background:#eae8dc}.card-photo{width:100%;height:100%;display:block;object-fit:contain}.card-photo-date{position:absolute;bottom:7px;left:8px;padding:3px 6px;border-radius:4px;background:#fffaf0eb;font:9px/1.4 system-ui;color:#3f5e4b}.card-photo-credit{font:9px/1.5 system-ui;color:#667466;padding:8px 14px;margin:0;border-top:1px solid #e8ddcb;overflow-wrap:anywhere}.card-photo-credit a{text-underline-offset:2px}.preview-art .card-photo{position:absolute;inset:0}.preview-art .card-photo-date{display:none}.about-map{border:0;background:transparent;color:inherit;white-space:nowrap;font-size:11px;text-decoration:underline;text-underline-offset:4px;padding:10px 0}
/* Lightweight welcome: text opacity/translation only, no video or blur. */
body.welcome-open{overflow:hidden}.welcome{inset:0;margin:0;width:100%;max-width:none;height:100dvh;max-height:none;border-radius:0;box-shadow:none;background:#fff8ec;color:#245b4e;overflow:auto}.welcome::backdrop{background:#fff8ec;backdrop-filter:none}.welcome-inner{min-height:100%;max-width:1080px;margin:auto;padding:35px 48px 24px;display:flex;flex-direction:column;background:radial-gradient(ellipse at 90% 26%,#f3dec480,transparent 58%)}.welcome-brand{display:flex;align-items:center;gap:6px;font:700 19px system-ui;letter-spacing:-.5px;text-decoration:none}.welcome-brand span{font-weight:400}.welcome-brand i{margin-left:auto;color:#be7546;font:48px Georgia;font-style:normal}.welcome-copy{max-width:650px;width:100%;margin:45px auto}.welcome-copy>.eyebrow{color:#9b593a;letter-spacing:2px}.welcome h1{font:normal clamp(56px,8vw,96px)/1.03 Georgia;margin:16px 0 22px;letter-spacing:-3px}.welcome h1 em{color:#a15c3a;font-weight:normal}.welcome-copy>p:not(.eyebrow):not(.welcome-footnote){font-size:19px;line-height:1.6;color:#607568;margin:0}.welcome-steps{list-style:none;padding:0;margin:30px 0;display:grid;gap:18px}.welcome-steps li{display:flex;align-items:start;gap:17px}.welcome-steps li>span{font:italic 23px Georgia;color:#b8784c;width:33px;padding-top:1px}.welcome-steps strong{font-size:15px;font-weight:650}.welcome-steps p{font-size:13px;color:#728071;margin:3px 0 0}.welcome-start{display:flex;align-items:center;justify-content:space-between;width:260px;max-width:100%;padding:16px 20px;font-size:14px}.welcome-start span{font-size:22px}.welcome-footnote,.welcome-bottom{font:11px/1.5 system-ui;color:#788271}.welcome-footnote{margin:13px 0 0}.welcome-bottom{margin:auto 0 0;padding-top:15px;border-top:1px solid #e4d6bf}
@media(prefers-reduced-motion:no-preference){.welcome[open] .welcome-copy{animation:welcome-reveal .65s ease-out both}@keyframes welcome-reveal{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}}
@media(max-width:650px){.welcome-inner{padding:20px 25px}.welcome-brand{font-size:16px}.welcome-brand i{font-size:36px}.welcome-copy{margin:32px auto}.welcome h1{font-size:58px;letter-spacing:-2px;margin:14px 0 20px}.welcome-copy>p:not(.eyebrow):not(.welcome-footnote){font-size:17px}.welcome-steps{gap:18px;margin:26px 0}.welcome-steps p{font-size:12px}.welcome-start{width:100%;min-height:54px}.about-map{font-size:9px}header{gap:8px}.welcome-bottom{font-size:10px}}
@media(max-width:650px){body>header{height:auto;min-height:72px;display:grid;grid-template-columns:minmax(0,1fr) auto;padding:12px 16px;row-gap:5px}body>header .brand{font-size:16px;gap:7px}body>header .brandmark{width:28px;height:32px;font-size:33px}body>header nav{margin:0;gap:0}body>header .navtab{font-size:10px;padding:8px}body>header .about-map{grid-column:1/-1;justify-self:end;padding:2px 0}}
/* Concise experience first; one practical-information panel on both detail surfaces. */
.detailbody .experience-actions h2{font:normal 23px Georgia;color:#275c4c;margin:22px 0 12px}.detailbody .experience-actions ul{list-style:none;padding:0;margin:0 0 24px;display:grid;gap:9px}.experience-actions li{position:relative;padding:11px 14px 11px 38px;background:#edf1e4;border-radius:8px;font-size:14px;line-height:1.55;color:#365a46}.experience-actions li::before{content:'✓';position:absolute;left:14px;top:11px;color:#9c623b;font-weight:700}.detailbody .visit-summary{margin:26px 0;border:1px solid #d9c9ac;border-radius:13px;background:#fff9ed;overflow:hidden}.detailbody .visit-summary>h2{margin:0;padding:17px 20px;background:#e6ecd9;font:normal 23px Georgia;color:#275c4c}.visit-summary-row{display:grid;grid-template-columns:112px minmax(0,1fr);gap:18px;padding:20px;border-top:1px solid #e6d9c0}.visit-summary-row>h3{font:650 13px/1.6 system-ui;margin:0;color:#8c5534}.visit-summary-row>div{min-width:0;font-size:13px;color:#506653;overflow-wrap:anywhere}.visit-summary .spot-cost-box,.visit-summary .location-section,.visit-summary .location-box{border:0;background:transparent;box-shadow:none;border-radius:0;padding:0;margin:0}.visit-summary .spot-cost-box strong{font:650 16px/1.5 system-ui;color:#285b48}.visit-summary .spot-cost-box p{font-size:13px;line-height:1.6;margin:7px 0}.visit-summary small,.visit-summary .source-note,.visit-summary .location-source{font-size:10px;line-height:1.6;color:#78816f}.practical-hours{margin:0;display:grid;gap:10px}.practical-hours>div{display:grid;gap:2px}.practical-hours dt{font-size:10px;text-transform:uppercase;letter-spacing:.8px;color:#8a795e}.practical-hours dd{margin:0;font-size:13px;line-height:1.6}.visit-summary .location-box+.location-box{margin-top:18px;padding-top:16px;border-top:1px dashed #d9c9ac}.visit-summary .location-box h3{font:650 13px/1.5 system-ui;margin:0 0 7px}.visit-summary .address-en{font-size:13px;line-height:1.6;margin:5px 0}.visit-summary .location-actions{gap:8px;flex-wrap:wrap}.visit-summary .primary{font-size:11px;padding:11px 13px}.visit-summary .location-note{font-size:11px;line-height:1.6}.visit-summary .source-note{margin:12px 0 0}.visit-summary .address-row{gap:8px}.visit-summary .address-ja{overflow-wrap:anywhere}
@media(max-width:520px){.detailbody{padding:24px 20px}.detailbody h1{font-size:29px;padding-right:20px}.visit-summary-row{grid-template-columns:minmax(0,1fr);gap:9px;padding:16px}.visit-summary-row>h3{font-size:12px}.detailbody .visit-summary>h2{padding:15px 16px}.experience-actions li{font-size:13px}.visit-summary .location-actions{align-items:start}.visit-summary .location-actions a{max-width:100%}}

/* Inert layout previews only: no advertiser script, click target or tracking. */
.ad-placeholder{display:block;position:static;transform:none;width:100%;grid-column:1/-1;min-width:0;padding:0;margin:26px 0;border:0;background:none;box-shadow:none;overflow:visible}.ad-label{display:block;text-align:center;font:10px/1.5 system-ui;letter-spacing:.5px;color:#7f8275;margin-bottom:9px}.ad-placeholder-space{height:250px;border:1px dashed #d4c9b8;border-radius:8px;background:#f3efe6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:#8b8b7c;font:13px/1.5 system-ui}.ad-placeholder-space small{font-size:10px;color:#939386}.detailbody>.ad-placeholder{margin:36px 0}.results .ad-placeholder{max-width:100%}

/* Station exits: small tappable markers; instructions stay outside the map. */
.map-exit-hint{order:5;align-self:center;width:100%;max-width:760px;margin:10px auto 0;padding:0 3px;color:#647368;font:11px/1.5 system-ui;text-align:left}
.map-exit-hint+.local-map{margin-top:6px}
.expanded-slot{display:flex;flex-direction:column}
.expanded-slot>.map-exit-hint{order:0;flex:none;max-width:none;margin:0;padding:7px 14px;background:#fffaf0}
.expanded-slot>.local-map{order:1;flex:1;min-height:0;height:auto;margin:0}

/* One-shot approximate location: controls outside the map; non-interactive overlay. */
.locate-panel{order:6;align-self:center;display:flex;align-items:center;gap:12px;width:100%;max-width:760px;margin:8px auto 0;padding:10px 12px;border:1px solid #d9cbb3;border-radius:10px;background:#fffaf0;flex:none}
.locate-panel[hidden]{display:none}.locate-actions{display:flex;align-items:center;gap:5px;flex-shrink:0}.locate-button{display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:9px 12px;border:1px solid #afc3ad;border-radius:8px;background:#e4edda;color:#285b49;font:650 12px system-ui;white-space:nowrap}.locate-button>span{color:#2579b9;font-size:20px;line-height:1}.locate-button:disabled{opacity:.6;cursor:wait}.locate-clear{border:0;background:transparent;text-decoration:underline;min-height:44px;padding:8px;font-size:11px;color:#58705e}.locate-panel p{margin:0;font:11px/1.5 system-ui;color:#3d5f50;overflow-wrap:anywhere}.locate-panel small{display:block;font:9px/1.5 system-ui;color:#74816d;margin-top:3px}.location-snapshot{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}.location-uncertainty{fill:#398dd6;fill-opacity:.12;stroke:#257ac0;stroke-opacity:.4;stroke-width:1.5}.location-dot{fill:#247bc3;stroke:white;stroke-width:2.5}
.expanded-slot>.locate-panel{order:2;max-width:none;width:auto;align-self:stretch;margin:0;border-radius:0;border-width:1px 0 0;padding:8px 12px}.food-map-column .locate-panel{max-width:none}
@media(max-width:520px){.locate-panel{gap:8px;padding:8px;align-items:flex-start}.locate-actions{flex-direction:column;gap:0}.locate-button{padding:9px 10px}.locate-clear{min-height:32px;padding:4px 8px}.locate-panel p{font-size:10px}.locate-panel small{font-size:9px}}

.location-dot-layer{position:absolute;inset:0;width:100%;height:100%;z-index:6;pointer-events:none;overflow:visible}.location-dot-ring{fill:none;stroke:#247bc3;stroke-width:1.5}

.locate-help{margin-top:5px;font:10px/1.5 system-ui;color:#58705e}.locate-help summary{cursor:pointer;text-decoration:underline;text-underline-offset:2px}.locate-help p{margin-top:7px;font-size:10px}.locate-help a{display:inline-block;padding:6px 0;font-weight:600}.expanded-slot>.locate-panel:has(.locate-help[open]){max-height:210px;overflow:auto}

/* Rail landmarks on Asakusa and Ginza maps. */
.base-label.station.rail-highlight{z-index:4;justify-content:flex-start;gap:5px;padding:2px 5px;background:#1d5d4c;color:#fffbea;border:1px solid #fff1c9;border-radius:6px;box-shadow:0 2px 6px #183f3e45;font:700 11px/1 system-ui}
.base-label.station.rail-highlight .rail-badge{display:grid;place-items:center;width:19px;height:17px;flex:none;margin:0;background:#fff0c8;color:#235b4b;border-radius:3px;font:800 9px/1 system-ui}
.rail-label-leaders{position:absolute;inset:0;pointer-events:none;z-index:1}
.rail-label-leaders line{stroke:#1d5d4c;stroke-width:1.5}
.rail-label-leaders circle{fill:#1d5d4c;stroke:#fff1c9;stroke-width:1.25}

.spot-interests{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:8px 0 16px;color:#275441}
.spot-interest-label{font-size:.75rem;font-weight:700;margin-right:2px}
.spot-interest-chip{display:inline-flex;align-items:center;gap:5px;border:1px solid #c7dacd;background:#eef5ef;border-radius:999px;padding:3px 9px;font-size:.8rem;line-height:1.3;font-weight:600}

.spot-interest-icon{display:inline-block;width:16px;height:16px;flex:none;font-size:15px;line-height:16px;text-align:center;object-fit:contain}

.replaced-by-explore{display:none!important}
.unified-explore{order:2;margin:8px 0 12px;border:1px solid #cddbc2;border-radius:12px;background:#fffdf6;color:#254e3e;min-width:0}
.unified-explore>summary{display:flex;justify-content:space-between;align-items:center;gap:8px;cursor:pointer;padding:10px 12px;list-style:none;font-size:.92rem}
.unified-explore>summary::-webkit-details-marker{display:none}
.unified-explore>summary span{font-size:.78rem;text-align:right}
.unified-explore>summary span::after{content:" ＋";display:inline-block;margin-left:.2em;font-size:1.1rem;font-weight:800;line-height:1;vertical-align:middle}
.unified-explore[open]>summary span::after{content:" −"}
.unified-body{padding:0 10px 10px}
.explore-tabs,.explore-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin:6px 0}
.explore-tabs button,.explore-options button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:5px 6px;border:1px solid #cfdbcd;border-radius:8px;background:#fffdf7;color:#254e3e;font:600 .8rem/1.25 system-ui;cursor:pointer}
.explore-options button:last-child:nth-child(odd){grid-column:1/-1}
.explore-tabs button{background:#edf2d6;border-color:#b9c698;color:#314620;font-weight:800}
.explore-tabs button[aria-pressed=true]{background:#d0e2a3;border-color:#829e4d;color:#263c1a;box-shadow:inset 0 -2px #829e4d}
.explore-tabs button:focus-visible{outline:2px solid #526d2c;outline-offset:2px}
.explore-heading{display:flex;align-items:baseline;flex-wrap:wrap;column-gap:9px;row-gap:2px;min-width:0}
.explore-heading small{font-size:.74rem;color:#52614e;font-weight:700;line-height:1.35}
#explore-summary{flex:none}
.explore-options button[aria-pressed=true]{background:#e2efdf;border-color:#427954;box-shadow:inset 0 0 0 1px #427954}
.explore-dot{width:10px;height:10px;border-radius:50%;flex:none}
.explore-hint{font-size:.76rem;margin:5px 0;color:#4c6556}
.explore-hint:empty{display:none}
.explore-actions{display:flex;align-items:center;gap:4px 9px;flex-wrap:wrap}
.explore-actions button{font-size:.77rem;min-height:36px}
.explore-options button:disabled,.explore-actions button:disabled,.unified-explore button:disabled{opacity:.55;cursor:default}
.unified-explore .planner-panel{margin:7px 0 0;width:100%;max-width:none;background:#f3f7ef}
.unified-explore .planner-launch{padding:7px 10px;min-height:38px}
.unified-explore .planner-heading .eyebrow,.unified-explore .planner-heading p,.unified-explore .planner-spark{display:none}
.unified-explore .planner-heading h3{font-size:.88rem;margin:0}

.expand-map-actions{order:6;width:100%;max-width:760px;align-self:center;margin:8px 0 0}
