*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:4.5rem}body{margin:0;background:var(--bg);color:var(--ink);font:400 16px/1.5 var(--font-body);-webkit-font-smoothing:antialiased}img{max-width:100%;display:block}button,input{font:inherit;color:inherit}a{color:inherit}h1,h2,h3{margin:0;font-weight:inherit}ul{margin:0;padding:0;list-style:none}p{margin:0}.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.ic{width:1.15em;height:1.15em;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}#app{max-width:var(--maxw,40rem);margin:0 auto;min-height:100vh}.boot{display:flex;gap:.5rem;justify-content:center;padding:40vh 0}.boot span{width:.5rem;height:.5rem;border-radius:50%;background:var(--muted);opacity:.4;animation:boot 1s infinite alternate}.boot span:nth-child(2){animation-delay:.2s}.boot span:nth-child(3){animation-delay:.4s}@keyframes boot{to{opacity:1}}.hero{position:relative;padding:2.5rem 1.25rem 1.5rem}.brand{font-family:var(--font-display);line-height:1}.brand-logo img{max-height:90px;width:auto}.tagline{margin-top:.6rem;color:var(--muted)}.hours{margin-top:1rem;font-size:.92rem}.hours summary{display:inline-flex;align-items:center;gap:.45rem;cursor:pointer;list-style:none}.hours summary::-webkit-details-marker{display:none}.hours summary:after{content:"";width:.4rem;height:.4rem;border:solid currentColor;border-width:0 1.5px 1.5px 0;transform:rotate(45deg) translateY(-2px);margin-left:.2rem}.hours[open] summary:after{transform:rotate(-135deg)}.hours ul{margin:.5rem 0 0 1.6rem;color:var(--muted)}.hours li.today{color:var(--ink);font-weight:600}.st{display:inline-flex;align-items:center;gap:.4rem;font-weight:600}.st:before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:var(--open,#2f7d4a);box-shadow:0 0 0 3px color-mix(in srgb,var(--open,#2f7d4a) 22%,transparent)}.st.is-closed:before{background:var(--closed,#a3412f);box-shadow:0 0 0 3px color-mix(in srgb,var(--closed,#a3412f) 22%,transparent)}.st-sub{color:var(--muted)}.st-sub:before{content:"\b7";margin-right:.35rem}.cover{position:relative}.cover img{width:100%;height:100%;object-fit:cover}.stamp{display:inline-flex;align-items:center;justify-content:center;text-align:center}.acts{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.1rem}.act{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem .8rem;min-height:44px;text-decoration:none;font-size:.9rem;border:1px solid var(--line);border-radius:var(--radius)}.cats{position:sticky;top:0;z-index:5;background:var(--bg)}.cats-in{display:flex;gap:.25rem;overflow-x:auto;scrollbar-width:none;padding:.6rem 1.25rem}.cats-in::-webkit-scrollbar{display:none}.cats a{flex:none;text-decoration:none;padding:.45rem .8rem;white-space:nowrap;border-radius:var(--radius)}.cats a[aria-current]{background:var(--accent);color:var(--accent-ink)}.tools{display:flex;gap:.45rem;align-items:center;padding:.7rem 1.25rem;overflow-x:auto;scrollbar-width:none}.tools::-webkit-scrollbar{display:none}.search{flex:0 0 9.5rem;transition:flex-basis .2s;min-width:0;display:flex;align-items:center;gap:.5rem;padding:0 .8rem;min-height:44px;border:1px solid var(--line);border-radius:var(--radius);background:var(--field,transparent)}.search input{flex:1;min-width:0;border:0;background:none;outline:none;padding:.6rem 0}.search:focus-within,.search:has(input:not(:placeholder-shown)){flex-basis:13rem;border-color:var(--accent)}.search .ic{opacity:.7}.lang{position:absolute;top:.6rem;right:.75rem;z-index:2;display:flex;gap:.1rem}.lang button{border:0;background:none;padding:0 .55rem;min-height:44px;min-width:40px;cursor:pointer;font-size:.75rem;font-weight:600;letter-spacing:.1em;color:var(--muted)}.lang button[aria-pressed=true]{color:var(--ink);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.35rem}.chip{flex:none;border:1px solid var(--line);background:none;border-radius:999px;padding:.35rem .85rem;min-height:44px;font-size:.85rem;cursor:pointer;white-space:nowrap}.chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.stale{margin:0 1.25rem;padding:.6rem .8rem;font-size:.85rem;border-left:3px solid var(--accent);background:var(--card)}.menu{padding:0 1.25rem 2rem}.cat{padding-top:2rem}.cat-head{display:flex;align-items:baseline;gap:.6rem}.cat-head h2{font-family:var(--font-display)}.cat-no{display:none}.cat-note{margin-top:.4rem;color:var(--muted);font-size:.92rem}.items{margin-top:.9rem}.item{display:flex;gap:.9rem;padding:.9rem 0;border-top:1px solid var(--line)}.ph{flex:none;width:88px;height:88px;overflow:hidden;background:var(--card)}.ph img{width:100%;height:100%;object-fit:cover}.body{flex:1;min-width:0}.line{display:flex;align-items:baseline;gap:.4rem}.name{font-weight:600;font-size:1.02rem;line-height:1.3}.dots{flex:1}.price{flex:none;font-variant-numeric:tabular-nums;font-weight:600}.price-multi{display:flex;flex-direction:column;align-items:flex-end;line-height:1.35}.price small{font-weight:400;color:var(--muted);font-size:.78em}.desc{margin-top:.2rem;color:var(--muted);font-size:.92rem}.allergens{margin-top:.3rem;font-size:.78rem;color:var(--muted)}.badges{display:inline-flex;gap:.25rem;align-self:center}.badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.25rem;padding:0 .3rem;font-size:.66rem;font-weight:700;letter-spacing:.03em;text-decoration:none;border:1px solid currentColor;border-radius:4px;color:var(--muted);cursor:help}.b-spicy{border:0;color:var(--spicy,#c2410c);padding:0;min-width:0}.b-new,.b-popular{border:0;background:var(--accent);color:var(--accent-ink);font-size:.62rem;text-transform:uppercase}.is-out .name,.is-out .desc,.is-out .price{opacity:.6}.is-out .name{text-decoration:line-through;text-decoration-thickness:1px}.is-out .ph img{filter:grayscale(1);opacity:.5}.out{display:inline-block;margin-top:.35rem;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.empty{padding:3rem 0;text-align:center;color:var(--muted)}.linkbtn{border:0;background:none;text-decoration:underline;cursor:pointer;padding:.5rem}.feat{padding-top:1.5rem}.feat-h{font-family:var(--font-display)}.feat-list{display:flex;gap:.9rem;overflow-x:auto;scrollbar-width:none;margin:0 -1.25rem;padding:.9rem 1.25rem .25rem;scroll-snap-type:x mandatory;scroll-padding-inline:1.25rem}.feat-list::-webkit-scrollbar{display:none}.feat-list .item{flex:0 0 72%;max-width:17rem;flex-direction:column;border:0;padding:0;scroll-snap-align:start}.feat-list .ph{width:100%;height:auto;aspect-ratio:4/3}.feat-list .allergens{display:none}.foot{padding:2rem 1.25rem 3rem;border-top:1px solid var(--line);display:grid;gap:1.4rem;font-size:.92rem}.f-block h2{display:flex;gap:.4rem;align-items:center;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:.35rem}.f-wifi code{font-family:ui-monospace,Menlo,monospace;padding:.1rem .35rem;background:var(--card);border-radius:4px}.f-wifi span{color:var(--muted)}.f-note,.f-legend{color:var(--muted);font-size:.82rem}.f-legend .badge{vertical-align:middle;margin-right:.15rem}.offline{padding:30vh 1.5rem 0;text-align:center}.offline button{margin-top:1rem;padding:.7rem 1.4rem;border:1px solid var(--ink);background:none;border-radius:var(--radius);cursor:pointer}.offline .err{margin-top:1.5rem;font-size:.75rem;color:var(--muted)}@media(min-width:44rem){.hero{padding-top:4rem}.ph{width:110px;height:110px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important}}@font-face{font-family:"Instrument Serif";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/instrument-serif-latin-400-normal.woff2) format("woff2")}@font-face{font-family:"Instrument Serif";font-style:italic;font-weight:400;font-display:swap;src:url(fonts/instrument-serif-latin-400-italic.woff2) format("woff2")}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(fonts/manrope-latin-400-normal.woff2) format("woff2")}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(fonts/manrope-latin-600-normal.woff2) format("woff2")}:root{--bg:#f7f5f0;--card:#ece8df;--ink:#1f1d1a;--muted:#6b665d;--line:#dedad0;--accent:#2f4a3f;--accent-ink:#f7f5f0;--clay:#a4532e;--font-display:"Instrument Serif",Georgia,serif;--font-body:"Manrope",system-ui,sans-serif;--radius:12px;--maxw:36rem}body{font-size:15px;letter-spacing:.005em}.hero{padding:2.2rem 1.4rem 1.4rem}.hero-orn{position:relative;width:2.6rem;height:1.3rem;margin:0 0 1.1rem .55rem;border:1.3px solid var(--clay);border-bottom:0;border-radius:2.6rem 2.6rem 0 0}.hero-orn:before{content:"";position:absolute;inset:.42rem .42rem 0;border:1.3px solid var(--clay);border-bottom:0;border-radius:inherit}.hero-orn:after{content:"";position:absolute;left:-.55rem;right:-.55rem;bottom:0;height:1.3px;background:var(--clay)}.kicker{font-size:.72rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--clay)}.brand{font-style:italic;font-size:clamp(3rem,15vw,4.6rem);line-height:.92;margin-top:.7rem;letter-spacing:-.02em}.tagline{font-size:1rem;max-width:22rem;margin-top:.9rem}.cover{margin-top:1.4rem;aspect-ratio:4/3;border-radius:calc(var(--radius) + 4px);overflow:hidden;background:var(--card)}.lang{top:1.6rem;right:1rem}.hours{margin-top:1.1rem}.hours summary{background:var(--card);padding:.4rem .8rem;border-radius:999px;font-weight:600;font-size:.82rem}.acts{gap:.35rem}.act{border:0;background:var(--ink);color:var(--bg);border-radius:999px;font-size:.82rem;font-weight:600;padding:.45rem .9rem}.act+.act{background:none;color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}.cats{background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.cats-in{padding:.55rem 1.1rem}.cats a{font-size:.85rem;font-weight:600;color:var(--muted);border-radius:999px;padding:.4rem .85rem}.cats a[aria-current]{background:var(--ink);color:var(--bg)}.tools{padding:1rem 1.4rem .25rem}.search{background:#fff;border-color:var(--line);border-radius:999px}.lang{border-radius:999px}.chip{border-color:var(--line);background:#fff;font-weight:600;font-size:.8rem}.menu{padding:0 1.4rem 2rem}.cat{padding-top:2.4rem}.cat-head{gap:.75rem;padding-bottom:.6rem;border-bottom:1px solid var(--ink)}.cat-no{display:block;font-size:.72rem;font-weight:600;color:var(--clay);letter-spacing:.08em;transform:translateY(-.15rem)}.cat-head h2{font-size:2.1rem;line-height:1}.cat-note{font-size:.88rem;margin-top:.6rem;max-width:28rem}.items{margin-top:.25rem}.item{padding:.85rem 0;border-top-color:var(--line)}.item:first-child{border-top:0}.name{font-weight:600;font-size:.98rem}.price{font-weight:600;font-size:.95rem}.price-multi{flex-direction:row;gap:.9rem}.pv{display:flex;flex-direction:column;align-items:flex-end}.pv small{font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;line-height:1.1}.desc{font-size:.86rem;max-width:34ch}.badge{border-radius:999px;font-size:.6rem;color:var(--accent);border-color:var(--accent)}.b-new,.b-popular{background:var(--clay);color:#fff}.out{color:var(--clay)}.items:has(.has-ph~.has-ph){display:grid;grid-template-columns:1fr 1fr;gap:1.4rem .9rem;margin-top:1rem}.items:has(.has-ph~.has-ph) .item{flex-direction:column;gap:.55rem;border:0;padding:0}.items:has(.has-ph~.has-ph) .ph{width:100%;height:auto;aspect-ratio:1;border-radius:var(--radius)}.items:has(.has-ph~.has-ph) .line{flex-wrap:wrap;align-items:center;gap:.25rem .35rem}.items:has(.has-ph~.has-ph) .name{flex-basis:100%}.items:has(.has-ph~.has-ph) .badges{order:3}.items:has(.has-ph~.has-ph) .dots{display:none}.items:has(.has-ph~.has-ph) .price{order:2;color:var(--clay)}.items:has(.has-ph~.has-ph) .desc{font-size:.8rem}.items:has(.has-ph~.has-ph) .allergens{font-size:.7rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.st{color:var(--ink)}.feat{padding-top:1.6rem}.feat-h{font-style:italic;font-size:1.6rem}.feat-list .ph{border-radius:var(--radius)}.feat-list .line{margin-top:.55rem;justify-content:space-between}.feat-list .dots{display:none}.feat-list .desc{font-size:.8rem}.feat-list .price{color:var(--clay)}.foot{border-top:1px solid var(--ink);margin:0 1.4rem;padding:2rem 0 3rem}.f-wifi{background:var(--accent);color:var(--accent-ink);border-radius:var(--radius);padding:1rem 1.1rem}.f-wifi h2,.f-wifi span{color:inherit;opacity:.8}.f-wifi code{background:#ffffff24;font-size:1rem}.ph{border-radius:var(--radius)}
