setInterval(() => { const buttons = document.querySelectorAll('.smile-trigger:not(.ready)'); buttons.forEach(btn => { btn.classList.add('ready'); btn.addEventListener('mouseenter', triggerSmileOn); btn.addEventListener('mouseleave', triggerSmileOff); btn.addEventListener('touchstart', triggerSmileOn, {passive: true}); btn.addEventListener('touchend', triggerSmileOff, {passive: true}); btn.addEventListener('touchcancel', triggerSmileOff, {passive: true}); }); }, 1000); function updateHeadPosition(clientX, clientY) { if (!card) return; const xPct = clientX / window.innerWidth; const yPct = clientY / window.innerHeight; const rX = (0.5 - yPct) * 20; const rY = (xPct - 0.5) * 20; card.style.transform = "rotateX(" + rX + "deg) rotateY(" + rY + "deg)"; let x = xPct; let y = 1 - yPct; const s = isSmilingState ? 2.5 : 1.1; x = Math.max(0, Math.min(1, (x - 0.5) * s + 0.5)); y = Math.max(0, Math.min(1, (y - 0.5) * s + 0.5)); currentX = x; currentY = y; renderFrame(); } window.addEventListener('mousemove', (e) => { updateHeadPosition(e.clientX, e.clientY); }); window.addEventListener('touchmove', (e) => { if (e.touches && e.touches.length > 0) { updateHeadPosition(e.touches[0].clientX, e.touches[0].clientY); } }, {passive: true}); })(); </script>


setInterval(() => { const buttons = document.querySelectorAll('.smile-trigger:not(.ready)'); buttons.forEach(btn => { btn.classList.add('ready'); btn.addEventListener('mouseenter', triggerSmileOn); btn.addEventListener('mouseleave', triggerSmileOff); btn.addEventListener('touchstart', triggerSmileOn, {passive: true}); btn.addEventListener('touchend', triggerSmileOff, {passive: true}); btn.addEventListener('touchcancel', triggerSmileOff, {passive: true}); }); }, 1000); function updateHeadPosition(clientX, clientY) { if (!card) return; const xPct = clientX / window.innerWidth; const yPct = clientY / window.innerHeight; const rX = (0.5 - yPct) * 20; const rY = (xPct - 0.5) * 20; card.style.transform = "rotateX(" + rX + "deg) rotateY(" + rY + "deg)"; let x = xPct; let y = 1 - yPct; const s = isSmilingState ? 2.5 : 1.1; x = Math.max(0, Math.min(1, (x - 0.5) * s + 0.5)); y = Math.max(0, Math.min(1, (y - 0.5) * s + 0.5)); currentX = x; currentY = y; renderFrame(); } window.addEventListener('mousemove', (e) => { updateHeadPosition(e.clientX, e.clientY); }); window.addEventListener('touchmove', (e) => { if (e.touches && e.touches.length > 0) { updateHeadPosition(e.touches[0].clientX, e.touches[0].clientY); } }, {passive: true}); })(); </script>

setInterval(() => { const buttons = document.querySelectorAll('.smile-trigger:not(.ready)'); buttons.forEach(btn => { btn.classList.add('ready'); btn.addEventListener('mouseenter', triggerSmileOn); btn.addEventListener('mouseleave', triggerSmileOff); btn.addEventListener('touchstart', triggerSmileOn, {passive: true}); btn.addEventListener('touchend', triggerSmileOff, {passive: true}); btn.addEventListener('touchcancel', triggerSmileOff, {passive: true}); }); }, 1000); function updateHeadPosition(clientX, clientY) { if (!card) return; const xPct = clientX / window.innerWidth; const yPct = clientY / window.innerHeight; const rX = (0.5 - yPct) * 20; const rY = (xPct - 0.5) * 20; card.style.transform = "rotateX(" + rX + "deg) rotateY(" + rY + "deg)"; let x = xPct; let y = 1 - yPct; const s = isSmilingState ? 2.5 : 1.1; x = Math.max(0, Math.min(1, (x - 0.5) * s + 0.5)); y = Math.max(0, Math.min(1, (y - 0.5) * s + 0.5)); currentX = x; currentY = y; renderFrame(); } window.addEventListener('mousemove', (e) => { updateHeadPosition(e.clientX, e.clientY); }); window.addEventListener('touchmove', (e) => { if (e.touches && e.touches.length > 0) { updateHeadPosition(e.touches[0].clientX, e.touches[0].clientY); } }, {passive: true}); })(); </script>

setInterval(() => { const buttons = document.querySelectorAll('.smile-trigger:not(.ready)'); buttons.forEach(btn => { btn.classList.add('ready'); btn.addEventListener('mouseenter', triggerSmileOn); btn.addEventListener('mouseleave', triggerSmileOff); btn.addEventListener('touchstart', triggerSmileOn, {passive: true}); btn.addEventListener('touchend', triggerSmileOff, {passive: true}); btn.addEventListener('touchcancel', triggerSmileOff, {passive: true}); }); }, 1000); function updateHeadPosition(clientX, clientY) { if (!card) return; const xPct = clientX / window.innerWidth; const yPct = clientY / window.innerHeight; const rX = (0.5 - yPct) * 20; const rY = (xPct - 0.5) * 20; card.style.transform = "rotateX(" + rX + "deg) rotateY(" + rY + "deg)"; let x = xPct; let y = 1 - yPct; const s = isSmilingState ? 2.5 : 1.1; x = Math.max(0, Math.min(1, (x - 0.5) * s + 0.5)); y = Math.max(0, Math.min(1, (y - 0.5) * s + 0.5)); currentX = x; currentY = y; renderFrame(); } window.addEventListener('mousemove', (e) => { updateHeadPosition(e.clientX, e.clientY); }); window.addEventListener('touchmove', (e) => { if (e.touches && e.touches.length > 0) { updateHeadPosition(e.touches[0].clien
setInterval(() => { const buttons = document.querySelectorAll('.smile-trigger:not(.ready)'); buttons.forEach(btn => { btn.classList.add('ready'); btn.addEventListener('mouseenter', triggerSmileOn); btn.addEventListener('mouseleave', triggerSmileOff); btn.addEventListener('touchstart', triggerSmileOn, {passive: true}); btn.addEventListener('touchend', triggerSmileOff, {passive: true}); btn.addEventListener('touchcancel', triggerSmileOff, {passive: true}); }); }, 1000); function updateHeadPosition(clientX, clientY) { if (!card) return; const xPct = clientX / window.innerWidth; const yPct = clientY / window.innerHeight; const rX = (0.5 - yPct) * 20; const rY = (xPct - 0.5) * 20; card.style.transform = "rotateX(" + rX + "deg) rotateY(" + rY + "deg)"; let x = xPct; let y = 1 - yPct; const s = isSmilingState ? 2.5 : 1.1; x = Math.max(0, Math.min(1, (x - 0.5) * s + 0.5)); y = Math.max(0, Math.min(1, (y - 0.5) * s + 0.5)); currentX = x; currentY = y; renderFrame(); } window.addEventListener('mousemove', (e) => { updateHeadPosition(e.clientX, e.clientY); }); window.addEventListener('touchmove', (e) => { if (e.touches && e.touches.length > 0) { updateHeadPosition(e.touches[0].clientX, e.touches[0].clientY); } }, {passive: true}); })(); </script>


setInterval(() => { const buttons = document.querySelectorAll('.smile-trigger:not(.ready)'); buttons.forEach(btn => { btn.classList.add('ready'); btn.addEventListener('mouseenter', triggerSmileOn); btn.addEventListener('mouseleave', triggerSmileOff); btn.addEventListener('touchstart', triggerSmileOn, {passive: true}); btn.addEventListener('touchend', triggerSmileOff, {passive: true}); btn.addEventListener('touchcancel', triggerSmileOff, {passive: true}); }); }, 1000); function updateHeadPosition(clientX, clientY) { if (!card) return; const xPct = clientX / window.innerWidth; const yPct = clientY / window.innerHeight; const rX = (0.5 - yPct) * 20; const rY = (xPct - 0.5) * 20; card.style.transform = "rotateX(" + rX + "deg) rotateY(" + rY + "deg)"; let x = xPct; let y = 1 - yPct; const s = isSmilingState ? 2.5 : 1.1; x = Math.max(0, Math.min(1, (x - 0.5) * s + 0.5)); y = Math.max(0, Math.min(1, (y - 0.5) * s + 0.5)); currentX = x; currentY = y; renderFrame(); } window.addEventListener('mousemove', (e) => { updateHeadPosition(e.clientX, e.clientY); }); window.addEventListener('touchmove', (e) => { if (e.touches && e.touches.length > 0) { updateHeadPosition(e.touches[0].clientX, e.touches[0].clientY); } }, {passive: true}); })(); </script>

setInterval(() => { const buttons = document.querySelectorAll('.smile-trigger:not(.ready)'); buttons.forEach(btn => { btn.classList.add('ready'); btn.addEventListener('mouseenter', triggerSmileOn); btn.addEventListener('mouseleave', triggerSmileOff); btn.addEventListener('touchstart', triggerSmileOn, {passive: true}); btn.addEventListener('touchend', triggerSmileOff, {passive: true}); btn.addEventListener('touchcancel', triggerSmileOff, {passive: true}); }); }, 1000); function updateHeadPosition(clientX, clientY) { if (!card) return; const xPct = clientX / window.innerWidth; const yPct = clientY / window.innerHeight; const rX = (0.5 - yPct) * 20; const rY = (xPct - 0.5) * 20; card.style.transform = "rotateX(" + rX + "deg) rotateY(" + rY + "deg)"; let x = xPct; let y = 1 - yPct; const s = isSmilingState ? 2.5 : 1.1; x = Math.max(0, Math.min(1, (x - 0.5) * s + 0.5)); y = Math.max(0, Math.min(1, (y - 0.5) * s + 0.5)); currentX = x; currentY = y; renderFrame(); } window.addEventListener('mousemove', (e) => { updateHeadPosition(e.clientX, e.clientY); }); window.addEventListener('touchmove', (e) => { if (e.touches && e.touches.length > 0) { updateHeadPosition(e.touches[0].clientX, e.touches[0].clientY); } }, {passive: true}); })(); </script>

setInterval(() => { const buttons = document.querySelectorAll('.smile-trigger:not(.ready)'); buttons.forEach(btn => { btn.classList.add('ready'); btn.addEventListener('mouseenter', triggerSmileOn); btn.addEventListener('mouseleave', triggerSmileOff); btn.addEventListener('touchstart', triggerSmileOn, {passive: true}); btn.addEventListener('touchend', triggerSmileOff, {passive: true}); btn.addEventListener('touchcancel', triggerSmileOff, {passive: true}); }); }, 1000); function updateHeadPosition(clientX, clientY) { if (!card) return; const xPct = clientX / window.innerWidth; const yPct = clientY / window.innerHeight; const rX = (0.5 - yPct) * 20; const rY = (xPct - 0.5) * 20; card.style.transform = "rotateX(" + rX + "deg) rotateY(" + rY + "deg)"; let x = xPct; let y = 1 - yPct; const s = isSmilingState ? 2.5 : 1.1; x = Math.max(0, Math.min(1, (x - 0.5) * s + 0.5)); y = Math.max(0, Math.min(1, (y - 0.5) * s + 0.5)); currentX = x; currentY = y; renderFrame(); } window.addEventListener('mousemove', (e) => { updateHeadPosition(e.clientX, e.clientY); }); window.addEventListener('touchmove', (e) => { if (e.touches && e.touches.length > 0) { updateHeadPosition(e.touches[0].clientX, e.touches[0].clientY); } }, {passive: true}); })(); </script>
MAKSIM BORISOV.EXE
>_
Home page
Hello, world!
С:\CONTACT ME
Projects
Blog
About me
Contacts
С:\CONTACT ME
c:\projects
UX/UI
дизайн
USER FLOW
АНАЛИТИКА
СТРАТЕГИЯ
МЕНЕДЖМЕНТ
Онлайн-школа: Олимпия
РЕКОМЕНДУЮ К ОЗНАКОМЛЕНИЮ
ЦЕНТР ПРАВОВОЙ ПОМОЩИ В ТАИЛАНДЕ
USER FLOW
UX/UI
дизайн
web
UX/UI
дизайн
WEB
КЛИНИКА ФОМИНА: БАНК ООЦИТОВ
UX/UI
дизайн
WEB
БИЗНЕС И ПРАВО
UX/UI
дизайн
USER FLOW
WEB
МЕДИЦИНСКАЯ ПАЛАТА СВЕРДЛОВСКОЙ ОБЛАСТИ
UX/UI
дизайн
WEB
Захаров, кожевников и партнеры
c:\About_me\Stack
c:\About_me
Я начал свой путь в веб-дизайне и разработке в 2022 году, опираясь на большой опыт в маркетинге.

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

Независимо от масштаба задачи, я руковожу процессами самостоятельно и формирую команды под конкретные цели. Тесно сотрудничаю с брендами, стремящимися к значимому росту, оставаясь глубоко вовлеченным в каждый этап, чтобы гарантировать, что каждое решение является обдуманным и рассчитано на долгосрочную перспективу.
[ Начать сотрудничество ]
веб проектов
50+
лет опыта в маркетинге
5+
лет опыта в дизайне
4+
UX/UI ДИЗАЙНЕР, ВЕБ-РАЗРАБОТЧИК
MAKSIM BORISOV
Open AI
Midjorney
HTML
CSS
Photoshop
Cursor
Tilda
Figma
Корзина
Бриф для заказчика
Мой топ нейросетей
Разработка веб проекта: этапы и сроки
Вайбкодинг норм или нет?
Выбор CMS для проекта
Личный кабинет
Поиграй в змейку
c:\Contacts
(c) 2026 maxksim borisov // All rights reserved. System halted.
Политика конфиденциальности
Windows

A fatal exception 0E has occurred at 028:C0011E36.

Текущее приложение будет закрыто, потому что вы нарушили правила.

*** БОЛЬШЕ НЕ НАЖИМАЙ СЮДА! ***

* Если вы видите этот экран впервые, просто подождите 5 секунд.

* Если этот экран появляется снова, значит, вы очень упрямый пользователь.

* Я же предупреждал.

???? Копировать Telegram
???? Связаться с Максимом
×
SCORE: 0
Made on
Tilda