/* ---------- 26 · Метрики: вся сетка (YT Metrics — VALORANT) ----------
   Обзорная «карта» листа: снапшот, годовая и помесячная динамика,
   каталог 83 метрик в 13 группах, финмодель. Плотность намеренная —
   это общий план; акценты и зумы добавляются поверх. */

section.ytm{ justify-content:flex-start; align-items:stretch; text-align:left; padding:50px 88px 34px; }
.ytm .num{ font-variant-numeric:tabular-nums; }

/* зум-оболочка: пробел приближает блоки по очереди */
.ytm .ytm-zoom{ flex:1; min-height:0; display:flex; flex-direction:column; transform-origin:0 0; transition:transform .95s cubic-bezier(.45,0,.15,1); }
.ytm .ytm-head, .ytm .ytm-kpis, .ytm .card, .ytm .g, .ytm .fseg, .ytm .ytm-foot{ transition:opacity .85s ease; }
.ytm .dim{ opacity:.1; }
.ytm .hint{ position:absolute; bottom:12px; left:50%; transform:translateX(-50%); font-family:var(--fdisp); font-weight:600; font-size:18px; letter-spacing:.04em; color:var(--graphite); opacity:0; transition:opacity .5s ease; z-index:5; }
[data-deck-active].ytm .hint{ opacity:.7; }
.ytm.complete .hint{ opacity:0; }
@media (prefers-reduced-motion: reduce){
  .ytm .ytm-zoom{ transition:none; }
  .ytm .ytm-head, .ytm .ytm-kpis, .ytm .card, .ytm .g, .ytm .fseg, .ytm .ytm-foot{ transition:none; }
}

/* шапка */
.ytm .ytm-head{ display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:16px; }
.ytm .ytm-eb{ font-family:var(--fdisp); font-weight:600; font-size:19px; letter-spacing:.16em; text-transform:uppercase; color:var(--graphite); margin-bottom:10px; }
.ytm .ytm-title{ font-size:54px; letter-spacing:-0.025em; }
.ytm .ytm-title .blue{ color:var(--blue); }
.ytm .ytm-pname{ font-family:var(--fdisp); font-weight:600; font-size:36px; letter-spacing:-0.02em; line-height:1.1; }
.ytm .ytm-pdesc{ margin:8px 0 0; font-size:16.5px; line-height:1.5; color:var(--slate); max-width:760px; text-wrap:pretty; }
.ytm .ytm-meta{ text-align:right; font-size:14px; line-height:1.55; color:var(--slate); padding-bottom:4px; }
.ytm .ytm-logo{ display:block; height:68px; width:auto; margin:0 0 8px auto; }
.ytm .ytm-meta .ytm-note{ font-size:12px; color:var(--graphite); }

/* снапшот */
.ytm .ytm-kpis{ display:grid; grid-template-columns:repeat(6, 1fr); gap:12px; margin-bottom:12px; }
.ytm .kpi{ background:var(--white); border:1px solid var(--hair); border-radius:18px; padding:13px 20px 11px; min-width:0; }
.ytm .kpi .n{ font-family:var(--fdisp); font-weight:600; font-size:36px; letter-spacing:-0.03em; line-height:1.02; white-space:nowrap; font-variant-numeric:tabular-nums; }
.ytm .kpi .k{ font-size:13.5px; color:var(--slate); margin-top:7px; }
.ytm .kpi .s{ font-size:11px; color:var(--graphite); margin-top:2px; }

/* три колонки */
.ytm .ytm-main{ flex:1; min-height:0; display:grid; grid-template-columns:330px minmax(0,1fr) 330px; gap:12px; }
.ytm .ycol{ display:flex; flex-direction:column; gap:12px; min-height:0; min-width:0; }
.ytm .card{ background:var(--white); border:1px solid var(--hair); border-radius:18px; padding:14px 16px; min-height:0; min-width:0; display:flex; flex-direction:column; }
.ytm .bt{ font-family:var(--fdisp); font-weight:600; font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--graphite); display:flex; justify-content:space-between; align-items:baseline; gap:10px; margin-bottom:9px; }
.ytm .bt .lg{ font-family:var(--ftext); font-weight:400; letter-spacing:0; text-transform:none; font-size:10.5px; white-space:nowrap; }

/* 01 · годовая таблица */
.ytm .ytbl{ width:100%; border-collapse:collapse; }
.ytm .ytbl th{ font-family:var(--fdisp); font-weight:600; font-size:9.5px; letter-spacing:.07em; text-transform:uppercase; color:var(--graphite); text-align:right; padding:0 0 4px; }
.ytm .ytbl th:first-child{ text-align:left; }
.ytm .ytbl td{ font-size:12px; line-height:21px; text-align:right; color:var(--ink); font-variant-numeric:tabular-nums; white-space:nowrap; padding:0; }
.ytm .ytbl td:first-child{ text-align:left; font-family:var(--fdisp); font-weight:600; }
.ytm .ytbl td.mut{ color:var(--graphite); }
.ytm .tnote{ font-size:10.5px; color:var(--graphite); margin-top:6px; }

/* 02 · помесячные бары */
.ytm .mon{ flex:1; }
.ytm .chart{ flex:1; min-height:0; position:relative; display:flex; align-items:flex-end; gap:1px; }
.ytm .chart .b{ flex:1 1 0; min-height:2px; background:var(--hair); border-radius:1px 1px 0 0; }
.ytm .chart .b.pk{ background:var(--blue); }
.ytm .chart .pl{ position:absolute; font-size:10.5px; line-height:1.3; color:var(--slate); white-space:nowrap; }
.ytm .chart .pl b{ font-family:var(--fdisp); font-weight:600; color:var(--ink); }
.ytm .ticks{ position:relative; height:14px; margin-top:5px; }
.ytm .ticks span{ position:absolute; top:0; font-size:9.5px; letter-spacing:.05em; color:var(--graphite); }

/* 03 · каталог метрик */
.ytm .cat .cat-cols{ flex:1; min-height:0; column-count:3; column-gap:16px; column-fill:auto; }
.ytm .g{ display:inline-block; width:100%; break-inside:avoid; margin-bottom:6px; }
.ytm .g h4{ font-family:var(--fdisp); font-weight:600; font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--graphite); line-height:14px; margin:0 0 2px; border-bottom:1px solid var(--ash); padding-bottom:2px; }
.ytm .m{ display:flex; align-items:baseline; gap:6px; font-size:11.5px; line-height:15.5px; }
.ytm .m .no{ flex:0 0 15px; font-size:9px; color:var(--graphite); text-align:right; font-variant-numeric:tabular-nums; }
.ytm .m .nm{ flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--slate); }
.ytm .m .v{ flex:0 0 auto; font-weight:500; color:var(--ink); font-variant-numeric:tabular-nums; }
.ytm .m .st{ flex:0 0 10px; font-size:9px; color:var(--graphite); text-align:center; }
.ytm .m .st.x{ color:#b8b8bd; }
/* выделенные метрики (цели зума) */
.ytm .m.hl, .ytm .fin .fr.hl{ background:rgba(0,113,227,.08); box-shadow:inset 0 0 0 1px rgba(0,113,227,.28); border-radius:6px; padding-left:4px; padding-right:4px; margin-left:-4px; margin-right:-4px; }
.ytm .m.hl .nm, .ytm .fin .fr.hl .fk{ color:var(--ink); font-weight:600; }
.ytm .m.hl .v, .ytm .fin .fr.hl .fv{ font-weight:600; }
#ytm-yt .m.hl, #ytm-yt .fin .fr.hl{ background:rgba(255,70,85,.07); box-shadow:inset 0 0 0 1px rgba(255,70,85,.30); }

/* финмодель */
.ytm .fin .fr{ display:flex; justify-content:space-between; align-items:baseline; gap:8px; font-size:11.5px; line-height:16.5px; }
.ytm .fin .fr .fk{ flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--slate); }
.ytm .fin .fr .fp{ flex:0 0 30px; text-align:right; font-size:10px; color:var(--graphite); font-variant-numeric:tabular-nums; }
.ytm .fin .fr .fv{ flex:0 0 auto; font-weight:500; color:var(--ink); font-variant-numeric:tabular-nums; }
.ytm .fin .fr.ns .fv{ color:var(--blue); font-weight:600; }
.ytm .fin .fr.sum{ border-top:1px solid var(--ash); margin-top:3px; padding-top:3px; }
.ytm .fin .fr.sum .fk{ color:var(--ink); font-weight:500; }
.ytm .fin .fr.sum .fv{ font-weight:600; }
.ytm .fin .bt{ margin-top:9px; margin-bottom:5px; }
.ytm .fin .fseg:first-child .bt{ margin-top:0; }
.ytm .fin .nsline{ font-family:var(--fdisp); font-weight:600; font-size:10.5px; letter-spacing:.02em; color:var(--blue); margin:5px 0 1px; }
.ytm .fin .f3{ font-size:10.5px; line-height:1.45; color:var(--slate); }
.ytm .fin .f3 b{ font-weight:600; color:var(--ink); font-variant-numeric:tabular-nums; }

/* подвал */
.ytm .ytm-foot{ margin-top:8px; font-size:11px; line-height:1.5; color:var(--graphite); }
.ytm .ytm-foot b{ font-weight:600; color:var(--slate); }

/* ---- вариант IG (58 метрик — строки крупнее) ---- */
.ytm.ig .ytbl td{ font-size:13px; line-height:26px; }
.ytm.ig .m{ font-size:13px; line-height:21px; }
.ytm.ig .m .no{ flex-basis:18px; font-size:10px; }
.ytm.ig .g{ margin-bottom:10px; }
.ytm.ig .g h4{ font-size:11.5px; line-height:16px; padding-bottom:3px; margin:0 0 3px; }
.ytm.ig .fin .fr{ font-size:13px; line-height:22px; }
.ytm.ig .card.fin{ justify-content:space-between; }
.ytm .chart .b.z{ min-height:0; }

/* ---- 27 · VALORANT: фирменный акцент (#ff4655) ---- */
#ytm-yt{ --val:#ff4655; }
#ytm-yt .ytm-bg{ position:absolute; inset:0; z-index:0; pointer-events:none; background:#0f1923; overflow:hidden; }
#ytm-yt .ytm-bg img{ width:100%; height:112.5%; position:relative; top:-6.25%; object-fit:fill; }
#ytm-yt .ytm-head, #ytm-yt .ytm-zoom, #ytm-yt .hint{ position:relative; z-index:1; }
/* текст вне карточек — светлый поверх тёмного фона */
#ytm-yt .ytm-eb{ color:rgba(245,245,247,.6); }
#ytm-yt .ytm-pdesc{ color:rgba(245,245,247,.82); }
#ytm-yt .ytm-meta{ color:rgba(245,245,247,.78); }
#ytm-yt .ytm-meta .ytm-note{ color:rgba(245,245,247,.55); }
#ytm-yt .ytm-logo{ filter:brightness(0) invert(1); }
#ytm-yt .ytm-foot{ color:rgba(245,245,247,.62); }
#ytm-yt .ytm-foot b{ color:rgba(245,245,247,.88); }
#ytm-yt .hint{ color:rgba(245,245,247,.6); }
#ytm-yt .ytm-pname{ color:var(--val); }
#ytm-yt .chart .b.pk{ background:var(--val); }
#ytm-yt .fin .fr.ns .fv{ color:var(--val); }
#ytm-yt .fin .nsline{ color:var(--val); }

/* ---- обложка: платформы над заголовком ---- */
.cover .cov-sub{ margin-top:26px; font-family:var(--fdisp); font-weight:600; font-size:40px; letter-spacing:.01em; color:#8a8a93; }
.cover .cov-logos{ display:flex; align-items:center; justify-content:center; gap:46px; margin-bottom:64px; }
.cover .cov-logos img{ display:block; height:34px; width:auto; }
.cover .cov-logos img.word{ height:26px; }
.cover .cov-logos img.inv{ filter:brightness(0) invert(1); opacity:.9; }

/* ---- 29 · живой Figma-борд ---- */
section.figslide{ padding:0; background:#1e1e1e; }
.figslide .figframe{ position:absolute; inset:0; width:100%; height:100%; border:0; display:block; }
/* щит: пока он есть, клавиатура остаётся у деки; кнопка отдаёт борд под мышь */
.figslide .figshield{ position:absolute; inset:0; z-index:2; background:transparent; }
.figslide.live .figshield{ display:none; }
.figslide .figbtn{ position:absolute; right:28px; bottom:24px; z-index:3; font-family:var(--fdisp); font-weight:600; font-size:14px; letter-spacing:.01em; color:var(--ink); background:var(--white); border:1px solid var(--ink); border-radius:980px; padding:10px 22px; cursor:pointer; transition:background .18s ease, color .18s ease; }
.figslide .figbtn:hover{ background:var(--ink); color:#fff; }
.figslide.live .figbtn{ background:var(--ink); color:#fff; }

/* ---- 30 · рынки social media: мозаика денег ---- */
section.mkt{ justify-content:flex-start; align-items:stretch; text-align:left; padding:48px 88px 30px; }
.mkt .mkt-head{ display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:16px; }
.mkt .mkt-eb{ font-family:var(--fdisp); font-weight:600; font-size:19px; letter-spacing:.16em; text-transform:uppercase; color:var(--graphite); margin-bottom:10px; }
.mkt .mkt-title{ font-size:54px; letter-spacing:-0.025em; }
.mkt .mkt-meta{ text-align:right; font-size:13px; line-height:1.5; color:var(--graphite); padding-bottom:6px; }
.mkt .mkt-board{ flex:1; min-height:0; display:grid; grid-template-columns:repeat(12, 1fr); grid-template-rows:repeat(10, minmax(0, 1fr)); grid-auto-flow:dense; gap:10px; }
.mkt .mb{ background:var(--white); border:1px solid var(--hair); border-radius:18px; padding:13px 16px; min-width:0; min-height:0; overflow:hidden; display:flex; flex-direction:column; }
.mkt .mb .mk{ font-family:var(--fdisp); font-weight:600; font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--graphite); margin-bottom:4px; }
.mkt .mb .mn{ font-size:13px; line-height:1.3; color:var(--slate); text-wrap:pretty; }
.mkt .mb .mv{ margin-top:auto; font-family:var(--fdisp); font-weight:600; letter-spacing:-0.03em; line-height:1; color:var(--ink); font-variant-numeric:tabular-nums; white-space:nowrap; }
.mkt .mb .mv em{ font-style:normal; font-size:.42em; font-weight:600; letter-spacing:0; color:var(--graphite); }
.mkt .mb .ma{ font-size:11px; line-height:1.3; color:var(--graphite); margin-top:3px; }
.mkt .mb .pc{ font-family:var(--fdisp); font-weight:600; font-size:.4em; letter-spacing:0; color:var(--graphite); }
.mkt .t1 .ma{ font-size:17px; margin-top:6px; }
.mkt .t2 .ma{ font-size:14.5px; margin-top:5px; }
.mkt .t3 .ma{ font-size:13.5px; margin-top:4px; }
.mkt .t4 .ma{ font-size:10.5px; }
.mkt .t5 .pc, .mkt .t6 .pc{ font-size:10px; }
.mkt .mb.our .pc{ color:var(--graphite); }
.mkt .t1{ grid-column:span 4; grid-row:span 4; } .mkt .t1 .mv{ font-size:88px; } .mkt .t1 .mn{ font-size:22px; }
.mkt .t2{ grid-column:span 4; grid-row:span 3; } .mkt .t2 .mv{ font-size:60px; } .mkt .t2 .mn{ font-size:18px; }
.mkt .t3{ grid-column:span 3; grid-row:span 3; } .mkt .t3 .mv{ font-size:50px; } .mkt .t3 .mn{ font-size:16.5px; }
.mkt .t4{ grid-column:span 2; grid-row:span 2; } .mkt .t4 .mv{ font-size:28px; } .mkt .t4 .mn{ font-size:12.5px; }
.mkt .t5{ grid-column:span 2; grid-row:span 1; flex-direction:row; align-items:baseline; gap:8px; padding:11px 14px; }
.mkt .t5 .mn{ font-size:11.5px; line-height:1.25; flex:1 1 auto; min-width:0; }
.mkt .t5 .mv{ margin-top:0; font-size:19px; flex:0 0 auto; }
.mkt .t6{ grid-column:span 1; grid-row:span 1; padding:10px 12px; }
.mkt .t6 .mn{ font-size:10.5px; line-height:1.2; }
.mkt .t6 .mv{ font-size:16px; }
.mkt .mb.our{ flex-direction:column; align-items:stretch; border:1.5px solid rgba(0,113,227,.5); gap:1px; }
.mkt .mb.our .tag{ font-family:var(--fdisp); font-weight:600; font-size:8.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--blue); }
.mkt .mb.our .row{ display:flex; align-items:baseline; gap:8px; }
.mkt .mb.our .mn{ color:var(--blue); flex:1 1 auto; }
.mkt .mb.our .mv{ color:var(--blue); margin-top:0; }
.mkt .mb.ghost{ background:var(--ink); border:1px solid var(--ink); flex-direction:row; align-items:center; justify-content:center; }
.mkt .mb.ghost .gh{ font-family:var(--fdisp); font-weight:600; font-size:14.5px; letter-spacing:.04em; color:var(--fog); }
.mkt .mkt-foot{ margin-top:10px; font-size:11.5px; color:var(--graphite); }

/* ---- 32 · прейскурант: лестница продуктов ---- */
section.price{ justify-content:flex-start; align-items:stretch; text-align:left; padding:56px 88px 44px; }
.price .pr-head{ display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:24px; }
.price .pr-eb{ font-family:var(--fdisp); font-weight:600; font-size:19px; letter-spacing:.16em; text-transform:uppercase; color:var(--graphite); margin-bottom:10px; }
.price .pr-title{ font-size:56px; letter-spacing:-0.025em; }
.price .pr-meta{ font-size:13px; line-height:1.5; color:var(--graphite); padding-bottom:8px; }
.price .pr-stairs{ flex:1; min-height:0; display:flex; align-items:flex-end; gap:14px; }
.price .ps{ flex:1 1 0; min-width:0; background:var(--white); border:1px solid var(--hair); border-radius:22px; padding:24px 26px; display:flex; flex-direction:column; overflow:hidden; }
.price .s1{ height:50%; } .price .s2{ height:60%; } .price .s3{ height:70%; } .price .s4{ height:80%; } .price .s5{ height:90%; } .price .s6{ height:100%; }
.price .ps.key{ border:1.5px solid rgba(0,113,227,.45); }
.price .ps.key .no{ color:var(--blue); }
.price .ps .no{ font-family:var(--fdisp); font-weight:600; font-size:15px; letter-spacing:.06em; color:var(--graphite); margin-bottom:10px; }
.price .ps .nm{ font-family:var(--fdisp); font-weight:600; font-size:28px; letter-spacing:-0.015em; line-height:1.12; text-wrap:balance; }
.price .ps .ds{ margin:10px 0 0; font-size:14.5px; line-height:1.45; color:var(--slate); text-wrap:pretty; }
.price .ps .meta{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-top:auto; padding-top:18px; }
.price .ps .chip{ font-family:var(--fdisp); font-weight:600; font-size:12px; color:var(--slate); background:var(--fog); border:1px solid var(--hair); border-radius:999px; padding:5px 12px; white-space:nowrap; }
.price .ps .chip.cb{ color:var(--blue); border-color:rgba(0,113,227,.35); background:var(--white); }
.price .ps .cond{ font-size:11.5px; line-height:1.35; color:var(--graphite); }
.price .ps .pv{ margin-top:auto; padding-top:16px; font-family:var(--fdisp); font-weight:600; font-size:42px; letter-spacing:-0.03em; line-height:1; color:var(--ink); font-variant-numeric:tabular-nums; white-space:nowrap; }
.price .ps.ghost .meta{ display:none; }
.price .ps.ghost{ background:var(--fog); border:1px dashed var(--hair); }
.price .ps.ghost .pv{ font-size:20px; letter-spacing:0; color:var(--graphite); white-space:normal; line-height:1.3; }
.price .pr-band{ margin-top:16px; background:var(--white); border:1px solid var(--hair); border-radius:22px; padding:20px 34px; display:flex; justify-content:space-between; align-items:center; }
.price .pr-band .pb-t{ font-family:var(--fdisp); font-weight:600; font-size:26px; color:var(--ink); }
.price .pr-band .pb-s{ font-size:13.5px; color:var(--slate); margin-top:4px; }
.price .pr-band .pb-r{ text-align:right; }
.price .pr-band .pb-pill{ display:inline-block; background:var(--blue); color:#fff; border-radius:980px; padding:12px 30px; font-family:var(--fdisp); font-weight:600; font-size:28px; letter-spacing:-0.01em; line-height:1; font-variant-numeric:tabular-nums; }
.price .pr-band .pb-n{ font-size:12.5px; color:var(--graphite); margin-top:6px; }

/* ---- вариант «финмодель кофейни»: P&L-виджет в стиле оригинальной таблицы + 5 бизнес-метрик ---- */
.ytm.fin2 .ytm-kpis{ grid-template-columns:repeat(3, 1fr); margin-bottom:0; margin-top:12px; }
.ytm.fin2 .f2card{ flex:1; min-height:0; justify-content:center; }
.f2sheet{ border:1px solid #dadce0; border-radius:10px; overflow:hidden; background:#fff; }
.f2sheet td, .f2sheet th{ font-family:Arial, 'Helvetica Neue', Helvetica, sans-serif; }
.f2t{ width:100%; border-collapse:collapse; }
.f2t th, .f2t td{ border:1px solid #e2e3e3; }
.f2t thead th{ background:#f8f9fa; color:#5f6368; font-weight:400; font-size:11.5px; text-align:center; padding:4px 0; }
.f2t th.ca{ width:352px; }
.f2t th.cb{ width:118px; }
.f2t td{ font-size:13.5px; color:#202124; padding:6px 12px; text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; line-height:1.25; }
.f2t td:nth-child(2){ text-align:left; }
.f2t tr > *:nth-child(3){ border-right:2px solid #b7bbbf; }
.f2t td.rt{ text-align:left; position:relative; }
.f2t td.yl{ background:#ffe599; }
.f2t td.tri::after{ content:''; position:absolute; top:0; right:0; border:4px solid transparent; border-top-color:#202124; border-right-color:#202124; }
.f2t tr.hd td{ text-align:left; }
.f2t tr.band td{ background:#6aa84f; color:#fff; font-weight:700; }
.f2t tr.lt td{ background:#d9ead3; font-weight:700; }
.f2t tr.pct td{ font-style:italic; font-weight:700; }
.f2t tr.gp td{ background:#dae3ea; font-weight:700; }
.f2t td.rn{ background:#f8f9fa; color:#5f6368; font-size:11.5px; font-weight:400; font-style:normal; text-align:center; width:40px; padding-left:4px; padding-right:4px; }
.f2t tr.gp td.rn{ background:#1a73e8; color:#fff; border-color:#1a73e8; }
.f2t tr.gp td.sel{ border:2px solid #1a73e8; }

/* ---------- 28 · структура: четыре слоя ---------- */
.struct .st-eb{ font-family:var(--fdisp); font-weight:600; font-size:24px; letter-spacing:.16em; text-transform:uppercase; color:var(--graphite); margin-bottom:24px; }
.struct .st-title{ font-size:92px; letter-spacing:-0.03em; }
.struct .st-title .blue{ color:var(--blue); }
.struct .st-stack{ position:relative; width:1200px; margin-top:58px; display:flex; flex-direction:column; gap:14px; text-align:left; }
.struct .lyr{ position:relative; display:grid; grid-template-columns:92px 360px 1fr; align-items:center; background:var(--white); border:1px solid var(--hair); border-radius:22px; padding:28px 40px; }
.struct .lyr .no{ font-family:var(--fdisp); font-weight:600; font-size:20px; letter-spacing:.06em; color:var(--graphite); }
.struct .lyr .nm{ font-family:var(--fdisp); font-weight:600; font-size:38px; letter-spacing:-0.02em; line-height:1.05; }
.struct .lyr .ds{ font-size:20px; line-height:1.45; color:var(--slate); justify-self:end; text-align:right; max-width:600px; text-wrap:pretty; }
.struct .lyr .chips{ grid-column:2 / 4; display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.struct .chip{ font-family:var(--fdisp); font-weight:600; font-size:16px; color:var(--slate); background:var(--fog); border:1px solid var(--hair); border-radius:999px; padding:9px 20px; white-space:nowrap; }
/* синяя нить — ток внимания сквозь слои */
.struct .lyr::before{ content:''; position:absolute; left:-64px; top:50%; width:10px; height:10px; margin-top:-5px; border-radius:50%; background:var(--fog); border:1.5px solid var(--hair); }
.struct .st-thread{ position:absolute; left:-60px; top:58px; bottom:104px; width:2px; }
.struct .st-thread::before{ content:''; position:absolute; inset:0; background:var(--hair); opacity:.6; }
.struct .st-thread::after{ content:''; position:absolute; inset:0; background:var(--blue); transform:scaleY(0); transform-origin:top; }
[data-deck-active].struct .st-thread::after{ transform:scaleY(1); transition:transform 1.6s cubic-bezier(.4,0,.2,1) 1.3s; }
[data-deck-active].struct .lyr::before{ animation:st-dot .35s ease forwards; }
[data-deck-active].struct .s1::before{ animation-delay:1.35s; }
[data-deck-active].struct .s2::before{ animation-delay:1.8s; }
[data-deck-active].struct .s3::before{ animation-delay:2.25s; }
[data-deck-active].struct .s4::before{ animation-delay:2.7s; }
@keyframes st-dot{ to{ background:var(--blue); border-color:var(--blue); } }
[data-deck-active].struct .rise.d4{ transition-delay:1.45s; }
@media (prefers-reduced-motion: reduce){
  .struct .st-thread::after{ transform:scaleY(1); transition:none; }
  .struct .lyr::before{ background:var(--blue); border-color:var(--blue); animation:none; }
}
@media print{
  .struct .st-thread::after{ transform:scaleY(1) !important; }
  .struct .lyr::before{ background:var(--blue) !important; border-color:var(--blue) !important; }
}

@media print{
  .ytm .rise{ opacity:1 !important; filter:none !important; transform:none !important; }
  .ytm .ytm-zoom{ transform:none !important; }
  .ytm .dim{ opacity:1 !important; }
  .ytm .hint{ display:none; }
}
