/* Лендинги: главная, SEO-страницы платформ, 404.
   Один файл, без внешних картинок — страницы остаются лёгкими.
   Цвета берём из переменных темы, поэтому светлая и тёмная версии работают сами. */

/* ── фоновое свечение: мягкий градиент за первым экраном ───────────────── */
.glow{position:relative;isolation:isolate}
.glow::before{
  content:"";position:absolute;top:-60px;left:-20px;right:-20px;bottom:auto;height:520px;z-index:-1;
  filter:blur(46px);border-radius:40px;
  background:
    radial-gradient(60% 60% at 18% 20%, rgba(59,130,246,.22), transparent 70%),
    radial-gradient(50% 55% at 82% 10%, rgba(139,92,246,.18), transparent 70%);
  pointer-events:none;
}
:root[data-theme="light"] .glow::before{
  background:
    radial-gradient(60% 60% at 18% 20%, rgba(37,99,235,.12), transparent 70%),
    radial-gradient(50% 55% at 82% 10%, rgba(124,58,237,.10), transparent 70%);
}

/* ── карточки-плитки (платформы, возможности) ──────────────────────────── */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin:18px 0 0}
.tile{
  position:relative;display:flex;flex-direction:column;gap:10px;
  padding:20px;border-radius:var(--r);background:var(--card);
  border:1px solid var(--line);color:var(--txt);overflow:hidden;
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.tile:hover{transform:translateY(-3px);border-color:var(--acc);text-decoration:none;box-shadow:var(--shadow)}
.tile::after{
  content:"";position:absolute;right:-30px;top:-30px;width:110px;height:110px;border-radius:50%;
  background:var(--tint,rgba(59,130,246,.15));pointer-events:none;
}
.tile-ico{
  width:42px;height:42px;border-radius:12px;display:grid;place-items:center;
  font-weight:800;font-size:17px;color:#fff;background:var(--tint-solid,var(--acc));
  position:relative;z-index:1;
}
.tile h3{margin:0;font-size:16px;position:relative;z-index:1}
.tile p{margin:0;font-size:13.5px;color:var(--muted);position:relative;z-index:1}
.tile-go{margin-top:auto;font-size:13px;color:var(--acc);font-weight:600;position:relative;z-index:1}

/* цвет каждой платформы — по полному ключу из seo.py */
.tint-youtube{--tint:rgba(239,68,68,.16);--tint-solid:#ef4444}
.tint-tiktok{--tint:rgba(20,184,166,.16);--tint-solid:#14b8a6}
.tint-instagram{--tint:rgba(236,72,153,.16);--tint-solid:#ec4899}
.tint-vk{--tint:rgba(59,130,246,.16);--tint-solid:#3b82f6}
.tint-rutube{--tint:rgba(234,179,8,.18);--tint-solid:#eab308}
.plat-ico[class*="tint-"]{background:var(--tint-solid,var(--acc))}
.tint-twitch{--tint:rgba(145,70,255,.18);--tint-solid:#9146ff}
.tint-pinterest{--tint:rgba(220,38,38,.16);--tint-solid:#dc2626}
.tint-twitter{--tint:rgba(14,165,233,.16);--tint-solid:#0ea5e9}
.tint-reddit{--tint:rgba(255,69,0,.16);--tint-solid:#ff4500}

/* ── шаги «как скачать» ─────────────────────────────────────────────────── */
.steps-cards{list-style:none;padding:0;margin:18px 0 0;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;counter-reset:s}
.steps-cards li{
  position:relative;padding:22px 20px 20px;border-radius:var(--r);
  background:var(--card);border:1px solid var(--line);
}
.steps-cards .step-n{
  display:inline-grid;place-items:center;width:34px;height:34px;border-radius:10px;
  background:linear-gradient(135deg,var(--acc),#8b5cf6);color:#fff;font-weight:800;margin-bottom:12px;
}
.steps-cards p{margin:0;color:var(--muted);font-size:14.5px}

/* ── блок-«функции» с иконками ─────────────────────────────────────────── */
.feat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin-top:18px}
.feat{padding:20px;border-radius:var(--r);background:var(--bg2);border:1px solid var(--line)}
.feat-ico{
  width:40px;height:40px;border-radius:11px;display:grid;place-items:center;margin-bottom:12px;
  background:rgba(59,130,246,.14);color:var(--acc);font-size:18px;
}
.feat h3{font-size:15.5px;margin:0 0 6px}
.feat p{margin:0;font-size:14px;color:var(--muted)}

/* ── плашка-призыв ──────────────────────────────────────────────────────── */
.cta-band{
  position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;
  gap:20px;flex-wrap:wrap;padding:30px;border-radius:16px;
  background:linear-gradient(120deg,rgba(59,130,246,.2),rgba(139,92,246,.2));
  border:1px solid var(--line);
}
.cta-band h2{margin:0 0 4px;font-size:22px}
.cta-band p{margin:0}

/* ── хлебные крошки ──────────────────────────────────────────────────────── */
.seo-crumb{font-size:13px;color:var(--muted);margin:0 0 12px;display:flex;gap:8px;flex-wrap:wrap}
.seo-crumb a{color:var(--muted)}

/* ── мобильная адаптация ─────────────────────────────────────────────────── */
@media (max-width:860px){
}
@media (max-width:560px){
  .cta-band{padding:22px}
  .tile{padding:16px}
}
@media (prefers-reduced-motion:reduce){
  .tile{transition:none}
}

/* ── страница 404 ───────────────────────────────────────────────────────── */
.nf{
  position:relative;text-align:center;padding:56px 0 40px;overflow:hidden;
}
.nf-art{width:min(440px,90%);margin:0 auto 12px;position:relative}
.nf-art svg{width:100%;height:auto;display:block}
.nf-code{
  font-size:clamp(80px,16vw,150px);font-weight:900;line-height:1;letter-spacing:-.06em;margin:0;
  background:linear-gradient(120deg,var(--acc),#8b5cf6 60%,var(--err));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.nf h1{font-size:clamp(22px,3vw,30px);margin:6px 0 10px}
.nf .lead{margin:0 auto 22px}
.nf-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:28px}
.nf-form{max-width:560px;margin:0 auto 26px}
.nf-form .dl-row input[type=url]{min-width:0}
.nf-links{margin-top:6px}
.nf-links p{margin:0 0 10px}
.nf-links .chip{display:inline-block;margin:4px;padding:6px 12px;border-radius:999px;
  background:var(--bg2);border:1px solid var(--line);font-size:13px;color:var(--txt)}
.nf-links .chip:hover{border-color:var(--acc);text-decoration:none}
.nf-blob{position:absolute;border-radius:50%;filter:blur(40px);opacity:.35;pointer-events:none;z-index:-1}
.nf-blob.a{width:260px;height:260px;background:var(--acc);left:-60px;top:20px}
.nf-blob.b{width:220px;height:220px;background:#8b5cf6;right:-40px;top:120px}
@keyframes drift{0%,100%{transform:translate(0,0)}50%{transform:translate(12px,-10px)}}
.nf-blob{animation:drift 9s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){.nf-blob{animation:none}}

/* ── мобильная шапка: навигация не растягивает страницу ─────────────────
   Во flex-шапке пункты меню выходили за экран (до 575px при ширине 390),
   и появлялся горизонтальный скролл. min-width:0 даёт .nav сжиматься,
   а overflow-x внутри него прокручивает меню, не двигая всю страницу. */
html,body{max-width:100%;overflow-x:hidden}
.hdr{max-width:100vw}
.nav{min-width:0;max-width:100%}
@media (max-width:640px){
  .nav{flex:0 0 100%;white-space:nowrap;scrollbar-width:none}
  .nav::-webkit-scrollbar{display:none}
  .nav a{flex:0 0 auto}
  .hdr-right{flex-wrap:wrap}
  .nf-blob{display:none}
}

/* Фоновое свечение героя выступает за края (-10vw) — на телефоне это давало
   горизонтальный скролл. Обрезаем его по ширине окна. */
.hero2::before,.glow::before{left:0;right:0;inset-inline:0;max-width:100vw;overflow:hidden}
@media (max-width:640px){
  .hero2::before,.glow::before{inset-inline:0;left:0;right:0;width:100%}
}

/* ── фон героя: без обрезки ────────────────────────────────────────────────
   style.css задаёт .hero2::before с inset:-10vw и жёсткими краями блока, из-за
   этого свечение резалось по прямоугольнику. Переопределяем: подложка шире блока,
   размыта фильтром (края мягкие) и лежит в собственном слое isolation. */
.hero2{position:relative;isolation:isolate}
.hero2::before{
  content:"";position:absolute;top:-70px;bottom:-50px;left:-40px;right:-40px;
  width:auto;height:auto;z-index:-1;border-radius:48px;pointer-events:none;
  background:
    radial-gradient(45% 50% at 20% 30%, rgba(59,130,246,.32), transparent 72%),
    radial-gradient(40% 45% at 85% 20%, rgba(139,92,246,.24), transparent 72%);
  filter:blur(38px);
}
:root[data-theme="light"] .hero2::before{
  background:
    radial-gradient(45% 50% at 20% 30%, rgba(37,99,235,.16), transparent 72%),
    radial-gradient(40% 45% at 85% 20%, rgba(124,58,237,.12), transparent 72%);
}
@media (max-width:640px){
  .hero2::before{left:-12px;right:-12px}
  .glow::before{left:0;right:0}
}

/* ── иконки соцсетей: белый знак на цветной плитке ─────────────────────── */
.tile-ico svg,.plat-ico svg{width:22px;height:22px;display:block;fill:currentColor}
.tile-ico{color:#fff}
.plat-ico{color:#fff;display:grid;place-items:center}
.plat-ico.ico-fallback{font-weight:800}

/* ── SEO-страница: без пустоты под шапкой ─────────────────────────────────
   .doc даёт padding-top 34px, а .seo-head ещё 38px — получалось ~72px пустоты
   между меню и хлебными крошками. Оставляем один отступ, сверху. */
.doc:has(> .seo-head){padding-top:6px}
.seo-head{padding-top:0}
.seo-head.glow::before{top:-20px;height:300px;filter:blur(40px)}
@media (max-width:640px){
  .doc:has(> .seo-head){padding-top:6px}
  .seo-head{padding-top:12px}
}

/* ── ссылка на инструкцию между шапкой и шагами ───────────────────────── */
.guide-link{margin:6px 0 4px}
.guide-link a{display:inline-block;padding:9px 14px;border-radius:10px;
  background:var(--bg2);border:1px solid var(--line);font-size:14px;font-weight:600;color:var(--acc)}
.guide-link a:hover{border-color:var(--acc);text-decoration:none}
