:root{--ln-ivory: #F7F2EA;--ln-ivory-0: #FDFBF7;--ln-oat-200: #E7DECF;--ln-umber: #3A322A;--ln-umber-muted: #75695C;--ln-taupe: #5E5143;--ln-on-taupe: #FFFFFF;--ln-oat: #EDE5D8;--ln-flax: #CDBFA8;--ln-amber: #8A5A2B;--ln-success: #3E6E4C;--ln-warning: #8E5E16;--ln-danger: #A3433A;--ln-space-1: 4px;--ln-space-2: 8px;--ln-space-3: 12px;--ln-space-4: 16px;--ln-space-6: 24px;--ln-space-8: 32px;--ln-radius-sm: 2px;--ln-radius-md: 4px;--ln-radius-lg: 10px;--ln-font-display: "Marcellus", "Cormorant Garamond", "Noto Sans KR", serif;--ln-font-body: "Be Vietnam Pro", "Noto Sans KR", system-ui, sans-serif}@media (prefers-color-scheme: dark){:root{--ln-ivory: #1A1713;--ln-ivory-0: #231F1A;--ln-oat-200: #3A332B;--ln-umber: #F3EDE4;--ln-umber-muted: #BBAF9F;--ln-taupe: #D9CCB9;--ln-on-taupe: #211B15;--ln-oat: #2D2821;--ln-flax: #8F8069;--ln-amber: #D9A46A;--ln-success: #86C49A;--ln-warning: #E2B060;--ln-danger: #EF9086}}:root{--ln-font-display: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Songti SC", "Noto Serif CJK SC", "Source Han Serif SC", serif;--ln-font-body: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", "Source Han Sans SC", "Apple SD Gothic Neo", "Malgun Gothic", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;--bg: var(--ln-ivory);--card: var(--ln-ivory-0);--line: var(--ln-oat-200);--ink: var(--ln-umber);--mute: var(--ln-umber-muted);--accent: var(--ln-taupe);--on-accent: var(--ln-on-taupe);color-scheme:light dark}:lang(zh-Hant){--ln-font-body: system-ui, -apple-system, "PingFang TC", "Microsoft JhengHei", "Noto Sans CJK TC", "Source Han Sans TC", sans-serif}:lang(ja){--ln-font-body: system-ui, -apple-system, "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", Meiryo, "Noto Sans CJK JP", sans-serif}:lang(ko){--ln-font-body: system-ui, -apple-system, "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans CJK KR", sans-serif}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 var(--ln-font-body)}body,h1,h2,h3,p,li,label,button,dd,dt{word-break:keep-all;overflow-wrap:anywhere}img{max-width:100%;display:block}a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3{margin:0;font-weight:600;line-height:1.3}p{margin:0}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.muted{color:var(--mute)}.sm{font-size:14px}.pre{white-space:pre-line}.grow{flex:1;min-width:0}.row{display:flex;align-items:center}.row.gap,.gap{gap:8px}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between;gap:12px}.row.end{justify-content:flex-end;gap:8px}.stack{display:grid;gap:10px;margin-top:12px}.boot{min-height:100vh}.shell{min-height:100vh;display:flex;flex-direction:column}.top{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.top-in{max-width:960px;margin:0 auto;padding:10px 16px;display:flex;align-items:center;gap:16px}.brand{display:flex}.logo{height:24px;width:auto}.top-nav{display:none;gap:4px;flex:1}.top-nav a{text-decoration:none;padding:6px 12px;border-radius:999px;color:var(--mute);font-size:15px}.top-nav a.active{color:var(--ink);background:var(--ln-oat)}.lang-pick{margin-left:auto;display:flex;align-items:center;gap:4px;color:var(--mute)}.lang-pick select{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:6px 10px;font-size:14px;max-width:132px}.main{flex:1;width:100%;max-width:960px;margin:0 auto;padding:0 16px 104px}.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:20;display:grid;grid-template-columns:repeat(4,1fr);background:var(--card);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.tabbar a{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;font-size:12px;text-decoration:none;color:var(--mute)}.tabbar a.active{color:var(--ink)}@media (min-width: 840px){.top-nav{display:flex}.lang-pick{margin-left:0}.tabbar{display:none}.main{padding-bottom:48px}}.page{padding-top:16px;display:grid;gap:16px}.page.narrow{max-width:520px;margin:0 auto}.titlebar{display:flex;align-items:center;gap:8px;min-height:44px}.titlebar h1{font-size:22px;flex:1;min-width:0}.icon-btn{border:0;background:transparent;width:44px;height:44px;border-radius:999px;display:grid;place-items:center;cursor:pointer;color:var(--ink)}.icon-btn:hover{background:var(--ln-oat)}.fav.on{color:var(--ln-danger)}.hero-block{padding:12px 0 4px;display:grid;gap:10px}.hero-h{font-family:var(--ln-font-display);font-weight:500;font-size:clamp(28px,6vw,44px);line-height:1.2;max-width:22ch}:lang(zh-Hans) .hero-h,:lang(zh-Hant) .hero-h,:lang(ja) .hero-h,:lang(ko) .hero-h{font-family:var(--ln-font-body);font-weight:700;max-width:18em}.lead{color:var(--mute);max-width:40em}.trust{list-style:none;padding:0;margin:4px 0 0;display:flex;flex-wrap:wrap;gap:6px 14px;font-size:14px}.trust li:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--ln-success);margin-right:6px;vertical-align:middle}.filters{display:grid;gap:12px}.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.chip{flex:none;border:1px solid var(--line);background:var(--card);padding:7px 14px;border-radius:999px;cursor:pointer;font-size:14px;white-space:nowrap}.chip.on{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.seg{display:inline-flex;background:var(--ln-oat);border-radius:12px;padding:4px;gap:4px;justify-self:start;max-width:100%}.seg.wide{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;justify-self:stretch}.seg button{border:0;background:transparent;padding:8px 10px;border-radius:9px;cursor:pointer;font-size:15px;display:flex;flex-direction:column;align-items:center;min-width:0}.seg button small{font-size:12px;color:var(--mute);white-space:nowrap}.seg button.on{background:var(--card);box-shadow:0 1px 2px #00000014;font-weight:600}.sec-h{font-size:18px}.sub-h{font-size:15px;margin-top:14px}.list{list-style:none;padding:0;margin:0;display:grid;gap:10px}@media (min-width: 720px){.home .list{grid-template-columns:1fr 1fr}}.card{display:flex;gap:12px;padding:12px;background:var(--card);border:1px solid var(--line);border-radius:var(--ln-radius-lg);text-decoration:none;min-width:0}.card:hover{border-color:var(--ln-flax)}.card.off{opacity:.6}.card-body{display:grid;gap:4px;min-width:0;flex:1;align-content:start}.name{font-size:16px}.shop-card{align-items:flex-start}.shop-card .cover{flex:none;width:72px;height:72px;aspect-ratio:auto;border-radius:6px}.cover{aspect-ratio:16 / 9;max-height:260px;overflow:hidden;background:var(--ln-oat)}.cover img{display:block;width:100%;height:100%;object-fit:cover}.clamp2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.avatar{flex:none;border-radius:50%;overflow:hidden;background:var(--ln-oat);display:grid;place-items:center;font-weight:600;color:var(--mute)}.avatar img{width:100%;height:100%;object-fit:cover}.badge{display:inline-flex;align-items:center;gap:3px;font-size:12px;padding:2px 8px 2px 4px;border-radius:999px;background:color-mix(in srgb,var(--ln-success) 14%,transparent);color:var(--ln-success);font-weight:600}.badge svg{width:14px;height:14px}.stars{display:inline-flex;align-items:center;gap:3px;color:var(--ln-amber);font-size:14px}.stars .muted{color:var(--mute)}.slots-mini{display:flex;flex-wrap:wrap;gap:6px}.slots-mini span{font-size:13px;padding:2px 8px;border:1px solid var(--line);border-radius:6px;font-variant-numeric:tabular-nums}.pill{justify-self:start;display:inline-block;font-size:12px;padding:2px 10px;border-radius:999px;background:var(--ln-oat);font-weight:600}.who .pill{margin-top:4px}.pill.live{background:color-mix(in srgb,var(--ln-taupe) 18%,transparent)}.pill.warn{background:color-mix(in srgb,var(--ln-warning) 18%,transparent);color:var(--ln-warning)}.pill.ok{background:color-mix(in srgb,var(--ln-success) 16%,transparent);color:var(--ln-success)}.pill.muted{color:var(--mute)}.sec-h+.list,.sec-h+.state{margin-top:-6px}.box{background:var(--card);border:1px solid var(--line);border-radius:var(--ln-radius-lg);padding:16px;display:grid;gap:10px;min-width:0}.box.hl{border-color:var(--ln-flax);box-shadow:0 2px 10px #3a322a0f}.box.links{grid-auto-flow:row}.gallery{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;border-radius:var(--ln-radius-lg)}.gallery img{flex:none;width:min(78%,360px);aspect-ratio:4 / 5;object-fit:cover;border-radius:var(--ln-radius-lg);scroll-snap-align:start;background:var(--ln-oat)}.menus{list-style:none;padding:0;margin:0;display:grid}.menus li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line);flex-wrap:wrap}.menus li:first-child{border-top:0}.price{font-variant-numeric:tabular-nums;font-weight:600}.reviews{list-style:none;padding:0;margin:0;display:grid;gap:14px}.reviews li{display:grid;gap:4px;border-top:1px solid var(--line);padding-top:12px}.reviews li:first-child{border-top:0;padding-top:0}.reply{margin-left:12px;padding-left:10px;border-left:2px solid var(--line)}.tr{display:grid;gap:2px;justify-items:start}.who{display:flex;align-items:center;gap:12px}.sticky-cta{position:sticky;bottom:72px;z-index:5;padding-top:4px}@media (min-width: 840px){.sticky-cta{bottom:16px}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 18px;border-radius:12px;border:1px solid var(--accent);background:var(--accent);color:var(--on-accent);font-weight:600;text-decoration:none;cursor:pointer;text-align:center}.btn:disabled{opacity:.45;cursor:default}.btn.o{background:var(--card);color:var(--ink);border-color:var(--line)}.btn.sm{min-height:36px;padding:6px 12px;font-size:14px;border-radius:10px}.btn.block{width:100%}.btn.danger{background:var(--ln-danger);border-color:var(--ln-danger);color:#fff}.cta-sub{font-weight:500;opacity:.85}.link{border:0;background:transparent;padding:0;color:var(--ln-amber);text-decoration:underline;text-underline-offset:2px;cursor:pointer}.link.danger,.danger.block-link{color:var(--ln-danger)}.block-link{display:block;width:100%;text-align:center;padding:10px;border:0;background:transparent;text-decoration:underline;cursor:pointer;color:var(--mute)}.field{display:grid;gap:6px;min-width:0}.field>span,.field>label{font-size:14px;font-weight:600}.credit a{color:inherit}.field.inline{grid-template-columns:auto 1fr;align-items:center;gap:10px;max-width:360px}.field small{font-size:13px}input:not([type=checkbox]):not([type=radio]),select,textarea{width:100%;min-width:0;border:1px solid var(--line);background:var(--card);border-radius:10px;padding:10px 12px;min-height:44px}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--ln-amber);outline-offset:2px}textarea{resize:vertical}.code{font-size:28px;letter-spacing:.3em;text-align:center;font-variant-numeric:tabular-nums}.check{display:flex;align-items:flex-start;gap:10px;cursor:pointer;min-height:32px}.check input{width:20px;height:20px;margin-top:2px;flex:none;accent-color:var(--accent)}.check.all{border-bottom:1px solid var(--line);padding-bottom:10px}.opts,.saved{display:grid;gap:8px}.opt{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:10px;cursor:pointer}.opt.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.opt input{accent-color:var(--accent);flex:none}.tag{font-style:normal;font-size:12px;margin-left:6px;padding:1px 6px;border-radius:6px;background:var(--ln-oat)}.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:8px}.slots button{min-height:44px;border:1px solid var(--line);background:var(--card);border-radius:10px;cursor:pointer;font-variant-numeric:tabular-nums}.slots button.on{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.phone-row{align-items:end}.field.cc{width:108px;flex:none}.addr{display:grid;gap:12px}.places{list-style:none;padding:0;margin:0;border:1px solid var(--line);border-radius:10px;overflow:hidden}.places button{width:100%;display:flex;gap:8px;align-items:flex-start;text-align:left;border:0;border-top:1px solid var(--line);background:var(--card);padding:10px 12px;cursor:pointer}.places li:first-child button{border-top:0}.places svg{flex:none;margin-top:2px;color:var(--mute)}.picked{display:flex;gap:10px;align-items:flex-start;padding:12px;border-radius:10px;background:var(--ln-oat)}.picked>div{flex:1;min-width:0}.sum{margin:0;display:grid;gap:8px}.sum>div{display:flex;justify-content:space-between;gap:12px}.sum dt{display:grid;flex:none;max-width:60%}.sum dt:only-child{max-width:none}.sum dt small{font-size:12px}.sum dd{margin:0;flex:1 1 0;min-width:0;text-align:right;font-variant-numeric:tabular-nums}.sum .total{border-top:1px solid var(--line);padding-top:8px;font-weight:700;font-size:17px}.qr{display:grid;justify-items:center;gap:6px;padding-top:8px}.qr img{background:#fff;border-radius:8px;padding:6px}.countdown{font-size:32px;font-weight:700;font-variant-numeric:tabular-nums}.timeline{list-style:none;margin:0;padding:0;display:grid;gap:0}.timeline li{display:flex;align-items:center;gap:10px;padding:7px 0;color:var(--mute);position:relative}.timeline li .muted{margin-left:auto}.timeline .dot{width:12px;height:12px;border-radius:50%;border:2px solid var(--line);background:var(--card);flex:none}.timeline li.done{color:var(--ink)}.timeline li.done .dot{background:var(--ln-success);border-color:var(--ln-success)}.rate{display:flex;gap:6px}.rate button{border:1px solid var(--line);background:var(--card);width:48px;height:48px;border-radius:12px;cursor:pointer;color:var(--line);display:grid;place-items:center}.rate button svg{width:26px;height:26px}.rate button.on{color:var(--ln-amber);border-color:var(--ln-amber)}.emerg summary{cursor:pointer;color:var(--ln-danger);text-align:center;padding:8px}.emerg{display:grid;gap:8px}.state{padding:28px 8px;text-align:center;color:var(--mute);display:grid;gap:10px;justify-items:center}.state.err{color:var(--ln-danger)}.spin{width:20px;height:20px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spin{animation:none}}.notice{display:grid;gap:8px;justify-items:start;border-radius:10px;padding:12px;font-size:14px;background:var(--ln-oat)}.notice.warn{background:color-mix(in srgb,var(--ln-warning) 14%,var(--card))}.notice.err{background:color-mix(in srgb,var(--ln-danger) 12%,var(--card));color:var(--ln-danger)}.notice.ok{background:color-mix(in srgb,var(--ln-success) 12%,var(--card))}.err-text{color:var(--ln-danger);font-size:14px}.warn-text{color:var(--ln-warning)}.ts:empty{display:none}.scrim{position:fixed;inset:0;background:#0006;z-index:50;display:grid;place-items:end center;padding:16px}@media (min-width: 600px){.scrim{place-items:center}}.dialog{background:var(--card);border-radius:16px;padding:20px;width:100%;max-width:420px;display:grid;gap:12px}.dialog h2{font-size:18px}.chat-page{grid-template-rows:auto 1fr}.chat{display:grid;gap:8px}.chat-list{min-height:50vh;max-height:calc(100vh - 290px);overflow-y:auto;display:grid;gap:10px;align-content:start;padding:4px 2px}.bubble-row{display:grid;gap:3px;justify-items:start;max-width:86%}.bubble-row.mine{justify-self:end;justify-items:end}.bubble-row.pending{opacity:.6}.bubble{background:var(--card);border:1px solid var(--line);padding:8px 12px;border-radius:14px 14px 14px 4px;white-space:pre-wrap}.mine .bubble{background:var(--accent);color:var(--on-accent);border-color:var(--accent);border-radius:14px 14px 4px}.chat-compose{display:flex;gap:8px;align-items:flex-end}.chat-compose .btn{white-space:nowrap;flex:none}.chat-compose textarea{min-height:44px;max-height:140px}.chat-photo{display:block;width:min(240px,62vw);max-height:320px;padding:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--ln-oat);cursor:zoom-in}.chat-photo img{display:block;width:100%;height:100%;object-fit:cover}.chat-photo span{display:grid;place-items:center;height:100%;padding:8px;text-align:center}.chat-photo:disabled{cursor:default}.chat-attach{display:flex;gap:10px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:14px;background:var(--card)}.chat-attach.failed{border-color:var(--ln-danger)}.chat-attach-thumb{position:relative;flex:none;width:64px;height:64px;border-radius:10px;overflow:hidden;background:var(--ln-oat);display:grid;place-items:center}.chat-attach-thumb img{width:100%;height:100%;object-fit:cover}.chat-attach-thumb>span.muted{padding:4px;font-size:11px;overflow-wrap:anywhere;text-align:center}.chat-attach-pct{position:absolute;inset:0;display:grid;place-items:center;background:#1a171373;color:#fff;font-size:13px;font-weight:600}.chat-attach-body{display:grid;gap:6px;min-width:0;flex:1}.chat-attach-body progress{width:100%;height:6px;accent-color:var(--accent)}.chat-attach-btn{flex:none;width:44px;padding:0}.lightbox{position:fixed;inset:0;z-index:100;background:#0c0a08e0;display:grid;place-items:center;padding:60px 16px 16px}.lightbox img{max-width:100%;max-height:calc(100vh - 84px);object-fit:contain;border-radius:6px}.lightbox-close{position:absolute;top:12px;right:12px}.lightbox-state{color:#fff}.band{background:color-mix(in srgb,var(--ln-warning) 14%,var(--card));padding:6px 10px;border-radius:8px;font-size:13px}.note{color:var(--mute);text-align:center;padding:10px}
