
Глава 1. 3:47
Ден не спал.
Точнее, он спал часа три днём, по ошибке, а теперь расплачивался этим неправильным сном: в 3:47 утра его мозг был подозрительно бодрым и категорически отказывался выключаться.
В комнате было темно — контуры мебели терялись, углы проваливались в тень. Единственный источник света — монитор, заливший стол холодным голубым прямоугольником. Провода свисали с края спутанными петлями. На полу — кружки с засохшим чаем, упавший худи, пустые пачки от печенья. Хаос, который, если присмотреться, складывался в очень чёткую систему.
Курсор мигал в редакторе кода. Ден смотрел на него, не моргая. В голове шёл фоновый процесс: анализ, оптимизация, проверка. Руки давно перехватили управление: пальцы сами находили нужные клавиши, сами правили строку, сами нажимали Enter. Сознание Дена занималось важным — думало.
Алгоритм модерации сообщений уже работал, но его это не устраивало. Там был нюанс.
Нюансы бесили больше, чем явные баги.
«Если фраза выглядит как шутка, но внутри — просьба о помощи, ты обязан это увидеть», — мысленно диктовал он коду, прокручивая условия.
Он терпеть не мог, когда люди говорили «всё норм», а потом исчезали. Сервер не должен был верить в «норм». Сервер должен был верить в паттерны.
Он увеличил масштаб, прокрутил вверх, перечитал блок анализа лексики. «Триггерные слова». «Контекст последних сообщений». «Частота появления эмодзи». Если бы кто-нибудь заглянул сейчас через его плечо, наверняка сказал бы, что это перебор. Но никто не заглядывал, кроме предполагаемых ФСБшников в будущем, и тем было уже всё равно.
Строка confidence_level = 0.82 упрямо мозолила глаза.
— Нет, — тихо сказал Ден самому себе. — Мало.
Он стёр цифры, вписал 0.9, потом пожал плечами и добавил ещё пару условий. Это была уже не нейросетка, а чистая паранойя, написанная на Python.
Курсор снова замер.
Мозг выдал ещё одну мысль: если ошибётся — кто-то умрёт.
Мысль была неприятной, но честной. Он не отгонял её — пусть лежит где-то в уголке памяти и не даёт расслабиться.
За дверью что-то скрипнуло.
Ден вздрогнул. Сердце коротко споткнулось, потом ускорило шаг.
— Денис? — донеслось из коридора.
Голос матери.
Конечно.
Ден рефлекторно щёлкнул по кнопке «сохранить». Так, на всякий случай. Не потому, что боялся, что она сейчас заберёт у него компьютер и сожжёт, как в страшилках, — просто потому, что любые вторжения реальности стоило считать аварийным завершением процесса. Пальцы непроизвольно сжали край стола. Слишком много раз ему приходилось переписывать всё заново, когда мама заходила без предупреждения или когда система выдавала ошибку в самый неподходящий момент.
— Я сплю, — сообщил он в сторону двери, не оборачиваясь.
Это была стандартная отговорка. Формально правильная — по смыслу пустая. Никто ей не верил, но она всё равно вызывалась.
Ручка провернулась. В комнату хлынул тёплый жёлтый свет коридора, полосой ударил по глазам. Мозг тут же выдал ошибку «сенсорная перегрузка». Ден прищурился и наклонился к монитору, прячась за его светом.
Мать вошла бесшумно — так, чтобы не разбудить.
— Три часа ночи, — констатировала она, глянув на часы на стене. — Точнее, почти четыре.
— Угу, — Ден проверил отступы в новом блоке кода, делая вид, что занят именно этим, а не тем, что её голос царапает по нервам.
— Ты опять не ложился?
Он пожал плечами. Врать было бессмысленно: синяки под глазами и блуждающая моторика рук сами всё рассказывали лучше любого текста.
— Я уже спал, — всё-таки сказал Ден, упрямо уткнувшись в монитор. — Днём. Немного.
— Три часа на диване — это не «спал», — мягко возразила она. — Это «выключился».
Он не ответил.
Молчание было проще, чем объяснение. Объяснять значило лезть в вербальные дебри, подстраивать интонации, следить за её реакцией, угадывать контекст. Код был честнее: там или работает, или нет.
Мама прошла дальше, брезгливо переступив через развалившийся на полу худи. Подняла одну из кружек, понюхала, сморщилась.
— Ты опять пил этот ужас? — она кивнула на пакетик какого-то энергетика, валяющийся рядом.
— Чай, — сказал Ден. — Он бодрит.
Она хмыкнула, поставила кружку на стол, отодвинув в сторону клавиатуру.
Он тут же вернул клавиатуру на место.
Физическое вмешательство в его сетап вызывало почти физическую боль.
— Денис, — ей, как всегда, понадобилось дойти до официальной формы имени, чтобы подчеркнуть важность, — ты третий день почти не выходишь из комнаты. Ты ел вообще?
Он моргнул, быстро прокрутил в памяти лог последних суток.
Кекс утром… или это было вчера? Лапша в девять… Позавчера?
База данных по еде определённо нуждалась в оптимизации и актуализации.
— Ел, — уверенно сказал он. Лгать по частям было проще, чем объяснять неопределённость.
Она вздохнула.
Этот вздох он узнал: так она вздыхала, когда понимала, что спорить бессмысленно.
— Ты не можешь жить только… — она неопределённо махнула рукой в сторону монитора, где бегали строки кода. — Здесь. Тебе нужны люди.
— У меня есть люди, — автоматом отозвался Ден.
Он не успел подумать, стоит ли это говорить. Но оно уже прозвучало.
Мать наклонилась, попыталась поймать его взгляд. Он упрямо смотрел в экран, но в периферии видел тёмные глаза, в которых отражался его собственный силуэт.
— Люди — это не никнеймы, — мягко сказала она. — Люди — это когда можно потрогать, обнять, услышать, как дышат…
«Можно», — эхом отозвался в голове.
Он мотнул головой, отгоняя картинку: чужие руки, чужое дыхание, чужой запах, от которого хочется забиться в угол.
— Мне хватает, — он постарался говорить ровно. — Там… нормальные.
Слово «нормальные» прозвучало странно. Он сам его не любил. Но объяснять «такие же, как я, сломанные системой» было слишком длинно.
— Что значит «там»? — она отступила на шаг, скрестив руки. — Опять этот твой… как его… чат?
— Сервер, — автоматически поправил Ден. — Это… — он запнулся, подбирая формулировку, в которой было бы минимально лжи и максимум уклончивости, — проект.
Мама приподняла брови:
— Секретный, да?
Он пожал плечами.
Секретный — не в смысле «запрещённый», а в смысле «никто в этом доме, кроме него, не поймёт, почему ночной канал для немых подростков важнее сна».
— Когда ты в последний раз выходил на улицу? — смена темы была предсказуема.
Он честно попытался вспомнить. Голова выдала картинку: серый снег, серые люди, серые дома и очень громкий автобус. Неприятно.
— Недавно, — соврал он с оттенком раздражения. — Это не важно.
— Важно, — упрямо сказала она. — Ты не можешь запираться и жить…
— Я не запираюсь, — он резко повернулся к ней, и свет коридора ударил по глазам, заставив их зажмуриться. — Я подключён.
Слова прозвучали пафосно, почти по-киберпанковски. Если бы он писал роман, наверняка выкинул бы такую фразу в корзину. Но он не писал роман, он защищал свою архитектуру.
Мама некоторое время молча смотрела на него. В её взгляде было слишком много анализа — профессиональная деформация психотерапевта. Иногда он ненавидел эту профессию сильнее, чем отсутствие отца.
Потом она тихо вздохнула и чуть кивнула, как будто отметила про себя: ясно.
— Я оставлю тебе чай, — сказала она спокойнее. — Просто… не забывай, что… — она замялась, подбирая формулировку, — не всё, что не помещается в твой код, — баг.
Он нахмурился.
Смысл фразы был неплохим. Но формулировка — странной. Она старалась говорить его словами, но всё равно спотыкалась.
— Угу, — выдавил он.
Она поставила к его локтю кружку — тёплую, пахнущую лимоном.
Ден уловил запах спустя пару секунд, и где-то глубоко внутри что-то откликнулось: детская ассоциация с болезнью и заботой, с тем временем, когда мир был проще и в нём ещё не было серверов, только кубики LEGO и книжки про волшебников.
— Пожалуйста, хотя бы разогрей себе что-нибудь потом, — добавила она уже из дверей. — И попробуй… хотя бы на час лечь.
Он не стал обещать.
Дверь закрылась. Полоса света исчезла, комната снова стала тёмной капсулой с одним ярким прямоугольником — его солнцем, его окном, его входом и выходом одновременно.
Тишина хлопнула так громко, что он даже услышал собственное дыхание.
На экране всё ещё мигал курсор.
confidence_level = 0.9.
Он посмотрел на строку и медленно стёр цифру. Поставил 0.95. Потом добавил ещё одно условие: анализ временных промежутков между сообщениями. Люди в кризисе писали иначе. Быстрее. Или, наоборот, исчезали надолго.
Система должна была это видеть.
Если она поверит словам — кто-то снова напишет «лол» перед тем, как пропасть.
Он опёрся локтями о стол, сцепил пальцы в замок и на секунду закрыл глаза. Перед внутренним взглядом всплыли никнеймы: Хаос, который три дня ничего не писал. Феникс, делающий вид, что у него всё отлично с родителями. Девочка с ником «НикогоНетДома», у которой в прошлый раз в голосе дрожал каждый вдох.
Реальность говорила: «Это просто дети из интернета».
Код показывал сбой — слишком личный для лога.
— У меня есть люди, — повторил он шёпотом, уже не споря ни с кем, а просто фиксируя факт.
Если он сейчас закроет редактор, выключит компьютер, пойдёт спать «как нормальные», эти люди останутся без его фильтров, без его триггеров, без его паранойи.
Может быть, кто-то из них проживёт ночь и без него.
Может быть, нет.
Он снова открыл глаза.
Курсор, будто дождавшись, мигнул особенно вызывающе. Монитор тихо зашипел, перестраивая картинку. За стеной кто-то спустил воду в туалете. Где-то далеко проехала машина. Мир продолжал жить своей рассыпающейся, немного бессмысленной жизнью.
А здесь, в этом прямоугольнике кода, всё было чётко.
Если условие — ветка. Если ошибка — лог. Если беда — сигнал.
Он внёс ещё пару правок, нажал «запустить тест». В нижней части экрана побежали строки: виртуальные сообщения, смоделированные кризисы, ответы системы. Где-то красным замигало «ALERT». Он довольно кивнул.
— Молодец, — сказал он не то себе, не то серверу.
Чай рядом уже остыл до комфортной температуры. Он взял кружку, сделал осторожный глоток. Лимон обжёг язык лёгкой кислинкой, притянув обратно куда-то к телу, к настоящему моменту.
Оказалось, он всё это время чуть дрожал. Интересно.
На панели задач вспыхнула иконка сервера — кто-то написал в общий. Ден по привычке щёлкнул, но не открыл. Ещё успеет. Сначала — защита.
Сначала — код, который будет ловить крик о помощи в слове «лол».
Он снова посмотрел на время в углу экрана: 4:03.
Ночь перешла в ту фазу, когда «нормальные» уже спят, а такие, как он, сидят над логами и делают вид, что от этого что-то зависит.
Ден усмехнулся краем губ.
С идеей «нормальности» он уже давно попрощался. Оставались он, несколько никнеймов и цифры в логах, с которых он упрямо пытался считывать хоть какой-то смысл.
Он протёр глаза костяшками пальцев, вернулся к клавиатуре и продолжил писать.
Они были здесь.
Они нуждались в коде.
А значит, спать он не имел права. Пока система не скажет «ok».
Глава 2. Белый шум
Сначала был сон. Тяжёлый, как мокрое одеяло, и такой длинный, что казалось — он начался не вчера, а пару лет назад. Соня всплывала из него медленно, как из холодной воды. Сначала — ощущение тела: ватные руки, затёкшая шея, спина, которая ноет после сна на слишком жёстком. Потом — звук: далёкий, давящий, неразборчивый. Гул города за окном, трамваи, машины, голоса, телевизоры соседей, холодильник на кухне. Всё это смешивалось в ровный белый шум, в котором не было ни одной нужной ей ноты.
Глаза открываться не хотели. Зрачки цеплялись за темноту под веками, как за единственное безопасное место. Она всё-таки заставила их приподняться. Потолок встретил её серым пятном с паутинкой в углу — знакомый до тошноты. Шторы были задвинуты наглухо, но между ними пробивалась тонкая полоска дневного света, и по логике это означало, что уже давно не утро.
Где-то рядом тихо вибрировал телефон. Ей понадобилось несколько секунд, чтобы понять, что это не часть сна. Вибрация повторилась, настойчивая, почти раздражённая. Соня медленно потянулась к тумбочке, нащупала холодный пластик, поднесла экран к лицу.
14:23.
Шестнадцать часов сна, если считать с того момента, как она рухнула сюда вчера вечером в одежде.
На экране мигали уведомления. Соцсети, мессенджеры, пара пропущенных звонков от мамы, один — от бабушки. И одно новое сообщение в мессенджере, от человека, которого она очень давно не видела в офлайне и слишком часто — в голове.
«Может, хватит мне уже писать?»
Соня какое-то время просто смотрела на эту строку, пытаясь встроить её в контекст реальности. Мозг лениво перебирал варианты. Потом подвёз вторую реплику — более раннюю, над новой:
«Я устала, честно. У тебя всё всегда слишком… громко. Давай сделаем вид, что мы просто не знакомы, ладно?»
Она вспомнила, когда это было. Две недели назад. Тогда казалось, что это максимум боли. Что после таких слов, сказанных человеком, который когда-то называл её «солнышком», уже некуда падать. Оказалось, есть куда.
Палец сам по себе пролистнул вверх, в чат. Там был длинный ряд синих сообщений — её, обрубленных серых ответов — бывшей подруги, а затем — тишина.
В груди стянуло, дыхание стало коротким. Соня зажмурилась, потом снова открыла глаза и машинально ткнула в значок другой программы — там, где раньше была иконка ярко-оранжевого приложения.
Иконка никуда не делась. Она по-прежнему висела на экране. Только при нажатии… Приложение открывалось пустым профилем с серым силуэтом вместо аватарки и сухой надписью наверху: «Пользователь не найден». Как будто она никогда не существовала.
Пальцы сжались сильнее, чем нужно, телефон хрустнул пластиковым корпусом.
Раньше тут было её лицо — в маске, в блёстках, с чужим цветом волос. Тысяча роликов, миллион маленьких вспышек внимания, тысячи комментариев: «ты гениальная», «ты ненормальная», «я тоже так чувствую». Потоки лайков, уведомлений, коллабы, дуэты. Всё это гудело вокруг неё, как огромный улей, и иногда хотелось выбросить телефон в реку, но улей хотя бы значил, что она есть.
Теперь вместо улья — тишина.
Её вырезали. Аккуратно, как опухоль. Нажали на кнопку «жалоба», собрали достаточно флагов, и алгоритм решил, что она — вредный контент. Не полезный. Неправильный.
«Профиль заблокирован за нарушение правил сообщества». Без объяснения, какие именно правила не выдержала её психика.
— Класс, — хрипло сказала Соня в пустоту.
Голос прозвучал так, будто это не она говорила, а кое-кто другой, живущий в этой же голове без прописки.
Горло пересохло. Она попыталась сглотнуть, язык оказался толстым и безвкусным, как кусок резины. Никакого вкуса во рту. Никакого вкуса в дне.
Белый шум за окном усилился. Или просто её мозг наконец вылез из-под ватного одеяла сна и заметил, насколько всё вокруг противно живо. Машины ехали, люди куда-то торопились, дети орали во дворе — как будто это обычный день, а не день, когда тебя стерли.
Соня откинулась на подушку, уставившись в потолок. Секунда, другая, третья. Мыслей не было — только ощущение, что в груди кто-то поставил тяжёлый камень и подписал его: «Это навсегда».
В дверь тихо постучали.
— Соня? — голос мамы был глухим. — Ты проснулась?
Она не ответила. Голос добавился к белому шуму, не меняя общей картины.
Стук повторился, на этот раз чуть громче.
— Тамара, ты дома? Уже почти половина третьего, — мама перешла в тот тон, который обозначал, что сейчас начнутся рациональные аргументы.
Тамара.
Соня поморщилась. Имя, занесённое в свидетельство о рождении, всегда звучало как чужое. Как ник, придуманный кем-то без права голоса.
— Да, — выдавила она. Голос получился хриплым, будто она всю ночь курила, хотя максимум — плакала.
— Зайти можно?
Ей очень хотелось сказать: «Нет». Закричать, что она больна, что вход по пропускам, что сейчас санитарный час. Но для этого надо было подстроить голос, выбрать интонацию, поймать момент — слишком много действий.
Она промолчала. Дверь и без того тихо приоткрылась.
Мама просунула голову в щель. Свет из коридора тонкой полосой врезался в полутёмную комнату. Соня зажмурилась от этого вторжения, как от вспышки.
— Ты опять со шторой закрытой, — констатировала мать, вместо приветствия. — У тебя голова не болит?
«Только всё остальное», — хотелось сказать. Вслух получилось:
— Норм.
Мама вошла, приоткрыла штору ровно настолько, чтобы щель стала чуть шире. Солнечный свет резанул по глазам. Соня отодвинула телефон и натянула одеяло до подбородка.
— Ты вчера ела? — следующий обязательный вопрос.
Картинки: пицца в ленте, чужие тарелки в сторис, коробка сухих хлопьев на кухне. Реальная еда в её руках… Была ли?
Она пожала плечами.
— Не помню.
— Это не ответ, — вздохнула мама и села на край кровати. — Ты спишь уже… — она глянула на экран телефона, который всё ещё лежал в руке Сони. — Сколько?
— Не знаю, — честно повторила Соня. Считать часы сна было всё равно что считать мысли — бессмысленное упражнение.
Мама посмотрела на неё внимательнее, всматриваясь в лицо, как в карту местности, где давно не была. Соня почувствовала, как внутри нарастает раздражение — тихое, вязкое. Неловко лежать под этим сканированием, как под лучом томографа.
— Тебе надо к врачу, — наконец выдала мама. — Нормальному, живому, а не к твоим этим… блогерам.
— Окей, — Соня кивнула, уже не вслушиваясь.
Этот диалог они разыгрывали по кругу последние два года. Иногда менялись реплики, но смысл оставался. Мама верила, что есть «нормальный врач», который назначит «правильные таблетки», и всё станет как в рекламном ролике: девушка улыбается, делает зарядку и ходит на работу. Соня верила только в то, что некоторые дни прожить можно, а некоторые — нет, и никакая реклама этого не отменит.
— Я записала тебя к психиатру на следующий четверг, — продолжала мама. — Очень хороший специалист, мне её рекомендовали.
— Ага.
— Сонь, — мама наклонилась ближе, пытаясь поймать её взгляд. — Ты же понимаешь, что это не лень. Я вижу, ты правда… — она запнулась, подбирая слово. — Страдаешь.
«О, поздравляю, вы выиграли в конкурсе наблюдательности», — ехидно откликнулось внутри. Снаружи Соня лишь чуть дёрнула уголком рта.
— Просто… — мама посмотрела на тумбочку, увидела телефон в её руке. — Ты бы хоть… не всё время в этих сетях жила. Это же не жизнь, Сонь. Это… симуляция.
Соня резко сжала пальцы.
— А эта, — она коротко махнула телефоном, — жизнь лучше?
Мама перевела взгляд на окно, за которым орали дети и гудели машины.
— Она… настоящая, — сказала она автоматически.
Соня фыркнула. Получилось криво, но громко.
— Настоящая — это когда твой профиль блокируют, потому что ты «слишком грустная»? — в голосе сама собой прорезалась хриплая усмешка. — Когда тебя выбрасывают из алгоритма, потому что ты портишь людям настроение? Это тоже реальность, мам. Просто цифровая.
Мама нахмурилась:
— Опять этот твой аккаунт… Ты же знала, что, если выкладываешь такое, будут жалобы.
— Я выкладывала как есть, — устало сказала Соня. — Подскажите, пожалуйста, как не быть депрессивной, когда я депрессивная.
— Можно было не показывать это всем, — тихо ответила мама. — Есть же… врачи, друзья…
«Были», — поправила про себя Соня, вспомнив сообщение «давай сделаем вид, что мы не знакомы».
Вслух она ничего не сказала. Ощущение пустоты в животе разрослось до тошноты. Хотелось вывернуть себя наизнанку и выбросить всё, что болит, в окно — пусть там подберёт какой-нибудь бездомный кот.
— Ладно, — мама поднялась. — Я разогрею тебе суп. Попробуй хоть пару ложек, хорошо? И потом… — она замялась: боялась снова лезть туда, где её слова всё равно утонут, — может быть, выйдешь на улицу? Хоть до магазина.
Соня кивнула, не собираясь выполнять ни одной из этих рекомендаций.
Когда дверь за мамой закрылась, свет из коридора снова исчез, белый шум вернулся в исходную форму. Она ещё пару минут лежала неподвижно, чувствуя, как тяжесть в груди сползает вниз и превращается во что-то липкое под рёбрами.
Потом снова посмотрела на телефон.
Экран погас от бездействия, и Соня разозлилась на себя за эту слабость — даже телефон не хочет держать с ней связь. Она снова разблокировала его, дрожа от усталости и злости на этот самый телефон, который помнил все её падения и подъемы.
Палец сам собой перелистнул ярлыки, нашёл знакомый зелёный значок с белым логотипом. Мессенджер, в котором не банили за «лишнюю грусть». Там было другое измерение — текстовое, не видеоракурсное.
Список чатов вывалился на экран: «школьный», «семейный», «одноклассники (11-А)», пара замьюченных бесед, которые она давно не открывала. Ниже — строка, от которой сердце странно ёкнуло.
«Сервер. Ден_Волк» — было написано в заголовке. Под ним — последнее уведомление недельной давности:
«Если вдруг станет совсем плохо — пиши хоть точку. Я всё равно увижу».
Она тогда не ответила. Сделала вид, что не увидела. Ей казалось, что просить помощи — это как просить донорскую почку: слишком жирно, если ты не умираешь прямо сейчас.
Сейчас было непонятно, умирает ли она.
Но чёрная дыра внутри ощутимо тянула.
Она ткнула в чат. Диалог открылся. Сверху — несколько старых сообщений: обмен мемами про социальную тревожность, его крошечные, аккуратные фразы и её потоки мыслей. Внизу — пустая строка ввода.
Пальцы повисли над клавиатурой. Что написать? «Привет, меня стёрли»? «Привет, у меня забрали единственную версию меня, которую я терпела»? «Привет, мир решил, что я вредный контент»?
Она набрала: «Привет». Посмотрела на слово, как на дохлую муху. Стерла.
Набрала: «Кажется, я опять сломалась».
Повисела пару секунд, стёрла и это.
В итоге подушечки пальцев сами вывели буквы: «хрен». Потом ещё: «ово». Получилось: «хреново». Маленькая честность на фоне большой катастрофы.
Она не успела передумать. Просто нажала «отправить», как дёргают за аварийный стоп-кран в поезде.
Сообщение улетело. Синяя галочка обозначила доставку. Где-то там, по ту сторону экрана, в другой комнате, другом городе, другой реальности, кто-то увидит это слово и, может быть, не нажмёт «бан».
Белый шум будто поубавился. Или ей только хотелось так думать.
Соня положила телефон на грудь, закрыла глаза. Тяжесть никуда не делась, но внутри открылось крошечное окно — ровно на одно слово: «хреново». Через него снова можно было смотреть на мир, пусть и сквозь мутное стекло.
Пусть хотя бы один человек увидит, что она ещё существует — не в ленте, не в чужих рекомендациях, а вот так: в чате, в трёх строчках, в одном некрасивом слове.
Она глубоко вдохнула, досчитала до десяти и так и не досчитала. Сон, тяжёлый и серый, снова начал стягивать её вниз.
Проваливаться в него было страшно: вдруг не вылезет. Но оставаться в бодрствовании тоже не было сил. Между двумя ужасами она выбрала третий — временную паузу.
Телефон всё ещё лежал у неё на груди. Где-то там мог мигнуть новый ответ. Или не мигнуть. Она не стала проверять. Пусть сначала мир сделает ход сам.
Сон опять начал тянуть вниз. Если завтра окажется, что никто не ответил, будет больно. Но прямо сейчас от одной отправленной реплики шум в голове стал на полтона тише.
Мир снова расплылся до белого шума.
Глава 3. Странные боги
За несколько месяцев до того, как она впервые написала ему «хреново», всё началось с совершенно обычного поста в фан-сообществе. Сначала Соня даже не поняла, что именно её зацепило.
Обычный пост в любимом фандомном сообществе, которых она перечитала уже сотни: картинка, цитата и подпись в духе «а вот это самый здоровый персонаж во всей истории». Под постом появлялись комментарии: одни соглашались, другие спорили, третьи кидали мемы.
Персонаж на картинке смотрел в сторону, с фирменной полуулыбкой, и в подписи кто-то особенно умный написал: «Он бог хаоса, но при этом единственный адекватный тут».
Соня скривилась.
«Адекватный».
Слово, которым ей всю жизнь размахивали как зачеткой: либо ты его сдаёшь, либо тебя выгоняют.
Она пролистала пару комментариев, где люди восторженно писали, какой он «крутой психопат», потом не выдержала и ткнула в строку ответа. Пальцы сами нашли ритм.
Через минуту под постом появилась её простыня. Про то, что персонаж вообще-то не психопат, а типичный переживший травму, с жёсткими системами контроля и маскировкой эмоций. Про то, что его «хаос» — это способ не умереть от чужих ожиданий. Про то, что он не бог, а такой же перепуганный человек, только с красивым CGI.
Она нажала «отправить», прочитала свой текст, скривилась: слишком длинно, слишком умно, слишком серьёзно для раздела, где люди приходят отдохнуть мозгом. Но редактировать уже было поздно.
Ниже через пару минут вспыхнул новый комментарий.
«Буквально всё не так, но интересно», — было написано.
Ник у комментатора был странный: root_wolf. Аватарка — чёрно-белый пиксельный волк с прищуром. Без радужных фильтров, без цитат, без привычного фанарта. Какое-то подозрительно спокойное изображение.
Соня фыркнула, раскрыла ответ.
Он коротко, аккуратно прошёлся по её тексту, как хирург по органам: отметил, что да, травма есть, но мотивация сцены X указывает на другое; что в эпизоде Y персонаж действует не из страха, а из просчитанной стратегии; что маскинг — да, но не в том месте, где она его увидела. Ссылки на таймкоды, конкретные кадры, структура.
В отличие от большинства местных комментаторов, этот странный «волк» не писал «бред» или «ты ничего не поняла». Он просто излагал контр-теорию — сухо, логично, почти без эмоций.
Соня прочитала, почувствовала, как внутри поднимается знакомое ощущение: не злость, а азарт. Это звучало вызовом — и ей хотелось ответить.
Она набрала ответ. Не длиннее его, но и не короче: указала, что он игнорирует невербалику в сцене Z, где герой дрожащей рукой зажигает сигарету; что просчитанная стратегия не отменяет мотива страха; что интеллект — не броня от травмы, а иногда только увеличительное стекло для боли.
Через пару минут зажёгся новый ответ.
Он явно находился в онлайне прямо сейчас.
«Интересный пойнт. Но смотри…» — и понеслось.
Они обменялись ещё тремя-четырьмя комментариями. Остальные участники беседы уже просто лайкали их диалог, как бесплатную лекцию. Кто-то влез с «вы оба правы, давайте жить дружно», кто-то скинул мем про «остановитесь, я ничего не понимаю». Их это не касалось.
Мир сузился до нитки текста между двумя никами.
В какой-то момент Соня с удивлением поняла, что улыбается. Широко, искренне, так, как давно не получалось. Приятно было, что её не обесценивают, а спорят по делу. Приятно — и немного страшно: настолько серьёзный человек в фандоме обычно оказывался либо скучным занудой, либо чем-то гораздо более интересным.
Внизу вспыхнуло уведомление: «root_wolf ответил на ваш комментарий». Она уже тянулась читать, как вдруг в правом верхнем углу экрана моргнула другая иконка — личные сообщения.
«root_wolf хочет написать вам».
Соня замерла на секунду, потом кликнула.
В личке было одно короткое:
«Не хочу засорять тред лонгридами. Ты интересно думаешь. Можно тут продолжим?»
Она вслух фыркнула.
«Интересно думаешь».
Комплимент, который для неё ценнее любых «ты красивая». Мозг — единственное место, где она иногда чувствовала себя пригодной для употребления.
Она пару секунд поиграла курсором над строкой ответа, потом набрала:
«Смотря с чем ты сюда пришёл: поспорить или быть правым?»
Ответ прилетел почти мгновенно:
«Это взаимоисключающие события?»
Она усмехнулась и почувствовала, как в голове щёлкает переключатель: режим «соцсети» сменился на режим «интеллектуальная драка с элементами флирта».
Пальцы ожили.
«Если ты сюда пришёл только для того, чтобы доказать, что я не права, то скучно. Если тебе реально интересно копать, то ок», — написала она.
«Копать интересно. Быть правым — побочный квест», — ответил «волк».
«Ладно, одобряю название роли», — Соня расслабилась на подушке, устраивая телефон поудобнее. Голова всё ещё была тяжёлой от сна и депрессии, но мозг уже разогревался, как старый ноутбук — с шумом, но верно.
Дальше они действительно начали копать. Уже не только персонажа, но и самих себя.
Сначала всё выглядело как обычный фандомный спор.
Она кидала скрины сцен, где, по её мнению, герой поступал как человек с пост-травматикой, он отвечал аналитикой по структуре сюжета, вводил понятия «надёжный повествователь» и «точка зрения сценариста». Они вспоминали интервью режиссёра, резались цитатами из режиссёрской версии, спорили о том, считать ли сцену в баре каноничной.
Соня замечала, что его сообщения всегда были выверены: чёткие абзацы, без смайлов, иногда — с сухой шуткой, спрятанной между строк. У неё же мысли скакали: то она уходила в ассоциации, то возвращалась к конкретике, то вдруг бросала в середину анализа «и да, он ещё бесит меня, потому что слишком узнаваемый».
На таком замечании он задержался.
«В смысле „узнаваемый“?» — спросил.
Соня прикусила губу.
Не собиралась заходить так глубоко — хотела просто поспорить о чужом выдуманном страдальце. Но вопрос уже повис.
«В смысле, когда смотришь, как он ломается под ожиданиями, и думаешь: о, привет, это же я, только без эффекта драматического освещения», — всё-таки ответила она.
Он не стал кидаться в советы или дешёвую эмпатию. Пару минут в чате было пусто, и она уже подумала, что перегнула. Потом появилась лаконичная строка:
«Ну, у него хотя бы бюджет на спецэффекты».
Она расхохоталась так громко, что сама удивилась. Смех оказался каким-то рваным, хриплым, но живым.
«Тоже верно. Мне даже на нормальную терапию бюджета не выделили», — отписала она.
«Официальный продюсер: жизнь?»
«Ага. Низкобюджетное инди с плохим монтажом», — Соня улеглась на бок, телефоном к лицу. Она чувствовала, как в голове проясняется — не до конца, но достаточно, чтобы заметить: ей стало чуть менее пусто.
Где-то между разбором сцен и взаимными подколами они незаметно съехали с персонажа на себя.
«Слушай, ты вообще кто?» — наконец спросила она. — «Кроме бога неправых в комментариях».
«Короче или честно?» — последовал ответ.
«Честно, но без должностной инструкции на три листа».
Пауза.
«Я человек, которому проще с кодом, чем с людьми, — написал он. — И который, по иронии судьбы, последние пару лет занимается в основном людьми».
«Это звучит как начало плохой истории, — заметила Соня. — Кодер-социофоб, открывший бар».
«Почти. Кодер-аутист, открывший своё маленькое интернет-убежище», — появилась следующая строка.
Она замерла на слове «аутист». Оно было прямым, без завуалирований. Большинство предпочитали говорить «особенный», «со своими особенностями», «немного не такой». Этот человек в лоб положил диагноз на стол, как карту.
Пальцы сами напечатали:
«О, привет, нейро-родственник».
«У тебя что?»
«СДВГ, депрессия, тревожность», — Соня добавила мысленно: «и маска поверх», но озвучивать это пока не решилась.
Он не стал спрашивать «официально?» или комментировать диагнозы. Только уточнил:
«Так что, интернет — это основное место обитания?»
«А у тебя нет?» — удивилась она.
«У меня — да. Но обычно, когда так говоришь, люди начинают убеждать, что „надо выходить к настоящим людям“», — ответил он.
Соня ухмыльнулась, вспомнив сегодняшнюю маму с её «симуляцией». «Настоящие люди — это те, кто могут ударить, когда им не понравится, как ты дышишь? Спасибо, уже обожглась, — написала она. — В интернете хотя бы можно закрыть вкладку».
«Справедливое преимущество», — согласился он. — «Но вкладка — это только окно. Я долго пытался сделать из него дверь».
«Дверь куда?»
«Домой».
Она уставилась на это слово. «Домой».
Странное ощущение: оно одновременно грело и болело. Дом всегда был где-то не там: не в квартире с мамой и вечными разговорами «ты должна», не в школе — даже в одиннадцатом, — не в очередном «давай дружить, ой, ты слишком…».
«И как успехи?» — осторожно спросила она.
«Получилось, — без всякого пафоса ответил он. — Маленький сервер. Небольшое сообщество. Люди, с которых не течёт яд при любом несогласии. Место, где „сломанные“ не должны оправдываться, что они „слишком“».
Она почувствовала, как в груди шевельнулось что-то похожее на зависть, но тёплую. Не «зависть-жаба», а «зависть — может, и у меня, когда-нибудь».
«Звучит как секта, но приятная», — написала она.
«По факту так и есть. Небольшой кружок людей, которые честно говорят: „Мне плохо“, вместо „Я в норме“, — ответил Волк. — Я пытаюсь дать им инструменты, а они друг другу — смысл».
«Ты прям как этот персонаж, только без красивого плаща», — Соня прикрыла глаза, представляя маленький сервер где-то в глубине интернета, светящийся тёплым светом для тех, кто мёрзнет.
«Плащ не тяну. Максимум худи, — не согласился он. — И я не бог. Максимум админ».
«Админ — это и есть локальный бог, — возразила она. — Ты можешь кикнуть токсичного человека в бан, а можешь дать роль и права. Ты буквально переписываешь им социальную реальность».
Он помолчал дольше обычного.
«Неприятно точное определение», — наконец написал.
«Подарок», — ответила она.
За окном давно стемнело. В комнате было почти так же темно, только экран телефона выжигал ей лицо белым светом. Соня перевернулась на живот, уткнувшись подбородком в подушку. Тело по-прежнему казалось тяжёлым, но голова… Голова впервые за долгое время чувствовала себя не мусорным баком, а чем-то нужным.
«А ты?» — вдруг спросил он.
«Что я?»
«Если бы могла выбрать любую точку в пространстве, которая ощущается как „дом“ — это где?»
Вопрос резанул неожиданно глубоко. Она закрыла глаза. В голове не появилось ни одной реальной комнаты. Ни одной кухни, ни одной лестничной клетки, ни одного города. Вспыхнули только картинки: старый чат с людьми, которых уже нет рядом; ночной голосовой канал, где кто-то тихо играл на гитаре; стрим, где в комментариях впервые написали «я думал, я один такой».
«Где меня не просят быть удобной, — набрала она. — И где, если я три дня молчу, меня не называют „токсичной“, а спрашивают „ты живая?“ без претензий».
Ответ появился почти сразу:
«Угу. Понимаю. Я пытался собрать из этого архитектуру. Не только эмоциональную, но и техническую».
«Звучит как манифест твоей секты», — поддразнила она.
«Это просто ТЗ, — отшутился он. — Если хочешь… могу показать прототип».
Сердце почему-то дёрнулось сильнее, чем следовало бы из-за обычного приглашения.
Она привычно проверила всё возможное: не манипуляция ли, не заманивает ли какой-нибудь очередной «гуру», не очередная ли история «мы здесь все свои, а потом выясняется, что „свои“ — это пока ты удобна». Внутренний модуль паранойи подкинул пару тревожных сигналов.
«Прототип чего?» — уточнила она, чтобы потянуть время.
«Того самого. Дома. Только цифрового, — ответил он. — Место, где можно быть „слишком“ и не получать за это бан. Где модерация — не дубинка, а щит».
Фраза про «слишком» попала прямо в уязвимое место. Соня грызла ноготь большого пальца. Остатки лака обламывались, падали на одеяло вперемешку с крошечными каплями крови. Каждый укус был попыткой удержаться в теле, когда мысли разбегались в разные стороны — резко и бессвязно.
«А если я туда зайду и окажется, что я всё равно „слишком“?» — спросила она, скрывая дрожь в голосе. Пальцы сжали край одеяла так, что суставы побелели.
«Тогда это баг архитектуры, а не тебя, — пришёл спокойный ответ. — И это уже моя проблема как админа».
Она выдохнула, не заметив, что до этого секунды двадцать задерживала дыхание. Воздух в комнате стал гуще, теплее. Будто отпустило.
«Секта, говоришь… — написала она. — Ладно. Показывай свой культ».
На экране появилось новое уведомление: приглашение на закрытый сервер с названием из цифр и латиницы.
«Не пугайся, там не очень красиво. Я плохой дизайнер», — добавил он.
Соня усмехнулась.
«Зато, возможно, хороший бог», — подумала она, но писать не стала.
Палец завис над кнопкой «принять приглашение».
Всё упёрлось в это касание. В кнопку. В шаг в неизвестность, где, возможно, никто не скажет ей «ты слишком громкая», «слишком грустная», «слишком честная».
Она нажала.
Где-то на другом конце города Ден увидел в логах нового пользователя и впервые за долгое время по-настоящему улыбнулся.
Для Сони тот же самый интернет, обычно враждебный и шумный, вдруг сделал маленькую приятную вещь — просто подсунул ей чат с человеком, который отвечал ей тем же языком.
Глава 4. Добро пожаловать, Лиса
Соня долго смотрела на экран, не решаясь нажать.
Логотип мессенджера привычно мерцал. Под ним — окно с крупной кнопкой «Присоединиться к серверу». Название — странный набор букв и цифр, что-то вроде «gl4vny_s3rvr». Описание: «Дом для тех, кому нигде не дом». Просто короткая строка.
Она подумала, что это либо худший маркетинг в истории, либо самый честный.
Палец коснулся экрана.
Окно мигнуло. На секунду всё погасло, потом перед ней раскрылась новая левая колонка: список каналов, никнеймы, иконки. В голове щёлкнул знакомый воображаемый звук: будто в соседней комнате резко прибавили громкость.
Первое, что она заметила, — тут не было визуального мусора. Никаких радужных баннеров «добро пожаловать, новичок!!!», мигающих эмодзи и неоновых заголовков. Всё выглядело почти аскетично: тёмная тема, аккуратные чёрточки, имена каналов маленькими буквами.
«safe_zone».
«шёпот».
«ночное_уединение».
«поддержка».
«творчество».
«технический».
В каждом названии было что-то вроде инструкции по применению.
Справа, в общем канале «Прихожая», шла размеренная переписка. Никакого истеричного потока сообщений, никаких картинок. Пара человек обсуждали новый плейлист для ночных посиделок, кто-то кинул ссылку на статью про сенсорную перегрузку, кто-то просто написал: «Съел наконец кусок хлеба, горжусь собой». Под этим был десяток реакций в виде сердечек, солнц и маленьких волков.
Вверху, среди участников, она увидела знакомый ник: «root_wolf». Маленькая зелёная точка рядом означала, что он онлайн.
Соня неожиданно поняла, что не дышит. Смешно: вчера она общалась с ним часами в личке, сегодня — боится появиться в месте, которое он построил.
В нижней части экрана всплыло уведомление: личное сообщение от него.
«Не обязательно здороваться сразу в общий. Можно просто осмотреться. Я добавил тебе временную роль „гость“. Если будет страшно — скажи».
Она усмехнулась.
«Слишком поздно. Уже страшно, — набрала в ответ. — Но красиво».
«Это заслуга совета по архитектуре, — пришло через пару секунд. — То есть людей, которым я сначала всё делал „функционально“, а потом они заставили добавить эстетики. Сейчас тебя к ним проведу».
Через мгновение её ник в списке справа сменил серый цвет на мягко-оранжевый. В скобках рядом добавилось: «Лиса».
Соня нахмурилась.
«Эй. Я это не выбирала», — отписала она.
«Да. Это выбирал я, — спокойно ответил он. — Могу убрать, если не нравится. Хотел роль для архитектора. Волк и Лиса. Лиса, которая знает, как пролезать в щели между мирами и делать в них красиво».
Она уткнулась лбом в колени и пару секунд просто сидела так, пытаясь справиться с нахлынувшим теплом. Слишком быстро, слишком много значений, слишком близко к тем местам, куда обычно никто не заглядывает.
«Оставь», — написала она.
Потом, прежде чем успела передумать, добавила: «Только предупреждай, когда будешь придумывать за меня тотемных животных».
Ответ не заставил себя ждать:
«Учтено. Следующие животные будут согласованы с МинАрхитектуры».
Она хмыкнула.
Список каналов манил, как коридор с приоткрытыми дверями. Соня кликнула на «safe_zone».
Вверху красовалась закреплённая запись от «root_wolf»: набор правил. Но не тех, где длинным юридическим текстом расписывается, что нельзя материться, флудить и быть живым. Здесь было коротко:
— не обесцениваем чужую боль;
— предупреждаем о триггерах;
— не играем в терапевтов без запроса;
— ты не обязан рассказывать ничего, чего не хочешь, но имеешь право рассказать всё, что хочешь;
— если тебе плохо — это не «внимание ищешь», это сигнал, который мы слышим.
Соня перечитала последний пункт несколько раз. Горло предательски сжалось.
Внизу — сообщения от разных людей. Кто-то делился, что сегодня смог позвонить врачу сам. Кто-то писал о том, как выдержал визит родственников. Кто-то, наоборот, признавался, что весь день провёл лёжа, глядя в стену.
Ответы были одинаково спокойные: «я с тобой», «горжусь», «хочешь — распиши подробнее, хочешь — просто побудем рядом». Без советов «соберись» и «выйди подышать».
Ей вдруг стало очень странно: здесь диалог вели по другим правилам, и привычных фраз тут не было.
Дальше она заглянула в «шёпот». Там всё было анонимно: вместо ников — номера. «Пользователь #17: боюсь, что, если расскажу родителям, они выгонят меня». «Пользователь #32: сегодня снова сорвался на самоповреждение». Ответы от модераторов были помечены маленькими иконками: «феникс», «тихий», «зеркало». Каждый говорил по-своему, но во всех словах чувствовалось: «мы не шокированы твоей болью, мы просто рядом».
Соня заметила: читает это уже десять минут и даже не моргает. Пришлось оторваться и сделать глубокий вдох.
Экран телефона немного запотел от её дыхания.
Она отложила его на одеяло, уткнулась лицом в подушку, потом снова подняла.
В правом нижнем углу замигал новый значок: входящий звонок. От «root_wolf». Голосовой.
Сердце сразу отчеканило целую дробь.
«Нет-нет-нет, рано, я ещё даже не разобралась, где тут что, у меня волосы, голос, всё не так», — пронеслось в голове.
Палец дёрнулся к кнопке «отклонить». Застыл.
Под аватаркой волка появилось маленькое текстовое:
«Можно просто посидеть. Не обязательно говорить. Я тоже не люблю говорить».
Она выдохнула шумно — резко, до дрожи.
«Ты же понимаешь, что так людей не уговаривают», — написала она в чате.
«Хочешь, я первым выключу микрофон и камеру? Буду просто звук из наушников. Типа привидения», — ответил он.
Почему-то именно это чуть успокоило.
«Ладно. Только без камеры», — предупредила она.
«Без камеры. Слово аутиста», — пришло в ответ.
Звонок всё ещё горел. Она нажала «принять».
Сначала было ничего.
Просто тишина в наушниках. Та же, что была и до этого, только теперь — с лёгким фоновым шипением, которое выдают микрофоны, когда кто-то на том конце есть.
— Эй, — тихо, почти шёпотом, сказал чей-то голос.
Она дёрнулась. Голос был ниже, чем она ожидала. Не глухой, но какой-то… сдержанный. Как будто человек постоянно проверял громкость своего существования.
— Привет, — выдала Соня. И тут же мысленно врезалась об стену самокритики: слишком резко, слишком хрипло, слишком не так.
— Привет, — ответил он. — Это… странно.
— Говорить? — уточнила она.
— Быть звуком, — признал он. — Текст безопаснее. Но… — последовала короткая пауза, — иногда голос нужен, чтобы убедиться, что ты не бот.
Соня усмехнулась в микрофон:
— А если я бот очень высокой сложности?
— Тогда тебе придётся пройти капчу, — он чуть слышно усмехнулся в ответ. — Назови три вещи, которые ты ненавидишь в людях.
Она задумалась. Вопрос оказался проще, чем «как дела».
— Когда они задают вопросы и сами не слушают ответ, — начала она. — Когда говорят «ты преувеличиваешь». И когда называют «ленью» то, что у меня депрессия.
— Принято, — сказал он. — Капча пройдена.
— А у тебя? — повернула она вопрос.
Пауза была чуть длиннее.
— Когда они решают за меня, что для меня лучше, — медленно произнёс он. — Когда требуют немедленной реакции. И когда считают, что если я не смотрю в глаза, то я их не уважаю.
Она кивнула, забыв, что он этого не видит.
— Ну всё, добро пожаловать в клуб, — тихо сказала Соня. — Давай назовём его… «странные боги».
— Почему боги? — заинтересовался он.
— Потому что от нас все чего-то ждут, но никто не спрашивает, удобно ли нам быть на пьедестале, — пояснила она. — И потому что, если честно, мы сами иногда ведём себя как маленькие божки: создаём свои миры и требуем, чтобы там всё работало по нашим правилам.
Он помолчал.
— Справедливо, — коротко признал он. — Только я бы выбрал что-то менее пафосное. Типа «админы подсобных вселенных».
Соня засмеялась. Смех вырвался неожиданно, хрипло, но без прежней тяжести.
— Ты сейчас обесцениваешь мою мифологию, — упрекнула она. — Я уже придумала нам культ.
— Давай так, — предложил он. — Ты отвечаешь за мифологию и эстетику, я — за инфраструктуру и безопасность. Делим пантеон пополам.
— То есть ты — скучный бог межсетевых экранов, а я — богиня кнопочки «добавить стикер»? — уточнила она.
— Ещё и цветовую схему не забудь, — добавил он. — Вон, все каналы серые, потому что я не знал, какие цвета не будут резать глаза людям с чувствительным зрением. Ты могла бы… помочь.
Соня поднялась, села, прислонясь к стене.
— Это ты меня только что позвал оформить твой рай? — спросила она.
— Мой рай — понятие относительное, — отозвался он. — Но да. Я могу построить стены и замки, но без тебя тут будет как в серверной: безопасно, но неуютно.
Ещё одна пауза. На этот раз — наполненная. Она буквально слышала, как он с той стороны что-то делает: роняет ручку, щёлкает мышкой, шевелит проводами.
Реальный человек. Не только ник, не только аватарка.
Она посмотрела на список каналов ещё раз, уже другими глазами. В каждом из этих слов появилось пространство для неё. Не только как пользователя, но как… со-создателя?
— Ладно, — сказала она. — Давай твою серверную превратим в что-то… человеческое.
— Соглашение заключено, — отозвался он. — Добро пожаловать домой, Лиса.
От этих слов внутри что-то тихо щёлкнуло на своё место.
Соня не ответила сразу, потому что в горле внезапно возник комок. Она сглотнула, отвернулась от окна, чтобы не видеть своё отражение в стекле — глаза, полные слишком быстрых слёз.
— Дом — это громко сказано, — выдохнула она. — Пусть пока будет просто прихожая.
— Сначала прихожая, — согласился Ден. — А там разберёмся, что ещё достроить.
— А потом мы официально станем сектой, — добавила Соня.
— Главное, чтобы в уставе было: «Никто не обязан быть „нормальным“», — спокойно сказал Ден.
Она улыбнулась, хотя никто этого не видел.
— Это будет первая строка.
Они ещё долго сидели в голосовом канале почти молча.
Иногда она задавала какой-нибудь странный вопрос — вроде: «Ты тоже ненавидишь, когда люминесцентные лампы жужжат?», он отвечал: «Да, это похоже на то, как мозг пытается перезагрузиться». Иногда он спрашивал: «Тебя не раздражает, если я молчу по десять секунд, прежде чем ответить?», она говорила: «Нет, я в это время придумываю тебе эпитеты».
Между этими обрывками разговора было много тишины. Не той давящей, когда каждый думает, что должен срочно что-то сказать, чтобы заполнить паузу. Другой — тишины, в которой можно просто дышать и слышать, как на том конце кто-то тоже дышит.
Для Сони это было почти неприличной роскошью.
Где-то посередине до неё дошло: впервые за долгое время она не считает минуты до того момента, когда надо будет снова надеть маску. Маска бессмысленна там, где тебя уже назвали по тотему, а не по паспорту.
Когда они попрощались — коротким «до ночи» вместо формального «спокойной», — за окном уже сгущались сумерки. Соня выключила экран, а свет в голове почему-то не погас.
Впервые за долгое время «завтра» не звучало как что-то ужасное. Просто как следующий день.
Глава 5. Дом из каналов
Утро началось с уведомления.
Не с маминого стука, не с будильника, который она давно перестала заводить, а с тихого «дзынь» на телефоне. Экран мигнул, подсветка выжгла полутёмную комнату квадратиком света.
«root_wolf: Если вдруг проснёшься не совсем мёртвой — загляни в safe_zone. Там висит один пост, и я не уверен, что мои слова будут… достаточно живыми».
Соня некоторое время лежала, уставившись в сообщение. Словосочетание «не совсем мёртвой» выглядело подозрительно точным описанием её состояния.
Она перевернулась на спину, потянулась за наушниками, надела их одной рукой. Другой разблокировала телефон, открыла сервер.
Список каналов уже не пугал — глаза привыкли к этим названиям. «safe_zone» подсвечивался жирнее остальных: внутри было непрочитанное.
Она кликнула.
Пост оказался не длинным. Пара строк от пользователя с мягким ником «снежныйшум»:
«Сорок минут назад вышла от психиатра. Сказал, что то, что со мной, — это „не болезнь, а характер“, и что „надо просто собраться“. Я третий год не могу встать с кровати нормально, но, видимо, я просто… ленивая. Извините, что вообще сюда пишу».
Под ним висели реакции — сердечки, «с тобой», «обнимаю». Пара человек уже ответили «это звучит очень больно» и «ты не обязана извиняться за свои чувства», но всё равно ощущалось, будто текст повис в воздухе, как человек, ступивший на мост и не уверенный, есть ли перила.
Соня уставилась в экран, ощущая, как привычный ком в горле поднимается выше.
Фраза «это не болезнь, а характер» ударила особенно больно. Слишком знакомо.
Пальцы сами опустились на клавиатуру.
Первый импульс был написать: «твой психиатр — идиот».
Она даже набрала это. Посмотрела. Стерла.
Если тут есть какие-то свои негласные законы, вряд ли они включают прямое оскорбление чужих врачей.
Она выдохнула, заставила себя формулировать иначе.
«Снежныйшум, мне очень жаль, что тебе сказали такую фразу. Она звучит обесценивающе. Три года тяжело вставать с кровати — это не „ленивый характер“. Это действительно тяжело. Ты уже сделала много просто тем, что дошла до врача и написала сюда. Если захочешь, можем вместе подумать, искать другого специалиста или хотя бы собрать вопросы, с которыми идти дальше. Но даже если нет сил — ты всё равно не „просто ленивая“. Ты человек, которому сейчас очень плохо».
Она перечитала. Пальцы дрожали. Слишком серьёзно? Слишком много «ты»? Слишком… вообще?
Привычная часть мозга зашептала: «кто ты такая, чтобы лезть со своими умными мыслями, ты даже себе помочь не можешь».
Но синяя кнопка «отправить» уже светилась, как красная.
Соня прикусила губу, нажала «отправить».
Сообщение улетело.
Через пару секунд под ним появилась маленькая серо-зелёная галочка: доставлено.
Через ещё несколько — реакция в виде благодарного смайлика.
Ник «снежныйшум» не ответил словами. Но сама реакция была чем-то вроде слабого кивка.
В личке мигнуло новое сообщение:
«root_wolf: Вот поэтому я и звал Архитектора».
Она закатила глаза, хотя улыбка сама поползла вверх.
«Я просто первая проснулась», — написала она.
«Ты первая сказала то, что я бы попытался превратить в три абзаца про статистику, — ответил он. — Иногда людям нужен не анализ, а человеческое „я верю, что с тобой правда тяжело“».
Она задумалась.
«Слушай, — добавила через пару секунд, — а твой закреп в safe_zone… Он очень правильный, но довольно сухой. Как инструкция на микроволновке. Можно я попробую его… переписать? С твоего, конечно, благословения».
Минуту он не отвечал. Она уже успела представить, как он на том конце напрягся, как допустил ошибку в идеальном коде доверия: «пришла, ничего не понимает, и уже хочет переписать мой первый канал».
Потом всплыло:
«Я как раз собирался просить тебя об этом. Архитектор же. Я могу сделать логические правила, но мне тяжело с формулировками, которые не звучат как техзадание».
Она почувствовала облегчение почти физически.
— Тогда открывай блокнот, Волк, — пробормотала она вслух и перешла в голосовой.
Они сидели в пустом голосовом канале вдвоём, как в полутёмной комнате с одной настольной лампой. На экране был открыт текст закреплённого сообщения.
Старый вариант гласил примерно следующее: «Канал для выражения эмоциональных состояний. Запрещено обесценивание, газлайтинг, советы без запроса. Модерация осуществляется…» — дальше шёл мини-юридический трактат.
— По сути — всё идеально, — сказала Соня. — По ощущениям — как инструкция на стене цеха.
— Я боялся звучать навязчиво тёплым, — признался Ден. — И боялся обещать того, чего не смогу гарантировать.
— Давай сделаем так, чтобы в первом абзаце человек понял, что он имеет право сюда зайти, даже если ещё не придумал «правильные» слова, — предложила она.
Пальцы быстро набрали новый текст:
«Это место, куда можно прийти с любыми чувствами — даже если ты сам считаешь их „глупыми“, „слишком сильными“ или „недостаточно серьёзными“. Здесь не требуют „собраться“ и не сравнивают, у кого хуже. Здесь можно просто сказать „мне плохо“ — и этого достаточно, чтобы тебя услышали».
Ден молчал так долго, что Соня успела трижды пожалеть, что лезет со стилем в его святыню.
Потом он тихо сказал:
— Вот. Вот это то, что я хотел, но не мог… сформулировать.
— Я просто перевела с языка чувств на язык текста, — отмахнулась Соня. — Дальше можно оставить твои пункты про триггеры и газлайтинг, только разбить на строки, чтобы не слипалось.
Они вместе раскладывали правила так, чтобы каждое выглядело не как приговор, а как обещание.
«Мы не будем говорить „сам виноват“» — вместо «запрещено обвинять пострадавшего».
«Ты не обязан отвечать на вопросы, если устал» — вместо «не злоупотреблять вниманием».
Каждое такое «мы» немного удивляло Соню. Привычнее было видеть в правилах «администрация оставляет за собой право». Здесь администрация почему-то включала себя в общее «мы» вместе с теми, кто едва держится.
— Хочешь, покажу одну штуку? — вдруг сказал Ден.
— Ты уже показываешь, — напомнила она.
— В смысле, реакцию людей в реальном времени, — пояснил он. — Я сейчас обновлю закреп, а ты посмотри, что будет.
Он нажал пару клавиш. Закреплённое сообщение сменилось прямо у неё на глазах, словно кто-то сменил вывеску над дверью.
Через пару минут под закрепом начали появляться реакции: сердечки, «спасибо», «как будто про меня». Один из участников написал: «я три дня не решался сюда написать, потому что не знал, достаточно ли у меня „по шкале страданий“. Сейчас стало легче нажать на поле ввода».
Соня прикусила губу.
— Вот, — тихо сказал Ден. — Ради такого я вообще всё это и городил. Архитектура!
— Это не архитектура, это просто пару слов, — возразила она.
— Слова вообще не бывают «просто словами», — отозвался он. — На них тут многое держится.
Она хотела сказать что-то саркастическое, но не получилось: в горле встал ком.
— Раз уж ты официально вмешалась в святая святых, — Ден сделал вид, что кашляет строго, — давай я познакомлю тебя с теми, кто вообще помогал это поднимать.
— Это чтобы они сразу могли пожаловаться на меня главному? — буркнула Соня.
— Это чтобы ты поняла, что дом строил не один человек, — спокойно ответил он.
Они перешли в голосовой «кухня». Там уже кто-то был.
— Волк, ты привёл строителя или ревизора? — первым откликнулся Феникс.
Голос был всё такой же живой, чуть ироничный.
— Архитектора, — поправил Ден. — Лиса, знакомься: это Феникс.
— Привет, Лиса, — дружелюбно сказал тот. — Двадцать лет, официально считаюсь «сначала всё сломал, потом выжил». Здесь почти с самого начала. Следить, шутить, иногда вытаскивать людей за шкирку из «я никому не нужен».
Соня улыбнулась:
— Звучит как должностная инструкция супергероя-реалиста.
— Скорее супергероя-уставшего, — поправил он. — Но тут хотя бы можно быть уставшим вслух.
— Хаос? — позвал Ден.
— Я… тут, — очень тихо откликнулся другой голос. — Привет. Я Хаос. Мне шестнадцать. Я мало говорю.
— Но много слышит, — вмешался Феникс. — И умеет не делать вид, что ему не страшно. Это, между прочим, супернавык.
— Ненавижу, когда меня спрашивают «почему ты такой тихий», — выдохнул Хаос. — Здесь спрашивают «хочешь, чтобы я посидел с тобой в тишине?». Поэтому… я здесь.
Соня кивнула, хотя знала, что никто этого не видит.
— Очень хорошо понимаю, — ответила она. — Мне всегда казалось, что молчание — это преступление. Приятно знать, что есть места, где оно — формат.
В чат параллельно упало сообщение от «Тихого»:
«Я Тихий. Мне 22. Я не говорю, но читаю почти всё. иногда пишу. Если что — могу быть тем, кто просто рядом в чате, когда все остальные уже легли».
Соня набрала:
«Рада знакомству. Такие „просто рядом“ очень ценны».
— А я Зеркало, — ещё один голос, с лёгкой хрипотцой. — У меня… нас несколько. Официально это записано как диагноз, неофициально — как «здесь нас любят каждого и всех».
— Зеркало помогает видеть разных себя, — пояснил Ден. — И напоминать, что «я сегодня другой» — это не повод для расстрела.
Соня рассмеялась:
— Я уже не успеваю записывать ваши формулировки.
— А ты запоминай ощущениями, — предложил Феникс. — Если ты архитектор, тебе важнее, как пространство дышит, чем как оно подписано.
Незаметно для себя она перестала сутулиться. Спина выпрямилась сама собой, плечи напряглись.
Когда все разошлись кто куда, они остались опять вдвоём.
— Они приняли тебя, — констатировал Ден.
— С чего ты взял? — Соня попыталась не выдать слишком сильную надежду.
— Хаос вообще не всегда здоровается вслух, — ответил он. — Тихий не всегда сразу пишет. А Феникс сдержался и не выдал ни одной дурацкой шутки про «дизайнера от бога». Это высшая форма доверия.
Она фыркнула:
— Ну всё, теперь придётся соответствовать.
— Не придётся, — возразил Ден. — В этом смысл дома. Здесь можно не соответствовать. Можно быть.
Слово «быть» повисло в воздухе и осталось тяжёлым, но тёплым.
Соня выключила микрофон, откинулась на спинку стула и впервые за долгое время поймала странное состояние. Ей по-прежнему было тяжело. Никуда не делись ни пустота, ни привычное «а смысл?». Но к этому добавилось ещё что-то странное и непривычное — лёгкое ощущение, что без неё здесь было бы чуть-чуть иначе.
Не спасительница, не центр вселенной. Просто человек, у которого сегодня получилось кому-то пригодиться. Для её последних месяцев этого было непривычно много.
Глава 6. Ремонт
Утро у Дена началось с ошибки. Не в коде — в интерфейсе.
Код как раз давно вёл себя прилично: тесты проходили, логов с красными строчками не было, сервер не падал. Зато панель управления ролями выглядела тесной, кривой и без логики.
Он сидел над этой панелью уже третий час.
Слева — дерево каналов. Справа — таблица: роли, галочки, права. В голове всё складывалось в ясную конструкцию: сверху — админы, ниже — модераторы, ещё ниже — участники, у каждого свой набор флажков «можно / нельзя».
Логично. Стройно. И — абсолютно нечитаемо.
— Это невозможно, — пробормотал он. — Всё же понятно.
В ответ внутри ехидно хмыкнул голос, очень похожий на Соню: «Понятно кому?»
Он скривился и всё-таки открыл вчерашний чат.
На экране всплыл её скриншот этой самой таблицы с подписью: «Волк, честно, это похоже на схему метро для людей без глаз».
Вчера он отшутился. Сегодня это уже чувствовалось не как шутка, а как баг-репорт.
В правом нижнем углу мигнуло новое уведомление: входящий голосовой вызов.
«Лиса».
Он машинально поправил наушники, щёлкнул «принять».
— Доброе утро, архитектор, — голос Сони был ещё сонный, но в нём уже слышался азарт, а не пустота.
— Оно не доброе, — честно сообщил Ден. — Мой интерфейс официально признан преступлением против человечества.
— Это я ещё мягко выразилась, — отозвалась девушка. — Давай картинку сюда, я буду страдать по делу.
Он включил демонстрацию экрана. Таблица с ролями заняла половину монитора: мелкий шрифт, тонкие границы, в каждом столбце — цепочки галочек. Для него это была аккуратная схема прав доступа. Для всех остальных — визуальный белый шум.
Соня молчала дольше обычного.
— Скажи честно, — выдала она наконец, — ты это для людей делал или чтобы тебе самому было спокойно?
— Для системы, — автоматически ответил Ден.
— Вот, — вздохнула Соня. — А люди — это побочный эффект у системы, да?
Он поморщился.
— Формулируй, — попросил он. — Что именно не так?
— То, что ты рисуешь электрический щиток, а не план квартиры, — сказала Соня. — Пользователь не мыслит категориями «роль имеет флаг на чтение в этом канале». Пользователь мыслит «мне сейчас страшно, я хочу просто почитать» или «мне плохо, я хочу куда-то вывалить» или «у меня есть ресурс поддержать других».
Ден задумался.
— То есть схема по правам — норм, — медленно произнёс он, — но интерфейс должен говорить не языком прав, а языком сценариев?
— Ура, — фыркнула она. — Ты сейчас почти сказал слово «опыт», но не будешь, да?
— Не буду, — согласился Ден. — Слишком маркетинговое.
— Тогда пусть будет так: у каждого есть свой маршрут по серверу, — предложила Соня. — И ты, как главный архитектор сети тоннелей, должен не только разложить провода, но и повесить таблички «сюда, если страшно», «сюда, если хочешь помогать», «сюда, если ищешь уголок интроверта».
Ден невольно хмыкнул. Образ оказался слишком точным.
— Давай по шагам, — сказал он. — Приходит новый человек. Что он говорит?
— В идеале — ничего, — ответила Соня. — В реальности: «я не знаю, что тут делать». Но если он всё-таки решится сформулировать, то будет что-то из серии:
— «Я хочу просто посидеть и почитать, мне пока страшно писать».
— «Мне хреново, но я не уверен, что это „достаточно хреново“, чтобы грузить».
— «Я хочу быть полезным, если могу».
— Так, — Ден откинулся в кресле. — Под сценарий «посидеть и почитать» я бы отдал safe_zone, ночное_уединение и творческий — если просто смотреть.
— Вот, — оживилась она. — Значит, это маршрут «наблюдатель». Для него в интерфейсе эти комнаты должны быть первыми в списке.
— А если «мне хреново»?
— Тогда safe_zone, шёпот, поддержка. И рядом можно объяснить, чем они отличаются: «сюда, если сил писать мало», «сюда, если ты готов расписать, что происходит», — Соня задумалась. — Чтобы человек не чувствовал, что делает «неправильный выбор».
В глубине мыслей щёлкнул знакомый тумблер: «задача принята».
— Это реально граф, — пробормотал Ден себе под нос. — Один и тот же набор узлов, разные веса рёбер, разные стартовые точки.
— Волк, — перебила Соня. — Людей «узлами» называть запрещено правилами приличия.
— Хорошо, — сдался Ден. — Это граф комнат. Люди — это… агенты маршрутизации.
— Всё равно жутко звучит, — фыркнула она. — Но направление верное.
Они переключились в совместное управление, и мышь плавно переехала к Соне.
— Смотри, — Лиса раздвинула таблицу, — вот у тебя «гость», «участник», «проверенный», «модератор», «ядро». Для тебя это уровни доступа. Для обычного человека это ничего не значит.
— Эти названия уже обсуждались, — напомнил он. — Роль «ядро» придумал Феникс, я не могу её трогать, это священное.
— Спокойно, паника отменяется, — усмехнулась Соня. — Я не про сами названия, а про то, как это показывается. Ты же можешь дополнить. Типа:
— «Гость — можно заходить почти везде, лучше молча».
— «Участник — можно писать в открытых комнатах».
— «Проверенный — ещё и помогать другим».
— «Ядро — те, кто тут таскают кирпичи и чинят трубы».
— Какой ужас, — сказал он. — Меня записали в сантехники.
— Это лучше, чем в богов, — заметила Соня. — В бога ты и так играешь по умолчанию, когда решаешь, кому куда можно и нельзя.
Ден промолчал.
С одной стороны, его радовало, что кто-то вообще видит этот слой работы. С другой — от фразы «играешь в бога» руки сразу захотелось убрать от настроек.
Дальше спор перешёл к тому, что Ден считал священным: к плотности информации на квадратный сантиметр экрана.
— Убери, пожалуйста, этот микрошрифт, — попросила Соня уже третий раз. — Люди не обязаны включать орлиный режим зрения, чтобы понять, куда им можно писать.
— Если сделать крупнее, всё перестанет влезать в один экран, — возразил он. — Уйдёт общая картина.
— И что? — она искренне удивилась. — Скролл придумали не только для бесконечных лент с мемами.
— Скролл — это потеря контекста, — упрямо сказал Волк. — Ты видишь только кусок схемы и не понимаешь, как он связан с остальным.
— Микрошрифт — это потеря глаз, — так же упрямо отрезала Лиса. — Ты не понимаешь, как от него болит голова, когда у тебя и так мозг на минималках.
Ден раздражённо щёлкнул по одному из ползунков, окно поехало вниз больше, чем нужно.
— Ты сердишься, — спокойно констатировала Соня.
— Я… — он задержал дыхание, потом шумно выдохнул. — Меня бесишь не ты. Меня бесит, что всё, что я делал «удобным», оказывается удобным только для меня.
— Ну, да, — кивнула она. — Ты строил это как консоль для админа. А мы пытаемся превратить её в дом для людей.
— Прекрасно, — буркнул Ден. — Админ остаётся без консоли.
— Админ остаётся с каркасом, — поправила Соня. — Ты уже сделал большую сложную часть: настроил, чтобы ничего не ломалось, чтобы права не пересекались, чтобы никто не мог случайно увидеть чужие тайные комнаты. А мы сейчас вешаем таблички на двери. И передвигаем пару стульев, чтобы не спотыкались.
Повисла неловкая пауза.
— И да, — добавила она тише, — ты вообще-то имеешь право злиться, когда тебе влезают в любимую консоль. Это не отменяет того, что консоль нужно подкрутить.
Ден почувствовал, как напряжение в плечах чуть отпускает.
— Ладно, — сказал он. — Давай твой крупный шрифт.
— Ну вот, эмпатия победила твои пиксели, — удовлетворённо заключила Соня.
К обеду таблица перестала быть «схемой метро» и стала хоть отдалённо похожа на карту комнат.
Рядом с названиями ролей появилось короткое человеческое описание. Каналы сгруппировали не только по технической логике, но и по «режимам»: «почитать», «поговорить о себе», «поддержать других», «техническая подложка».
В паре мест Ден всё равно упрямо оставил тонкие линии — чтобы видеть структуру. В паре других Соня настояла на разносе: «сюда человек зайдёт первым делом, поэтому никаких страшных слов в названии».
Вечером всплыло первое внешнее подтверждение, что они вообще не зря ковырялись.
В «кухне» кто-то из старичков написал: «Карта прав стала меньше походить на ад. Спасибо тем, кто это сотворил».
Феникс тут же отозвался: «Это Лиса. Волк, сними уже с неё тег „тестовый архитектор“. Она уже деплоится в боевую».
Соня фыркнула в микрофон:
— Я не просила теги.
— Это не тег, — возразил Ден. — Это метка ответственности.
— Ты сейчас звучишь как техдир, — заметила она.
Бесплатный фрагмент закончился.
Купите книгу, чтобы продолжить чтение.