:root{--primary:#e59866;--primary-dark:#cf7f4e;--primary-light:#f0c4a5;--primary-soft:#f8e9dd;--accent:#f2cf9a;--bg:#faf6f0;--card-bg:#ffffffe0;--text:#4b4038;--text-muted:#9a8b7e;--border:#efe3d7;--danger:#c76b5e;--radius:22px;--shadow:0 12px 30px #be91691f;--ease:cubic-bezier(.4, 0, .2, 1);--duration:.35s;letter-spacing:.02em;color:var(--text);background-color:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;font-family:PingFang SC,Hiragino Sans GB,Noto Sans SC,Microsoft YaHei,system-ui,-apple-system,Segoe UI,sans-serif;font-weight:400;line-height:1.6}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(circle at 12% -8%, #f2cf9a4d, transparent 46%), radial-gradient(circle at 92% 2%, #e5986624, transparent 42%), var(--bg);min-width:320px;min-height:100vh;margin:0}button,input,textarea{font:inherit;color:inherit}button{letter-spacing:inherit;transition:background-color var(--duration) var(--ease), color var(--duration) var(--ease), border-color var(--duration) var(--ease), box-shadow var(--duration) var(--ease), transform var(--duration) var(--ease)}img{max-width:100%;display:block}:focus-visible{outline-offset:3px;outline:3px solid #e5986673}.app{max-width:760px;min-height:100vh;padding-bottom:calc(116px + env(safe-area-inset-bottom));margin:0 auto}.app-header{color:var(--text);-webkit-backdrop-filter:blur(14px)saturate(1.15);will-change:transform, opacity;background:linear-gradient(140deg,#ffffffd6 0%,#fff8f094 100%);border:1px solid #ffffffe6;border-radius:30px;margin:16px 16px 24px;padding:30px 26px 28px;position:relative;overflow:hidden;box-shadow:0 18px 44px #bc8e6524,inset 0 1px #ffffffd9}.app-header:before,.app-header:after{content:"";pointer-events:none;border-radius:50%;position:absolute}.app-header:before{background:radial-gradient(circle,#e598664d 0%,#e5986600 70%);width:190px;height:190px;top:-76px;right:-48px}.app-header:after{background:radial-gradient(circle,#f2cf9a52 0%,#f2cf9a00 70%);width:170px;height:170px;bottom:-82px;left:-42px}.app-header>*{z-index:1;position:relative}.app-header__eyebrow{letter-spacing:.18em;color:var(--primary-dark);margin:0;font-size:13px;font-weight:500}.app-header h1{letter-spacing:.03em;color:#463a31;margin:10px 0 0;font-size:clamp(27px,6.5vw,34px);font-weight:500;line-height:1.25}.app-header__subtitle{letter-spacing:.06em;color:var(--text-muted);margin:10px 0 0;font-size:13px;font-weight:400}.app-header .header-history{z-index:2;width:34px;height:34px;color:var(--primary-dark);cursor:pointer;-webkit-backdrop-filter:blur(10px)saturate(1.1);transition:transform .25s var(--ease), background-color .3s var(--ease), box-shadow .3s var(--ease);background:#ffffff9e;border:1px solid #ffffffe6;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;top:14px;right:14px;box-shadow:0 6px 16px #b4845c1f}.app-header .header-history:active{transform:scale(.92)}@media (hover:hover){.app-header .header-history:hover{background:#ffffffe6;box-shadow:0 10px 22px #b4845c2e}}.category-nav{--nav-spring:cubic-bezier(.34, 1.56, .64, 1);z-index:30;pointer-events:none;background:0 0;align-items:center;gap:7px;padding:8px 16px 10px;display:flex;position:sticky;top:0}.category-nav__scroller{pointer-events:auto;-webkit-backdrop-filter:blur(14px)saturate(1.1);-webkit-overflow-scrolling:touch;scrollbar-width:none;background:#faf6f0a8;border:1px solid #ffffffb8;border-radius:999px;flex:auto;gap:5px;min-width:0;padding:8px 10px;display:flex;position:relative;overflow-x:auto;box-shadow:0 10px 24px #b4875f14}.category-nav__scroller::-webkit-scrollbar{display:none}.category-nav__blindbox{color:#fff;pointer-events:auto;cursor:pointer;width:46px;height:46px;transition:transform .3s var(--ease), box-shadow .3s var(--ease);background:linear-gradient(140deg,#f2bd91 0%,#e59866 58%,#d9814e 100%);border:0;border-radius:50%;flex:none;place-items:center;padding:0;display:grid;position:relative;box-shadow:0 8px 20px #e598665c,inset 0 1px #ffffff61}.category-nav__blindbox:after{content:"";pointer-events:none;border:1.5px solid #e598666b;border-radius:50%;animation:2.6s ease-out infinite blindbox-pulse;position:absolute;inset:-3px}.category-nav__blindbox:active{transform:scale(.92)}@media (hover:hover){.category-nav__blindbox:hover{transform:translateY(-1px);box-shadow:0 12px 26px #e5986670,inset 0 1px #ffffff6b}}@keyframes blindbox-pulse{0%{opacity:.8;transform:scale(.86)}70%{opacity:0;transform:scale(1.2)}to{opacity:0;transform:scale(1.2)}}.category-nav__indicator{z-index:0;pointer-events:none;will-change:transform, width, height;background:linear-gradient(135deg,#efb184 0%,#e59866 58%,#dd8b5b 100%);border-radius:999px;width:0;height:0;position:absolute;top:0;left:0;box-shadow:0 8px 18px #e5986647,0 2px 6px #be82551f}.category-nav__pill{z-index:1;height:40px;font:inherit;letter-spacing:.04em;color:#8f8175;white-space:nowrap;cursor:pointer;appearance:none;transition:color .3s var(--ease), background-color .35s var(--ease), border-color .35s var(--ease), box-shadow .35s var(--ease);background:#ffffffb8;border:1px solid #efe3d7e6;border-radius:999px;flex:none;justify-content:center;align-items:center;gap:0;padding:0 7px;font-size:13px;font-weight:500;display:inline-flex;position:relative}.category-nav__pill:active{transform:scale(.96)}.category-nav__pill:first-of-type{margin-left:auto}.category-nav__pill:last-of-type{margin-right:auto}.category-nav__icon{color:#a99a8b;transition:color .3s var(--ease), transform .5s var(--nav-spring);flex:none;justify-content:center;align-items:center;display:inline-flex}.category-nav__label{opacity:0;width:0;transition:width .55s var(--nav-spring), margin-left .55s var(--nav-spring), opacity .22s var(--ease), transform .4s var(--nav-spring);flex:none;margin-left:0;line-height:1;display:block;overflow:hidden;transform:translate(-4px)}.category-nav__pill--active{color:#fff;box-shadow:none;background:0 0;border-color:#0000}.category-nav__pill--active .category-nav__icon{color:#fff;transform:scale(1.08)}.category-nav__pill--active .category-nav__label{width:var(--label-width,0px);opacity:1;transition:width .55s var(--nav-spring), margin-left .55s var(--nav-spring), opacity .3s var(--ease), transform .55s var(--nav-spring);margin-left:7px;transform:translate(0)}@media (prefers-reduced-motion:reduce){.category-nav__pill,.category-nav__icon,.category-nav__label{transition:none}}.menu{padding:26px 20px 12px}.site-footer{text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 16px;padding:4px 20px 0;display:flex}.site-footer a{color:#999;align-items:center;gap:4px;font-size:12px;font-weight:400;text-decoration:none;transition:color .2s;display:inline-flex}.site-footer img{width:auto;height:16px}.site-footer a:hover{color:#6f6f6f;text-decoration:underline}.site-footer a:focus-visible{color:#6f6f6f;outline-offset:3px;border-radius:2px;outline:2px solid #e598668c;text-decoration:underline}.category{margin-bottom:36px;scroll-margin-top:88px}.category__title{letter-spacing:.08em;color:var(--text);align-items:center;gap:10px;margin:0 0 14px;font-size:18px;font-weight:500;display:flex}.category__title:before{content:"";background:linear-gradient(90deg, var(--primary), var(--accent));border-radius:999px;width:18px;height:3px}.dish-list{flex-direction:column;gap:12px;display:flex}.dish-list--empty{justify-content:center;min-height:170px}.empty-hint{letter-spacing:.06em;color:#a99c90;text-align:center;margin:0;padding:24px 20px;font-size:14px;font-weight:300;line-height:2}.empty-hint__dots{letter-spacing:.5em;color:#e5986699;margin-bottom:4px;font-size:12px;display:block}.empty-hint__accent{color:var(--primary-dark);font-weight:400}.state--empty .empty-hint{padding:0}.dish-card{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;appearance:none;opacity:0;background:var(--card-bg);transition:transform var(--duration) var(--ease), box-shadow var(--duration) var(--ease), background-color var(--duration) var(--ease);border:1px solid #fffffff2;border-radius:22px;flex-direction:row;align-items:stretch;gap:14px;padding:12px;display:flex;overflow:hidden;transform:translateY(8px);box-shadow:0 12px 28px #be91691f}.dish-card--in{opacity:1;animation:.5s ease-out backwards card-in;animation-delay:calc(var(--card-index,0) * 60ms);transform:translateY(0)}.dish-card:active{transform:scale(.98)}@media (hover:hover){.dish-card:hover{transform:translateY(-2px);box-shadow:0 18px 36px #be91692e}.dish-card:hover .dish-card__media img{transform:scale(1.16)translateY(2%)}}.dish-image{background:#f2ebe3;display:block;position:relative;overflow:hidden}.dish-image__img{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .4s var(--ease), transform .5s var(--ease);position:absolute;inset:0}.dish-image--loaded .dish-image__img{opacity:1}.dish-image__placeholder{transition:opacity .4s var(--ease);background:#f2ebe3;place-items:center;display:grid;position:absolute;inset:0;overflow:hidden}.dish-image__placeholder:after{content:"";pointer-events:none;opacity:0;background:linear-gradient(105deg,#0000 34%,#e598661a 44%,#f2cf9a57 50%,#e598661a 56%,#0000 66%);position:absolute;inset:0;transform:translate(-100%)}.dish-image--loading .dish-image__placeholder:after{opacity:1;will-change:transform;animation:1.5s linear infinite skeleton-sweep}.dish-image--loaded .dish-image__placeholder{visibility:hidden;opacity:0;transition:opacity .4s var(--ease), visibility 0s linear .4s}.dish-image--empty .dish-image__placeholder,.dish-image--error .dish-image__placeholder{background:radial-gradient(circle at 32% 20%,#fffc,#0000 58%),linear-gradient(150deg,#f7efe6 0%,#eee0d2 100%)}.dish-image__fallback{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:6px;display:flex}.dish-image__icon{color:#aa8a70ad;filter:drop-shadow(0 2px 6px #be91691f);width:36px;max-width:70%}.modal__media .dish-image__icon{width:64px}.dish-image__caption{letter-spacing:.02em;color:#967c66cc;white-space:nowrap;font-size:8.5px;font-weight:400;line-height:1.35}.modal__media .dish-image__fallback{gap:8px}.modal__media .dish-image__caption{letter-spacing:.06em;font-size:12px}.dish-card__media{background:var(--primary-soft);border-radius:18px;flex-shrink:0;width:100px;height:100px}.dish-card__media .dish-image__img{transform-origin:50%;transform:scale(1.1)translateY(2%)}.dish-card--sold-out .dish-card__media{background:#eee6dd}.dish-card--sold-out .dish-card__media:after{z-index:1;content:"";pointer-events:none;background:#70645966;position:absolute;inset:0}.dish-card--sold-out .dish-card__name{color:var(--text-muted)}.dish-card--sold-out .dish-card__desc{opacity:.7}.dish-card__badge{z-index:2;letter-spacing:.12em;color:#7d6c5e;white-space:nowrap;-webkit-backdrop-filter:blur(6px);background:#fffcf7c2;border:1px solid #7d6c5e4d;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:500;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-8deg);box-shadow:0 4px 12px #5a3c231f}@media (hover:hover){.dish-card--sold-out:hover .dish-card__media img{transform:scale(1.1)translateY(2%)}}.dish-card__body{flex-direction:column;flex:1;min-width:0;padding:2px 4px 2px 0;display:flex}.dish-card__name{letter-spacing:.02em;color:var(--text);font-size:16px;font-weight:600;line-height:1.35;display:block}.dish-card__desc{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:5px;font-size:12.5px;font-weight:400;line-height:1.55;display:-webkit-box;overflow:hidden}.dish-card__tag{letter-spacing:.04em;color:var(--primary-dark);background:#e5986624;border-radius:999px;align-self:flex-start;margin-top:auto;padding:2px 8px;font-size:10.5px;font-weight:400}.menu-skeleton{pointer-events:none}.menu-skeleton--leaving{animation:.3s ease-out forwards skeleton-out}.skeleton{background:#f2ebe3}.skeleton-card{background:#ffffffb8;border:1px solid #ffffffe6;border-radius:22px;align-items:stretch;gap:14px;padding:12px;display:flex;position:relative;overflow:hidden;box-shadow:0 12px 28px #be916914}.skeleton-card:after{content:"";pointer-events:none;will-change:transform;background:linear-gradient(105deg,#0000 34%,#e598661a 44%,#f2cf9a57 50%,#e598661a 56%,#0000 66%);animation:1.5s linear infinite skeleton-sweep;position:absolute;inset:0;transform:translate(-100%)}.skeleton-card__lines{flex-direction:column;flex:1;gap:10px;min-width:0;padding:4px 4px 4px 0;display:flex}.skeleton--title{border-radius:8px;width:120px;height:20px;margin-bottom:14px}.skeleton--image{border-radius:18px;flex-shrink:0;width:100px;height:100px}.skeleton--name{border-radius:6px;width:62%;height:15px}.skeleton--desc{border-radius:5px;width:84%;height:12px}.skeleton--tag{border-radius:999px;width:38%;height:18px;margin-top:auto}@keyframes skeleton-sweep{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes skeleton-out{to{opacity:0}}.state{text-align:center;color:var(--text-muted);padding:64px 24px}.state__title{letter-spacing:.04em;color:var(--text);margin:0 0 8px;font-size:18px;font-weight:500}.state__detail{color:var(--text-muted);word-break:break-word;margin:0;font-size:13.5px}.state__hint{color:#b3a395;margin:8px 0 0;font-size:12.5px}.state button{letter-spacing:.05em;color:#fff;cursor:pointer;background:linear-gradient(135deg,#efb184,#e59866);border:0;border-radius:999px;margin-top:18px;padding:10px 26px;font-size:14px;font-weight:500;box-shadow:0 8px 18px #e5986642}.state button:active{transform:scale(.97)}.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(5px);animation:overlay-in .3s var(--ease);background:#49362847;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal{background:#fffcf7f7;border:1px solid #ffffffd9;border-radius:28px 28px 0 0;flex-direction:column;width:100%;max-width:520px;max-height:92dvh;animation:.48s cubic-bezier(.22,.9,.32,1) slide-up;display:flex;position:relative;overflow:hidden;box-shadow:0 -18px 50px #5a3c232e}.modal__close{z-index:2;width:36px;height:36px;color:var(--text);cursor:pointer;-webkit-backdrop-filter:blur(8px);background:#ffffffbd;border:1px solid #ffffffe6;border-radius:50%;place-items:center;padding:0;font-size:22px;line-height:1;display:grid;position:absolute;top:12px;right:12px;box-shadow:0 6px 16px #78503224}.modal__media{aspect-ratio:16/10;background:var(--primary-soft);flex-shrink:0;width:100%}.modal__body{flex:1;padding:20px 22px 8px;overflow-y:auto}.modal__title{letter-spacing:.03em;color:var(--text);margin:0;font-size:23px;font-weight:500;line-height:1.3}.modal__description{color:var(--text-muted);white-space:pre-wrap;margin:10px 0 0;font-size:14px;line-height:1.75}.option-groups{gap:18px;margin-top:24px;display:grid}.option-group{min-width:0}.option-group__title{letter-spacing:.5px;color:#666;margin:0 0 11px;font-size:14.5px;font-weight:400}.option-group__list{flex-wrap:wrap;gap:12px 14px;margin:0 -4px;padding:6px 4px 8px;display:flex}.option-chip{letter-spacing:.03em;color:#51473f;cursor:pointer;max-width:100%;transition:color .28s var(--ease), border-color .28s var(--ease), box-shadow .28s var(--ease), transform .28s var(--ease);-webkit-tap-highlight-color:transparent;background:#f7f3ee;border:1px solid #d6c6b775;border-radius:999px;flex:none;padding:10px 20px;font-size:14px;font-weight:400;position:relative;box-shadow:inset 0 1px 2px #ffffffe6,0 1px 2px #96785a0a}.option-chip:before{content:"";pointer-events:none;border-radius:inherit;opacity:0;transition:opacity .3s var(--ease);background:linear-gradient(135deg,#efb184 0%,#e59866 58%,#dd8b5b 100%);position:absolute;inset:0}.option-chip__label{z-index:1;position:relative}.option-chip:active{transform:scale(.96)}.option-chip--selected{color:#fff;border-color:#e5986600;animation:1s ease-out chip-glow;box-shadow:0 4px 14px #e5986638}.option-chip--selected:before{opacity:1}.modal__footer{padding:10px 26px calc(18px + env(safe-area-inset-bottom));background:linear-gradient(#fffcf700,#fffcf7fa 45%);flex-shrink:0}.add-to-cart{letter-spacing:.08em;color:#fff;cursor:pointer;background:linear-gradient(135deg,#efb184,#e59866);border:0;border-radius:999px;width:100%;max-width:420px;margin:0 auto;padding:16px 22px;font-size:16px;font-weight:600;display:block;box-shadow:0 14px 30px #e5986652,0 4px 10px #be825524}.add-to-cart:active{transform:scale(.98)}.add-to-cart--jelly{animation:.5s cubic-bezier(.34,1.56,.64,1) add-jelly,.55s ease-in-out add-glow}.add-to-cart:disabled{cursor:default}.cart{z-index:50;width:100%;max-width:720px;padding:0 16px calc(16px + env(safe-area-inset-bottom));pointer-events:none;margin:0 auto;position:fixed;bottom:0;left:0;right:0}.cart>*{pointer-events:auto}.cart__bar{width:100%;color:var(--text);cursor:pointer;-webkit-backdrop-filter:blur(18px)saturate(1.2);transition:transform var(--duration) var(--ease), box-shadow var(--duration) var(--ease), background-color var(--duration) var(--ease);background:#fffcf7b8;border:1px solid #ffffffe6;border-radius:999px;align-items:center;gap:14px;padding:9px 9px 9px 24px;display:flex;box-shadow:0 16px 38px #b4845c33,inset 0 1px #fffc}.cart__bar:active{transform:scale(.985)}.cart__bar--bump{animation:.72s cubic-bezier(.4,0,.2,1) cart-bump}.cart__summary{letter-spacing:.05em;color:var(--text-muted);text-align:left;flex:1;font-size:14px;font-weight:400}.cart__summary strong{color:var(--primary-dark);margin:0 2px;font-size:20px;font-weight:600}.cart__cta{letter-spacing:.04em;color:#fff;white-space:nowrap;width:58px;height:58px;transition:background var(--duration) var(--ease), color var(--duration) var(--ease), box-shadow var(--duration) var(--ease);background:linear-gradient(140deg,#efb184,#e59866);border-radius:999px;flex-shrink:0;place-items:center;font-size:13px;font-weight:600;display:grid;box-shadow:0 8px 18px #e5986657}.cart__bar--empty .cart__summary strong{color:var(--text-muted)}.cart__bar--empty .cart__cta{color:#a99a8c;box-shadow:none;background:#ece1d6}.back-to-top{right:16px;bottom:calc(108px + env(safe-area-inset-bottom));z-index:60;width:44px;height:44px;color:var(--primary-dark);pointer-events:none;visibility:hidden;cursor:pointer;opacity:0;-webkit-backdrop-filter:blur(16px)saturate(1.15);background:#fffcf7b8;border:1px solid #ffffffe6;border-radius:50%;place-items:center;padding:0;transition:opacity .3s ease-in-out,transform .3s ease-in-out,visibility .3s ease-in-out,background-color .3s ease-in-out,box-shadow .3s ease-in-out;display:grid;position:fixed;transform:translateY(10px);box-shadow:0 12px 26px #b4845c2e}.back-to-top--visible{pointer-events:auto;visibility:visible;opacity:1;transform:translateY(0)}.back-to-top:active{transform:scale(.94)}@media (hover:hover){.back-to-top:hover{background:#fffcf7e6;box-shadow:0 16px 32px #b4845c3d}}@media (width>=760px){.back-to-top{right:max(22px,50vw - 338px)}}.drawer-overlay{z-index:90;-webkit-backdrop-filter:blur(5px);animation:overlay-in .3s var(--ease);background:#49362847;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.drawer{background:#fffcf7f7;border:1px solid #ffffffd9;border-radius:28px 28px 0 0;flex-direction:column;width:100%;max-width:560px;max-height:88dvh;animation:.48s cubic-bezier(.22,.9,.32,1) slide-up;display:flex;overflow:hidden;box-shadow:0 -18px 50px #5a3c232e}.drawer__handle{background:#e7d8ca;border-radius:999px;flex-shrink:0;width:42px;height:5px;margin:10px auto 2px}.drawer__head{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 22px 14px;display:flex}.drawer__head h2{letter-spacing:.05em;color:var(--text);margin:0;font-size:19px;font-weight:500}.drawer__head p{color:var(--text-muted);margin:2px 0 0;font-size:12.5px}.drawer__actions{align-items:center;gap:8px;display:flex}.drawer__trash{width:36px;height:36px;color:var(--text-muted);cursor:pointer;border:1px solid var(--border);transition:color .3s var(--ease), background-color .3s var(--ease), border-color .3s var(--ease), transform .3s var(--ease);background:#fff9;border-radius:50%;place-items:center;padding:0;display:grid}.drawer__trash:active{transform:scale(.94)}.drawer__trash:disabled{cursor:not-allowed;opacity:.45}@media (hover:hover){.drawer__trash:hover{color:var(--danger);background:#fbeeea;border-color:#f0d4cc}}.drawer__close{width:36px;height:36px;color:var(--primary-dark);cursor:pointer;background:var(--primary-soft);border:0;border-radius:50%;place-items:center;padding:0;font-size:22px;line-height:1;display:grid}.drawer__close:disabled{cursor:not-allowed;opacity:.45}.drawer__body{flex:1;padding:6px 22px 18px;overflow-y:auto}.cart-list{margin:0;padding:0;list-style:none}.cart-line{transition:opacity .26s ease-in-out,transform .26s ease-in-out;transition-delay:calc(var(--line-index,0) * 30ms);border-bottom:1px dashed #f0e4d8;align-items:flex-start;gap:12px;padding:15px 0;display:flex}.cart-list--clearing .cart-line{opacity:0;transform:translate(-14px)}.cart-line:last-child{border-bottom:0}.cart-line__main{flex:1;min-width:0}.cart-line__name{color:var(--text);margin:0;font-size:15px;font-weight:500}.cart-line__sides{color:var(--text-muted);margin:4px 0 0;font-size:12.5px}.cart-line__note{color:var(--primary-dark);word-break:break-word;white-space:pre-wrap;margin:5px 0 0;font-size:12.5px;line-height:1.55}.cart-line__note-input{width:100%;min-height:54px;font:inherit;color:var(--text);border:1.5px solid var(--border);resize:none;transition:border-color var(--duration) var(--ease), box-shadow var(--duration) var(--ease);background:#ffffffe6;border-radius:12px;outline:none;padding:9px 12px;font-size:13px;line-height:1.5;display:block}.cart-line__note-input::placeholder{color:#bfae9f}.cart-line__note-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #e5986624}.cart-line__note-input:disabled{cursor:not-allowed;opacity:.8;background:#f8f2eb}.cart-line__note-toggle{color:var(--primary-dark);cursor:pointer;background:0 0;border:0;margin-top:5px;padding:5px 0;font-size:12.5px}.cart-line__note-toggle:disabled{cursor:not-allowed;opacity:.45}.cart-line__remove{color:var(--danger);cursor:pointer;background:#fbeeea;border:0;border-radius:999px;flex-shrink:0;padding:6px 12px;font-size:12.5px}.cart-line__remove:disabled{cursor:not-allowed;opacity:.45}.note-field{margin-top:18px;display:block;position:relative}.note-field__label{z-index:1;letter-spacing:.03em;color:#a99a8c;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;transform-origin:0 0;max-width:calc(100% - 16px);transition:transform .18s var(--ease), font-size .18s var(--ease), color .18s var(--ease);background:#fffcf7;border-radius:6px;padding:0 6px;font-size:14px;font-weight:400;line-height:1.5;position:absolute;top:12px;left:8px;overflow:hidden}.note-field textarea:focus+.note-field__label,.note-field textarea:not(:placeholder-shown)+.note-field__label{color:var(--primary-dark);font-size:12px;transform:translateY(-20px)}.note-field textarea{width:100%;min-height:84px;font:inherit;color:var(--text);border:1.5px solid var(--border);resize:vertical;transition:border-color var(--duration) var(--ease), box-shadow var(--duration) var(--ease);background:#ffffffe6;border-radius:16px;outline:none;padding:12px 14px;font-size:14px;line-height:1.6}.note-field textarea::placeholder{color:#bfae9f}.note-field textarea:focus{border-color:var(--primary);box-shadow:0 0 0 4px #e5986624}.note-field textarea:disabled{cursor:not-allowed;opacity:.8;background:#f8f2eb}.note-field--compact{margin-top:22px}.note-field--compact textarea{resize:none;min-height:62px}.note-field--inline{margin-top:14px}.note-field--inline textarea{resize:none;border-radius:12px;min-height:54px;margin-top:0;padding:9px 12px;font-size:13px;line-height:1.5}.note-field--inline textarea:focus{box-shadow:0 0 0 3px #e5986624}.note-field--inline .note-field__label{font-size:13px;top:9px;left:6px}.note-field--inline textarea:focus+.note-field__label,.note-field--inline textarea:not(:placeholder-shown)+.note-field__label{font-size:12px;transform:translateY(-17px)}.drawer__error{color:#a3352b;word-break:break-word;background:#fbeeea;border-radius:12px;margin:12px 0 0;padding:10px 14px;font-size:13px;line-height:1.5}.drawer__footer{padding:14px 22px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:#fffcf7f5;flex-shrink:0}.cart-drawer-overlay{-webkit-backdrop-filter:blur(7px);background:#3c2c2052}.cart-drawer{-webkit-backdrop-filter:blur(26px)saturate(1.15);will-change:transform;background:#fffcf7e6;border-color:#ffffffe6;border-radius:30px 30px 0 0;max-height:60dvh;transition:transform .36s cubic-bezier(.22,1,.36,1);animation:.58s cubic-bezier(.22,1,.36,1) cart-sheet-in;box-shadow:0 -22px 60px #5a3c2338}.cart-drawer:focus{outline:none}.cart-drawer--dragging{transition:none}.cart-drawer--dismissing{transition:transform .24s ease-in}.cart-drawer .drawer__grab{cursor:grab;touch-action:none;flex-shrink:0;place-items:center;padding:8px 0 4px;display:grid}.cart-drawer .drawer__grab:active{cursor:grabbing}.cart-drawer .drawer__handle{background:#7e6d5f52;width:44px;height:5px;margin:0}.cart-drawer .drawer__body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:auto;min-height:0;padding-top:10px}.cart-drawer .drawer__footer{padding-top:12px;padding-bottom:calc(14px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(20px);background:#fffcf7f0;border-top-color:#efe3d7d9;flex-shrink:0;gap:11px;display:grid;box-shadow:0 -14px 32px #5a3c2317}.cart-drawer .drawer__footer .note-field{margin-top:0}.cart-drawer .note-field textarea{resize:none;min-height:72px}.cart-drawer .drawer__footer .drawer__error{margin:0}@keyframes cart-sheet-in{0%{transform:translateY(100%)}62%{transform:translateY(-5px)}82%{transform:translateY(2px)}to{transform:translateY(0)}}@media (width>=600px){.drawer-overlay.cart-drawer-overlay{align-items:flex-end;padding:0}.drawer.cart-drawer{border-radius:30px 30px 0 0}}.submit-order{letter-spacing:.08em;color:#fff;cursor:pointer;background:linear-gradient(135deg,#efb184,#e59866);border:0;border-radius:999px;justify-content:center;align-items:center;gap:10px;width:100%;padding:15px 20px;font-size:15.5px;font-weight:500;display:inline-flex;box-shadow:0 10px 24px #e5986647}.submit-order:not(:disabled):active{transform:scale(.98)}.submit-order:disabled{cursor:not-allowed;opacity:.62;box-shadow:none}.spinner{border:2px solid #ffffff73;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin}.confirm-overlay{z-index:3;-webkit-backdrop-filter:blur(5px);animation:overlay-in .25s var(--ease);background:#4936282e;place-items:center;padding:24px;display:grid;position:absolute;inset:0}.confirm{text-align:center;-webkit-backdrop-filter:blur(20px)saturate(1.1);background:#fffcf7db;border:1px solid #ffffffe6;border-radius:24px;width:min(320px,100%);padding:26px 24px 20px;animation:.26s cubic-bezier(.34,1.56,.64,1) confirm-in;box-shadow:0 24px 56px #5a3c2333}.confirm__title{letter-spacing:.04em;color:var(--text);margin:0;font-size:17px;font-weight:500}.confirm__hint{color:var(--text-muted);margin:8px 0 0;font-size:13px}.confirm__actions{grid-template-columns:1fr 1fr;gap:10px;margin-top:22px;display:grid}.confirm__cancel,.confirm__ok{letter-spacing:.06em;cursor:pointer;transition:transform .2s ease-in-out, background-color .3s var(--ease), box-shadow .3s var(--ease);border:0;border-radius:999px;padding:11px 16px;font-size:14.5px;font-weight:500}.confirm__cancel{color:var(--text-muted);background:#f0e9e1e6}.confirm__ok{color:#fff;background:linear-gradient(135deg,#de8577,#c76b5e);box-shadow:0 8px 18px #c76b5e47}.confirm__cancel:active,.confirm__ok:active{transform:scale(.97)}.history-drawer{-webkit-backdrop-filter:blur(26px)saturate(1.15);background:#fffcf7db}.history-drawer .drawer__body{padding-bottom:calc(24px + env(safe-area-inset-bottom))}.history-list{gap:12px;margin:0;padding:8px 0 4px;list-style:none;display:grid}.history-order{background:#ffffff9e;border:1px solid #efe3d7e6;border-radius:18px;padding:14px 16px 12px;box-shadow:0 6px 16px #b4875f0d}.history-order__top{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.history-order__time{letter-spacing:.03em;color:var(--text);margin:0;font-size:14px;font-weight:600}.history-order__count{color:var(--text-muted);flex-shrink:0;font-size:12px}.history-order__items{gap:7px;margin:10px 0 0;padding:0;list-style:none;display:grid}.history-item__name{color:var(--text);margin:0;font-size:14px;font-weight:500;line-height:1.4}.history-item__sides{color:var(--text-muted);margin:2px 0 0;font-size:12px;line-height:1.5}.history-item__note{color:var(--primary-dark);word-break:break-word;white-space:pre-wrap;margin:2px 0 0;font-size:12px;line-height:1.5}.history-order__note{color:var(--text-muted);word-break:break-word;background:#f8e9dd8c;border-radius:10px;margin:10px 0 0;padding:8px 10px;font-size:12.5px;line-height:1.5}.history-order__note span{color:var(--primary-dark);margin-right:6px;font-size:11.5px;font-weight:600}.history-order__foot{justify-content:flex-end;margin-top:10px;display:flex}.history-order__reorder{letter-spacing:.04em;color:#fff;cursor:pointer;background:linear-gradient(135deg,#efb184,#e59866);border:0;border-radius:999px;padding:7px 16px;font-size:13px;font-weight:500;box-shadow:0 6px 14px #e598663d}.history-order__reorder:active{transform:scale(.96)}.history-order__reorder:disabled{cursor:not-allowed;opacity:.55;box-shadow:none}.history-state{text-align:center;justify-items:center;gap:6px;padding:46px 16px;display:grid}.history-state__title{color:var(--text);margin:0;font-size:15px;font-weight:500}.history-state__hint{color:var(--text-muted);margin:0;font-size:13px}.history-state__detail{max-width:280px;color:var(--text-muted);word-break:break-word;margin:0;font-size:12.5px;line-height:1.5}.history-state__retry{color:#fff;cursor:pointer;background:linear-gradient(135deg,#efb184,#e59866);border:0;border-radius:999px;margin-top:10px;padding:9px 20px;font-size:13.5px}.history-spinner{border:2px solid #e5986638;border-top-color:var(--primary);border-radius:50%;width:22px;height:22px;margin-bottom:4px;animation:.7s linear infinite spin}.modal.blindbox{-webkit-backdrop-filter:blur(22px)saturate(1.1);background:#fffcf7f0}.blindbox__head{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:12px;padding:8px 22px 14px;display:flex}.blindbox__head h2{letter-spacing:.05em;color:var(--text);margin:0;font-size:19px;font-weight:500}.blindbox__head p{color:var(--text-muted);margin:3px 0 0;font-size:12.5px}.blindbox__body{flex:1;min-height:300px;padding:16px 22px 10px;overflow-y:auto}.blindbox__footer{padding:12px 22px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:#fffcf7eb;flex-shrink:0}.blindbox-steps{gap:10px;display:grid}.blindbox-step{background:#ffffff9e;border:1px solid #efe3d7e6;border-radius:16px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.blindbox-step__name{letter-spacing:.03em;color:var(--text);margin:0;font-size:15px;font-weight:500}.blindbox-step__meta{color:var(--text-muted);margin:2px 0 0;font-size:11.5px}.blindbox-step__meta--empty{color:#c39a83}.blindbox-stepper{flex-shrink:0;align-items:center;gap:10px;display:flex}.blindbox-stepper button{width:32px;height:32px;color:var(--primary-dark);cursor:pointer;background:#f8e9dde6;border:1px solid #e5986638;border-radius:50%;place-items:center;padding:0;display:grid}.blindbox-stepper button:not(:disabled):active{transform:scale(.9)}.blindbox-stepper button:disabled{color:#c9bdb2;cursor:not-allowed;opacity:.75;background:#f3ede7;border-color:#ece3da}.blindbox-stepper__count{font-variant-numeric:tabular-nums;min-width:22px;color:var(--text);text-align:center;font-size:16px;font-weight:600}.blindbox-spin{flex-direction:column;justify-content:center;align-items:center;min-height:300px;display:flex}.blindbox-reels{scrollbar-width:none;justify-content:safe center;align-items:center;gap:8px;width:100%;padding:2px 0 4px;display:flex;overflow-x:auto}.blindbox-reels::-webkit-scrollbar{display:none}.blindbox-reel{background:#ffffffa6;border:1px solid #efe3d7e6;border-radius:16px;flex:1 1 0;min-width:56px;max-width:96px;height:192px;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(#0000 0%,#000 16% 84%,#0000 100%);mask-image:linear-gradient(#0000 0%,#000 16% 84%,#0000 100%)}.blindbox-reel:after{pointer-events:none;content:"";background:#e598661a;border-radius:12px;height:64px;position:absolute;top:64px;left:4px;right:4px}.blindbox-reel__strip{will-change:transform;animation:1.5s cubic-bezier(.12,.68,.18,1) forwards blindbox-roll}.blindbox-reel__item{color:#6b5d51;text-align:center;word-break:break-word;place-items:center;height:64px;padding:0 4px;font-size:15px;line-height:1.3;display:grid}.blindbox-reel__item:last-child{color:var(--primary-dark);font-weight:600}@keyframes blindbox-roll{0%{transform:translateY(0)}to{transform:translateY(var(--reel-end))}}.blindbox-result{animation:blindbox-fade-in .45s var(--ease)}.blindbox-result__eyebrow{letter-spacing:.16em;color:var(--primary-dark);margin:0 0 3px;font-size:11.5px;font-weight:500}.blindbox-result__title{letter-spacing:.03em;color:var(--text);margin:0 0 14px;font-size:18px;font-weight:500}.blindbox-result__list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.blindbox-result__item{background:#ffffffa6;border:1px solid #efe3d7e6;border-radius:16px;align-items:center;gap:12px;padding:10px;display:flex}.blindbox-result__media{background:var(--primary-soft);border-radius:14px;flex-shrink:0;width:56px;height:56px}.blindbox-result__name{color:var(--text);margin:0;font-size:15px;font-weight:500}.blindbox-result__meta{color:var(--text-muted);margin:3px 0 0;font-size:11.5px}.blindbox-result__actions{grid-template-columns:.82fr 1.04fr 1.14fr;gap:8px;display:grid}.blindbox-result__cancel,.blindbox-result__reroll{letter-spacing:.03em;white-space:nowrap;cursor:pointer;border-radius:999px;padding:13px 8px;font-size:14px;font-weight:500}.blindbox-result__cancel{color:var(--text-muted);background:#f0e9e1e6;border:0}.blindbox-result__reroll{color:var(--primary-dark);background:#e5986621;border:1px solid #e598665c}.blindbox-result__cancel:active,.blindbox-result__reroll:active{transform:scale(.97)}.blindbox-result__confirm{letter-spacing:.03em;white-space:nowrap;width:100%;padding-inline:8px;font-size:14.5px}@keyframes blindbox-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.category-nav__blindbox:after{opacity:0;animation:none}.blindbox-result{animation:none}}.toast{top:calc(18px + env(safe-area-inset-top));z-index:200;letter-spacing:.03em;width:max-content;max-width:calc(100vw - 40px);color:var(--text);-webkit-backdrop-filter:blur(16px);animation:toast-in .35s var(--ease);background:#fffcf7e6;border:1px solid #ffffffe6;border-radius:999px;align-items:center;gap:10px;padding:13px 20px;font-size:14.5px;font-weight:500;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 16px 36px #966e4b2e}.toast__icon{color:#fff;background:linear-gradient(135deg,#efb184,#e59866);border-radius:50%;flex-shrink:0;place-items:center;width:22px;height:22px;font-size:13px;font-weight:700;display:grid}.toast--error .toast__icon{background:#d46a5d}.toast--info .toast__icon{background:#c9a06c}.toast--warning .toast__icon{background:#dfa54a}.toast--success{-webkit-backdrop-filter:blur(18px)saturate(1.15);background:#fffcf7d1;border-radius:20px;gap:12px;padding:16px 26px 16px 18px;font-size:15.5px;animation:.38s cubic-bezier(.34,1.56,.64,1) toast-center-in;top:50%;transform:translate(-50%,-50%);box-shadow:0 22px 48px #966e4b38,inset 0 1px #ffffffe6}.toast--success .toast__icon{width:28px;height:28px;font-size:15px;box-shadow:0 6px 14px #e5986652}.toast--leaving{animation:.38s ease-in-out forwards toast-out}.toast--success.toast--leaving{animation:.38s ease-in-out forwards toast-center-out}@keyframes card-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-up{0%{opacity:0;transform:translateY(100%)}68%{opacity:1;transform:translateY(-6px)}84%{transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@keyframes overlay-in{0%{opacity:0;-webkit-backdrop-filter:blur()}to{opacity:1;-webkit-backdrop-filter:blur(5px)}}@keyframes add-jelly{0%{transform:scale(1)}30%{transform:scale(.95)}55%{transform:scale(1.035)}75%{transform:scale(.99)}to{transform:scale(1)}}@keyframes add-glow{0%{box-shadow:0 10px 24px #e5986647,0 0 #efb18400}45%{box-shadow:0 12px 28px #e5986657,0 0 0 10px #efb1843d}to{box-shadow:0 10px 24px #e5986647,0 0 0 18px #efb18400}}@keyframes chip-glow{0%{box-shadow:0 0 #e598667a,0 6px 20px #e598666b}35%{box-shadow:0 0 0 6px #e5986629,0 8px 24px #e5986661}to{box-shadow:0 0 #e5986600,0 4px 14px #e5986638}}@keyframes cart-bump{0%{transform:translateY(0)}32%{transform:translateY(-10px)}48%{transform:translateY(-10px)}to{transform:translateY(0)}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-12px)scale(.96)}to{opacity:1;transform:translate(-50%)scale(1)}}@keyframes toast-center-in{0%{opacity:0;transform:translate(-50%,-50%)scale(.86)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes toast-center-out{0%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(.94)}}@keyframes toast-out{0%{opacity:1;transform:translate(-50%)translateY(0)}to{opacity:0;transform:translate(-50%)translateY(-8px)}}@keyframes confirm-in{0%{opacity:0;transform:scale(.9)translateY(6px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@media (width>=600px){.app-header{margin:20px 20px 28px;padding:32px 28px 30px}.category-nav{padding-left:20px;padding-right:20px}.menu{padding:28px 20px 12px}.dish-list{gap:14px}.dish-card__name{font-size:17px}.dish-card__desc{font-size:13px}.modal-overlay,.drawer-overlay{align-items:center;padding:24px}.modal,.drawer{border-radius:28px}}@media (width>=760px){.app-header{border-radius:32px;margin:24px 22px 32px}.category-nav{padding-left:22px;padding-right:22px}.menu{padding:30px 22px 12px}.dish-list{gap:16px}}.splash{z-index:300;place-items:center;display:grid;position:fixed;inset:0}.splash--shrinking{pointer-events:none}.splash__backdrop{background:radial-gradient(circle at 12% -8%, #f2cf9a4d, transparent 46%), radial-gradient(circle at 92% 2%, #e5986624, transparent 42%), var(--bg);position:absolute;inset:0}.splash--shrinking .splash__backdrop{animation:.5s ease-in-out forwards splash-backdrop-out}.splash__stage{z-index:1;width:112px;height:112px;position:relative}.splash__icon{object-fit:cover;-webkit-user-select:none;user-select:none;opacity:0;will-change:transform, opacity;border-radius:26px;width:112px;height:112px;animation:.6s cubic-bezier(.16,1,.3,1) forwards splash-breathe;display:block;transform:scale(.55);box-shadow:0 22px 52px #be916942}.splash__title{letter-spacing:2px;color:#555;text-align:center;white-space:nowrap;opacity:0;will-change:opacity, transform;margin:0;font-size:19px;font-weight:400;line-height:1.4;animation:.6s cubic-bezier(.16,1,.3,1) forwards splash-title-in;position:absolute;top:calc(100% + 21px);left:0;right:0}.splash--shrinking .splash__icon{animation:.5s ease-in-out forwards splash-shrink}.splash--shrinking .splash__title{animation:.5s ease-in-out forwards splash-title-out}@keyframes splash-breathe{0%{opacity:0;transform:scale(.55)}to{opacity:1;transform:scale(1)}}@keyframes splash-shrink{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.5)}}@keyframes splash-title-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes splash-title-out{0%{opacity:1}to{opacity:0}}@keyframes splash-backdrop-out{0%{opacity:1}to{opacity:0}}.app--intro .app-header,.app--intro .category-nav{opacity:0;transform:translateY(18px)}.app--intro .category--intro .category__title,.app--intro .category--intro .dish-card{opacity:0;transform:translateY(8px)}.app--reveal .app-header{animation:intro-rise .52s var(--ease) both}.app--reveal .category-nav{animation:intro-rise .48s var(--ease) both;animation-delay:.1s}.app--reveal .category--intro .category__title{animation:intro-rise .45s var(--ease) both;animation-delay:.12s}.app--reveal .category--intro .dish-card{animation:.5s ease-out both intro-card;animation-delay:calc(.16s + var(--intro-index,0) * 60ms)}.dish-card--settled{opacity:1;animation:none;transform:none}@keyframes intro-rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes intro-card{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.dish-card,.dish-card--in{opacity:1;animation:none;transform:none}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
