.icon-btn{display:inline-flex;align-items:center;justify-content:center;flex:none;border:none;border-radius:50%;cursor:pointer;transition:background var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.icon-btn:active:not(:disabled){transform:scale(.94)}.icon-btn--soft{background:var(--surface-soft);color:var(--text-body)}.icon-btn--soft:hover:not(:disabled){background:var(--color-line)}.icon-btn--accent{background:var(--accent);color:#fff}.icon-btn--accent:hover:not(:disabled){background:var(--accent-hover)}.icon-btn--plain{background:transparent;color:var(--text-muted)}.icon-btn--plain:hover:not(:disabled){background:var(--surface-soft)}.icon-btn:disabled{background:var(--surface-soft);color:var(--text-faint);cursor:default}.product-card{min-width:0;background:var(--surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:8px;display:flex;flex-direction:column;gap:8px;cursor:pointer;transition:transform var(--dur-base) var(--ease-out)}.product-card:hover{transform:translateY(-2px)}.product-card__media{position:relative;aspect-ratio:1 / 1;border-radius:var(--radius-md);overflow:hidden;background:linear-gradient(160deg,var(--color-cream),var(--color-pink-tint))}.product-card__img{width:100%;height:100%;object-fit:cover;display:block}.product-card--soldout .product-card__img{filter:grayscale(.9) opacity(.55)}.product-card__placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:var(--text-xs);color:var(--text-faint)}.product-card--soldout .product-card__placeholder{opacity:.5}.product-card__badge{position:absolute;top:8px;left:8px;height:22px;padding:0 8px;display:inline-flex;align-items:center;border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:var(--weight-semibold)}.product-card__badge--caramel{background:var(--color-caramel-tint);color:#96682f}.product-card__badge--lavender{background:var(--color-lavender-tint);color:#6f5b96}.product-card__badge--muted{background:var(--surface-soft);color:var(--text-faint)}.product-card__info{padding:0 4px 4px;display:flex;flex-direction:column;gap:2px;flex:1}.product-card__name{font-size:var(--text-sm);font-weight:var(--weight-semibold);line-height:var(--leading-snug)}.product-card--soldout .product-card__name{color:var(--text-faint)}.product-card__meta{font-size:var(--text-xs);color:var(--text-faint)}.product-card__row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-top:6px;min-height:34px}.product-card__price{font-family:var(--font-display);font-weight:var(--weight-medium);font-size:var(--text-base);color:var(--price);white-space:nowrap}.product-card--soldout .product-card__price{color:var(--text-faint)}.product-card__qty{display:inline-flex;align-items:center;gap:6px}.product-card__qty-val{min-width:16px;text-align:center;font-weight:var(--weight-semibold);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.product-card__round-btn{width:34px;height:34px;flex:none;border:none;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--surface-soft);color:var(--accent);cursor:pointer;transition:background var(--dur-fast) var(--ease-out)}.product-card__round-btn:hover{background:var(--color-line)}.product-card__round-btn--accent{background:var(--accent);color:#fff}.product-card__round-btn--accent:hover{background:var(--accent-hover)}.product-card__wait{flex:1;height:34px;padding:0 10px;border:none;border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent);font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-semibold);white-space:nowrap;cursor:pointer;transition:all var(--dur-fast) var(--ease-out)}.product-card__wait:hover{background:#f7d2dc}.product-card__wait--active{background:var(--accent);color:#fff}@keyframes cart-bar-in{0%{transform:translateY(90px)}to{transform:translateY(0)}}@keyframes cart-bar-pop{0%{transform:scale(1)}40%{transform:scale(1.25)}to{transform:scale(1)}}.cart-bar{display:flex;align-items:center;gap:10px;width:100%;height:56px;padding:0 20px;border:none;border-radius:var(--radius-pill);background:var(--accent);color:#fff;box-shadow:var(--shadow-float);font-family:var(--font-body);cursor:pointer;transition:background var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out);animation:cart-bar-in var(--dur-slow) var(--ease-bounce)}.cart-bar:hover{background:var(--accent-hover)}.cart-bar:active{transform:scale(.98)}.cart-bar__label{font-weight:var(--weight-semibold);font-size:var(--text-base)}.cart-bar__count{min-width:24px;height:24px;padding:0 7px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-pill);background:#ffffff3d;font-size:var(--text-sm);font-weight:var(--weight-semibold);animation:cart-bar-pop var(--dur-base) var(--ease-bounce)}.cart-bar__spacer{flex:1}.cart-bar__total{font-family:var(--font-display);font-weight:var(--weight-medium);font-size:var(--text-base);white-space:nowrap}.catalog{min-height:100dvh}.catalog__header{display:flex;align-items:center;gap:10px;padding:14px var(--page-pad) 8px}.catalog__brand{flex:1;display:flex;flex-direction:column;gap:1px}.catalog__title{font-family:var(--font-display);font-weight:var(--weight-semibold);font-size:var(--text-md)}.catalog__city{font-size:var(--text-xs);color:var(--text-muted)}.catalog__promo{padding:2px var(--page-pad) 10px;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--accent)}.catalog__tabs{position:sticky;top:0;z-index:5;display:flex;gap:8px;padding:8px var(--page-pad) 12px;overflow-x:auto;background:var(--surface-page);scrollbar-width:none}.catalog__tabs::-webkit-scrollbar{display:none}.catalog__grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:2px var(--page-pad) 24px}.catalog__grid--with-bar{padding-bottom:88px}@media(min-width:768px){.catalog__grid{grid-template-columns:repeat(4,1fr)}}.catalog__cartbar{position:fixed;left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:10}.sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;pointer-events:none}.sheet--open{pointer-events:auto}.sheet__overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--color-overlay);opacity:0;transition:opacity var(--dur-base) var(--ease-out)}.sheet--open .sheet__overlay{opacity:1}.sheet__panel{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;background:var(--surface-sheet);border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:var(--shadow-sheet);transform:translateY(104%);transition:transform var(--dur-slow) var(--ease-out)}.sheet--open .sheet__panel{transform:translateY(0)}.sheet__grip{width:36px;height:4px;border-radius:var(--radius-pill);background:var(--color-line);margin:10px auto 0;flex:none}.sheet__head{display:flex;align-items:center;gap:12px;padding:10px 16px 4px;flex:none}.sheet__title{font-size:var(--text-lg);flex:1}.sheet__spacer{flex:1}.sheet__close{width:36px;height:36px;flex:none;border:none;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--surface-soft);color:var(--text-muted);cursor:pointer;transition:background var(--dur-fast) var(--ease-out)}.sheet__close:hover{background:var(--color-line)}.sheet__body{overflow-y:auto;padding:8px 16px 16px;flex:1}.sheet__footer{flex:none;padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--border-soft);background:var(--surface-sheet)}.stepper{display:inline-flex;align-items:center;gap:2px;height:44px;padding:0 4px;background:var(--surface-soft);border-radius:var(--radius-pill)}.stepper--sm{height:36px}.stepper__btn{width:36px;height:36px;border:none;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;background:transparent;color:var(--accent);cursor:pointer;transition:background var(--dur-fast) var(--ease-out)}.stepper--sm .stepper__btn{width:28px;height:28px}.stepper__btn:hover:not(:disabled){background:var(--accent-soft)}.stepper__btn:disabled{color:var(--text-faint);cursor:default}.stepper__value{min-width:24px;text-align:center;font-weight:var(--weight-semibold);font-size:var(--text-base);font-variant-numeric:tabular-nums}.product-sheet{display:flex;flex-direction:column;gap:12px}.product-sheet__media{position:relative;height:180px;border-radius:var(--radius-md);overflow:hidden;background:linear-gradient(160deg,var(--color-cream),var(--color-pink-tint));display:flex;align-items:center;justify-content:center}.product-sheet__img{width:100%;height:100%;object-fit:cover;display:block}.product-sheet__placeholder{font-size:var(--text-xs);color:var(--text-faint)}.product-sheet__badge{position:absolute;top:10px;left:10px}.product-sheet__tags{display:flex;gap:6px;flex-wrap:wrap}.product-sheet__desc{font-size:var(--text-sm);color:var(--text-muted)}.product-sheet__note{font-size:var(--text-xs);color:var(--text-faint)}.product-sheet__variants{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}.product-sheet__variants::-webkit-scrollbar{display:none}.product-sheet__upsell{display:flex;flex-direction:column;gap:8px}.product-sheet__upsell-title{font-size:var(--text-sm);font-weight:var(--weight-semibold)}.product-sheet__upsell-row{display:flex;gap:8px}.product-sheet__extra{flex:1;display:flex;flex-direction:column;gap:2px;align-items:flex-start;padding:10px 12px;border-radius:var(--radius-md);border:1.5px solid var(--border-soft);background:var(--surface-card);cursor:pointer;font-family:var(--font-body);transition:all var(--dur-fast) var(--ease-out)}.product-sheet__extra--active{border-color:var(--accent);background:var(--accent-soft)}.product-sheet__extra-name{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-body)}.product-sheet__extra-price{font-size:var(--text-xs);color:var(--text-muted)}.product-sheet__footer{display:flex;gap:10px}.product-sheet__cta{flex:1}.progress{display:flex;flex-direction:column;gap:6px}.progress__label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-muted)}.progress__track{height:6px;border-radius:var(--radius-pill);background:var(--accent-soft);overflow:hidden}.progress__fill{height:100%;border-radius:var(--radius-pill);background:var(--accent);transition:width var(--dur-slow) var(--ease-out)}.progress--success .progress__fill{background:var(--color-success)}.cart-sheet{display:flex;flex-direction:column;gap:12px}.cart-sheet__item{display:flex;align-items:center;gap:12px}.cart-sheet__thumb{width:56px;height:56px;flex:none;border-radius:var(--radius-sm);background:linear-gradient(160deg,var(--color-cream),var(--color-pink-tint));overflow:hidden}.cart-sheet__thumb-img{width:100%;height:100%;object-fit:cover;display:block}.cart-sheet__info{flex:1;display:flex;flex-direction:column;gap:1px}.cart-sheet__name{font-size:var(--text-sm);font-weight:var(--weight-semibold)}.cart-sheet__sub{font-size:var(--text-xs);color:var(--text-faint)}.cart-sheet__sub--dead{color:var(--color-error)}.cart-sheet__item--dead .cart-sheet__thumb,.cart-sheet__item--dead .cart-sheet__name{opacity:.45}.cart-sheet__item--dead .cart-sheet__thumb-img{filter:grayscale(.9)}.cart-sheet__remove{height:32px;padding:0 12px;flex:none;border:none;border-radius:var(--radius-pill);background:var(--surface-soft);color:var(--text-muted);font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-semibold);cursor:pointer;transition:all var(--dur-fast) var(--ease-out)}.cart-sheet__remove:hover{background:var(--color-error-tint);color:var(--color-error)}.cart-sheet__empty{text-align:center;color:var(--text-muted);padding:24px 0}.cart-sheet__free{padding:12px 14px;border-radius:var(--radius-md);background:var(--surface-soft)}.cart-sheet__free--done{background:var(--color-success-tint)}.cart-sheet__promo-link{align-self:flex-start;border:none;background:none;color:var(--accent);font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;padding:0}.segmented{display:flex;gap:4px;padding:4px;background:var(--surface-soft);border-radius:var(--radius-pill)}.segmented__option{flex:1;height:44px;border:none;border-radius:var(--radius-pill);background:transparent;color:var(--text-muted);font-family:var(--font-body);font-weight:var(--weight-medium);font-size:var(--text-base);cursor:pointer;transition:all var(--dur-base) var(--ease-out)}.segmented__option--active{background:var(--surface-card);color:var(--text-body);font-weight:var(--weight-semibold);box-shadow:var(--shadow-press)}.radio-card{display:flex;align-items:center;gap:12px;width:100%;min-height:60px;padding:12px 16px;text-align:left;background:var(--surface-card);border:1.5px solid var(--border-soft);border-radius:var(--radius-md);cursor:pointer;font-family:var(--font-body);transition:all var(--dur-fast) var(--ease-out)}.radio-card:hover:not(.radio-card--checked){border-color:var(--color-pink)}.radio-card--checked{background:var(--accent-soft);border-color:var(--accent)}.radio-card__dot{width:22px;height:22px;flex:none;border-radius:50%;border:2px solid var(--color-line);background:#fff;display:flex;align-items:center;justify-content:center;transition:border-color var(--dur-fast) var(--ease-out)}.radio-card--checked .radio-card__dot{border-color:var(--accent)}.radio-card__dot-inner{width:10px;height:10px;border-radius:50%;background:var(--accent)}.radio-card__text{flex:1;display:flex;flex-direction:column;gap:1px}.radio-card__title{font-weight:var(--weight-semibold);font-size:var(--text-base);color:var(--text-body)}.radio-card__subtitle{font-size:var(--text-sm);color:var(--text-muted)}.radio-card__trailing{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-muted)}.checkout{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;flex-direction:column;background:var(--surface-page);transform:translateY(104%);transition:transform var(--dur-slow) var(--ease-out)}.checkout--open{transform:translateY(0)}.checkout__head{display:flex;align-items:center;gap:10px;padding:12px var(--page-pad);flex:none}.checkout__title{font-size:var(--text-lg)}.checkout__body{flex:1;overflow-y:auto;padding:4px var(--page-pad) 16px;display:flex;flex-direction:column;gap:14px}.checkout__map{height:96px;border-radius:var(--radius-md);background:var(--color-pistachio-tint);display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);color:var(--text-muted)}.checkout__section{display:flex;flex-direction:column;gap:8px}.checkout__section-title{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-muted)}.checkout__slots{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.checkout__slots::-webkit-scrollbar{display:none}.checkout__comment-link{align-self:flex-start;border:none;background:none;color:var(--accent);font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;padding:0}.checkout__error{font-size:var(--text-sm);color:var(--color-error)}.checkout__footer{flex:none;padding:12px var(--page-pad) calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--border-soft);background:var(--surface-page)}.thanks{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;background:var(--surface-page);transform:translateY(104%);transition:transform var(--dur-slow) var(--ease-out);text-align:center}.thanks--open{transform:translateY(0)}.thanks__icon{width:84px;height:84px;border-radius:50%;background:var(--color-success-tint);display:flex;align-items:center;justify-content:center}.thanks__title{font-size:var(--text-xl)}.thanks__text{font-size:var(--text-sm);color:var(--text-muted);max-width:260px}.thanks__actions{display:flex;flex-direction:column;gap:8px;width:100%;max-width:260px;margin-top:8px}.thanks__tg{display:block}.shop{min-height:100dvh;background:var(--surface-page);position:relative}@keyframes shop-loading-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}.shop__loading{min-height:100dvh;display:flex;align-items:center;justify-content:center;gap:8px}.shop__loading-dot{width:10px;height:10px;border-radius:50%;background:var(--accent);animation:shop-loading-pulse 1.2s var(--ease-out) infinite}.shop__loading-dot:nth-child(2){animation-delay:.2s}.shop__loading-dot:nth-child(3){animation-delay:.4s}
