@font-face{font-family:Onest;src:url('/assets/Onest.ttf') format('truetype');font-weight:100 900;font-display:swap}*{box-sizing:border-box} :root{color-scheme:dark;--canvas:#0c0c0c;--surface:#171717;--raised:#201e1a;--text:#f3ede2;--muted:#b9b1a4;--gold:#c7a76b;--border:#3b362d;font:100%/1.5 Onest,sans-serif}body{margin:0;background:var(--canvas);color:var(--text)}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer;border:0;background:var(--raised);min-height:48px;border-radius:12px;padding:10px 16px;transition:background 120ms,color 120ms}button:hover{background:#302b23}button:active{background:#504333}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,main:focus-visible{outline:2px solid var(--gold);outline-offset:4px}a{color:inherit;text-underline-offset:4px}::selection{background:var(--gold);color:var(--canvas)}input{caret-color:var(--gold)}*{scrollbar-color:#726044 var(--surface);scrollbar-width:thin}.wrap,.header-inner{max-width:1232px;margin:auto;padding:0 24px}.header{background:var(--canvas);border-bottom:1px solid var(--border)}.header-inner{display:flex;align-items:center;gap:28px;min-height:92px}.brand{display:flex;flex-shrink:0}.brand img{object-fit:contain}.header-caption{color:var(--muted)}.header-cart{margin-left:auto;display:flex;align-items:center;gap:12px}.context{display:flex;align-items:center;gap:24px;padding:24px 0 16px;color:var(--muted);font-size:.875rem}.segmented{display:flex;background:var(--surface);border-radius:14px;padding:4px;flex-shrink:0}.segmented button{background:transparent;font-size:.875rem;padding:10px 16px}.segmented [aria-pressed=true]{background:var(--gold);color:var(--canvas);font-weight:600}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:8px 0 24px}h1,h2,h3,p{margin:0}h1{font-size:2.25rem;line-height:1.15;letter-spacing:-.025em}h2{font-size:1.5rem;line-height:1.25;letter-spacing:-.02em}h3{font-size:1.0625rem;line-height:1.4;font-weight:550}.search{display:flex;align-items:center;gap:12px;background:var(--surface);border-radius:14px;padding:0 16px;width:340px}.search input{min-width:0;width:100%;border:0;background:none;color:var(--text);padding:14px 0;outline-offset:0}.search input::placeholder{color:var(--muted)}svg{width:22px;height:22px;display:block;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.categories{display:flex;gap:8px;overflow-x:auto;padding:4px 0 12px;margin-bottom:24px;scrollbar-width:thin}.categories button{flex-shrink:0;background:var(--surface);white-space:nowrap}.categories [aria-pressed=true]{background:var(--gold);color:var(--canvas);font-weight:600}.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin:28px 0 18px}.section-head span,.muted{color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.card{background:var(--surface);border-radius:16px;overflow:hidden;position:relative;display:flex;flex-direction:column;min-width:0}.dish-open{padding:0;background:transparent;border-radius:0;text-align:left;display:block;width:100%}.dish-open:hover{background:transparent}.photo{width:100%;aspect-ratio:1.2;object-fit:cover;display:block}.placeholder{background:var(--raised);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--muted);font-size:.875rem}.placeholder svg{width:40px;height:40px;stroke:#8e7853;stroke-width:1}.card-body{padding:16px;display:flex;flex-direction:column;flex:1;gap:8px}.name{background:transparent;text-align:left;padding:0;border-radius:0;font-size:1.0625rem;line-height:1.4;min-height:48px;display:flex;align-items:flex-start;overflow-wrap:anywhere}.name:hover{background:transparent;color:var(--gold)}.unit{color:var(--muted);font-size:.8125rem}.description{color:var(--muted);font-size:.875rem;line-height:1.45}.card .description{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-footer{margin-top:auto;padding-top:12px}.add{display:flex;align-items:center;justify-content:space-between;width:100%;background:var(--raised);font-weight:600;gap:8px}.favorite{position:absolute;top:10px;right:10px;width:48px;padding:12px;background:rgba(12,12,12,.87);border-radius:50%;color:var(--text)}.favorite[aria-pressed=true]{color:var(--gold)}.favorite[aria-pressed=true] svg{fill:currentColor}.quantity{display:flex;align-items:center;justify-content:space-between;gap:4px;background:var(--raised);border-radius:12px;font-variant-numeric:tabular-nums}.quantity button{width:48px;padding:12px;flex-shrink:0;background:none}.quantity output{min-width:20px;text-align:center;font-weight:600}.quantity button:disabled{opacity:.4}.price-line{display:flex;justify-content:space-between;gap:12px;padding-bottom:8px;font-weight:600}.footnote{font-size:.8125rem;color:var(--muted);max-width:72ch;padding:32px 0 180px}.bottom{position:fixed;bottom:0;left:0;right:0;z-index:5;pointer-events:none;display:flex;flex-direction:column;align-items:center;padding:12px 16px calc(12px + env(safe-area-inset-bottom));gap:8px;background:linear-gradient(transparent,var(--canvas) 38%)}.bottom>*{pointer-events:auto}#navigation{display:flex;justify-content:center;background:#1a1917;border:1px solid var(--border);padding:4px;border-radius:18px;max-width:100%;width:400px;box-shadow:0 10px 30px #0008}#navigation button{flex:1;background:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:.75rem;padding:8px;min-width:0}#navigation button[aria-current=page]{color:var(--gold)}#summary{background:var(--gold);color:var(--canvas);width:400px;max-width:100%;display:flex;justify-content:space-between;align-items:center;font-weight:650;min-height:52px;box-shadow:0 6px 24px #0005}#summary[hidden]{display:none}.notice{padding:14px 16px;background:var(--raised);border-radius:12px;margin:12px 0;color:var(--text)}.empty{padding:60px 0 80px;max-width:500px;display:grid;gap:16px}.empty p{color:var(--muted)}.empty button{justify-self:start;background:var(--gold);color:var(--canvas)}dialog{color:var(--text);background:var(--surface);border:0;border-radius:24px;padding:0;width:min(960px,calc(100% - 48px));max-height:calc(100dvh - 48px);overflow:auto}dialog::backdrop{background:#000b}body:has(dialog[open]){overflow:hidden}.detail-layout{display:grid;grid-template-columns:1fr 1fr;position:relative}.detail-photo{position:sticky;top:0;align-self:start}.detail-photo .photo{aspect-ratio:1/1}.detail-copy{padding:44px 28px 24px;display:flex;flex-direction:column;gap:16px;min-width:0}.detail-copy h2{font-size:1.75rem}.detail-copy .description{font-size:1rem}.close{position:absolute;right:12px;top:12px;width:48px;padding:12px;z-index:1;background:#0c0c0ce6}.detail-actions{margin-top:auto;position:sticky;bottom:0;background:var(--surface);padding-top:24px;display:grid;gap:12px}.primary{background:var(--gold);color:var(--canvas);font-weight:650}.primary:hover{background:#d6b77e}.detail-actions .primary{display:flex;justify-content:space-between;gap:12px}.detail-favorite{display:flex;align-items:center;justify-content:center;gap:8px}.cart-list{display:grid;gap:16px}.cart-row{display:grid;grid-template-columns:100px 1fr 154px 48px;align-items:center;gap:20px;background:var(--surface);padding:16px;border-radius:16px}.cart-row .photo{border-radius:10px;aspect-ratio:1}.cart-row .placeholder{font-size:.7rem}.cart-row h3{margin-bottom:8px}.remove{padding:12px;width:48px}.cart-total{margin-top:24px;max-width:520px;margin-left:auto;display:grid;gap:16px;background:var(--surface);padding:24px;border-radius:16px}.cart-total .total{display:flex;justify-content:space-between;gap:16px;font-size:1.375rem;font-weight:600}.cart-total p{color:var(--muted);font-size:.875rem}.skip{position:fixed;top:-100px;z-index:99;padding:12px;background:var(--gold);color:var(--canvas)}.skip:focus{top:8px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:1050px){.grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:700px){.wrap,.header-inner{padding:0 16px}.header-inner{min-height:76px;gap:12px}.brand img{width:114px;height:58px}.header-caption{display:none}.header-cart{font-size:.875rem;padding:10px 12px}.context{display:block;padding-top:16px}.segmented{width:max-content;max-width:100%;margin-bottom:8px}.context>span{font-size:.75rem}.toolbar{display:block;margin:12px 0 16px}h1{font-size:1.75rem;margin-bottom:16px}.search{width:100%}.categories{margin-bottom:16px}.categories button{font-size:.875rem;padding:10px 14px}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.section-head{margin:20px 0 14px}.section-head h2{font-size:1.25rem}.section-head span{font-size:.75rem}.card-body{padding:12px;gap:6px}.name{font-size:.9375rem}.description{font-size:.8125rem}.card-footer{padding-top:8px}.add{padding:10px;font-size:.875rem}.card .photo{aspect-ratio:1}.favorite{width:48px;top:4px;right:4px}.card .placeholder{font-size:.75rem}.photo.placeholder svg{width:32px;height:32px}.cart-row{grid-template-columns:72px 1fr 48px;gap:12px;padding:12px}.cart-row .quantity{grid-column:2;grid-row:2;max-width:154px}.cart-row .remove{grid-column:3;grid-row:1}.cart-row .photo{grid-column:1;grid-row:1/3}.cart-row .row-copy{grid-column:2}.cart-row .placeholder span{display:none}.cart-total{padding:20px}.detail-layout{grid-template-columns:1fr}.detail-photo{position:static}.detail-photo .photo{aspect-ratio:1.15}.detail-copy{padding:24px 20px 20px}.detail-copy h2{font-size:1.5rem}dialog{width:100%;max-width:100%;max-height:94dvh;margin:auto 0 0;border-radius:24px 24px 0 0}.detail-actions{padding-bottom:env(safe-area-inset-bottom);z-index:2}.detail-copy{padding-bottom:0}.detail-actions{padding-top:16px;padding-bottom:20px}.footnote{padding-bottom:180px}.bottom{padding-left:12px;padding-right:12px}}@media(max-width:350px){.wrap,.header-inner{padding-left:12px;padding-right:12px}.card-body{padding:10px}.quantity{gap:0}.quantity button{width:48px}.name{font-size:.875rem}.price-line{font-size:.875rem}.header-cart{gap:6px}.header-cart svg{display:none}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}@media(prefers-contrast:more){:root{--muted:#ded5c5;--border:#887655}}@media(min-width:701px){html{scroll-padding-top:24px}}
/* Acceptance correction: intrinsic image dimensions must not set card or row height. */
[hidden]{display:none!important}.photo{height:auto}.cart-row .dish-open{width:100px}.cart-row .photo{height:100px;aspect-ratio:1}.detail-photo img.photo{height:auto}.card img.photo{height:auto;aspect-ratio:1.2}#navigation{box-shadow:none}
/* The host safe rectangle owns dialog edges; sticky actions stay inside it. */
dialog{position:fixed;inset:var(--host-inset-top,0px) var(--host-inset-right,0px) var(--host-inset-bottom,0px) var(--host-inset-left,0px);margin:auto;width:min(960px,calc(100vw - var(--host-inset-left,0px) - var(--host-inset-right,0px) - 48px));max-height:calc(var(--stable-height,100dvh) - var(--host-inset-top,0px) - var(--host-inset-bottom,0px) - 48px)}
@media(max-width:700px){dialog{inset-block-end:calc(var(--host-inset-bottom,0px) + 12px);width:auto;max-width:none;max-height:calc(var(--stable-height,100dvh) - var(--host-inset-top,0px) - var(--host-inset-bottom,0px) - 12px);margin:auto 0 0}}
@media(max-width:700px){.cart-row .dish-open{width:72px}.cart-row .photo{height:72px}.card img.photo{aspect-ratio:1}.context{display:flex;flex-wrap:wrap;gap:6px 12px;padding:12px 0 6px}.segmented{margin-bottom:0}.context>span{font-size:.75rem}.toolbar{margin:8px 0 12px}.toolbar h1{margin-bottom:12px}.categories{padding-bottom:8px;margin-bottom:12px}.section-head{margin-top:16px}.photo.placeholder{height:auto}}
@media(max-width:450px){.header-inner{min-height:68px}.toolbar h1{font-size:1.5rem}.context .segmented button{min-height:48px}.card-body .description{display:none}}
@media(max-width:350px){.grid{gap:8px}}
@media(min-width:701px){.cart-row .dish-open{width:100px}}
#navigation,.header{background:color-mix(in srgb,var(--surface) 84%,transparent);backdrop-filter:blur(18px) saturate(1.18);-webkit-backdrop-filter:blur(18px) saturate(1.18)}.header{position:sticky;top:var(--host-inset-top,0px);z-index:4;padding-left:var(--host-inset-left,0px);padding-right:var(--host-inset-right,0px)}.bottom{max-height:calc(var(--stable-height,100vh) * .55);overflow:auto;padding-bottom:max(12px,calc(12px + var(--host-inset-bottom,env(safe-area-inset-bottom))));padding-left:max(12px,calc(12px + var(--host-inset-left,env(safe-area-inset-left))));padding-right:max(12px,calc(12px + var(--host-inset-right,env(safe-area-inset-right))));}.theme-switch{display:flex;gap:2px;padding:3px;background:var(--surface);border-radius:12px;margin-left:auto;flex-shrink:0}.theme-switch button{min-height:48px;padding:8px 12px;background:transparent;color:var(--muted);font-size:.8125rem}.theme-switch button[aria-pressed=true]{color:var(--text);background:var(--raised)}.context{flex-wrap:wrap}.favorite{backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
:root[data-theme=light]{color-scheme:light;--canvas:#f8f5ef;--surface:#fffdf9;--raised:#eee8dc;--text:#29251f;--muted:#62594d;--gold:#8b6325;--border:#cfc4b1}
:root[data-theme=light] .header{background:color-mix(in srgb,var(--surface) 86%,transparent)}:root[data-theme=light] .favorite{background:rgba(255,253,249,.9)}:root[data-theme=light] #navigation{background:rgba(255,253,249,.95);box-shadow:0 10px 30px #3127191c}:root[data-theme=light] .close{background:#fffdf9e8}:root[data-theme=light] .primary:hover{background:#79551f}:root[data-theme=light] .primary:hover{color:white}
@supports not ((backdrop-filter:blur(1px))){.header,#navigation,.favorite{background:var(--surface)}}
@media(prefers-reduced-transparency:reduce){.header,#navigation,.favorite{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--surface)}}
@media(prefers-contrast:more){.header,#navigation,.favorite{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--surface);border:1px solid var(--text)}}
@media(prefers-reduced-motion:no-preference){dialog[open]{animation:sheet-in 220ms cubic-bezier(.2,.8,.2,1)}@keyframes sheet-in{from{opacity:.92;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}}
@media(prefers-reduced-motion:reduce){dialog[open]{animation:none}}
@media(max-width:700px){.theme-switch{margin:8px 0 0 auto}.context{align-items:center}.theme-switch button{min-width:48px}.bottom{padding-bottom:max(12px,calc(12px + env(safe-area-inset-bottom) + var(--host-inset-bottom,0px)))}}
.brand{background:#0c0c0c;padding:4px 8px;border-radius:10px}.theme-label{margin-left:auto;flex-shrink:0}.theme-label select{min-height:48px;max-width:104px;padding:8px 10px;border:1px solid var(--border);border-radius:12px;background:var(--raised);color:var(--text);font:inherit;font-size:.875rem}@media(max-width:700px){.context{align-items:center}}
:root.theme-update button{transition:none!important}

/* Keep the amount and theme control inside the narrow header after selection. */
@media(max-width:350px){.header-inner{gap:8px}.header-inner .brand{flex-shrink:1;min-width:0}.header-inner .brand img{width:88px;max-width:100%;height:48px}.header-cart{margin-left:0;padding-inline:8px;min-width:0}.header-cart span{overflow-wrap:anywhere}}
