:root{--bg:#f6f3ee;--paper:#fffdf9;--ink:#1e1c19;--muted:#8a847a;--line:#e7e1d7;--accent:#c2410c;--radius:16px;color:var(--ink);background:var(--bg);font-family:Inter,-apple-system,PingFang SC,Hiragino Sans GB,sans-serif}*{box-sizing:border-box}html,body{touch-action:pan-x pan-y}body{margin:0;padding:0 clamp(16px,4vw,48px) 64px}body.locked{overflow:hidden}button,select,input{font:inherit;color:inherit}.top{z-index:5;background:linear-gradient(var(--bg) 80%, transparent);justify-content:space-between;align-items:center;gap:24px;padding:28px 0 20px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:14px;display:flex}.mark{width:auto;height:44px;display:block}.brand h1{letter-spacing:-.5px;margin:0;font-size:22px}.brand p{color:var(--muted);margin:2px 0 0;font-size:13px}.search{box-sizing:border-box;background:var(--paper);border:1px solid var(--line);border-radius:999px;flex:0 460px;align-items:center;gap:10px;height:46px;min-height:46px;padding:0 14px;transition:border-color .2s,box-shadow .2s;display:flex}.search:focus-within{border-color:var(--ink);box-shadow:0 0 0 4px #1e1c1910}.search svg{fill:none;width:18px;stroke:var(--muted);stroke-width:2px;stroke-linecap:round}.search input{background:0 0;border:0;outline:0;flex:1;font-size:15px}.search kbd{color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:1px 7px;font-size:12px}.topic-link{color:var(--ink);white-space:nowrap;border-bottom:1px solid #bcb3a5;flex:none;padding:7px 0;font-size:13px;text-decoration:none}.topic-link span{margin-left:5px}.cats{flex-wrap:wrap;gap:8px;display:flex}.venues{flex-direction:column;gap:14px;display:flex}.venues>.all{align-self:flex-start}.area{flex-direction:column;gap:7px;min-width:0;display:flex}.area-name{letter-spacing:.6px;text-transform:uppercase;color:var(--muted);align-items:baseline;gap:6px;padding-left:4px;font-size:11px;display:inline-flex}.area-name small{font-size:10px}.area-venues{flex-wrap:wrap;gap:8px;display:flex}.venues button,.cats button{border:1px solid var(--line);background:var(--paper);cursor:pointer;border-radius:999px;align-items:baseline;gap:7px;padding:8px 15px;transition:all .15s;display:inline-flex}.venues button{padding:10px 18px;font-size:15px}.venues button:hover,.cats button:hover{border-color:#c9c1b4}.venues button.on,.cats button.on{background:var(--ink);border-color:var(--ink);color:var(--bg)}.venues small,.cats small{opacity:.55;font-variant-numeric:tabular-nums;font-size:11px}.venue-note:empty{display:none}.venue-note{margin:22px 0 4px}.venue-note h2{letter-spacing:-.5px;margin:0;font-size:28px}.venue-note h2 span{color:var(--muted);margin-left:6px;font-size:18px;font-weight:400}.venue-note p{color:#5d584f;max-width:680px;margin:6px 0 0;line-height:1.6}.venue-note .addr{color:var(--muted);font-size:13px}.floors{flex-wrap:wrap;align-items:center;gap:6px;margin-top:18px;display:flex}.floors[hidden]{display:none}.floors-label{color:var(--muted);letter-spacing:.5px;margin-right:6px;font-size:12px}.floors button{border:1px solid var(--line);background:var(--paper);font-variant-numeric:tabular-nums;cursor:pointer;border-radius:10px;align-items:baseline;gap:6px;padding:6px 12px;font-size:13px;transition:all .15s;display:inline-flex}.floors button:hover{border-color:#c9c1b4}.floors button.on{background:var(--ink);border-color:var(--ink);color:var(--bg)}.floors small{opacity:.55;font-size:11px}.toolbar{border-top:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:16px;margin:22px 0 18px;padding-top:18px;display:flex}.cats button{font-size:13px}.sort{flex:none;position:relative}.sort-btn{border:1px solid var(--line);background:var(--paper);cursor:pointer;border-radius:999px;outline:none;align-items:center;gap:8px;padding:8px 12px 8px 15px;font-size:13px;transition:border-color .15s;display:inline-flex}.sort-btn:hover,.sort-btn[aria-expanded=true]{border-color:#c9c1b4}.sort-btn:focus-visible{box-shadow:0 0 0 3px #1e1c1914}.sort-btn svg{fill:none;width:14px;stroke:var(--muted);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s}.sort-btn[aria-expanded=true] svg{transform:rotate(180deg)}.sort-menu{z-index:10;background:var(--paper);border:1px solid var(--line);border-radius:14px;min-width:128px;margin:0;padding:5px;list-style:none;animation:.14s ease-out pop;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 16px 36px -18px #3b2e1a66}.sort-menu li{cursor:pointer;border-radius:9px;justify-content:space-between;gap:12px;padding:8px 12px;font-size:13px;display:flex}.sort-menu li:hover{background:#f3eee6}.sort-menu li[aria-selected=true]{font-weight:600}.sort-menu li[aria-selected=true]:after{content:"✓";color:var(--accent)}@keyframes pop{0%{opacity:0;transform:translateY(-4px)}}.grid{grid-template-columns:repeat(auto-fill,minmax(232px,1fr));gap:18px;display:grid}.card{text-align:left;border:1px solid var(--line);background:var(--paper);border-radius:var(--radius);cursor:pointer;flex-direction:column;padding:0;transition:transform .2s,box-shadow .2s;display:flex;overflow:hidden}.card:hover{transform:translateY(-3px);box-shadow:0 14px 30px -18px #3b2e1a55}.media{aspect-ratio:4/3;background:#efeae2;place-items:center;display:grid;overflow:hidden}.media img{object-fit:cover;width:100%;height:100%}.media.logo{border-bottom:1px solid var(--line);background:#fff}.media.logo img{object-fit:contain;padding:18%}.ph{letter-spacing:-1px;width:100%;height:100%;color:hsl(var(--h,30) 35% 35%);background:hsl(var(--h,30) 40% 90%);place-items:center;font-size:34px;font-weight:700;display:grid}.info{flex-direction:column;flex:1;gap:4px;padding:14px 16px 16px;display:flex}.info h3{margin:6px 0 0;font-size:16px;line-height:1.3}.zh-name{color:#5d584f;margin:0;font-size:13px}.desc{color:#6b665d;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:4px 0 0;font-size:13px;line-height:1.55;display:-webkit-box;overflow:hidden}.meta{color:var(--muted);margin:auto 0 0;padding-top:10px;font-size:12px}.row{justify-content:space-between;align-items:center;gap:8px;display:flex}.rate{color:#b45309;font-size:12px;font-weight:600}.rate i{color:var(--muted);margin-left:3px;font-style:normal;font-weight:400}.cat{color:#6b5a40;white-space:nowrap;background:#efe9df;border-radius:999px;flex:none;padding:3px 9px;font-size:11px;line-height:1.5}.c-food{color:#9a3412;background:#fde8dc}.c-tea{color:#3f7a2e;background:#e6f2e1}.c-cafe{color:#92600e;background:#fbeed3}.c-fashion{color:#3f3f9a;background:#e6e7fb}.c-accessories{color:#6d3a8f;background:#efe3f7}.c-beauty,.c-salon{color:#9d2b52;background:#fbe3ea}.c-health{color:#1d6b4f;background:#ddf2ea}.c-tech{color:#1f5f8b;background:#dfeef9}.c-fun{color:#8a6400;background:#fff1c9}.c-living{color:#44682a;background:#e5efdc}.empty{text-align:center;color:var(--muted);padding:80px 0}.sheet{z-index:20;justify-content:flex-end;display:flex;position:fixed;inset:0}.sheet[hidden]{display:none}.sheet-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#1e1c1955;animation:.2s fade;position:absolute;inset:0}.sheet-body{background:var(--paper);width:min(520px,100%);height:100%;animation:.28s cubic-bezier(.2,.8,.2,1) slide;position:relative;overflow-y:auto;box-shadow:-20px 0 60px -30px #000}.close{z-index:2;cursor:pointer;background:#fffd;border:0;border-radius:50%;width:36px;height:36px;font-size:22px;position:absolute;top:14px;right:14px}.gallery{scroll-snap-type:x mandatory;aspect-ratio:16/10;background:#efeae2;display:flex;overflow-x:auto}.gallery img,.gallery .media{object-fit:cover;scroll-snap-align:start;flex:0 0 100%;width:100%;height:100%}.gallery img:first-child{object-fit:contain;background:#fff}.sheet-text{padding:22px 28px 40px}.sheet-text h2{letter-spacing:-.5px;margin:12px 0 2px;font-size:26px}.lead{margin:14px 0 8px;font-size:15px;line-height:1.75}.en{color:var(--muted);font-size:13px;line-height:1.6}dl{grid-template-columns:52px 1fr;gap:10px 14px;margin:22px 0;font-size:14px;display:grid}dt{color:var(--muted)}dd{margin:0;line-height:1.5}dd a{color:inherit}.tags{flex-wrap:wrap;gap:6px;display:flex}.tags span{background:#f1ece4;border-radius:6px;padding:2px 8px;font-size:12px}.links{flex-wrap:wrap;gap:8px;display:flex}.links a{color:var(--ink);border:1px solid var(--line);border-radius:999px;padding:8px 14px;font-size:13px;text-decoration:none}.links a:first-child{background:var(--ink);color:var(--bg);border-color:var(--ink)}@keyframes fade{0%{opacity:0}}@keyframes slide{0%{opacity:0;transform:translate(40px)}}@media (width<=640px){.top{flex-direction:column;align-items:stretch;gap:14px}.search{flex:none}.topic-link{align-self:flex-end;margin-top:-4px}.sort{align-self:flex-start}.sort-menu{left:0;right:auto}.toolbar{flex-direction:column-reverse}.grid{grid-template-columns:repeat(2,1fr);gap:12px}.info{padding:12px}.info>.row{flex-wrap:wrap;row-gap:6px}.info>.row>.rate{flex-basis:100%}.rate{white-space:nowrap}.area-venues{scrollbar-width:none;flex-wrap:nowrap;padding-bottom:2px;overflow-x:auto}.area-venues button{flex:none}}.tools-r{flex:none;align-items:center;gap:8px;display:flex}.fresh{border:1px solid var(--line);background:var(--paper);cursor:pointer;color:#9a3412;border-radius:999px;align-items:baseline;gap:7px;padding:8px 14px;font-size:13px;transition:all .15s;display:inline-flex}.fresh[hidden]{display:none}.fresh small{opacity:.6;font-size:11px}.fresh.on{color:#fff;background:#9a3412;border-color:#9a3412}.row-l{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.status{border-radius:999px;padding:3px 8px;font-size:11px;font-weight:600}.s-soon{color:#fde68a;background:#1e1c19}.s-new{color:#166534;background:#dcfce7}.s-closed{color:#57534e;background:#e7e5e4}@media (width<=640px){.tools-r{flex-wrap:wrap;align-self:flex-start}}
