.category-card{position:relative;display:grid;grid-template-rows:auto 1fr;background:var(--color-white);border:1px solid var(--color-rule);text-decoration:none;color:inherit;overflow:hidden;transition:border-color var(--transition-fast),transform var(--transition-base),box-shadow var(--transition-base)}.category-card:after{content:"";position:absolute;left:0;bottom:0;height:3px;width:0;background:var(--color-primary);transition:width .36s cubic-bezier(.2,.8,.2,1)}.category-card:hover{border-color:var(--color-ink);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.category-card:hover:after{width:100%}.category-card:hover .category-card__image{transform:scale(1.05)}.category-card:hover .category-card__name{color:var(--color-primary)}.category-card:focus-visible{outline:none;box-shadow:var(--focus-ring)}.category-card__media{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--color-paper);border-bottom:1px solid var(--color-rule)}.category-card__image{width:100%;height:100%;object-fit:cover;transition:transform .52s cubic-bezier(.2,.8,.2,1)}.category-card__placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:repeating-linear-gradient(45deg,var(--color-gray-50) 0 12px,var(--color-white) 12px 24px)}.category-card__placeholder span{font:var(--font-weight-bold) 3rem var(--font-family-secondary);color:var(--color-ink-soft);letter-spacing:-.04em}.category-card__body{padding:var(--spacing-md) var(--spacing-lg) var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-xs)}.category-card__name{margin:0;font:var(--font-weight-semibold) var(--font-size-base) var(--font-family-secondary);color:var(--color-ink);line-height:1.25;letter-spacing:-.01em;transition:color var(--transition-fast)}.category-card__count{font:var(--font-weight-medium) .6875rem var(--font-family-mono);color:var(--color-ink-soft);text-transform:uppercase;letter-spacing:.14em}.categories-catalog__hero{padding:8rem 2rem 4rem;background:linear-gradient(135deg,var(--color-primary-alpha-10) 0%,var(--color-secondary-alpha-10) 100%);position:relative;overflow:hidden}.categories-catalog__hero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 30%,var(--color-primary-alpha-10) 0%,transparent 50%),radial-gradient(circle at 80% 70%,var(--color-secondary-alpha-10) 0%,transparent 50%);pointer-events:none}@media(max-width:1150px){.categories-catalog__hero{margin-top:60px}}@media(max-width:768px){.categories-catalog__hero{padding:6rem 1.5rem 3rem}}.categories-catalog__section{padding:var(--spacing-2xl) 0 var(--spacing-4xl)}.categories-catalog__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--spacing-lg)}.categories-catalog__empty{grid-column:1/-1;text-align:center;color:var(--color-ink-muted);font-family:var(--font-family-primary);padding:var(--spacing-2xl) 0}.categories-catalog__error{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);padding:var(--spacing-2xl) 0;color:var(--color-ink-muted)}.categories-catalog__error-icon{font-size:2rem;color:var(--color-primary)}.categories-catalog__error-text{margin:0;font-family:var(--font-family-primary);font-size:var(--font-size-base)}.categories-catalog__retry{padding:var(--spacing-sm) var(--spacing-lg);background:var(--color-primary);color:var(--color-white);border:none;font:var(--font-weight-semibold) .75rem var(--font-family-mono);text-transform:uppercase;letter-spacing:.14em;cursor:pointer;transition:var(--transition-fast)}.categories-catalog__retry:hover{background:var(--color-ink)}.categories-catalog__retry:focus-visible{outline:none;box-shadow:var(--focus-ring)}.categories-catalog__skeleton{background:var(--color-white);border:1px solid var(--color-rule)}.categories-catalog__skeleton-media{aspect-ratio:4/3;background:linear-gradient(90deg,var(--color-paper) 0%,var(--color-gray-50) 50%,var(--color-paper) 100%);background-size:200% 100%;animation:categories-catalog-shimmer 1.6s ease-in-out infinite}.categories-catalog__skeleton-body{padding:var(--spacing-md) var(--spacing-lg) var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-sm)}.categories-catalog__skeleton-line{height:12px;background:linear-gradient(90deg,var(--color-paper) 0%,var(--color-gray-50) 50%,var(--color-paper) 100%);background-size:200% 100%;animation:categories-catalog-shimmer 1.6s ease-in-out infinite}.categories-catalog__skeleton-line--title{height:16px;width:70%}.categories-catalog__skeleton-line--text{width:40%}@keyframes categories-catalog-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}
