.wrap.cat-wrap{max-width:1120px}.sub{max-width:560px}.cat-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:24px}.chip-btn{height:40px;padding:0 18px;border-radius:var(--radius-full);border:none;background:var(--surface-1);box-shadow:var(--shadow-1);color:var(--ink);font-size:.875rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;transition:transform .1s var(--ease),box-shadow .15s var(--ease)}.chip-btn:hover{box-shadow:var(--shadow-2)}.chip-btn.has-filters:after{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent);display:inline-block;margin-left:8px}.filter-summary-chip{display:flex;align-items:center;gap:4px;height:40px;padding:0 6px 0 14px;border-radius:var(--radius-full);background:var(--accent-soft);color:var(--accent);font-size:.8125rem;font-weight:600;min-width:0;max-width:260px}.filter-summary-chip .filter-summary-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.filter-summary-chip button{width:28px;height:28px;border-radius:50%;border:none;background:transparent;color:var(--accent);font-size:.875rem;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center}.filter-summary-chip button:hover{background:#3b4cca1f}.cat-count{font-size:.8125rem;color:var(--ink-soft);margin-left:auto}.cat-status{color:var(--ink-soft);font-size:.9375rem}.cat-empty-filtered{display:flex;align-items:center;gap:12px;padding:16px;font-size:.875rem;color:var(--ink-soft);background:var(--surface-2);border-radius:var(--radius-m)}.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}.cat-card{display:flex;flex-direction:column;align-items:center;text-align:center;padding:14px 12px;border:none;background:var(--surface-1);border-radius:var(--radius-m);box-shadow:var(--shadow-1);cursor:pointer;font:inherit;color:inherit}.cat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-2)}.cat-card:active{transform:translateY(-2px) scale(.97)}.cat-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.cat-card-media{display:block;width:72px;height:72px;border-radius:50%;background:var(--surface-2);flex-shrink:0}.cat-card-media img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}.cat-card-swatch{width:100%;height:100%;border-radius:50%}.cat-card-body{display:flex;flex-direction:column;gap:2px;margin-top:8px;width:100%}.cat-card-name{font-size:.8125rem;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cat-card-meta{font-size:.75rem;color:var(--ink-soft)}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#17171a00;z-index:55;display:flex;transition:background .25s var(--ease)}.sheet-backdrop.open{background:#17171a73}.sheet-backdrop[hidden]{display:none}.sheet{background:var(--surface-1);box-shadow:var(--shadow-2);padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:12px;transition:transform .25s var(--ease),opacity .25s var(--ease)}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.sheet-title{font-size:1rem;font-weight:600;color:var(--ink);margin:0}.sheet-close{width:36px;height:36px;border-radius:50%;border:none;background:var(--surface-2);color:var(--ink-soft);font-size:.875rem;cursor:pointer;flex-shrink:0}.sheet-close:hover{background:var(--line);color:var(--ink)}.sheet-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:4px}.accent-btn{height:40px;padding:0 20px;border-radius:var(--radius-full);border:none;background:var(--accent);color:#fff;font-size:.875rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.accent-btn:hover{background:var(--accent-hover)}.filter-sheet{width:360px;max-width:86vw;height:100%;margin-right:auto;border-radius:0 var(--radius-l) var(--radius-l) 0;transform:translate(-100%)}.sheet-backdrop.open .filter-sheet{transform:none}.catalog-filters{display:flex;flex-direction:column}.filter-group{padding:12px 0;border-bottom:1px solid var(--line)}.filter-group:last-of-type{border-bottom:none}summary.filter-group-label{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none;font-size:.875rem;font-weight:600;color:var(--ink)}summary.filter-group-label::-webkit-details-marker{display:none}summary.filter-group-label:before{content:"▸";font-size:.625rem;color:var(--ink-soft);transition:transform .15s ease}.filter-group[open] summary.filter-group-label:before{transform:rotate(90deg)}.filter-group[open] summary.filter-group-label{margin-bottom:10px}.filter-group-count{color:var(--accent);font-size:.75rem}.filter-group-count:empty{display:none}.filter-chip-row{display:flex;flex-wrap:wrap;gap:8px}.filter-chip{min-height:32px;padding:5px 13px;border-radius:var(--radius-full);border:none;background:var(--surface-2);color:var(--ink);font-size:.8125rem;font-weight:500;cursor:pointer}.filter-chip:hover{background:var(--line)}.filter-chip.active{background:var(--accent-soft);color:var(--accent);box-shadow:inset 0 0 0 1.5px var(--accent);font-weight:600}.detail-sheet{width:560px;max-width:calc(100vw - 48px);max-height:84vh;margin:auto;border-radius:var(--radius-l);opacity:0;transform:scale(.96)}.sheet-backdrop.open .detail-sheet{opacity:1;transform:none}.detail-body{display:grid;grid-template-columns:200px 1fr;gap:24px;align-items:start}.detail-info{display:flex;flex-direction:column;gap:18px;min-width:0}.detail-media{border-radius:var(--radius-m);overflow:hidden;aspect-ratio:1;width:100%;padding:22px;box-sizing:border-box;background:radial-gradient(circle at 50% 42%,var(--surface-1) 0%,var(--surface-2) 100%);box-shadow:inset 0 0 0 1px var(--line);display:flex;align-items:center;justify-content:center;flex-shrink:0}.detail-media img{width:100%;height:100%;object-fit:contain;display:block;filter:drop-shadow(0 10px 18px rgba(0,0,0,.1))}.detail-swatch{width:100%;height:100%;border-radius:50%}.detail-meta{margin:0;display:grid;grid-template-columns:84px 1fr;row-gap:12px;column-gap:16px}.detail-meta-row{display:contents}.detail-meta-row dt{font-size:.75rem;font-weight:600;color:var(--ink-soft);padding-top:1px}.detail-meta-row dd{margin:0;font-size:.875rem;font-weight:500;color:var(--ink);display:flex;align-items:center;gap:6px}.detail-color-dot{width:14px;height:14px;border-radius:50%;border:1px solid var(--line);flex-shrink:0}.detail-cta{align-self:stretch;margin-top:auto}.detail-cta-disabled{margin:auto 0 0;font-size:.8125rem;color:var(--ink-faint)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.text-btn,.site-nav a,.beta-badge,.feedback-fab{text-transform:none;letter-spacing:.01em}.text-btn{font-size:.8125rem;font-weight:600;border:none;background:var(--surface-2);color:var(--ink);padding:8px 14px;border-radius:var(--radius-full);min-height:36px}.text-btn:hover{background:var(--line);color:var(--ink)}.site-nav a{font-size:.8125rem;font-weight:500}.site-nav .nav-brand{color:var(--ink)}.beta-badge{font-size:.6875rem;font-weight:600}.feedback-fab{border:none;box-shadow:var(--shadow-1)}.chip-btn,.text-btn,.accent-btn,.sheet-close,.filter-chip,.cat-card,.filter-summary-chip button{transition:transform .1s var(--ease),background .15s var(--ease),color .15s var(--ease),box-shadow .15s var(--ease)}.chip-btn:active,.text-btn:active,.accent-btn:active,.sheet-close:active,.filter-chip:active,.filter-summary-chip button:active{transform:scale(.97)}@media (prefers-reduced-motion: reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-delay:0ms!important}.cat-card:active{transform:none}}@media (max-width: 720px){.cat-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}.cat-toolbar{flex-wrap:wrap}.chip-btn,.filter-summary-chip{height:44px}.sheet-close{width:44px;height:44px}.filter-sheet,.detail-sheet{width:100%;max-width:none;height:auto;max-height:82vh;margin:auto 0 0;border-radius:var(--radius-l) var(--radius-l) 0 0;transform:translateY(100%);opacity:1}.sheet-backdrop.open .filter-sheet,.sheet-backdrop.open .detail-sheet{transform:none;opacity:1}.detail-body{grid-template-columns:1fr}.detail-media{max-width:220px;margin:0 auto}}
