:root{--color-bg: #FAF6F1;--color-bg-elevated: #FFFFFF;--color-bg-secondary: #F2ECE3;--color-bg-warm: #EDE5D8;--color-text: #3A322A;--color-text-secondary: #7A7068;--color-text-hint: #A69E95;--color-accent: #8B5E3C;--color-accent-hover: #6E4A2E;--color-accent-soft: rgba(139, 94, 60, .1);--color-accent-glow: rgba(139, 94, 60, .18);--color-teal: #2E8B83;--color-teal-soft: rgba(46, 139, 131, .1);--color-terracotta: #C75B3A;--color-terracotta-soft: rgba(199, 91, 58, .1);--color-gold: #C9A96E;--color-gold-soft: rgba(201, 169, 110, .15);--color-cream: #F5EDE0;--color-sand: #D9CBBA;--color-sand-light: #E8DFD2;--color-border: rgba(58, 50, 42, .08);--color-shadow: rgba(58, 50, 42, .06);--color-overlay: rgba(58, 50, 42, .5);--font-display: "Cormorant Garamond", "Georgia", serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--space-3xl: 64px;--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--radius-xl: 28px;--radius-full: 9999px;--shadow-sm: 0 2px 8px var(--color-shadow);--shadow-md: 0 4px 20px var(--color-shadow);--shadow-lg: 0 8px 32px rgba(58, 50, 42, .1);--shadow-warm: 0 4px 24px rgba(139, 94, 60, .12);--shadow-card: 0 2px 12px rgba(58, 50, 42, .05), 0 1px 3px rgba(58, 50, 42, .04);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--duration-fast: .15s;--duration-normal: .3s;--duration-slow: .5s;--skeleton-base: #E8DFD2;--skeleton-shine: #F5EFE6}@media (prefers-color-scheme: dark){:root{--color-bg: #1C1A17;--color-bg-elevated: #282420;--color-bg-secondary: #221F1B;--color-bg-warm: #2E2924;--color-text: #EDE5D8;--color-text-secondary: #B5AA9C;--color-text-hint: #857A6E;--color-accent: #C9956A;--color-accent-hover: #DEAA7D;--color-accent-soft: rgba(201, 149, 106, .12);--color-accent-glow: rgba(201, 149, 106, .2);--color-teal: #4DB8AE;--color-teal-soft: rgba(77, 184, 174, .12);--color-terracotta: #E07050;--color-terracotta-soft: rgba(224, 112, 80, .12);--color-gold: #D4B67C;--color-gold-soft: rgba(212, 182, 124, .15);--color-cream: #332E28;--color-sand: #4A4238;--color-sand-light: #3A342C;--color-border: rgba(237, 229, 216, .08);--color-shadow: rgba(0, 0, 0, .25);--color-overlay: rgba(0, 0, 0, .6);--shadow-warm: 0 4px 24px rgba(0, 0, 0, .25);--shadow-card: 0 2px 12px rgba(0, 0, 0, .15);--skeleton-base: #2E2924;--skeleton-shine: #3A342C}}html[style*="color-scheme: dark"]{--color-bg: #1C1A17;--color-bg-elevated: #282420;--color-bg-secondary: #221F1B;--color-bg-warm: #2E2924;--color-text: #EDE5D8;--color-text-secondary: #B5AA9C;--color-text-hint: #857A6E;--color-accent: #C9956A;--color-accent-hover: #DEAA7D;--color-accent-soft: rgba(201, 149, 106, .12);--color-accent-glow: rgba(201, 149, 106, .2);--color-teal: #4DB8AE;--color-teal-soft: rgba(77, 184, 174, .12);--color-terracotta: #E07050;--color-terracotta-soft: rgba(224, 112, 80, .12);--color-gold: #D4B67C;--color-gold-soft: rgba(212, 182, 124, .15);--color-cream: #332E28;--color-sand: #4A4238;--color-sand-light: #3A342C;--color-border: rgba(237, 229, 216, .08);--color-shadow: rgba(0, 0, 0, .25);--color-overlay: rgba(0, 0, 0, .6);--shadow-warm: 0 4px 24px rgba(0, 0, 0, .25);--shadow-card: 0 2px 12px rgba(0, 0, 0, .15);--skeleton-base: #2E2924;--skeleton-shine: #3A342C}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;touch-action:manipulation}html,body,#root{margin:0;padding:0;height:100%;overflow:hidden}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{font-family:var(--font-body);font-size:15px;line-height:1.6;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv11","ss01"}.app-shell{display:flex;flex-direction:column;height:var(--tg-viewport-stable-height, 100%);overflow:hidden;padding-top:calc(env(safe-area-inset-top,0px) + 56px);background:var(--color-bg)}.app-content{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}img{max-width:100%;display:block}button{font-family:inherit;cursor:pointer;border:none;background:none;transition:transform .15s var(--ease-out),background .2s ease}a{color:var(--color-accent);text-decoration:none}.logo{display:flex;align-items:center;gap:10px}.logo-mark{border-radius:10px;background:linear-gradient(135deg,var(--color-accent),var(--color-gold));display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-warm);flex-shrink:0}.logo-mark svg{width:100%;height:100%}.logo-text-group{display:flex;flex-direction:column;gap:1px}.logo-text{font-family:var(--font-display);font-weight:600;color:var(--color-text);letter-spacing:-.01em;line-height:1.15}.logo-brand{font-family:var(--font-body);font-weight:500;color:var(--color-accent);letter-spacing:.12em;text-transform:uppercase;line-height:1}.hero{position:relative;margin:-16px -16px 12px;padding:clamp(32px,8vh,60px) clamp(20px,5vw,32px) clamp(24px,5vh,40px);background:linear-gradient(160deg,var(--color-bg-warm) 0%,var(--color-cream) 50%,var(--color-bg-secondary) 100%);overflow:hidden;display:flex;flex-direction:column;justify-content:center;min-height:clamp(200px,35vh,320px)}.hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg width='80' height='80' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M40 8 L72 40 L40 72 L8 40Z' fill='none' stroke='%233A322A' stroke-width='0.6'/%3E%3Ccircle cx='40' cy='40' r='12' fill='none' stroke='%233A322A' stroke-width='0.4'/%3E%3Ccircle cx='40' cy='40' r='4' fill='none' stroke='%233A322A' stroke-width='0.4'/%3E%3Cpath d='M40 8v8M40 64v8M8 40h8M64 40h8' stroke='%233A322A' stroke-width='0.3'/%3E%3Ccircle cx='40' cy='8' r='1.5' fill='%233A322A' opacity='0.4'/%3E%3Ccircle cx='72' cy='40' r='1.5' fill='%233A322A' opacity='0.4'/%3E%3Ccircle cx='40' cy='72' r='1.5' fill='%233A322A' opacity='0.4'/%3E%3Ccircle cx='8' cy='40' r='1.5' fill='%233A322A' opacity='0.4'/%3E%3C/svg%3E");background-size:80px 80px;pointer-events:none;animation:pattern-drift 60s linear infinite}@keyframes pattern-drift{0%{transform:translate(0)}to{transform:translate(80px,80px)}}.hero:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:40px;background:linear-gradient(to top,var(--color-bg),transparent);pointer-events:none}.hero .logo{margin-bottom:var(--space-md)}.hero-title{font-family:var(--font-display);font-size:clamp(28px,7vw,38px);font-weight:600;line-height:1.15;color:var(--color-text);position:relative;margin-bottom:var(--space-sm)}.hero-accent{color:var(--color-accent);font-style:italic}.hero-subtitle{font-family:var(--font-body);font-size:14px;color:var(--color-text-secondary);line-height:1.6;position:relative;max-width:280px}.hero-quote{margin-top:var(--space-lg);padding:var(--space-md) var(--space-lg);border-left:2px solid var(--color-gold);position:relative}.hero-quote p{font-family:var(--font-display);font-size:17px;font-weight:400;font-style:italic;color:var(--color-text-secondary);line-height:1.5}.hero-quote cite{display:block;margin-top:var(--space-xs);font-family:var(--font-body);font-size:11px;font-style:normal;color:var(--color-text-hint);letter-spacing:.04em;text-transform:uppercase}.promo-banner{margin:var(--space-lg) 0;padding:var(--space-lg);border-radius:var(--radius-lg);background:linear-gradient(135deg,var(--color-accent) 0%,var(--color-gold) 100%);color:#fff;position:relative;overflow:hidden;box-shadow:var(--shadow-warm)}.promo-banner:before{content:"";position:absolute;top:-20px;right:-20px;width:120px;height:120px;border-radius:50%;background:#ffffff14}.promo-banner:after{content:"";position:absolute;bottom:-30px;left:-10px;width:80px;height:80px;border-radius:50%;background:#ffffff0f}.promo-banner__title{font-family:var(--font-display);font-size:22px;font-weight:600;line-height:1.2;margin-bottom:var(--space-xs);position:relative}.promo-banner__text{font-size:13px;opacity:.9;line-height:1.4;position:relative}.promo-banner__btn{display:inline-flex;align-items:center;gap:6px;margin-top:var(--space-md);padding:10px 20px;border-radius:var(--radius-full);background:#fff3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;font-family:var(--font-body);font-size:13px;font-weight:600;border:1px solid rgba(255,255,255,.3);position:relative;transition:background var(--duration-fast)}.promo-banner__btn:active{background:#ffffff4d}.promo-banner__btn svg{width:14px;height:14px;stroke:currentColor;stroke-width:2;fill:none}.search-bar{margin:var(--space-md) 0}.search-bar__inner{display:flex;align-items:center;background:var(--color-bg-elevated);border:1.5px solid var(--color-border);border-radius:var(--radius-lg);padding:0 var(--space-md);box-shadow:var(--shadow-sm);transition:border-color var(--duration-normal) var(--ease-out),box-shadow var(--duration-normal) var(--ease-out)}.search-bar__inner:focus-within{border-color:var(--color-accent);box-shadow:0 0 0 4px var(--color-accent-soft),var(--shadow-sm)}.search-bar__icon{color:var(--color-text-hint);display:flex;align-items:center;margin-right:var(--space-sm)}.search-bar__icon svg{width:18px;height:18px;stroke:currentColor;stroke-width:1.5;fill:none}.search-input{flex:1;padding:12px 0;border:none;background:transparent;color:var(--color-text);font-size:15px;font-family:var(--font-body);outline:none;width:100%}.search-input::placeholder{color:var(--color-text-hint)}.page{padding:var(--space-md);padding-bottom:var(--space-md)}.page-title{font-family:var(--font-display);font-size:30px;font-weight:600;color:var(--color-text);margin-bottom:var(--space-md)}.section{margin-top:var(--space-xl)}.section-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-md)}.section-title{font-family:var(--font-display);font-size:24px;font-weight:600;color:var(--color-text)}.section-link{font-family:var(--font-body);font-size:13px;font-weight:600;color:var(--color-accent);letter-spacing:.02em;display:flex;align-items:center;gap:4px;transition:color var(--duration-fast),gap var(--duration-normal) var(--ease-out)}.section-link:active{color:var(--color-accent-hover);gap:8px}.section-link svg{width:14px;height:14px;stroke:currentColor;stroke-width:2;fill:none}.decorator{display:flex;align-items:center;justify-content:center;gap:var(--space-md);padding:8px 0;color:var(--color-sand)}.decorator svg{flex-shrink:0;animation:decorator-spin 20s linear infinite}@keyframes decorator-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.decorator-line{height:1px;flex:1;background:linear-gradient(to right,transparent,var(--color-sand),transparent)}.category-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.category-card{display:flex;flex-direction:row;align-items:center;gap:10px;padding:12px 14px;height:56px;border-radius:var(--radius-md);background:var(--color-bg-elevated);border:1px solid var(--color-border);box-shadow:var(--shadow-card);transition:transform var(--duration-fast) var(--ease-out),box-shadow var(--duration-normal) var(--ease-out),border-color var(--duration-normal);position:relative;overflow:hidden}.category-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;opacity:0;background:linear-gradient(135deg,var(--color-accent-soft),var(--color-gold-soft));transition:opacity var(--duration-normal)}.category-card:active{transform:scale(.95);box-shadow:var(--shadow-md)}.category-card:active:after{opacity:1}.category-emoji{font-size:28px;line-height:1;position:relative;z-index:1}.category-name{font-family:var(--font-body);font-size:12px;font-weight:500;color:var(--color-text);text-align:left;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.3;position:relative;z-index:1}.catalog-categories{margin-bottom:8px}.catalog-cat-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px 14px;border-radius:var(--radius-md);background:var(--color-bg-elevated);border:1px solid var(--color-border);box-shadow:var(--shadow-card);margin-bottom:6px;transition:background var(--duration-fast),box-shadow var(--duration-normal)}.catalog-cat-toggle:active{background:var(--color-bg-secondary)}.catalog-cat-toggle__text{font-family:var(--font-body);font-size:15px;font-weight:600;color:var(--color-text)}.catalog-cat-toggle__chevron{color:var(--color-text-hint);transition:transform var(--duration-normal) var(--ease-out)}.catalog-cat-toggle__chevron--open{transform:rotate(180deg)}.catalog-cat-grid{display:flex;flex-direction:column;gap:6px;padding-top:2px}.catalog-cat-item{display:flex;align-items:center;gap:12px;padding:14px;height:52px;border-radius:var(--radius-md);background:var(--color-bg-elevated);border:1px solid var(--color-border);width:100%;text-align:left;transition:background var(--duration-fast),transform var(--duration-fast)}.catalog-cat-item:active{background:var(--color-bg-secondary);transform:scale(.98)}.catalog-cat-item--active{border-color:var(--color-accent);background:var(--color-accent-soft)}.catalog-cat-emoji{font-size:22px;line-height:1;flex-shrink:0;width:30px;text-align:center}.catalog-cat-name{font-family:var(--font-body);font-size:14px;font-weight:500;color:var(--color-text);flex:1}.catalog-cat-count{font-family:var(--font-body);font-size:12px;color:var(--color-text-hint);font-variant-numeric:tabular-nums}.catalog-filter-bar{display:flex;align-items:center;gap:8px;margin-bottom:12px}.catalog-filter-chip{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:var(--radius-full);background:var(--color-accent);color:#fff;font-family:var(--font-body);font-size:13px;font-weight:500}.catalog-filter-chip svg{opacity:.7}.catalog-filter-count{font-family:var(--font-body);font-size:13px;color:var(--color-text-hint)}.catalog-filter-clear{width:28px;height:28px;border-radius:var(--radius-full);background:var(--color-bg-secondary);color:var(--color-text-hint);font-size:12px;display:flex;align-items:center;justify-content:center}.product-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(10px,2.5vw,16px)}.product-card{border-radius:var(--radius-md);background:var(--color-bg-elevated);overflow:hidden;cursor:pointer;border:1px solid var(--color-border);box-shadow:var(--shadow-card);transition:transform .15s ease,box-shadow .3s ease;position:relative}.product-card:active{transform:scale(.97);box-shadow:0 6px 20px #3a322a1f}@media (hover: hover){.product-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}}.product-card--out{opacity:.55}.product-card__image{position:relative;overflow:hidden;background:var(--color-bg-secondary)}.product-card__image img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform .4s ease}.product-card:active .product-card__image img{transform:scale(1.03)}.product-card__image:after{content:"";position:absolute;bottom:0;left:0;right:0;height:50%;background:linear-gradient(to top,rgba(0,0,0,.06),transparent);pointer-events:none}.product-card__placeholder{width:100%;aspect-ratio:4/5;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-bg-secondary),var(--color-cream));color:var(--color-sand)}.product-card__placeholder svg{opacity:.5}.product-card__badge{position:absolute;top:var(--space-sm);left:var(--space-sm);background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;font-family:var(--font-body);font-size:10px;font-weight:600;letter-spacing:.05em;padding:4px 10px;border-radius:var(--radius-full);text-transform:uppercase;z-index:2}.product-card__discount{position:absolute;top:var(--space-sm);right:var(--space-sm);background:var(--color-terracotta);color:#fff;font-family:var(--font-body);font-size:11px;font-weight:700;padding:3px 8px;border-radius:var(--radius-full);z-index:2}.product-card__info{padding:12px 14px 14px}.product-card__name{font-family:var(--font-display);font-size:15px;font-weight:500;line-height:1.3;color:var(--color-text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.6em}.product-card__price{margin-top:6px;display:flex;align-items:baseline;gap:6px}.price-current{font-family:var(--font-body);font-size:16px;font-weight:700;color:var(--color-accent);font-variant-numeric:tabular-nums}.price-old{font-family:var(--font-body);font-size:12px;color:var(--color-text-hint);text-decoration:line-through;font-variant-numeric:tabular-nums}.product-page{padding:0}.product-info{padding:var(--space-lg) var(--space-md)}.product-title{font-family:var(--font-display);font-size:28px;font-weight:600;line-height:1.2;color:var(--color-text)}.product-price-row{display:flex;align-items:baseline;gap:var(--space-sm);margin-top:var(--space-md)}.product-price{font-family:var(--font-body);font-size:26px;font-weight:700;color:var(--color-accent);font-variant-numeric:tabular-nums}.product-old-price{font-family:var(--font-body);font-size:16px;color:var(--color-text-hint);text-decoration:line-through;font-variant-numeric:tabular-nums}.product-badge{display:inline-flex;align-items:center;gap:6px;margin-top:var(--space-sm);padding:6px 14px;border-radius:var(--radius-full);font-family:var(--font-body);font-size:12px;font-weight:600;letter-spacing:.03em}.out-of-stock{background:var(--color-terracotta-soft);color:var(--color-terracotta)}.product-description{margin-top:var(--space-lg)}.product-description p{font-family:var(--font-body);font-size:14px;line-height:1.75;color:var(--color-text-secondary);white-space:pre-line}.product-actions{position:sticky;bottom:0;padding:var(--space-md);background:linear-gradient(to top,var(--color-bg) 80%,transparent);z-index:50}.image-gallery{position:relative;background:var(--color-bg-secondary)}.gallery-viewport{width:100%;overflow:hidden}.gallery-track{display:flex}.gallery-image{min-width:100%;width:100%;aspect-ratio:4/5;object-fit:cover}.gallery-counter{position:absolute;bottom:14px;right:14px;background:#00000080;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;font-family:var(--font-body);font-size:12px;font-weight:500;padding:4px 12px;border-radius:var(--radius-full);font-variant-numeric:tabular-nums;z-index:2}.gallery-dots{display:flex;justify-content:center;gap:6px;padding:12px 0;position:absolute;bottom:0;left:0;right:0}.gallery-dot{width:6px;height:6px;border-radius:var(--radius-full);border:none;background:#fff6;cursor:pointer;padding:0}.gallery-dot.active{background:#fff;width:24px;border-radius:3px}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:16px var(--space-lg);border:none;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--color-accent),var(--color-accent-hover));color:#fff;font-family:var(--font-body);font-size:15px;font-weight:600;letter-spacing:.01em;box-shadow:var(--shadow-warm);position:relative;overflow:hidden;transition:transform var(--duration-fast) var(--ease-out),background .2s ease,box-shadow var(--duration-normal)}.btn-primary:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,transparent 40%,rgba(255,255,255,.15) 50%,transparent 60%);background-size:250% 100%;animation:btn-shimmer 3s ease-in-out infinite}@keyframes btn-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.btn-primary:active{transform:scale(.97);box-shadow:var(--shadow-sm)}.btn-primary:disabled{opacity:.45;cursor:default;box-shadow:none}.btn-primary:disabled:before{animation:none}.btn-primary:disabled:active{transform:none}.btn-full{width:100%}.btn-add-to-cart{width:100%;padding:16px;border:none;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--color-accent),var(--color-accent-hover));color:#fff;font-family:var(--font-body);font-size:16px;font-weight:600;letter-spacing:.01em;box-shadow:var(--shadow-warm);position:relative;overflow:hidden;transition:transform var(--duration-fast) var(--ease-out),background .2s ease}.btn-add-to-cart:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,transparent 40%,rgba(255,255,255,.15) 50%,transparent 60%);background-size:250% 100%;animation:btn-shimmer 3s ease-in-out infinite}.btn-add-to-cart:active{transform:scale(.97)}.btn-add-to-cart:disabled{opacity:.4;cursor:default;box-shadow:none}.btn-add-to-cart:disabled:before{animation:none}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:14px var(--space-lg);border:1.5px solid var(--color-sand);border-radius:var(--radius-md);background:transparent;color:var(--color-accent);font-family:var(--font-body);font-size:15px;font-weight:500;transition:all var(--duration-fast) var(--ease-out)}.btn-secondary:active{background:var(--color-accent-soft);border-color:var(--color-accent)}.cart-floating-btn{position:fixed;bottom:28px;right:var(--space-md);width:58px;height:58px;border-radius:var(--radius-full);background:linear-gradient(135deg,var(--color-accent),var(--color-accent-hover));color:#fff;border:none;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 28px #8b5e3c59;z-index:100}.cart-floating-btn svg{width:22px;height:22px;stroke:currentColor;stroke-width:1.5;fill:none}.cart-badge{position:absolute;top:-3px;right:-3px;background:var(--color-terracotta);color:#fff;font-family:var(--font-body);font-size:11px;font-weight:700;min-width:22px;height:22px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;padding:0 5px;font-variant-numeric:tabular-nums;border:2px solid var(--color-bg);animation:badge-pop .3s var(--ease-spring)}@keyframes badge-pop{0%{transform:scale(0)}to{transform:scale(1)}}.cart-empty,.order-success{display:flex;align-items:center;justify-content:center;min-height:70vh}.empty-state,.success-state{text-align:center;padding:var(--space-lg)}.empty-icon,.success-icon{display:flex;align-items:center;justify-content:center;width:88px;height:88px;margin:0 auto var(--space-lg);border-radius:var(--radius-full);background:linear-gradient(135deg,var(--color-accent-soft),var(--color-gold-soft))}.empty-icon svg,.success-icon svg{width:36px;height:36px;stroke:var(--color-accent);stroke-width:1.5;fill:none}.empty-state h2,.success-state h2{font-family:var(--font-display);font-size:26px;font-weight:600;margin-bottom:var(--space-sm);color:var(--color-text)}.empty-state p,.success-state p{color:var(--color-text-secondary);font-size:14px;line-height:1.5;margin-bottom:var(--space-lg)}.donate-block{margin-top:var(--space-xl);padding-top:var(--space-lg);border-top:1px solid var(--color-border)}.donate-block__title{font-size:14px;color:var(--color-text-secondary);margin-bottom:var(--space-md)}.donate-block__row{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.donate-chip{padding:10px 16px;border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-bg-elevated);color:var(--color-text);font-size:14px;font-weight:600;cursor:pointer;transition:transform .15s ease,border-color .15s ease}.donate-chip:active{transform:scale(.94);border-color:var(--color-accent)}.donate-chip:disabled{opacity:.5;cursor:default}.cart-items{display:flex;flex-direction:column;gap:10px}.cart-item{display:flex;align-items:center;gap:var(--space-md);padding:14px;background:var(--color-bg-elevated);border-radius:var(--radius-md);box-shadow:var(--shadow-card);border:1px solid var(--color-border)}.cart-item__image{width:56px;height:70px;border-radius:var(--radius-sm);overflow:hidden;flex-shrink:0;box-shadow:var(--shadow-sm)}.cart-item__image img{width:100%;height:100%;object-fit:cover}.cart-item__placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-bg-secondary),var(--color-cream));color:var(--color-sand)}.cart-item__info{flex:1;min-width:0}.cart-item__name{font-family:var(--font-display);font-size:15px;font-weight:500;line-height:1.3;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cart-item__price{font-family:var(--font-body);font-size:15px;font-weight:700;color:var(--color-accent);margin-top:2px;font-variant-numeric:tabular-nums}.cart-item__controls{display:flex;align-items:center;gap:6px}.qty-btn{width:32px;height:32px;border-radius:var(--radius-full);border:1.5px solid var(--color-sand);background:var(--color-bg);font-size:16px;font-weight:600;display:flex;align-items:center;justify-content:center;color:var(--color-text);transition:all var(--duration-fast) var(--ease-out)}.qty-btn:active{background:var(--color-accent-soft);border-color:var(--color-accent);color:var(--color-accent);transform:scale(.9)}.qty-value{font-family:var(--font-body);font-size:15px;font-weight:700;min-width:24px;text-align:center;font-variant-numeric:tabular-nums}.cart-item__remove{width:28px;height:28px;border:none;background:none;color:var(--color-text-hint);display:flex;align-items:center;justify-content:center;margin-left:2px;transition:color var(--duration-fast),transform var(--duration-fast)}.cart-item__remove:active{color:var(--color-terracotta);transform:scale(.85)}.cart-item__remove svg{width:16px;height:16px;stroke:currentColor;stroke-width:1.5;fill:none}.cart-summary{margin-top:var(--space-lg);padding:var(--space-lg);background:var(--color-bg-elevated);border-radius:var(--radius-md);box-shadow:var(--shadow-card);border:1px solid var(--color-border)}.cart-summary__row{display:flex;justify-content:space-between;font-size:14px;padding:5px 0;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.cart-summary__total{margin-top:var(--space-sm);padding-top:var(--space-md);border-top:1px solid var(--color-border);font-size:18px;font-weight:700;color:var(--color-text)}.cart-footer{margin-top:var(--space-lg);padding-bottom:calc(var(--space-md) + env(safe-area-inset-bottom,0px))}.order-form{display:flex;flex-direction:column;gap:var(--space-lg)}.form-group{display:flex;flex-direction:column;gap:6px}.form-label{font-family:var(--font-body);font-size:13px;font-weight:600;color:var(--color-text);letter-spacing:.02em}.form-input{padding:14px var(--space-md);border:1.5px solid var(--color-sand);border-radius:var(--radius-md);background:var(--color-bg-elevated);color:var(--color-text);font-family:var(--font-body);font-size:16px;outline:none;transition:border-color var(--duration-normal) var(--ease-out),box-shadow var(--duration-normal) var(--ease-out)}.form-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 4px var(--color-accent-soft)}.form-input::placeholder{color:var(--color-text-hint)}.form-textarea{resize:vertical;min-height:72px;line-height:1.5;font-size:15px}.form-hint{font-size:12px;color:var(--color-text-hint);line-height:1.4}.form-input--error{border-color:var(--color-terracotta)!important;box-shadow:0 0 0 4px var(--color-terracotta-soft)!important}.form-error{color:var(--color-terracotta);font-size:12px;font-weight:500}.order-summary{padding:var(--space-lg);background:var(--color-bg-elevated);border-radius:var(--radius-md);box-shadow:var(--shadow-card);border:1px solid var(--color-border)}.order-summary__row{display:flex;justify-content:space-between;font-size:14px;padding:5px 0;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.order-summary__total{margin-top:var(--space-sm);padding-top:var(--space-md);border-top:1px solid var(--color-border);font-size:18px;font-weight:700;color:var(--color-text)}.results-count{font-family:var(--font-body);font-size:13px;color:var(--color-text-hint);margin-bottom:var(--space-md);font-variant-numeric:tabular-nums}.skeleton{background:linear-gradient(90deg,var(--skeleton-base) 25%,var(--skeleton-shine) 50%,var(--skeleton-base) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.8s ease-in-out infinite;border-radius:var(--radius-sm)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.product-card-skeleton{border-radius:var(--radius-md);overflow:hidden;background:var(--color-bg-elevated);box-shadow:var(--shadow-card)}.product-card-skeleton .skeleton:first-child{border-radius:0}.scroll-trigger{height:1px}.loading-more{display:flex;justify-content:center;padding:var(--space-xl)}.spinner{width:28px;height:28px;border:2.5px solid var(--color-sand-light);border-top-color:var(--color-accent);border-radius:var(--radius-full);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.end-message{text-align:center;padding:var(--space-xl) var(--space-md);font-family:var(--font-display);font-size:15px;font-style:italic;color:var(--color-text-hint)}.splash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:var(--color-bg);display:flex;flex-direction:column;align-items:center;justify-content:center}.splash-content{display:flex;flex-direction:column;align-items:center;gap:12px}.splash-logo{width:72px;height:72px;display:flex;align-items:center;justify-content:center;color:var(--color-accent)}.splash-title{font-family:var(--font-display);font-size:26px;font-weight:600;color:var(--color-text);letter-spacing:-.01em}.splash-brand{font-family:var(--font-body);font-size:11px;font-weight:600;letter-spacing:.2em;color:var(--color-accent);text-transform:uppercase}.splash-loader{position:absolute;bottom:48px;width:60px;height:2px;background:var(--color-accent);border-radius:1px;transform-origin:left}.bottom-nav{display:flex;align-items:stretch;justify-content:space-around;background:var(--color-bg-elevated);border-top:1px solid var(--color-border);padding:6px 0;padding-bottom:calc(6px + env(safe-area-inset-bottom,0px));flex-shrink:0;z-index:10;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.bottom-nav__tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0 6px;color:var(--color-text-hint);position:relative;transition:color var(--duration-fast);-webkit-tap-highlight-color:transparent}.bottom-nav__tab--active{color:var(--color-accent)}.bottom-nav__icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center;position:relative}.bottom-nav__icon svg{width:22px;height:22px;stroke:currentColor;stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round}.bottom-nav__badge{position:absolute;top:-5px;right:-8px;background:var(--color-terracotta);color:#fff;font-family:var(--font-body);font-size:9px;font-weight:700;min-width:16px;height:16px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;padding:0 4px;border:1.5px solid var(--color-bg-elevated)}.bottom-nav__label{font-family:var(--font-body);font-size:10px;font-weight:500;letter-spacing:.01em}.bottom-nav__dot{position:absolute;top:2px;width:4px;height:4px;border-radius:2px;background:var(--color-accent)}.profile-page{padding-top:20px}.profile-menu{display:flex;flex-direction:column;gap:2px;background:var(--color-bg-elevated);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-card);border:1px solid var(--color-border)}.profile-menu__item{display:flex;align-items:center;gap:var(--space-md);padding:16px var(--space-md);width:100%;text-align:left;transition:background var(--duration-fast)}.profile-menu__item:active{background:var(--color-bg-secondary)}.profile-menu__item+.profile-menu__item{border-top:1px solid var(--color-border)}.profile-menu__icon{width:38px;height:38px;border-radius:10px;background:var(--color-accent-soft);display:flex;align-items:center;justify-content:center;flex-shrink:0}.profile-menu__icon svg{width:18px;height:18px;stroke:var(--color-accent);stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round}.profile-menu__icon--accent{background:var(--color-accent-soft)}.profile-menu__icon--accent svg{stroke:var(--color-accent)}.profile-menu__icon--teal{background:var(--color-teal-soft)}.profile-menu__icon--teal svg{stroke:var(--color-teal)}.profile-menu__icon--gold{background:var(--color-gold-soft)}.profile-menu__icon--gold svg{stroke:var(--color-gold)}.profile-menu__icon--terracotta{background:var(--color-terracotta-soft)}.profile-menu__icon--terracotta svg{stroke:var(--color-terracotta)}.profile-menu__text{flex:1;display:flex;flex-direction:column;gap:1px}.profile-menu__label{font-family:var(--font-body);font-size:15px;font-weight:500;color:var(--color-text)}.profile-menu__hint{font-family:var(--font-body);font-size:12px;color:var(--color-text-hint)}.profile-menu__arrow{width:18px;height:18px;stroke:var(--color-text-hint);stroke-width:1.5;fill:none;flex-shrink:0}.profile-footer{text-align:center;padding:var(--space-xl) 0;font-family:var(--font-display);font-size:13px;color:var(--color-text-hint);font-style:italic}.profile-legal{text-align:center;padding-bottom:var(--space-lg);margin-top:calc(var(--space-xl) * -1 + 4px)}.profile-legal__link{background:none;border:none;padding:4px 8px;font-size:11px;letter-spacing:.02em;color:var(--color-text-hint);text-decoration:underline;text-underline-offset:2px;text-decoration-color:#a89e9466;cursor:pointer;opacity:.75;transition:opacity .2s ease,color .2s ease}.profile-legal__link:hover,.profile-legal__link:active{opacity:1;color:var(--color-text-secondary)}.privacy-content{font-size:14px;line-height:1.6;color:var(--color-text-secondary);padding-bottom:var(--space-xl)}.privacy-content p{margin:0 0 12px}.privacy-updated{font-size:12px;color:var(--color-text-hint);margin-bottom:var(--space-md)!important}.privacy-section{margin-top:var(--space-lg)}.privacy-section h2{font-family:var(--font-display);font-size:17px;font-weight:600;color:var(--color-text);margin:0 0 8px}.privacy-content ul{margin:0 0 12px;padding-left:20px}.privacy-content li{margin-bottom:6px}.privacy-content a{color:var(--color-accent);text-decoration:underline;text-underline-offset:2px}.privacy-content code{font-size:12px;padding:1px 5px;border-radius:var(--radius-sm);background:var(--color-bg-warm);color:var(--color-text)}.text-accent{color:var(--color-accent)}.text-hint{color:var(--color-text-hint)}.orders-list{display:flex;flex-direction:column;gap:10px}.order-card{padding:16px;background:var(--color-bg-elevated);border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:var(--shadow-card)}.order-card__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.order-card__date{font-family:var(--font-body);font-size:13px;color:var(--color-text-hint)}.order-card__status{font-family:var(--font-body);font-size:12px;font-weight:600;padding:4px 12px;border-radius:var(--radius-full);letter-spacing:.02em}.order-card__body{display:flex;justify-content:space-between;align-items:baseline}.order-card__items{font-family:var(--font-body);font-size:14px;color:var(--color-text-secondary)}.order-card__price{font-family:var(--font-body);font-size:17px;font-weight:700;color:var(--color-accent);font-variant-numeric:tabular-nums}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
