О сайте

Колофон

Как сделан этот сайт — шрифты, палитра, технологии и принципы. Без сторонних шаблонов, без сборщиков, вручную.

Типографика

Сайт собран на четырёх гарнитурах, каждая со своей задачей. Все — открытые шрифты, поставляются Google Fonts.

Display
Fraunces — современная антиква с opsz, для крупных заголовков hero и страниц.
UI / Body
Geist — нейтральный sans-serif, для основного текста, навигации и интерфейса.
Эссе
Cormorant Garamond — серифный шрифт для длинных нарративов: писем, цитат, drop-caps.
Цифры / код
Geist Mono — моноширный, для цен, реквизитов, времени, технических данных.

Палитра

Сдержанная, основанная на брендовом логотипе: тёмно-зелёный + тёплый оранжевый + кремовая бумага.

Jade #224A54
Orange #EAA93B
Cream #F5F1E8
Warm Sand #E6D9BD
Stone #4C4C4C

Полная визуальная айдентика — логотип, вся палитра, шкала шрифтов и кнопки — собрана в бренд-буке →.

Технологии

Сайт сделан на чистом HTML5, CSS и Vanilla JavaScript — без React, Vue, Bootstrap или каких-либо других фреймворков и сборщиков. Открывается обычным двойным кликом по файлу.

HTML
Семантическая разметка, ARIA-роли, ГОСТ Р 52872-2019 (уровень А).
CSS
Кастомные свойства (CSS variables), Grid, Flexbox, clamp() для адаптива. Scroll-driven анимации через изменение переменных в requestAnimationFrame.
JavaScript
Без зависимостей. IntersectionObserver для reveal-эффектов, Lenis для smooth-scroll.
Хостинг
Российский (reg.ru), серверы в РФ — соответствие 152-ФЗ о хранении персональных данных.
Формы
Серверная часть на PHP mail() с honeypot и rate-limit. Заявки приходят на excicon@ya.ru.

Принципы

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

Длинные тексты-эссе (письма клиентов) набраны Cormorant Garamond — шрифтом, который веками используют для книг. Цифры и реквизиты — моноширным Geist Mono. Заголовки больших разделов — переменным Fraunces.

Анимации — только если они помогают понять движение мысли. По системной настройке prefers-reduced-motion анимации отключаются полностью.

От автора

Когда мы делали этот сайт, мы дважды переписывали его целиком — и оба раза не потому, что что-то не работало, а потому, что не звучало. Главным критерием была не функциональность, а присутствие: сайт должен был не упаковывать метод, а быть его продолжением.

Дольше всего возились с порталом. Идея простая на словах: лого в шапке отрывается, опускается на середину экрана, расходится на EXCI и CON, между ними проявляется этимология — tare, «будить», и scientia, «сознание», — потом части снова собираются, и через белую шторку справа налево мы заходим в видео-приветствие. На стыке двух систем рендеринга, DOM и SVG, буквы дрожали миллиметровым прыжком, который глаз не пропускал. Помог kick-start на первом кадре SVG и явное отключение лигатур в обоих слоях, чтобы шрифт рендерился одинаково.

Долго просидел над случаями из практики. Это самые длинные нарративы на сайте, набранные Cormorant Garamond — серифным шрифтом, который сам по себе хочет тишины. Но как только подключили smooth-scroll, прокрутка стала рваной: колесо мыши конфликтовало с библиотекой, библиотека конфликтовала с overscroll-behavior, и каждое движение в браузере отдавалось дрожью. Финальное решение — перехват wheel-событий на уровне окна до того, как их подхватит Lenis, плюс ручной prevent в нужных местах. Несколько вечеров — на одно ровное движение страницы.

Букинг рисовали под референс Cal.com, но без их фреймворков и без их кода. Получился frosted-glass над списком слотов, выбор часового пояса с автоматическим пересчётом времени, три способа оплаты, и форма, которая раскладывается из карточки наружу. Сделано на чистом Vanilla JS — никаких React, никаких пакетов. Сложнее, чем поставить готовое, но мы хотели понимать каждую строчку.

Дольше всего не давалась «Команда». Три портрета стоят полосами в ряд; наводишь на любой — он расходится почти на весь экран, оттесняя соседей, а поверх фотографии всплывают имя, регалии и короткий рассказ. На словах просто, но мучились мы над блоком несколько суток. Главная ошибка была в самом подходе к размеру: сначала фото меняли масштабом — через transform: scale, — и при движении они не сужались, а распухали, наезжая на соседей и теряя кадр. Переделали на изменение реальной ширины через flex: теперь полосы честно ужимаются и раздвигаются, а соседи плавно уступают место. Вторая морока — подложки: пока полосы перетекали, между ними на доли секунды проступали белые швы, фон страницы просвечивал ровно в момент анимации. Под все слайсы легла глухая тёмно-зелёная подложка, чтобы в любой щели был наш цвет, а текстовую шторку погнали не по ширине, а через clip-path — маска едет от края к краю, и шва на стыке не остаётся. Ровно тот случай, когда зритель не должен заметить ничего, — а за этим «ничего» неделя возни.

Что-то ещё. Hero-портрет на sticky-pin, проявляется только когда нужно. Cinematic-mode — шапка постепенно скрывается clip-маской, чтобы не мешать кадру. Книжная секция со шторкой-обложкой как у издательств. Курсор, который не заменяет системный, а догоняет его с инерцией, превращаясь в подсказку. Стек корешков-писем в духе osi.swiss. Каждая мелочь — осознанно. Это сложнее, но честнее.

Благодарности

Марине Исаченко — за метод, тексты и доверие.

Спасибо командам Vercel (Geist), undercase type (Fraunces) и проекту Catharsis Fonts за открытые шрифты, на которых набран сайт.

Сергей Маслов

Сайт собран вручную
Санкт-Петербург · 2026