:root{--paper:#f3efe8;--paper-2:#eae4db;--white:#fff;--ink:#111;--ink-2:#3a3530;--muted:#5c564e;--line:#e4ddd4;--coral:#ff4b2a;--coral-deep:#e03a1c;--coral-soft:#ffd8d0;--green:#123d32;--green-mid:#1f5a4a;--black:#111;--serif:"Noto Serif SC", "Songti SC", serif;--sans:"Noto Sans SC", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--latin:"Barlow Condensed", "Noto Sans SC", sans-serif;--shell:1120px;--read:720px;--page-pad:20px;--header-h:64px;--thumb:72px;--rank-w:32px;--hunt-w:44px;--hunt-h:48px;--radius-sm:2px;--radius-md:6px;--focus:2px solid var(--coral);--focus-off:3px;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease:.16s var(--ease-out);--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-8:32px;--s-10:40px;--s-12:48px;--s-16:64px;--shadow-card:0 8px 24px #11111114;color:var(--ink);background:var(--paper)}*,:before,:after{box-sizing:border-box}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:var(--paper)}html,body{overscroll-behavior:none}html,body,#root{background:var(--paper);min-height:100%;color:var(--ink);margin:0}body{font-family:var(--sans);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.4}:focus-visible{outline:var(--focus);outline-offset:var(--focus-off)}:focus:not(:focus-visible){outline:none}a{color:inherit;text-decoration:none}a:visited{color:inherit}button,input,textarea,select{font:inherit;color:inherit}h1,h2,h3{font-family:var(--serif);letter-spacing:0;text-wrap:balance;overflow-wrap:break-word;margin:0;font-weight:900;line-height:1.22}.app{background:var(--paper);flex-direction:column;width:100%;min-height:100%;display:flex}.main{flex:1 0 auto}.shell{width:min(100%, var(--shell));padding-inline:max(var(--page-pad), env(safe-area-inset-left)) max(var(--page-pad), env(safe-area-inset-right));margin-inline:auto}.reader{width:min(100%, var(--read));padding-inline:max(var(--page-pad), env(safe-area-inset-left)) max(var(--page-pad), env(safe-area-inset-right));margin-inline:auto}.site-header{z-index:50;background:var(--paper);border-bottom:1px solid var(--line);width:100%;padding-top:env(safe-area-inset-top,0px);position:sticky;top:0}.site-header:after{content:"";background:var(--coral);pointer-events:none;height:2px;position:absolute;bottom:-1px;left:0;right:0}.header-inner{min-height:var(--header-h);align-items:center;gap:16px;padding-block:12px;display:flex}.brand{-webkit-user-select:none;user-select:none;min-width:0;transition:transform .16s var(--ease-out);align-items:center;gap:10px;display:flex}.brand:active{transform:scale(.97)}.brand-mark{object-fit:contain;object-position:left center;flex:none;width:auto;height:40px;display:block}.wordmark{flex-direction:column;gap:0;line-height:1;display:flex}.wordmark strong{font-family:var(--serif);letter-spacing:0;font-size:1.55rem;font-weight:900}.wordmark span{font-family:var(--latin);letter-spacing:.16em;text-transform:uppercase;color:var(--coral);font-size:.7rem;font-weight:700}.header-actions{flex:none;align-items:center;gap:8px;min-height:44px;margin-left:auto;display:flex}.login-btn{border:1.5px solid var(--ink);min-height:44px;color:var(--ink);cursor:pointer;border-radius:var(--radius-md);white-space:nowrap;transition:background var(--ease), border-color var(--ease), color var(--ease), transform .16s var(--ease-out);-webkit-user-select:none;user-select:none;background:0 0;align-items:center;gap:6px;padding:6px 12px;font-weight:700;line-height:1.4;display:inline-flex}.site-footer{background:var(--paper);border-top:1px solid var(--line)}.footer-inner{padding-block:28px max(40px, env(safe-area-inset-bottom));justify-content:space-between;align-items:flex-end;display:flex}.foot-brand{font-family:var(--serif);align-items:center;gap:10px;font-size:1.25rem;font-weight:900;display:flex}.foot-mark{object-fit:contain;flex:none;width:auto;height:34px;display:block}.foot-byline{color:var(--ink);flex-wrap:wrap;align-items:center;gap:6px;margin-top:12px;font-size:.9rem;display:flex}.foot-url{font-family:var(--latin);letter-spacing:.14em;border-bottom:2px solid var(--coral);transition:color var(--ease), transform .16s var(--ease-out);-webkit-user-select:none;user-select:none;padding-bottom:2px;font-size:.85rem;font-weight:700}.foot-url:active{transform:scale(.97)}.home-kicker{font-family:var(--latin);letter-spacing:.16em;text-transform:uppercase;color:var(--coral);margin:0;padding:16px 0 8px;font-size:.74rem;font-weight:700}.home-sub{font-family:var(--sans);color:var(--muted);margin:0 0 8px;font-size:.875rem}.list{margin:0;padding:0;list-style:none}.list-loading{margin:0;padding:0}.rank-skel{border-top:1px solid var(--line);background:var(--paper-2);border-radius:var(--radius-sm);height:88px;margin:0;list-style:none;display:block}.row{border-top:1px solid var(--line);transition:background var(--ease), transform .16s var(--ease-out);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:16px 0;display:grid}.row:active{transform:scale(.995)}.row-main{grid-template-columns:var(--rank-w) var(--thumb) minmax(0, 1fr);align-items:center;gap:12px;min-width:0;display:grid}.rank{font-family:var(--latin);font-variant-numeric:tabular-nums;letter-spacing:.04em;font-size:22px;font-weight:700;line-height:28px}.cover{width:var(--thumb);height:var(--thumb);object-fit:cover;border-radius:var(--radius-sm);background:var(--paper-2);flex:none;display:block}.cover-empty{color:var(--muted);background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius-sm);place-items:center;display:grid}.cover-mark{font-family:var(--serif);color:var(--coral);font-weight:900;line-height:1}.row-copy{min-width:0}.row-name{flex-direction:column;gap:2px;min-width:0;margin:0;font-size:18px;line-height:1.25;display:flex}.name-zh{font-family:var(--serif);font-weight:900}.name-en{font-family:var(--sans);color:var(--ink-2);font-weight:500}.row-name .name-en{-webkit-line-clamp:2;overflow-wrap:break-word;-webkit-box-orient:vertical;font-size:.8125rem;display:-webkit-box;overflow:hidden}.row-meta{min-width:0;color:var(--muted);flex-wrap:nowrap;align-items:center;gap:4px;margin:4px 0 0;font-size:.75rem;line-height:14px;display:flex}.row-meta svg{flex:none}.row-meta-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.pair{grid-template-columns:var(--hunt-w) var(--hunt-w);flex:none;align-self:center;gap:8px;display:grid}.hunt,.comment-link{box-sizing:border-box;width:var(--hunt-w);height:var(--hunt-h);border:1px solid var(--line);border-radius:var(--radius-md);color:var(--ink);font-family:var(--latin);font-variant-numeric:tabular-nums;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--ease), border-color var(--ease), color var(--ease), transform .16s var(--ease-out);background:0 0;flex-direction:column;justify-content:center;align-items:center;gap:2px;margin:0;padding:0;font-size:.8125rem;line-height:1.2;text-decoration:none;display:flex}.comment-link svg{flex:none}.hunt-mark{color:inherit;line-height:1;display:flex}.hunt-count{font-family:var(--latin);font-variant-numeric:tabular-nums;text-align:center;color:inherit;font-size:.8125rem;line-height:1.2}.hunt-on{background:var(--coral);border-color:var(--coral);color:var(--white)}.hunt:disabled,.hunt-busy{opacity:.55}.sr-only{clip:rect(1px, 1px, 1px, 1px);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.page{padding:16px 0 48px}.page-mast{border-bottom:1px solid var(--line);grid-template-columns:1fr;grid-template-areas:"cover""type""pair";align-items:start;gap:12px;margin-bottom:16px;padding-bottom:16px;display:grid}.page-mast>.cover,.page-mast>.cover-skeleton{grid-area:cover;justify-self:center}.page-type{grid-area:type;min-width:0}.page-mast .home-kicker{padding-top:0}.page-mast .cuisine-kicker{letter-spacing:0;text-transform:none;color:var(--coral);font-weight:700}.page-mast .pair{grid-area:pair;place-self:start}.page h1{flex-direction:column;gap:4px;margin:0;font-size:1.45rem;display:flex}.page .name-en{font-size:1rem}.page .cover,.page .cover-skeleton{--cover-h:min(70dvh, 540px);width:min(100%, calc(var(--cover-h) * 4 / 3));aspect-ratio:4/3;max-width:100%;height:auto;max-height:var(--cover-h);object-fit:cover}.page address{color:var(--ink-2);align-items:flex-start;gap:6px;margin:8px 0;font-size:.875rem;font-style:normal;display:flex}.goto-row{overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;margin:0;font-size:.8125rem;font-weight:500;display:flex}.hours-block{margin:0 0 20px}.hours-heading{align-items:center;gap:6px;margin:0 0 6px;font-size:.875rem;font-weight:700;display:flex}.hours-table{grid-template-columns:max-content 1fr;gap:6px 16px;margin:0;font-size:.8125rem;display:grid}.hours-table div{display:contents}.hours-table dt{font-weight:500}.hours-table dd{margin:0}.hours-closed dt,.hours-closed dd{color:var(--muted)}.fact-missing,.blurb-missing{color:var(--muted);margin:0;font-size:.875rem}.blurb{font-family:var(--sans);color:var(--ink);margin:0 0 24px;font-size:16px;line-height:1.75}.blurb-en:before{content:"EN · ";font-family:var(--latin);letter-spacing:.08em;color:var(--muted);font-size:.75rem;font-weight:700}.blurb-missing{margin:0 0 24px;line-height:1.75}.page-mast-skeleton{align-items:start}.cover-skeleton,.skel-bar{background:var(--paper-2);border-radius:var(--radius-sm);display:block}.cover-skeleton{border:1px solid var(--line)}.skel-copy{flex-direction:column;gap:10px;width:100%;min-width:0;display:flex}.skel-bar{height:12px}.skel-bar-sm{width:28%}.skel-bar-lg{width:72%;height:18px}.skel-bar-md{width:54%}.comments{border-top:1px solid var(--line);padding-top:24px}.comments h2{font-size:18px;font-family:var(--serif)}#comments{scroll-margin-top:var(--header-h)}.comment-list{margin:0;padding:16px 0;list-style:none}.comment-list li{border-top:1px solid var(--line);padding:16px 0}.comment-list p{margin:0 0 6px}.comment-list time{color:var(--muted);font-size:.75rem}.comment-box{flex-direction:column;gap:8px;margin-top:12px;display:flex}.comment-box textarea,.comment-box input,.comment-box select,.admin-form input,.admin-form textarea,.admin-form select{font:inherit;color:var(--ink);background:var(--white);border:1.5px solid var(--ink);border-radius:var(--radius-md);padding:10px 12px}.comment-box textarea,.admin-form textarea{resize:vertical;min-height:88px}.comment-guest{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:.875rem;display:flex}.btn-primary{border-radius:var(--radius-md);background:var(--coral);min-height:44px;color:var(--white);cursor:pointer;transition:background var(--ease), transform .16s var(--ease-out);-webkit-user-select:none;user-select:none;border:0;justify-content:center;align-self:flex-start;align-items:center;padding:0 16px;font-weight:700;display:inline-flex}.btn-primary:disabled{opacity:.55;cursor:not-allowed}.btn-ghost{border:1.5px solid var(--ink);border-radius:var(--radius-md);min-height:40px;color:var(--ink);cursor:pointer;transition:background var(--ease), border-color var(--ease), color var(--ease), transform .16s var(--ease-out);-webkit-user-select:none;user-select:none;background:0 0;justify-content:center;align-self:flex-start;align-items:center;padding:6px 12px;font-weight:700;display:inline-flex}.status,.empty{color:var(--muted);font-size:.875rem}.empty-lead{font-family:var(--serif);margin:16px 0 8px;font-size:1.35rem;font-weight:900}.back-link{box-sizing:border-box;-webkit-user-select:none;user-select:none;min-height:44px;transition:color var(--ease), transform .16s var(--ease-out);align-items:center;gap:6px;margin:0 0 12px;padding:10px 0;font-size:.875rem;font-weight:700;display:inline-flex}.admin-form{flex-direction:column;gap:16px;margin:16px 0 24px;display:flex}.admin-form fieldset{border:1px solid var(--line);border-radius:var(--radius-sm);flex-direction:column;gap:12px;margin:0;padding:16px;display:flex}.admin-form label{flex-direction:column;gap:6px;font-size:13px;font-weight:700;display:flex}.admin-form .label-row{align-items:center;gap:6px;display:inline-flex}.admin-form input,.admin-form select{height:44px;padding:0 12px}@media (width<=360px){.login-label{display:none}}@media (width>=720px){:root{--page-pad:28px;--header-h:68px;--rank-w:36px}.brand-mark{width:auto;height:40px}.wordmark strong{font-size:1.65rem}.row{padding:18px 0}.hours-table{grid-template-columns:max-content 1fr max-content 1fr}.page-mast{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"cover cover""type pair"}.page-mast .pair{justify-self:end}.page h1{font-size:1.7rem}}@media (width>=1024px){:root{--page-pad:32px;--header-h:72px}.brand-mark{width:auto;height:40px}.wordmark strong{font-size:1.7rem}.row-name{flex-direction:row;align-items:baseline;gap:8px}.row-name .name-en{font-size:.9375rem}.page{padding:24px 0 64px}.page-mast{gap:20px}.blurb{font-size:17px}}.login-btn:active,.btn-primary:active,.btn-ghost:active,.hunt:active,.comment-link:active,.back-link:active,.goto-row a:active{transition:transform .16s var(--ease-out);transform:scale(.97)}@media (hover:hover) and (pointer:fine){.brand:hover,.brand:hover strong{color:var(--ink)}.login-btn:hover{background:var(--coral);border-color:var(--coral);color:var(--white)}.foot-byline a:hover{color:var(--coral);text-underline-offset:3px;text-decoration:underline}.foot-url:hover,.goto-row a:hover{color:var(--coral)}.btn-primary:hover{background:var(--coral-deep)}.btn-ghost:hover{background:var(--coral);border-color:var(--coral);color:var(--white)}.back-link:hover{color:var(--coral)}.row:hover{background:var(--paper-2)}.hunt:hover{background:var(--white);border-color:var(--coral);color:var(--ink)}.hunt-on:hover{background:var(--coral-deep);border-color:var(--coral-deep);color:var(--white)}.comment-link:hover{background:var(--white);border-color:var(--coral)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}.brand:active,.login-btn:active,.btn-primary:active,.btn-ghost:active,.hunt:active,.comment-link:active,.back-link:active,.foot-url:active,.goto-row a:active,.row:active{transform:none}}
