/* ═══════════════════════════════════════════════════════════════
   BunnySplit · Blog article engine v2 — премиум-чтение в дизайн-языке лендинга
   Наследует токены landing.css (--bg/--surface/--line/--cyan/--grad-neon…)
   Сохраняет обратную совместимость со старыми статьями (.lead-p,.callout,table,.cta-box,.related,.post-grid)
   ═══════════════════════════════════════════════════════════════ */

/* ── reading progress (неон-полоса прогресса чтения сверху) ── */
.read-progress{position:fixed;top:0;left:0;height:3px;width:0;z-index:60;
  background:linear-gradient(90deg,var(--cyan),var(--accent),var(--magenta));
  box-shadow:0 0 14px rgba(25,227,214,.7);transition:width .12s linear}

/* ── каркас статьи ── */
.article{max-width:768px;margin:0 auto;padding:5rem 1.5rem 4rem;position:relative}
.crumbs{font-family:"Onest",ui-monospace,monospace;font-size:.78rem;letter-spacing:.04em;color:var(--dim);margin-bottom:1.4rem}
.crumbs a{color:var(--mut);transition:.18s}
.crumbs a:hover{color:var(--cyan);text-shadow:0 0 12px rgba(25,227,214,.5)}

.article h1{font-family:"Onest",Inter,sans-serif;font-size:clamp(2rem,4.4vw,3rem);font-weight:800;
  letter-spacing:-.015em;margin-bottom:.9rem;line-height:1.1;
  filter:drop-shadow(0 0 22px rgba(25,227,214,.18))}
.article h1 .grad{background:linear-gradient(100deg,var(--grad-a),var(--grad-b),var(--grad-c));
  -webkit-background-clip:text;background-clip:text;color:transparent}

.article .meta{color:var(--dim);font-size:.86rem;margin-bottom:2rem;display:flex;gap:.7rem;flex-wrap:wrap;align-items:center}
.article .meta>span{display:inline-flex;align-items:center;gap:.4em}
.article .meta .tag{font-family:"Onest",ui-monospace,monospace;font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;
  background:var(--accent-soft);color:var(--cyan);border:1px solid var(--line-neon);
  padding:.35em .8em;border-radius:999px;font-weight:600;box-shadow:0 0 14px -4px rgba(25,227,214,.5)}

/* ── HERO-обложка статьи (премиум-баннер; опциональна) ── */
.article-cover{position:relative;margin:0 auto 2.4rem;max-width:768px;border-radius:var(--radius);overflow:hidden;
  border:1px solid var(--line);background:linear-gradient(135deg,#0a1020,#070b16);
  box-shadow:0 1px 0 rgba(255,255,255,.06) inset,0 30px 60px -30px rgba(0,0,0,.85)}
.article-cover::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(60% 80% at 78% 12%,rgba(25,227,214,.22),transparent 70%),
            radial-gradient(50% 70% at 18% 95%,rgba(185,92,255,.18),transparent 72%)}
.article-cover svg,.article-cover img{display:block;width:100%;height:auto}

/* ── лид ── */
.article .lead-p{font-size:1.2rem;color:var(--txt);line-height:1.62;margin-bottom:1.9rem;font-weight:450}

/* ── заголовки разделов ── */
.article h2{font-family:"Onest",Inter,sans-serif;font-size:1.6rem;font-weight:800;letter-spacing:-.01em;
  margin:2.7rem 0 .9rem;padding-left:.85rem;position:relative;line-height:1.2}
.article h2::before{content:"";position:absolute;left:0;top:.18em;bottom:.18em;width:3px;border-radius:3px;
  background:linear-gradient(var(--cyan),var(--magenta));box-shadow:0 0 12px rgba(25,227,214,.6)}
.article h3{font-size:1.22rem;font-weight:700;margin:1.7rem 0 .5rem;color:var(--txt)}

.article p{color:var(--mut);margin-bottom:1.1rem;font-size:1.05rem;line-height:1.72}
.article p b,.article li b{color:var(--txt);font-weight:650}
.article ul,.article ol{color:var(--mut);margin:0 0 1.3rem 0;padding-left:0;display:grid;gap:.6rem;font-size:1.05rem;list-style:none}
.article li{position:relative;padding-left:1.7em;line-height:1.6}
.article ul>li::before{content:"";position:absolute;left:0;top:.55em;width:8px;height:8px;border-radius:2px;
  background:linear-gradient(135deg,var(--cyan),var(--accent));box-shadow:0 0 10px -1px rgba(25,227,214,.7);transform:rotate(45deg)}
.article ol{counter-reset:li}
.article ol>li{counter-increment:li}
.article ol>li::before{content:counter(li);position:absolute;left:0;top:.05em;width:1.35em;height:1.35em;
  font-family:"Onest",ui-monospace,monospace;font-size:.78em;font-weight:700;display:grid;place-items:center;border-radius:7px;
  background:var(--accent-soft);color:var(--cyan);border:1px solid var(--line-neon)}
.article a{color:var(--accent-h);text-decoration:none;border-bottom:1px solid rgba(25,227,214,.35);transition:.18s}
.article a:hover{color:var(--cyan);border-color:var(--cyan);text-shadow:0 0 10px rgba(25,227,214,.4)}

/* ── callout (3 смысловых варианта) ── */
.article .callout{background:var(--surface);backdrop-filter:blur(14px);
  border:1px solid var(--line);border-left:3px solid var(--accent);
  border-radius:var(--radius-sm);padding:1.15rem 1.35rem;margin:1.7rem 0;color:var(--mut);position:relative;line-height:1.65}
.article .callout b{color:var(--txt)}
.article .callout-key{border-left-color:var(--cyan);
  background:linear-gradient(110deg,rgba(25,227,214,.10),rgba(25,227,214,.05));
  box-shadow:0 0 34px -14px rgba(25,227,214,.5)}
.article .callout-key b{color:var(--cyan)}
.article .callout-warn{border-left-color:var(--warn);
  background:linear-gradient(110deg,rgba(251,191,36,.09),transparent)}
.article .callout-warn b{color:var(--warn)}

/* ── key-box: «Коротко»/выводы ── */
.article .key-box{background:linear-gradient(135deg,rgba(25,227,214,.10),rgba(185,92,255,.07));
  border:1px solid var(--line2);border-radius:var(--radius);padding:1.5rem 1.6rem;margin:0 0 2.2rem;position:relative;overflow:hidden}
.article .key-box::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:var(--grad-neon);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.5;pointer-events:none}
.article .key-box h3{margin:0 0 .8rem;font-family:"Onest",ui-monospace,monospace;font-size:.78rem;text-transform:uppercase;
  letter-spacing:.16em;color:var(--cyan)}
.article .key-box ul{margin:0;gap:.55rem}
.article .key-box li{color:var(--txt);font-size:1rem}
.article .key-box li::before{background:var(--cyan)}

/* ── premium фигуры/«картинки» (HUD-капсула) ── */
.article .fig{margin:2rem 0;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;position:relative;
  background:radial-gradient(120% 120% at 80% 0%,rgba(25,227,214,.06),transparent 60%),linear-gradient(160deg,#0a1020,#070b16);
  box-shadow:0 1px 0 rgba(255,255,255,.05) inset,0 24px 50px -30px rgba(0,0,0,.85);transition:border-color .3s var(--ease),box-shadow .3s var(--ease)}
.article .fig:hover{border-color:var(--line2);box-shadow:0 1px 0 rgba(255,255,255,.08) inset,0 24px 54px -26px rgba(0,0,0,.9),0 0 44px -10px rgba(25,227,214,.3)}
.article .fig::before,.article .fig::after{content:"";position:absolute;width:22px;height:22px;border:2px solid var(--cyan);opacity:.6;z-index:3;pointer-events:none}
.article .fig::before{top:9px;left:9px;border-right:0;border-bottom:0;border-radius:6px 0 0 0}
.article .fig::after{bottom:9px;right:9px;border-left:0;border-top:0;border-radius:0 0 6px 0}
.article .fig .fig-slot{display:block;width:100%}
.article .fig .fig-slot svg{display:block;width:100%;height:auto}
.article .fig .fig-slot img{display:block;width:100%;height:auto}
.article .fig figcaption{padding:.85rem 1.2rem;color:var(--mut);font-size:.88rem;line-height:1.5;border-top:1px solid var(--line);
  background:rgba(10,16,30,.4)}
.article .fig figcaption b{color:var(--txt)}
/* интерактивная 3D-фигура */
.article .fig-3d model-viewer{width:100%;height:380px;background:transparent;display:block}
@media(max-width:600px){.article .fig-3d model-viewer{height:300px}}

/* ── таблицы (glass, как compare на лендинге) ── */
.article table{width:100%;border-collapse:collapse;margin:1.7rem 0;font-size:.96rem;
  border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}
.article th,.article td{padding:.85em 1em;text-align:left;border-bottom:1px solid var(--line);color:var(--mut)}
.article thead th,.article tr:first-child th{background:rgba(18,26,44,.7);color:var(--txt);font-weight:600;
  font-family:"Onest",ui-monospace,monospace;font-size:.82rem;text-transform:uppercase;letter-spacing:.06em}
.article tbody tr:last-child td,.article tr:last-child td{border-bottom:0}
.article tr:hover td{background:rgba(25,227,214,.05)}
.article td b{color:var(--txt)}

/* ── CTA-блок ── */
.article .cta-box{background:linear-gradient(120deg,rgba(25,227,214,.14),rgba(185,92,255,.1));
  border:1px solid var(--line2);border-radius:var(--radius);padding:2rem;margin:2.8rem 0 .5rem;text-align:center;position:relative;overflow:hidden}
.article .cta-box::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:var(--grad-neon);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.7;pointer-events:none}
.article .cta-box h3{margin:0 0 .5rem;color:var(--txt);font-family:"Onest",Inter,sans-serif;font-size:1.4rem;font-weight:800}
.article .cta-box p{margin-bottom:1.2rem;color:var(--mut)}

/* ── видимый FAQ в статье (нужен для rich-сниппета FAQPage) ── */
.article-faq{max-width:768px;margin:0 auto;padding:.5rem 1.5rem 1rem}
.article-faq h2{font-family:"Onest",Inter,sans-serif;font-size:1.6rem;font-weight:800;letter-spacing:-.01em;margin-bottom:1.1rem;padding-left:.85rem;position:relative}
.article-faq h2::before{content:"";position:absolute;left:0;top:.18em;bottom:.18em;width:3px;border-radius:3px;background:linear-gradient(var(--cyan),var(--magenta));box-shadow:0 0 12px rgba(25,227,214,.6)}
.article-faq .faq{max-width:none}

/* ── «Читать дальше» ── */
.related{max-width:768px;margin:0 auto;padding:0 1.5rem 5rem}
.related h2{font-family:"Onest",Inter,sans-serif;font-size:1.35rem;font-weight:800;margin-bottom:1.1rem}
.related-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.related-card{background:var(--surface);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:var(--radius-sm);
  padding:1.2rem 1.3rem;transition:.25s var(--ease)}
.related-card:hover{border-color:var(--line2);transform:translateY(-3px);box-shadow:0 0 36px -12px rgba(25,227,214,.4)}
.related-card .rc-tag{font-family:"Onest",ui-monospace,monospace;font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--cyan);margin-bottom:.4rem}
.related-card .rc-title{font-weight:650;color:var(--txt);margin-bottom:.3rem;line-height:1.3}
.related-card .rc-sub{color:var(--dim);font-size:.84rem}

/* ── индекс блога ── */
.blog-head{max-width:var(--maxw);margin:0 auto;padding:6.5rem 1.5rem 1rem;text-align:center}
.blog-head h1{font-family:"Onest",Inter,sans-serif;font-size:clamp(2rem,4vw,2.9rem);font-weight:800;margin-bottom:.6rem;
  filter:drop-shadow(0 0 22px rgba(25,227,214,.2))}
.blog-head p{color:var(--mut);max-width:60ch;margin:0 auto}
.post-grid{max-width:var(--maxw);margin:0 auto;padding:2.2rem 1.5rem 5rem;display:grid;grid-template-columns:repeat(2,1fr);gap:1.3rem}
.post-card{background:var(--surface);backdrop-filter:blur(16px) saturate(135%);border:1px solid var(--line);
  border-radius:var(--radius);padding:1.7rem;transition:transform .3s var(--ease),border-color .3s var(--ease),box-shadow .3s var(--ease);position:relative;overflow:hidden}
.post-card:hover{border-color:var(--line2);transform:translateY(-4px);
  box-shadow:0 24px 50px -24px rgba(0,0,0,.85),0 0 44px -10px rgba(25,227,214,.32)}
.post-card{display:flex;flex-direction:column}
.post-card .pc-cover{margin:-1.7rem -1.7rem 1.1rem;aspect-ratio:16/9;overflow:hidden;background:var(--bg2);border-bottom:1px solid var(--line)}
.post-card .pc-cover img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s var(--ease)}
.post-card:hover .pc-cover img{transform:scale(1.04)}
.post-card .pc-tag{font-family:"Onest",ui-monospace,monospace;font-size:.72rem;color:var(--cyan);font-weight:600;text-transform:uppercase;letter-spacing:.1em}
.post-card h2{font-family:"Onest",Inter,sans-serif;font-size:1.28rem;font-weight:800;margin:.55rem 0;color:var(--txt);line-height:1.22}
.post-card p{color:var(--mut);font-size:.95rem;line-height:1.55}

@media(max-width:760px){.related-grid,.post-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.read-progress{transition:none}}
