/* CSS-переменные для централизованного управления темой */
        :root {
            /* Основные цвета (Светлая тема - по умолчанию) */
            --color-bg: #f8fafc;
            --color-surface: #ffffff;
            --color-text: #0f172a;
            --color-text-muted: #475569;
            --color-primary: #2563eb;
            --color-primary-hover: #1d4ed8;
            --color-accent: #7c3aed;
            --color-border: #e2e8f0;
            
            /* Цвета для бейджей (светлая тема) */
            --badge-static-bg: #e0f2fe;
            --badge-static-text: #0369a1;
            --badge-interactive-bg: #f3e8ff;
            --badge-interactive-text: #7c3aed;

            /* UI параметры */
            --radius: 10px;
            --spacing: 1rem;
            --font-base: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
            --shadow-card: 0 8px 16px rgba(0,0,0,0.08);
        }

        /* Автоматическая адаптация под темную тему системы */
        @media (prefers-color-scheme: dark) {
            :root {
                /* Основные цвета (Темная тема) */
                --color-bg: #121212;
                --color-surface: #1e1e1e;
                --color-text: #e6e6e6;
                --color-text-muted: #94a3b8;
                --color-primary: #60a5fa;
                --color-primary-hover: #93c5fd;
                --color-accent: #a78bfa;
                --color-border: #334155;
                
                /* Цвета для бейджей (темная тема - более насыщенные для контраста) */
                --badge-static-bg: #075985;
                --badge-static-text: #e0f2fe;
                --badge-interactive-bg: #6b21a8;
                --badge-interactive-text: #f3e8ff;
                
                /* Тени в темной теме делаем мягче */
                --shadow-card: 0 8px 16px rgba(0,0,0,0.4);
            }
        }

        /* Сброс и базовые стили */
        *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
        
        body {
            font-family: var(--font-base);
            background: var(--color-bg);
            color: var(--color-text);
            line-height: 1.5;
            min-height: 100vh;
            display: flex;
            flex-direction: column;
            transition: background-color 0.3s ease, color 0.3s ease; /* Плавный переход темы */
        }

        /* Контейнер */
        .container {
            width: 100%;
            max-width: 1200px;
            margin: 0 auto;
            padding: 0 var(--spacing);
        }

        /* Шапка */
        header {
            background: var(--color-surface);
            border-bottom: 1px solid var(--color-border);
            position: sticky;
            top: 0;
            z-index: 10;
            transition: background-color 0.3s ease, border-color 0.3s ease;
        }

        .header-inner {
            display: flex;
            justify-content: space-between;
            align-items: center;
            height: 64px;
        }

        .logo { 
            font-size: 1.25rem; 
            font-weight: 700; 
            color: var(--color-primary); 
            text-decoration: none; 
        }

        .nav { display: flex; gap: 1.5rem; align-items: center; }
        .nav a { 
            color: var(--color-text); 
            text-decoration: none; 
            font-weight: 500; 
            transition: color 0.2s;
        }
        .nav a:hover { color: var(--color-primary); }

        .menu-toggle {
            display: none;
            background: var(--color-surface);
            border: 1px solid var(--color-border);
            color: var(--color-text);
            padding: 0.5rem;
            border-radius: 6px;
            cursor: pointer;
            font-size: 1.1rem;
            transition: background-color 0.3s ease, border-color 0.3s ease;
        }

        /* Основной контент */
        main { flex: 1; padding: 2rem 0; }

        .page-title {
            font-size: clamp(1.5rem, 4vw, 2rem);
            margin-bottom: 1.5rem;
        }

        /* Фильтры */
        .filters {
            display: flex;
            gap: 0.75rem;
            margin-bottom: 2rem;
            flex-wrap: wrap;
        }

        .filter-btn {
            padding: 0.5rem 1rem;
            border: 1px solid var(--color-border);
            background: var(--color-surface);
            color: var(--color-text);
            border-radius: 20px;
            cursor: pointer;
            font-weight: 500;
            transition: all 0.2s;
        }

        .filter-btn:hover { 
            border-color: var(--color-primary); 
            color: var(--color-primary); 
        }
        
        .filter-btn[aria-pressed="true"] {
            background: var(--color-primary);
            color: #fff;
            border-color: var(--color-primary);
        }

        /* Сетка каталога */
        .catalog-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
            gap: 1.5rem;
        }

        /* Карточка истории */
        .story-card {
            background: var(--color-surface);
            border: 1px solid var(--color-border);
            border-radius: var(--radius);
            padding: 1.25rem;
            display: flex;
            flex-direction: column;
            transition: transform 0.2s, box-shadow 0.2s, background-color 0.3s ease, border-color 0.3s ease;
        }

        .story-card:hover {
            transform: translateY(-4px);
            box-shadow: var(--shadow-card);
        }

        .card-header { 
            display: flex; 
            justify-content: space-between; 
            align-items: flex-start; 
            gap: 0.5rem; 
            margin-bottom: 0.75rem; 
        }
        
        .card-title { 
            font-size: 1.1rem; 
            font-weight: 600; 
            margin: 0; 
            color: var(--color-text);
        }
        
        .badge {
            font-size: 0.75rem;
            padding: 0.25rem 0.6rem;
            border-radius: 12px;
            font-weight: 600;
            white-space: nowrap;
            /* Используем переменные для цветов бейджей */
            background: var(--badge-static-bg);
            color: var(--badge-static-text);
        }
        
        .badge.interactive {
            background: var(--badge-interactive-bg);
            color: var(--badge-interactive-text);
        }

        .card-excerpt { 
            color: var(--color-text-muted); 
            flex: 1; 
            margin-bottom: 1rem; 
        }
        
        .card-meta { 
            font-size: 0.85rem; 
            color: var(--color-text-muted); 
            margin-bottom: 1rem; 
        }

        .card-action {
            display: inline-block;
            text-align: center;
            padding: 0.65rem;
            border-radius: 8px;
            background: var(--color-primary);
            color: #fff;
            text-decoration: none;
            font-weight: 500;
            transition: background 0.2s;
        }

        .card-action:hover { background: var(--color-primary-hover); }
        
        .card-action.interactive-btn { 
            background: var(--color-accent); 
        }
        .card-action.interactive-btn:hover { 
            background: #6d28d9; 
        }

        /* Утилитарный класс для скрытия элементов при фильтрации */
        .is-hidden { display: none; }

        /* Подвал */
        footer {
            background: var(--color-surface);
            border-top: 1px solid var(--color-border);
            padding: 1.5rem 0;
            text-align: center;
            color: var(--color-text-muted);
            font-size: 0.9rem;
            transition: background-color 0.3s ease, border-color 0.3s ease;
        }

        /* Адаптивные правила */
        @media (max-width: 768px) {
            .nav {
                display: none;
                position: absolute;
                top: 64px;
                left: 0;
                right: 0;
                background: var(--color-surface);
                flex-direction: column;
                padding: 1rem;
                border-bottom: 1px solid var(--color-border);
                box-shadow: 0 4px 12px rgba(0,0,0,0.05);
            }

            .nav.active { display: flex; }
            .menu-toggle { display: block; }
            
            .catalog-grid { grid-template-columns: 1fr; }
            .filters { gap: 0.5rem; }
        }
        
        /* Облако жанров */
.genres-cloud {
    margin-bottom: 2rem;
    padding: 1.5rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    transition: background-color 0.3s ease, border-color 0.3s ease;
}

.genres-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}

.genre-tag {
    display: inline-block;
    padding: 0.4rem 0.8rem;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: 20px;
    color: var(--color-text-muted);
    text-decoration: none;
    font-size: 0.875rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
    user-select: none;
}

.genre-tag:hover {
    border-color: var(--color-primary);
    color: var(--color-primary);
    transform: translateY(-2px);
}

.genre-tag.active {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: #fff;
}

/* Размеры тегов в зависимости от популярности */
.genre-tag[data-count="1"] { font-size: 0.8rem; opacity: 0.7; }
.genre-tag[data-count="2"] { font-size: 0.875rem; }
.genre-tag[data-count="3"] { font-size: 0.95rem; font-weight: 600; }
.genre-tag[data-count="4"] { font-size: 1rem; font-weight: 600; }
.genre-tag[data-count="5"] { font-size: 1.1rem; font-weight: 700; }
.genre-tag[data-count="6"] { font-size: 1.15rem; font-weight: 700; }
.genre-tag[data-count="7"] { font-size: 1.2rem; font-weight: 700; }
.genre-tag[data-count="8"] { font-size: 1.25rem; font-weight: 700; }

/* Скрывающий класс для доступности */
.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Адаптация для мобильных */
@media (max-width: 480px) {
    .genres-cloud {
        padding: 1rem;
    }
    
    .genre-tag {
        font-size: 0.8rem !important;
        padding: 0.3rem 0.6rem;
    }
}
.genres-cloud-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.75rem;
}

.genre-counter {
    font-size: 0.9rem;
    color: var(--color-text-muted);
    font-weight: 500;
}

.genre-counter strong {
    color: var(--color-text);
    font-weight: 600;
    transition: color 0.2s;
}