ARTYX — дизайн, который не забывают

Дизайн, который не забывают

Веб-дизайнер / digital creator

Избранные работы

Привет,
я Арти!

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

Больше контента с Арти — переходите в группу ВКонтакте ↗
Маскот Арти

Форматы разработки

Выбор решения под задачи бизнеса
01

Лендинг / Promo

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

  • Глубокая проработка смыслов и прототип
  • Уникальный дизайн-концепт и WOW-анимации
  • Адаптивная вёрстка под все устройства
  • Подключение форм заявок и аналитики
Выбрать формат ↗
02

Многостраничный сайт

Полноценное цифровое представительство компании. Раскрывает экспертизу бренда, выстраивает доверие с крупными клиентами и системно презентует услуги.

  • Разработка дизайн-системы и UI-кита
  • Дизайн всех ключевых и внутренних страниц
  • Удобная CMS для управления контентом
  • Базовая SEO-оптимизация и высокая скорость
Выбрать формат ↗
03

E-Commerce / Магазин

Стильный интернет-магазин или каталог с интуитивной навигацией, эффектными карточками товаров и простым путём оформления заказа.

  • UX-архитектура каталога, фильтров и корзины
  • Интеграция онлайн-оплаты, доставки и CRM
  • Личный кабинет и триггерные сценарии
  • Фокус на повышение среднего чека
Выбрать формат ↗
04

Редизайн и спецпроекты

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

  • UX/UI-аудит текущего сайта и точек роста
  • Осовременивание визуального стиля бренда
  • Кастомный интерактив, 3D и скролл-эффекты
  • Бережный перенос без потери позиций
Выбрать формат ↗

Договоримся на берегу

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

Прозрачные условия Соблюдение сроков Авторский дизайн
Рукопожатие с маскотом Арти

Путь заказчика

Прозрачный процесс шаг за шагом
Этап 01

Бриф и погружение

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

Этап 02

Смыслы и прототип

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

Этап 03

Дизайн-концепция

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

Этап 04

Разработка и анимация

Оживляем макеты: верстаем с идеальной адаптивностью под смартфоны и десктопы, настраиваем плавные скролл-анимации и подключаем нужные сервисы.

Этап 05

Тесты и запуск

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

Дмитрий — создатель проекта Artyx

Дмитрий основатель ARTYX

Веб-дизайнер & Digital Creator

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

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

5+ лет опыта в дизайне и разработке
Напрямую работа без посредников
100% контроль до сдачи проекта

Обсудим ваш проект?

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

Оставить заявку

© 2026 · hello@artyx.design
:root { --bg: #0a0a0b; --bg2: #111113; --text: #f4f4f4; --muted: #8a8a8f; --red: #ff1f2d; --blue: #2563eb; --blue-light: #60a5fa; --line: rgba(255, 255, 255, .1); --f-head: 'Oswald', sans-serif; --f-wide: 'Unbounded', sans-serif; --f-body: 'Manrope', sans-serif; } * { margin: 0; padding: 0; box-sizing: border-box; } html { scroll-behavior: smooth; } body { background: var(--bg); color: var(--text); font-family: var(--f-body); overflow-x: hidden; -webkit-font-smoothing: antialiased; } a { color: inherit; text-decoration: none; } button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; } /* ---------- NAV ---------- */ .nav { position: fixed; inset: 0 0 auto; z-index: 30; display: flex; align-items: center; justify-content: space-between; padding: 22px 4vw; background: linear-gradient(to bottom, rgba(10, 10, 11, .9), transparent); } .logo { font: 800 20px var(--f-wide); letter-spacing: .02em; } .nav__links { display: flex; gap: 40px; } .nav__links a, .nav__status { font: 600 11px var(--f-body); letter-spacing: .12em; text-transform: uppercase; color: #cfcfd3; transition: color .2s; } .nav__links a:hover { color: var(--red); } .nav__status { display: flex; align-items: center; gap: 10px; } .nav__status i { width: 7px; height: 7px; border-radius: 50%; background: var(--red); box-shadow: 0 0 10px var(--red); animation: pulse 1.6s infinite; } @keyframes pulse { 50% { opacity: .3; } } /* ---------- HERO ---------- */ .hero { position: relative; height: 100vh; min-height: 620px; overflow: hidden; border-bottom: 1px solid var(--line); } .hero__media { position: absolute; top: 0; right: 0; bottom: 0; width: 72%; -webkit-mask-image: linear-gradient(to right, transparent 0, #000 22%), linear-gradient(to top, transparent 0, #000 18%); -webkit-mask-composite: source-in; mask-image: linear-gradient(to right, transparent 0, #000 22%), linear-gradient(to top, transparent 0, #000 18%); mask-composite: intersect; } .frame, .overlay { position: absolute; inset: 0; width: 100%; height: 100%; transform: scale(1.06); transition: opacity .5s ease, transform 4s cubic-bezier(.2, .7, .2, 1); will-change: opacity, transform; } .frame { object-fit: cover; object-position: 50% 0; /* = preserveAspectRatio xMidYMin у .overlay и IMG.pos в JS */ opacity: 0; } .frame.show { opacity: 1; } .hero.started .frame, .hero.started .overlay { transform: scale(1); } .f3 { transition: opacity .12s, transform 4s cubic-bezier(.2, .7, .2, 1); } .overlay { pointer-events: none; overflow: visible; } /* режим «одно фото»: фото тёмное, лучи спрятаны, очки дорисованы */ .blackout, .fake-glasses { display: none; } .hero.single .blackout, .hero.single .fake-glasses { display: inline; } .blackout { fill: #000; opacity: .92; } .hero.single.fire .blackout { opacity: 0; } .hero.single .f3 { filter: brightness(.3) saturate(.1) contrast(1.1); transition: opacity .8s, filter .15s, transform 4s cubic-bezier(.2, .7, .2, 1); } .hero.single.lowered .f3 { filter: brightness(.42) saturate(.2) contrast(1.1); transition: opacity .8s, filter .8s, transform 4s cubic-bezier(.2, .7, .2, 1); } .hero.single.fire .f3 { filter: none; transition: filter .15s; } .fake-glasses__inner { transform-box: fill-box; filter: drop-shadow(0 6px 8px rgba(0, 0, 0, .7)); } .eye-glow { mix-blend-mode: screen; opacity: 0; transform-box: fill-box; transform-origin: center; transform: scale(.2); transition: opacity .6s, transform .6s; } .hero.charge .eye-glow { opacity: .95; transform: scale(1); animation: glow .12s infinite alternate; } .hero.fire .eye-glow { opacity: 0; animation: none; transition: opacity .3s; } @keyframes glow { to { opacity: .7; transform: scale(.88); } } .hero__beams { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 2; } .hero__flash { position: absolute; inset: 0; z-index: 3; pointer-events: none; background: radial-gradient(circle at 60% 40%, rgba(255, 255, 255, .9), rgba(255, 31, 45, .5) 30%, transparent 70%); opacity: 0; } .hero__flash.go { animation: flash .7s ease-out; } @keyframes flash { 0% { opacity: 1; } 100% { opacity: 0; } } .hero__content { position: relative; z-index: 4; height: 100%; display: flex; flex-direction: column; justify-content: center; padding: 80px 4vw 0; max-width: 1180px; } h1 { font: 700 clamp(54px, 7.2vw, 118px)/.96 var(--f-head); text-transform: uppercase; letter-spacing: -.005em; margin-bottom: 34px; } h1 .line { display: block; overflow: hidden; white-space: nowrap; padding: .12em .05em .1em 0; margin: -.08em 0 -.06em; } h1 .line > span { display: inline-block; transform: translateY(115%); transition: transform 1s cubic-bezier(.2, .8, .2, 1); } h1 .line:nth-child(2) > span { transition-delay: .1s; } h1 .line:nth-child(3) > span { transition-delay: .2s; } .hero.fire h1 .line > span { transform: none; } .hero__sub, .hero__cta { opacity: 0; transform: translateY(16px); transition: opacity .8s .35s, transform .8s .35s; } .hero.fire .hero__sub, .hero.fire .hero__cta { opacity: 1; transform: none; } .hero__sub { font-size: 15px; letter-spacing: .04em; color: #c8c8cc; margin-bottom: 28px; } .hero__cta { display: flex; align-items: center; gap: 14px; } .btn { display: inline-flex; align-items: center; justify-content: center; gap: 14px; padding: 20px 36px; border-radius: 0; border: 1px solid var(--red); font: 600 14px var(--f-body); letter-spacing: .12em; text-transform: uppercase; background: rgba(255, 31, 45, .08); box-shadow: inset 0 0 24px rgba(255, 31, 45, .2); transition: background .3s, box-shadow .3s, border-color .3s, transform .25s; } .btn--hero { padding: 22px 44px; font-size: 15px; } .btn em { font-style: normal; transition: transform .3s; } .btn:hover { background: var(--red); box-shadow: 0 0 40px rgba(255, 31, 45, .55); } .btn:hover em { transform: translate(3px, -3px); } .hero.shake { animation: shake .45s; } @keyframes shake { 20% { transform: translate(-6px, 3px); } 40% { transform: translate(5px, -4px); } 60% { transform: translate(-3px, 2px); } 80% { transform: translate(2px, -1px); } } /* ---------- SECTIONS ---------- */ .section { padding: 70px 4vw; border-bottom: 1px solid var(--line); } .section__head { display: flex; align-items: center; gap: 40px; margin-bottom: 36px; } h2 { font: 600 clamp(20px, 2vw, 26px) var(--f-wide); text-transform: uppercase; white-space: nowrap; } .section__line { flex: 1; height: 1px; background: var(--line); } .arrows { display: flex; gap: 12px; } .arrow { width: 48px; height: 48px; border-radius: 0; border: 1px solid var(--line); transition: border-color .2s, box-shadow .2s, background .2s; } .arrow:hover { border-color: var(--text); } .arrow--red { border-color: var(--red); box-shadow: 0 0 18px rgba(255, 31, 45, .35); } .arrow--red:hover { background: var(--red); border-color: var(--red); } /* Works slider */ .works__track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 40px) / 3); gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; } .works__track::-webkit-scrollbar { display: none; } .card { position: relative; aspect-ratio: 1 / 1.13; overflow: hidden; scroll-snap-align: start; background: var(--bg2); } .card img, .card__art { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2, .8, .2, 1), filter .5s; } .card:hover img, .card:hover .card__art { transform: scale(1.06); } .card::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0, 0, 0, .7), transparent 40%); } .card__num { position: absolute; top: 18px; left: 18px; z-index: 1; font-size: 11px; display: flex; align-items: center; gap: 12px; } .card__num::after { content: ''; width: 40px; height: 1px; background: rgba(255, 255, 255, .5); } .card__title { position: absolute; left: 18px; bottom: 18px; z-index: 1; font: 600 15px var(--f-wide); text-transform: uppercase; transform: translateY(10px); opacity: 0; transition: .4s; } .card:hover .card__title { transform: none; opacity: 1; } .a4 { background: radial-gradient(circle at 30% 30%, #ff1f2d, transparent 45%), radial-gradient(circle at 75% 75%, #5a0a10, transparent 50%), #0b0b0c; } .a5 { background: conic-gradient(from 0deg, #0b0b0c, #ff1f2d, #0b0b0c, #fff 52%, #0b0b0c 54%, #ff1f2d 80%, #0b0b0c); filter: contrast(1.2); } .a6 { background: repeating-linear-gradient(90deg, #ff1f2d 0 2px, transparent 2px 36px), linear-gradient(160deg, #1a0204, #0b0b0c 60%); } /* Section Kickers & Helpers */ .section__sub { font-size: 12px; color: var(--muted); text-transform: uppercase; letter-spacing: .1em; white-space: nowrap; } .kicker { display: inline-flex; align-items: center; gap: 10px; padding: 4px 0 4px 12px; border-radius: 0; font: 700 11px var(--f-body); letter-spacing: .14em; text-transform: uppercase; margin-bottom: 18px; width: fit-content; } .kicker--red { color: var(--red); border-left: 2px solid var(--red); } .kicker--blue { color: var(--blue-light); border-left: 2px solid var(--blue-light); } /* ---------- SYNERGY (РУКОПОЖАТИЕ С ЕНОТОМ — КРУПНОЕ ФОТО ДО КОНЦА БЛОКА) ---------- */ .synergy { padding-bottom: 0; overflow: hidden; background: radial-gradient(circle at 78% 72%, rgba(90, 12, 20, 0.22), rgba(45, 6, 12, 0.08) 42%, transparent 65%); } .synergy__grid { display: grid; grid-template-columns: 1fr 1.35fr; gap: 48px; align-items: end; } .synergy__info { padding-bottom: 70px; } .synergy__title { font: 700 clamp(38px, 4.8vw, 76px)/.98 var(--f-head); text-transform: uppercase; margin-bottom: 22px; white-space: normal; } .synergy__title span { color: var(--red); } .synergy__text { color: #c8c8cc; font-size: 16px; line-height: 1.65; margin-bottom: 28px; max-width: 560px; } .synergy__tags { display: flex; flex-wrap: wrap; gap: 10px; } .synergy__tags span { font-size: 12px; font-weight: 600; padding: 9px 16px; border-radius: 0; background: transparent; border: 1px solid var(--line); color: #e4e4e7; text-transform: uppercase; letter-spacing: .06em; } .synergy__visual { position: relative; display: flex; align-items: flex-end; justify-content: flex-end; margin-right: -4vw; } .synergy__img { display: block; width: 100%; max-height: 560px; object-fit: cover; object-position: bottom center; -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 18%), linear-gradient(to bottom, transparent 0%, #000 12%); -webkit-mask-composite: source-in; mask-image: linear-gradient(to right, transparent 0%, #000 18%), linear-gradient(to bottom, transparent 0%, #000 12%); mask-composite: intersect; transition: transform .6s cubic-bezier(.2, .8, .2, 1); } .synergy__visual:hover .synergy__img { transform: scale(1.02); } /* ---------- ABOUT (МАСКОТ АРТИ — ОДИН КРУПНЫЙ МАСКОТ ДО КОНЦА БЛОКА + СИНИЙ ГРАДИЕНТ) ---------- */ .about { display: grid; grid-template-columns: auto 1fr minmax(380px, 560px); gap: 50px; align-items: center; padding-bottom: 0; overflow: hidden; background: radial-gradient(circle at 80% 78%, rgba(16, 42, 112, 0.32), rgba(10, 24, 64, 0.14) 38%, transparent 62%); } .about__title { font: 700 clamp(56px, 6.8vw, 108px)/.95 var(--f-head); text-transform: uppercase; white-space: normal; padding-right: 50px; border-right: 1px solid var(--line); margin-bottom: 70px; } .about__body { display: flex; flex-direction: column; gap: 22px; max-width: 520px; margin-bottom: 70px; } .about__text { color: #c8c8cc; font-size: 18px; line-height: 1.65; } .about__vk-link { display: inline-flex; align-items: center; gap: 12px; padding: 18px 28px; width: fit-content; border: 1px solid var(--blue-light); background: transparent; font: 600 13px var(--f-body); letter-spacing: .1em; text-transform: uppercase; color: var(--text); transition: background .3s, border-color .3s; } .about__vk-link em { font-style: normal; transition: transform .3s; } .about__vk-link:hover { background: var(--blue); border-color: var(--blue); } .about__vk-link:hover em { transform: translate(3px, -3px); } .about__mascot-wrap { align-self: end; display: flex; align-items: flex-end; justify-content: center; width: 100%; } .about__mascot-pic { display: block; width: 100%; max-width: 540px; max-height: 520px; object-fit: contain; object-position: bottom center; transition: transform .5s cubic-bezier(.2, .8, .2, 1); } .about__mascot-wrap:hover .about__mascot-pic { transform: scale(1.03); } /* ---------- SERVICES (ФОРМАТЫ РАЗРАБОТКИ — ПРЕМИАЛЬНЫЙ ГРАДИЕНТ) ---------- */ .services { background: radial-gradient(circle at 15% 20%, rgba(16, 42, 112, 0.16), transparent 50%); } .services__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; } .srv-card { position: relative; padding: 36px 34px; border-radius: 0; background: #0d0d0f; border: 1px solid var(--line); display: flex; flex-direction: column; transition: transform .3s, border-color .3s; } .srv-card:hover { transform: translateY(-4px); } .srv-card--red { border-color: rgba(255, 31, 45, .38); background: radial-gradient(circle at 100% 0%, rgba(95, 12, 20, 0.22), transparent 58%), #0d0d0f; } .srv-card--red:hover { border-color: var(--red); } .srv-card--blue { border-color: rgba(59, 130, 246, .38); background: radial-gradient(circle at 100% 0%, rgba(16, 42, 112, 0.26), transparent 58%), #0d0d0f; } .srv-card--blue:hover { border-color: var(--blue-light); } .srv-card__top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; } .srv-card__num { font: 700 22px var(--f-head); letter-spacing: .04em; } .srv-card--red .srv-card__num { color: var(--red); } .srv-card--blue .srv-card__num { color: var(--blue-light); } .srv-card__tag { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; padding: 5px 12px; border-radius: 0; background: transparent; border: 1px solid var(--line); color: var(--muted); } .srv-card__title { font: 700 clamp(22px, 2.2vw, 30px) var(--f-wide); text-transform: uppercase; margin-bottom: 14px; } .srv-card__desc { color: #b8b8be; font-size: 15px; line-height: 1.6; margin-bottom: 22px; } .srv-card__list { list-style: none; display: grid; gap: 10px; margin-bottom: 28px; flex: 1; } .srv-card__list li { position: relative; padding-left: 20px; font-size: 14px; color: #e4e4e7; } .srv-card__list li::before { content: ''; position: absolute; left: 0; top: 8px; width: 6px; height: 6px; border-radius: 0; } .srv-card--red .srv-card__list li::before { background: var(--red); } .srv-card--blue .srv-card__list li::before { background: var(--blue-light); } .srv-card__btn { display: inline-flex; align-items: center; justify-content: space-between; padding: 16px 22px; border-radius: 0; font: 600 12px var(--f-body); letter-spacing: .12em; text-transform: uppercase; border: 1px solid var(--line); background: transparent; transition: background .25s, border-color .25s; } .srv-card__btn em { font-style: normal; transition: transform .25s; } .srv-card--red .srv-card__btn { border-color: var(--red); } .srv-card--red .srv-card__btn:hover { background: var(--red); } .srv-card--blue .srv-card__btn { border-color: var(--blue-light); } .srv-card--blue .srv-card__btn:hover { background: var(--blue); border-color: var(--blue); } .srv-card__btn:hover em { transform: translate(3px, -3px); } /* ---------- PROCESS (ПУТЬ ЗАКАЗЧИКА — ПРЕМИАЛЬНЫЙ ГРАДИЕНТ) ---------- */ .process { background: radial-gradient(circle at 50% 0%, rgba(16, 42, 112, 0.18), transparent 55%); } .process__grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 18px; } .step-card { position: relative; padding: 26px 22px; border-radius: 0; background: #0d0d0f; border: 1px solid var(--line); transition: transform .3s, border-color .3s; } .step-card:hover { transform: translateY(-4px); } .step-card--blue { border-top: 2px solid var(--blue-light); background: linear-gradient(180deg, rgba(16, 42, 112, 0.2), transparent 60%), #0d0d0f; } .step-card--red { border-top: 2px solid var(--red); background: linear-gradient(180deg, rgba(95, 12, 20, 0.18), transparent 60%), #0d0d0f; } .step-card__num { display: inline-block; font: 700 12px var(--f-wide); text-transform: uppercase; letter-spacing: .08em; margin-bottom: 14px; } .step-card--blue .step-card__num { color: var(--blue-light); } .step-card--red .step-card__num { color: var(--red); } .step-card__title { font: 700 20px/1.2 var(--f-head); text-transform: uppercase; margin-bottom: 12px; } .step-card__text { font-size: 14px; color: #b4b4bb; line-height: 1.55; } /* ---------- FOUNDER (ОБО МНЕ И ФОТО СОЗДАТЕЛЯ — ПРЕМИАЛЬНЫЙ ГРАДИЕНТ) ---------- */ .founder { background: radial-gradient(circle at 22% 50%, rgba(16, 42, 112, 0.24), transparent 50%); } .founder__grid { display: grid; grid-template-columns: minmax(300px, 440px) 1fr; gap: 56px; align-items: center; } .founder__photo-wrap { position: relative; } .founder__frame { border-radius: 0; overflow: hidden; border: 1px solid var(--line); background: #0d0d0f; } .founder__img { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; transition: transform .6s cubic-bezier(.2, .8, .2, 1); } .founder__frame:hover .founder__img { transform: scale(1.03); } .founder__title { font: 700 clamp(38px, 4.6vw, 72px)/1 var(--f-head); text-transform: uppercase; margin-bottom: 12px; white-space: normal; } .founder__title span { color: var(--blue-light); } .founder__role { font: 600 16px var(--f-wide); color: #e4e4e7; margin-bottom: 22px; } .founder__desc { font-size: 16px; color: #c4c4ca; line-height: 1.65; margin-bottom: 16px; max-width: 640px; } .founder__desc--accent { padding: 14px 0 14px 20px; border-left: 2px solid var(--red); background: transparent; color: var(--text); font-weight: 600; border-radius: 0; margin-bottom: 28px; } .founder__stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; } .founder__stat { padding: 16px 18px; border-radius: 0; background: #0d0d0f; border: 1px solid var(--line); } .founder__stat--red { border-color: rgba(255, 31, 45, .4); } .founder__stat--blue { border-color: rgba(59, 130, 246, .4); } .founder__stat strong { display: block; font: 700 22px var(--f-wide); margin-bottom: 4px; } .founder__stat--red strong { color: var(--red); } .founder__stat--blue strong { color: var(--blue-light); } .founder__stat span { font-size: 12px; color: var(--muted); } /* ---------- CONTACT & FORM (КОНТАКТЫ, СОЦСЕТИ И ФОРМА ЗАЯВКИ — ПРЕМИАЛЬНЫЙ ГРАДИЕНТ) ---------- */ .contact { background: radial-gradient(circle at 85% 30%, rgba(16, 42, 112, 0.22), transparent 50%), radial-gradient(circle at 12% 80%, rgba(90, 12, 20, 0.16), transparent 48%); } .contact__grid { display: grid; grid-template-columns: 1fr 1.15fr; gap: 50px; align-items: start; } .contact__title { font: 700 clamp(38px, 4.8vw, 74px)/.98 var(--f-head); text-transform: uppercase; margin-bottom: 16px; white-space: normal; } .contact__title span { color: var(--red); } .contact__sub { color: #b8b8be; font-size: 16px; line-height: 1.6; margin-bottom: 30px; max-width: 500px; } .socials { display: grid; gap: 14px; } .social-card { display: flex; align-items: center; gap: 16px; padding: 16px 20px; border-radius: 0; background: #0d0d0f; border: 1px solid var(--line); transition: transform .25s, border-color .25s; } .social-card:hover { transform: translateX(4px); } .social-card--blue { border-color: rgba(59, 130, 246, .4); } .social-card--blue:hover { border-color: var(--blue-light); } .social-card--red { border-color: rgba(255, 31, 45, .4); } .social-card--red:hover { border-color: var(--red); } .social-card__icon { width: 46px; height: 46px; border-radius: 0; display: grid; place-items: center; flex: none; } .social-card--blue .social-card__icon { background: transparent; color: var(--blue-light); border: 1px solid rgba(59, 130, 246, .4); } .social-card--red .social-card__icon { background: transparent; color: var(--red); border: 1px solid rgba(255, 31, 45, .4); } .social-card__body { flex: 1; display: flex; flex-direction: column; gap: 2px; } .social-card__body strong { font-size: 16px; font-weight: 600; } .social-card__body small { font-size: 12px; color: var(--muted); } .social-card__arrow { font-style: normal; font-size: 18px; color: var(--muted); transition: transform .25s, color .25s; } .social-card:hover .social-card__arrow { transform: translate(3px, -3px); color: var(--text); } /* Form */ .contact__form { padding: 36px 34px; border-radius: 0; background: #0d0d0f; border: 1px solid var(--line); display: grid; gap: 18px; } .form__heading { font: 700 22px var(--f-wide); text-transform: uppercase; margin-bottom: 4px; } .form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; } .form__field { display: flex; flex-direction: column; gap: 8px; } .form__field span { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: #b8b8be; } .form__field input, .form__field select, .form__field textarea { width: 100%; padding: 14px 16px; border-radius: 0; border: 1px solid var(--line); background: #0a0a0b; color: var(--text); font: inherit; font-size: 14px; outline: none; transition: border-color .2s; } .form__field input:focus, .form__field select:focus, .form__field textarea:focus { border-color: var(--blue-light); } .form__field select option { background: #111115; color: var(--text); } .form__policy { display: flex; align-items: flex-start; gap: 12px; cursor: pointer; user-select: none; margin-top: 4px; } .form__policy input { position: absolute; opacity: 0; pointer-events: none; } .form__checkbox { width: 20px; height: 20px; border-radius: 0; flex: none; margin-top: 1px; border: 1px solid var(--line); background: #0a0a0b; display: grid; place-items: center; transition: background .2s, border-color .2s; } .form__checkbox::after { content: '✓'; font-size: 13px; font-weight: 700; color: #fff; opacity: 0; transform: scale(.5); transition: .2s; } .form__policy input:checked + .form__checkbox { background: var(--red); border-color: var(--red); } .form__policy input:checked + .form__checkbox::after { opacity: 1; transform: scale(1); } .form__policy-text { font-size: 13px; color: #a8a8b0; line-height: 1.45; } .form__policy-text a { color: var(--blue-light); text-decoration: underline; text-underline-offset: 3px; } .btn--submit { width: 100%; justify-content: center; margin-top: 6px; } .form__success { padding: 12px 16px; border-radius: 0; background: #0d1322; border: 1px solid var(--blue-light); color: #dbeafe; font-size: 14px; text-align: center; } .footer { display: flex; justify-content: space-between; padding: 28px 4vw; border-top: 1px solid var(--line); color: var(--muted); font-size: 13px; } .reveal { opacity: 0; transform: translateY(30px); transition: opacity .9s, transform .9s cubic-bezier(.2, .8, .2, 1); } .reveal.in { opacity: 1; transform: none; } /* ---------- RESPONSIVE ---------- */ @media (max-width: 1100px) { .process__grid { grid-template-columns: repeat(2, 1fr); } .about { grid-template-columns: 1fr 1fr; padding-bottom: 0; } .about__title, .about__body { margin-bottom: 20px; } .about__mascot-wrap { grid-column: 1 / -1; justify-content: center; } .synergy__grid, .founder__grid, .contact__grid { grid-template-columns: 1fr; } .synergy__info { padding-bottom: 10px; } .synergy__visual { margin-right: 0; } .founder__photo-wrap { max-width: 420px; margin: 0 auto; } .works__track { grid-auto-columns: 45%; } } @media (max-width: 700px) { .nav__links { display: none; } .nav__status { font-size: 9px; letter-spacing: .06em; } .hero-scroll { height: 210svh; } .hero { height: 100svh; min-height: 0; display: flex; flex-direction: column; justify-content: flex-end; } .hero__media { position: absolute; inset: 0; width: 100%; height: 100%; -webkit-mask-image: linear-gradient(to top, transparent 4%, rgba(0, 0, 0, .5) 38%, #000 68%); mask-image: linear-gradient(to top, transparent 4%, rgba(0, 0, 0, .5) 38%, #000 68%); } .hero__content { height: auto; padding: 0 5vw 32px; margin-top: 0; } h1 { font-size: clamp(46px, 13.5vw, 68px); line-height: .96; margin-bottom: 18px; } .hero__sub { margin-bottom: 18px; font-size: 13px; } .btn--hero { width: 100%; padding: 18px 24px; font-size: 14px; } .works__track { grid-auto-columns: 82%; } .section__head { gap: 16px; flex-wrap: wrap; } .section__line, .section__sub { display: none; } .about { grid-template-columns: 1fr; gap: 24px; } .about__title { border: 0; padding: 0; margin-bottom: 0; } .about__body { margin-bottom: 10px; } .services__grid, .process__grid, .form__row, .founder__stats { grid-template-columns: 1fr; } .contact__form { padding: 24px 20px; } } /* Hold the hero while scroll scrubs the video. */ .hero-scroll { position: relative; height: 260vh; } .hero-scroll > .hero { position: sticky; top: 0; height: 100vh; height: 100svh; min-height: 0; } .hero__video { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 0; } @supports (height: 100svh) { .hero-scroll { height: 260svh; } }
Made on
Tilda