diff --git a/html/README.md b/html/README.md deleted file mode 100644 index 7a6f1d2..0000000 --- a/html/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# Сайт студии мультфильмов «О'ляпка» - -Статический адаптивный сайт для студии ИИ-анимации. - -## 📁 Структура -- `index.html` — Главная -- `services.html` — Услуги -- `portfolio.html` — Примеры работ и отзывы -- `contacts.html` — Контакты (taplink-стиль) -- `legal.html` — Юридические документы -- `css/style.css` — Стили -- `js/main.js` — Скрипты (cookie, меню, цели метрики) - -## 🚀 Деплой на VPS с Nginx - -### 1. Загрузка файлов -```bash -scp -r ./* user@your-server:/var/www/olyapka-studio/ \ No newline at end of file diff --git a/html/business-animation.html b/html/business-animation.html new file mode 100644 index 0000000..3060773 --- /dev/null +++ b/html/business-animation.html @@ -0,0 +1,227 @@ + + + + + + + + + + + + + + + Рекламные анимационные ролики для бизнеса — О’ляпка + + + + + + + + + + + + + + + + + + + +
+
+ + + Заказать + +
+
+ +
+

Рекламные анимационные ролики для бизнеса

+

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

+

Обсудить мультфильм

+
+
+
+ 🚀 Для бизнеса +

Рекламные ИИ-мультики

+

Решаем задачи бизнеса через анимацию: от вирусной рекламы до имиджевых роликов для VIP-клиентов.

+
+
+
+

🎯 Рекламный ролик

+

Анимация, которая останавливает скролл и удерживает внимание. Покажем продукт через историю, а не через сухие факты.

+
+
+

🆕 Запуск нового направления

+

Объясним сложную услугу просто — через понятную метафору и тёплую историю. Клиенты поймут и влюбятся.

+
+
+

🏢 Имиджевый ролик

+

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

+
+
+

🎁 VIP-подарки клиентам

+

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

+
+
+ +
+
+ +
+

Что подготовить для заказа

+

Опишите продукт, аудиторию и задачу рекламы. Пришлите логотип, фирменные цвета, основные тезисы и площадку размещения.

+
+

Стоимость и сроки

+

В студии есть тарифы «Искры» — 2 500 ₽, «История» — 4 500 ₽ и «Сказка» — 9 000 ₽. Это общие тарифы по длительности и составу работы, а не фиксированная цена любого проекта в этом направлении.

+

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

+

Как проходит работа

+

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

+

Посмотреть примеры работ · Связаться со студией

+
+

+ + + + diff --git a/html/contacts.html b/html/contacts.html index f73eb13..e4846a2 100644 --- a/html/contacts.html +++ b/html/contacts.html @@ -3,50 +3,114 @@ - Контакты студии О'ляпка — заказать ИИ-мультик | Telegram, Instagram, VK - - - - - - - - - + - - - - - + ] +} - - - +

+
+

+7 916 095-73-83

+

Услуги и цены · Примеры работ

+
- + - \ No newline at end of file + diff --git a/html/css/style.css b/html/css/style.css index f0aa496..75cea59 100644 --- a/html/css/style.css +++ b/html/css/style.css @@ -8,7 +8,7 @@ body { color: #2C2C2C; background: #F9F7F0; min-height: 100vh; - overflow-x: hidden; + overflow-wrap: break-word; } img { max-width: 100%; height: auto; display: block; } a { color: inherit; text-decoration: none; transition: all 0.2s ease; } @@ -131,7 +131,7 @@ button { font-family: inherit; cursor: pointer; border: none; background: none; /* ===== BENEFITS ===== */ .benefits { background: var(--color-bg-alt); } -.benefits-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 24px; margin-top: 48px; } +.benefits-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 24px; margin-top: 48px; } .benefit-card { padding: 32px 24px; background: var(--color-bg); @@ -144,7 +144,7 @@ button { font-family: inherit; cursor: pointer; border: none; background: none; .benefit-card p { color: var(--color-text-muted); font-size: 15px; } /* ===== FOR WHOM ===== */ -.for-whom-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 24px; margin-top: 48px; } +.for-whom-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 24px; margin-top: 48px; } .for-whom-card { padding: 40px 32px; background: var(--color-bg-alt); @@ -177,7 +177,7 @@ button { font-family: inherit; cursor: pointer; border: none; background: none; /* ===== PRICING ===== */ .pricing { background: var(--color-bg-alt); } -.pricing-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 24px; margin-top: 48px; } +.pricing-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 24px; margin-top: 48px; } .price-card { padding: 36px 28px; background: var(--color-bg); @@ -215,7 +215,7 @@ button { font-family: inherit; cursor: pointer; border: none; background: none; .pricing-note p { margin: 6px 0; font-size: 15px; } /* ===== PROCESS ===== */ -.process-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 24px; margin-top: 48px; } +.process-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 24px; margin-top: 48px; } .step { padding: 28px 20px; background: var(--color-bg-alt); @@ -267,7 +267,7 @@ button { font-family: inherit; cursor: pointer; border: none; background: none; } .service-head h2 { font-size: clamp(26px, 4vw, 36px); margin-bottom: 12px; } .service-lead { font-size: 17px; color: var(--color-text-muted); } -.service-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; margin-bottom: 32px; } +.service-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 20px; margin-bottom: 32px; } .service-card { padding: 28px 24px; background: var(--color-bg); @@ -282,7 +282,7 @@ button { font-family: inherit; cursor: pointer; border: none; background: none; /* ===== EXTRAS ===== */ .extras-grid { display: grid; - grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); + grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 12px; margin-top: 32px; max-width: 800px; @@ -302,7 +302,7 @@ button { font-family: inherit; cursor: pointer; border: none; background: none; .extra-price { font-weight: 700; color: var(--color-accent); } /* ===== PORTFOLIO ===== */ -.portfolio-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 24px; } +.portfolio-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 24px; } .work-card { background: var(--color-bg-alt); border-radius: var(--radius); @@ -485,7 +485,7 @@ body.video-modal-open { overflow: hidden; } /* ===== REVIEWS ===== */ .reviews { background: var(--color-bg-alt); } -.reviews-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 24px; margin-top: 48px; } +.reviews-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 24px; margin-top: 48px; } .review-card { padding: 28px 24px; background: var(--color-bg); @@ -586,7 +586,7 @@ body.video-modal-open { overflow: hidden; } .footer-inner { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 32px; padding-bottom: 40px; } .footer .logo { color: #fff; margin-bottom: 12px; } .footer-about { font-size: 14px; color: #999; } -.footer h4 { color: #fff; font-size: 15px; margin-bottom: 16px; } +.footer h2 { color: #fff; font-size: 15px; margin-bottom: 16px; } .footer-col a { display: block; padding: 4px 0; font-size: 14px; color: #999; } .footer-col a:hover { color: var(--color-accent); } .footer-bottom { border-top: 1px solid #333; padding: 20px 0; text-align: center; font-size: 13px; color: #666; } @@ -662,4 +662,50 @@ body.video-modal-open { overflow: hidden; } .btn-lg { padding: 16px 24px; font-size: 15px; } .taplink-title { font-size: 28px; } .taplink-btn { padding: 14px 18px; } -} \ No newline at end of file +} +/* Accessibility and compact-screen refinements */ +[hidden] { display: none !important; } +:focus-visible { outline: 3px solid #8d0000; outline-offset: 4px; } +[id] { scroll-margin-top: 100px; } +.skip-link { position: fixed; top: 8px; left: 8px; padding: 12px 20px; background: #fff; z-index: 2000; transform: translateY(-160%); } +.skip-link:focus { transform: none; } +.breadcrumbs { padding-top: 24px; padding-bottom: 8px; font-size: 13px; color: #555; text-align: left; } +.breadcrumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; } +.breadcrumbs li + li::before { content: '/'; margin-right: 8px; } +.breadcrumbs a, .service-summary a, .detail-link a, .faq a, .contact-navigation a { text-decoration: underline; text-underline-offset: 3px; } +.service-links { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; padding-top: 24px; padding-bottom: 24px; } +.service-links a { padding: 12px 18px; background: #fff; border: 1px solid #b8a99f; border-radius: 12px; } +.service-links a:hover { border-color: var(--color-accent); } +.service-summary { max-width: 800px; margin: auto; padding: 24px; background: #fff; border-radius: 16px; } +.service-summary h2 { font-size: 24px; margin-bottom: 12px; } +.service-summary p { margin-bottom: 20px; } +.detail-link { margin-bottom: 20px; } +.faq { max-width: 850px; } +.faq details { padding: 20px; background: #fff; border-bottom: 1px solid #ddd; } +.faq summary { font-weight: 700; cursor: pointer; min-height: 32px; } +.faq p { margin-top: 12px; } +.cookie-actions { display: flex; flex-wrap: wrap; gap: 10px; } +.cookie-btn { min-height: 44px; } +.cookie-decline { background: #eee; color: #222; } +.cookie-decline:hover { background: #ddd; } +.privacy-settings { padding-top: 24px; padding-bottom: 24px; } +.privacy-settings button { text-decoration: underline; font-size: 13px; min-height: 44px; color: #555; } +.taplink-info h2 { font-size: 18px; margin-bottom: 12px; text-align: center; } +.taplink-legal { flex-wrap: wrap; } +.taplink-whatsapp:hover { background: #137c3a; } +.taplink-telegram:hover { background: #136c99; } +.extra-item { gap: 16px; flex-wrap: wrap; } +.footer-bottom { color: #aaa; } +.contact-navigation { line-height: 2; } +@media (max-width: 768px) { + .header-inner { flex-wrap: wrap; } + html:not(.js-menu) .nav { display: flex; position: static; width: 100%; order: 3; } + html:not(.js-menu) .burger { display: none; } + .nav-link { padding: 8px 0; } + .page-hero { padding-top: 36px; } + .cookie-banner { max-height: 60vh; overflow: auto; bottom: 12px; left: 12px; right: 12px; } +} +@media (prefers-reduced-motion: reduce) { + html { scroll-behavior: auto; } + *, *::before, *::after { animation: none !important; transition: none !important; } +} diff --git a/html/img/og-cover.jpg b/html/img/og-cover.jpg new file mode 100644 index 0000000..ec96754 Binary files /dev/null and b/html/img/og-cover.jpg differ diff --git a/html/index.html b/html/index.html index d152eda..370ed2c 100644 --- a/html/index.html +++ b/html/index.html @@ -3,94 +3,132 @@ - Студия мультфильмов О'ляпка — ИИ-анимация на заказ | Персональные мультики и реклама - - - - - - - - - - - - - - - - - + - - - - - + Мультфильмы на заказ и ИИ-анимация — студия О’ляпка + + + + + + + + + + + + + + + + - - - + +
@@ -98,43 +136,52 @@ 🐦 О'ЛЯПКА -
-
+
Студия ИИ-анимации -

Создаём мультики, которые решают ваши задачи

-

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

+

Мультфильмы на заказ: подарки и реклама с ИИ-анимацией

+

Персональные мультфильмы, Love Story, рекламные ролики для бизнеса и анимация для соцсетей. Обсудим сценарий, стиль, стоимость и срок до начала работы.

-
1+
дня на создание
-
от 2500₽
стоимость
-
100%
авторская работа
+
+
По задаче
+
согласуем срок
+
+
+
от 2500₽
+
стоимость
+
+
+
100%
+
авторская работа
+
-
-

Почему выбирают О'ляпку

+

Почему выбирают О'ляпку +

✨
@@ -144,7 +191,7 @@
⚡

Быстро

-

Готовый мультик за 1–4 дней. В 5 раз быстрее классической анимации — без потери качества.

+

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

💎
@@ -160,7 +207,6 @@
-

Кому подходят наши мультики

@@ -191,29 +237,28 @@
- -
+

Тарифы на ИИ-мультики

Выберите формат под вашу задачу. 1 кадр = 4–8 секунд.

-
-
Искры
+
+

Искры

Короткий мультик до 30 секунд
2–4 сцены • 1 раунд правок • Базовая озвучка • Формат под Reels
2 500 ₽
Заказать
-
-

Как мы работаем

@@ -261,7 +305,6 @@
-
@@ -272,6 +315,11 @@
+

+ + + + - + - \ No newline at end of file + diff --git a/html/js/main.js b/html/js/main.js index 3b09ef9..eeb616e 100644 --- a/html/js/main.js +++ b/html/js/main.js @@ -1,44 +1,66 @@ -// ===== Cookie Banner ===== +// Analytics: use the existing Metrika counter and the supplied GTM container. +// A GTM- identifier is a Tag Manager container, not a GA4 measurement ID. (function() { + const key = 'olyapka_analytics_v2'; const banner = document.getElementById('cookieBanner'); - const acceptBtn = document.getElementById('cookieAccept'); - if (!banner || !acceptBtn) return; - - const consent = localStorage.getItem('olyapka_cookies_consent'); - if (!consent) { - setTimeout(() => banner.classList.add('show'), 800); - } else { - banner.classList.add('hidden'); + let choice = null; + try { choice = localStorage.getItem(key); } catch (err) { /* storage may be blocked */ } + window.analyticsAllowed = choice === 'accepted'; + function loadAnalytics() { + if (!window.analyticsAllowed || window.analyticsLoaded) return; + window.analyticsLoaded = true; + window.ym = window.ym || function() { (window.ym.a = window.ym.a || []).push(arguments); }; + window.ym.l = Date.now(); + const metrika = document.createElement('script'); + metrika.async = true; metrika.src = 'https://mc.yandex.ru/metrika/tag.js'; + document.head.append(metrika); + window.ym(110606131, 'init', {clickmap: true, trackLinks: true, accurateTrackBounce: true, webvisor: true}); + window.dataLayer = window.dataLayer || []; + window.dataLayer.push({'gtm.start': Date.now(), event: 'gtm.js'}); + const gtm = document.createElement('script'); + gtm.async = true; gtm.src = 'https://www.googletagmanager.com/gtm.js?id=GTM-M5HGH586'; + document.head.append(gtm); } - - acceptBtn.addEventListener('click', function() { - localStorage.setItem('olyapka_cookies_consent', '1'); + function choose(value) { + const wasAllowed = window.analyticsAllowed; + try { localStorage.setItem(key, value); } catch (err) { /* session-only choice */ } + window.analyticsAllowed = value === 'accepted'; + banner.hidden = true; banner.classList.remove('show'); - setTimeout(() => banner.classList.add('hidden'), 400); - // Goal for Yandex.Metrika - if (typeof ym !== 'undefined') ym(110606131, 'reachGoal', 'cookie_accept'); - if (typeof gtag !== 'undefined') gtag('event', 'cookie_accept'); - }); + if (wasAllowed && !window.analyticsAllowed) { location.reload(); return; } + loadAnalytics(); + } + if (banner) { + if (!choice) { banner.hidden = false; banner.classList.add('show'); } + document.getElementById('cookieAccept').addEventListener('click', () => choose('accepted')); + document.getElementById('cookieDecline').addEventListener('click', () => choose('declined')); + document.getElementById('cookieSettings').addEventListener('click', () => { + banner.hidden = false; banner.classList.add('show'); + document.getElementById('cookieAccept').focus(); + }); + } + loadAnalytics(); })(); -// ===== Mobile Menu ===== +// Accessible mobile navigation, including Escape and focus return. (function() { const burger = document.getElementById('burger'); const nav = document.getElementById('nav'); if (!burger || !nav) return; - - burger.addEventListener('click', function() { - burger.classList.toggle('open'); - nav.classList.toggle('open'); - }); - - // Close on link click - nav.querySelectorAll('.nav-link').forEach(link => { - link.addEventListener('click', () => { - burger.classList.remove('open'); - nav.classList.remove('open'); - }); + document.documentElement.classList.add('js-menu'); + function setOpen(open) { + burger.classList.toggle('open', open); + nav.classList.toggle('open', open); + burger.setAttribute('aria-expanded', String(open)); + burger.setAttribute('aria-label', open ? 'Закрыть меню' : 'Открыть меню'); + } + burger.addEventListener('click', () => setOpen(burger.getAttribute('aria-expanded') !== 'true')); + nav.addEventListener('click', e => { if (e.target.closest('a')) setOpen(false); }); + document.addEventListener('keydown', e => { + if (e.key === 'Escape' && nav.classList.contains('open')) { setOpen(false); burger.focus(); } }); + document.addEventListener('click', e => { if (!nav.contains(e.target) && !burger.contains(e.target)) setOpen(false); }); + matchMedia('(max-width: 768px)').addEventListener('change', () => setOpen(false)); })(); // ===== Goal Tracking (Yandex.Metrika + GA) ===== @@ -50,26 +72,15 @@ if (!goal) return; // Yandex.Metrika - if (typeof ym !== 'undefined') { + if (window.analyticsAllowed && typeof ym !== 'undefined') { try { ym(110606131, 'reachGoal', goal); } catch(err) {} } // Google Analytics - if (typeof gtag !== 'undefined') { - try { gtag('event', goal); } catch(err) {} - } + if (window.analyticsAllowed && window.dataLayer) window.dataLayer.push({event: goal}); }); })(); -// ===== Smooth scroll for anchor links ===== -document.querySelectorAll('a[href^="#"]').forEach(anchor => { - anchor.addEventListener('click', function(e) { - const target = document.querySelector(this.getAttribute('href')); - if (target) { - e.preventDefault(); - target.scrollIntoView({ behavior: 'smooth', block: 'start' }); - } - }); -}); +// Native anchor navigation preserves URL fragments and keyboard focus. // ===== Portfolio Video Lightbox ===== (function() { @@ -81,9 +92,15 @@ document.querySelectorAll('a[href^="#"]').forEach(anchor => { if (!modal || !player || !triggers.length) return; let lastFocus = null; + const background = Array.from(document.body.children).filter(el => el !== modal && el.tagName !== 'SCRIPT'); + let inertStates = []; + modal.setAttribute('inert', ''); function open(src, label) { lastFocus = document.activeElement; + modal.removeAttribute('inert'); + inertStates = background.map(el => el.inert); + background.forEach(el => { el.inert = true; }); title.textContent = label || ''; player.src = src; modal.classList.add('open'); @@ -101,6 +118,8 @@ document.querySelectorAll('a[href^="#"]').forEach(anchor => { player.pause(); modal.classList.remove('open'); modal.setAttribute('aria-hidden', 'true'); + modal.setAttribute('inert', ''); + background.forEach((el, i) => { el.inert = inertStates[i]; }); document.body.classList.remove('video-modal-open'); setTimeout(() => { if (!modal.classList.contains('open')) { @@ -139,7 +158,7 @@ document.querySelectorAll('a[href^="#"]').forEach(anchor => { const v = entry.target; obs.unobserve(v); if (v.readyState < 2) { - v.preload = 'auto'; + v.preload = 'metadata'; v.load(); } v.addEventListener('loadeddata', () => { @@ -169,7 +188,13 @@ document.querySelectorAll('a[href^="#"]').forEach(anchor => { document.addEventListener('keydown', function(e) { if (!modal.classList.contains('open')) return; if (e.key === 'Escape') { close(); return; } + if (e.key === 'Tab') { + const stops = Array.from(modal.querySelectorAll('button, video[controls]')); + const first = stops[0], last = stops[stops.length - 1]; + if (e.shiftKey && document.activeElement === first) { e.preventDefault(); last.focus(); } + else if (!e.shiftKey && document.activeElement === last) { e.preventDefault(); first.focus(); } + } if (e.key === ' ' && document.activeElement === player) return; // native handling - if (e.key === 'f' || e.key === 'F') toggleFullscreen(); + if ((e.key === 'f' || e.key === 'F') && document.activeElement === player) toggleFullscreen(); }); })(); diff --git a/html/legal.html b/html/legal.html index 948926c..53a3824 100644 --- a/html/legal.html +++ b/html/legal.html @@ -3,47 +3,127 @@ - Юридические документы — Политика cookies и Пользовательское соглашение | Студия О'ляпка - - - - - - - - - + - - - + Политика cookies и условия использования — О’ляпка + + + + + + + + + + + + + + + + -
+ +
-
-
-

Юридические документы

+
+
+

Юридические документы +

+

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

- +

- + - \ No newline at end of file + diff --git a/html/personal-animation.html b/html/personal-animation.html new file mode 100644 index 0000000..529e749 --- /dev/null +++ b/html/personal-animation.html @@ -0,0 +1,227 @@ + + + + + + + + + + + + + + + Персональные мультфильмы на заказ — О’ляпка + + + + + + + + + + + + + + + + + + + +
+
+ + + Заказать + +
+
+ +
+

Персональные мультфильмы на заказ

+

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

+

Обсудить мультфильм

+
+
+
+ 🤍 Для души +

Персональные ИИ-мультики

+

Подарки, которые запоминаются на всю жизнь. Love Story, сказки для детей, поздравления близким.

+
+
+
+

🎁 Подарок на день рождения

+

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

+
+
+

💍 Love Story

+

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

+
+
+

🧸 Сказка для ребёнка

+

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

+
+
+

📱 Контент для личного блога

+

Анимационные Reels и Stories для личного блога: ваши сюжеты, персонажи и узнаваемый стиль.

+
+
+ +
+
+ +
+

Что подготовить для заказа

+

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

+
+

Стоимость и сроки

+

В студии есть тарифы «Искры» — 2 500 ₽, «История» — 4 500 ₽ и «Сказка» — 9 000 ₽. Это общие тарифы по длительности и составу работы, а не фиксированная цена любого проекта в этом направлении.

+

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

+

Как проходит работа

+

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

+

Посмотреть примеры работ · Связаться со студией

+
+

+ + + + diff --git a/html/portfolio.html b/html/portfolio.html index b10b63d..0c7c9fe 100644 --- a/html/portfolio.html +++ b/html/portfolio.html @@ -4,75 +4,171 @@ - Примеры работ и отзывы — Студия мультфильмов О'ляпка - - - - - - - - - + - - - - - + ] +} - - -
+ +
-
-
+
+
-

Наши работы

+

Примеры мультфильмов и рекламной анимации

Каждый мультик — это уникальная история. Смотрите примеры и вдохновляйтесь.

@@ -80,17 +176,14 @@
-
+

Мультфильмы и рекламные ролики

+
- @@ -106,17 +199,13 @@ 4 500 ₽
- +
- @@ -132,17 +221,13 @@ 13 500 ₽
- +
- @@ -157,17 +242,13 @@ 4 500 ₽
- +
- @@ -182,17 +263,13 @@ 3 300 ₽
-
+
- @@ -207,17 +284,13 @@ 7 000 ₽
-
+
- @@ -232,7 +305,7 @@ 4 500 ₽
-
+
@@ -240,7 +313,8 @@
-

Что говорят клиенты

+

Что говорят клиенты +

★★★★★
@@ -249,7 +323,7 @@ передали один в один: окна, горку, администратора и фотографа. Выложили ролик в районные чаты, и теперь новые клиенты говорят: «Видели ваш мультик, поэтому зашли».

-
Кристина К.
+

Кристина К.

Руководитель детского лофта
@@ -260,7 +334,7 @@ воспоминаниями тронула до слёз даже бабушек. Всё так похоже на нашу жизнь! А Саша теперь ещё больше верит, что ночью игрушки оживают. Лучший подарок на день рождения, спасибо!

-
Мария К.
+

Мария К.

Мама девочки Саши
@@ -271,7 +345,7 @@ с другом. Продажи на маркетплейсах ощутимо выросли. Обязательно обращусь ещё для продвижения других товаров!

-
Дмитрий О.
+

Дмитрий О.

Селлер WB
@@ -281,7 +355,7 @@

«Заказывали мультик на годовщину свадьбы. Муж был в полном восторге! Пересматриваем уже раз десять. Спасибо за вашу работу и душу, которую вы вкладываете!»

-
Анна К.
+

Анна К.

Love Story
@@ -292,7 +366,7 @@ жизни подстроила всё точно так же! Подруга была в шоке и восторге. Спасибо «Оляпке» за воплощение моей задумки и внимание к деталям. Сюрприз удался!

-
Марина К.
+

Марина К.

Сюрприз
@@ -301,7 +375,7 @@

«Рекламный ролик для нашей студии массажа превзошёл ожидания. Клиенты пишут, что именно этот мультик убедил их прийти. Охваты в Instagram выросли в 3 раза!»

-
Елена М.
+

Елена М.

Студия детского массажа
@@ -310,7 +384,7 @@

«Сын смотрел мультик про себя и не мог оторваться. Спросил: "Мама, это я настоящий в мультике?" Сердце растаяло. Спасибо за волшебство!»

-
Ольга В.
+

Ольга В.

Сказка для ребёнка
@@ -319,7 +393,7 @@

«Заказали контент-пакет на месяц. Теперь у нас не болит голова "что постить завтра". Аудитория ждёт новые серии, сохранения бьют рекорды.»

-
Марина Д.
+

Марина Д.

Эксперт по детскому сну
@@ -331,7 +405,7 @@ онлайн-курсов. За две недели публикаций продажи выросли на 20%. Отдельное спасибо за терпение к правкам — всё получилось так, как я представляла!

-
Светлана И.
+

Светлана И.

Студия детского массажа
@@ -344,29 +418,28 @@
-
+

-