.card.svelte-1ns7xzv{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease;color:var(--text)}.card.svelte-1ns7xzv:hover{transform:translateY(-2px);border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.thumb.svelte-1ns7xzv{position:relative;aspect-ratio:4 / 3;background:var(--bg-elev-2);overflow:hidden}.thumb.svelte-1ns7xzv img:where(.svelte-1ns7xzv){width:100%;height:100%;object-fit:cover;transition:transform .4s ease}.card.svelte-1ns7xzv:hover .thumb:where(.svelte-1ns7xzv) img:where(.svelte-1ns7xzv){transform:scale(1.06)}.ph.svelte-1ns7xzv{width:100%;height:100%}.badges.svelte-1ns7xzv{position:absolute;top:.55rem;left:.55rem;display:flex;gap:.35rem}.badge.svelte-1ns7xzv{font-size:.62rem;font-weight:800;padding:.18rem .45rem;border-radius:4px;letter-spacing:.5px}.badge-free.svelte-1ns7xzv{background:var(--success);color:var(--success-fg)}.badge-sale.svelte-1ns7xzv{background:var(--star);color:#1a0f00}.body.svelte-1ns7xzv{padding:.75rem .85rem .85rem;display:flex;flex-direction:column;gap:.4rem;flex:1}.title.svelte-1ns7xzv{font-size:.92rem;font-weight:600;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.vendor.svelte-1ns7xzv{display:flex;align-items:center;gap:.4rem;font-size:.78rem;color:var(--text-muted)}.vendor.svelte-1ns7xzv img:where(.svelte-1ns7xzv),.vendor.svelte-1ns7xzv .ph-avatar:where(.svelte-1ns7xzv){width:18px;height:18px;border-radius:50%;object-fit:cover;display:inline-flex;align-items:center;justify-content:center;background:var(--bg-elev-2);font-size:.65rem;font-weight:700;color:var(--text)}.meta.svelte-1ns7xzv{margin-top:auto;display:flex;justify-content:space-between;align-items:center;padding-top:.4rem}.rating.svelte-1ns7xzv{display:inline-flex;align-items:center;gap:.3rem;font-size:.78rem;font-weight:700}.rating.svelte-1ns7xzv .star:where(.svelte-1ns7xzv){color:var(--star)}.rating.svelte-1ns7xzv .rval:where(.svelte-1ns7xzv){color:var(--text)}.rcount.svelte-1ns7xzv{color:var(--text-subtle);font-weight:500}.price.svelte-1ns7xzv{display:flex;align-items:baseline;gap:.4rem}.price-free.svelte-1ns7xzv{font-weight:800;color:var(--success);font-size:.95rem}.price-now.svelte-1ns7xzv{font-weight:800;font-size:.95rem}.price-old.svelte-1ns7xzv{font-size:.78rem;color:var(--text-subtle);text-decoration:line-through}
