Режим невидимки

Пролог. Тень на записи

Кабинет был тесным, будто специально созданным для того, чтобы человек в нём чувствовал себя лишним. Стены, выкрашенные в бледно‑серый, почти сливались с бетонными перекрытиями; на одной из них висели три монитора, каждый показывал свой фрагмент коридора исследовательского центра — стерильно чистый, с ровными линиями плитки, с одинаковыми дверями, за которыми прятались лаборатории, серверные и комнаты для совещаний. В углу стоял старый металлический шкаф с папками, на полке — коробка с дисками, покрытая тонким слоем пыли.

За столом сидел Игорь, старший аналитик безопасности. Ему было сорок два, и большую часть своей жизни он провёл, глядя на экраны, где ничего не происходило. Именно это он и любил: отсутствие событий, предсказуемость, ровные графики, которые не прыгали без причины. Но сегодня что‑то было не так.

Он потянулся к чашке с остывшим кофе, сделал глоток, поморщился и снова уставился на центральный монитор. Там, в кадре из коридора у северного крыла, было пусто. Слишком пусто. Не просто «никто не ходит», а будто пространство ждало, когда в него кто‑то войдёт, чтобы тут же стать неправильным.

Игорь перемотал запись на десять минут назад. На экране появился человек. Обычный, ничем не примечательный: тёмная толстовка, джинсы, волосы чуть длиннее, чем принято в центре, но не настолько, чтобы это бросалось в глаза. Он шёл быстро, уверенно, как тот, кто знает, куда идёт и зачем.

— Вот ты, — тихо пробормотал Игорь, будто человек на экране мог его услышать. — Ты мне и нужен.

Он увеличил изображение, приблизил силуэт. И тут впервые заметил странность: края фигуры будто дрожали, как горячий воздух над асфальтом в июле. Контур не был чётким, он расплывался, словно камера не могла удержать фокус на этом человеке.

Игорь нахмурился, открыл панель метаданных. Имя, ID, номер пропуска — ничего. Система не распознала его. Это случалось редко, но случалось: сбой считывания, грязный пропуск, неудачный угол. Обычно внизу экрана всплывало: «Ожидание идентификации», и через пару секунд система подтягивала данные из базы. Но здесь не было даже этого.

— Ладно, — снова пробормотал Игорь. — Посмотрим дальше.

Человек прошёл мимо камеры, свернул за угол — и в этот момент произошло нечто, от чего у Игоря по спине пробежал неприятный холодок. Силуэт не просто исчез из кадра. Он будто растворился: сначала края стали совсем размытыми, потом фигура начала терять плотность, как дым, который втягивают в вытяжку. И через секунду на экране осталась только пустая стена. Ни смазанного следа, ни тени, ни намёка на то, что секунду назад здесь кто‑то был.

Камера продолжала снимать. Плитка, стыки, угол стены, дверь с табличкой «Доступ по пропускам». Всё было на месте. Только человека не было.

Игорь замер, не отрывая взгляда от экрана. Он перемотал вперёд на несколько секунд — ничего. Назад — тот же момент: человек появляется, расплывается, исчезает.

— Это невозможно, — тихо сказал Игорь, будто пытался убедить сам себя. — Даже если пропуск не считывается, система должна зафиксировать движение. Должен быть хотя бы тепловой след. Должны быть пиксели, которые двигались.

Он открыл второй монитор, вывел туда тепловую карту того же коридора. В момент, когда человек проходил мимо, на экране не было никакого всплеска температуры. Никаких аномалий. Только ровный фон, будто в коридоре никого не было.

Третий монитор показывал данные с датчиков движения. Игорь щёлкнул по графику: линия была плоской, без единого пика. Датчик не зафиксировал ни шага, ни колебания воздуха.

— Да как же так? — Игорь уже не шептал, а говорил вслух, потому что тишина в комнате начинала давить.

Он снова посмотрел на центральный экран, на тот самый кадр, где человек только начинал расплываться. Увеличил до максимума. И вдруг заметил деталь, от которой ему стало по-настоящему не по себе: в углу кадра, там, где обычно выводился ID сотрудника, была пустота. Не «Неизвестно», не «Ошибка», а просто ничего. Как будто система даже не пыталась его распознать. Как будто для неё этого человека не существовало.

Игорь потянулся к телефону, набрал внутренний номер службы технической поддержки.

— Слушаю, — голос на том конце был бодрым, привычным.

— У меня тут запись с северного коридора, — сказал Игорь, стараясь, чтобы голос звучал спокойно. — Есть движение, но система не фиксирует ID, нет данных с датчиков, нет теплового следа. И… человек исчезает. Буквально.

На том конце повисла пауза.

— Исчезает? — переспросил техник. — Как это?

— Как будто растворяется. Контур расплывается, и через секунду его нет. Ни следа, ни тени.

Ещё одна пауза. Потом вздох.

— Слушай, Игорь, ты сколько уже сидишь? Может, глаза устали? Бывает, матрица глючит, артефакты появляются. Или видеофайл битый. Скинь мне фрагмент, я гляну.

Игорь стиснул зубы. Он не был тем, кто видит глюки там, где их нет. Он видел достаточно сбоев, чтобы отличать их от… этого.

— Файл не битый, — твёрдо сказал он. — Я три раза перемотал. Один и тот же момент. И датчики молчат. Как будто его не было.

Техник помолчал, потом вздохнул уже по-другому — не раздражённо, а будто что‑то вспомнил.

— Знаешь, — тихо сказал он, — пару недель назад ребята из спецпроекта что‑то тестировали в северном крыле. Говорили, что будут работать с маскировкой цифровых следов. Может, это их тесты?

Игорь почувствовал, как внутри всё сжалось. Спецпроект. Это слово в центре произносили шёпотом, как ругательство. Туда не пускали обычных безопасников, туда не выкладывали отчёты в общую базу, туда вообще старались не смотреть.

— Они что, могут стирать людей из записей? — спросил Игорь, сам не веря, что произносит это вслух.

— Не знаю, — ответил техник. — Но если они что‑то там крутили, то лучше не лезь. Пусть сами разбираются. Если хочешь, я перешлю твой фрагмент куратору проекта. Но… честно? Лучше забудь.

Игорь хотел сказать, что не может забыть. Что он видел, как человек перестал существовать на записи. Что это не просто сбой, а что‑то неправильное, что ломает саму логику системы. Но вместо этого он только тихо ответил:

— Хорошо. Перешли.

Он положил трубку, откинулся на спинку стула и снова посмотрел на экран. Кадр застыл на моменте, когда силуэт уже почти исчез. Пустая стена, ровные линии, тишина.

И вдруг ему показалось, что в этой тишине есть что‑то большее, чем просто отсутствие звука. Будто сама система «выдохнула», когда человек пропал, будто она была рада, что его больше нет в её данных.

Игорь медленно потянулся к мышке, чтобы закрыть файл, но в последний момент замер. Он снова посмотрел на угол кадра, где должен был быть ID. Там по-прежнему ничего не было. Ни имени, ни номера, ни даже ошибки. Только пустота.

«Как будто его никогда не было», — подумал Игорь. И от этой мысли ему стало холодно, несмотря на тёплый воздух в кабинете.

Он всё-таки закрыл файл, выключил мониторы, собрал бумаги и вышел из кабинета. В коридоре было тихо, слишком тихо для центра, где всегда что‑то гудит, щёлкает, мигает. Игорь шёл по тому самому коридору, смотрел по сторонам, будто ожидал увидеть того человека снова — или хотя бы след, который он мог оставить. Но не было ничего: ни смятой плитки, ни царапины на стене, ни забытой вещи. Только ровные двери, одинаковые таблички и тишина, которая теперь казалась ему не спокойной, а насторожённой.

Когда он вышел на улицу, солнце уже садилось, окрашивая здания в оранжевый цвет. Игорь глубоко вдохнул прохладный воздух, пытаясь смыть с себя ощущение, что он только что видел что‑то, чего не должно было быть.

Но вечером, уже дома, когда он сидел на кухне и пил чай, ему вдруг вспомнился тот кадр: пустая стена, ровный пол, и место, где секунду назад был человек. И он понял, что самое страшное не в том, что человек исчез. А в том, что система даже не заметила, что он был.

На следующий день фрагмент записи пропал из архива. Файл удалили, а в журнале событий появилась пометка: «Ошибочная запись, артефакты сжатия». Игорь хотел спросить, кто это сделал, но куратор спецпроекта посмотрел на него так, что вопрос застрял в горле.

А через неделю в том же коридоре снова появилась странная тень. Она двигалась, расплывалась и исчезала, не оставляя следа. Но на этот раз в углу экрана, где раньше была пустота, мелькнул короткий звуковой сигнал — будто кто‑то пытался крикнуть, но его заглушили. И подпись к файлу изменилась: вместо имени — строка «НЕОПРЕДЕЛЕНО».

Часть 1. Видимость

Глава 1. Тестовый прогон

Лаборатория пахла озоном, пластиком и чуть‑чуть — старым кофе: запах, который въедается в стены, когда люди работают по трое суток подряд и забывают выносить кружки. В центре комнаты стоял стол с разбросанными схемами, рядом — стойка с прототипами, на которой VR‑шлем выделялся среди остального железа: массивный, угловатый, с тёмными линзами, будто не устройство, а маска.

Марк стоял перед зеркалом, которое кто‑то давно повесил на дверь кладовки, и поправлял ремешок шлема. Он улыбался, но улыбка была нервной — такой, когда хочется показать всем, что ты спокоен, хотя внутри всё поджимается от предвкушения.

— Ну, давай, — тихо сказал он шлему, будто тот мог ответить. — Покажи, на что ты способен.

Рядом, у стойки с серверами, стоял Вадим — старший инженер проекта, человек, который не верил ни в чудеса, ни в баги, только в лог‑файлы и контрольные суммы. Он смотрел на Марка с лёгкой усмешкой, в которой было больше беспокойства, чем иронии.

— Ты уверен, что хочешь это делать прямо сейчас? — спросил Вадим. — У нас ещё не все тесты пройдены. И модуль «невидимки» вообще не для открытой среды.

Марк пожал плечами, стараясь выглядеть небрежно.

— А когда будет «идеально»? Мы уже полгода сидим и смотрим, как строчки кода бегают по экранам. Надо же когда‑то проверить, работает ли это в реальности.

Вадим хмыкнул, но спорить не стал. Он знал Марка слишком давно: если тот решил, значит, сделает, даже если потом придётся откатывать систему и чинить всё вручную.

— Ладно, — сказал Вадим, открывая ноутбук. — Но только три минуты. И только в симуляции городской среды. Никаких внешних подключений, никаких камер за пределами тестового контура. Понял?

Марк кивнул, чувствуя, как внутри всё сжимается от смеси азарта и страха.

— Понял. Три минуты. Симуляция. Без внешних подключений.

Он надел шлем. Мир вокруг исчез, сменившись на цифровую проекцию: улицы, тротуары, фасады домов, светофоры, камеры на столбах — всё было выстроено с пугающей точностью, будто кто‑то сфотографировал реальный город и превратил его в код. Марк сделал шаг и почувствовал, как пол лаборатории слегка вибрирует под ногами — система тактильной обратной связи пыталась имитировать асфальт.

— Запускаю режим «невидимки», — тихо сказал Марк, нажимая виртуальную кнопку на интерфейсе.

В ту же секунду в симуляции что‑то изменилось. Камеры, которые до этого поворачивались вслед за ним, замерли. Датчики движения перестали реагировать. В интерфейсе рядом с его аватаром загорелась надпись: «Статус: невидим. Цифровой след: отсутствует».

Марк улыбнулся. Это было странно, но приятно — ощущать себя невидимым, хотя он знал, что это просто код, просто алгоритм, который говорит системе: «Не замечай меня».

Он пошёл по виртуальной улице, заглядывая в витрины, останавливаясь у светофоров, проверяя, как система на него реагирует. Ни одного уведомления, ни одного маркера, ни одного «обнаружено». Он был невидим.

Три минуты пролетели как одно мгновение. Марк снял шлем и снова увидел лабораторию: стойки, схемы, Вадима, который смотрел на него с выражением, которое Марк не мог сразу расшифровать — то ли тревога, то ли раздражение.

— Ну? — спросил Марк, снимая шлем и кладя его на стойку. — Что там в логах?

Вадим медленно закрыл ноутбук, будто не хотел показывать то, что там было.

— В логах пусто, — тихо сказал он. — Ты… ты не появляешься ни в одном отчёте за сегодня. Ни в камерах, ни в чатах, ни в отчётах о доступе. Как будто тебя вообще не было в комнате.

Марк замер, улыбка сползла с лица.

— Что значит «не было»? — переспросил он, стараясь, чтобы голос звучал спокойно. — Я же только что был здесь. Ты же видел.

Вадим посмотрел на него, и в его взгляде было что‑то, от чего Марку стало не по себе.

— Я видел, как ты надел шлем, — медленно сказал Вадим. — И видел, как снял. Но между этим… ничего. Ни одного кадра, ни одной строчки. Как будто ты исчез.

Марк рассмеялся, но смех получился нервным, натянутым.

— Это какой‑то баг, — сказал он, стараясь звучать уверенно. — Наверное, модуль «невидимки» как‑то зацепил внутренние логи. Надо откатить, проверить код.

Вадим кивнул, но не спешил открывать ноутбук.

— Может, и баг, — тихо сказал он. — Но знаешь, что самое странное? Я только что спросил у ребят из соседней комнаты, были ли они с тобой сегодня. Они сказали, что тебя не было весь день.

Марк почувствовал, как внутри что‑то сжимается, будто невидимая рука схватила его за грудь и чуть сжала.

— Они что, шутят? — спросил он, оглядываясь, будто ожидал увидеть кого‑то, кто сейчас выйдет и скажет: «Да ладно, мы просто разыграли!»

Но в лаборатории было тихо. Только гудел кондиционер, да где‑то в углу мигал индикатор на сервере.

— Не шутят, — тихо сказал Вадим. — Они искренне не помнят.

Марк подошёл к монитору, на котором выводилась запись с камеры наблюдения. На экране он увидел, как входит в лабораторию, надевает шлем… и дальше — пустота. Камера продолжала снимать пустую комнату, стойку, схемы, но не его. Как будто он растворился в воздухе.

— Этого не может быть, — тихо пробормотал Марк, глядя на экран. — Это какой‑то сбой. Ошибка в синхронизации.

Вадим положил руку ему на плечо, и этот жест был неожиданно тёплым, почти отеческим.

— Слушай, — тихо сказал он. — Давай пока не будем никому говорить. Я сам всё проверю, посмотрю логи, сравню контрольные суммы. А ты… постарайся не запускать этот режим без меня, ладно?

Марк кивнул, но внутри у него всё дрожало. Он пытался убедить себя, что это просто баг, просто ошибка в коде, которую можно исправить парой строк. Но где‑то в глубине души он понимал: это не просто сбой. Это что‑то большее. Что‑то, что стирает не только цифровой след, но и память людей.

Он отошёл к окну, посмотрел на город за стеклом: на машины, на людей, на камеры на столбах, которые смотрели на всех, кроме него. И вдруг ему стало страшно — не от того, что система ошиблась, а от того, насколько легко она могла стереть человека из реальности.

— Знаешь, — тихо сказал он, не оборачиваясь, — мне кажется, мы создали что‑то опасное.

Вадим вздохнул, подошёл к нему, встал рядом.

— Мы всегда создаём что‑то опасное, — тихо сказал он. — Вопрос в том, сможем ли мы это контролировать.

Они стояли у окна, смотрели на город, и каждый думал о своём. Марк — о том, как легко исчезнуть. Вадим — о том, как трудно потом найти того, кто стёрся из памяти системы.

Когда Марк вернулся к своему столу, он заметил на мониторе уведомление: «Обновление модуля „невидимка“: рекомендовано к установке». Он на секунду замер, потом медленно закрыл окно.

«Не сейчас», — подумал он. — «Сначала надо понять, что происходит».

Вечером, когда лаборатория опустела, Марк остался один. Он сидел перед монитором, смотрел на пустую комнату на записи камеры и пытался убедить себя, что всё в порядке. Но каждый раз, когда он смотрел на то место, где должен был быть он, ему казалось, что пустота там слишком правильная, слишком ровная — будто её специально оставили, чтобы никто не заметил, что кого‑то не хватает.

Он выключил монитор, собрал вещи и вышел на улицу. Город шумел, мигал огнями, гудел машинами, и в этом шуме было что‑то успокаивающее: здесь его видели, здесь он был реальным.

Но когда он достал телефон, чтобы вызвать такси, он вдруг заметил, что в приложении нет ни одной его поездки за сегодня. Как будто он никуда не ездил, как будто весь день не существовал.

Марк сжал телефон в руке, посмотрел на свои пальцы, на линии на коже, на шрам на запястье — старый, от велосипедной аварии, который он помнил так ясно, будто это было вчера.

«Я есть, — подумал он, глядя на шрам. — Я здесь. И я не исчез».

Но где‑то внутри, под рёбрами, всё ещё сжималось то неприятное чувство — чувство, что реальность начала сомневаться в его существовании. И это было страшнее любого кода, любого сбоя, любого бага. Потому что если система может стереть человека, то кто докажет, что он вообще был?

Глава 2. Проверка логов

Лаборатория опустела. Дневная суета сменилась вечерней тишиной, в которой каждый звук становился громче: скрип стула, тихий гул серверов, щелчок клавиши. Марк сидел перед тремя мониторами, и перед ним разворачивалась картина, которая с каждой минутой становилась всё более пугающей.

На первом экране шла перемотка записи с камеры у входа. Он видел, как люди входят и выходят: кто‑то торопится, кто‑то останавливается поправить рюкзак, кто‑то смотрит в телефон. Система автоматически помечала каждого: имя, ID, время входа, уровень доступа. Всё работало как часы — для всех, кроме него.

Он снова и снова прокручивал момент, когда сам вошёл в здание. Вот он появляется в кадре, уверенно шагает к турникету, прикладывает пропуск… и дальше — ничего. Пропуск сработал, турникет щёлкнул, но система не зафиксировала ни его лица, ни номера пропуска, ни времени прохода. Как будто он прошёл сквозь невидимую щель, которую система предпочла не замечать.

— Этого не может быть, — тихо пробормотал Марк, будто пытался убедить не экраны, а самого себя.

Рядом, на втором мониторе, бежали серверные логи. Строки текста мелькали, складываясь в историю дня: запросы, ответы, ошибки, подтверждения. Марк искал любые упоминания себя: свой логин, IP‑адрес, сессии. Он вводил разные варианты — полное имя, ник, сокращённую версию, даже старый тестовый аккаунт. Но система возвращала одно и то же: «Ничего не найдено».

Он откинулся на спинку стула, потер виски, чувствуя, как нарастает напряжение. Это был не просто сбой. Сбои бывают хаотичными: то одна строка исчезнет, то другая, то появится лишняя. А здесь была пугающая последовательность: полное, аккуратное отсутствие любых следов его присутствия.

Третий монитор показывал корпоративный мессенджер. Марк открыл свои чаты. В рабочем канале, где они обсуждали задачи проекта, не было ни одного его сообщения за сегодня. Он точно помнил, что отправлял несколько сообщений: уточнял сроки, просил Вадима проверить один из скриптов, скидывал ссылку на документацию. Но теперь этих сообщений не было. Более того, не было даже намёка на то, что он участвовал в беседе.

Марк открыл личные чаты с Вадимом. Там тоже было пусто. Ни «Привет, я на месте», ни «Посмотри логи», ни даже вчерашнего «Спокойной ночи». Как будто весь день его не существовало.

Он потянулся к телефону, разблокировал экран, открыл историю звонков. Последний вызов был вчера вечером. Сегодня — ничего. Ни входящих, ни исходящих. Он попытался вспомнить: звонил ли он кому‑нибудь? Писал? Может быть, он вообще не доставал телефон из кармана?

Но память упрямо возвращала ему детали: вот он пишет сообщение Вадиму, вот проверяет почту, вот открывает приложение такси, чтобы заказать машину после работы. Он помнил ощущение холодного стекла в руке, звук уведомления, который прозвенел, когда пришло подтверждение заказа. Он помнил всё это так ясно, что казалось невозможным, что этого не было.

И всё же экраны говорили обратное.

Марк снова вернулся к камерам. Он открыл архив с другой камеры — той, что висела в коридоре рядом с их лабораторией. На записи он снова увидел себя: вот он идёт по коридору, вот останавливается у кулера, делает глоток воды, улыбается кому‑то, кто выходит из соседней комнаты. И снова — в следующий момент его нет. Как будто система аккуратно вырезала его из кадра, оставив только фон: стены, двери, кулер.

Он увеличил изображение, пытаясь найти хоть какой‑то след: тень, блик, искажение. Но не было ничего. Даже тени.

В этот момент дверь лаборатории приоткрылась, и вошёл Вадим. Он держал в руках бумажный стаканчик с кофе и выглядел так, будто только что вернулся с улицы: волосы чуть взъерошены, куртка небрежно наброшена на плечо.

— Ты ещё здесь? — спросил Вадим, ставя стаканчик на стол. — Я думал, ты давно ушёл.

Марк медленно повернул голову, посмотрел на него. В его взгляде было не раздражение, а что‑то более глубокое — почти отчаяние.

— Посмотри, — тихо сказал Марк, указывая на мониторы. — Вот запись с камеры. Вот логи. Вот чаты. Меня нигде нет. Ни в одном отчёте, ни в одной переписке, ни в одном логе. Как будто меня не было сегодня в здании.

Вадим нахмурился, подошёл ближе, посмотрел на экраны. Он не стал сразу отмахиваться, не стал говорить, что это невозможно. Вместо этого он молча взял мышку, открыл несколько окон, проверил настройки камер, заглянул в системные журналы.

— Ладно, — наконец сказал он, откидываясь назад. — Давай проверим по‑другому. Ты сегодня заходил в систему? Входил под своим логином?

Марк кивнул.

— Конечно. Я запускал тесты, открывал репозиторий, проверял задачи в трекере.

Вадим открыл систему учёта рабочего времени. На экране появилась таблица: имена сотрудников, время входа и выхода, общее количество часов. Марк нашёл свою строку. Время входа — пусто. Время выхода — пусто. Общее время — ноль.

— Но я же входил, — тихо сказал Марк. — Я помню, как вводил пароль. Помню, как система показывала мне список задач.

Вадим посмотрел на него, и в его взгляде было сочувствие, смешанное с тревогой.

— Может, у тебя просто не засчиталось, — осторожно сказал он. — Бывает, сессия не инициализируется, если сеть лагает. Или кэш сбился.

— А камеры? — спросил Марк, голос его звучал чуть громче, чем нужно. — А чаты? А логи? Ты хочешь сказать, что везде одновременно произошёл сбой? И везде стёрлись только мои данные?

Вадим помолчал, потом тихо сказал:

— Я не говорю, что это нормально. Но давай не будем делать поспешных выводов. Давай проверим ещё кое‑что.

Он открыл систему контроля доступа к серверной. В списке были все, кто заходил туда сегодня. Имена, время, продолжительность пребывания. Марка в списке не было.

— Я заходил туда утром, — упрямо сказал Марк. — Мы вместе проверяли конфигурацию. Ты сам мне открыл дверь.

Вадим медленно кивнул.

— Да, — тихо сказал он. — Ты заходил. Я помню.

Это «я помню» прозвучало как спасательный круг. Кто‑то помнил. Кто‑то видел.

— Значит, это не моя память, — тихо сказал Марк, будто боялся спугнуть эту мысль. — Значит, проблема в системе.

Вадим снова посмотрел на экраны, потом на Марка.

— Проблема есть, — согласился он. — Но она странная. Слишком… целенаправленная. Как будто кто‑то специально стёр твои следы.

Марк вздрогнул. Мысль о том, что кто‑то мог намеренно стереть его из системы, была ещё страшнее, чем мысль о сбое.

— Кто? — тихо спросил он. — Кому это нужно?

Вадим пожал плечами, но в его жесте не было безразличия — скорее усталость от попыток найти простое объяснение.

— Не знаю, — честно сказал он. — Может, это баг модуля «невидимки». Может, он как‑то зацепил внутренние системы. Или… кто‑то тестирует что‑то ещё.

Марк снова повернулся к мониторам. Он смотрел на пустые строки, на отсутствующие записи, на аккуратные пробелы там, где должны были быть его данные. И с каждой секундой ему становилось всё страшнее не от того, что система ошиблась, а от того, насколько идеально она это сделала.

— Мне нужно больше доказательств, — тихо сказал он, больше себе, чем Вадиму. — Если это баг, он должен оставить следы. Должны быть ошибки, предупреждения, аномалии. Но здесь… здесь идеальная чистота. Как будто меня никогда не было.

Вадим кивнул.

— Тогда давай искать эти следы, — спокойно сказал он. — Давай посмотрим на более глубокие логи, на системные журналы, на бэкапы. Если что‑то стёрлось, оно могло остаться в резервных копиях.

Они работали несколько часов. Вадим открывал папки, запускал скрипты, выводил на экран строки кода, которые для обычного человека выглядели бы как бессмысленный набор символов. Марк следил за каждым словом, за каждой строкой, надеясь увидеть хоть что‑то, что подтвердит его существование.

Но везде было одно и то же: пусто. Его данные исчезали даже из бэкапов. Как будто кто‑то или что‑то шло за ними следом и аккуратно убирало все упоминания о нём.

Когда они закончили, за окном уже темнело. Город зажигал огни, и лаборатория отражалась в стекле, становясь частью этой ночной картины.

— Слушай, — тихо сказал Вадим, закрывая ноутбук. — Я не знаю, что происходит. Но я не хочу, чтобы ты делал это в одиночку. Давай завтра подключим безопасников, посмотрим, не было ли каких‑то внешних вмешательств.

Марк кивнул, но внутри у него всё сжималось. Он не хотел привлекать безопасников. Не потому, что боялся, а потому, что понимал: если они начнут копать, они могут найти что‑то, чего он не готов увидеть.

— Спасибо, — тихо сказал он. — Но… давай пока не будем. Дай мне ещё день. Я хочу сам разобраться.

Вадим посмотрел на него долго, внимательно, будто пытался прочитать что‑то за словами.

— Хорошо, — наконец сказал он. — Один день. Но если ничего не найдёшь — мы идём к безопасникам. Обещай.

— Обещаю, — тихо ответил Марк.

Когда Вадим ушёл, Марк остался один. Он снова открыл запись с камеры, снова посмотрел на тот момент, когда исчезает. И вдруг ему показалось, что пустота там, где он должен быть, смотрит на него в ответ — холодная, равнодушная, идеально ровная.

Он закрыл все окна, выключил мониторы, собрал вещи. В коридоре было тихо, только где‑то далеко гудел лифт. Марк шёл к выходу, смотрел на камеры, которые висели на стенах, и чувствовал, как внутри растёт странное, почти парадоксальное желание: чтобы его заметили. Чтобы система снова увидела его, признала, записала.

«Я здесь», — мысленно повторял он, проходя мимо очередной камеры. — «Я есть. Я существую».

Но камеры молчали. Они снимали стены, двери, пустые коридоры. И не видели его.

Дома Марк сел на край кровати, достал из кармана бумажник и вытащил паспорт. Он открыл его, посмотрел на своё фото. Лицо было его, но в глазах читалось что‑то чужое — будто человек на фото знал что‑то, чего не знал сам Марк.

Он положил паспорт на стол, достал блокнот и ручку. На чистой странице он написал: «Сегодня я был в лаборатории. Я тестировал режим „невидимки“. Меня не было в логах, на камерах, в чатах. Но я был там. Я это помню».

Он подписал дату и время, поставил подпись. Потом положил ручку и посмотрел на страницу. Слова выглядели хрупкими, почти беспомощными перед лицом системы, которая могла стереть даже их.

Но пока они были здесь. Пока он их видел. И пока он помнил.

«Пока я помню, я существую», — подумал он, выключая свет.

За окном город продолжал жить своей жизнью, не подозревая, что где‑то в одной из квартир человек пытается удержать своё существование на листе бумаги.

Глава 3. Аналоговый тест

Утро выдалось серым, будто город надел пальто из тумана и не хотел его снимать. Марк проснулся рано, ещё до будильника, и долго лежал, прислушиваясь к тишине квартиры. Она была не уютной, а какой‑то насторожённой — словно сама комната ждала, что он встанет, выйдет, исчезнет, и тогда она сможет спокойно выдохнуть.

Он встал, заварил кофе в турке — старой, с облупившейся эмалью, которую ему подарила бабушка. Кофе получился горьким, но Марк пил его медленно, маленькими глотками, будто каждый глоток подтверждал: он здесь, он жив, он существует.

На столе лежал блокнот, в котором он вчера вечером записал: «Сегодня я был в лаборатории. Я тестировал режим „невидимки“. Меня не было в логах, на камерах, в чатах. Но я был там. Я это помню». Он посмотрел на строчку, на свою подпись, на дату. Слова казались хрупкими, как сухая листва: тронешь — рассыплются.

Марк сунул блокнот в рюкзак, накинул куртку и вышел на улицу. Город шумел, гудел, мигал рекламой, но в этом шуме ему слышалось что‑то равнодушное: будто город знал о нём, но не хотел замечать. Камеры на столбах смотрели мимо, светофоры не задерживались на его взгляде, даже голуби, которые обычно разлетались при приближении человека, лишь лениво отходили в сторону, не спеша, будто не видели в нём угрозы.

В метро Марк старался не смотреть на экраны с рекламой и расписанием. Они казались ему слишком умными, слишком внимательными, будто могли заметить его и тут же решить: «Не фиксировать». Он смотрел на старые плакаты, на облупившуюся краску, на надписи, выцарапанные на сиденьях, — на всё, что было сделано руками, а не алгоритмами.

Лаборатория встретила его привычным запахом озона и кофе, но сегодня этот запах казался чуть более резким, будто система пыталась перебить его присутствие чем‑то более сильным. Вадим уже был на месте, сидел у своего стола, перебирал какие‑то бумаги и выглядел так, будто всю ночь не спал.

— Привет, — тихо сказал Марк, ставя рюкзак на стол. — Ты рано.

Вадим поднял голову, посмотрел на него, и в его взгляде было не удивление, а скорее облегчение.

— А, ты пришёл, — сказал он, будто проверял, появится ли Марк сегодня вообще. — Я думал, может, ты… ну, знаешь.

— Что? — переспросил Марк. — Решил, что я исчез окончательно?

Вадим невесело усмехнулся.

— Не то чтобы. Просто… после вчерашнего. Когда мы ничего не нашли в бэкапах. Мне казалось, что система может решить, что ты вообще не должен быть здесь.

Марк сел на стул, положил руки на стол, чувствуя холодную поверхность.

— Именно поэтому я здесь, — твёрдо сказал он. — Я не собираюсь просто сидеть и ждать, пока меня сотрут. Я хочу попробовать что‑то, что не зависит от системы.

Вадим нахмурился.

— Что ты имеешь в виду?

Марк расстегнул рюкзак, достал старую плёночную камеру. Она была тяжёлой, угловатой, с поцарапанным корпусом и потёртым ремешком. Объектив поблескивал в свете ламп, будто был живым.

— Это «Зенит», — сказал Марк, проводя пальцем по корпусу. — Его подарили мне на шестнадцатилетие. Он не подключается к сети, не отправляет данные в облако, не синхронизируется ни с чем. Он просто… фиксирует.

Вадим посмотрел на камеру, потом на Марка, и в его глазах мелькнуло понимание.

— Ты хочешь использовать её как доказательство?

Марк кивнул.

— Да. Если система стирает цифровые следы, может быть, она не сможет стереть то, что записано на плёнке. Физический носитель. Аналог.

Вадим помолчал, потом тихо сказал:

— Это может не сработать. Если стирание происходит на уровне восприятия реальности, то, возможно, даже плёнка не спасёт.

— Возможно, — согласился Марк. — Но это всё, что у меня есть.

Он взял камеру, подошёл к стене, на фоне которой обычно делали общие фото команды. Стена была простой, серой, с парой царапин и едва заметной трещиной в углу — идеальный фон, чтобы ничего не отвлекало.

— Стой здесь, — сказал Вадим, указывая на место. — Я посмотрю, как это работает.

Марк встал у стены, поднял камеру, посмотрел в видоискатель. Мир в маленьком окошке казался чуть более плоским, чуть более отстранённым, будто он смотрел на реальность через тонкую пелену. Он сделал несколько кадров: один, второй, третий. Потом повернулся, снял себя со стороны, поймал в кадр и Вадима, и стойку с серверами, и часть стола.

— Готово, — сказал он, опуская камеру. — Теперь надо проявить.

Вадим кивнул.

— У нас в подвале есть старая фотолаборатория. Её давно не используют, но оборудование должно быть на месте. Я покажу.

Они спустились по узкой лестнице, которая пахла пылью и старой краской. Дверь в лабораторию была приоткрыта, будто кто‑то недавно выходил и не стал закрывать её до конца. Внутри было темно, прохладно, и воздух казался густым, как будто время здесь текло медленнее.

Вадим щёлкнул выключателем, зажёг красный свет. Комната сразу стала похожей на убежище: красные тени ложились на стены, на полки, на старые кюветы и баки для проявки.

— Здесь всё осталось, как было десять лет назад, — тихо сказал Вадим. — Никто не пользуется, но и не выбрасывает. На всякий случай.

Марк достал катушку с плёнкой, начал аккуратно вынимать её из камеры. Руки чуть дрожали, но он старался не показывать этого.

— Держи, — сказал Вадим, протягивая перчатки. — Тут грязно. Не хотелось бы испортить плёнку из‑за пыли.

Марк натянул перчатки, взял катушку, вставил её в проявочный бачок. Потом залил проявитель, закрыл крышку и начал крутить катушку, слушая, как жидкость перекатывается внутри. Этот звук был странным, почти успокаивающим: он не зависел от серверов, от камер, от алгоритмов. Это был просто звук жидкости, которая делала свою работу.

Время тянулось медленно. Марк считал секунды, чтобы не сойти с ума от ожидания. Вадим сидел на табурете, смотрел на красный свет и молчал. В этой тишине было что‑то тяжёлое, будто они оба понимали: сейчас решается не просто вопрос о плёнке, а о том, существует ли Марк вообще.

Наконец, Марк слил проявитель, залил фиксаж, снова начал крутить катушку. Потом промыл плёнку, вытащил её, повесил сушиться. Капли воды стекали по прозрачной ленте, оставляя маленькие следы, как слёзы.

— Теперь ждём, — тихо сказал Вадим.

Они сидели в полумраке, смотрели, как плёнка сохнет, как капли медленно исчезают, оставляя после себя гладкую поверхность. Марк чувствовал, как внутри всё сжимается от напряжения. Он пытался убедить себя, что это просто тест, что всё будет нормально, что на плёнке он будет, чёткий, реальный. Но где‑то в глубине души он боялся увидеть пустоту.

Когда плёнка высохла, Марк взял её, поднёс к свету. На ленте были кадры: вот он стоит у стены, вот он снимает себя со стороны, вот Вадим, вот стойка, вот стол. Всё было на месте.

Но в одном кадре, в самом углу, было что‑то странное. Контур будто «плыл», как при сильной засветке: линия размывалась, становилась полупрозрачной, будто кто‑то пытался стереть этот угол, но не смог сделать это до конца. И на этом размытом фоне едва угадывался силуэт — его силуэт, но искажённый, будто он был не совсем здесь.

Марк смотрел на этот кадр, и внутри у него всё сжималось. Это не было похоже на обычную засветку. Это было похоже на то, что реальность сопротивляется его существованию.

— Видишь? — тихо спросил Вадим, наклоняясь ближе. — Это… странно.

Марк кивнул, не в силах говорить.

— Я думал, что плёнка будет вне системы, — тихо сказал он. — Что она просто зафиксирует то, что есть. Но даже она… не может удержать меня целиком.

Вадим положил руку ему на плечо, и этот жест был неожиданно тёплым, почти отеческим.

— Слушай, — тихо сказал он. — Может, это не ты. Может, это просто дефект плёнки.

Марк медленно покачал головой.

— Нет, — тихо сказал он. — Это не дефект. Это… сопротивление. Как будто мир не хочет, чтобы я был здесь. Как будто он пытается забыть меня, и даже аналоговые методы не могут полностью противостоять этому.

Вадим помолчал, потом тихо спросил:

— Что теперь?

Марк посмотрел на плёнку, на размытый контур, на свой едва заметный силуэт.

— Теперь я попробую ещё кое‑что, — твёрдо сказал он. — Если плёнка не может удержать меня полностью, значит, мне нужно что‑то ещё более простое. Что‑то, что вообще не зависит от технологий.

Он свернул плёнку, убрал её в конверт, положил в рюкзак. Потом посмотрел на Вадима.

— Спасибо, — тихо сказал он. — За то, что ты здесь. За то, что видишь меня.

Вадим грустно улыбнулся.

— Пока вижу, — тихо сказал он. — И надеюсь, что завтра тоже буду видеть.

Они поднялись наверх, в лабораторию. Дневной свет казался слишком ярким, слишком резким после полумрака фотолаборатории. Марк сел за свой стол, достал блокнот и написал на новой странице: «Сегодня я сфотографировался на плёнку. На одном из кадров мой контур размыт, будто реальность сопротивляется моему существованию. Но я здесь. Я это вижу. Я это знаю».

Он подписал дату, время, поставил подпись. Потом закрыл блокнот и положил его в рюкзак, рядом с конвертом, в котором лежала плёнка.

Вечером, когда лаборатория опустела, Марк остался один. Он сидел перед монитором, смотрел на пустую строку, где должны были быть его данные, и думал о том, как странно устроена реальность: она может быть такой хрупкой, такой податливой, что её можно стереть одним модулем, одной строчкой кода.

Он выключил монитор, собрал вещи и вышел на улицу. Город снова шумел, мигал, жил своей жизнью. Марк шёл по тротуару, смотрел на людей, на машины, на камеры, которые висели на столбах и смотрели на всех, кроме него.

И вдруг ему стало не страшно. Страх сменился чем‑то другим — упрямой решимостью. Если реальность хотела забыть его, он не собирался ей помогать. Он будет оставлять следы. Любые следы. Бумажные, плёночные, голосовые. Он будет кричать, если понадобится. Потому что пока он оставляет следы, пока кто‑то его видит, он существует.

«Я здесь», — мысленно повторил он, проходя мимо очередной камеры. — «Я есть. И я не исчезну».

Город не ответил. Камеры молчали. Но Марк знал, что это не значит, что его нет. Это значит только то, что кто‑то очень старается сделать вид, что его не существует. И с этим он будет бороться.

Глава 4. Девушка перестаёт узнавать

Квартира Лены пахла корицей и чем‑то ещё, неуловимо домашним — то ли свежим хлебом, то ли ванилью, то ли просто тем, как пахнет место, где тебя ждут. Марк любил этот запах. Он был тёплым, настоящим, не цифровым, не алгоритмическим. Он был про жизнь.

Он стоял у двери, сжимал в руке бумажный пакет с её любимыми пирожными из маленькой пекарни у метро — теми самыми, с заварным кремом и крошкой сверху, которые она всегда брала, когда хотела немного себя порадовать. Он специально зашёл туда, специально стоял в очереди, специально следил, чтобы положили именно те, что она любит. Это был маленький, но очень понятный жест: «Я помню. Я знаю тебя. Мы вместе».

Марк нажал на звонок. Внутри щёлкнуло, зашуршали шаги, и дверь открылась.

Лена стояла в проёме в своём любимом свитере крупной вязки, волосы собраны в небрежный пучок, на лице — лёгкая улыбка, которая тут же застыла, не успев стать настоящей.

— Привет, — сказал Марк, стараясь, чтобы голос звучал легко, будто ничего не происходит. — Я тут… принёс пирожные. Твои любимые.

Улыбка сползла. Лена смотрела на него, и в её взгляде не было узнавания — только вежливое недоумение, как у человека, который не хочет быть грубым, но не понимает, кто перед ним.

— Простите? — тихо сказала она. — Вы кто?

Марк замер. Пакет чуть дрогнул в его руке.

— Лен, это я, — тихо сказал он, делая шаг вперёд. — Марк. Твой парень.

Она чуть отступила, придержав дверь, будто хотела оставить между ними барьер.

— Мой… парень? — переспросила она, нахмурившись. — У меня есть парень, но… это не вы.

Внутри у Марка что‑то оборвалось, как туго натянутая струна, которая не выдержала и лопнула. Он вдруг почувствовал себя не просто невидимым, а стёртым из чьей‑то памяти — из памяти самого близкого человека.

— Лена, — повторил он, стараясь не повышать голос, чтобы не напугать её ещё сильнее. — Мы вместе уже полтора года. Ты любишь дождь, но только если сидишь дома с чашкой какао. Ты терпеть не можешь, когда в кино убивают собак. Ты пишешь короткие рассказы в заметках телефона, но никому их не показываешь. Я знаю, потому что ты однажды забыла телефон на кухне, и я… я не специально, я просто увидел.

Лена смотрела на него, и в её глазах было не раздражение, а искреннее непонимание.

— Это… звучит мило, — осторожно сказала она. — Но это не про меня. У меня есть парень, его зовут Артём. Мы познакомились в книжном, он любит детективы и всегда берёт мне горячий шоколад, когда мы идём гулять.

Каждое слово било, как холодная вода в лицо. Артём. Горячий шоколад. Книжный. Это были чужие детали, чужие воспоминания, чужой мир, в котором его не было.

— Ты шутишь, — тихо сказал Марк, чувствуя, как голос начинает дрожать. — Это какая‑то шутка. Или… ты устала. Или…

— Я не шучу, — спокойно сказала Лена. — И я не устала. Просто… вы меня с кем‑то путаете. Может, я и правда похожа на кого‑то, кого вы знаете. Но я вас не знаю.

Марк посмотрел на пакет с пирожными. Заварной крем, крошка сверху. Её любимые. Он помнил. Он точно помнил.

— Эти пирожные, — тихо сказал он. — Ты их обожаешь. В той пекарне у метро. Ты говорила, что они напоминают тебе детство, когда бабушка пекла что‑то похожее.

Лена посмотрела на пакет, потом снова на него. В её взгляде мелькнуло что‑то — не узнавание, а скорее жалость.

— Они выглядят вкусно, — тихо сказала она. — Но я не люблю заварной крем. У меня на него аллергия.

Это было как удар под дых. Аллергия. Он не помнил никакой аллергии. Или… он просто не знал? Или это было не в его реальности?

— Прости, — тихо сказала Лена, будто почувствовала, что ему больно. — Я правда не хочу быть грубой. Но, пожалуйста, не надо. Если это какой‑то розыгрыш… он не очень смешной.

Марк опустил пакет. Руки стали тяжёлыми, будто налились свинцом.

— Прости, — тихо повторил он. — Я… я думал, что…

Он не смог закончить. Слова застряли в горле, как осколки стекла. Он повернулся и пошёл прочь, не оглядываясь. Дверь тихо щёлкнула за его спиной, и этот звук прозвучал как финальная точка.

В коридоре пахло краской и старым деревом — обычный подъезд, обычные стены, обычная жизнь, в которой он вдруг стал чужим. Марк спустился по лестнице, не чувствуя ступеней, будто шёл по воздуху. На улице было прохладно, ветер трепал волосы, но он не замечал холода.

Он достал телефон, открыл галерею. Там были их фото: на набережной, в парке, у книжного, в её квартире, на кухне, где она смеётся, а он держит чашку, которую только что налил. Он пролистал их, один за другим, чувствуя, как внутри всё сжимается.

Потом он открыл мессенджер, нашёл их переписку. И там было пусто. Ни одного сообщения от него. Ни одной ветки, где они обсуждали планы, спорили о фильмах, договаривались о встрече. Ничего.

Он снова набрал её номер. Гудок. Второй. Третий.

— Алло? — голос Лены звучал спокойно, будто ничего не произошло.

— Лен, это Марк, — тихо сказал он. — Пожалуйста, посмотри галерею. Посмотри переписку. Там всё есть.

Пауза. Длинная, звенящая.

— Марк? — переспросила она. — Простите, но у меня нет такого контакта. И в галерее нет никаких фото. Вы, наверное, ошиблись номером.

— Не ошибся, — упрямо сказал он. — Посмотри. Пожалуйста.

Ещё одна пауза. Потом тихий вздох.

— Слушайте, — мягко сказала она. — Я не знаю, кто вы и что вам нужно. Но я правда не хочу, чтобы это продолжалось. Если это шутка, она уже не смешная. Если нет… пожалуйста, не звоните больше.