fix bugs an local

This commit is contained in:
alexencom committed 2026-11-01 11:48:59 +03:00
1 parent 1380a4dfc8
commit b2a790337e
24 files changed
+489 -333

No files matched your search

+74 -14
View File
@@ -1,34 +1,83 @@
# Loaded by the standard nginx image inside the http context.
# TLS is terminated by the existing external reverse proxy (Pangolin).
map $uri $olapka_canonical_path {
# Re-evaluate after internal error_page redirects.
volatile;
default $uri;
~^/index(?:\.html)?/?$ /;
~^/(business-animation|contacts|legal|personal-animation|portfolio|services|social-animation)(?:\.html/?|/)$ /$1;
}
server { server {
listen 80; listen 80;
server_name www.olapka.ru; server_name www.olapka.ru;
return 301 https://olapka.ru$olapka_canonical_path$is_args$args;
return 301 https://olapka.ru$request_uri;
} }
server { server {
listen 80; listen 80;
server_name olapka.ru; server_name olapka.ru;
root /usr/share/nginx/html; root /usr/share/nginx/html;
index index.html; charset utf-8;
charset_types text/plain text/css text/markdown application/javascript application/json application/xml image/svg+xml;
# Отдельная страница ошибки 404 gzip on;
error_page 404 /404.html; gzip_vary on;
gzip_proxied any;
gzip_min_length 512;
gzip_comp_level 5;
gzip_types text/plain text/css text/markdown application/javascript application/json application/xml text/xml image/svg+xml;
# Убираем .html из исходных запросов браузера # /404 is an error too, never a successful content page.
if ($request_uri ~ ^(/[^?]*)\.html(\?.*)?$) { location = /404 {
return 301 $1$is_args$args; return 404;
} }
location / { error_page 404 =404 /404.html;
try_files $uri $uri.html $uri/ =404;
}
# Доступ только для внутренней обработки ошибки
location = /404.html { location = /404.html {
internal; internal;
} }
# Machine-readable site summaries (UTF-8 Markdown in .txt files).
# Only return redirects here; no rewrite loops or HTTPS checks behind proxy.
if ($uri != $olapka_canonical_path) {
return 301 https://olapka.ru$olapka_canonical_path$is_args$args;
}
# try_files serves an existing file in-place, without a client redirect.
location = / {
try_files /index.html =404;
}
location = /business-animation {
try_files /business-animation.html =404;
}
location = /contacts {
try_files /contacts.html =404;
}
location = /legal {
try_files /legal.html =404;
}
location = /personal-animation {
try_files /personal-animation.html =404;
}
location = /portfolio {
try_files /portfolio.html =404;
}
location = /services {
try_files /services.html =404;
}
location = /social-animation {
try_files /social-animation.html =404;
}
# Machine-readable site summaries (UTF-8 Markdown in .txt files).
location ~ ^/llms(?:-full)?\.txt$ { location ~ ^/llms(?:-full)?\.txt$ {
types { } types { }
default_type text/plain; default_type text/plain;
@@ -55,4 +104,15 @@ server {
add_header Link '</llms.txt>; rel="describedby"'; add_header Link '</llms.txt>; rel="describedby"';
try_files $uri =404; try_files $uri =404;
} }
# Revalidate changed assets after one hour (filenames are not versioned).
location ~ ^/(?:css|js|img|video)/ {
add_header Cache-Control "public, max-age=3600";
try_files $uri =404;
}
# Real assets are served normally. Unknown URLs return a real 404.
location / {
try_files $uri =404;
}
} }
+112
View File
@@ -0,0 +1,112 @@
# Loaded by the standard nginx image inside the http context.
# Local development only: HTTP on localhost:8080.
map $uri $olapka_canonical_path {
# Re-evaluate after internal error_page redirects.
volatile;
default $uri;
~^/index(?:\.html)?/?$ /;
~^/(business-animation|contacts|legal|personal-animation|portfolio|services|social-animation)(?:\.html/?|/)$ /$1;
}
server {
listen 80 default_server;
server_name localhost 127.0.0.1;
root /usr/share/nginx/html;
charset utf-8;
charset_types text/plain text/css text/markdown application/javascript application/json application/xml image/svg+xml;
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_min_length 512;
gzip_comp_level 5;
gzip_types text/plain text/css text/markdown application/javascript application/json application/xml text/xml image/svg+xml;
# /404 is an error too, never a successful content page.
location = /404 {
return 404;
}
error_page 404 =404 /404.html;
location = /404.html {
internal;
}
# Only return redirects here; no rewrite loops or HTTPS checks behind proxy.
if ($uri != $olapka_canonical_path) {
return 301 http://localhost:8080$olapka_canonical_path$is_args$args;
}
# try_files serves an existing file in-place, without a client redirect.
location = / {
try_files /index.html =404;
}
location = /business-animation {
try_files /business-animation.html =404;
}
location = /contacts {
try_files /contacts.html =404;
}
location = /legal {
try_files /legal.html =404;
}
location = /personal-animation {
try_files /personal-animation.html =404;
}
location = /portfolio {
try_files /portfolio.html =404;
}
location = /services {
try_files /services.html =404;
}
location = /social-animation {
try_files /social-animation.html =404;
}
# Machine-readable site summaries (UTF-8 Markdown in .txt files).
location ~ ^/llms(?:-full)?\.txt$ {
types { }
default_type text/plain;
charset utf-8;
add_header Cache-Control "public, max-age=3600";
try_files $uri =404;
}
# Keep the source legal page's noindex policy on its Markdown copy.
location = /legal.md {
types { }
default_type text/markdown;
charset utf-8;
add_header X-Robots-Tag "noindex, follow";
add_header Link '</llms.txt>; rel="describedby"';
try_files $uri =404;
}
location ~ ^/(index|services|personal-animation|business-animation|social-animation|portfolio|contacts)\.md$ {
types { }
default_type text/markdown;
charset utf-8;
add_header Cache-Control "public, max-age=3600";
add_header Link '</llms.txt>; rel="describedby"';
try_files $uri =404;
}
# Revalidate changed assets after one hour (filenames are not versioned).
location ~ ^/(?:css|js|img|video)/ {
add_header Cache-Control "public, max-age=3600";
try_files $uri =404;
}
# Real assets are served normally. Unknown URLs return a real 404.
location / {
try_files $uri =404;
}
}
+8
View File
@@ -0,0 +1,8 @@
services:
nginx:
image: nginx:stable-alpine
ports:
- "127.0.0.1:8080:80"
volumes:
- ./html:/usr/share/nginx/html:ro
- ./default.local.conf:/etc/nginx/conf.d/default.conf:ro
+8 -8
View File
@@ -5,18 +5,18 @@
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="robots" content="noindex, follow"> <meta name="robots" content="noindex, follow">
<title>Страница не найдена — О’ляпка</title> <title>Страница не найдена — О’ляпка</title>
<link rel="icon" type="image/svg+xml" href="img/favicon.svg"> <link rel="icon" type="image/svg+xml" href="/img/favicon.svg">
<link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&amp;family=Caveat:wght@500;700&amp;display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&amp;family=Caveat:wght@500;700&amp;display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/style.css"> <link rel="stylesheet" href="/css/style.css">
<link rel="stylesheet" href="css/404.css"> <link rel="stylesheet" href="/css/404.css">
</head> </head>
<body class="error-page"> <body class="error-page">
<a class="skip-link" href="#main-content">Перейти к содержимому</a> <a class="skip-link" href="#main-content">Перейти к содержимому</a>
<header class="error-header container"> <header class="error-header container">
<a class="logo" href="index.html" aria-label="О’ляпка — на главную"><span class="logo-bird" aria-hidden="true">🐦</span><span>О’ЛЯПКА</span></a> <a class="logo" href="/" aria-label="О’ляпка — на главную"><span class="logo-bird" aria-hidden="true">🐦</span><span>О’ЛЯПКА</span></a>
<a class="error-contact" href="contacts.html">Связаться со студией <span aria-hidden="true">↗</span></a> <a class="error-contact" href="/contacts">Связаться со студией <span aria-hidden="true">↗</span></a>
</header> </header>
<main id="main-content" class="error-main container" tabindex="-1"> <main id="main-content" class="error-main container" tabindex="-1">
<div class="error-art" aria-hidden="true"> <div class="error-art" aria-hidden="true">
@@ -30,10 +30,10 @@
<h1>Эта страница<br>улетела из сюжета</h1> <h1>Эта страница<br>улетела из сюжета</h1>
<p class="error-description">Возможно, ссылка устарела или в адресе опечатка.<br class="desktop-break"> Но ваша история только начинается — вернёмся к ней?</p> <p class="error-description">Возможно, ссылка устарела или в адресе опечатка.<br class="desktop-break"> Но ваша история только начинается — вернёмся к ней?</p>
<div class="error-actions"> <div class="error-actions">
<a class="btn btn-primary" href="index.html">На главную <span aria-hidden="true">↗</span></a> <a class="btn btn-primary" href="/">На главную <span aria-hidden="true">↗</span></a>
<a class="btn btn-outline" href="services.html">Выбрать мультфильм</a> <a class="btn btn-outline" href="/services">Выбрать мультфильм</a>
</div> </div>
<p class="error-portfolio">Нужна идея? <a href="portfolio.html">Посмотрите наши работы <span aria-hidden="true">→</span></a></p> <p class="error-portfolio">Нужна идея? <a href="/portfolio">Посмотрите наши работы <span aria-hidden="true">→</span></a></p>
</main> </main>
<footer class="error-footer container"><span>© 2026 О’ляпка</span><span>Даже у хорошей истории бывают неожиданные повороты.</span></footer> <footer class="error-footer container"><span>© 2026 О’ляпка</span><span>Даже у хорошей истории бывают неожиданные повороты.</span></footer>
</body> </body>
+36 -36
View File
@@ -4,22 +4,22 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Open Graph --> <!-- Open Graph -->
<link rel="icon" type="image/svg+xml" href="img/favicon.svg"> <link rel="icon" type="image/svg+xml" href="/img/favicon.svg">
<link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&amp;family=Caveat:wght@500;700&amp;display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&amp;family=Caveat:wght@500;700&amp;display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/style.css"> <link rel="stylesheet" href="/css/style.css">
<!-- JSON-LD: 3 услуги --> <!-- JSON-LD: 3 услуги -->
<!-- Yandex.Metrika --> <!-- Yandex.Metrika -->
<title>Рекламные анимационные ролики для бизнеса — О’ляпка</title> <title>Рекламные анимационные ролики для бизнеса — О’ляпка</title>
<meta name="description" content="ИИ-анимация для рекламы, презентации продукта и истории бренда. Объясняем идеи через персонажей и сюжет."> <meta name="description" content="ИИ-анимация для рекламы, презентации продукта и истории бренда. Объясняем идеи через персонажей и сюжет.">
<link rel="canonical" href="https://olapka.ru/business-animation.html"> <link rel="canonical" href="https://olapka.ru/business-animation">
<meta name="robots" content="index, follow, max-image-preview:large"> <meta name="robots" content="index, follow, max-image-preview:large">
<meta property="og:type" content="website"> <meta property="og:type" content="website">
<meta property="og:title" content="Рекламные анимационные ролики для бизнеса — О’ляпка"> <meta property="og:title" content="Рекламные анимационные ролики для бизнеса — О’ляпка">
<meta property="og:description" content="ИИ-анимация для рекламы, презентации продукта и истории бренда. Объясняем идеи через персонажей и сюжет."> <meta property="og:description" content="ИИ-анимация для рекламы, презентации продукта и истории бренда. Объясняем идеи через персонажей и сюжет.">
<meta property="og:url" content="https://olapka.ru/business-animation.html"> <meta property="og:url" content="https://olapka.ru/business-animation">
<meta property="og:image" content="https://olapka.ru/img/og-cover.jpg"> <meta property="og:image" content="https://olapka.ru/img/og-cover.jpg">
<meta property="og:image:width" content="1200"> <meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630"> <meta property="og:image:height" content="630">
@@ -50,7 +50,7 @@
"telephone": "+79160957383", "telephone": "+79160957383",
"contactType": "customer service", "contactType": "customer service",
"availableLanguage": "ru", "availableLanguage": "ru",
"url": "https://olapka.ru/contacts.html" "url": "https://olapka.ru/contacts"
} }
}, },
{ {
@@ -65,8 +65,8 @@
}, },
{ {
"@type": "WebPage", "@type": "WebPage",
"@id": "https://olapka.ru/business-animation.html#webpage", "@id": "https://olapka.ru/business-animation#webpage",
"url": "https://olapka.ru/business-animation.html", "url": "https://olapka.ru/business-animation",
"name": "Рекламные анимационные ролики для бизнеса — О’ляпка", "name": "Рекламные анимационные ролики для бизнеса — О’ляпка",
"description": "ИИ-анимация для рекламы, презентации продукта и истории бренда. Объясняем идеи через персонажей и сюжет.", "description": "ИИ-анимация для рекламы, презентации продукта и истории бренда. Объясняем идеи через персонажей и сюжет.",
"inLanguage": "ru", "inLanguage": "ru",
@@ -77,15 +77,15 @@
"@id": "https://olapka.ru/#organization" "@id": "https://olapka.ru/#organization"
}, },
"breadcrumb": { "breadcrumb": {
"@id": "https://olapka.ru/business-animation.html#breadcrumbs" "@id": "https://olapka.ru/business-animation#breadcrumbs"
}, },
"mainEntity": { "mainEntity": {
"@id": "https://olapka.ru/business-animation.html#service" "@id": "https://olapka.ru/business-animation#service"
} }
}, },
{ {
"@type": "BreadcrumbList", "@type": "BreadcrumbList",
"@id": "https://olapka.ru/business-animation.html#breadcrumbs", "@id": "https://olapka.ru/business-animation#breadcrumbs",
"itemListElement": [ "itemListElement": [
{ {
"@type": "ListItem", "@type": "ListItem",
@@ -97,23 +97,23 @@
"@type": "ListItem", "@type": "ListItem",
"position": 2, "position": 2,
"name": "Услуги", "name": "Услуги",
"item": "https://olapka.ru/services.html" "item": "https://olapka.ru/services"
}, },
{ {
"@type": "ListItem", "@type": "ListItem",
"position": 3, "position": 3,
"name": "Рекламные анимационные ролики для бизнеса", "name": "Рекламные анимационные ролики для бизнеса",
"item": "https://olapka.ru/business-animation.html" "item": "https://olapka.ru/business-animation"
} }
] ]
}, },
{ {
"@type": "Service", "@type": "Service",
"@id": "https://olapka.ru/business-animation.html#service", "@id": "https://olapka.ru/business-animation#service",
"name": "Рекламные анимационные ролики для бизнеса", "name": "Рекламные анимационные ролики для бизнеса",
"description": "ИИ-анимация для рекламы, презентации продукта и истории бренда. Объясняем идеи через персонажей и сюжет.", "description": "ИИ-анимация для рекламы, презентации продукта и истории бренда. Объясняем идеи через персонажей и сюжет.",
"serviceType": "Рекламные анимационные ролики для бизнеса", "serviceType": "Рекламные анимационные ролики для бизнеса",
"url": "https://olapka.ru/business-animation.html", "url": "https://olapka.ru/business-animation",
"provider": { "provider": {
"@id": "https://olapka.ru/#organization" "@id": "https://olapka.ru/#organization"
} }
@@ -123,7 +123,7 @@
</head> </head>
<body> <body>
<a class="skip-link" href="#main-content">Перейти к содержимому</a><div class="cookie-banner" id="cookieBanner" role="region" aria-label="Настройки аналитики" hidden> <a class="skip-link" href="#main-content">Перейти к содержимому</a><div class="cookie-banner" id="cookieBanner" role="region" aria-label="Настройки аналитики" hidden>
<div class="cookie-text">Разрешить аналитику для улучшения сайта? <a href="legal.html#cookies">Подробнее</a> <div class="cookie-text">Разрешить аналитику для улучшения сайта? <a href="/legal#cookies">Подробнее</a>
</div> </div>
<div class="cookie-actions"> <div class="cookie-actions">
<button class="cookie-btn" id="cookieAccept" type="button">Разрешить</button><button class="cookie-btn cookie-decline" id="cookieDecline" type="button">Отклонить</button> <button class="cookie-btn" id="cookieAccept" type="button">Разрешить</button><button class="cookie-btn cookie-decline" id="cookieDecline" type="button">Отклонить</button>
@@ -131,26 +131,26 @@
</div> </div>
<header class="header"> <header class="header">
<div class="container header-inner"> <div class="container header-inner">
<a href="index.html" class="logo"><span class="logo-bird">🐦</span><span class="logo-text">О'ЛЯПКА</span></a> <a href="/" class="logo"><span class="logo-bird">🐦</span><span class="logo-text">О'ЛЯПКА</span></a>
<nav class="nav" id="nav" aria-label="Основная навигация"> <nav class="nav" id="nav" aria-label="Основная навигация">
<a href="index.html" class="nav-link">Главная</a> <a href="/" class="nav-link">Главная</a>
<a href="services.html" class="nav-link active">Услуги</a> <a href="/services" class="nav-link active">Услуги</a>
<a href="portfolio.html" class="nav-link">Работы</a> <a href="/portfolio" class="nav-link">Работы</a>
<a href="contacts.html" class="nav-link">Контакты</a> <a href="/contacts" class="nav-link">Контакты</a>
</nav> </nav>
<a href="contacts.html" class="btn btn-primary" data-goal="order_header">Заказать</a> <a href="/contacts" class="btn btn-primary" data-goal="order_header">Заказать</a>
<button class="burger" id="burger" aria-label="Меню" type="button" aria-expanded="false" aria-controls="nav"><span></span><span></span><span></span></button> <button class="burger" id="burger" aria-label="Меню" type="button" aria-expanded="false" aria-controls="nav"><span></span><span></span><span></span></button>
</div> </div>
</header> </header>
<main id="main-content" tabindex="-1"><nav class="container breadcrumbs" aria-label="Хлебные крошки"><ol> <main id="main-content" tabindex="-1"><nav class="container breadcrumbs" aria-label="Хлебные крошки"><ol>
<li><a href="index.html">Главная</a></li> <li><a href="/">Главная</a></li>
<li><a href="services.html">Услуги</a></li> <li><a href="/services">Услуги</a></li>
<li><span aria-current="page">Рекламные анимационные ролики для бизнеса</span></li> <li><span aria-current="page">Рекламные анимационные ролики для бизнеса</span></li>
</ol></nav><section class="page-hero"><div class="container"> </ol></nav><section class="page-hero"><div class="container">
<h1 class="page-title">Рекламные анимационные ролики для бизнеса</h1> <h1 class="page-title">Рекламные анимационные ролики для бизнеса</h1>
<p class="page-subtitle">ИИ-анимация для рекламы, презентации продукта и истории бренда. Объясняем идеи через персонажей и сюжет.</p> <p class="page-subtitle">ИИ-анимация для рекламы, презентации продукта и истории бренда. Объясняем идеи через персонажей и сюжет.</p>
<p class="service-cta"><a class="btn btn-primary" href="contacts.html" data-goal="order_service">Обсудить мультфильм</a></p> <p class="service-cta"><a class="btn btn-primary" href="/contacts" data-goal="order_service">Обсудить мультфильм</a></p>
</div></section><section class="section service-block alt" id="business"> </div></section><section class="section service-block alt" id="business">
<div class="container"> <div class="container">
<div class="service-head"> <div class="service-head">
@@ -177,7 +177,7 @@
</article> </article>
</div> </div>
<div class="service-cta"> <div class="service-cta">
<a href="contacts.html" class="btn btn-primary btn-lg" data-goal="order_business_page">Заказать для бизнеса</a> <a href="/contacts" class="btn btn-primary btn-lg" data-goal="order_business_page">Заказать для бизнеса</a>
</div> </div>
</div> </div>
</section> </section>
@@ -188,31 +188,31 @@
<div class="service-summary"> <div class="service-summary">
<h2>Стоимость и сроки</h2> <h2>Стоимость и сроки</h2>
<p>В студии есть тарифы «Искры» — 2 500 ₽, «История» — 4 500 ₽ и «Сказка» — 9 000 ₽. Это общие тарифы по длительности и составу работы, а не фиксированная цена любого проекта в этом направлении.</p> <p>В студии есть тарифы «Искры» — 2 500 ₽, «История» — 4 500 ₽ и «Сказка» — 9 000 ₽. Это общие тарифы по длительности и составу работы, а не фиксированная цена любого проекта в этом направлении.</p>
<p>Посмотрите <a href="index.html#prices">состав тарифов</a> и <a href="services.html#extras">дополнительные опции</a>. Стоимость, срок и формат результата согласуем до начала работы.</p> <p>Посмотрите <a href="/#prices">состав тарифов</a> и <a href="/services#extras">дополнительные опции</a>. Стоимость, срок и формат результата согласуем до начала работы.</p>
<h2>Как проходит работа</h2> <h2>Как проходит работа</h2>
<p>Обсуждаем задачу и условия, утверждаем сценарий и стиль, создаём анимацию и озвучку. Затем показываем результат и вносим правки в рамках выбранного тарифа.</p> <p>Обсуждаем задачу и условия, утверждаем сценарий и стиль, создаём анимацию и озвучку. Затем показываем результат и вносим правки в рамках выбранного тарифа.</p>
<p><a href="portfolio.html">Посмотреть примеры работ</a> · <a href="contacts.html">Связаться со студией</a></p> <p><a href="/portfolio">Посмотреть примеры работ</a> · <a href="/contacts">Связаться со студией</a></p>
</div> </div>
</div></section><section class="section"><div class="container"> </div></section><section class="section"><div class="container">
<h2 class="section-title">Другие услуги</h2> <h2 class="section-title">Другие услуги</h2>
<nav class="service-links" aria-label="Другие услуги"><a href="personal-animation.html">Персональные мультфильмы на заказ</a><a href="social-animation.html">Анимационные ролики для соцсетей</a></nav> <nav class="service-links" aria-label="Другие услуги"><a href="/personal-animation">Персональные мультфильмы на заказ</a><a href="/social-animation">Анимационные ролики для соцсетей</a></nav>
</div></section><p class="container privacy-settings"><button type="button" id="cookieSettings">Настройки аналитики</button></p></main><footer class="footer"> </div></section><p class="container privacy-settings"><button type="button" id="cookieSettings">Настройки аналитики</button></p></main><footer class="footer">
<div class="container footer-inner"> <div class="container footer-inner">
<div class="footer-col"> <div class="footer-col">
<a href="index.html" class="logo"><span class="logo-bird">🐦</span><span class="logo-text">О'ЛЯПКА</span></a> <a href="/" class="logo"><span class="logo-bird">🐦</span><span class="logo-text">О'ЛЯПКА</span></a>
<p class="footer-about">Студия авторских ИИ-мультиков.</p> <p class="footer-about">Студия авторских ИИ-мультиков.</p>
</div> </div>
<div class="footer-col"> <div class="footer-col">
<h2>Навигация</h2> <h2>Навигация</h2>
<a href="index.html">Главная</a> <a href="/">Главная</a>
<a href="services.html">Услуги</a> <a href="/services">Услуги</a>
<a href="portfolio.html">Работы</a> <a href="/portfolio">Работы</a>
<a href="contacts.html">Контакты</a> <a href="/contacts">Контакты</a>
</div> </div>
<div class="footer-col"> <div class="footer-col">
<h2>Документы</h2> <h2>Документы</h2>
<a href="legal.html">Политика cookies</a> <a href="/legal">Политика cookies</a>
<a href="legal.html#agreement">Пользовательское соглашение</a> <a href="/legal#agreement">Пользовательское соглашение</a>
</div> </div>
<div class="footer-col"> <div class="footer-col">
<h2>Связаться</h2> <h2>Связаться</h2>
@@ -224,6 +224,6 @@
<div class="footer-bottom"><div class="container">© 2026 Студия мультфильмов О'ляпка</div></div> <div class="footer-bottom"><div class="container">© 2026 Студия мультфильмов О'ляпка</div></div>
</footer> </footer>
<script src="js/main.js" defer></script> <script src="/js/main.js" defer></script>
</body> </body>
</html> </html>
+16 -16
View File
@@ -3,20 +3,20 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/svg+xml" href="img/favicon.svg"> <link rel="icon" type="image/svg+xml" href="/img/favicon.svg">
<link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&amp;family=Caveat:wght@500;700&amp;display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&amp;family=Caveat:wght@500;700&amp;display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/style.css"> <link rel="stylesheet" href="/css/style.css">
<title>Заказать мультфильм: контакты студии О’ляпка</title> <title>Заказать мультфильм: контакты студии О’ляпка</title>
<meta name="description" content="Свяжитесь со студией О’ляпка в Telegram, WhatsApp или ВКонтакте. Обсудите идею мультфильма, сценарий, стоимость и срок создания."> <meta name="description" content="Свяжитесь со студией О’ляпка в Telegram, WhatsApp или ВКонтакте. Обсудите идею мультфильма, сценарий, стоимость и срок создания.">
<link rel="canonical" href="https://olapka.ru/contacts.html"> <link rel="canonical" href="https://olapka.ru/contacts">
<meta name="robots" content="index, follow, max-image-preview:large"> <meta name="robots" content="index, follow, max-image-preview:large">
<meta property="og:type" content="website"> <meta property="og:type" content="website">
<meta property="og:title" content="Заказать мультфильм: контакты студии О’ляпка"> <meta property="og:title" content="Заказать мультфильм: контакты студии О’ляпка">
<meta property="og:description" content="Свяжитесь со студией О’ляпка в Telegram, WhatsApp или ВКонтакте. Обсудите идею мультфильма, сценарий, стоимость и срок создания."> <meta property="og:description" content="Свяжитесь со студией О’ляпка в Telegram, WhatsApp или ВКонтакте. Обсудите идею мультфильма, сценарий, стоимость и срок создания.">
<meta property="og:url" content="https://olapka.ru/contacts.html"> <meta property="og:url" content="https://olapka.ru/contacts">
<meta property="og:image" content="https://olapka.ru/img/og-cover.jpg"> <meta property="og:image" content="https://olapka.ru/img/og-cover.jpg">
<meta property="og:image:width" content="1200"> <meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630"> <meta property="og:image:height" content="630">
@@ -47,7 +47,7 @@
"telephone": "+79160957383", "telephone": "+79160957383",
"contactType": "customer service", "contactType": "customer service",
"availableLanguage": "ru", "availableLanguage": "ru",
"url": "https://olapka.ru/contacts.html" "url": "https://olapka.ru/contacts"
} }
}, },
{ {
@@ -62,8 +62,8 @@
}, },
{ {
"@type": "ContactPage", "@type": "ContactPage",
"@id": "https://olapka.ru/contacts.html#webpage", "@id": "https://olapka.ru/contacts#webpage",
"url": "https://olapka.ru/contacts.html", "url": "https://olapka.ru/contacts",
"name": "Заказать мультфильм: контакты студии О’ляпка", "name": "Заказать мультфильм: контакты студии О’ляпка",
"description": "Свяжитесь со студией О’ляпка в Telegram, WhatsApp или ВКонтакте. Обсудите идею мультфильма, сценарий, стоимость и срок создания.", "description": "Свяжитесь со студией О’ляпка в Telegram, WhatsApp или ВКонтакте. Обсудите идею мультфильма, сценарий, стоимость и срок создания.",
"inLanguage": "ru", "inLanguage": "ru",
@@ -74,12 +74,12 @@
"@id": "https://olapka.ru/#organization" "@id": "https://olapka.ru/#organization"
}, },
"breadcrumb": { "breadcrumb": {
"@id": "https://olapka.ru/contacts.html#breadcrumbs" "@id": "https://olapka.ru/contacts#breadcrumbs"
} }
}, },
{ {
"@type": "BreadcrumbList", "@type": "BreadcrumbList",
"@id": "https://olapka.ru/contacts.html#breadcrumbs", "@id": "https://olapka.ru/contacts#breadcrumbs",
"itemListElement": [ "itemListElement": [
{ {
"@type": "ListItem", "@type": "ListItem",
@@ -91,7 +91,7 @@
"@type": "ListItem", "@type": "ListItem",
"position": 2, "position": 2,
"name": "Контакты", "name": "Контакты",
"item": "https://olapka.ru/contacts.html" "item": "https://olapka.ru/contacts"
} }
] ]
} }
@@ -100,7 +100,7 @@
</head> </head>
<body class="contacts-page"> <body class="contacts-page">
<a class="skip-link" href="#main-content">Перейти к содержимому</a><div class="cookie-banner" id="cookieBanner" role="region" aria-label="Настройки аналитики" hidden> <a class="skip-link" href="#main-content">Перейти к содержимому</a><div class="cookie-banner" id="cookieBanner" role="region" aria-label="Настройки аналитики" hidden>
<div class="cookie-text">Разрешить аналитику для улучшения сайта? <a href="legal.html#cookies">Подробнее</a> <div class="cookie-text">Разрешить аналитику для улучшения сайта? <a href="/legal#cookies">Подробнее</a>
</div> </div>
<div class="cookie-actions"> <div class="cookie-actions">
<button class="cookie-btn" id="cookieAccept" type="button">Разрешить</button><button class="cookie-btn cookie-decline" id="cookieDecline" type="button">Отклонить</button> <button class="cookie-btn" id="cookieAccept" type="button">Разрешить</button><button class="cookie-btn cookie-decline" id="cookieDecline" type="button">Отклонить</button>
@@ -108,7 +108,7 @@
</div> </div>
<main class="taplink" id="main-content" tabindex="-1"> <main class="taplink" id="main-content" tabindex="-1">
<nav class="container breadcrumbs" aria-label="Хлебные крошки"><ol> <nav class="container breadcrumbs" aria-label="Хлебные крошки"><ol>
<li><a href="index.html">Главная</a></li> <li><a href="/">Главная</a></li>
<li><span aria-current="page">Контакты</span></li> <li><span aria-current="page">Контакты</span></li>
</ol></nav><div class="taplink-logo"> </ol></nav><div class="taplink-logo">
<span class="logo-bird-big">🐦</span> <span class="logo-bird-big">🐦</span>
@@ -158,8 +158,8 @@
</div> </div>
<div class="taplink-legal"> <div class="taplink-legal">
<a href="legal.html">Политика cookies</a> <a href="/legal">Политика cookies</a>
<a href="legal.html#agreement">Пользовательское соглашение</a> <a href="/legal#agreement">Пользовательское соглашение</a>
</div> </div>
<div class="taplink-footer"> <div class="taplink-footer">
@@ -168,9 +168,9 @@
<p class="container privacy-settings"><button type="button" id="cookieSettings">Настройки аналитики</button></p> <p class="container privacy-settings"><button type="button" id="cookieSettings">Настройки аналитики</button></p>
<div class="contact-navigation"> <div class="contact-navigation">
<p><a href="tel:+79160957383">+7 916 095-73-83</a></p> <p><a href="tel:+79160957383">+7 916 095-73-83</a></p>
<p><a href="services.html">Услуги и цены</a> · <a href="portfolio.html">Примеры работ</a></p> <p><a href="/services">Услуги и цены</a> · <a href="/portfolio">Примеры работ</a></p>
</div></main> </div></main>
<script src="js/main.js" defer></script> <script src="/js/main.js" defer></script>
</body> </body>
</html> </html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

+26 -26
View File
@@ -6,14 +6,14 @@
<!-- Open Graph --> <!-- Open Graph -->
<!-- Twitter --> <!-- Twitter -->
<!-- Favicon --> <!-- Favicon -->
<link rel="icon" type="image/svg+xml" href="img/favicon.svg"> <link rel="icon" type="image/svg+xml" href="/img/favicon.svg">
<!-- Fonts --> <!-- Fonts -->
<link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&amp;family=Caveat:wght@500;700&amp;display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&amp;family=Caveat:wght@500;700&amp;display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/style.css"> <link rel="stylesheet" href="/css/style.css">
<!-- JSON-LD Schema.org --> <!-- JSON-LD Schema.org -->
<!-- Yandex.Metrika counter --> <!-- Yandex.Metrika counter -->
@@ -58,7 +58,7 @@
"telephone": "+79160957383", "telephone": "+79160957383",
"contactType": "customer service", "contactType": "customer service",
"availableLanguage": "ru", "availableLanguage": "ru",
"url": "https://olapka.ru/contacts.html" "url": "https://olapka.ru/contacts"
} }
}, },
{ {
@@ -124,7 +124,7 @@
</head> </head>
<body> <body>
<a class="skip-link" href="#main-content">Перейти к содержимому</a><div class="cookie-banner" id="cookieBanner" role="region" aria-label="Настройки аналитики" hidden> <a class="skip-link" href="#main-content">Перейти к содержимому</a><div class="cookie-banner" id="cookieBanner" role="region" aria-label="Настройки аналитики" hidden>
<div class="cookie-text">Разрешить аналитику для улучшения сайта? <a href="legal.html#cookies">Подробнее</a> <div class="cookie-text">Разрешить аналитику для улучшения сайта? <a href="/legal#cookies">Подробнее</a>
</div> </div>
<div class="cookie-actions"> <div class="cookie-actions">
<button class="cookie-btn" id="cookieAccept" type="button">Разрешить</button><button class="cookie-btn cookie-decline" id="cookieDecline" type="button">Отклонить</button> <button class="cookie-btn" id="cookieAccept" type="button">Разрешить</button><button class="cookie-btn cookie-decline" id="cookieDecline" type="button">Отклонить</button>
@@ -134,17 +134,17 @@
<!-- Header --> <!-- Header -->
<header class="header"> <header class="header">
<div class="container header-inner"> <div class="container header-inner">
<a href="index.html" class="logo"> <a href="/" class="logo">
<span class="logo-bird">🐦</span> <span class="logo-bird">🐦</span>
<span class="logo-text">О'ЛЯПКА</span> <span class="logo-text">О'ЛЯПКА</span>
</a> </a>
<nav class="nav" id="nav" aria-label="Основная навигация"> <nav class="nav" id="nav" aria-label="Основная навигация">
<a href="index.html" class="nav-link active" aria-current="page">Главная</a> <a href="/" class="nav-link active" aria-current="page">Главная</a>
<a href="services.html" class="nav-link">Услуги</a> <a href="/services" class="nav-link">Услуги</a>
<a href="portfolio.html" class="nav-link">Работы</a> <a href="/portfolio" class="nav-link">Работы</a>
<a href="contacts.html" class="nav-link">Контакты</a> <a href="/contacts" class="nav-link">Контакты</a>
</nav> </nav>
<a href="contacts.html" class="btn btn-primary" data-goal="order_header">Заказать</a> <a href="/contacts" class="btn btn-primary" data-goal="order_header">Заказать</a>
<button class="burger" id="burger" aria-label="Меню" type="button" aria-expanded="false" aria-controls="nav"> <button class="burger" id="burger" aria-label="Меню" type="button" aria-expanded="false" aria-controls="nav">
<span></span><span></span><span></span> <span></span><span></span><span></span>
</button> </button>
@@ -159,8 +159,8 @@
<h1 class="hero-title">Мультфильмы на заказ: подарки и реклама с ИИ-анимацией</h1> <h1 class="hero-title">Мультфильмы на заказ: подарки и реклама с ИИ-анимацией</h1>
<p class="hero-subtitle">Персональные мультфильмы, Love Story, рекламные ролики для бизнеса и анимация для соцсетей. Обсудим сценарий, стиль, стоимость и срок до начала работы.</p> <p class="hero-subtitle">Персональные мультфильмы, Love Story, рекламные ролики для бизнеса и анимация для соцсетей. Обсудим сценарий, стиль, стоимость и срок до начала работы.</p>
<div class="hero-actions"> <div class="hero-actions">
<a href="contacts.html" class="btn btn-primary btn-lg" data-goal="order_hero">Заказать мультик</a> <a href="/contacts" class="btn btn-primary btn-lg" data-goal="order_hero">Заказать мультик</a>
<a href="services.html" class="btn btn-outline btn-lg" data-goal="services_hero">Смотреть услуги</a> <a href="/services" class="btn btn-outline btn-lg" data-goal="services_hero">Смотреть услуги</a>
</div> </div>
<div class="hero-stats"> <div class="hero-stats">
<div class="stat"> <div class="stat">
@@ -222,7 +222,7 @@
<li>Сказка для ребёнка, где он — главный герой</li> <li>Сказка для ребёнка, где он — главный герой</li>
<li>Вирусные Reels для личного блога</li> <li>Вирусные Reels для личного блога</li>
</ul> </ul>
<a href="contacts.html" class="btn btn-outline" data-goal="order_personal">Заказать личный мультик</a> <a href="/contacts" class="btn btn-outline" data-goal="order_personal">Заказать личный мультик</a>
</div> </div>
<div class="for-whom-card"> <div class="for-whom-card">
<div class="for-whom-tag">🚀 Для бизнеса</div> <div class="for-whom-tag">🚀 Для бизнеса</div>
@@ -233,7 +233,7 @@
<li>Продвижение в соцсетях и рост охватов</li> <li>Продвижение в соцсетях и рост охватов</li>
<li>Имиджевые ролики и VIP-подарки клиентам</li> <li>Имиджевые ролики и VIP-подарки клиентам</li>
</ul> </ul>
<a href="contacts.html" class="btn btn-primary" data-goal="order_business">Заказать для бизнеса</a> <a href="/contacts" class="btn btn-primary" data-goal="order_business">Заказать для бизнеса</a>
</div> </div>
</div> </div>
</div> </div>
@@ -249,7 +249,7 @@
<div class="price-desc">Короткий мультик до 30 секунд</div> <div class="price-desc">Короткий мультик до 30 секунд</div>
<div class="price-features">2–4 сцены • 1 раунд правок • Базовая озвучка • Формат под Reels</div> <div class="price-features">2–4 сцены • 1 раунд правок • Базовая озвучка • Формат под Reels</div>
<div class="price-value">2 500 ₽</div> <div class="price-value">2 500 ₽</div>
<a href="contacts.html" class="btn btn-outline" data-goal="order_sparks">Заказать</a> <a href="/contacts" class="btn btn-outline" data-goal="order_sparks">Заказать</a>
</article> </article>
<article class="price-card featured" id="tariff-2"> <article class="price-card featured" id="tariff-2">
<div class="price-badge">Популярный</div> <div class="price-badge">Популярный</div>
@@ -257,14 +257,14 @@
<div class="price-desc">От 30 секунд до 1 минуты</div> <div class="price-desc">От 30 секунд до 1 минуты</div>
<div class="price-features">4–7 сцен • 2 раунда правок • Озвучка и музыка • Цветокоррекция</div> <div class="price-features">4–7 сцен • 2 раунда правок • Озвучка и музыка • Цветокоррекция</div>
<div class="price-value">4 500 ₽</div> <div class="price-value">4 500 ₽</div>
<a href="contacts.html" class="btn btn-primary" data-goal="order_story">Заказать</a> <a href="/contacts" class="btn btn-primary" data-goal="order_story">Заказать</a>
</article> </article>
<article class="price-card" id="tariff-3"> <article class="price-card" id="tariff-3">
<h3 class="price-name">Сказка</h3> <h3 class="price-name">Сказка</h3>
<div class="price-desc">От 1 до 2 минут</div> <div class="price-desc">От 1 до 2 минут</div>
<div class="price-features">От 8 сцен • 3 раунда правок • Профессиональная озвучка • Титры и логотип</div> <div class="price-features">От 8 сцен • 3 раунда правок • Профессиональная озвучка • Титры и логотип</div>
<div class="price-value">9 000 ₽</div> <div class="price-value">9 000 ₽</div>
<a href="contacts.html" class="btn btn-outline" data-goal="order_tale">Заказать</a> <a href="/contacts" class="btn btn-outline" data-goal="order_tale">Заказать</a>
</article> </article>
</div> </div>
<div class="pricing-note"> <div class="pricing-note">
@@ -312,7 +312,7 @@
<div class="cta-box"> <div class="cta-box">
<h2>Готовы оживить вашу идею?</h2> <h2>Готовы оживить вашу идею?</h2>
<p>Напишите нам — и мы бесплатно придумаем концепцию именно для вас.</p> <p>Напишите нам — и мы бесплатно придумаем концепцию именно для вас.</p>
<a href="contacts.html" class="btn btn-primary btn-lg" data-goal="order_cta">Заказать мультик</a> <a href="/contacts" class="btn btn-primary btn-lg" data-goal="order_cta">Заказать мультик</a>
</div> </div>
</div> </div>
</section> </section>
@@ -326,7 +326,7 @@
<footer class="footer"> <footer class="footer">
<div class="container footer-inner"> <div class="container footer-inner">
<div class="footer-col"> <div class="footer-col">
<a href="index.html" class="logo"> <a href="/" class="logo">
<span class="logo-bird">🐦</span> <span class="logo-bird">🐦</span>
<span class="logo-text">О'ЛЯПКА</span> <span class="logo-text">О'ЛЯПКА</span>
</a> </a>
@@ -334,15 +334,15 @@
</div> </div>
<div class="footer-col"> <div class="footer-col">
<h2>Навигация</h2> <h2>Навигация</h2>
<a href="index.html">Главная</a> <a href="/">Главная</a>
<a href="services.html">Услуги</a> <a href="/services">Услуги</a>
<a href="portfolio.html">Работы</a> <a href="/portfolio">Работы</a>
<a href="contacts.html">Контакты</a> <a href="/contacts">Контакты</a>
</div> </div>
<div class="footer-col"> <div class="footer-col">
<h2>Документы</h2> <h2>Документы</h2>
<a href="legal.html">Политика cookies</a> <a href="/legal">Политика cookies</a>
<a href="legal.html#agreement">Пользовательское соглашение</a> <a href="/legal#agreement">Пользовательское соглашение</a>
</div> </div>
<div class="footer-col"> <div class="footer-col">
<h2>Связаться</h2> <h2>Связаться</h2>
@@ -356,6 +356,6 @@
</div> </div>
</footer> </footer>
<script src="js/main.js" defer></script> <script src="/js/main.js" defer></script>
</body> </body>
</html> </html>
-21
View File
@@ -149,27 +149,6 @@
}); });
}); });
// Превью: когда карточка попадает в зону видимости, гарантируем загрузку первого кадра
const previews = document.querySelectorAll('.work-video-preview');
if ('IntersectionObserver' in window && previews.length) {
const io = new IntersectionObserver((entries, obs) => {
entries.forEach(entry => {
if (!entry.isIntersecting) return;
const v = entry.target;
obs.unobserve(v);
if (v.readyState < 2) {
v.preload = 'metadata';
v.load();
}
v.addEventListener('loadeddata', () => {
if (v.currentTime === 0) { try { v.currentTime = 0.1; } catch (err) {} }
v.preload = 'metadata';
}, { once: true });
});
}, { rootMargin: '200px 0px' });
previews.forEach(v => io.observe(v));
}
modal.querySelectorAll('[data-video-close]').forEach(el => { modal.querySelectorAll('[data-video-close]').forEach(el => {
el.addEventListener('click', close); el.addEventListener('click', close);
}); });
+27 -27
View File
@@ -3,20 +3,20 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/svg+xml" href="img/favicon.svg"> <link rel="icon" type="image/svg+xml" href="/img/favicon.svg">
<link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&amp;family=Caveat:wght@500;700&amp;display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&amp;family=Caveat:wght@500;700&amp;display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/style.css"> <link rel="stylesheet" href="/css/style.css">
<title>Политика cookies и условия использования — О’ляпка</title> <title>Политика cookies и условия использования — О’ляпка</title>
<meta name="description" content="Политика обработки cookies и пользовательское соглашение сайта студии мультфильмов О’ляпка."> <meta name="description" content="Политика обработки cookies и пользовательское соглашение сайта студии мультфильмов О’ляпка.">
<link rel="canonical" href="https://olapka.ru/legal.html"> <link rel="canonical" href="https://olapka.ru/legal">
<meta name="robots" content="noindex, follow"> <meta name="robots" content="noindex, follow">
<meta property="og:type" content="website"> <meta property="og:type" content="website">
<meta property="og:title" content="Политика cookies и условия использования — О’ляпка"> <meta property="og:title" content="Политика cookies и условия использования — О’ляпка">
<meta property="og:description" content="Политика обработки cookies и пользовательское соглашение сайта студии мультфильмов О’ляпка."> <meta property="og:description" content="Политика обработки cookies и пользовательское соглашение сайта студии мультфильмов О’ляпка.">
<meta property="og:url" content="https://olapka.ru/legal.html"> <meta property="og:url" content="https://olapka.ru/legal">
<meta property="og:image" content="https://olapka.ru/img/og-cover.jpg"> <meta property="og:image" content="https://olapka.ru/img/og-cover.jpg">
<meta property="og:image:width" content="1200"> <meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630"> <meta property="og:image:height" content="630">
@@ -47,7 +47,7 @@
"telephone": "+79160957383", "telephone": "+79160957383",
"contactType": "customer service", "contactType": "customer service",
"availableLanguage": "ru", "availableLanguage": "ru",
"url": "https://olapka.ru/contacts.html" "url": "https://olapka.ru/contacts"
} }
}, },
{ {
@@ -62,8 +62,8 @@
}, },
{ {
"@type": "WebPage", "@type": "WebPage",
"@id": "https://olapka.ru/legal.html#webpage", "@id": "https://olapka.ru/legal#webpage",
"url": "https://olapka.ru/legal.html", "url": "https://olapka.ru/legal",
"name": "Политика cookies и условия использования — О’ляпка", "name": "Политика cookies и условия использования — О’ляпка",
"description": "Политика обработки cookies и пользовательское соглашение сайта студии мультфильмов О’ляпка.", "description": "Политика обработки cookies и пользовательское соглашение сайта студии мультфильмов О’ляпка.",
"inLanguage": "ru", "inLanguage": "ru",
@@ -74,12 +74,12 @@
"@id": "https://olapka.ru/#organization" "@id": "https://olapka.ru/#organization"
}, },
"breadcrumb": { "breadcrumb": {
"@id": "https://olapka.ru/legal.html#breadcrumbs" "@id": "https://olapka.ru/legal#breadcrumbs"
} }
}, },
{ {
"@type": "BreadcrumbList", "@type": "BreadcrumbList",
"@id": "https://olapka.ru/legal.html#breadcrumbs", "@id": "https://olapka.ru/legal#breadcrumbs",
"itemListElement": [ "itemListElement": [
{ {
"@type": "ListItem", "@type": "ListItem",
@@ -91,7 +91,7 @@
"@type": "ListItem", "@type": "ListItem",
"position": 2, "position": 2,
"name": "Документы", "name": "Документы",
"item": "https://olapka.ru/legal.html" "item": "https://olapka.ru/legal"
} }
] ]
} }
@@ -100,7 +100,7 @@
</head> </head>
<body> <body>
<a class="skip-link" href="#main-content">Перейти к содержимому</a><div class="cookie-banner" id="cookieBanner" role="region" aria-label="Настройки аналитики" hidden> <a class="skip-link" href="#main-content">Перейти к содержимому</a><div class="cookie-banner" id="cookieBanner" role="region" aria-label="Настройки аналитики" hidden>
<div class="cookie-text">Разрешить аналитику для улучшения сайта? <a href="legal.html#cookies">Подробнее</a> <div class="cookie-text">Разрешить аналитику для улучшения сайта? <a href="/legal#cookies">Подробнее</a>
</div> </div>
<div class="cookie-actions"> <div class="cookie-actions">
<button class="cookie-btn" id="cookieAccept" type="button">Разрешить</button><button class="cookie-btn cookie-decline" id="cookieDecline" type="button">Отклонить</button> <button class="cookie-btn" id="cookieAccept" type="button">Разрешить</button><button class="cookie-btn cookie-decline" id="cookieDecline" type="button">Отклонить</button>
@@ -108,12 +108,12 @@
</div> </div>
<header class="header"> <header class="header">
<div class="container header-inner"> <div class="container header-inner">
<a href="index.html" class="logo"><span class="logo-bird">🐦</span><span class="logo-text">О'ЛЯПКА</span></a> <a href="/" class="logo"><span class="logo-bird">🐦</span><span class="logo-text">О'ЛЯПКА</span></a>
<nav class="nav" id="nav" aria-label="Основная навигация"> <nav class="nav" id="nav" aria-label="Основная навигация">
<a href="index.html" class="nav-link">Главная</a> <a href="/" class="nav-link">Главная</a>
<a href="services.html" class="nav-link">Услуги</a> <a href="/services" class="nav-link">Услуги</a>
<a href="portfolio.html" class="nav-link">Работы</a> <a href="/portfolio" class="nav-link">Работы</a>
<a href="contacts.html" class="nav-link">Контакты</a> <a href="/contacts" class="nav-link">Контакты</a>
</nav> </nav>
<button class="burger" id="burger" aria-label="Меню" type="button" aria-expanded="false" aria-controls="nav"><span></span><span></span><span></span></button> <button class="burger" id="burger" aria-label="Меню" type="button" aria-expanded="false" aria-controls="nav"><span></span><span></span><span></span></button>
</div> </div>
@@ -121,7 +121,7 @@
<main class="legal-page" id="main-content" tabindex="-1"> <main class="legal-page" id="main-content" tabindex="-1">
<nav class="container breadcrumbs" aria-label="Хлебные крошки"><ol> <nav class="container breadcrumbs" aria-label="Хлебные крошки"><ol>
<li><a href="index.html">Главная</a></li> <li><a href="/">Главная</a></li>
<li><span aria-current="page">Документы</span></li> <li><span aria-current="page">Документы</span></li>
</ol></nav><div class="container"> </ol></nav><div class="container">
<h1 class="page-title">Юридические <span class="accent">документы</span> <h1 class="page-title">Юридические <span class="accent">документы</span>
@@ -160,7 +160,7 @@
<p>Мы оставляем за собой право изменять настоящую Политику. Актуальная версия всегда доступна на данной странице.</p> <p>Мы оставляем за собой право изменять настоящую Политику. Актуальная версия всегда доступна на данной странице.</p>
<h3>8. Контакты</h3> <h3>8. Контакты</h3>
<p>По вопросам, связанным с обработкой cookies, вы можете связаться с нами через мессенджеры на странице <a href="contacts.html">«Контакты»</a>.</p> <p>По вопросам, связанным с обработкой cookies, вы можете связаться с нами через мессенджеры на странице <a href="/contacts">«Контакты»</a>.</p>
<p>На этом сайте аналитика загружается после выбора «Разрешить». Выбор сохраняется локально в браузере. Изменить выбор можно кнопкой «Настройки аналитики»; при отключении уже загруженной аналитики страница перезагружается. Отключение предотвращает последующие загрузки аналитики, но не удаляет ранее установленные cookies: их можно удалить в настройках браузера.</p></section> <p>На этом сайте аналитика загружается после выбора «Разрешить». Выбор сохраняется локально в браузере. Изменить выбор можно кнопкой «Настройки аналитики»; при отключении уже загруженной аналитики страница перезагружается. Отключение предотвращает последующие загрузки аналитики, но не удаляет ранее установленные cookies: их можно удалить в настройках браузера.</p></section>
<section class="legal-section" id="agreement"> <section class="legal-section" id="agreement">
@@ -201,7 +201,7 @@
<p>Администрация вправе в одностороннем порядке изменять условия настоящего Соглашения. Актуальная версия всегда доступна на данной странице.</p> <p>Администрация вправе в одностороннем порядке изменять условия настоящего Соглашения. Актуальная версия всегда доступна на данной странице.</p>
<h3>9. Контакты</h3> <h3>9. Контакты</h3>
<p>По всем вопросам, связанным с настоящим Соглашением, обращайтесь через мессенджеры на странице <a href="contacts.html">«Контакты»</a>.</p> <p>По всем вопросам, связанным с настоящим Соглашением, обращайтесь через мессенджеры на странице <a href="/contacts">«Контакты»</a>.</p>
</section> </section>
</div> </div>
<p class="container privacy-settings"><button type="button" id="cookieSettings">Настройки аналитики</button></p></main> <p class="container privacy-settings"><button type="button" id="cookieSettings">Настройки аналитики</button></p></main>
@@ -209,20 +209,20 @@
<footer class="footer"> <footer class="footer">
<div class="container footer-inner"> <div class="container footer-inner">
<div class="footer-col"> <div class="footer-col">
<a href="index.html" class="logo"><span class="logo-bird">🐦</span><span class="logo-text">О'ЛЯПКА</span></a> <a href="/" class="logo"><span class="logo-bird">🐦</span><span class="logo-text">О'ЛЯПКА</span></a>
<p class="footer-about">Студия авторских ИИ-мультиков.</p> <p class="footer-about">Студия авторских ИИ-мультиков.</p>
</div> </div>
<div class="footer-col"> <div class="footer-col">
<h2>Навигация</h2> <h2>Навигация</h2>
<a href="index.html">Главная</a> <a href="/">Главная</a>
<a href="services.html">Услуги</a> <a href="/services">Услуги</a>
<a href="portfolio.html">Работы</a> <a href="/portfolio">Работы</a>
<a href="contacts.html">Контакты</a> <a href="/contacts">Контакты</a>
</div> </div>
<div class="footer-col"> <div class="footer-col">
<h2>Документы</h2> <h2>Документы</h2>
<a href="legal.html">Политика cookies</a> <a href="/legal">Политика cookies</a>
<a href="legal.html#agreement">Пользовательское соглашение</a> <a href="/legal#agreement">Пользовательское соглашение</a>
</div> </div>
<div class="footer-col"> <div class="footer-col">
<h2>Связаться</h2> <h2>Связаться</h2>
@@ -234,6 +234,6 @@
<div class="footer-bottom"><div class="container">© 2026 Студия мультфильмов О'ляпка</div></div> <div class="footer-bottom"><div class="container">© 2026 Студия мультфильмов О'ляпка</div></div>
</footer> </footer>
<script src="js/main.js" defer></script> <script src="/js/main.js" defer></script>
</body> </body>
</html> </html>
+1 -1
View File
@@ -480,7 +480,7 @@
Версия материалов: 2026-10-31. Версия материалов: 2026-10-31.
Примеры, отзывы и результаты ниже приведены по материалам самой студии. Цены отдельных работ могут отличаться от текущих тарифов. В исходном комплекте видеофайлы повторяются; названия и описания не являются независимой проверкой содержания видео. Примеры, отзывы и результаты ниже приведены по материалам самой студии. Цены отдельных работ могут отличаться от текущих тарифов. Названия и описания работ приведены по материалам студии.
Каждый мультик — это уникальная история. Смотрите примеры и вдохновляйтесь. Каждый мультик — это уникальная история. Смотрите примеры и вдохновляйтесь.
+1 -1
View File
@@ -24,6 +24,6 @@
## Optional ## Optional
- [Работы и отзывы](https://olapka.ru/portfolio.md): примеры и отзывы, опубликованные студией; ограничения исходных медиа отмечены в документе. - [Работы и отзывы](https://olapka.ru/portfolio.md): примеры и отзывы, опубликованные студией.
- [Документы](https://olapka.ru/legal.md): политика cookies и пользовательское соглашение. - [Документы](https://olapka.ru/legal.md): политика cookies и пользовательское соглашение.
- [Карта сайта](https://olapka.ru/sitemap.xml): индексируемые HTML-страницы. - [Карта сайта](https://olapka.ru/sitemap.xml): индексируемые HTML-страницы.
+36 -36
View File
@@ -4,22 +4,22 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Open Graph --> <!-- Open Graph -->
<link rel="icon" type="image/svg+xml" href="img/favicon.svg"> <link rel="icon" type="image/svg+xml" href="/img/favicon.svg">
<link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&amp;family=Caveat:wght@500;700&amp;display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&amp;family=Caveat:wght@500;700&amp;display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/style.css"> <link rel="stylesheet" href="/css/style.css">
<!-- JSON-LD: 3 услуги --> <!-- JSON-LD: 3 услуги -->
<!-- Yandex.Metrika --> <!-- Yandex.Metrika -->
<title>Персональные мультфильмы на заказ — О’ляпка</title> <title>Персональные мультфильмы на заказ — О’ляпка</title>
<meta name="description" content="Мультфильм на день рождения, Love Story или сказка для ребёнка. Персональная история с близкими людьми в главных ролях."> <meta name="description" content="Мультфильм на день рождения, Love Story или сказка для ребёнка. Персональная история с близкими людьми в главных ролях.">
<link rel="canonical" href="https://olapka.ru/personal-animation.html"> <link rel="canonical" href="https://olapka.ru/personal-animation">
<meta name="robots" content="index, follow, max-image-preview:large"> <meta name="robots" content="index, follow, max-image-preview:large">
<meta property="og:type" content="website"> <meta property="og:type" content="website">
<meta property="og:title" content="Персональные мультфильмы на заказ — О’ляпка"> <meta property="og:title" content="Персональные мультфильмы на заказ — О’ляпка">
<meta property="og:description" content="Мультфильм на день рождения, Love Story или сказка для ребёнка. Персональная история с близкими людьми в главных ролях."> <meta property="og:description" content="Мультфильм на день рождения, Love Story или сказка для ребёнка. Персональная история с близкими людьми в главных ролях.">
<meta property="og:url" content="https://olapka.ru/personal-animation.html"> <meta property="og:url" content="https://olapka.ru/personal-animation">
<meta property="og:image" content="https://olapka.ru/img/og-cover.jpg"> <meta property="og:image" content="https://olapka.ru/img/og-cover.jpg">
<meta property="og:image:width" content="1200"> <meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630"> <meta property="og:image:height" content="630">
@@ -50,7 +50,7 @@
"telephone": "+79160957383", "telephone": "+79160957383",
"contactType": "customer service", "contactType": "customer service",
"availableLanguage": "ru", "availableLanguage": "ru",
"url": "https://olapka.ru/contacts.html" "url": "https://olapka.ru/contacts"
} }
}, },
{ {
@@ -65,8 +65,8 @@
}, },
{ {
"@type": "WebPage", "@type": "WebPage",
"@id": "https://olapka.ru/personal-animation.html#webpage", "@id": "https://olapka.ru/personal-animation#webpage",
"url": "https://olapka.ru/personal-animation.html", "url": "https://olapka.ru/personal-animation",
"name": "Персональные мультфильмы на заказ — О’ляпка", "name": "Персональные мультфильмы на заказ — О’ляпка",
"description": "Мультфильм на день рождения, Love Story или сказка для ребёнка. Персональная история с близкими людьми в главных ролях.", "description": "Мультфильм на день рождения, Love Story или сказка для ребёнка. Персональная история с близкими людьми в главных ролях.",
"inLanguage": "ru", "inLanguage": "ru",
@@ -77,15 +77,15 @@
"@id": "https://olapka.ru/#organization" "@id": "https://olapka.ru/#organization"
}, },
"breadcrumb": { "breadcrumb": {
"@id": "https://olapka.ru/personal-animation.html#breadcrumbs" "@id": "https://olapka.ru/personal-animation#breadcrumbs"
}, },
"mainEntity": { "mainEntity": {
"@id": "https://olapka.ru/personal-animation.html#service" "@id": "https://olapka.ru/personal-animation#service"
} }
}, },
{ {
"@type": "BreadcrumbList", "@type": "BreadcrumbList",
"@id": "https://olapka.ru/personal-animation.html#breadcrumbs", "@id": "https://olapka.ru/personal-animation#breadcrumbs",
"itemListElement": [ "itemListElement": [
{ {
"@type": "ListItem", "@type": "ListItem",
@@ -97,23 +97,23 @@
"@type": "ListItem", "@type": "ListItem",
"position": 2, "position": 2,
"name": "Услуги", "name": "Услуги",
"item": "https://olapka.ru/services.html" "item": "https://olapka.ru/services"
}, },
{ {
"@type": "ListItem", "@type": "ListItem",
"position": 3, "position": 3,
"name": "Персональные мультфильмы на заказ", "name": "Персональные мультфильмы на заказ",
"item": "https://olapka.ru/personal-animation.html" "item": "https://olapka.ru/personal-animation"
} }
] ]
}, },
{ {
"@type": "Service", "@type": "Service",
"@id": "https://olapka.ru/personal-animation.html#service", "@id": "https://olapka.ru/personal-animation#service",
"name": "Персональные мультфильмы на заказ", "name": "Персональные мультфильмы на заказ",
"description": "Мультфильм на день рождения, Love Story или сказка для ребёнка. Персональная история с близкими людьми в главных ролях.", "description": "Мультфильм на день рождения, Love Story или сказка для ребёнка. Персональная история с близкими людьми в главных ролях.",
"serviceType": "Персональные мультфильмы на заказ", "serviceType": "Персональные мультфильмы на заказ",
"url": "https://olapka.ru/personal-animation.html", "url": "https://olapka.ru/personal-animation",
"provider": { "provider": {
"@id": "https://olapka.ru/#organization" "@id": "https://olapka.ru/#organization"
} }
@@ -123,7 +123,7 @@
</head> </head>
<body> <body>
<a class="skip-link" href="#main-content">Перейти к содержимому</a><div class="cookie-banner" id="cookieBanner" role="region" aria-label="Настройки аналитики" hidden> <a class="skip-link" href="#main-content">Перейти к содержимому</a><div class="cookie-banner" id="cookieBanner" role="region" aria-label="Настройки аналитики" hidden>
<div class="cookie-text">Разрешить аналитику для улучшения сайта? <a href="legal.html#cookies">Подробнее</a> <div class="cookie-text">Разрешить аналитику для улучшения сайта? <a href="/legal#cookies">Подробнее</a>
</div> </div>
<div class="cookie-actions"> <div class="cookie-actions">
<button class="cookie-btn" id="cookieAccept" type="button">Разрешить</button><button class="cookie-btn cookie-decline" id="cookieDecline" type="button">Отклонить</button> <button class="cookie-btn" id="cookieAccept" type="button">Разрешить</button><button class="cookie-btn cookie-decline" id="cookieDecline" type="button">Отклонить</button>
@@ -131,26 +131,26 @@
</div> </div>
<header class="header"> <header class="header">
<div class="container header-inner"> <div class="container header-inner">
<a href="index.html" class="logo"><span class="logo-bird">🐦</span><span class="logo-text">О'ЛЯПКА</span></a> <a href="/" class="logo"><span class="logo-bird">🐦</span><span class="logo-text">О'ЛЯПКА</span></a>
<nav class="nav" id="nav" aria-label="Основная навигация"> <nav class="nav" id="nav" aria-label="Основная навигация">
<a href="index.html" class="nav-link">Главная</a> <a href="/" class="nav-link">Главная</a>
<a href="services.html" class="nav-link active">Услуги</a> <a href="/services" class="nav-link active">Услуги</a>
<a href="portfolio.html" class="nav-link">Работы</a> <a href="/portfolio" class="nav-link">Работы</a>
<a href="contacts.html" class="nav-link">Контакты</a> <a href="/contacts" class="nav-link">Контакты</a>
</nav> </nav>
<a href="contacts.html" class="btn btn-primary" data-goal="order_header">Заказать</a> <a href="/contacts" class="btn btn-primary" data-goal="order_header">Заказать</a>
<button class="burger" id="burger" aria-label="Меню" type="button" aria-expanded="false" aria-controls="nav"><span></span><span></span><span></span></button> <button class="burger" id="burger" aria-label="Меню" type="button" aria-expanded="false" aria-controls="nav"><span></span><span></span><span></span></button>
</div> </div>
</header> </header>
<main id="main-content" tabindex="-1"><nav class="container breadcrumbs" aria-label="Хлебные крошки"><ol> <main id="main-content" tabindex="-1"><nav class="container breadcrumbs" aria-label="Хлебные крошки"><ol>
<li><a href="index.html">Главная</a></li> <li><a href="/">Главная</a></li>
<li><a href="services.html">Услуги</a></li> <li><a href="/services">Услуги</a></li>
<li><span aria-current="page">Персональные мультфильмы на заказ</span></li> <li><span aria-current="page">Персональные мультфильмы на заказ</span></li>
</ol></nav><section class="page-hero"><div class="container"> </ol></nav><section class="page-hero"><div class="container">
<h1 class="page-title">Персональные мультфильмы на заказ</h1> <h1 class="page-title">Персональные мультфильмы на заказ</h1>
<p class="page-subtitle">Мультфильм на день рождения, Love Story или сказка для ребёнка. Персональная история с близкими людьми в главных ролях.</p> <p class="page-subtitle">Мультфильм на день рождения, Love Story или сказка для ребёнка. Персональная история с близкими людьми в главных ролях.</p>
<p class="service-cta"><a class="btn btn-primary" href="contacts.html" data-goal="order_service">Обсудить мультфильм</a></p> <p class="service-cta"><a class="btn btn-primary" href="/contacts" data-goal="order_service">Обсудить мультфильм</a></p>
</div></section><section class="section service-block" id="personal"> </div></section><section class="section service-block" id="personal">
<div class="container"> <div class="container">
<div class="service-head"> <div class="service-head">
@@ -177,7 +177,7 @@
</article> </article>
</div> </div>
<div class="service-cta"> <div class="service-cta">
<a href="contacts.html" class="btn btn-primary btn-lg" data-goal="order_personal_page">Заказать личный мультик</a> <a href="/contacts" class="btn btn-primary btn-lg" data-goal="order_personal_page">Заказать личный мультик</a>
</div> </div>
</div> </div>
</section> </section>
@@ -188,31 +188,31 @@
<div class="service-summary"> <div class="service-summary">
<h2>Стоимость и сроки</h2> <h2>Стоимость и сроки</h2>
<p>В студии есть тарифы «Искры» — 2 500 ₽, «История» — 4 500 ₽ и «Сказка» — 9 000 ₽. Это общие тарифы по длительности и составу работы, а не фиксированная цена любого проекта в этом направлении.</p> <p>В студии есть тарифы «Искры» — 2 500 ₽, «История» — 4 500 ₽ и «Сказка» — 9 000 ₽. Это общие тарифы по длительности и составу работы, а не фиксированная цена любого проекта в этом направлении.</p>
<p>Посмотрите <a href="index.html#prices">состав тарифов</a> и <a href="services.html#extras">дополнительные опции</a>. Стоимость, срок и формат результата согласуем до начала работы.</p> <p>Посмотрите <a href="/#prices">состав тарифов</a> и <a href="/services#extras">дополнительные опции</a>. Стоимость, срок и формат результата согласуем до начала работы.</p>
<h2>Как проходит работа</h2> <h2>Как проходит работа</h2>
<p>Обсуждаем задачу и условия, утверждаем сценарий и стиль, создаём анимацию и озвучку. Затем показываем результат и вносим правки в рамках выбранного тарифа.</p> <p>Обсуждаем задачу и условия, утверждаем сценарий и стиль, создаём анимацию и озвучку. Затем показываем результат и вносим правки в рамках выбранного тарифа.</p>
<p><a href="portfolio.html">Посмотреть примеры работ</a> · <a href="contacts.html">Связаться со студией</a></p> <p><a href="/portfolio">Посмотреть примеры работ</a> · <a href="/contacts">Связаться со студией</a></p>
</div> </div>
</div></section><section class="section"><div class="container"> </div></section><section class="section"><div class="container">
<h2 class="section-title">Другие услуги</h2> <h2 class="section-title">Другие услуги</h2>
<nav class="service-links" aria-label="Другие услуги"><a href="business-animation.html">Рекламные анимационные ролики для бизнеса</a><a href="social-animation.html">Анимационные ролики для соцсетей</a></nav> <nav class="service-links" aria-label="Другие услуги"><a href="/business-animation">Рекламные анимационные ролики для бизнеса</a><a href="/social-animation">Анимационные ролики для соцсетей</a></nav>
</div></section><p class="container privacy-settings"><button type="button" id="cookieSettings">Настройки аналитики</button></p></main><footer class="footer"> </div></section><p class="container privacy-settings"><button type="button" id="cookieSettings">Настройки аналитики</button></p></main><footer class="footer">
<div class="container footer-inner"> <div class="container footer-inner">
<div class="footer-col"> <div class="footer-col">
<a href="index.html" class="logo"><span class="logo-bird">🐦</span><span class="logo-text">О'ЛЯПКА</span></a> <a href="/" class="logo"><span class="logo-bird">🐦</span><span class="logo-text">О'ЛЯПКА</span></a>
<p class="footer-about">Студия авторских ИИ-мультиков.</p> <p class="footer-about">Студия авторских ИИ-мультиков.</p>
</div> </div>
<div class="footer-col"> <div class="footer-col">
<h2>Навигация</h2> <h2>Навигация</h2>
<a href="index.html">Главная</a> <a href="/">Главная</a>
<a href="services.html">Услуги</a> <a href="/services">Услуги</a>
<a href="portfolio.html">Работы</a> <a href="/portfolio">Работы</a>
<a href="contacts.html">Контакты</a> <a href="/contacts">Контакты</a>
</div> </div>
<div class="footer-col"> <div class="footer-col">
<h2>Документы</h2> <h2>Документы</h2>
<a href="legal.html">Политика cookies</a> <a href="/legal">Политика cookies</a>
<a href="legal.html#agreement">Пользовательское соглашение</a> <a href="/legal#agreement">Пользовательское соглашение</a>
</div> </div>
<div class="footer-col"> <div class="footer-col">
<h2>Связаться</h2> <h2>Связаться</h2>
@@ -224,6 +224,6 @@
<div class="footer-bottom"><div class="container">© 2026 Студия мультфильмов О'ляпка</div></div> <div class="footer-bottom"><div class="container">© 2026 Студия мультфильмов О'ляпка</div></div>
</footer> </footer>
<script src="js/main.js" defer></script> <script src="/js/main.js" defer></script>
</body> </body>
</html> </html>
+51 -57
View File
@@ -4,20 +4,20 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/svg+xml" href="img/favicon.svg"> <link rel="icon" type="image/svg+xml" href="/img/favicon.svg">
<link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&amp;family=Caveat:wght@500;700&amp;display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&amp;family=Caveat:wght@500;700&amp;display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/style.css"> <link rel="stylesheet" href="/css/style.css">
<title>Примеры мультфильмов и рекламной анимации — О’ляпка</title> <title>Примеры мультфильмов и рекламной анимации — О’ляпка</title>
<meta name="description" content="Посмотрите примеры ИИ-анимации студии О’ляпка: рекламные ролики, детские сказки и персональные подарки. Выберите идею для своего мультфильма."> <meta name="description" content="Посмотрите примеры ИИ-анимации студии О’ляпка: рекламные ролики, детские сказки и персональные подарки. Выберите идею для своего мультфильма.">
<link rel="canonical" href="https://olapka.ru/portfolio.html"> <link rel="canonical" href="https://olapka.ru/portfolio">
<meta name="robots" content="index, follow, max-image-preview:large"> <meta name="robots" content="index, follow, max-image-preview:large">
<meta property="og:type" content="website"> <meta property="og:type" content="website">
<meta property="og:title" content="Примеры мультфильмов и рекламной анимации — О’ляпка"> <meta property="og:title" content="Примеры мультфильмов и рекламной анимации — О’ляпка">
<meta property="og:description" content="Посмотрите примеры ИИ-анимации студии О’ляпка: рекламные ролики, детские сказки и персональные подарки. Выберите идею для своего мультфильма."> <meta property="og:description" content="Посмотрите примеры ИИ-анимации студии О’ляпка: рекламные ролики, детские сказки и персональные подарки. Выберите идею для своего мультфильма.">
<meta property="og:url" content="https://olapka.ru/portfolio.html"> <meta property="og:url" content="https://olapka.ru/portfolio">
<meta property="og:image" content="https://olapka.ru/img/og-cover.jpg"> <meta property="og:image" content="https://olapka.ru/img/og-cover.jpg">
<meta property="og:image:width" content="1200"> <meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630"> <meta property="og:image:height" content="630">
@@ -48,7 +48,7 @@
"telephone": "+79160957383", "telephone": "+79160957383",
"contactType": "customer service", "contactType": "customer service",
"availableLanguage": "ru", "availableLanguage": "ru",
"url": "https://olapka.ru/contacts.html" "url": "https://olapka.ru/contacts"
} }
}, },
{ {
@@ -63,8 +63,8 @@
}, },
{ {
"@type": "CollectionPage", "@type": "CollectionPage",
"@id": "https://olapka.ru/portfolio.html#webpage", "@id": "https://olapka.ru/portfolio#webpage",
"url": "https://olapka.ru/portfolio.html", "url": "https://olapka.ru/portfolio",
"name": "Примеры мультфильмов и рекламной анимации — О’ляпка", "name": "Примеры мультфильмов и рекламной анимации — О’ляпка",
"description": "Посмотрите примеры ИИ-анимации студии О’ляпка: рекламные ролики, детские сказки и персональные подарки. Выберите идею для своего мультфильма.", "description": "Посмотрите примеры ИИ-анимации студии О’ляпка: рекламные ролики, детские сказки и персональные подарки. Выберите идею для своего мультфильма.",
"inLanguage": "ru", "inLanguage": "ru",
@@ -75,12 +75,12 @@
"@id": "https://olapka.ru/#organization" "@id": "https://olapka.ru/#organization"
}, },
"breadcrumb": { "breadcrumb": {
"@id": "https://olapka.ru/portfolio.html#breadcrumbs" "@id": "https://olapka.ru/portfolio#breadcrumbs"
} }
}, },
{ {
"@type": "BreadcrumbList", "@type": "BreadcrumbList",
"@id": "https://olapka.ru/portfolio.html#breadcrumbs", "@id": "https://olapka.ru/portfolio#breadcrumbs",
"itemListElement": [ "itemListElement": [
{ {
"@type": "ListItem", "@type": "ListItem",
@@ -92,7 +92,7 @@
"@type": "ListItem", "@type": "ListItem",
"position": 2, "position": 2,
"name": "Работы", "name": "Работы",
"item": "https://olapka.ru/portfolio.html" "item": "https://olapka.ru/portfolio"
} }
] ]
}, },
@@ -104,37 +104,37 @@
"@type": "ListItem", "@type": "ListItem",
"position": 1, "position": 1,
"name": "Реклама детского лофта", "name": "Реклама детского лофта",
"url": "https://olapka.ru/portfolio.html#work-1" "url": "https://olapka.ru/portfolio#work-1"
}, },
{ {
"@type": "ListItem", "@type": "ListItem",
"position": 2, "position": 2,
"name": "Детский музей мозга", "name": "Детский музей мозга",
"url": "https://olapka.ru/portfolio.html#work-2" "url": "https://olapka.ru/portfolio#work-2"
}, },
{ {
"@type": "ListItem", "@type": "ListItem",
"position": 3, "position": 3,
"name": "Приключение Саши в Звёздном саду", "name": "Приключение Саши в Звёздном саду",
"url": "https://olapka.ru/portfolio.html#work-3" "url": "https://olapka.ru/portfolio#work-3"
}, },
{ {
"@type": "ListItem", "@type": "ListItem",
"position": 4, "position": 4,
"name": "Сюрприз для подруги", "name": "Сюрприз для подруги",
"url": "https://olapka.ru/portfolio.html#work-4" "url": "https://olapka.ru/portfolio#work-4"
}, },
{ {
"@type": "ListItem", "@type": "ListItem",
"position": 5, "position": 5,
"name": "Артём и секрет настоящей победы", "name": "Артём и секрет настоящей победы",
"url": "https://olapka.ru/portfolio.html#work-5" "url": "https://olapka.ru/portfolio#work-5"
}, },
{ {
"@type": "ListItem", "@type": "ListItem",
"position": 6, "position": 6,
"name": "Продакт-плейсмент к сезону отключения горячей воды", "name": "Продакт-плейсмент к сезону отключения горячей воды",
"url": "https://olapka.ru/portfolio.html#work-6" "url": "https://olapka.ru/portfolio#work-6"
} }
] ]
} }
@@ -144,7 +144,7 @@
<body> <body>
<a class="skip-link" href="#main-content">Перейти к содержимому</a><div class="cookie-banner" id="cookieBanner" role="region" aria-label="Настройки аналитики" hidden> <a class="skip-link" href="#main-content">Перейти к содержимому</a><div class="cookie-banner" id="cookieBanner" role="region" aria-label="Настройки аналитики" hidden>
<div class="cookie-text">Разрешить аналитику для улучшения сайта? <a href="legal.html#cookies">Подробнее</a> <div class="cookie-text">Разрешить аналитику для улучшения сайта? <a href="/legal#cookies">Подробнее</a>
</div> </div>
<div class="cookie-actions"> <div class="cookie-actions">
<button class="cookie-btn" id="cookieAccept" type="button">Разрешить</button><button class="cookie-btn cookie-decline" id="cookieDecline" type="button">Отклонить</button> <button class="cookie-btn" id="cookieAccept" type="button">Разрешить</button><button class="cookie-btn cookie-decline" id="cookieDecline" type="button">Отклонить</button>
@@ -152,21 +152,21 @@
</div> </div>
<header class="header"> <header class="header">
<div class="container header-inner"> <div class="container header-inner">
<a href="index.html" class="logo"><span class="logo-bird">🐦</span><span class="logo-text">О'ЛЯПКА</span></a> <a href="/" class="logo"><span class="logo-bird">🐦</span><span class="logo-text">О'ЛЯПКА</span></a>
<nav class="nav" id="nav" aria-label="Основная навигация"> <nav class="nav" id="nav" aria-label="Основная навигация">
<a href="index.html" class="nav-link">Главная</a> <a href="/" class="nav-link">Главная</a>
<a href="services.html" class="nav-link">Услуги</a> <a href="/services" class="nav-link">Услуги</a>
<a href="portfolio.html" class="nav-link active" aria-current="page">Работы</a> <a href="/portfolio" class="nav-link active" aria-current="page">Работы</a>
<a href="contacts.html" class="nav-link">Контакты</a> <a href="/contacts" class="nav-link">Контакты</a>
</nav> </nav>
<a href="contacts.html" class="btn btn-primary" data-goal="order_header">Заказать</a> <a href="/contacts" class="btn btn-primary" data-goal="order_header">Заказать</a>
<button class="burger" id="burger" aria-label="Меню" type="button" aria-expanded="false" aria-controls="nav"><span></span><span></span><span></span></button> <button class="burger" id="burger" aria-label="Меню" type="button" aria-expanded="false" aria-controls="nav"><span></span><span></span><span></span></button>
</div> </div>
</header> </header>
<main id="main-content" tabindex="-1"> <main id="main-content" tabindex="-1">
<nav class="container breadcrumbs" aria-label="Хлебные крошки"><ol> <nav class="container breadcrumbs" aria-label="Хлебные крошки"><ol>
<li><a href="index.html">Главная</a></li> <li><a href="/">Главная</a></li>
<li><span aria-current="page">Работы</span></li> <li><span aria-current="page">Работы</span></li>
</ol></nav><section class="page-hero"> </ol></nav><section class="page-hero">
<div class="container"> <div class="container">
@@ -182,9 +182,8 @@
<div class="portfolio-grid"> <div class="portfolio-grid">
<article class="work-card" id="work-1"> <article class="work-card" id="work-1">
<div class="work-media"> <div class="work-media">
<button class="work-video" type="button" data-video="video/video-1.webm" data-title="Реклама к открытию детского лофта" data-goal="video_open" aria-label="Смотреть видео: Реклама к открытию детского лофта"> <button class="work-video" type="button" data-video="/video/video-1.webm" data-title="Реклама к открытию детского лофта" data-goal="video_open" aria-label="Смотреть видео: Реклама к открытию детского лофта">
<video class="work-video-preview" src="video/video-1.webm#t=10.6" preload="none" muted playsinline aria-hidden="true"></video> <img class="work-video-preview" src="/img/posters/video-1.jpg" width="640" height="360" alt="" aria-hidden="true" loading="lazy" decoding="async"><span class="work-play" aria-hidden="true"><svg viewbox="0 0 24 24" width="28" height="28">
<span class="work-play" aria-hidden="true"><svg viewbox="0 0 24 24" width="28" height="28">
<path d="M8 5.5v13l10-6.5z" fill="currentColor"></path> <path d="M8 5.5v13l10-6.5z" fill="currentColor"></path>
</svg></span> </svg></span>
<span class="work-video-label">Реклама</span> <span class="work-video-label">Реклама</span>
@@ -201,12 +200,11 @@
<span>4 500 ₽</span> <span>4 500 ₽</span>
</div> </div>
</div> </div>
<noscript><p><a href="video/video-1.webm">Открыть видео</a></p></noscript></article> <noscript><p><a href="/video/video-1.webm">Открыть видео</a></p></noscript></article>
<article class="work-card" id="work-2"> <article class="work-card" id="work-2">
<div class="work-media"> <div class="work-media">
<button class="work-video" type="button" data-video="video/video-6.webm" data-title="Рекламный ролик для Детского Музея Мозга " data-goal="video_open" aria-label="Смотреть видео: Рекламный ролик для Детского Музея Мозга"> <button class="work-video" type="button" data-video="/video/video-6.webm" data-title="Рекламный ролик для Детского Музея Мозга " data-goal="video_open" aria-label="Смотреть видео: Рекламный ролик для Детского Музея Мозга">
<video class="work-video-preview" src="video/video-6.webm#t=13.5" preload="none" muted playsinline aria-hidden="true"></video> <img class="work-video-preview" src="/img/posters/video-6.jpg" width="640" height="360" alt="" aria-hidden="true" loading="lazy" decoding="async"><span class="work-play" aria-hidden="true"><svg viewbox="0 0 24 24" width="28" height="28">
<span class="work-play" aria-hidden="true"><svg viewbox="0 0 24 24" width="28" height="28">
<path d="M8 5.5v13l10-6.5z" fill="currentColor"></path> <path d="M8 5.5v13l10-6.5z" fill="currentColor"></path>
</svg></span> </svg></span>
<span class="work-video-label">Мультсериал</span> <span class="work-video-label">Мультсериал</span>
@@ -223,12 +221,11 @@
<span>13 500 ₽</span> <span>13 500 ₽</span>
</div> </div>
</div> </div>
<noscript><p><a href="video/video-6.webm">Открыть видео</a></p></noscript></article> <noscript><p><a href="/video/video-6.webm">Открыть видео</a></p></noscript></article>
<article class="work-card" id="work-3"> <article class="work-card" id="work-3">
<div class="work-media"> <div class="work-media">
<button class="work-video" type="button" data-video="video/video-2.webm" data-title="Приключение Саши в Звёздном саду" data-goal="video_open" aria-label="Смотреть видео: Приключение девочки Саши в Звёздном саду"> <button class="work-video" type="button" data-video="/video/video-2.webm" data-title="Приключение Саши в Звёздном саду" data-goal="video_open" aria-label="Смотреть видео: Приключение девочки Саши в Звёздном саду">
<video class="work-video-preview" src="video/video-2.webm#t=0.1" preload="none" muted playsinline aria-hidden="true"></video> <img class="work-video-preview" src="/img/posters/video-2.jpg" width="640" height="360" alt="" aria-hidden="true" loading="lazy" decoding="async"><span class="work-play" aria-hidden="true"><svg viewbox="0 0 24 24" width="28" height="28">
<span class="work-play" aria-hidden="true"><svg viewbox="0 0 24 24" width="28" height="28">
<path d="M8 5.5v13l10-6.5z" fill="currentColor"></path> <path d="M8 5.5v13l10-6.5z" fill="currentColor"></path>
</svg></span> </svg></span>
<span class="work-video-label">Сказка для Саши</span> <span class="work-video-label">Сказка для Саши</span>
@@ -244,12 +241,11 @@
<span>4 500 ₽</span> <span>4 500 ₽</span>
</div> </div>
</div> </div>
<noscript><p><a href="video/video-2.webm">Открыть видео</a></p></noscript></article> <noscript><p><a href="/video/video-2.webm">Открыть видео</a></p></noscript></article>
<article class="work-card" id="work-4"> <article class="work-card" id="work-4">
<div class="work-media"> <div class="work-media">
<button class="work-video" type="button" data-video="video/video-4.webm" data-title="Сюрприз для подруги" data-goal="video_open" aria-label="Смотреть видео: Сюрприз для подруги"> <button class="work-video" type="button" data-video="/video/video-4.webm" data-title="Сюрприз для подруги" data-goal="video_open" aria-label="Смотреть видео: Сюрприз для подруги">
<video class="work-video-preview" src="video/video-4.webm#t=4" preload="none" muted playsinline aria-hidden="true"></video> <img class="work-video-preview" src="/img/posters/video-4.jpg" width="640" height="360" alt="" aria-hidden="true" loading="lazy" decoding="async"><span class="work-play" aria-hidden="true"><svg viewbox="0 0 24 24" width="28" height="28">
<span class="work-play" aria-hidden="true"><svg viewbox="0 0 24 24" width="28" height="28">
<path d="M8 5.5v13l10-6.5z" fill="currentColor"></path> <path d="M8 5.5v13l10-6.5z" fill="currentColor"></path>
</svg></span> </svg></span>
<span class="work-video-label">Сюрприз для подруги</span> <span class="work-video-label">Сюрприз для подруги</span>
@@ -265,12 +261,11 @@
<span>3 300 ₽</span> <span>3 300 ₽</span>
</div> </div>
</div> </div>
<noscript><p><a href="video/video-4.webm">Открыть видео</a></p></noscript></article> <noscript><p><a href="/video/video-4.webm">Открыть видео</a></p></noscript></article>
<article class="work-card" id="work-5"> <article class="work-card" id="work-5">
<div class="work-media"> <div class="work-media">
<button class="work-video" type="button" data-video="video/video-5.webm" data-title="Артём и секрет настоящей победы" data-goal="video_open" aria-label="Смотреть видео: Артём и секрет настоящей победы"> <button class="work-video" type="button" data-video="/video/video-5.webm" data-title="Артём и секрет настоящей победы" data-goal="video_open" aria-label="Смотреть видео: Артём и секрет настоящей победы">
<video class="work-video-preview" src="video/video-5.webm#t=0.1" preload="none" muted playsinline aria-hidden="true"></video> <img class="work-video-preview" src="/img/posters/video-5.jpg" width="640" height="360" alt="" aria-hidden="true" loading="lazy" decoding="async"><span class="work-play" aria-hidden="true"><svg viewbox="0 0 24 24" width="28" height="28">
<span class="work-play" aria-hidden="true"><svg viewbox="0 0 24 24" width="28" height="28">
<path d="M8 5.5v13l10-6.5z" fill="currentColor"></path> <path d="M8 5.5v13l10-6.5z" fill="currentColor"></path>
</svg></span> </svg></span>
<span class="work-video-label">Детская сказка</span> <span class="work-video-label">Детская сказка</span>
@@ -286,12 +281,11 @@
<span>7 000 ₽</span> <span>7 000 ₽</span>
</div> </div>
</div> </div>
<noscript><p><a href="video/video-5.webm">Открыть видео</a></p></noscript></article> <noscript><p><a href="/video/video-5.webm">Открыть видео</a></p></noscript></article>
<article class="work-card" id="work-6"> <article class="work-card" id="work-6">
<div class="work-media"> <div class="work-media">
<button class="work-video" type="button" data-video="video/video-3.webm" data-title="Продакт-плейсмент к сезону отключения горячей воды" data-goal="video_open" aria-label="Смотреть видео: Продакт-плейсмент к сезону отключения горячей воды"> <button class="work-video" type="button" data-video="/video/video-3.webm" data-title="Продакт-плейсмент к сезону отключения горячей воды" data-goal="video_open" aria-label="Смотреть видео: Продакт-плейсмент к сезону отключения горячей воды">
<video class="work-video-preview" src="video/video-3.webm#t=1" preload="none" muted playsinline aria-hidden="true"></video> <img class="work-video-preview" src="/img/posters/video-3.jpg" width="640" height="360" alt="" aria-hidden="true" loading="lazy" decoding="async"><span class="work-play" aria-hidden="true"><svg viewbox="0 0 24 24" width="28" height="28">
<span class="work-play" aria-hidden="true"><svg viewbox="0 0 24 24" width="28" height="28">
<path d="M8 5.5v13l10-6.5z" fill="currentColor"></path> <path d="M8 5.5v13l10-6.5z" fill="currentColor"></path>
</svg></span> </svg></span>
<span class="work-video-label">Для соцсетей</span> <span class="work-video-label">Для соцсетей</span>
@@ -307,7 +301,7 @@
<span>4 500 ₽</span> <span>4 500 ₽</span>
</div> </div>
</div> </div>
<noscript><p><a href="video/video-3.webm">Открыть видео</a></p></noscript></article> <noscript><p><a href="/video/video-3.webm">Открыть видео</a></p></noscript></article>
</div> </div>
</div> </div>
</section> </section>
@@ -415,7 +409,7 @@
<div class="cta-inline"> <div class="cta-inline">
<h3>Хотите так же?</h3> <h3>Хотите так же?</h3>
<p>Расскажите нам о своей идее — и мы создадим мультик, который влюбит в себя.</p> <p>Расскажите нам о своей идее — и мы создадим мультик, который влюбит в себя.</p>
<a href="contacts.html" class="btn btn-primary btn-lg" data-goal="order_portfolio">Заказать <a href="/contacts" class="btn btn-primary btn-lg" data-goal="order_portfolio">Заказать
мультик</a> мультик</a>
</div> </div>
</div> </div>
@@ -425,20 +419,20 @@
<footer class="footer"> <footer class="footer">
<div class="container footer-inner"> <div class="container footer-inner">
<div class="footer-col"> <div class="footer-col">
<a href="index.html" class="logo"><span class="logo-bird">🐦</span><span class="logo-text">О'ЛЯПКА</span></a> <a href="/" class="logo"><span class="logo-bird">🐦</span><span class="logo-text">О'ЛЯПКА</span></a>
<p class="footer-about">Студия авторских ИИ-мультиков.</p> <p class="footer-about">Студия авторских ИИ-мультиков.</p>
</div> </div>
<div class="footer-col"> <div class="footer-col">
<h2>Навигация</h2> <h2>Навигация</h2>
<a href="index.html">Главная</a> <a href="/">Главная</a>
<a href="services.html">Услуги</a> <a href="/services">Услуги</a>
<a href="portfolio.html">Работы</a> <a href="/portfolio">Работы</a>
<a href="contacts.html">Контакты</a> <a href="/contacts">Контакты</a>
</div> </div>
<div class="footer-col"> <div class="footer-col">
<h2>Документы</h2> <h2>Документы</h2>
<a href="legal.html">Политика cookies</a> <a href="/legal">Политика cookies</a>
<a href="legal.html#agreement">Пользовательское соглашение</a> <a href="/legal#agreement">Пользовательское соглашение</a>
</div> </div>
<div class="footer-col"> <div class="footer-col">
<h2>Связаться</h2> <h2>Связаться</h2>
@@ -477,7 +471,7 @@
</div> </div>
</div> </div>
<script src="js/main.js" defer></script> <script src="/js/main.js" defer></script>
</body> </body>
</html> </html>
+1 -1
View File
@@ -4,7 +4,7 @@
Версия материалов: 2026-10-31. Версия материалов: 2026-10-31.
Примеры, отзывы и результаты ниже приведены по материалам самой студии. Цены отдельных работ могут отличаться от текущих тарифов. В исходном комплекте видеофайлы повторяются; названия и описания не являются независимой проверкой содержания видео. Примеры, отзывы и результаты ниже приведены по материалам самой студии. Цены отдельных работ могут отличаться от текущих тарифов. Названия и описания работ приведены по материалам студии.
Каждый мультик — это уникальная история. Смотрите примеры и вдохновляйтесь. Каждый мультик — это уникальная история. Смотрите примеры и вдохновляйтесь.
+46 -46
View File
@@ -4,22 +4,22 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Open Graph --> <!-- Open Graph -->
<link rel="icon" type="image/svg+xml" href="img/favicon.svg"> <link rel="icon" type="image/svg+xml" href="/img/favicon.svg">
<link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&amp;family=Caveat:wght@500;700&amp;display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&amp;family=Caveat:wght@500;700&amp;display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/style.css"> <link rel="stylesheet" href="/css/style.css">
<!-- JSON-LD: 3 услуги --> <!-- JSON-LD: 3 услуги -->
<!-- Yandex.Metrika --> <!-- Yandex.Metrika -->
<title>Создание мультфильмов: услуги и цены — О’ляпка</title> <title>Создание мультфильмов: услуги и цены — О’ляпка</title>
<meta name="description" content="Персональные мультфильмы, рекламная анимация и ролики для соцсетей. Сравните направления, тарифы от 2 500 ₽ и дополнительные опции студии О’ляпка."> <meta name="description" content="Персональные мультфильмы, рекламная анимация и ролики для соцсетей. Сравните направления, тарифы от 2 500 ₽ и дополнительные опции студии О’ляпка.">
<link rel="canonical" href="https://olapka.ru/services.html"> <link rel="canonical" href="https://olapka.ru/services">
<meta name="robots" content="index, follow, max-image-preview:large"> <meta name="robots" content="index, follow, max-image-preview:large">
<meta property="og:type" content="website"> <meta property="og:type" content="website">
<meta property="og:title" content="Создание мультфильмов: услуги и цены — О’ляпка"> <meta property="og:title" content="Создание мультфильмов: услуги и цены — О’ляпка">
<meta property="og:description" content="Персональные мультфильмы, рекламная анимация и ролики для соцсетей. Сравните направления, тарифы от 2 500 ₽ и дополнительные опции студии О’ляпка."> <meta property="og:description" content="Персональные мультфильмы, рекламная анимация и ролики для соцсетей. Сравните направления, тарифы от 2 500 ₽ и дополнительные опции студии О’ляпка.">
<meta property="og:url" content="https://olapka.ru/services.html"> <meta property="og:url" content="https://olapka.ru/services">
<meta property="og:image" content="https://olapka.ru/img/og-cover.jpg"> <meta property="og:image" content="https://olapka.ru/img/og-cover.jpg">
<meta property="og:image:width" content="1200"> <meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630"> <meta property="og:image:height" content="630">
@@ -50,7 +50,7 @@
"telephone": "+79160957383", "telephone": "+79160957383",
"contactType": "customer service", "contactType": "customer service",
"availableLanguage": "ru", "availableLanguage": "ru",
"url": "https://olapka.ru/contacts.html" "url": "https://olapka.ru/contacts"
} }
}, },
{ {
@@ -65,8 +65,8 @@
}, },
{ {
"@type": "CollectionPage", "@type": "CollectionPage",
"@id": "https://olapka.ru/services.html#webpage", "@id": "https://olapka.ru/services#webpage",
"url": "https://olapka.ru/services.html", "url": "https://olapka.ru/services",
"name": "Создание мультфильмов: услуги и цены — О’ляпка", "name": "Создание мультфильмов: услуги и цены — О’ляпка",
"description": "Персональные мультфильмы, рекламная анимация и ролики для соцсетей. Сравните направления, тарифы от 2 500 ₽ и дополнительные опции студии О’ляпка.", "description": "Персональные мультфильмы, рекламная анимация и ролики для соцсетей. Сравните направления, тарифы от 2 500 ₽ и дополнительные опции студии О’ляпка.",
"inLanguage": "ru", "inLanguage": "ru",
@@ -77,12 +77,12 @@
"@id": "https://olapka.ru/#organization" "@id": "https://olapka.ru/#organization"
}, },
"breadcrumb": { "breadcrumb": {
"@id": "https://olapka.ru/services.html#breadcrumbs" "@id": "https://olapka.ru/services#breadcrumbs"
} }
}, },
{ {
"@type": "BreadcrumbList", "@type": "BreadcrumbList",
"@id": "https://olapka.ru/services.html#breadcrumbs", "@id": "https://olapka.ru/services#breadcrumbs",
"itemListElement": [ "itemListElement": [
{ {
"@type": "ListItem", "@type": "ListItem",
@@ -94,39 +94,39 @@
"@type": "ListItem", "@type": "ListItem",
"position": 2, "position": 2,
"name": "Услуги", "name": "Услуги",
"item": "https://olapka.ru/services.html" "item": "https://olapka.ru/services"
} }
] ]
}, },
{ {
"@type": "Service", "@type": "Service",
"@id": "https://olapka.ru/personal-animation.html#service", "@id": "https://olapka.ru/personal-animation#service",
"name": "Персональные мультфильмы на заказ", "name": "Персональные мультфильмы на заказ",
"description": "Мультфильм на день рождения, Love Story или сказка для ребёнка. Персональная история с близкими людьми в главных ролях.", "description": "Мультфильм на день рождения, Love Story или сказка для ребёнка. Персональная история с близкими людьми в главных ролях.",
"serviceType": "Персональные мультфильмы на заказ", "serviceType": "Персональные мультфильмы на заказ",
"url": "https://olapka.ru/personal-animation.html", "url": "https://olapka.ru/personal-animation",
"provider": { "provider": {
"@id": "https://olapka.ru/#organization" "@id": "https://olapka.ru/#organization"
} }
}, },
{ {
"@type": "Service", "@type": "Service",
"@id": "https://olapka.ru/business-animation.html#service", "@id": "https://olapka.ru/business-animation#service",
"name": "Рекламные анимационные ролики для бизнеса", "name": "Рекламные анимационные ролики для бизнеса",
"description": "ИИ-анимация для рекламы, презентации продукта и истории бренда. Объясняем идеи через персонажей и сюжет.", "description": "ИИ-анимация для рекламы, презентации продукта и истории бренда. Объясняем идеи через персонажей и сюжет.",
"serviceType": "Рекламные анимационные ролики для бизнеса", "serviceType": "Рекламные анимационные ролики для бизнеса",
"url": "https://olapka.ru/business-animation.html", "url": "https://olapka.ru/business-animation",
"provider": { "provider": {
"@id": "https://olapka.ru/#organization" "@id": "https://olapka.ru/#organization"
} }
}, },
{ {
"@type": "Service", "@type": "Service",
"@id": "https://olapka.ru/social-animation.html#service", "@id": "https://olapka.ru/social-animation#service",
"name": "Анимационные ролики для соцсетей", "name": "Анимационные ролики для соцсетей",
"description": "Мультики для Reels, Stories, ВКонтакте и Telegram: отдельные ролики, сезонные сюжеты и серии в едином стиле.", "description": "Мультики для Reels, Stories, ВКонтакте и Telegram: отдельные ролики, сезонные сюжеты и серии в едином стиле.",
"serviceType": "Анимационные ролики для соцсетей", "serviceType": "Анимационные ролики для соцсетей",
"url": "https://olapka.ru/social-animation.html", "url": "https://olapka.ru/social-animation",
"provider": { "provider": {
"@id": "https://olapka.ru/#organization" "@id": "https://olapka.ru/#organization"
} }
@@ -139,21 +139,21 @@
"@type": "ListItem", "@type": "ListItem",
"position": 1, "position": 1,
"item": { "item": {
"@id": "https://olapka.ru/personal-animation.html#service" "@id": "https://olapka.ru/personal-animation#service"
} }
}, },
{ {
"@type": "ListItem", "@type": "ListItem",
"position": 2, "position": 2,
"item": { "item": {
"@id": "https://olapka.ru/business-animation.html#service" "@id": "https://olapka.ru/business-animation#service"
} }
}, },
{ {
"@type": "ListItem", "@type": "ListItem",
"position": 3, "position": 3,
"item": { "item": {
"@id": "https://olapka.ru/social-animation.html#service" "@id": "https://olapka.ru/social-animation#service"
} }
} }
] ]
@@ -163,7 +163,7 @@
</head> </head>
<body> <body>
<a class="skip-link" href="#main-content">Перейти к содержимому</a><div class="cookie-banner" id="cookieBanner" role="region" aria-label="Настройки аналитики" hidden> <a class="skip-link" href="#main-content">Перейти к содержимому</a><div class="cookie-banner" id="cookieBanner" role="region" aria-label="Настройки аналитики" hidden>
<div class="cookie-text">Разрешить аналитику для улучшения сайта? <a href="legal.html#cookies">Подробнее</a> <div class="cookie-text">Разрешить аналитику для улучшения сайта? <a href="/legal#cookies">Подробнее</a>
</div> </div>
<div class="cookie-actions"> <div class="cookie-actions">
<button class="cookie-btn" id="cookieAccept" type="button">Разрешить</button><button class="cookie-btn cookie-decline" id="cookieDecline" type="button">Отклонить</button> <button class="cookie-btn" id="cookieAccept" type="button">Разрешить</button><button class="cookie-btn cookie-decline" id="cookieDecline" type="button">Отклонить</button>
@@ -171,21 +171,21 @@
</div> </div>
<header class="header"> <header class="header">
<div class="container header-inner"> <div class="container header-inner">
<a href="index.html" class="logo"><span class="logo-bird">🐦</span><span class="logo-text">О'ЛЯПКА</span></a> <a href="/" class="logo"><span class="logo-bird">🐦</span><span class="logo-text">О'ЛЯПКА</span></a>
<nav class="nav" id="nav" aria-label="Основная навигация"> <nav class="nav" id="nav" aria-label="Основная навигация">
<a href="index.html" class="nav-link">Главная</a> <a href="/" class="nav-link">Главная</a>
<a href="services.html" class="nav-link active" aria-current="page">Услуги</a> <a href="/services" class="nav-link active" aria-current="page">Услуги</a>
<a href="portfolio.html" class="nav-link">Работы</a> <a href="/portfolio" class="nav-link">Работы</a>
<a href="contacts.html" class="nav-link">Контакты</a> <a href="/contacts" class="nav-link">Контакты</a>
</nav> </nav>
<a href="contacts.html" class="btn btn-primary" data-goal="order_header">Заказать</a> <a href="/contacts" class="btn btn-primary" data-goal="order_header">Заказать</a>
<button class="burger" id="burger" aria-label="Меню" type="button" aria-expanded="false" aria-controls="nav"><span></span><span></span><span></span></button> <button class="burger" id="burger" aria-label="Меню" type="button" aria-expanded="false" aria-controls="nav"><span></span><span></span><span></span></button>
</div> </div>
</header> </header>
<main id="main-content" tabindex="-1"> <main id="main-content" tabindex="-1">
<nav class="container breadcrumbs" aria-label="Хлебные крошки"><ol> <nav class="container breadcrumbs" aria-label="Хлебные крошки"><ol>
<li><a href="index.html">Главная</a></li> <li><a href="/">Главная</a></li>
<li><span aria-current="page">Услуги</span></li> <li><span aria-current="page">Услуги</span></li>
</ol></nav><section class="page-hero"> </ol></nav><section class="page-hero">
<div class="container"> <div class="container">
@@ -194,7 +194,7 @@
</div> </div>
</section> </section>
<nav class="container service-links" aria-label="Направления услуг"><a href="personal-animation.html">Персональные мультфильмы на заказ</a><a href="business-animation.html">Рекламные анимационные ролики для бизнеса</a><a href="social-animation.html">Анимационные ролики для соцсетей</a></nav><!-- Раздел 1: Личные мультики --> <nav class="container service-links" aria-label="Направления услуг"><a href="/personal-animation">Персональные мультфильмы на заказ</a><a href="/business-animation">Рекламные анимационные ролики для бизнеса</a><a href="/social-animation">Анимационные ролики для соцсетей</a></nav><!-- Раздел 1: Личные мультики -->
<section class="section service-block" id="personal"> <section class="section service-block" id="personal">
<div class="container"> <div class="container">
<div class="service-head"> <div class="service-head">
@@ -221,8 +221,8 @@
</article> </article>
</div> </div>
<div class="service-cta"> <div class="service-cta">
<p class="detail-link"><a href="personal-animation.html">Подробнее: персональные мультфильмы на заказ →</a></p> <p class="detail-link"><a href="/personal-animation">Подробнее: персональные мультфильмы на заказ →</a></p>
<a href="contacts.html" class="btn btn-primary btn-lg" data-goal="order_personal_page">Заказать личный мультик</a> <a href="/contacts" class="btn btn-primary btn-lg" data-goal="order_personal_page">Заказать личный мультик</a>
</div> </div>
</div> </div>
</section> </section>
@@ -254,8 +254,8 @@
</article> </article>
</div> </div>
<div class="service-cta"> <div class="service-cta">
<p class="detail-link"><a href="business-animation.html">Подробнее: рекламные анимационные ролики для бизнеса →</a></p> <p class="detail-link"><a href="/business-animation">Подробнее: рекламные анимационные ролики для бизнеса →</a></p>
<a href="contacts.html" class="btn btn-primary btn-lg" data-goal="order_business_page">Заказать для бизнеса</a> <a href="/contacts" class="btn btn-primary btn-lg" data-goal="order_business_page">Заказать для бизнеса</a>
</div> </div>
</div> </div>
</section> </section>
@@ -287,8 +287,8 @@
</article> </article>
</div> </div>
<div class="service-cta"> <div class="service-cta">
<p class="detail-link"><a href="social-animation.html">Подробнее: анимационные ролики для соцсетей →</a></p> <p class="detail-link"><a href="/social-animation">Подробнее: анимационные ролики для соцсетей →</a></p>
<a href="contacts.html" class="btn btn-primary btn-lg" data-goal="order_content_page">Заказать контент-пакет</a> <a href="/contacts" class="btn btn-primary btn-lg" data-goal="order_content_page">Заказать контент-пакет</a>
</div> </div>
</div> </div>
</section> </section>
@@ -329,7 +329,7 @@
<div class="price-desc">Короткий мультик до 30 секунд</div> <div class="price-desc">Короткий мультик до 30 секунд</div>
<div class="price-features">2–4 сцены • 1 раунд правок • Базовая озвучка • Формат под Reels</div> <div class="price-features">2–4 сцены • 1 раунд правок • Базовая озвучка • Формат под Reels</div>
<div class="price-value">2 500 ₽</div> <div class="price-value">2 500 ₽</div>
<a href="contacts.html" class="btn btn-outline" data-goal="order_sparks">Заказать</a> <a href="/contacts" class="btn btn-outline" data-goal="order_sparks">Заказать</a>
</article> </article>
<article class="price-card featured" id="tariff-2"> <article class="price-card featured" id="tariff-2">
<div class="price-badge">Популярный</div> <div class="price-badge">Популярный</div>
@@ -337,14 +337,14 @@
<div class="price-desc">От 30 секунд до 1 минуты</div> <div class="price-desc">От 30 секунд до 1 минуты</div>
<div class="price-features">4–7 сцен • 2 раунда правок • Озвучка и музыка • Цветокоррекция</div> <div class="price-features">4–7 сцен • 2 раунда правок • Озвучка и музыка • Цветокоррекция</div>
<div class="price-value">4 500 ₽</div> <div class="price-value">4 500 ₽</div>
<a href="contacts.html" class="btn btn-primary" data-goal="order_story">Заказать</a> <a href="/contacts" class="btn btn-primary" data-goal="order_story">Заказать</a>
</article> </article>
<article class="price-card" id="tariff-3"> <article class="price-card" id="tariff-3">
<h3 class="price-name">Сказка</h3> <h3 class="price-name">Сказка</h3>
<div class="price-desc">От 1 до 2 минут</div> <div class="price-desc">От 1 до 2 минут</div>
<div class="price-features">От 8 сцен • 3 раунда правок • Профессиональная озвучка • Титры и логотип</div> <div class="price-features">От 8 сцен • 3 раунда правок • Профессиональная озвучка • Титры и логотип</div>
<div class="price-value">9 000 ₽</div> <div class="price-value">9 000 ₽</div>
<a href="contacts.html" class="btn btn-outline" data-goal="order_tale">Заказать</a> <a href="/contacts" class="btn btn-outline" data-goal="order_tale">Заказать</a>
</article> </article>
</div> </div>
<div class="pricing-note"> <div class="pricing-note">
@@ -356,26 +356,26 @@
<section class="section"><div class="container faq"> <section class="section"><div class="container faq">
<h2 class="section-title">Вопросы о заказе мультфильма</h2> <h2 class="section-title">Вопросы о заказе мультфильма</h2>
<details><summary>Сколько стоит мультфильм?</summary><p>Тарифы студии: 2 500 ₽, 4 500 ₽ и 9 000 ₽. Состав и длительность указаны выше. Дополнительные сцены, срочность и адаптации оплачиваются отдельно.</p></details><details><summary>Сколько времени занимает работа?</summary><p>Срок зависит от сценария, длительности и количества правок. Дату готовности согласуем до начала работы. Срочное изготовление обсуждается отдельно.</p></details><details><summary>Как заказать?</summary><p>Откройте <a href="contacts.html">контакты</a> и напишите в удобный мессенджер: кому нужен ролик, для чего и к какой дате.</p></details> <details><summary>Сколько стоит мультфильм?</summary><p>Тарифы студии: 2 500 ₽, 4 500 ₽ и 9 000 ₽. Состав и длительность указаны выше. Дополнительные сцены, срочность и адаптации оплачиваются отдельно.</p></details><details><summary>Сколько времени занимает работа?</summary><p>Срок зависит от сценария, длительности и количества правок. Дату готовности согласуем до начала работы. Срочное изготовление обсуждается отдельно.</p></details><details><summary>Как заказать?</summary><p>Откройте <a href="/contacts">контакты</a> и напишите в удобный мессенджер: кому нужен ролик, для чего и к какой дате.</p></details>
</div></section><p class="container privacy-settings"><button type="button" id="cookieSettings">Настройки аналитики</button></p></main> </div></section><p class="container privacy-settings"><button type="button" id="cookieSettings">Настройки аналитики</button></p></main>
<footer class="footer"> <footer class="footer">
<div class="container footer-inner"> <div class="container footer-inner">
<div class="footer-col"> <div class="footer-col">
<a href="index.html" class="logo"><span class="logo-bird">🐦</span><span class="logo-text">О'ЛЯПКА</span></a> <a href="/" class="logo"><span class="logo-bird">🐦</span><span class="logo-text">О'ЛЯПКА</span></a>
<p class="footer-about">Студия авторских ИИ-мультиков.</p> <p class="footer-about">Студия авторских ИИ-мультиков.</p>
</div> </div>
<div class="footer-col"> <div class="footer-col">
<h2>Навигация</h2> <h2>Навигация</h2>
<a href="index.html">Главная</a> <a href="/">Главная</a>
<a href="services.html">Услуги</a> <a href="/services">Услуги</a>
<a href="portfolio.html">Работы</a> <a href="/portfolio">Работы</a>
<a href="contacts.html">Контакты</a> <a href="/contacts">Контакты</a>
</div> </div>
<div class="footer-col"> <div class="footer-col">
<h2>Документы</h2> <h2>Документы</h2>
<a href="legal.html">Политика cookies</a> <a href="/legal">Политика cookies</a>
<a href="legal.html#agreement">Пользовательское соглашение</a> <a href="/legal#agreement">Пользовательское соглашение</a>
</div> </div>
<div class="footer-col"> <div class="footer-col">
<h2>Связаться</h2> <h2>Связаться</h2>
@@ -387,6 +387,6 @@
<div class="footer-bottom"><div class="container">© 2026 Студия мультфильмов О'ляпка</div></div> <div class="footer-bottom"><div class="container">© 2026 Студия мультфильмов О'ляпка</div></div>
</footer> </footer>
<script src="js/main.js" defer></script> <script src="/js/main.js" defer></script>
</body> </body>
</html> </html>
+7 -7
View File
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url><loc>https://olapka.ru/contacts.html</loc><lastmod>2026-10-30</lastmod></url> <url><loc>https://olapka.ru/contacts</loc><lastmod>2026-10-31</lastmod></url>
<url><loc>https://olapka.ru/</loc><lastmod>2026-10-30</lastmod></url> <url><loc>https://olapka.ru/</loc><lastmod>2026-10-31</lastmod></url>
<url><loc>https://olapka.ru/services.html</loc><lastmod>2026-10-30</lastmod></url> <url><loc>https://olapka.ru/services</loc><lastmod>2026-10-31</lastmod></url>
<url><loc>https://olapka.ru/portfolio.html</loc><lastmod>2026-10-30</lastmod></url> <url><loc>https://olapka.ru/portfolio</loc><lastmod>2026-10-31</lastmod></url>
<url><loc>https://olapka.ru/personal-animation.html</loc><lastmod>2026-10-30</lastmod></url> <url><loc>https://olapka.ru/personal-animation</loc><lastmod>2026-10-31</lastmod></url>
<url><loc>https://olapka.ru/business-animation.html</loc><lastmod>2026-10-30</lastmod></url> <url><loc>https://olapka.ru/business-animation</loc><lastmod>2026-10-31</lastmod></url>
<url><loc>https://olapka.ru/social-animation.html</loc><lastmod>2026-10-30</lastmod></url> <url><loc>https://olapka.ru/social-animation</loc><lastmod>2026-10-31</lastmod></url>
</urlset> </urlset>
+36 -36
View File
@@ -4,22 +4,22 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Open Graph --> <!-- Open Graph -->
<link rel="icon" type="image/svg+xml" href="img/favicon.svg"> <link rel="icon" type="image/svg+xml" href="/img/favicon.svg">
<link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&amp;family=Caveat:wght@500;700&amp;display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&amp;family=Caveat:wght@500;700&amp;display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/style.css"> <link rel="stylesheet" href="/css/style.css">
<!-- JSON-LD: 3 услуги --> <!-- JSON-LD: 3 услуги -->
<!-- Yandex.Metrika --> <!-- Yandex.Metrika -->
<title>Анимационные ролики для соцсетей — О’ляпка</title> <title>Анимационные ролики для соцсетей — О’ляпка</title>
<meta name="description" content="Мультики для Reels, Stories, ВКонтакте и Telegram: отдельные ролики, сезонные сюжеты и серии в едином стиле."> <meta name="description" content="Мультики для Reels, Stories, ВКонтакте и Telegram: отдельные ролики, сезонные сюжеты и серии в едином стиле.">
<link rel="canonical" href="https://olapka.ru/social-animation.html"> <link rel="canonical" href="https://olapka.ru/social-animation">
<meta name="robots" content="index, follow, max-image-preview:large"> <meta name="robots" content="index, follow, max-image-preview:large">
<meta property="og:type" content="website"> <meta property="og:type" content="website">
<meta property="og:title" content="Анимационные ролики для соцсетей — О’ляпка"> <meta property="og:title" content="Анимационные ролики для соцсетей — О’ляпка">
<meta property="og:description" content="Мультики для Reels, Stories, ВКонтакте и Telegram: отдельные ролики, сезонные сюжеты и серии в едином стиле."> <meta property="og:description" content="Мультики для Reels, Stories, ВКонтакте и Telegram: отдельные ролики, сезонные сюжеты и серии в едином стиле.">
<meta property="og:url" content="https://olapka.ru/social-animation.html"> <meta property="og:url" content="https://olapka.ru/social-animation">
<meta property="og:image" content="https://olapka.ru/img/og-cover.jpg"> <meta property="og:image" content="https://olapka.ru/img/og-cover.jpg">
<meta property="og:image:width" content="1200"> <meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630"> <meta property="og:image:height" content="630">
@@ -50,7 +50,7 @@
"telephone": "+79160957383", "telephone": "+79160957383",
"contactType": "customer service", "contactType": "customer service",
"availableLanguage": "ru", "availableLanguage": "ru",
"url": "https://olapka.ru/contacts.html" "url": "https://olapka.ru/contacts"
} }
}, },
{ {
@@ -65,8 +65,8 @@
}, },
{ {
"@type": "WebPage", "@type": "WebPage",
"@id": "https://olapka.ru/social-animation.html#webpage", "@id": "https://olapka.ru/social-animation#webpage",
"url": "https://olapka.ru/social-animation.html", "url": "https://olapka.ru/social-animation",
"name": "Анимационные ролики для соцсетей — О’ляпка", "name": "Анимационные ролики для соцсетей — О’ляпка",
"description": "Мультики для Reels, Stories, ВКонтакте и Telegram: отдельные ролики, сезонные сюжеты и серии в едином стиле.", "description": "Мультики для Reels, Stories, ВКонтакте и Telegram: отдельные ролики, сезонные сюжеты и серии в едином стиле.",
"inLanguage": "ru", "inLanguage": "ru",
@@ -77,15 +77,15 @@
"@id": "https://olapka.ru/#organization" "@id": "https://olapka.ru/#organization"
}, },
"breadcrumb": { "breadcrumb": {
"@id": "https://olapka.ru/social-animation.html#breadcrumbs" "@id": "https://olapka.ru/social-animation#breadcrumbs"
}, },
"mainEntity": { "mainEntity": {
"@id": "https://olapka.ru/social-animation.html#service" "@id": "https://olapka.ru/social-animation#service"
} }
}, },
{ {
"@type": "BreadcrumbList", "@type": "BreadcrumbList",
"@id": "https://olapka.ru/social-animation.html#breadcrumbs", "@id": "https://olapka.ru/social-animation#breadcrumbs",
"itemListElement": [ "itemListElement": [
{ {
"@type": "ListItem", "@type": "ListItem",
@@ -97,23 +97,23 @@
"@type": "ListItem", "@type": "ListItem",
"position": 2, "position": 2,
"name": "Услуги", "name": "Услуги",
"item": "https://olapka.ru/services.html" "item": "https://olapka.ru/services"
}, },
{ {
"@type": "ListItem", "@type": "ListItem",
"position": 3, "position": 3,
"name": "Анимационные ролики для соцсетей", "name": "Анимационные ролики для соцсетей",
"item": "https://olapka.ru/social-animation.html" "item": "https://olapka.ru/social-animation"
} }
] ]
}, },
{ {
"@type": "Service", "@type": "Service",
"@id": "https://olapka.ru/social-animation.html#service", "@id": "https://olapka.ru/social-animation#service",
"name": "Анимационные ролики для соцсетей", "name": "Анимационные ролики для соцсетей",
"description": "Мультики для Reels, Stories, ВКонтакте и Telegram: отдельные ролики, сезонные сюжеты и серии в едином стиле.", "description": "Мультики для Reels, Stories, ВКонтакте и Telegram: отдельные ролики, сезонные сюжеты и серии в едином стиле.",
"serviceType": "Анимационные ролики для соцсетей", "serviceType": "Анимационные ролики для соцсетей",
"url": "https://olapka.ru/social-animation.html", "url": "https://olapka.ru/social-animation",
"provider": { "provider": {
"@id": "https://olapka.ru/#organization" "@id": "https://olapka.ru/#organization"
} }
@@ -123,7 +123,7 @@
</head> </head>
<body> <body>
<a class="skip-link" href="#main-content">Перейти к содержимому</a><div class="cookie-banner" id="cookieBanner" role="region" aria-label="Настройки аналитики" hidden> <a class="skip-link" href="#main-content">Перейти к содержимому</a><div class="cookie-banner" id="cookieBanner" role="region" aria-label="Настройки аналитики" hidden>
<div class="cookie-text">Разрешить аналитику для улучшения сайта? <a href="legal.html#cookies">Подробнее</a> <div class="cookie-text">Разрешить аналитику для улучшения сайта? <a href="/legal#cookies">Подробнее</a>
</div> </div>
<div class="cookie-actions"> <div class="cookie-actions">
<button class="cookie-btn" id="cookieAccept" type="button">Разрешить</button><button class="cookie-btn cookie-decline" id="cookieDecline" type="button">Отклонить</button> <button class="cookie-btn" id="cookieAccept" type="button">Разрешить</button><button class="cookie-btn cookie-decline" id="cookieDecline" type="button">Отклонить</button>
@@ -131,26 +131,26 @@
</div> </div>
<header class="header"> <header class="header">
<div class="container header-inner"> <div class="container header-inner">
<a href="index.html" class="logo"><span class="logo-bird">🐦</span><span class="logo-text">О'ЛЯПКА</span></a> <a href="/" class="logo"><span class="logo-bird">🐦</span><span class="logo-text">О'ЛЯПКА</span></a>
<nav class="nav" id="nav" aria-label="Основная навигация"> <nav class="nav" id="nav" aria-label="Основная навигация">
<a href="index.html" class="nav-link">Главная</a> <a href="/" class="nav-link">Главная</a>
<a href="services.html" class="nav-link active">Услуги</a> <a href="/services" class="nav-link active">Услуги</a>
<a href="portfolio.html" class="nav-link">Работы</a> <a href="/portfolio" class="nav-link">Работы</a>
<a href="contacts.html" class="nav-link">Контакты</a> <a href="/contacts" class="nav-link">Контакты</a>
</nav> </nav>
<a href="contacts.html" class="btn btn-primary" data-goal="order_header">Заказать</a> <a href="/contacts" class="btn btn-primary" data-goal="order_header">Заказать</a>
<button class="burger" id="burger" aria-label="Меню" type="button" aria-expanded="false" aria-controls="nav"><span></span><span></span><span></span></button> <button class="burger" id="burger" aria-label="Меню" type="button" aria-expanded="false" aria-controls="nav"><span></span><span></span><span></span></button>
</div> </div>
</header> </header>
<main id="main-content" tabindex="-1"><nav class="container breadcrumbs" aria-label="Хлебные крошки"><ol> <main id="main-content" tabindex="-1"><nav class="container breadcrumbs" aria-label="Хлебные крошки"><ol>
<li><a href="index.html">Главная</a></li> <li><a href="/">Главная</a></li>
<li><a href="services.html">Услуги</a></li> <li><a href="/services">Услуги</a></li>
<li><span aria-current="page">Анимационные ролики для соцсетей</span></li> <li><span aria-current="page">Анимационные ролики для соцсетей</span></li>
</ol></nav><section class="page-hero"><div class="container"> </ol></nav><section class="page-hero"><div class="container">
<h1 class="page-title">Анимационные ролики для соцсетей</h1> <h1 class="page-title">Анимационные ролики для соцсетей</h1>
<p class="page-subtitle">Мультики для Reels, Stories, ВКонтакте и Telegram: отдельные ролики, сезонные сюжеты и серии в едином стиле.</p> <p class="page-subtitle">Мультики для Reels, Stories, ВКонтакте и Telegram: отдельные ролики, сезонные сюжеты и серии в едином стиле.</p>
<p class="service-cta"><a class="btn btn-primary" href="contacts.html" data-goal="order_service">Обсудить мультфильм</a></p> <p class="service-cta"><a class="btn btn-primary" href="/contacts" data-goal="order_service">Обсудить мультфильм</a></p>
</div></section><section class="section service-block" id="social"> </div></section><section class="section service-block" id="social">
<div class="container"> <div class="container">
<div class="service-head"> <div class="service-head">
@@ -177,7 +177,7 @@
</article> </article>
</div> </div>
<div class="service-cta"> <div class="service-cta">
<a href="contacts.html" class="btn btn-primary btn-lg" data-goal="order_content_page">Заказать контент-пакет</a> <a href="/contacts" class="btn btn-primary btn-lg" data-goal="order_content_page">Заказать контент-пакет</a>
</div> </div>
</div> </div>
</section> </section>
@@ -188,31 +188,31 @@
<div class="service-summary"> <div class="service-summary">
<h2>Стоимость и сроки</h2> <h2>Стоимость и сроки</h2>
<p>В студии есть тарифы «Искры» — 2 500 ₽, «История» — 4 500 ₽ и «Сказка» — 9 000 ₽. Это общие тарифы по длительности и составу работы, а не фиксированная цена любого проекта в этом направлении.</p> <p>В студии есть тарифы «Искры» — 2 500 ₽, «История» — 4 500 ₽ и «Сказка» — 9 000 ₽. Это общие тарифы по длительности и составу работы, а не фиксированная цена любого проекта в этом направлении.</p>
<p>Посмотрите <a href="index.html#prices">состав тарифов</a> и <a href="services.html#extras">дополнительные опции</a>. Стоимость, срок и формат результата согласуем до начала работы.</p> <p>Посмотрите <a href="/#prices">состав тарифов</a> и <a href="/services#extras">дополнительные опции</a>. Стоимость, срок и формат результата согласуем до начала работы.</p>
<h2>Как проходит работа</h2> <h2>Как проходит работа</h2>
<p>Обсуждаем задачу и условия, утверждаем сценарий и стиль, создаём анимацию и озвучку. Затем показываем результат и вносим правки в рамках выбранного тарифа.</p> <p>Обсуждаем задачу и условия, утверждаем сценарий и стиль, создаём анимацию и озвучку. Затем показываем результат и вносим правки в рамках выбранного тарифа.</p>
<p><a href="portfolio.html">Посмотреть примеры работ</a> · <a href="contacts.html">Связаться со студией</a></p> <p><a href="/portfolio">Посмотреть примеры работ</a> · <a href="/contacts">Связаться со студией</a></p>
</div> </div>
</div></section><section class="section"><div class="container"> </div></section><section class="section"><div class="container">
<h2 class="section-title">Другие услуги</h2> <h2 class="section-title">Другие услуги</h2>
<nav class="service-links" aria-label="Другие услуги"><a href="personal-animation.html">Персональные мультфильмы на заказ</a><a href="business-animation.html">Рекламные анимационные ролики для бизнеса</a></nav> <nav class="service-links" aria-label="Другие услуги"><a href="/personal-animation">Персональные мультфильмы на заказ</a><a href="/business-animation">Рекламные анимационные ролики для бизнеса</a></nav>
</div></section><p class="container privacy-settings"><button type="button" id="cookieSettings">Настройки аналитики</button></p></main><footer class="footer"> </div></section><p class="container privacy-settings"><button type="button" id="cookieSettings">Настройки аналитики</button></p></main><footer class="footer">
<div class="container footer-inner"> <div class="container footer-inner">
<div class="footer-col"> <div class="footer-col">
<a href="index.html" class="logo"><span class="logo-bird">🐦</span><span class="logo-text">О'ЛЯПКА</span></a> <a href="/" class="logo"><span class="logo-bird">🐦</span><span class="logo-text">О'ЛЯПКА</span></a>
<p class="footer-about">Студия авторских ИИ-мультиков.</p> <p class="footer-about">Студия авторских ИИ-мультиков.</p>
</div> </div>
<div class="footer-col"> <div class="footer-col">
<h2>Навигация</h2> <h2>Навигация</h2>
<a href="index.html">Главная</a> <a href="/">Главная</a>
<a href="services.html">Услуги</a> <a href="/services">Услуги</a>
<a href="portfolio.html">Работы</a> <a href="/portfolio">Работы</a>
<a href="contacts.html">Контакты</a> <a href="/contacts">Контакты</a>
</div> </div>
<div class="footer-col"> <div class="footer-col">
<h2>Документы</h2> <h2>Документы</h2>
<a href="legal.html">Политика cookies</a> <a href="/legal">Политика cookies</a>
<a href="legal.html#agreement">Пользовательское соглашение</a> <a href="/legal#agreement">Пользовательское соглашение</a>
</div> </div>
<div class="footer-col"> <div class="footer-col">
<h2>Связаться</h2> <h2>Связаться</h2>
@@ -224,6 +224,6 @@
<div class="footer-bottom"><div class="container">© 2026 Студия мультфильмов О'ляпка</div></div> <div class="footer-bottom"><div class="container">© 2026 Студия мультфильмов О'ляпка</div></div>
</footer> </footer>
<script src="js/main.js" defer></script> <script src="/js/main.js" defer></script>
</body> </body>
</html> </html>
+3
View File
@@ -0,0 +1,3 @@
docker compose -p olapka-local -f docker-compose.local.yml config
docker compose -p olapka-local -f docker-compose.local.yml run --rm nginx nginx -t
docker compose -p olapka-local -f docker-compose.local.yml up -d