From 6addd97a93ed1a95a33fa9bf2af50961de38d8a1 Mon Sep 17 00:00:00 2001 From: Alexander Popov Date: Sat, 31 Oct 2026 00:11:26 +0300 Subject: [PATCH] update astra --- html/README.md | 18 -- html/business-animation.html | 227 +++++++++++++++++++++++ html/contacts.html | 140 +++++++++++---- html/css/style.css | 68 +++++-- html/img/og-cover.jpg | Bin 0 -> 47218 bytes html/index.html | 244 +++++++++++++++---------- html/js/main.js | 117 +++++++----- html/legal.html | 163 +++++++++++++---- html/personal-animation.html | 227 +++++++++++++++++++++++ html/portfolio.html | 338 +++++++++++++++++++++-------------- html/robots.txt | 2 - html/services.html | 333 ++++++++++++++++++++++++---------- html/sitemap.xml | 39 +--- html/social-animation.html | 227 +++++++++++++++++++++++ 14 files changed, 1635 insertions(+), 508 deletions(-) delete mode 100644 html/README.md create mode 100644 html/business-animation.html create mode 100644 html/img/og-cover.jpg create mode 100644 html/personal-animation.html create mode 100644 html/social-animation.html 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 0000000000000000000000000000000000000000..ec96754398fc87aa50a1c49137cade00ad749af2 GIT binary patch literal 47218 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
0Ln&0wz1$nRAcFR!SClF{cA73Z2n!g?q zI!PX4-P_^Sn{+5=TgdlO=3g3AScj)+Qfl4?xY$+N_rY<{Ih23|*N2QJr^FJZyU1Zq z_-LE!^P^W)Fj3AP&qBztKAY6k$#61#0?M&94v6pUIDz= zK@H>tJAGCvXzJ<9E4&lV7RHwY@Z|TX)k!K-T0dkj?AS|dR<8t^n%VvJK!1jB6&pX( zPayD23a6%Hb-Q37%ei>*BQN>r5_t_8dxIw7egbLn>QZ!txsmdC)5?aK#K1D6ouzRb ztK#u=}kyF&=%OfQ&uH2$Za#Nh9X>ptqGlobAR3c$j`%YbV0VGKnUsU+}ea= zx((<^NI77NT7gC4BR&CVJ)k*Pcp}ZhYFrSZ3arIN( z>wDYT4w#RD`~X@hj4R;9@v zc@GLs8|}&V%3s~LLTp(Oqv5<5uukY>9Y;+4ama!+@%D)Ba^q=r1@2>eQY|6-Qu+-S z>?@XH$S}V@=&;zsQp2fHH|jP=G6_r}V#&Ra*1Q}(B2L2}gCTfQMq*y4yM;ZH&wVSu z!@rdS^~y8S&(kCpZre7j=}e zhSnP;ZL9sXWmLS zE0XRbp|`LrI)iR=6X>hBC74sg_5D*2mNf2%5#6}PgX*f{WLsyo$n;At#iZXEq6$EO z_|M@Y-Jin*(+z>KQzgl<6&Qw*f0W2tUMh?)iSl_KfZZ=<$ZVE@d_^NmYc5E|d*aW( zZ@p%7ZrFwSM|-G;avOjm1I7{fX+?XO`Z9A$_+7j;9Jb*X zg@{0``PDmfvnIa+vEQHgsSF(h^(Vi!aQ#3lkUF|(iWefrPDjt+JiE+V@6}Xy^H#%kLiz8#7mueuNkHZ}!*n9eVCDL0G$g!|vs@ z)rF1zS|2iHv*Z75r_GxiBmb`4NNFSGIZ|E`r5pJVzEJ*9JDo;1_UP6pT8Qhra7r51gK`iFgUF-7NYpUYiyoBzA lZmntOJ!|lLq9zhbHUv=p3+z<7YyO-qD(C;V7Fhr3*>9N$RrUY? literal 0 HcmV?d00001 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 @@
-
+

-