@property --p{syntax: "<number>"; inherits: true; initial-value: 0;}@property --gap{syntax: "<length>"; inherits: true; initial-value: 0px;}@property --type{syntax: "<color>"; inherits: true; initial-value: oklch(45% .02 60);}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}html,body{overscroll-behavior:none;background:var(--paper) var(--grain);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%}button{font:inherit;color:inherit;background:none;border:0;padding:0;margin:0;cursor:pointer}:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.app{height:100dvh;overflow:clip;max-width:520px;margin:0 auto;display:flex;flex-direction:column;padding:env(safe-area-inset-top) 0 max(14px,env(safe-area-inset-bottom));user-select:none;-webkit-user-select:none;background-color:var(--paper);background-image:var(--grain);transition:--type .9s var(--ease-swap),background-color .5s}.app[data-screen=meals]{background-color:color-mix(in oklab,var(--type) 30%,var(--paper))}.top{flex:none;display:flex;align-items:center;height:60px;padding:0 10px 0 20px}.app[data-screen=meals] .top{padding-left:6px}.mark{display:flex;align-items:center;gap:5px;font-family:var(--serif);font-size:20px;font-weight:600;letter-spacing:.01em;white-space:nowrap}.mark img{flex:none}.mark .word{display:flex;align-items:baseline;gap:6px}.mark small{font:500 11.5px var(--sans);letter-spacing:.08em;color:var(--muted)}.actions{min-width:0;margin-inline-start:auto;display:flex;gap:2px}.actions>*{flex:none}.icon-btn{position:relative;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;transition:transform .15s var(--ease-out),background-color .2s}.icon-btn:active{transform:scale(.92);background:var(--line)}.type-pill{min-width:0;display:flex;align-items:center;gap:9px;padding-block:4px;padding-inline:4px 12px;border-radius:20px;background:color-mix(in oklab,var(--type) 7%,white);transition:transform .15s var(--ease-out);box-shadow:0 1px 2px #3a2a2014;font-size:14px;font-weight:500;animation:rise .35s var(--ease-out) both}.type-pill:active{transform:scale(.96)}.type-pill>svg{flex:none;width:14px;height:14px;margin-inline-start:-3px;color:var(--muted);transform:rotate(-90deg)}.type-pill span:last-of-type{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.type-pill .type-badge{position:static;width:28px;height:28px;box-shadow:none}.type-pill .type-badge svg{width:15px;height:15px}.lang-btn{width:auto;padding:0 9px;display:flex;align-items:center;gap:5px;border-radius:22px;font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:uppercase}.menu-btn{letter-spacing:.02em;text-transform:none}.actions>.menu-btn{flex:0 1 auto;min-width:0}.menu-btn span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.menu-btn svg{flex:none}.back{margin-inline-end:2px;animation:rise .35s var(--ease-out) both}[dir=rtl] .back svg{transform:scaleX(-1)}.lid{transform-box:fill-box;transform-origin:12% 100%}.badge{position:absolute;top:4px;right:2px;min-width:17px;height:17px;padding:0 5px;border-radius:9px;background:var(--accent);color:#fff;font:600 10.5px/17px var(--sans);font-variant-numeric:tabular-nums;text-align:center;animation:pop .34s var(--ease-out)}.titles{flex:none;height:92px;padding:0 24px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center}.big{margin:0;max-width:100%;font-family:var(--serif);font-weight:500;font-size:clamp(32px,9.6vw,42px);line-height:1.12;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.small{margin:0;max-width:100%;font-size:13px;color:var(--muted);letter-spacing:.06em;text-transform:lowercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rise{animation:rise .42s var(--ease-out) both}.big .open{font:inherit;letter-spacing:inherit;display:inline-flex;align-items:center;gap:.12em}.big .open svg{width:.48em;height:.48em;color:var(--muted);transform:scaleX(-1)}[dir=rtl] .big .open svg{transform:none}.details-btn{display:inline-flex;align-items:center;gap:3px;height:26px;padding-inline:12px 8px;border-radius:13px;font-size:12px;letter-spacing:.04em;color:color-mix(in oklab,var(--ink) 72%,var(--type));box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--ink) 26%,var(--type));transition:transform .15s var(--ease-out),background-color .25s,color .25s,box-shadow .25s;animation:fadeIn .5s var(--ease-out) .2s both}.details-btn:active{transform:scale(.95)}.details-btn[aria-expanded=true]{background:color-mix(in oklab,var(--ink) 86%,var(--type));color:var(--paper);box-shadow:inset 0 0 0 1px transparent}.details-btn svg{width:12px;height:12px;stroke-width:2;transform:scaleX(-1);transition:transform .3s var(--ease-out)}.details-btn[aria-expanded=true] svg,[dir=rtl] .details-btn svg{transform:none}[dir=rtl] .details-btn[aria-expanded=true] svg{transform:scaleX(-1)}.stage{position:relative;flex:1;min-height:0;container-type:size;display:grid;place-items:center}.plate{position:relative;width:min(92cqw,94cqh);aspect-ratio:1;view-transition-name:plate;transition:transform .6s cubic-bezier(.32,.72,0,1)}.stage[data-details] .plate{transform:translate(-27cqw) scale(.48)}.details{position:absolute;inset:0 16px 0 calc(23cqw + min(92cqw,94cqh)*.24 + 22px);display:flex;flex-direction:column;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s}.stage[data-details] .details{opacity:1;pointer-events:auto;transition-delay:.08s}.details-in{max-height:100%;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;padding-block:10px 28px;-webkit-mask-image:linear-gradient(transparent,#000 10px,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(transparent,#000 10px,#000 calc(100% - 28px),transparent);user-select:text;-webkit-user-select:text}.details-in::-webkit-scrollbar{display:none}.stage[data-details] .details-in [style*=--i]{animation:rise .5s var(--ease-out) calc(.12s + var(--i) * .04s) both}.details-desc{margin:14px 0 0;font-family:var(--serif);font-size:15px;font-style:italic;line-height:1.3;overflow-wrap:anywhere}.details h3{margin:0 0 6px;font-size:11px;font-weight:500;letter-spacing:.08em;color:color-mix(in oklab,var(--ink) 55%,var(--type))}.ingredients{margin:0 0 12px;padding:0;list-style:none;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:10px}.ingredients li{position:relative;padding:2px 0 2px 13px;font-size:13.5px;line-height:1.3;overflow-wrap:anywhere}.ingredients li:before{content:"";position:absolute;left:2px;top:.78em;width:5px;height:5px;border-radius:50%;background:var(--type)}[dir=rtl] .ingredients li{padding:2px 13px 2px 0}[dir=rtl] .ingredients li:before{left:auto;right:2px}.allergens{margin:0 0 10px;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:5px}.allergens li{padding:3px 9px;border-radius:12px;font-size:12px;background:color-mix(in oklab,var(--type) 14%,var(--paper));box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--type) 30%,transparent)}.details-note{margin:0;font-size:10.5px;line-height:1.4;color:color-mix(in oklab,var(--ink) 55%,var(--type))}.foot{flex:none;display:flex;flex-direction:column;gap:14px;padding-top:8px;view-transition-name:foot}.row{display:flex;gap:0;padding:7px 18px 0;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,transparent,#000 28px,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,transparent,#000 28px,#000 calc(100% - 28px),transparent)}.row::-webkit-scrollbar{display:none}.row-hint{margin:0 0 -6px;display:flex;align-items:center;justify-content:center;gap:12px;font-size:11.5px;letter-spacing:.08em;color:color-mix(in oklab,var(--muted) 80%,var(--paper));animation:fadeIn .6s var(--ease-out) both}.row-hint:before,.row-hint:after{content:"";width:28px;height:1px;background:currentColor;opacity:.45}.thumb:first-child{margin-inline-start:auto}.thumb:last-child{margin-inline-end:auto}.thumb{flex:none;width:86px;display:flex;flex-direction:column;align-items:center;gap:8px;transition:transform .2s var(--ease-out)}.thumb:active{transform:scale(.93)}.pic{position:relative;width:66px;height:66px;border-radius:50%;background:var(--paper-2);outline:2px solid transparent;outline-offset:3px;transition:outline-color .25s,transform .3s var(--ease-out)}.thumb[aria-current] .pic{outline-color:var(--type);transform:scale(1.06)}.pic img{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover;pointer-events:none;animation:fadeIn .5s var(--ease-out)}.thumb.kind-object img{border-radius:0;object-fit:contain}.thumb.kind-glass img{border-radius:0;object-fit:contain;padding:6px}.name{width:100%;min-height:2.5em;font-size:10.5px;line-height:1.25;color:var(--muted);text-align:center;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;transition:color .25s}.app[data-screen=meals] .name{color:color-mix(in oklab,var(--ink) 72%,var(--type))}.thumb[aria-current] .name{color:var(--ink);font-weight:600}.type-badge{position:absolute;right:-3px;bottom:-3px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--type);color:#fff;box-shadow:0 0 0 2px var(--paper)}.type-badge svg{width:12px;height:12px}.thumb[aria-current] .type-badge,.type-pill .type-badge{view-transition-name:type-badge}.pic .count,.dish-pic .count{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--ink);color:var(--paper);font:600 10.5px/18px var(--sans);font-variant-numeric:tabular-nums;animation:pop .34s var(--ease-out)}.choose{margin:0 20px;height:56px;border-radius:28px;padding:0 26px;display:flex;align-items:center;justify-content:space-between;background:var(--ink);color:var(--paper);font-size:17px;font-weight:500;letter-spacing:.01em;box-shadow:0 12px 26px -14px #251a158c;transition:transform .15s var(--ease-out);animation:rise .4s var(--ease-out) both}.choose:active{transform:scale(.98)}.choose .price{font-variant-numeric:tabular-nums;opacity:.7}dialog.sheet{margin:auto auto 0;width:100%;max-width:520px;max-height:80dvh;padding:0;border:0;border-radius:26px 26px 0 0;background:var(--paper) var(--grain);color:var(--ink);box-shadow:0 -24px 60px -24px #251a1559;overflow:hidden}dialog.sheet[open]{animation:sheetUp .5s cubic-bezier(.32,.72,0,1)}dialog.sheet::backdrop{background:#251a1552;opacity:var(--shade, 1);animation:fadeIn .45s}dialog.sheet.held[open],dialog.sheet.held::backdrop{animation:none}dialog.sheet.leaving::backdrop{opacity:0;transition:opacity .35s}.sheet-in{display:flex;flex-direction:column;max-height:80dvh;padding:6px 0 max(18px,env(safe-area-inset-bottom))}.sheet-in:focus{outline:none}.grab{flex:none;width:38px;height:4px;margin:4px auto 12px;border-radius:2px;background:#251a1526}.sheet-head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;padding-inline:22px 12px}.sheet-title{margin:0;font-family:var(--serif);font-size:28px;font-weight:500}.sheet-head .icon-btn{width:38px;height:38px;color:var(--muted);background:var(--paper-2)}.sheet-list{flex:1 1 auto;min-height:0;margin:0;padding:0 22px;list-style:none;overflow-y:auto;overscroll-behavior:none}.sheet-empty{margin:0;padding:2px 22px 18px;font-size:15px;line-height:1.5;color:var(--muted)}.pick{display:grid;grid-template-columns:48px minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.pick-img{width:48px;height:48px;border-radius:50%;object-fit:cover;background:var(--paper-2)}.pick-img.kind-glass,.pick-img.kind-object{object-fit:contain;padding:3px}.pick-name{font-family:var(--serif);font-size:19px;font-weight:500;line-height:1.15;overflow-wrap:anywhere}.stepper{display:flex;align-items:center;height:34px;border:1px solid var(--line);border-radius:17px}.stepper button{width:32px;height:32px;display:grid;place-items:center;border-radius:50%}.stepper button:active{background:var(--line)}.qty{min-width:18px;text-align:center;font-size:14px;font-variant-numeric:tabular-nums}.pick-price{min-width:56px;text-align:end;font-size:14px;font-variant-numeric:tabular-nums}.sheet-foot{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 22px 0}.link{padding:8px 0;font-size:13px;color:var(--muted);text-decoration:underline;text-underline-offset:3px}.total{display:flex;align-items:baseline;gap:10px}.total span{font-size:13px;color:var(--muted);letter-spacing:.06em;text-transform:lowercase}.total strong{font-family:var(--serif);font-size:30px;font-weight:600;font-variant-numeric:lining-nums tabular-nums}.search{flex:none;height:44px;margin:0 22px 6px;padding-block:0;padding-inline:42px 16px;border:1px solid var(--line);border-radius:22px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--paper-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%237d7268' stroke-width='1.7' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='m20 20-4.2-4.2'/%3E%3C/svg%3E") no-repeat left 16px center;color:var(--ink);font:inherit;font-size:16px;outline:none}.search:focus-visible{border-color:var(--ink)}[dir=rtl] .search{background-position:right 16px center}.search::-webkit-search-cancel-button{-webkit-appearance:none;width:16px;height:16px;cursor:pointer;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 18 18' fill='none' stroke='%237d7268' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='m4.5 4.5 9 9m0-9-9 9'/%3E%3C/svg%3E") no-repeat center}.lang-row{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line);text-align:start}.lang-row:disabled{cursor:progress}.lang-native{font-size:17px}.lang-row[aria-current] .lang-native{font-weight:600}.lang-en{grid-row:2;font-size:12.5px;color:var(--muted)}.lang-row>svg,.lang-row>.spinner{grid-column:2;grid-row:1 / span 2}.lang-failed{margin:6px 0 4px;font-size:13px;line-height:1.4;color:#ac3225}.lang-note{flex:none;margin:12px 22px 0;font-size:12px;line-height:1.5;color:var(--muted)}.spinner{width:16px;height:16px;border-radius:50%;border:1.5px solid var(--line);border-top-color:var(--ink);animation:spin .7s linear infinite}dialog.sheet.tall{height:100dvh;max-height:100dvh}.sheet.tall .sheet-in{height:calc(100% - var(--gap));max-height:none}dialog.sheet.tall{border-radius:calc(26px * (1 - var(--p))) calc(26px * (1 - var(--p))) 0 0}.sheet.tall .grab{height:calc(4px * (1 - var(--p)));margin:calc(4px * (1 - var(--p))) auto calc(12px - 8px * var(--p));opacity:calc(1 - 1.5 * var(--p))}.sheet.tall .sheet-head{margin-bottom:calc(8px - 2px * var(--p))}.sheet.tall .sheet-title{font-size:calc(28px - 6px * var(--p))}.sheet.tall .sheet-head .icon-btn{width:calc(38px - 6px * var(--p));height:calc(38px - 6px * var(--p))}.sheet.tall .search{height:calc(44px - 6px * var(--p));margin-bottom:calc(6px - 4px * var(--p))}.sheet.tall .chips{padding-block:calc(8px - 2px * var(--p)) calc(12px - 4px * var(--p))}.sheet.tall .chip{height:calc(38px - 6px * var(--p));font-size:calc(13.5px - 1px * var(--p))}.sheet.tall .chip .type-badge{width:calc(28px - 4px * var(--p));height:calc(28px - 4px * var(--p))}.chips{flex:none;display:flex;gap:8px;padding:8px 22px 12px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;border-bottom:1px solid var(--line);-webkit-mask-image:linear-gradient(90deg,transparent,#000 18px,#000 calc(100% - 18px),transparent);mask-image:linear-gradient(90deg,transparent,#000 18px,#000 calc(100% - 18px),transparent)}.chips::-webkit-scrollbar{display:none}.chip{flex:none;display:flex;align-items:center;gap:8px;height:38px;padding-inline:5px 15px;border-radius:19px;box-shadow:inset 0 0 0 1px var(--line);font-size:13.5px;font-weight:500;white-space:nowrap;transition:background-color .25s,box-shadow .25s,transform .15s var(--ease-out)}.chip:active{transform:scale(.95)}.chip[aria-current]{background:color-mix(in oklab,var(--type) 16%,var(--paper));box-shadow:inset 0 0 0 1.5px var(--type)}.chip .type-badge,.menu-sec h3 .type-badge{position:static;width:28px;height:28px;box-shadow:none}.chip .type-badge svg{width:15px;height:15px}.menu-list{position:relative;flex:1 1 auto;min-height:0;padding:0 22px 28px;overflow-y:auto;overscroll-behavior:none}.menu-sec{padding-top:22px}.menu-sec h3{display:flex;align-items:center;gap:11px;margin:0 0 4px;font-family:var(--serif);font-size:25px;font-weight:500;line-height:1.15}.menu-sec h3 .type-badge{width:26px;height:26px}.menu-sec h3 .type-badge svg{width:14px;height:14px}.menu-sec ul{margin:0;padding:0;list-style:none}.dish{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line)}.dish:last-child{border-bottom:0}.dish-go{flex:1;min-width:0;display:grid;grid-template-columns:58px minmax(0,1fr);column-gap:15px;row-gap:3px;align-items:center;padding:11px 0;text-align:start;transition:opacity .15s}.dish-go:active{opacity:.6}.dish-pic{grid-row:1 / span 2;position:relative;width:58px;height:58px;border-radius:50%;background:var(--paper-2);outline:2px solid transparent;outline-offset:3px}.dish-pic img{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover;animation:fadeIn .5s var(--ease-out)}.dish-pic.kind-object img,.dish-pic.kind-glass img{border-radius:0;object-fit:contain;padding:4px}.dish[aria-current] .dish-pic{outline-color:var(--type)}.dish-name{align-self:end;font-family:var(--serif);font-size:20px;font-weight:500;line-height:1.15;overflow-wrap:anywhere}.dish-meta{align-self:start;display:flex;flex-wrap:wrap;gap:0 8px;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}.on-plate{color:color-mix(in oklab,var(--type) 70%,var(--ink))}.on-plate:before{content:"·";margin-inline-end:8px;color:var(--muted)}.dish-add{flex:none;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;box-shadow:inset 0 0 0 1px var(--line);transition:transform .15s var(--ease-out),background-color .2s,color .2s}.dish-add:active{transform:scale(.88);background:var(--ink);color:var(--paper)}::view-transition-group(*){animation-duration:.38s;animation-timing-function:var(--ease-out)}@keyframes rise{0%{opacity:0;transform:translateY(6px)}}@keyframes pop{0%{transform:scale(.4);opacity:0}}@keyframes sheetUp{0%{transform:translateY(100%)}}@keyframes fadeIn{0%{opacity:0}}@keyframes fadeOut{to{opacity:0}}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.plate-layer.enter{animation:fadeIn .3s both!important}.plate-layer.leave{animation:fadeOut .2s both!important}.rise,.choose,.stage[data-details] .details-in [style*=--i],.back,dialog.sheet[open]{animation:none}}
