<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<atom:link href="https://warframe.f-rpg.me/export.php?type=rss" rel="self" type="application/rss+xml" />
		<title>Whisper of the Void</title>
		<link>https://warframe.f-rpg.me/</link>
		<description>Whisper of the Void</description>
		<language>ru-ru</language>
		<lastBuildDate>Sun, 07 Jun 2026 19:12:21 +0300</lastBuildDate>
		<generator>MyBB/mybb.ru</generator>
		<item>
			<title>Когда замолкают сердца</title>
			<link>https://warframe.f-rpg.me/viewtopic.php?pid=222#p222</link>
			<description>&lt;p&gt;Став частью отряда &amp;quot;Гекс&amp;quot;, я быстро уяснила: единственная гарантия остаться в живых — скорость реакции.&lt;/p&gt;
						&lt;p&gt;Артур вбивал это в меня своими тренировками. Часами. До кровавых мозолей на пальцах, до судорог в мышцах, до того состояния, когда тело двигается само, а сознание плывёт где-то далеко, отключившись, чтобы не чувствовать боль.&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;font-style: italic&quot;&gt;&amp;quot;Видишь врага — стреляешь во врага, Элеонора. Без раздумий&amp;quot;.&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;Я кивала. Язык тяжелел во рту, давил на нёбо, напоминая, что я всё равно не смогу ответить вслух.&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;font-style: italic&quot;&gt;&amp;quot;Каждая секунда промедления может стоить тебе жизни. Или тому, кто рядом с тобой&amp;quot;.&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;Я снова кивала. Сглатывала солоноватую слюну. Сжимала пальцы на рукояти пистолета так, что костяшки белели.&lt;/p&gt;
						&lt;p&gt;Но я не была солдатом. Я была журналисткой. Человеком слова, а не пули. И даже став чёртовым уродцем с ментальной суперспособностью, даже научившись управляться с оружием так же ловко, как некогда — с блокнотом и ручкой, — я снова затормозила.&lt;/p&gt;
						&lt;p&gt;Снова промедлила.&lt;/p&gt;
						&lt;p&gt;Замерла, как кролик перед удавом. Как та самая девочка в подвале прачечной, которая забивалась в угол и беззвучно выла в скрученные пальцы, потому что чужой поток раздирал её на части.&lt;/p&gt;
						&lt;p&gt;Я не успела выхватить оружие. Не успела прицелиться. Не успела даже подумать о выстреле — потому что в тот самый миг, когда Техрот рухнул перед нами, его шёпот врезался в меня, как чужой язык в полуоткрытый рот.&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;font-style: italic&quot;&gt;&amp;quot;Иди к нам. Иди к нам. Иди&amp;quot;.&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;Я мысленно схватилась за горло. Ментально вцепилась пальцами в собственную шею — сжимала, давила, пыталась заткнуть то, что внутри, прежде чем оно вырвется.&lt;/p&gt;
						&lt;p&gt;Если бы не Куинси&amp;#8230;&lt;/p&gt;
						&lt;p&gt;Выстрел. Грохот. Пуля вошла в кинескоп.&lt;/p&gt;
						&lt;p&gt;И в тот же миг я провалилась.&lt;/p&gt;
						&lt;p&gt;Не просто услышала чужую смерть — я стала ею. Против воли, без спроса. Меня затянуло в эту тварь, как в тёмную, тёплую, пульсирующую тесноту. Сознание скользнуло внутрь — и граница между &amp;quot;я&amp;quot; и &amp;quot;оно&amp;quot; исчезла.&lt;/p&gt;
						&lt;p&gt;На секунду.&lt;/p&gt;
						&lt;p&gt;На один удар сердца.&lt;/p&gt;
						&lt;p&gt;Я почувствовала, как пуля разрывает стекло, как треск проходит сквозь тело — чужое тело, которое вдруг стало моим. Как электричество схватывает каждый нерв, как боль — острая, белая, сладкая — пронзает там, где у нормальных людей не бывает нервов.&lt;/p&gt;
						&lt;p&gt;И следом — не только боль.&lt;/p&gt;
						&lt;p&gt;Поток. Слепое, голодное, древнее желание. Не мысли — судороги воли. Оно хотело меня. Вбирало, втягивало, обволакивало. Чужие щупальца сжались там, где у меня не было тела. Чужой ток прошёл по венам, &lt;span style=&quot;font-style: italic&quot;&gt;которых у меня не было&lt;/span&gt;.&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;font-style: italic&quot;&gt;&amp;quot;Иди к нам. Стань нами&amp;quot;.&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;Я не хотела. Но на краткий миг — один грешный, запретный миг — мне показалось, что это приятно. Что терять себя не страшно. Что тонуть в этом электронном, липком, чужом тепле — почти облегчение. Как раствориться в ком-то огромном и тёплом. Как отдаться без остатка.&lt;/p&gt;
						&lt;p&gt;А потом — вспышка ярости. Чистой, животной злобы на убийцу. На Куинси. Того, кто оборвал эту связь. Вырвал меня обратно. Закончил жизнь. &lt;span style=&quot;font-style: italic&quot;&gt;Существование&lt;/span&gt;.&lt;/p&gt;
						&lt;p&gt;Я пошатнулась. Мир качнулся. Вкус крови — не только из прокушенной щеки, но откуда-то глубже, из носа, из горла — залил рот.&lt;/p&gt;
						&lt;p&gt;Меня трясло. Мелко, противно, неконтролируемо. Зубы стучали. Но это была не только дрожь отвращения.&lt;/p&gt;
						&lt;p&gt;Это была дрожь от того, что &lt;span style=&quot;font-style: italic&quot;&gt;слишком понравилось&lt;/span&gt;. От того, что я почти хотела остаться.&lt;/p&gt;
						&lt;p&gt;Я посмотрела на Куинси. На моём лице — ничего. Мускулы не дрогнули. Но глаза&amp;#8230; глаза выдавали всё. Страх. Сожаление. Благодарность. И что-то ещё — тёмное, стыдливое, что я не смела назвать даже себе.&lt;/p&gt;
						&lt;p&gt;— &lt;strong&gt;&lt;span style=&quot;font-style: italic&quot;&gt;Спасибо, Куинси&lt;/span&gt;&lt;/strong&gt;, — мысль пришла сама. Тихая, почти невесомая. Словно я боялась, что если скажу громче — он услышит в моём голосе то самое, запретное.&lt;/p&gt;
						&lt;p&gt;Пальцы коснулись кобуры — с опозданием, виновато. Оружие было на месте. А я вместо того, чтобы стрелять, сжимала собственное горло &amp;#8211; теперь по-настоящему. И наслаждалась чужим прикосновением изнутри.&lt;/p&gt;
						&lt;p&gt;Я обхватила себя за плечи. Руки скрестились на груди, пальцы вцепились в плечи — слишком сильно, почти до боли. Я пыталась убаюкать ту, которая хотела ответить на зов.&lt;/p&gt;
						&lt;p&gt;— &lt;strong&gt;&lt;span style=&quot;font-style: italic&quot;&gt;Он был один&lt;/span&gt;&lt;/strong&gt;, — сказала я. Куинси? Себе? Не важно.&lt;/p&gt;
						&lt;p&gt;Самое главное, что я больше никого не слышала. Больше никого не чувствовала &amp;#8211; из тех, кто хотел бы завладеть моими мыслями, моим телом&amp;#8230; &lt;span style=&quot;font-style: italic&quot;&gt;Мной&lt;/span&gt;.&lt;/p&gt;
						&lt;p&gt;Меня всё ещё трясло. Отголоски чужой смерти — и того, сладкого, почти оргазмического провала — не отпускали. Я сжимала зубы, впивалась ногтями в ладони, проглатывала кровь.&lt;/p&gt;
						&lt;p&gt;— &lt;strong&gt;&lt;span style=&quot;font-style: italic&quot;&gt;Я снова замешкалась&lt;/span&gt;&lt;/strong&gt;, — усмехнулась жалко, продолжая ментальный диалог с Куинси. — Только не рассказывай Артуру. А то устроит для меня ещё одну пару — или две, или десять — изнурительных тренировок.&lt;/p&gt;
						&lt;p&gt;В этой просьбе — лишь часть шутки. Остальное — чистый, бесконтрольный страх.&lt;/p&gt;
						&lt;p&gt;Артур словно ждал. Ждал, когда я сдамся. Когда уступлю Техроту. Когда потеряю человечность — и меня, наконец, можно будет убить.&lt;/p&gt;
						&lt;p&gt;Как наш отец убил нашу бабушку.&lt;/p&gt;
						&lt;p&gt;Я тогда была маленькой, но помню. Помню её глаза — мутные, безумные, полные болезненного сумасшествия, которое, кажется, и я теперь ощущаю каждую секунду. Помню, как отец пришёл к ней в комнату с подушкой. Как она не кричала. Как он не плакал. Как после этого он почти три дня не выходил из гаража, а когда вышел — в его взгляде что-то сломалось навсегда.&lt;br /&gt;Он сказал тогда Артуру: &amp;quot;Иногда любовь — это умение вовремя остановить страдание&amp;quot;.&lt;br /&gt;Я слышала это. Я стояла за углом, зажав рот ладонью, и слышала каждое слово.&lt;/p&gt;
						&lt;p&gt;И теперь я знаю: Артур тоже это помнит. И он может решить, что обязан дать мне то же &amp;quot;успокоение&amp;quot;. Что любовь к сестре требует от него подушку — или пулю. Или укол, который с большим удовольствием подготовит для него Летти.&lt;/p&gt;
						&lt;p&gt;Он смотрит на меня и видит бабушку. Видит то, во что я могу превратиться. И ждёт.&lt;/p&gt;
						&lt;p&gt;Проверяет.&lt;/p&gt;
						&lt;p&gt;Ищет признаки.&lt;/p&gt;
						&lt;p&gt;Каждый раз, когда я замираю, каждый раз, когда мои глаза закатываются, когда я начинаю слышать не то, что нужно, — он делает шаг ближе. Сжимает челюсти. Кладёт руку на пистолет.&lt;/p&gt;
						&lt;p&gt;Он боится не за меня. Он боится меня. Того, чем я стану. И того, что ему придётся сделать.&lt;/p&gt;
						&lt;p&gt;Но я хотела жить. &lt;span style=&quot;font-style: italic&quot;&gt;Я не хотела успокоения&lt;/span&gt;.&lt;/p&gt;
						&lt;p&gt;Я хотела дышать — даже если каждый вдох даётся через боль. Я хотела чувствовать — даже если чувства разрывают меня на части. Я хотела быть рядом — с ним, с Куинси, с этим чёртовым отрядом, который стал мне семьёй.&lt;/p&gt;
						&lt;p&gt;Поэтому я пересилила себя.&lt;/p&gt;
						&lt;p&gt;Я сделала шаг. Потом другой. Подошла к поверженному Техроту — вплотную, почти вплотную, чтобы посмотреть ему в мёртвый кинескоп.&lt;/p&gt;
						&lt;p&gt;Он больше не шевелился. Лишь кончики его щупалец-рук ещё испускали слабые искры — бессильные, догорающие. Вблизи он пах отвратительно. Сгоревшая техника. Разлагающаяся органика. Но под этим — что-то ещё. То самое, сладкое, что манило меня минуту назад.&lt;/p&gt;
						&lt;p&gt;Я поморщилась. От запаха. От того, что в этих проводах, в этих платах, в этом мёртвом кинескопе ещё теплилось эхо желания.&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;font-style: italic&quot;&gt;&amp;quot;И это — моё будущее?&amp;quot;&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;Смотреть на него — всё равно что смотреться в кривое зеркало. Через год. Через два. Язык, который не мой. Горло, которое шепчет не моими словами. И это тягучее, запретное хотеть то, что должно вызывать только отвращение.&lt;/p&gt;
						&lt;p&gt;Я отошла к байку. Перекинула ногу, оседлала — сиденье было ещё тёплое. Оно сохранило тепло моих бёдер, вибрацию быстрой езды. Байк задрожал подо мной, и эта дрожь отдалась в позвоночнике, спустилась ниже, разлилась тёплой, почти стыдной истомой.&lt;/p&gt;
						&lt;p&gt;Я вдохнула запах бензина, металла, собственного пота — и мне полегчало. Потому что это — моё. Это — живое. Это — не Техрот.&lt;/p&gt;
						&lt;p&gt;Но граница стала тоньше. Я чувствую её. И боюсь, что в следующий раз — не выберусь.&lt;/p&gt;
						&lt;p&gt;Я поворачиваю голову к Куинси. Он всё ещё стоит с винтовкой. Смотрит на меня. В его взгляде — никакого отвращения. Только готовность. И что-то тёплое, от чего сердце бьётся чаще.&lt;/p&gt;
						&lt;p&gt;Он видел, как я тряслась. Видел кровь. И не высказал отвращения.&lt;/p&gt;
						&lt;p&gt;Я вспомнила его шутку про &amp;quot;геройский поцелуй&amp;quot;. Уголок губ дёрнулся.&lt;/p&gt;
						&lt;p&gt;Не сейчас. Не здесь, не с этим привкусом чужой смерти на языке.&lt;/p&gt;
						&lt;p&gt;Но я запомню.&lt;/p&gt;
						&lt;p&gt;—&lt;strong&gt;&lt;span style=&quot;font-style: italic&quot;&gt; Едем дальше?&lt;/span&gt;&lt;/strong&gt; — спросила я. Мысленно. Тихо. Уважительно не забираясь в его голову дальше, чем нужно.&amp;#160; При этом посмотрела вперёд — туда, где за разбитыми домами нас ждал дом престарелых, ждала миссия, ждала, возможно, смерть.&lt;/p&gt;
						&lt;p&gt;[arsenal type=&amp;quot;frame&amp;quot;]&lt;br /&gt;[an]Основной арсенал[/an]&lt;br /&gt;[aw]Сибарис, пистолет-дробовик Бронко, Тонбо.[/aw]&lt;br /&gt;[/arsenal]&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Eleanor Nightingale)</author>
			<pubDate>Sun, 07 Jun 2026 19:12:21 +0300</pubDate>
			<guid>https://warframe.f-rpg.me/viewtopic.php?pid=222#p222</guid>
		</item>
		<item>
			<title>Миссия Куинси и Элеоноры</title>
			<link>https://warframe.f-rpg.me/viewtopic.php?pid=207#p207</link>
			<description>&lt;p&gt;пр оаааааааааааааааааалп б&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Void)</author>
			<pubDate>Sat, 30 May 2026 23:39:40 +0300</pubDate>
			<guid>https://warframe.f-rpg.me/viewtopic.php?pid=207#p207</guid>
		</item>
		<item>
			<title>Snake</title>
			<link>https://warframe.f-rpg.me/viewtopic.php?pid=202#p202</link>
			<description>&lt;p&gt;[hideprofile][html]&amp;lt;!-- ТЕХНО-ЗМЕЙКА (ХЁЛЬВАНИЯ) v.6 - JSONP РЕЙТИНГ --&amp;gt;&lt;br /&gt;&amp;lt;div id=&amp;quot;hollvania-snake&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;div class=&amp;quot;snake-header&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;h2&amp;gt;&amp;#9889; TECHNO-CYTE SERPENT &amp;#9889;&amp;lt;/h2&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;div class=&amp;quot;stats&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;div&amp;gt;ЗАРАЖЕНИЕ: &amp;lt;span id=&amp;quot;currentScore&amp;quot;&amp;gt;0&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;div&amp;gt;РЕКОРД: &amp;lt;span id=&amp;quot;highScore&amp;quot;&amp;gt;0&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;/div&amp;gt;&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;lt;canvas id=&amp;quot;snakeCanvas&amp;quot; width=&amp;quot;400&amp;quot; height=&amp;quot;400&amp;quot;&amp;gt;&amp;lt;/canvas&amp;gt;&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;lt;div class=&amp;quot;button-panel&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;button id=&amp;quot;startBtn&amp;quot;&amp;gt;&amp;#128013; СТАРТ ИГРЫ&amp;lt;/button&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;button id=&amp;quot;gameOverBtn&amp;quot; disabled&amp;gt;&amp;#128128; GAME OVER&amp;lt;/button&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;button id=&amp;quot;resetBtn&amp;quot; disabled&amp;gt;&amp;#10227; НОВАЯ ИГРА&amp;lt;/button&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;/div&amp;gt;&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;lt;div id=&amp;quot;leaderboardBlock&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;h3&amp;gt;&amp;#127942; ПОСЛЕДНИЕ ОПЕРАТОРЫ &amp;#127942;&amp;lt;/h3&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;div id=&amp;quot;rssLeaderboard&amp;quot;&amp;gt;Загрузка рейтинга...&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;div class=&amp;quot;rssNote&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;https://warframe.f-rpg.me/export.php?type=rss&amp;amp;tid=30&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;&amp;#128225; лента заражений&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;/p&gt;
						&lt;p&gt;&amp;lt;style&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; #hollvania-snake {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; max-width: 500px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; margin: 20px auto;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; background: #202020;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; border: 2px solid #4d6885;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; border-radius: 16px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; padding: 20px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; font-family: &#039;Courier New&#039;, monospace;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; text-align: center;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; box-shadow: 0 0 15px rgba(77,104,133,0.5);&lt;br /&gt;&amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; .snake-header h2 {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; color: #ffc53a;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; text-shadow: 0 0 4px #ffc53a;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; margin: 0 0 10px;&lt;br /&gt;&amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; .stats {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; display: flex;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; justify-content: space-between;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; background: #2a2a2a;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; padding: 8px 15px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; border-radius: 8px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; margin-bottom: 15px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; color: #ddd;&lt;br /&gt;&amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; .stats span {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; color: #ffc53a;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; font-weight: bold;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; font-size: 1.3rem;&lt;br /&gt;&amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; canvas {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; background: #0a0a0e;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; border: 2px solid #4d6885;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; border-radius: 8px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; box-shadow: 0 0 8px #4d6885;&lt;br /&gt;&amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; .button-panel {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; margin-top: 15px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; display: flex;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; gap: 10px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; justify-content: center;&lt;br /&gt;&amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; button {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; background: #2a2a2a;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; border: 1px solid #4d6885;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; color: #ffc53a;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; padding: 6px 15px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; border-radius: 30px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; cursor: pointer;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; font-family: inherit;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; font-weight: bold;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; transition: 0.2s;&lt;br /&gt;&amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; button:hover:not(:disabled) {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; background: #584f67;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; border-color: #ffc53a;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; box-shadow: 0 0 6px #ffc53a;&lt;br /&gt;&amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; button:disabled {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; opacity: 0.5;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; cursor: not-allowed;&lt;br /&gt;&amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; #leaderboardBlock {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; margin-top: 20px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; border-top: 1px solid #584f67;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; padding-top: 12px;&lt;br /&gt;&amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; #leaderboardBlock h3 {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; color: #ffc53a;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; font-size: 1rem;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; margin-bottom: 8px;&lt;br /&gt;&amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; .rss-item {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; background: #1a1a1a;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; margin: 6px 0;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; padding: 6px 10px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; border-left: 3px solid #ffc53a;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; text-align: left;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; font-size: 0.8rem;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; color: #ccc;&lt;br /&gt;&amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; .rss-item strong {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; color: #ffc53a;&lt;br /&gt;&amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; .rssNote {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; font-size: 0.7rem;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; margin-top: 8px;&lt;br /&gt;&amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; .rssNote a {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; color: #4d6885;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; text-decoration: none;&lt;br /&gt;&amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; .game-message {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; background: #2a2a2a;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; color: #ffc53a;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; padding: 4px 12px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; border-radius: 20px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; margin-top: 10px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; font-size: 0.75rem;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; display: inline-block;&lt;br /&gt;&amp;#160; &amp;#160; }&lt;br /&gt;&amp;lt;/style&amp;gt;&lt;/p&gt;
						&lt;p&gt;&amp;lt;script&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; (function(){&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; // ---------- ИГРА ----------&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; const canvas = document.getElementById(&#039;snakeCanvas&#039;);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; const ctx = canvas.getContext(&#039;2d&#039;);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; const scoreSpan = document.getElementById(&#039;currentScore&#039;);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; const highScoreSpan = document.getElementById(&#039;highScore&#039;);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; const startBtn = document.getElementById(&#039;startBtn&#039;);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; const gameOverBtn = document.getElementById(&#039;gameOverBtn&#039;);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; const resetBtn = document.getElementById(&#039;resetBtn&#039;);&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; const GRID = 20;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; const CELL = canvas.width / GRID;&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; let snake = [&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; {x: 10, y: 10},&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; {x: 9, y: 10},&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; {x: 8, y: 10},&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; {x: 7, y: 10}&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; ];&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; let direction = &#039;RIGHT&#039;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; let nextDir = &#039;RIGHT&#039;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; let food = {x: 15, y: 10};&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; let score = 0;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; let best = 0;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; let gameActive = false;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; let gameInterval = null;&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; try {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; let saved = localStorage.getItem(&#039;snake_hollvania_best&#039;);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; if(saved &amp;amp;&amp;amp; !isNaN(parseInt(saved))) best = parseInt(saved);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; highScoreSpan.innerText = best;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; } catch(e) {}&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; function randomFood() {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; let free = false;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; let attempts = 0;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; let newFood = null;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; while(!free &amp;amp;&amp;amp; attempts &amp;lt; 2000) {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; let fx = Math.floor(Math.random() * GRID);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; let fy = Math.floor(Math.random() * GRID);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; if(!snake.some(s =&amp;gt; s.x === fx &amp;amp;&amp;amp; s.y === fy)) {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; newFood = {x: fx, y: fy};&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; free = true;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; attempts++;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; if(!newFood) {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; for(let i=0; i&amp;lt;GRID; i++) {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; for(let j=0; j&amp;lt;GRID; j++) {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; if(!snake.some(s =&amp;gt; s.x === i &amp;amp;&amp;amp; s.y === j)) {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; newFood = {x: i, y: j};&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; break;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; if(newFood) break;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; food = newFood;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; function draw() {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ctx.clearRect(0, 0, canvas.width, canvas.height);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ctx.strokeStyle = &#039;#4d6885&#039;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ctx.lineWidth = 0.5;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; for(let i=0; i&amp;lt;=GRID; i++) {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ctx.beginPath();&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ctx.moveTo(i*CELL, 0);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ctx.lineTo(i*CELL, canvas.height);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ctx.stroke();&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ctx.moveTo(0, i*CELL);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ctx.lineTo(canvas.width, i*CELL);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ctx.stroke();&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ctx.shadowBlur = 5;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ctx.shadowColor = &#039;#ffc53a&#039;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ctx.fillStyle = &#039;#ffc53a&#039;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ctx.beginPath();&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ctx.arc(food.x*CELL + CELL/2, food.y*CELL + CELL/2, CELL/2-2, 0, Math.PI*2);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ctx.fill();&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ctx.fillStyle = &#039;#584f67&#039;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ctx.beginPath();&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ctx.arc(food.x*CELL + CELL/2, food.y*CELL + CELL/2, CELL/4, 0, Math.PI*2);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ctx.fill();&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ctx.shadowBlur = 0;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; for(let i=0; i&amp;lt;snake.length; i++) {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; let s = snake[i];&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; let grad = ctx.createLinearGradient(s.x*CELL, s.y*CELL, (s.x+1)*CELL, (s.y+1)*CELL);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; grad.addColorStop(0, &#039;#4d6885&#039;);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; grad.addColorStop(1, &#039;#2c3e55&#039;);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ctx.fillStyle = grad;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ctx.fillRect(s.x*CELL, s.y*CELL, CELL-1, CELL-1);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; if(i === 0) {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ctx.strokeStyle = &#039;#ffc53a&#039;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ctx.lineWidth = 2;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ctx.strokeRect(s.x*CELL, s.y*CELL, CELL-1, CELL-1);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; let head = snake[0];&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ctx.fillStyle = &#039;#ff3333&#039;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ctx.beginPath();&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ctx.arc(head.x*CELL + CELL*0.7, head.y*CELL + CELL*0.3, 3, 0, Math.PI*2);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ctx.arc(head.x*CELL + CELL*0.3, head.y*CELL + CELL*0.3, 3, 0, Math.PI*2);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ctx.fill();&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; function updateScoreUI() {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; scoreSpan.innerText = score;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; if(score &amp;gt; best) {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; best = score;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; highScoreSpan.innerText = best;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; localStorage.setItem(&#039;snake_hollvania_best&#039;, best);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; function move() {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; if(!gameActive) return;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; direction = nextDir;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; let newHead = {...snake[0]};&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; switch(direction) {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; case &#039;RIGHT&#039;: newHead.x++; break;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; case &#039;LEFT&#039;:&amp;#160; newHead.x--; break;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; case &#039;UP&#039;:&amp;#160; &amp;#160; newHead.y--; break;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; case &#039;DOWN&#039;:&amp;#160; newHead.y++; break;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; let willEat = (newHead.x === food.x &amp;amp;&amp;amp; newHead.y === food.y);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; if(willEat) {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; snake.unshift(newHead);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; score++;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; updateScoreUI();&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; randomFood();&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; if(snake.length === GRID*GRID) { gameOver(true); return; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; } else {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; snake.unshift(newHead);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; snake.pop();&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; let collision = (newHead.x&amp;lt;0 || newHead.x&amp;gt;=GRID || newHead.y&amp;lt;0 || newHead.y&amp;gt;=GRID);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; if(!willEat) collision = collision || snake.slice(1).some(s =&amp;gt; s.x === newHead.x &amp;amp;&amp;amp; s.y === newHead.y);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; if(collision) { gameOver(false); return; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; draw();&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; function gameOver(win) {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; if(!gameActive) return;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; gameActive = false;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; if(gameInterval) clearInterval(gameInterval);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; gameInterval = null;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; let msg = document.createElement(&#039;div&#039;);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; msg.className = &#039;game-message&#039;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; msg.innerText = win ? &#039;&amp;#9760;&amp;#65039; ПОБЕДА? СБОЙ СИСТЕМЫ &amp;#9760;&amp;#65039;&#039; : &#039;&amp;#9760;&amp;#65039; ЗМЕЙ УНИЧТОЖЕН &amp;#9760;&amp;#65039;&#039;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; document.querySelector(&#039;.button-panel&#039;).after(msg);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; setTimeout(() =&amp;gt; msg.remove(), 3000);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; gameOverBtn.disabled = false;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; resetBtn.disabled = false;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; startBtn.disabled = false;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; window.lastSnakeScore = score;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; function startGame() {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; if(gameInterval) clearInterval(gameInterval);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; snake = [&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; {x: 10, y: 10},&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; {x: 9, y: 10},&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; {x: 8, y: 10},&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; {x: 7, y: 10}&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ];&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; direction = &#039;RIGHT&#039;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; nextDir = &#039;RIGHT&#039;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; score = 0;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; updateScoreUI();&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; randomFood();&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; gameActive = true;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; draw();&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; gameInterval = setInterval(() =&amp;gt; { move(); }, 150);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; startBtn.disabled = true;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; gameOverBtn.disabled = true;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; resetBtn.disabled = true;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; window.lastSnakeScore = 0;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; function resetAndRestart() { startGame(); }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; async function sendScoreToForum(scoreVal) {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; if(scoreVal === undefined) { alert(&amp;quot;Нет результата&amp;quot;); return; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; const message = `&lt;span style=&quot;color: #ffc53a&quot;&gt;&lt;strong&gt;&amp;#128013; TECHNO-CYTE SERPENT: ${scoreVal} очков&lt;/strong&gt;&lt;/span&gt;`;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; const postKey = document.querySelector(&#039;input[name=&amp;quot;my_post_key&amp;quot;]&#039;)?.value;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; if(!postKey) { alert(&amp;quot;Не удалось отправить, скопируйте: &amp;quot;+message); return; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; const tid = 30;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; const form = new URLSearchParams();&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; form.append(&#039;my_post_key&#039;, postKey);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; form.append(&#039;tid&#039;, tid);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; form.append(&#039;message&#039;, message);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; form.append(&#039;action&#039;, &#039;do_newreply&#039;);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; try {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; let res = await fetch(&#039;/newreply.php?tid=&#039;+tid, {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; method: &#039;POST&#039;,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; headers: { &#039;Content-Type&#039;: &#039;application/x-www-form-urlencoded&#039; },&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; body: form,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; credentials: &#039;same-origin&#039;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; });&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; if(res.ok) {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; alert(&amp;quot;Результат отправлен!&amp;quot;);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; loadLeaderboard();&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; } else alert(&amp;quot;Ошибка отправки&amp;quot;);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; } catch(e) { alert(&amp;quot;Ошибка сети&amp;quot;); }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; // ---------- РЕЙТИНГ ЧЕРЕЗ JSONP (export.php?type=js) ----------&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; function loadLeaderboard() {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; const container = document.getElementById(&#039;rssLeaderboard&#039;);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; if(!container) return;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; container.innerHTML = &amp;quot;Загрузка рейтинга...&amp;quot;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; // Удаляем старый скрипт&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; const oldScript = document.getElementById(&#039;jsonp-script&#039;);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; if(oldScript) oldScript.remove();&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; // Уникальное имя функции&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; const callbackName = &#039;jsonp_callback_&#039; + Date.now() + &#039;_&#039; + Math.floor(Math.random()*100000);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; window[callbackName] = function(data) {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; delete window[callbackName];&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; if (!data || !Array.isArray(data) || data.length === 0) {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; container.innerHTML = &#039;&amp;lt;div class=&amp;quot;rss-item&amp;quot;&amp;gt;Нет сообщений&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; return;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; let html = &#039;&#039;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; let count = 0;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; // Выводим последние 10 сообщений (первые в массиве — самые новые)&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; for (let i = 0; i &amp;lt; data.length &amp;amp;&amp;amp; count &amp;lt; 10; i++) {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; const item = data[i];&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; // Поля: author, subject, message, dateline (Unix timestamp)&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; const author = item.author || &#039;Аноним&#039;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; let title = item.subject || item.message;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; if (title &amp;amp;&amp;amp; title.length &amp;gt; 80) title = title.substring(0, 80) + &#039;&amp;#8230;&#039;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; const date = item.dateline ? new Date(item.dateline * 1000).toLocaleString() : &#039;&#039;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; html += `&amp;lt;div class=&amp;quot;rss-item&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;${escapeHtml(author)}&amp;lt;/strong&amp;gt;&amp;lt;br&amp;gt;${escapeHtml(title)}&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;${escapeHtml(date)}&amp;lt;/small&amp;gt;&amp;lt;/div&amp;gt;`;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; count++;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; container.innerHTML = html;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; };&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; const script = document.createElement(&#039;script&#039;);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; script.id = &#039;jsonp-script&#039;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; script.src = `https://warframe.f-rpg.me/export.php?type=js&amp;amp;tid=30&amp;amp;callback=${callbackName}`;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; script.onerror = function() {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; delete window[callbackName];&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; container.innerHTML = &#039;&amp;lt;div class=&amp;quot;rss-item&amp;quot;&amp;gt;Ошибка загрузки рейтинга&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; };&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; document.head.appendChild(script);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; function escapeHtml(str) {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; if(!str) return &#039;&#039;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; return str.replace(/[&amp;amp;&amp;lt;&amp;gt;]/g, m =&amp;gt; ({ &#039;&amp;amp;&#039;:&#039;&amp;amp;amp;&#039;, &#039;&amp;lt;&#039;:&#039;&amp;amp;lt;&#039;, &#039;&amp;gt;&#039;:&#039;&amp;amp;gt;&#039; }[m]));&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; window.addEventListener(&#039;load&#039;, () =&amp;gt; {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; loadLeaderboard();&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; setInterval(loadLeaderboard, 30000);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; startBtn.addEventListener(&#039;click&#039;, startGame);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; gameOverBtn.addEventListener(&#039;click&#039;, () =&amp;gt; {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; if(gameActive) { &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; gameActive = false; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; if(gameInterval) clearInterval(gameInterval); &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; gameOver(false); &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; } else if(window.lastSnakeScore &amp;gt; 0) {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; sendScoreToForum(window.lastSnakeScore);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; } else {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; alert(&amp;quot;Сыграйте сначала&amp;quot;);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; });&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; resetBtn.addEventListener(&#039;click&#039;, resetAndRestart);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; window.addEventListener(&#039;keydown&#039;, (e) =&amp;gt; {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; if(!gameActive) return;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; let k = e.key;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; if(k === &#039;ArrowUp&#039; &amp;amp;&amp;amp; direction !== &#039;DOWN&#039;) nextDir = &#039;UP&#039;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; else if(k === &#039;ArrowDown&#039; &amp;amp;&amp;amp; direction !== &#039;UP&#039;) nextDir = &#039;DOWN&#039;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; else if(k === &#039;ArrowLeft&#039; &amp;amp;&amp;amp; direction !== &#039;RIGHT&#039;) nextDir = &#039;LEFT&#039;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; else if(k === &#039;ArrowRight&#039; &amp;amp;&amp;amp; direction !== &#039;LEFT&#039;) nextDir = &#039;RIGHT&#039;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; e.preventDefault();&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; });&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; draw();&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; });&lt;br /&gt;&amp;#160; &amp;#160; })();&lt;br /&gt;&amp;lt;/script&amp;gt;[/html]&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Void)</author>
			<pubDate>Sat, 30 May 2026 20:49:37 +0300</pubDate>
			<guid>https://warframe.f-rpg.me/viewtopic.php?pid=202#p202</guid>
		</item>
		<item>
			<title>Snake</title>
			<link>https://warframe.f-rpg.me/viewtopic.php?pid=201#p201</link>
			<description>&lt;p&gt;[html][/html][hideprofile]&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Eleanor Nightingale)</author>
			<pubDate>Sat, 30 May 2026 20:48:35 +0300</pubDate>
			<guid>https://warframe.f-rpg.me/viewtopic.php?pid=201#p201</guid>
		</item>
		<item>
			<title>Тест</title>
			<link>https://warframe.f-rpg.me/viewtopic.php?pid=193#p193</link>
			<description>&lt;p&gt;[right]&lt;strong&gt;&lt;span style=&quot;font-style: italic&quot;&gt;&lt;em class=&quot;bbuline&quot;&gt;&lt;del&gt;[left][center][right][justify]&lt;/p&gt;&lt;div class=&quot;quote-box spoiler-box&quot;&gt;&lt;div onclick=&quot;$(this).toggleClass(&#039;visible&#039;); $(this).next().toggleClass(&#039;visible&#039;);&quot;&gt;Свернутый текст&lt;/div&gt;&lt;blockquote&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 35em&quot;&gt;&lt;pre&gt;[quote][hide][/hide][quote][quote][size=12][font=Trebuchet Ms][table layout=&amp;quot;fixed&amp;quot;]
[tr]
[td] [/td]
[td] [/td]
[td] [/td]
[td] [/td]
[td] [/td]
[/tr]
[tr]
[td] [/td]
[td] [/td]
[td] [/td]
[td] [/td]
[td] [/td]
[/tr]
[tr]
[td] [/td]
[td] [/td]
[td] [/td]
[td] [/td]
[td] [/td]
[/tr]
[tr]
[td] [/td]
[td] [/td]
[td] [/td]
[td] [/td]
[td] [/td]
[/tr]
[/table][dice]1d20[/dice][arsenal]
Оружие: 
Броня: 
Артефакты: 
[/arsenal][size=10][font=Arial Narrow][/font][/size][/font][/size][/quote][/quote][/quote]&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;[/justify][/right][/center][/left]&lt;/del&gt;&lt;/em&gt;&lt;/span&gt;&lt;/strong&gt;[/right]&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Void)</author>
			<pubDate>Sat, 30 May 2026 00:06:57 +0300</pubDate>
			<guid>https://warframe.f-rpg.me/viewtopic.php?pid=193#p193</guid>
		</item>
		<item>
			<title>Личное дело: Войд | А | RP</title>
			<link>https://warframe.f-rpg.me/viewtopic.php?pid=192#p192</link>
			<description>&lt;p&gt;Хаха&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Void)</author>
			<pubDate>Fri, 29 May 2026 21:57:46 +0300</pubDate>
			<guid>https://warframe.f-rpg.me/viewtopic.php?pid=192#p192</guid>
		</item>
		<item>
			<title>Журнал теневых операций</title>
			<link>https://warframe.f-rpg.me/viewtopic.php?pid=186#p186</link>
			<description>&lt;p&gt;r&lt;/p&gt;
						&lt;p&gt;[стиль: Void]&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Void)</author>
			<pubDate>Tue, 26 May 2026 12:16:38 +0300</pubDate>
			<guid>https://warframe.f-rpg.me/viewtopic.php?pid=186#p186</guid>
		</item>
		<item>
			<title>Тестовая игровая тема</title>
			<link>https://warframe.f-rpg.me/viewtopic.php?pid=180#p180</link>
			<description>&lt;div class=&quot;quote-box answer-box&quot;&gt;&lt;cite&gt;LOG_DECRYPTED написал(а):&lt;/cite&gt;&lt;blockquote&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 15em&quot;&gt;&lt;pre&gt;
&amp;gt;&amp;gt;&amp;gt; SOURCE: TERMINAL_404
&amp;gt;&amp;gt;&amp;gt; ACTION: ASSET_EXTRACTION
&amp;gt;&amp;gt;&amp;gt; TARGET: Void
&amp;gt;&amp;gt;&amp;gt; ITEM:   Акариус
&amp;gt;&amp;gt;&amp;gt; STATUS: SECURED
&amp;gt;&amp;gt;&amp;gt; ID:     #VOID-210133
&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;</description>
			<author>mybb@mybb.ru (Quincy Isaacs)</author>
			<pubDate>Sat, 23 May 2026 19:14:43 +0300</pubDate>
			<guid>https://warframe.f-rpg.me/viewtopic.php?pid=180#p180</guid>
		</item>
		<item>
			<title>Личное дело</title>
			<link>https://warframe.f-rpg.me/viewtopic.php?pid=122#p122</link>
			<description>&lt;p&gt;&lt;span class=&quot;highlight-text&quot;&gt;Социальные связи&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;ACTIVITY&quot; id=&quot;block-1&quot;&gt;&lt;div class=&quot;SOCIAL&quot; id=&quot;block-2&quot;&gt;&lt;p&gt;&lt;strong&gt;СОЦИАЛЬНЫЕ СВЯЗИ&lt;/strong&gt;&lt;/p&gt;
						&lt;p&gt;Войд::&lt;br /&gt;конфликт: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=1#p1&quot;&gt;Тестовое сообщение&lt;/a&gt;&lt;br /&gt;доверие: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=1#p2&quot;&gt;Тестовое сообщение&lt;/a&gt;&lt;/p&gt;
						&lt;p&gt;Виспер::&lt;br /&gt;угроза: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=1#p1&quot;&gt;Тестовое сообщение&lt;/a&gt;&lt;br /&gt;дар: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=1#p2&quot;&gt;Тестовое сообщение&lt;/a&gt;&lt;/p&gt;
						&lt;p&gt;Элис::&lt;br /&gt;спасение: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=25#p135&quot;&gt;https://warframe.f-rpg.me/viewtopic.php?id=25#p135&lt;/a&gt;&lt;br /&gt;пари: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=30#p150&quot;&gt;https://warframe.f-rpg.me/viewtopic.php?id=30#p150&lt;/a&gt;&lt;br /&gt;флирт: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=15#p150&quot;&gt;[Ополчение] Марианна: Потерянный протофрейм&lt;/a&gt;&lt;br /&gt;флирт: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=15#p150&quot;&gt;[Ополчение] Марианна: Потерянный протофрейм&lt;/a&gt;&lt;br /&gt;флирт: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=15#p150&quot;&gt;[Ополчение] Марианна: Потерянный протофрейм&lt;/a&gt;&lt;br /&gt;флирт: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=15#p150&quot;&gt;[Ополчение] Марианна: Потерянный протофрейм&lt;/a&gt;&lt;br /&gt;флирт: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=15#p150&quot;&gt;[Ополчение] Марианна: Потерянный протофрейм&lt;/a&gt;&lt;br /&gt;флирт: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=15#p150&quot;&gt;[Ополчение] Марианна: Потерянный протофрейм&lt;/a&gt;&lt;br /&gt;близость: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=15#p150&quot;&gt;[Ополчение] Марианна: Потерянный протофрейм&lt;/a&gt;&lt;br /&gt;близость: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=15#p150&quot;&gt;[Ополчение] Марианна: Потерянный протофрейм&lt;/a&gt;&lt;br /&gt;близость: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=15#p150&quot;&gt;[Ополчение] Марианна: Потерянный протофрейм&lt;/a&gt;&lt;br /&gt;близость: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=15#p150&quot;&gt;[Ополчение] Марианна: Потерянный протофрейм&lt;/a&gt;&lt;br /&gt;близость: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=15#p150&quot;&gt;[Ополчение] Марианна: Потерянный протофрейм&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;[hideprofile]&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Void)</author>
			<pubDate>Fri, 16 Jan 2026 12:05:48 +0300</pubDate>
			<guid>https://warframe.f-rpg.me/viewtopic.php?pid=122#p122</guid>
		</item>
		<item>
			<title>[Ополчение] Марианна: Потерянный протофрейм</title>
			<link>https://warframe.f-rpg.me/viewtopic.php?pid=120#p120</link>
			<description>&lt;p&gt;меланхолия&lt;/p&gt;
						&lt;p&gt;[npc-face: Мария Петрова]&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Void)</author>
			<pubDate>Wed, 14 Jan 2026 12:38:52 +0300</pubDate>
			<guid>https://warframe.f-rpg.me/viewtopic.php?pid=120#p120</guid>
		</item>
		<item>
			<title>Личное досье (тест)</title>
			<link>https://warframe.f-rpg.me/viewtopic.php?pid=94#p94</link>
			<description>&lt;p&gt;&lt;span class=&quot;highlight-text&quot;&gt;ЛИЧНОЕ ДЕЛО&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;ACTIVITY&quot; id=&quot;block-3&quot;&gt;&lt;p&gt;[2025-12-06]&lt;/p&gt;&lt;div class=&quot;prsnlinfo&quot; id=&quot;block-10&quot;&gt;&lt;/div&gt;&lt;div class=&quot;MASTER-RANK&quot; id=&quot;block-4&quot;&gt;&lt;p&gt;&lt;strong&gt;РАНГ МАСТЕРСТВА&lt;/strong&gt;&lt;/p&gt;
						&lt;p&gt;Основное оружие::&lt;br /&gt;&lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=9#p46&quot;&gt;Тест личной карточки&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=9#p47&quot;&gt;Тест личной карточки&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=9#p48&quot;&gt;Тест личной карточки&lt;/a&gt;&lt;/p&gt;
						&lt;p&gt;Вторичное оружие::&lt;br /&gt;&lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=9#p43&quot;&gt;Тест личной карточки&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=9#p44&quot;&gt;Тест личной карточки&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=9#p41&quot;&gt;Тест личной карточки&lt;/a&gt;&lt;br /&gt;&amp;#160; &lt;br /&gt;Оружие ближнего боя::&lt;br /&gt;&lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=9#p34&quot;&gt;Тест личной карточки&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=9#p35&quot;&gt;Тест личной карточки&lt;/a&gt;&lt;/p&gt;
						&lt;p&gt;&amp;#160; &lt;br /&gt;Способности::&lt;br /&gt;&lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=9#p31&quot;&gt;Тест личной карточки&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=9#p31&quot;&gt;Тест личной карточки&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;INVENTORY&quot; id=&quot;block-5&quot;&gt;&lt;p&gt;&lt;strong&gt;ИНВЕНТАРЬ&lt;/strong&gt;&lt;/p&gt;
						&lt;p&gt;Акцельтра: стартовое вооружение&lt;br /&gt;Бронко: купил за 20 в магазине&lt;br /&gt;Бассоцист: купил у Нигана за 50&lt;br /&gt;Катана: продал Лиззи за 40&lt;br /&gt;Токсики: потерял в битве за аванпост&lt;br /&gt;Акариус: украл у Нигана&lt;br /&gt;Цист: украл у Нигана&lt;br /&gt;Споромёт: стартовое вооружение&lt;br /&gt;Споротрикс: купил за 25&lt;br /&gt;Споромёт: продал Нигану за 50000&lt;br /&gt;Катана: украла Лиззи&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;ACHIEVEMENTS&quot; id=&quot;block-6&quot;&gt;&lt;p&gt;&lt;strong&gt;ДОСТИЖЕНИЯ&lt;/strong&gt;&lt;/p&gt;
						&lt;p&gt;Первопост: написать первый пост:: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=9#p23&quot;&gt;Тест личной карточки&lt;/a&gt;&lt;br /&gt;Хитрец: обмануть другого персонажа:: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=9#p23&quot;&gt;Тест личной карточки&lt;/a&gt;&lt;br /&gt;Любитель котиков: погладить котика:: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=9#p23&quot;&gt;Тест личной карточки&lt;/a&gt;&lt;br /&gt;Воин: победить в сложном бою:: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=9#p22&quot;&gt;Тест личной карточки&lt;/a&gt;&lt;br /&gt;Исследователь: открыть новую территорию:: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=9#p23&quot;&gt;Тест личной карточки&lt;/a&gt;&lt;br /&gt;Дипломат: успешно провести переговоры:: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=9#p23&quot;&gt;Тест личной карточки&lt;/a&gt;&lt;br /&gt;Мастер: достичь максимального уровня навыка:: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=9#p14&quot;&gt;Тест личной карточки&lt;/a&gt;&lt;br /&gt;Новатор: первым найти решение:: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=9#p23&quot;&gt;Тест личной карточки&lt;/a&gt;&lt;br /&gt;Защитник: защитить слабого:: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=9#p23&quot;&gt;Тест личной карточки&lt;/a&gt;&lt;br /&gt;Целитель: вылечить раненого:: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=9#p23&quot;&gt;Тест личной карточки&lt;/a&gt;&lt;br /&gt;Путешественник: посетить все локации:: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=9#p23&quot;&gt;Тест личной карточки&lt;/a&gt;&lt;br /&gt;Коллекционер: собрать все предметы коллекции:: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=9#p23&quot;&gt;Тест личной карточки&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;SOCIAL&quot; id=&quot;block-7&quot;&gt;&lt;p&gt;&lt;strong&gt;СОЦИАЛЬНЫЕ СВЯЗИ&lt;/strong&gt;&lt;/p&gt;
						&lt;p&gt;Войд::&lt;br /&gt;конфликт: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=1#p1&quot;&gt;Тестовое сообщение&lt;/a&gt;&lt;br /&gt;доверие: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=1#p2&quot;&gt;Тестовое сообщение&lt;/a&gt;&lt;/p&gt;
						&lt;p&gt;Виспер::&lt;br /&gt;угроза: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=1#p1&quot;&gt;Тестовое сообщение&lt;/a&gt;&lt;br /&gt;дар: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=1#p2&quot;&gt;Тестовое сообщение&lt;/a&gt;&lt;/p&gt;
						&lt;p&gt;Элис::&lt;br /&gt;спасение: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=25#p135&quot;&gt;https://warframe.f-rpg.me/viewtopic.php?id=25#p135&lt;/a&gt;&lt;br /&gt;пари: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=30#p150&quot;&gt;https://warframe.f-rpg.me/viewtopic.php?id=30#p150&lt;/a&gt;&lt;br /&gt;флирт: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=15#p150&quot;&gt;[Ополчение] Марианна: Потерянный протофрейм&lt;/a&gt;&lt;br /&gt;флирт: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=15#p150&quot;&gt;[Ополчение] Марианна: Потерянный протофрейм&lt;/a&gt;&lt;br /&gt;флирт: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=15#p150&quot;&gt;[Ополчение] Марианна: Потерянный протофрейм&lt;/a&gt;&lt;br /&gt;флирт: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=15#p150&quot;&gt;[Ополчение] Марианна: Потерянный протофрейм&lt;/a&gt;&lt;br /&gt;флирт: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=15#p150&quot;&gt;[Ополчение] Марианна: Потерянный протофрейм&lt;/a&gt;&lt;br /&gt;флирт: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=15#p150&quot;&gt;[Ополчение] Марианна: Потерянный протофрейм&lt;/a&gt;&lt;br /&gt;близость: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=15#p150&quot;&gt;[Ополчение] Марианна: Потерянный протофрейм&lt;/a&gt;&lt;br /&gt;близость: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=15#p150&quot;&gt;[Ополчение] Марианна: Потерянный протофрейм&lt;/a&gt;&lt;br /&gt;близость: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=15#p150&quot;&gt;[Ополчение] Марианна: Потерянный протофрейм&lt;/a&gt;&lt;br /&gt;близость: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=15#p150&quot;&gt;[Ополчение] Марианна: Потерянный протофрейм&lt;/a&gt;&lt;br /&gt;близость: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=15#p150&quot;&gt;[Ополчение] Марианна: Потерянный протофрейм&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;FACTIONS&quot; id=&quot;block-8&quot;&gt;
						&lt;p&gt;Ополчение::&lt;br /&gt;О1225-01 &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=65#p2&quot;&gt;https://warframe.f-rpg.me/viewtopic.php?id=65#p2&lt;/a&gt;&lt;br /&gt;О1225-02 &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=66#p2&quot;&gt;https://warframe.f-rpg.me/viewtopic.php?id=66#p2&lt;/a&gt;&lt;/p&gt;
						&lt;p&gt;Аутсайдеры::&lt;br /&gt;А1225-01 &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=67#p2&quot;&gt;https://warframe.f-rpg.me/viewtopic.php?id=67#p2&lt;/a&gt;&lt;br /&gt;Босс: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=65#p2&quot;&gt;https://warframe.f-rpg.me/viewtopic.php?id=65#p2&lt;/a&gt;&lt;br /&gt;Босс: &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=65#p3&quot;&gt;https://warframe.f-rpg.me/viewtopic.php?id=65#p3&lt;/a&gt;&lt;/p&gt;
						&lt;p&gt;Скальдра::&lt;/p&gt;
						&lt;p&gt;Ночная волна::&lt;br /&gt;Н1225-01 &lt;a href=&quot;https://warframe.f-rpg.me/viewtopic.php?id=69#p2&quot;&gt;https://warframe.f-rpg.me/viewtopic.php?id=69#p2&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;SIGNATURES&quot; id=&quot;block-9&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;[hideprofile]&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Void)</author>
			<pubDate>Wed, 17 Dec 2025 20:47:43 +0300</pubDate>
			<guid>https://warframe.f-rpg.me/viewtopic.php?pid=94#p94</guid>
		</item>
		<item>
			<title>[Ополчение] Капитан Марков: эвакуация выживших тест тест тест тест тес</title>
			<link>https://warframe.f-rpg.me/viewtopic.php?pid=89#p89</link>
			<description>&lt;p&gt;Vvvv&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Void)</author>
			<pubDate>Tue, 16 Dec 2025 20:36:59 +0300</pubDate>
			<guid>https://warframe.f-rpg.me/viewtopic.php?pid=89#p89</guid>
		</item>
		<item>
			<title>Рынок</title>
			<link>https://warframe.f-rpg.me/viewtopic.php?pid=62#p62</link>
			<description>&lt;p&gt;Тестовое сообщение??&lt;br /&gt;Бросок: 1d20: 19&lt;/p&gt;&lt;div class=&quot;arsenal&quot; id=&quot;block-11&quot;&gt;&lt;p&gt;Мой арсенал&lt;/p&gt;&lt;/div&gt;</description>
			<author>mybb@mybb.ru (Void)</author>
			<pubDate>Mon, 15 Dec 2025 11:00:09 +0300</pubDate>
			<guid>https://warframe.f-rpg.me/viewtopic.php?pid=62#p62</guid>
		</item>
		<item>
			<title>Переулок</title>
			<link>https://warframe.f-rpg.me/viewtopic.php?pid=57#p57</link>
			<description>&lt;p&gt;.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Void)</author>
			<pubDate>Mon, 15 Dec 2025 02:22:04 +0300</pubDate>
			<guid>https://warframe.f-rpg.me/viewtopic.php?pid=57#p57</guid>
		</item>
		<item>
			<title>Тестовая игровая тема</title>
			<link>https://warframe.f-rpg.me/viewtopic.php?pid=55#p55</link>
			<description>&lt;p&gt;Тестовое сообщение на форуме.&lt;/p&gt;
						&lt;p&gt;[Negan_доверие]&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Void)</author>
			<pubDate>Tue, 09 Dec 2025 12:11:50 +0300</pubDate>
			<guid>https://warframe.f-rpg.me/viewtopic.php?pid=55#p55</guid>
		</item>
		<item>
			<title>Тест личной карточки</title>
			<link>https://warframe.f-rpg.me/viewtopic.php?pid=51#p51</link>
			<description>&lt;p&gt;&lt;strong&gt;Тёмный клинок&lt;/strong&gt;&lt;br /&gt;&lt;img class=&quot;postimg&quot; loading=&quot;lazy&quot; src=&quot;https://warframe.3dn.ru/icons/250px-DarkDagger.png&quot; alt=&quot;https://warframe.3dn.ru/icons/250px-DarkDagger.png&quot; /&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic&quot;&gt;Категория:&lt;/span&gt; Основное оружие&lt;br /&gt;&lt;span style=&quot;font-style: italic&quot;&gt;Редкость:&lt;/span&gt; Штамповка&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Void)</author>
			<pubDate>Fri, 14 Nov 2025 15:17:26 +0300</pubDate>
			<guid>https://warframe.f-rpg.me/viewtopic.php?pid=51#p51</guid>
		</item>
		<item>
			<title>Карточка героя</title>
			<link>https://warframe.f-rpg.me/viewtopic.php?pid=49#p49</link>
			<description>&lt;div class=&quot;herocard&quot; id=&quot;block-12&quot;&gt;&lt;/div&gt;</description>
			<author>mybb@mybb.ru (Void)</author>
			<pubDate>Fri, 14 Nov 2025 10:54:11 +0300</pubDate>
			<guid>https://warframe.f-rpg.me/viewtopic.php?pid=49#p49</guid>
		</item>
		<item>
			<title>Скрипт сезона</title>
			<link>https://warframe.f-rpg.me/viewtopic.php?pid=35#p35</link>
			<description>&lt;p&gt;[html]&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;&amp;lt;html lang=&amp;quot;ru&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;meta charset=&amp;quot;UTF-8&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;title&amp;gt;Warframe Cards - Настольная игра&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;style&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; * {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; margin: 0;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; padding: 0;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; box-sizing: border-box;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; font-family: &#039;Segoe UI&#039;, Tahoma, Geneva, Verdana, sans-serif;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; body {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; color: #fff;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; padding: 20px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; min-height: 100vh;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; .container {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; max-width: 1200px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; margin: 0 auto;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; .header {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; text-align: center;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; margin-bottom: 40px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; padding: 20px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; background: rgba(0, 0, 0, 0.3);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; border-radius: 15px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; border: 2px solid #00ffff;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; .filters {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; display: flex;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; justify-content: center;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; gap: 15px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; margin-bottom: 30px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; flex-wrap: wrap;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; .filter-btn {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; padding: 10px 20px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; background: #2d3047;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; color: #fff;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; border: 1px solid #00ffff;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; border-radius: 25px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; cursor: pointer;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; transition: all 0.3s ease;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; .filter-btn:hover, .filter-btn.active {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; background: #00ffff;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; color: #000;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; .warframe-grid {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; display: grid;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; gap: 25px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; .warframe-card {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; background: linear-gradient(145deg, #2d3047 0%, #1b1b2f 100%);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; border-radius: 20px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; padding: 20px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; border: 2px solid #00ffff;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; box-shadow: 0 10px 30px rgba(0, 255, 255, 0.1);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; transition: transform 0.3s ease, box-shadow 0.3s ease;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; position: relative;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; overflow: hidden;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; .warframe-card:hover {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; transform: translateY(-10px);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; box-shadow: 0 15px 40px rgba(0, 255, 255, 0.2);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; .warframe-card::before {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; content: &#039;&#039;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; position: absolute;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; top: 0;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; left: 0;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; right: 0;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; height: 4px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; background: linear-gradient(90deg, #ff6b6b, #4ecdc4, #45b7d1, #96ceb4, #ffeaa7);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; .card-header {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; display: flex;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; align-items: center;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; margin-bottom: 20px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; .warframe-image {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; width: 80px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; height: 80px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; border-radius: 50%;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; border: 2px solid #00ffff;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; margin-right: 15px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; object-fit: cover;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; .warframe-info {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; flex: 1;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; .warframe-name {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; font-size: 1.5em;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; font-weight: bold;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; margin-bottom: 5px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; color: #00ffff;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; .warframe-roles {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; display: flex;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; gap: 8px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; flex-wrap: wrap;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; .role-tag {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; background: rgba(0, 255, 255, 0.2);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; padding: 4px 10px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; border-radius: 15px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; font-size: 0.8em;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; border: 1px solid #00ffff;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; .abilities-section {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; margin-top: 20px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; .section-title {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; font-size: 1.1em;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; margin-bottom: 15px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; color: #ff6b6b;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; border-bottom: 1px solid #444;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; padding-bottom: 5px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; .ability {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; background: rgba(255, 255, 255, 0.05);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; border-radius: 10px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; padding: 12px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; margin-bottom: 10px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; border-left: 3px solid #4ecdc4;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; .ability.passive {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; border-left-color: #ffeaa7;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; .ability-name {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; font-weight: bold;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; color: #4ecdc4;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; margin-bottom: 5px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; display: flex;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; align-items: center;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; gap: 8px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; .ability.passive .ability-name {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; color: #ffeaa7;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; .ability-description {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; font-size: 0.9em;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; line-height: 1.4;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; color: #ccc;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; .ability-icon {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; width: 20px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; height: 20px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; background: #444;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; border-radius: 4px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; display: inline-block;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; .card-footer {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; margin-top: 15px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; padding-top: 15px;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; border-top: 1px solid #444;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; font-size: 0.8em;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; color: #888;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; text-align: center;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; @media (max-width: 768px) {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; .warframe-grid {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; grid-template-columns: 1fr;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; .filters {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; flex-direction: column;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; align-items: center;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;/style&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;div class=&amp;quot;container&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;div class=&amp;quot;header&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;h1&amp;gt;WARFRAME CARDS&amp;lt;/h1&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;p&amp;gt;Коллекция карточек для настольной ролевой игры&amp;lt;/p&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;/div&amp;gt;&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;div class=&amp;quot;filters&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;button class=&amp;quot;filter-btn active&amp;quot; data-role=&amp;quot;all&amp;quot;&amp;gt;Все&amp;lt;/button&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;button class=&amp;quot;filter-btn&amp;quot; data-role=&amp;quot;damage&amp;quot;&amp;gt;Урон&amp;lt;/button&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;button class=&amp;quot;filter-btn&amp;quot; data-role=&amp;quot;support&amp;quot;&amp;gt;Поддержка&amp;lt;/button&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;button class=&amp;quot;filter-btn&amp;quot; data-role=&amp;quot;survival&amp;quot;&amp;gt;Выживание&amp;lt;/button&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;button class=&amp;quot;filter-btn&amp;quot; data-role=&amp;quot;stealth&amp;quot;&amp;gt;Скрытность&amp;lt;/button&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;button class=&amp;quot;filter-btn&amp;quot; data-role=&amp;quot;crowdcontrol&amp;quot;&amp;gt;Контроль&amp;lt;/button&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;/div&amp;gt;&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;div class=&amp;quot;warframe-grid&amp;quot; id=&amp;quot;warframeGrid&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;!-- Карточки будут добавляться через JavaScript --&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;/div&amp;gt;&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;lt;script&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; // Данные варфреймов&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; const warframesData = [&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; name: &amp;quot;Atlas&amp;quot;,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; image: &amp;quot;https://content.warframe.com/PublicExport/Lotus/Interface/Icons/StoreIcons/Warframes/Atlas.png&amp;quot;,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; roles: [&amp;quot;damage&amp;quot;, &amp;quot;survival&amp;quot;],&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; abilities: {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; passive: &amp;quot;Иммунитет к отбрасыванию при нахождении на земле. Поверженные окаменевшие враги оставляют Обломки, которые лечат Атласа или дают ему бонус к броне.&amp;quot;,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; active: [&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; { name: &amp;quot;Оползень&amp;quot;, description: &amp;quot;Мощный повторяющийся удар, который устремляется вперед и наносит урон по площади.&amp;quot; },&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; { name: &amp;quot;Тектоника&amp;quot;, description: &amp;quot;Создает каменную стену, блокирующую вражеский огонь. Можно зарядить, чтобы скатить ее вперед как валун.&amp;quot; },&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; { name: &amp;quot;Окаменение&amp;quot;, description: &amp;quot;Атака конусом, превращающая врагов в камень, делая их уязвимыми и позволяя оставлять Обломки.&amp;quot; },&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; { name: &amp;quot;Грохот&amp;quot;, description: &amp;quot;Призывает двух элементалей камня для сражения за Атласа.&amp;quot; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ]&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; },&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; name: &amp;quot;Banshee&amp;quot;,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; image: &amp;quot;https://content.warframe.com/PublicExport/Lotus/Interface/Icons/StoreIcons/Warframes/Banshee.png&amp;quot;,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; roles: [&amp;quot;crowdcontrol&amp;quot;],&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; abilities: {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; passive: &amp;quot;Все оружие Банши работает бесшумно, не предупреждая врагов при стрельбе.&amp;quot;,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; active: [&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; { name: &amp;quot;Звуковой удар&amp;quot;, description: &amp;quot;Излучает звуковую ударную волну, которая отбрасывает врагов в широком конусе.&amp;quot; },&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; { name: &amp;quot;Сонар&amp;quot;, description: &amp;quot;Обнаруживает уязвимые места врагов, которые умножают урон при попадании.&amp;quot; },&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; { name: &amp;quot;Тишина&amp;quot;, description: &amp;quot;Создает область, которая оглушает врагов, входящих в нее, и заглушает все звуки оружия.&amp;quot; },&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; { name: &amp;quot;Звуковое землетрясение&amp;quot;, description: &amp;quot;Создает ударные волны, наносящие урон и оглушающие всех врагов на большой площади.&amp;quot; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ]&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; },&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; name: &amp;quot;Frost&amp;quot;,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; image: &amp;quot;https://content.warframe.com/PublicExport/Lotus/Interface/Icons/StoreIcons/Warframes/Frost.png&amp;quot;,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; roles: [&amp;quot;crowdcontrol&amp;quot;, &amp;quot;survival&amp;quot;],&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; abilities: {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; passive: &amp;quot;Способности имеют увеличенную длительность эффекта статуса Холод. Враги с эффектом Холода в радиусе аффинити дают Фросту бонус к броне.&amp;quot;,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; active: [&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; { name: &amp;quot;Замораживание&amp;quot;, description: &amp;quot;Запускает ледяной снаряд, который замораживает единственную цель на месте.&amp;quot; },&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; { name: &amp;quot;Ледяная волна&amp;quot;, description: &amp;quot;Посылает волну острого льда вперед, нанося урон и замедляя врагов на широком пути.&amp;quot; },&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; { name: &amp;quot;Снежный шар&amp;quot;, description: &amp;quot;Создает защитную сферу льда, блокирующую вражеские выстрелы. Кратко неуязвим при создании.&amp;quot; },&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; { name: &amp;quot;Лавина&amp;quot;, description: &amp;quot;Выпускает волну мороза, которая наносит урон всем ближайшим врагам и снижает их броню.&amp;quot; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ]&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; },&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; name: &amp;quot;Volt&amp;quot;,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; image: &amp;quot;https://content.warframe.com/PublicExport/Lotus/Interface/Icons/StoreIcons/Warframes/Volt.png&amp;quot;,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; roles: [&amp;quot;damage&amp;quot;, &amp;quot;support&amp;quot;],&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; abilities: {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; passive: &amp;quot;Накопитель заряда: накапливает статическое электричество при движении, добавляя бонусный урон Электричеством к следующей атаке.&amp;quot;,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; active: [&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; { name: &amp;quot;Шок&amp;quot;, description: &amp;quot;Запускает снаряд, который передает урон Электричеством нескольким ближайшим врагам.&amp;quot; },&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; { name: &amp;quot;Скорость&amp;quot;, description: &amp;quot;Заряжает Вольта и ближайших союзников, значительно увеличивая их скорость передвижения и атаки.&amp;quot; },&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; { name: &amp;quot;Электрический щит&amp;quot;, description: &amp;quot;Развертывает энергетический барьер, блокирующий вражеский огонь и усиливающий выстрелы, произведенные сквозь него.&amp;quot; },&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; { name: &amp;quot;Разряд&amp;quot;, description: &amp;quot;Выпускает мощное электрическое поле, которое оглушает и наносит урон врагам на большой площади.&amp;quot; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ]&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; },&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; name: &amp;quot;Mag&amp;quot;,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; image: &amp;quot;https://content.warframe.com/PublicExport/Lotus/Interface/Icons/StoreIcons/Warframes/Mag.png&amp;quot;,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; roles: [&amp;quot;crowdcontrol&amp;quot;],&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; abilities: {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; passive: &amp;quot;Автоматически притягивает предметы в радиусе 8 метров к себе.&amp;quot;,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; active: [&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; { name: &amp;quot;Притяжение&amp;quot;, description: &amp;quot;Создает магнитный вихрь, который отбрасывает и притягивает врагов к Мэг.&amp;quot; },&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; { name: &amp;quot;Намагничивание&amp;quot;, description: &amp;quot;Захватывает цель в магнитном поле, которое захватывает снаряды и наносит периодический урон.&amp;quot; },&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; { name: &amp;quot;Поляризация&amp;quot;, description: &amp;quot;Излучает волну, которая истощает щиты и броню врагов, одновременно восстанавливая щиты союзников.&amp;quot; },&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; { name: &amp;quot;Раздавить&amp;quot;, description: &amp;quot;Телекинетически поднимает врагов, нанося массовый Магнитный урон и снимая их броню.&amp;quot; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ]&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; ];&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; // Функция для создания карточки варфрейма&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; function createWarframeCard(warframe) {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; const card = document.createElement(&#039;div&#039;);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; card.className = &#039;warframe-card&#039;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; card.dataset.roles = warframe.roles.join(&#039; &#039;);&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; const rolesHTML = warframe.roles.map(role =&amp;gt; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; `&amp;lt;span class=&amp;quot;role-tag&amp;quot;&amp;gt;${getRoleName(role)}&amp;lt;/span&amp;gt;`&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ).join(&#039;&#039;);&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; const abilitiesHTML = warframe.abilities.active.map((ability, index) =&amp;gt; `&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;div class=&amp;quot;ability&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;div class=&amp;quot;ability-name&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;span class=&amp;quot;ability-icon&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ${index + 1}. ${ability.name}&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;div class=&amp;quot;ability-description&amp;quot;&amp;gt;${ability.description}&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; `).join(&#039;&#039;);&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; card.innerHTML = `&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;div class=&amp;quot;card-header&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;img src=&amp;quot;${warframe.image}&amp;quot; alt=&amp;quot;${warframe.name}&amp;quot; class=&amp;quot;warframe-image&amp;quot; onerror=&amp;quot;this.src=&#039;https://via.placeholder.com/80x80/2d3047/00ffff?text=?&#039;&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;div class=&amp;quot;warframe-info&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;div class=&amp;quot;warframe-name&amp;quot;&amp;gt;${warframe.name}&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;div class=&amp;quot;warframe-roles&amp;quot;&amp;gt;${rolesHTML}&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;div class=&amp;quot;abilities-section&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;div class=&amp;quot;section-title&amp;quot;&amp;gt;СПОСОБНОСТИ&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;div class=&amp;quot;ability passive&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;div class=&amp;quot;ability-name&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;span class=&amp;quot;ability-icon&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; Пассивная&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;div class=&amp;quot;ability-description&amp;quot;&amp;gt;${warframe.abilities.passive}&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ${abilitiesHTML}&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;div class=&amp;quot;card-footer&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; Warframe RPG Card © 2024&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; `;&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; return card;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; // Функция для получения русского названия роли&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; function getRoleName(role) {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; const roleNames = {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &#039;damage&#039;: &#039;Урон&#039;,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &#039;support&#039;: &#039;Поддержка&#039;,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &#039;survival&#039;: &#039;Выживание&#039;,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &#039;stealth&#039;: &#039;Скрытность&#039;,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &#039;crowdcontrol&#039;: &#039;Контроль&#039;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; };&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; return roleNames[role] || role;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; // Функция для фильтрации карточек&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; function filterCards(role) {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; const cards = document.querySelectorAll(&#039;.warframe-card&#039;);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; cards.forEach(card =&amp;gt; {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; if (role === &#039;all&#039; || card.dataset.roles.includes(role)) {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; card.style.display = &#039;block&#039;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; } else {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; card.style.display = &#039;none&#039;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; });&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; // Инициализация&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; document.addEventListener(&#039;DOMContentLoaded&#039;, () =&amp;gt; {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; const grid = document.getElementById(&#039;warframeGrid&#039;);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; // Создаем карточки для каждого варфрейма&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; warframesData.forEach(warframe =&amp;gt; {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; const card = createWarframeCard(warframe);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; grid.appendChild(card);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; });&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; // Добавляем обработчики для кнопок фильтра&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; document.querySelectorAll(&#039;.filter-btn&#039;).forEach(btn =&amp;gt; {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; btn.addEventListener(&#039;click&#039;, () =&amp;gt; {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; document.querySelectorAll(&#039;.filter-btn&#039;).forEach(b =&amp;gt; b.classList.remove(&#039;active&#039;));&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; btn.classList.add(&#039;active&#039;);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; filterCards(btn.dataset.role);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; });&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; });&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; });&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;[/html]&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Void)</author>
			<pubDate>Tue, 11 Nov 2025 17:18:47 +0300</pubDate>
			<guid>https://warframe.f-rpg.me/viewtopic.php?pid=35#p35</guid>
		</item>
		<item>
			<title>Тестовое сообщение</title>
			<link>https://warframe.f-rpg.me/viewtopic.php?pid=30#p30</link>
			<description>&lt;p&gt;[html]&amp;lt;style&amp;gt;&lt;br /&gt;#season-widget {&lt;br /&gt;&amp;#160; &amp;#160; width: 200px;&lt;br /&gt;&amp;#160; &amp;#160; height: 200px;&lt;br /&gt;&amp;#160; &amp;#160; border: 2px solid;&lt;br /&gt;&amp;#160; &amp;#160; border-radius: 10px;&lt;br /&gt;&amp;#160; &amp;#160; display: flex;&lt;br /&gt;&amp;#160; &amp;#160; flex-direction: column;&lt;br /&gt;&amp;#160; &amp;#160; justify-content: center;&lt;br /&gt;&amp;#160; &amp;#160; align-items: center;&lt;br /&gt;&amp;#160; &amp;#160; font-family: Arial, sans-serif;&lt;br /&gt;&amp;#160; &amp;#160; font-weight: bold;&lt;br /&gt;&amp;#160; &amp;#160; position: relative;&lt;br /&gt;&amp;#160; &amp;#160; overflow: hidden;&lt;br /&gt;&amp;#160; &amp;#160; box-sizing: border-box;&lt;br /&gt;&amp;#160; &amp;#160; padding: 10px;&lt;br /&gt;&amp;#160; &amp;#160; text-align: center;&lt;br /&gt;&amp;#160; &amp;#160; margin: 10px;&lt;br /&gt;}&lt;/p&gt;
						&lt;p&gt;/* Стили для сезонов */&lt;br /&gt;.season-autumn {&lt;br /&gt;&amp;#160; &amp;#160; background: linear-gradient(135deg, #fbe9e7, #ffab91);&lt;br /&gt;&amp;#160; &amp;#160; border-color: #ff8a65;&lt;br /&gt;&amp;#160; &amp;#160; color: #d84315;&lt;br /&gt;}&lt;/p&gt;
						&lt;p&gt;.season-winter {&lt;br /&gt;&amp;#160; &amp;#160; background: linear-gradient(135deg, #e3f2fd, #bbdefb);&lt;br /&gt;&amp;#160; &amp;#160; border-color: #90caf9;&lt;br /&gt;&amp;#160; &amp;#160; color: #1565c0;&lt;br /&gt;}&lt;/p&gt;
						&lt;p&gt;.season-spring {&lt;br /&gt;&amp;#160; &amp;#160; background: linear-gradient(135deg, #e8f5e8, #c8e6c9);&lt;br /&gt;&amp;#160; &amp;#160; border-color: #81c784;&lt;br /&gt;&amp;#160; &amp;#160; color: #2e7d32;&lt;br /&gt;}&lt;/p&gt;
						&lt;p&gt;.season-summer {&lt;br /&gt;&amp;#160; &amp;#160; background: linear-gradient(135deg, #fff3e0, #ffcc80);&lt;br /&gt;&amp;#160; &amp;#160; border-color: #ffb74d;&lt;br /&gt;&amp;#160; &amp;#160; color: #ef6c00;&lt;br /&gt;}&lt;/p&gt;
						&lt;p&gt;.season-name {&lt;br /&gt;&amp;#160; &amp;#160; font-size: 24px;&lt;br /&gt;&amp;#160; &amp;#160; margin-bottom: 10px;&lt;br /&gt;&amp;#160; &amp;#160; text-shadow: 1px 1px 2px rgba(0,0,0,0.1);&lt;br /&gt;}&lt;/p&gt;
						&lt;p&gt;.season-timer {&lt;br /&gt;&amp;#160; &amp;#160; font-size: 12px;&lt;br /&gt;&amp;#160; &amp;#160; text-align: center;&lt;br /&gt;}&lt;/p&gt;
						&lt;p&gt;.days-left {&lt;br /&gt;&amp;#160; &amp;#160; font-size: 16px;&lt;br /&gt;&amp;#160; &amp;#160; color: #d32f2f;&lt;br /&gt;&amp;#160; &amp;#160; font-weight: bold;&lt;br /&gt;&amp;#160; &amp;#160; display: block;&lt;br /&gt;&amp;#160; &amp;#160; margin-top: 5px;&lt;br /&gt;}&lt;/p&gt;
						&lt;p&gt;/* Декоративные элементы */&lt;br /&gt;.decor {&lt;br /&gt;&amp;#160; &amp;#160; position: absolute;&lt;br /&gt;&amp;#160; &amp;#160; top: 10px;&lt;br /&gt;&amp;#160; &amp;#160; right: 10px;&lt;br /&gt;&amp;#160; &amp;#160; font-size: 20px;&lt;br /&gt;&amp;#160; &amp;#160; opacity: 0.5;&lt;br /&gt;}&lt;br /&gt;&amp;lt;/style&amp;gt;&lt;/p&gt;
						&lt;p&gt;&amp;lt;div id=&amp;quot;season-widget&amp;quot; class=&amp;quot;season-autumn&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;div class=&amp;quot;season-name&amp;quot;&amp;gt;ОСЕНЬ&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;div class=&amp;quot;season-timer&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; ВРЕМЯ ДО ОКОНЧАНИЯ СЕЗОНА: &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;span class=&amp;quot;days-left&amp;quot;&amp;gt;100&amp;lt;/span&amp;gt; ДНЕЙ&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;div class=&amp;quot;decor&amp;quot;&amp;gt;&amp;#127810;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;/p&gt;
						&lt;p&gt;&amp;lt;script&amp;gt;&lt;br /&gt;// Простая и надежная версия расчета сезонов&lt;br /&gt;function getSeasonInfo() {&lt;br /&gt;&amp;#160; &amp;#160; // Начальная дата - 1 ноября 2025&lt;br /&gt;&amp;#160; &amp;#160; const startDate = new Date(&#039;2025-11-01&#039;);&lt;br /&gt;&amp;#160; &amp;#160; const now = new Date();&lt;br /&gt;&amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; // Разница в днях&lt;br /&gt;&amp;#160; &amp;#160; const diffTime = now - startDate;&lt;br /&gt;&amp;#160; &amp;#160; const diffDays = Math.floor(diffTime / (1000 * 60 * 60 * 24));&lt;br /&gt;&amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; // Если дата раньше начала&lt;br /&gt;&amp;#160; &amp;#160; if (diffDays &amp;lt; 0) {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; return { season: &#039;autumn&#039;, name: &#039;ОСЕНЬ&#039;, decor: &#039;&amp;#127810;&#039;, daysLeft: 100 };&lt;br /&gt;&amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; // Определяем текущий сезон (каждые 100 дней)&lt;br /&gt;&amp;#160; &amp;#160; const seasonCycle = Math.floor(diffDays / 100) % 4;&lt;br /&gt;&amp;#160; &amp;#160; const daysInSeason = diffDays % 100;&lt;br /&gt;&amp;#160; &amp;#160; const daysLeft = 100 - daysInSeason;&lt;br /&gt;&amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; const seasons = [&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; { season: &#039;autumn&#039;, name: &#039;ОСЕНЬ&#039;, decor: &#039;&amp;#127810;&#039; },&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; { season: &#039;winter&#039;, name: &#039;ЗИМА&#039;, decor: &#039;&amp;#10052;&amp;#65039;&#039; },&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; { season: &#039;spring&#039;, name: &#039;ВЕСНА&#039;, decor: &#039;&amp;#127793;&#039; },&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; { season: &#039;summer&#039;, name: &#039;ЛЕТО&#039;, decor: &#039;&amp;#9728;&amp;#65039;&#039; }&lt;br /&gt;&amp;#160; &amp;#160; ];&lt;br /&gt;&amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; return {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; ...seasons[seasonCycle],&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; daysLeft: daysLeft&lt;br /&gt;&amp;#160; &amp;#160; };&lt;br /&gt;}&lt;/p&gt;
						&lt;p&gt;function updateSeasonWidget() {&lt;br /&gt;&amp;#160; &amp;#160; const seasonInfo = getSeasonInfo();&lt;br /&gt;&amp;#160; &amp;#160; const widget = document.getElementById(&#039;season-widget&#039;);&lt;br /&gt;&amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; if (!widget) {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; console.error(&#039;Виджет не найден!&#039;);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; return;&lt;br /&gt;&amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; // Обновляем содержимое&lt;br /&gt;&amp;#160; &amp;#160; widget.querySelector(&#039;.season-name&#039;).textContent = seasonInfo.name;&lt;br /&gt;&amp;#160; &amp;#160; widget.querySelector(&#039;.days-left&#039;).textContent = seasonInfo.daysLeft;&lt;br /&gt;&amp;#160; &amp;#160; widget.querySelector(&#039;.decor&#039;).textContent = seasonInfo.decor;&lt;br /&gt;&amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; // Обновляем классы&lt;br /&gt;&amp;#160; &amp;#160; widget.className = &#039;season-&#039; + seasonInfo.season;&lt;br /&gt;&amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; console.log(&#039;Сезон обновлен:&#039;, seasonInfo);&lt;br /&gt;}&lt;/p&gt;
						&lt;p&gt;// Запускаем при загрузке&lt;br /&gt;document.addEventListener(&#039;DOMContentLoaded&#039;, function() {&lt;br /&gt;&amp;#160; &amp;#160; console.log(&#039;Документ загружен, обновляем виджет...&#039;);&lt;br /&gt;&amp;#160; &amp;#160; updateSeasonWidget();&lt;br /&gt;});&lt;/p&gt;
						&lt;p&gt;// Дублируем запуск на всякий случай&lt;br /&gt;window.onload = updateSeasonWidget;&lt;/p&gt;
						&lt;p&gt;// Для отладки - выводим информацию&lt;br /&gt;console.log(&#039;Скрипт сезонов загружен, текущий сезон:&#039;, getSeasonInfo());&lt;br /&gt;&amp;lt;/script&amp;gt;[/html]&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Void)</author>
			<pubDate>Fri, 24 Oct 2025 04:27:16 +0300</pubDate>
			<guid>https://warframe.f-rpg.me/viewtopic.php?pid=30#p30</guid>
		</item>
	</channel>
</rss>
