# > npm i

Сергей Твардовский

[INFO] integration confirmed

«Вчера вечером… у него был жар… он еле говорил. Я хотела приехать, но он сказал «не надо»… А утром… утром уже не брал трубку…»

Голос срывается.

«Да вы ЧТО ТАКОЕ ГОВОРИТЕ?!… Он же… он бредил вчера, смеялся… Я думала, про то, что ему даже легче… Он же не мог… не мог просто взять и… »

Последние слова тонут в рыдании.

## Акт I

– Да твою ж мать…

«Фактический результат: датапикер имеет ширину на 5 пикселей больше, чем в макете. Ожидаемый результат: датапикер соответствует размеру».

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

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

Звук был громким, протяжным. Похожим на вой.

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

Он был готов клясться кровью всех живущих на планете Земля (и за её пределами), что всё проверял много раз. В трёх браузерах. И даже на личном ноутбуке, куда, нарушая политику безопасности, выгрузил весь проект. Всё, нахрен, соответствовало макету!

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

Макс уже думал об этом, и не раз. За первые три месяца испытательного срока он будто бы наелся этих «3 пикселя туда» и «4 пикселя сюда», а тут цвет должен быть «#aae5d3» – он это не любил. Ему больше была интересна архитектура приложения, а не этот джуновский треш, которым его заваливали каждый день.

«Привет, го созвон», – набрал сообщение Макс, удержавшись, чтобы не поставить скобочку, тестировщику, который вернул ему «баг».

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

«Да, без проблем. Через 20 минут… у нас внутренний созвон», – ответил тестировщик.

«Ок», – подумал Макс, ставя большой палец вверх на его сообщение, и отправился на «перекур».

Перекуром Макс называл привычку бегать к окну каждый, без малого, час, а то и пару раз. Вот уже два года, как он бросил курить, когда дела пошли уже совсем плохо – две пачки в день не вписывались ни в какие рамки. Тогда он просто взял и бросил, пожевав пару дней жвачку-заменяйку, чтобы организм адаптировался к новым условиям, совершенно не жалея о содеянном. Только вот, как он ни старался, привычка вставать от компьютера, чтобы совершить привычный ритуал, коим была вся его зависимость, осталась и никуда не собиралась уходить – ни через неделю, ни через три месяца.

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

Всё было просто: можно не зажигать огонь.

По спине пробежал холодок – не сквозняк. Макс не умел просто так отпускать плохие мысли и до сих пор морщился, вспоминая то, как один из лидов скинул во флудилку новость о том, как один из бэкарей крупного финтеха повесился в горящем доме, который сам поджёг, да ещё и с глумливой подписью «сгорел на работе».

– Ублюдок… – сплюнул Макс, положил сигарету на подоконник и покинул кухню, наслушавшись шелеста дождя и преисполненный отвращением.

Не глядя на сообщение от тестировщика, он открыл сайт со своим резюме.


***


– Макс, я не могу задачу закрыть, пока не будет всё по макету, – отозвался Алексей.

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

– Закрыть эту и завести баг?

– Не вариант, – мгновенно отозвался Алексей, – мы же в прод льём сразу…

– Слушай… – Макс перестал пытаться поплавить монитор взглядом, – то, что девопса не нашли, как бы, не моя проблема. Я и так всё сам собираю и вручную лью туда, и у меня всё на скринах, в общем. То скрины билда, а не dev’а. И вообще, у нас кто приоритеты определяет? Эти пять пикселей сраных блочат что-то? А вот раздел несвёрстанный, за который я взяться не могу из-за стори незакрытой, – он, да, всех блочит.

– Макс…

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

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

Развернул сайт поиска работы – какие-то просмотры уже пошли, и, возможно, к вечеру уже кто-то да напишет.

«Пошло оно всё нахер.»

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

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

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

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

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

На экран смотреть не хотелось. Ни на один из трёх – даже на тот, где накручивался счётчик просмотров его резюме.

– Макс, ты же суперкрутой, чего ты, ну? – ПМ, после очередной экспозиции того, как ему самому нелегко, «но начальство…», включил свои софт-скиллы, – похорони уже эту таску долбанную, как ты умеешь, да возьми пару дэйоффов. Ты, к тому же, перерабатывал там нормально, потому тебе оплатят.

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

– Может, ну его нахрен, тот? У тебя же стили и вся красота уже готова… может, тебе свой сделать быстрее будет? Ты же, помнишь, делал для нашего внутреннего проекта…

– Сань, а ты помнишь, что у нас свой UI-kit, и все компоненты мы берём оттуда? – Словно ожидая в засаде своего часа, протянул Макс. – Это НАШ датапикер, который я ДОЛЖЕН использовать. Я понятия не имею, зачем тестер мне мозг делает. Или нам, под этого неадеквата, новый кит пилить?… Я-то… ха, да я с радостью, лол. Только вот это повесит вообще весь спринт. – Макс знал куда бить. Нет, он рад был бы сделать самый крутой набор компонентов, но… кто ж ему даст… – Ставь всё на паузу… и будет вам нормальный пикер, либо забейте на эти сраные пиксели уже…

ПМ шумно вздохнул, прежде чем произнести то, что ему явно не хотелось, но Макс ждал этого, ведь не зря была вся та телега о том, «как ему самому тяжело»:

– Не вариант, Макс… И да, он реально конченный и с линейкой или хрен знает чем сверяет всё по фигме. Там очень заумный контракт, и он неустойку за эти пиксели может выкатить… Мы и так по срокам не вписываемся.

«Бл…» – оборвал себя на полуслове Макс, сообразив, что мысль пошла наружу.

– Ясно, – завершил он подошедший к концу диалог.


***


Пять.

Шесть.

Левый трицепс забило, но Макс собирался выжать штангу хотя бы восемь раз.

Семь.

Сердце будто остановилось, а капелька пота попала в левый глаз.

Во-о-о-о-осемь.

– Ух-х-х-х, бля, – выдохнул Максим, обрушив семьдесят килограммов на стойку. Дыхание даже не сбилось, ведь, казалось, его организм просто забыл, как дышать.

– Ещё бы пару раз, – прочитал Макс по губам, глядя на лицо бритого качка, который его страховал.

– Не, – мотнул он головой в ответ, успев заметить лёгкое разочарование, проскользнувшее в глазах человека, чьего имени он и не знал. Да и видел впервые.

Уселся, крякнув, и тут же встал, вытянув левую руку, чтобы растянуть туго стянутую мышцу…

Бл…

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

Не доставая наушник из уха, покачал головой, отвечая на вопрос «Ты всё?», который он даже не услышал.

«Сука, ну как же так…» – первая и последняя мысль, что возникла в голове Максима, когда, под бодрый запил Within Temptation в ушах, он, глядя только вперёд, запнулся о лежащую посреди дороги гантель. Он ведь видел её, но нога не посчитала нужным подняться выше.

Растянувшись на полу качалки, он старался не думать о том, что на него смотрели.


***


После получасового кардио Макс, решивший, что хватит на сегодня страданий, отправился в раздевалку.

Зеркало он не любил. Всегда не любил.

Когда он худел – видел в отражении вечного дрыща, когда набирал – жирного. Ожидания никак не хотели договариваться с реальностью, потому он старался особо себя не разглядывать. За полторы-две секунды, чуть напрягая плечи и грудь, можно было заметить результат – или его отсутствие.

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

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

Раньше его не было.

Вымышленными друзьями он никогда не страдал. До недавнего времени. Возможно, всё из-за стресса и выгорания.

«Тебя нет! Уйди!» – мысленно гаркнул Макс, встретившись взглядом с тем, кого он не должен был видеть в отражении, и, резко отвернувшись, направился в душевую.


***


Маршрутка, как назло, ушла прямо перед ним, свет фар медленно растворился в мокром воздухе, и он решил не ждать следующую. Пешком, казалось, было быстрее, а может, и полезнее, хоть и было холодно.

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

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

Асфальт под ногами блестел, отражая редкие фонари, которые дрожали в ряби на поверхности луж. Макс шёл быстро, но не спеша, и каждый шаг отзывался в голове тихим стуком – как метроном, сбивающийся на полудолю каждый раз, когда приходилось притормаживать, обходя кого-то. Холодный воздух пропах поздней осенью и мокрой листвой, и где-то внутри этого запаха слышался другой – едва уловимый, кисловатый…

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

«Разрядился, видимо», – подумал он, но всё равно не убрал в карман, а просто шёл вперёд, держа в руке чёрный прямоугольник, в котором, казалось, отражалось что-то, кроме него. Тень, может. Или просто ему нужен был чёртов отпуск?

Где-то справа, за высоким забором, кто-то шёл параллельно – шаг в шаг.

Макс прислушался, остановился, и шаги остановились.

«Эхо», – решил он, но когда сделал ещё шаг, звук отозвался чуть позже – будто тот, кто находился по ту сторону, задумался, а потом всё-таки решил не отставать.

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

Отражения сегодня вообще были не на его стороне.

На последних метрах пути он поймал себя на том, что прислушивается. К чему – сам не понимал, жалея о том, что не стал ждать маршрутку, ведь продрог до костей.

Ключ провернулся в замке с лёгким щелчком. Он вошёл, включил свет, и в прихожей на секунду показалось, что на стене – два силуэта: его и чей-то ещё.

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


***


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

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

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

Он проклял датапикер. Проклял все датапикеры на свете.

– Да твою мать, где эти пиксели! – сорвался на полный голос, бросая взгляд на часы. Три часа ночи. – Чёрт.

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

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

Новый билд снова не дал результата.

– Блядь, да что за нахер! – Максим выругался, поднимая глаза к экрану и замечая, как его отражение в тусклом свете лампы выглядит почти чужим. Он отвёл взгляд, злясь на себя. Глубокий вдох, второй, третий, десятый. Снова сосредоточился.

Ещё час спустя, когда уже начинала ломиться башка, Макс, не отрываясь, проверял угол наклона экрана, меняя разрешения и переписывая код. Но ничего не менялось – результат как был, так и остался. Пиксели вновь не сходились. Точнее, он просто не мог воспроизвести всё то, что было написано в баг-репорте.

– Может, это я в глаза долблюсь, или я, сука, глюки ловлю, или я тупой, или чё?!

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

«Стоп… остынь. Стоп, стоп, стоп!»

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

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

«Подожди… так вот же оно!» – внезапный инсайт. В дереве нод. Прямо под носом. – «ВОТ ЖЕ ЭТА СУКА!»

Макс чуть ли не вскочил с кресла, несмотря на усталость и разбитость.

Почему он до сих пор не смотрел на обёртки, у которых при билде появлялись модульные классы, но была там одна обёртка со статичным классом! Была!

БЫЛА!

Макс застучал пальцами по клавиатуре, как одержимый.

Да! Так делать плохо, так делать не стоит. Не нужно заносить костыльные стили в общую таблицу, но ему было можно. Ему было нужно – именно сейчас, именно ему.

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

Пофикшено!


***


Он сразу понял, что спит.

Не потому, что всё выглядело странно – наоборот, всё было слишком чётким, без привычного глазу размытия, каким обычно бывали его сны. Просто где-то внутри уже щёлкнуло: «Это всё понарошку».

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

И запах…

Пахло гарью – сухой, едкой, как будто в доме недавно что-то горело, и этот запах въелся в дерево и стены. Он был таким отчётливым, что от него было не скрыться.

Он провёл взглядом по комнате. Это была студия-гостиная с кухней – будто бы с объявления на «Авито». Всё новое, едва обжитое, несмотря на ощущение, что тут был настоящий пожар.

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

Макс застыл, глядя на неё, и понял, что не хочет знать, зачем она там.

Он закрыл глаза, потом открыл – петля всё ещё была. Движение не прекратилось.

– Это сон, – тихо сказал он, не пытаясь себя убедить, а чтобы услышать хоть что-то в этой гнетущей тишине.

Шорох.

Он повернулся к окну.

Снаружи туман зашевелился. Сначала едва, потом заметнее, и через секунду из него выступила фигура.

Шаг, ещё шаг… теперь Макс мог различить лицо.

Тот самый парень из спортзала. Из отражения в зеркале. Он стоял, не двигаясь, и смотрел прямо перед собой, будто не видя Макса. Но нет… видел. Движения зрачков говорили о том, что парень посматривал на него, отвлекаясь от созерцания дома.

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

Макс почувствовал, как внутри что-то холодеет. Хотел отступить, но ноги не послушались. Взгляд из-за стекла был настолько переполнен горечью, что аж скулы сводило.

– Кто ты? Чё тебе надо от меня?

Тот, за стеклом, наклонил голову и мотнул ей, пытаясь сбросить какое-то наваждение. Парень посмотрел на Макса с некоторым осуждением, но тут же взгляд его стал острым. Он бросил прощальный взгляд на комнату, глубоко вздохнул, потом выдохнул. Пар лёг на стекло. Медленно, неторопливо, он провёл пальцем по испарине.

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


Т Н Е М М О К


«Коммент», – машинально перевёл Макс, чуть напрягшись.

Слово выглядело нелепо в этом месте, но от этого стало только хуже. Сердце стучало всё чаще, но Макс усмехнулся.

– Коммент, ага. И чё?

Гость за стеклом смотрел на него, а потом начал говорить. Точнее, он не говорил – шевелил губами. Беззвучно, но, казалось, осмысленно.

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

В висках кольнуло.

Он сделал шаг вперёд.

– Кто ты?! Ответь!

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

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

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

Запах гари стал сильнее. Где-то сзади раздалось эхо детского смеха. Макс резко обернулся и проснулся.


Темнота.

Гулкая тишина, редкие капли дождя за окном.

Дышать тяжело, в груди гул, будто он пробежал километр.

На часах – 3:45.

– Классика, – выдохнул он, глядя на цифры.

Ни один уважающий себя кошмар не мог обойтись без трёх-сорока-пяти.

Он сел, чувствуя, как пот стекает по спине, и ещё долго сидел, пока дыхание не стало ровнее.

Но запах… Гарь. Её будто принесли с собой из сна была едва ощутимой, но до холода по коже реальной.

Поднялся, прошёл на кухню, не включая свет.

На подоконнике валялась пачка сигарет – та самая, что лежала там уже много месяцев.

Макс взял одну, прикурил и глубоко затянулся. Горло сжало, кашель прорвался, но он выдохнул – и стало чуть легче. В голове слегка поплыло.

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

Выдохнул – на стекле осела испарина.

Провёл по ней пальцем. Потом ещё раз.

Спустя пару мгновений он затёр ладонью написанное слово «коммент».

## Акт II

Утро началось не с кофе, а с того, что Slack мигнул упоминанием в общем чате:

@max.k есть новости? Там датапикер…

«Опять… что?!»

Макс какое-то время просто сидел, тупо глядя в монитор, потом открыл фигму, потом билд, потом фигму снова, потом ещё раз билд.

«Да как же так…»

Пять пикселей. Всё те же.

– Господи, да за что… – простонал он и машинально открыл HeadHunter на второй вкладке. Приглашений было два: одно – от какой-то неизвестной студии без имени, второе – от аутсорсера, у которых «гибкий график, молодая команда и без токсичности». На этой фразе он хмыкнул и удалил, не вчитываясь.

Slack снова мигнул.

Алексей (QA): Макс, ты тут? Можем созвониться?

Он посмотрел на часы – 11:07.

«Можем», – набрал, нажал Enter.

Рука сама потянулась к вкладке с резюме – обновить, «активно ищу работу», добавить пару слов про «ответственность» и «высокую внимательность к деталям».

«Ирония, бл…»

В наушниках звякнуло – созвон.

– Ну? – сказал он, не дожидаясь приветствия.

– Макс, слушай, опять датапикер, – осторожно начал Алексей. – В проде шире. На пять.

Максим зарычал.

– Ты издеваешься? Я ночью на прод катил… оно, блять, нормально было… – он чуть откинулся на спинку кресла, уставившись в потолок. – Я. Сука. Не знаю. Что ещё. С ними. Делать… я не знаю, что тебе от меня ещё надо. Я в пять утра лёг.

– Я… Максим, мне ничего не надо. Заказчику надо, – сказал тестировщик. – Он скриншоты прислал.

– Да пусть он себе эти скриншоты в жопу запихает, серьёзно.

Алексей вздохнул в микрофон.

– Макс, не начинай.

– Да я уже давно закончил, Лёш, – голос стал глухим. – Просто задолбало. Эти пять пикселей – это не баг, это шиза какая-то. Пусть дизайн меняют. Не знаю.

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

– Вот, на… – Он включил демонстрацию экрана. – Видишь? Всё совпадает. Один в один.

– А на проде нет, – тихо сказал Алексей.

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

Алексей попытался что-то вставить, но Макс уже говорил вразнос:

– Каждый день одно и то же: пиксели, пиксели, пиксели, пиксели, блять! Там РАЗДЕЛЫ не верстались даже, а тут пиксели, целых ПЯТЬ, какой ужас! – почти перешёл на крик Макс.

Алексей не отвечал и не спорил. Макс шумно вздохнул и, с отвращением, выплюнул:

– Мне реально похуй на эти пиксели. Я устал. Всё.

Он снова обновил HeadHunter, словно на автопилоте. Ноль новых приглашений.

Вторая рука уже шарила по проекту, открывая package.json.

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

– Да всё я вспомню… в гите всё видно, – Макс скривился. – Я не знаю, почему оно вообще так себя ведёт. Я со всех сторон ему ширину задал. Со всех, понимаешь?

– Ну и в чём тогда дело?

– Хуй знает. Может, в самом компоненте. Это же наш UI-kit, его не я делал, но «он прекрасно работает, на нём все проекты спокойно живут, и туда лезть не надо», – хрипло кривляясь, передразнил он лида, который пару недель назад сделал ручкой, оставив за собой вакантное место в «лучшей команде на свете». – Но… ща посмотрю, что там у них внутри используется.