:root {	--bg-color: #0b0b10;	--card-bg: #15151e;	--primary: #00ffcc; /* AE-Petry Green */	--secondary: #ff0055; /* AE-Petry Red */	--text-main: #ffffff;	--text-muted: #a0a0a0;}* { box-sizing: border-box; margin: 0; padding: 0; }body {	background-color: var(--bg-color);	color: var(--text-main);	font-family: 'Montserrat', sans-serif;	overflow-x: hidden;}/* --- Header & Mountain Metaphor --- */header {	position: relative;	height: 350px;	display: flex;	flex-direction: column;	justify-content: center;	align-items: center;	background: linear-gradient(to bottom, #000000, var(--bg-color));	overflow: hidden;	text-align: center;	padding: 20px;}header::after {	/* Силуэт горы */	content: '';	position: absolute;	bottom: 0;	left: 0;	width: 100%;	height: 150px;	background: linear-gradient(to top, var(--bg-color) 10%, transparent 100%);	z-index: 2;}.mountain-bg {	position: absolute;	top: 50%;	left: 50%;	transform: translate(-50%, -50%);	font-size: 20rem;	opacity: 0.05;	z-index: 0;	pointer-events: none;}h1 {	font-family: 'Cinzel', serif;	font-size: 3rem;	z-index: 3;	text-transform: uppercase;	letter-spacing: 5px;	text-shadow: 0 0 20px rgba(0, 255, 204, 0.4);}.subtitle {	z-index: 3;	color: var(--primary);	font-size: 1.2rem;	margin-top: 10px;	letter-spacing: 2px;}/* --- Controls --- */.controls {	max-width: 1200px;	margin: 0 auto;	padding: 20px;	position: sticky;	top: 0;	background: rgba(11, 11, 16, 0.95);	backdrop-filter: blur(10px);	z-index: 100;	border-bottom: 1px solid rgba(255,255,255,0.1);	display: flex;	flex-direction: column;	gap: 15px;}.search-box {	width: 100%;}.search-box input {	width: 100%;	padding: 15px;	background: #20202a;	border: 1px solid #333;	color: white;	font-family: 'Montserrat', sans-serif;	font-size: 1rem;	border-radius: 8px;	transition: 0.3s;}.search-box input:focus {	outline: none;	border-color: var(--primary);	box-shadow: 0 0 15px rgba(0, 255, 204, 0.2);}/* Контейнер для выпадающих фильтров */.categories-wrapper {    max-height: 0;    overflow: hidden;    transition: all 0.3s ease;    opacity: 0;}.categories-wrapper.expanded {    max-height: 250px;       /* Ограничиваем высоту */    overflow-y: auto;        /* Включаем прокрутку */    opacity: 1;    margin-top: 8px;    padding: 10px;    border: 1px solid #333;    border-radius: 8px;    background: rgba(30, 30, 35, 0.95);}.categories-wrapper::-webkit-scrollbar {    width: 4px;}.categories-wrapper::-webkit-scrollbar-track {    background: transparent;}.categories-wrapper::-webkit-scrollbar-thumb {    background: #444;    border-radius: 10px;}.categories-wrapper::-webkit-scrollbar-thumb:hover {    background: var(--primary);}.categories {    display: flex;    flex-wrap: wrap;    /* <--- САМОЕ ВАЖНОЕ: разрешаем перенос на новую строку */    gap: 6px;           /* Расстояние между кнопками */    justify-content: flex-start;}/* Класс, который добавится JS-ом для раскрытия */.categories.expanded {	max-height: 500px; /* Достаточно много, чтобы влезло всё */}/* Кнопка "Показать все" */.btn-show-more {	display: block;	margin: 5px auto 0;	background: none;	border: none;	color: var(--text-muted);	font-size: 0.8rem;	cursor: pointer;	border-bottom: 1px dashed var(--text-muted);}.btn-show-more:hover {	color: var(--primary);	border-color: var(--primary);}/* Стиль для активных кнопок (мультивыбор) */.btn-cat.active {    background: var(--primary);    color: #000;    border-color: var(--primary);}.btn-cat {    background: #1e1e24;    color: #ccc;    border: 1px solid #333;    padding: 5px 12px;       /* Уменьшили отступы */    border-radius: 20px;    cursor: pointer;    font-size: 0.85rem;      /* Уменьшили шрифт */    white-space: nowrap;    transition: all 0.2s;    margin: 3px;             /* Расстояние между кнопками */}.btn-cat:hover, .btn-cat.active {	background: var(--primary);	color: black;	border-color: var(--primary);	font-weight: 600;}.dropdown {	position: absolute;	top: 20px;	right: 20px;	z-index: 50; /* Поверх горы */}/* Кнопка меню */.dropbtn {	background: rgba(0, 0, 0, 0.6);	color: var(--primary);	padding: 10px 20px;	font-family: 'Montserrat', sans-serif;	font-size: 0.9rem;	font-weight: 600;	border: 1px solid var(--primary);	border-radius: 8px;	cursor: pointer;	backdrop-filter: blur(5px);	transition: 0.3s;	text-transform: uppercase;	letter-spacing: 1px;}.dropdown:hover .dropbtn {	background: var(--primary);	color: black;	box-shadow: 0 0 15px var(--primary);}/* Контейнер списка ссылок */.dropdown-content {	display: none;	position: absolute;	right: 0;		/* 1. Приклеиваем блок ровно к низу кнопки */	top: 100%; 		/* 2. Убираем отступы (margin), которые создают дырки */	margin-top: 0; 		/* 3. СОЗДАЕМ МОСТИК: */	/* Прозрачная верхняя рамка толщиной 20px. 	   Мышка едет по ней и не теряет меню. */	border-top: 20px solid transparent; 		/* 4. Важно: Запрещаем фону заливать нашу прозрачную рамку */	background-clip: padding-box;		/* Оформление самого меню */	background-color: rgba(15, 15, 20, 0.98);	min-width: 200px;	box-shadow: 0 10px 30px rgba(0,0,0,0.8);	border-radius: 8px; /* Скругляем углы */	z-index: 1000;}/* Ссылки внутри меню */.dropdown-content a {	color: #e0e0e0;	padding: 12px 16px;	text-decoration: none;	display: block;	font-size: 0.85rem;	border-bottom: 1px solid rgba(255,255,255,0.05);	transition: 0.2s;}/* Скругляем углы у первой и последней ссылки, чтобы они не вылезали за фон */.dropdown-content a:first-child { border-top-left-radius: 8px; border-top-right-radius: 8px; }.dropdown-content a:last-child { border-bottom: none; border-bottom-left-radius: 8px; border-bottom-right-radius: 8px; }.dropdown-content a:hover {	background-color: var(--primary);	color: black;	font-weight: bold;}/* Показываем при наведении */.dropdown:hover .dropdown-content {	display: block;}@keyframes fadeIn {	from { opacity: 0; transform: translateY(-10px); }	to { opacity: 1; transform: translateY(0); }}.stats {	text-align: center;	color: var(--text-muted);	font-size: 0.8rem;	margin-top: 5px;}/* --- Grid --- */.grid {	max-width: 1200px;	margin: 20px auto;	padding: 20px;	display: grid;	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));	gap: 25px;}.card {	background: var(--card-bg);	border-radius: 12px;	overflow: hidden;	border: 1px solid rgba(255, 255, 255, 0.05);	transition: transform 0.3s ease, box-shadow 0.3s ease;	position: relative;	display: flex;	flex-direction: column;}.card-desc {	font-size: 0.85rem;	color: #b0b0b0;	margin-bottom: 15px;	line-height: 1.4;		/* Логика обрезки */	display: -webkit-box;	-webkit-line-clamp: 3; /* Показываем 3 строки */	-webkit-box-orient: vertical;	overflow: hidden;		/* Интерактивность */	cursor: pointer;	transition: color 0.3s ease;	position: relative;}/* Подсветка при наведении, чтобы побудить к клику */.card-desc:hover {	color: #ffffff;}/* Элемент-подсказка (маленькая стрелочка или точки) */.card-desc::after {	content: ' Ў';	font-size: 0.7rem;	color: var(--primary);	opacity: 0.7;}/* Класс, который мы будем добавлять через JS при клике */.card-desc.expanded {	-webkit-line-clamp: unset; /* Убираем ограничение строк */	color: #ffffff;}.card-desc.expanded::after {	content: ' ^'; /* Стрелка вверх, когда открыто */}.card:hover {	transform: translateY(-5px);	box-shadow: 0 10px 30px rgba(0,0,0,0.5);	border-color: var(--primary);}/* --- Обновленные стили картинок --- */		/* Контейнер картинки */.card-img-container {	width: 100%;	height: 120px; /* Высота обложки */	background: #202025;	position: relative;	overflow: hidden;	display: flex;	align-items: center;	justify-content: center;	border-bottom: 1px solid #333;}/* Если это реальное фото */.card-img {	width: 100%;	height: 100%;	object-fit: cover;	transition: 0.5s;}/* Если это заглушка (текстовая обложка) */.card-placeholder {	width: 100%;	height: 100%;	/* Стильный градиент (можно поменять цвета) */	background: linear-gradient(135deg, #2b32b2 10%, #1488cc 100%);	display: flex;	align-items: center;	justify-content: center;	text-align: center;	padding: 10px; /* Отступы, чтобы текст не прилипал к краям */	box-sizing: border-box;}/* Текст на заглушке */.card-placeholder span {	color: #fff;	font-weight: bold;	font-size: 1rem;	line-height: 1.2;	text-shadow: 0 2px 4px rgba(0,0,0,0.5);		/* Ограничение количества строк (если название супер-длинное) */	display: -webkit-box;	-webkit-line-clamp: 3; 	-webkit-box-orient: vertical;	overflow: hidden;}.card:hover .card-img {	transform: scale(1.1);	opacity: 0.8;}/* Стили для рейтинга (оставляем как просили) */.rating-row {	margin: 5px 0 10px 0;	display: flex;	align-items: center;	height: 25px;}.rating-badge {	display: inline-flex;	align-items: center;	gap: 6px;	padding: 2px 8px;	border-radius: 4px;	font-size: 0.8rem;	font-weight: 700;	background: rgba(255, 255, 255, 0.05);	border: 1px solid rgba(255, 255, 255, 0.1);}.rating-star { color: #ffd700; font-size: 0.9rem; }.rating-high { color: #00ffcc; border-color: rgba(0, 255, 204, 0.3); }.rating-med { color: #86efac; border-color: rgba(134, 239, 172, 0.3); }.rating-avg { color: #ccc; }.card-body {	padding: 20px;	flex-grow: 1;	display: flex;	flex-direction: column;}.card-title {	font-weight: 800;	font-size: 1.2rem;	margin-bottom: 10px;	color: white;}.badges {	display: flex;	flex-wrap: wrap;	gap: 5px;	margin-bottom: 15px;}.badge {	font-size: 0.7rem;	padding: 3px 8px;	border-radius: 4px;	text-transform: uppercase;	font-weight: 600;}/* Цвета категорий */.badge.party { background: #ff0055; color: white; }.badge.strategy { background: #5500ff; color: white; }.badge.detective { background: #ffaa00; color: black; }.badge.classic { background: #00ffcc; color: black; }.badge.coop { background: #00cc66; color: black; }.badge.pvp { background: #cc0000; color: white; }.card-links {	margin-top: auto;	display: flex;	gap: 10px;}.btn {	flex: 1;	padding: 10px;	text-align: center;	border-radius: 6px;	text-decoration: none;	font-size: 0.8rem;	font-weight: 600;	transition: 0.2s;}.btn-rules {	background: rgba(0, 255, 204, 0.1);	color: var(--primary);	border: 1px solid var(--primary);}.btn-rules:hover { 	background: var(--primary); 	color: black;	box-shadow: 0 0 10px var(--primary);}/* Стиль для YouTube оставим тем же */.btn-yt {	background: #cc0000;	color: white;	border: 1px solid #cc0000;}.btn-yt:hover { 	background: #ff0000; 	box-shadow: 0 0 10px #ff0000;}/* Footer */footer {	text-align: center;	padding: 50px;	color: #555;	border-top: 1px solid #222;}/* --- Панель фильтров --- */.filters-bar {	display: flex;	flex-wrap: wrap;	gap: 20px;	justify-content: center;	align-items: center;	margin-bottom: 20px;	background: rgba(255, 255, 255, 0.05);	padding: 15px;	border-radius: 12px;}.filters-bar label {	color: #aaa;	font-size: 0.9rem;	margin-right: 10px;}/* Выпадающий список сортировки */#sortSelect {	background: #222;	color: white;	border: 1px solid #444;	padding: 8px;	border-radius: 6px;	outline: none;}#sortSelect:focus {	border-color: var(--primary);}/* --- Двойной ползунок (Dual Range Slider) --- */.rating-filter-container {	display: flex;	flex-direction: column;	align-items: center;	min-width: 250px;}.range-slider {	position: relative;	width: 100%;	height: 20px;	margin-top: 10px;}.slider-track {	width: 100%;	height: 5px;	background-color: #444;	position: absolute;	top: 50%;	transform: translateY(-50%);	border-radius: 5px;}/* Сами ползунки (Input Range) */.range-slider input[type="range"] {	-webkit-appearance: none;	appearance: none;	width: 100%;	position: absolute;	top: 50%;	transform: translateY(-50%);	background: none;	pointer-events: none; /* Чтобы пропускать клики сквозь прозрачные части */	margin: 0;}/* Бегунок (Thumb) - Chrome/Safari */.range-slider input[type="range"]::-webkit-slider-thumb {	-webkit-appearance: none;	height: 18px;	width: 18px;	border-radius: 50%;	background: var(--primary);	cursor: pointer;	pointer-events: auto; /* Возвращаем кликабельность бегунку */	box-shadow: 0 0 10px rgba(0, 255, 204, 0.5);	margin-top: -7px; /* Центровка */	position: relative;	z-index: 10;}/* Бегунок (Thumb) - Firefox */.range-slider input[type="range"]::-moz-range-thumb {	height: 18px;	width: 18px;	border: none;	border-radius: 50%;	background: var(--primary);	cursor: pointer;	pointer-events: auto;	box-shadow: 0 0 10px rgba(0, 255, 204, 0.5);}/* Значок времени в карточке */.time-badge {	display: inline-flex;	align-items: center;	gap: 5px;	padding: 2px 8px;	margin-left: 10px; /* Отступ от рейтинга */	border-radius: 4px;	font-size: 0.8rem;	color: #b0bec5;	background: rgba(255, 255, 255, 0.05);	border: 1px solid rgba(255, 255, 255, 0.1);}.time-icon {	font-size: 0.9rem;}/* Обновляем цвета ползунков, чтобы они отличались */#track-rating { background: #444; }#track-time { background: #444; }.user-review {	margin-top: 10px;	padding-top: 10px;	border-top: 1px dashed rgba(255, 255, 255, 0.1);	font-style: italic;	font-size: 0.8rem;	color: #ffca28; /* Золотистый цвет для акцента */	line-height: 1.3;}.user-review::before {	content: "?? ";}/* Общий стиль для иконок в заголовках слайдеров */.icon-label {    margin-right: 6px;      /* Отступ от иконки до текста */    font-size: 1.1rem;      /* Иконка чуть крупнее текста */    vertical-align: middle; /* Выравнивание по центру строки */    line-height: 1;}/* Цвет для звезды (Золотой) */.icon-star {    color: #FFD700;    text-shadow: 0 0 5px rgba(255, 215, 0, 0.4); /* Неоновое свечение */}/* Цвет для часов (Голубой / Циан) */.icon-time {    color: #00E5FF;    text-shadow: 0 0 5px rgba(0, 229, 255, 0.4); /* Неоновое свечение */}/* Выравнивание текста в label, чтобы иконка не "прыгала" */.slider-group label {    display: flex;    align-items: center;     /* Остальные стили label у тебя уже есть (color, font-size и т.д.) */}/* Прижимаем значение (0-10) вправо */.val-label {    margin-left: auto; /* Автоматический отступ слева прижмет цифры к правому краю */    font-weight: bold;    color: #fff;}.mobile-header-toggle {    display: none;}@media (max-width: 768px) {    .mobile-header-toggle {        display: block;        width: 100vw;        padding: 12px 0 10px 0;        font-size: 1rem;        background: #18181c;        color: var(--primary, #00ffe7);        border: none;        border-bottom: 1px solid #23232c;        z-index: 1111;        position: sticky;        top: 0;        left: 0;        pointer-events: auto;    }    .controls {        max-height: 0;        opacity: 0;        overflow: hidden;        pointer-events: none;        transition: max-height .35s, opacity .25s;        padding-top: 0 !important;        padding-bottom: 0 !important;    }    .controls.visible {        max-height: 2000px;        opacity: 1;        pointer-events: auto;        transition: max-height .45s, opacity .25s;        padding-top: 15px !important;        padding-bottom: 8px !important;    }}