:root{font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Nunito Sans,Avenir Next,Segoe UI,sans-serif;font-weight:400;line-height:1.4}*{box-sizing:border-box}html,body,#root{width:100%;min-height:100%;margin:0}body{background:#f5f4f2;min-height:100svh}.app{--bg-start:#ffecc8;--bg-end:#ffd1a8;--surface:#ffffffb8;--surface-soft:#fff9;--title:#301408;--text:#52331f;--accent:#ff7426;--accent-strong:#ec5400;--muted:#885a3d;--ring:#ff742652;min-height:100svh;color:var(--text);background:radial-gradient(circle at 0% 0%, #ffffff80, transparent 25%), radial-gradient(circle at 100% 0%, #ffe4bd99, transparent 30%), linear-gradient(145deg, var(--bg-start), var(--bg-end));padding:max(12px, env(safe-area-inset-top)) 12px max(22px, env(safe-area-inset-bottom))}.app[data-theme=tech]{--bg-start:#f3f4f6;--bg-end:#e6e8ee;--surface:#1a1823db;--surface-soft:#251f35e6;--title:#f5eeff;--text:#b8adcf;--accent:#a35cff;--accent-strong:#8027ff;--muted:#8f81af;--ring:#a35cff52}.app[data-theme=nature]{--bg-start:#ecf8e8;--bg-end:#d6f0c8;--surface:#ffffffd1;--surface-soft:#f5fff1d1;--title:#1f4026;--text:#31573b;--accent:#42a95f;--accent-strong:#2f8a49;--muted:#5f7d65;--ring:#42a95f59}.app-header{top:max(8px, env(safe-area-inset-top));z-index:20;background:var(--surface);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:24px;justify-content:space-between;align-items:flex-start;gap:12px;width:min(100%,1180px);margin:0 auto 14px;padding:14px;display:flex;position:sticky;box-shadow:0 14px 24px -18px #0e101b73}.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.73rem;font-weight:700}.app-header h1{color:var(--title);margin:2px 0;font-size:clamp(1.25rem,2.2vw,1.95rem);line-height:1.05}.cart-summary{border:1px solid color-mix(in srgb, var(--accent), transparent 72%);background:var(--surface-soft);cursor:pointer;min-width:128px;font:inherit;color:inherit;border-radius:16px;flex-direction:column;align-items:flex-end;gap:3px;padding:10px 12px;display:flex}.cart-summary span{color:var(--muted);font-size:.8rem}.cart-summary strong{color:var(--title);font-size:1rem}.cart-summary:focus-visible{outline:3px solid var(--ring);outline-offset:2px}.product-feed{width:min(100%,1180px);margin:0 auto}.products-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.product-card{background:var(--surface);border:1px solid color-mix(in srgb, var(--accent), transparent 84%);border-radius:22px;animation:.28s rise-in;overflow:hidden;box-shadow:0 24px 30px -26px #0f0f18b3}.product-image{aspect-ratio:1;object-fit:cover;width:100%;display:block}.product-body{padding:10px}.product-body h2{color:var(--title);margin:0;font-size:.95rem;line-height:1.2}.product-body p{color:var(--muted);-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;margin:6px 0 12px;font-size:.78rem;line-height:1.45;display:-webkit-box;overflow:hidden}.product-price{color:var(--title);margin:0 0 10px;font-size:.93rem;font-weight:700}.product-actions{background:color-mix(in srgb, var(--accent), white 90%);border-radius:999px;justify-content:space-between;align-items:center;padding:4px;display:flex}.action-btn{cursor:pointer;border:none;border-radius:999px;width:36px;height:36px;font-size:1.3rem;transition:transform .13s,filter .18s}.action-btn:hover{transform:translateY(-1px)scale(1.03)}.action-btn:focus-visible{outline:3px solid var(--ring);outline-offset:2px}.action-btn.add{color:#fff;background:linear-gradient(150deg, var(--accent), var(--accent-strong))}.action-btn.remove{color:var(--accent-strong);border:1px solid color-mix(in srgb, var(--accent), transparent 68%);background:#fff}.action-btn:disabled{cursor:not-allowed;opacity:.4;transform:none}.qty{color:var(--title);text-align:center;min-width:24px;font-weight:700}.status{text-align:center;color:var(--muted);margin:6px 0;padding:14px;font-weight:600}.status.error{color:#be2f1d}.sentinel{height:1px}.cart-drawer-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:50;opacity:0;pointer-events:none;background:#0d0c1052;transition:opacity .18s;position:fixed;inset:0}.cart-drawer-backdrop.open{opacity:1;pointer-events:auto}.cart-drawer{background:color-mix(in srgb, var(--surface), white 8%);border-left:1px solid color-mix(in srgb, var(--accent), transparent 76%);width:min(100%,420px);height:100%;padding:max(14px, env(safe-area-inset-top)) 14px max(14px, env(safe-area-inset-bottom));flex-direction:column;transition:transform .22s;display:flex;position:absolute;top:0;right:0;transform:translate(100%)}.cart-drawer.open{transform:translate(0)}.drawer-header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.drawer-header h2{color:var(--title);margin:0}.close-btn{cursor:pointer;width:32px;height:32px;color:var(--title);background:color-mix(in srgb, var(--accent), white 82%);border:none;border-radius:999px;font-weight:700}.drawer-content{flex:1;padding-right:4px;overflow:auto}.empty-cart{color:var(--muted);margin-top:10px}.cart-item{border-bottom:1px solid color-mix(in srgb, var(--accent), transparent 86%);justify-content:space-between;align-items:flex-start;gap:14px;padding:10px 0;display:flex}.cart-item h3{color:var(--title);margin:0;font-size:.95rem}.cart-item p{color:var(--muted);margin:4px 0 0;font-size:.82rem}.cart-item-meta{text-align:right}.cart-item-meta span{color:var(--muted);font-size:.82rem;display:block}.cart-item-meta strong{color:var(--title)}.drawer-footer{border-top:1px solid color-mix(in srgb, var(--accent), transparent 82%);gap:10px;padding-top:12px;display:grid}.drawer-total{color:var(--title);justify-content:space-between;align-items:center;display:flex}.drawer-total strong{font-size:1.05rem}.confirm-btn{cursor:pointer;color:#fff;background:linear-gradient(150deg, var(--accent), var(--accent-strong));border:none;border-radius:12px;padding:12px;font-weight:700}.confirm-btn:disabled{opacity:.45;cursor:not-allowed}.confirm-btn:focus-visible,.close-btn:focus-visible{outline:3px solid var(--ring);outline-offset:2px}@keyframes rise-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width>=768px){.app{padding:18px}.app-header{align-items:center;padding:18px 20px}.products-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.product-body{padding:12px}.product-body h2{font-size:1.05rem}}@media (width>=1120px){.products-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}}
