@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600;700;800;900&family=Open+Sans:wght@400;600;700&display=swap');
.figma-make-app-wrapper{isolation:isolate}
/* tokens/fonts.css */
/* TPM Article Design System — Webfonts
 * Montserrat (headings) + Open Sans (body), loaded from Google Fonts — the
 * exact families the live article repos use (src/index.css). Montserrat
 * weights 400-800; Open Sans 400-700. */


/* tokens/colors.css */
/* TPM Article Design System — Palette
 * Exactly SEVEN semantic colour pairs (draw.io / Miro sticky scheme).
 * Light = fill, dark = border / icon / accent / heading-in-block.
 * The HEX values are the source of truth. HSL mirrors are derived from them.
 * Icons are ALWAYS coloured, never grayscale. One semantic hue per category —
 * colour encodes meaning, never decoration. NO inline hex in components other
 * than these exact values. */

.figma-make-app-root {
  /* ---- Solid (border / heading / icon / accent) ---- */
  --p-gray: #666666;
  --p-blue: #6c8ebf;
  --p-green: #82b366;
  --p-red: #b85450;
  --p-yellow: #d79b00;
  --p-purple: #9673a6;
  --p-darkblue: #23445d;

  /* ---- Light (fill / tinted container background) ---- */
  --p-gray-light: #f5f5f5;
  --p-blue-light: #ddeaff;
  --p-green-light: #d5e8d4;
  --p-red-light: #f8cecc;
  --p-yellow-light: #fff2cc;
  --p-purple-light: #e1d5e7;
  --p-darkblue-light: #bac8d3;

  /* ---- HSL mirrors (for shadcn-style hsl(var(--x)) consumers) ---- */
  --palette-gray: 0 0% 40%;
  --palette-gray-light: 0 0% 96%;
  --palette-blue: 210 33% 59%;
  --palette-blue-light: 217 100% 93%;
  --palette-green: 100 33% 55%;
  --palette-green-light: 100 38% 87%;
  --palette-red: 0 38% 52%;
  --palette-red-light: 0 65% 89%;
  --palette-yellow: 40 100% 42%;
  --palette-yellow-light: 45 100% 90%;
  --palette-purple: 273 22% 55%;
  --palette-purple-light: 273 30% 87%;
  --palette-darkblue: 207 44% 25%;
  --palette-darkblue-light: 207 22% 77%;

  /* ---- Semantic aliases ---- */
  --background: #ffffff;       /* page + card surface */
  --foreground: #334155;       /* body text (slate-700-ish) */
  --heading: var(--p-darkblue);/* all headings & titles */
  --border-default: var(--p-gray); /* default 2px border colour */
  --muted-foreground: #666666;
  --accent: var(--p-blue);     /* primary concept / interactive */
}

/* tokens/typography.css */
/* TPM Article Design System — Typography
 * Headings: Montserrat (font-heading). Titles font-extrabold, p-darkblue,
 *   with a single accent <u> underline on ONE key word.
 * Body: Open Sans (font-body / font-sans), 16px / leading-relaxed. */

.figma-make-app-root {
  --font-heading: 'Montserrat', system-ui, sans-serif;
  --font-body: 'Open Sans', system-ui, sans-serif;

  /* Type scale (px) — editorial long-form */
  --text-h1: 36px;   /* article title  (text-4xl, extrabold) */
  --text-h2: 24px;   /* section title  (text-2xl, bold) */
  --text-h3: 18px;   /* diagram / block title (text-lg, bold) */
  --text-h4: 16px;   /* card title (text-base, bold) */
  --text-body: 16px; /* body copy (text-base) */
  --text-sm: 14px;   /* secondary / card body / captions */
  --text-xs: 12px;   /* diagram labels */

  /* Weights */
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;
  --weight-extrabold: 800;

  /* Line heights */
  --leading-tight: 1.2;
  --leading-relaxed: 1.65;
}

/* tokens/spacing.css */
/* TPM Article Design System — Layout, spacing, surfaces (HARD rules)
 * Single centred column, fixed 893px. Flat design: NO shadows, NO decorative
 * gradients. 2px borders. Outer containers rounded-2xl, inner blocks rounded-xl.
 * NO internal scroll anywhere. */

.figma-make-app-root {
  /* Container */
  --article-max-width: 893px;   /* HARD — never 4xl, never 1400px */
  --article-padding-x: 16px;    /* px-4 */
  --article-padding-y: 40px;    /* py-10 */
  --section-gap: 32px;          /* gap-8 between sections */
  --block-gap: 16px;            /* gap-4 within a section */

  /* Spacing scale (Tailwind-aligned, px) */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;

  /* Borders & radii */
  --border-width: 2px;          /* HARD — all borders 2px */
  --radius-outer: 16px;         /* rounded-2xl — outer containers */
  --radius-inner: 12px;         /* rounded-xl — inner blocks */
  --radius-sm: 8px;             /* rounded-lg — icon squares, chips */

  /* Flat — no shadow tokens by design. The only sanctioned depth is a subtle
   * lift on a floating/overlay element inside a diagram (see DESIGN_SYSTEM §3.4). */
  --lens-shadow: 0 8px 24px rgba(35, 68, 93, 0.12);
}

/* Article shell helper — single centred column, natural page scroll only. */
.figma-make-app-root .tpm-article {
  width: 100%;
  max-width: var(--article-max-width);
  margin-inline: auto;
  padding-inline: var(--article-padding-x);
  padding-block: var(--article-padding-y);
  display: flex;
  flex-direction: column;
  gap: var(--section-gap);
  font-family: var(--font-body);
  color: var(--foreground);
}

/* tokens/base.css */
/* TPM Article Design System — base element defaults.
 * Minimal resets so specimen cards and components paint correctly. */

.figma-make-app-root * {
  box-sizing: border-box;
}

.figma-make-app-root .body {
  margin: 0;
  background: var(--background);
  color: var(--foreground);
  font-family: var(--font-body);
  font-size: var(--text-body);
  line-height: var(--leading-relaxed);
  -webkit-font-smoothing: antialiased;
}

.figma-make-app-root h1, .figma-make-app-root h2, .figma-make-app-root h3, .figma-make-app-root h4, .figma-make-app-root h5, .figma-make-app-root h6 {
  font-family: var(--font-heading);
  color: var(--heading);
  margin: 0;
}

.figma-make-app-root p {
  margin: 0;
}

/* Article titles carry a single accent underline on one key word. */
.figma-make-app-root h1 u, .figma-make-app-root h2 u {
  text-decoration-thickness: 3px;
  text-underline-offset: 4px;
}

.figma-make-app-root a {
  color: var(--accent);
}

/* ---- article \3c style> block ---- */

  @keyframes land { 0%{ opacity:0; transform:translateY(-14px) scale(.85) } 60%{ opacity:1 } 100%{ opacity:1; transform:none } }
  @keyframes ctaBgDrift { from{background-position:0 0} to{background-position:64px 64px} }
  @keyframes pulseBorder { 0%{transform:scale(1);opacity:.6} 50%{transform:scale(1.1);opacity:0} 100%{transform:scale(1);opacity:.6} }
  @keyframes stripSlideIn { from{opacity:0;transform:translateX(-20px)} to{opacity:1;transform:translateX(0)} }
  @keyframes gatePop { from{opacity:0;transform:rotate(-15deg) scale(.85)} to{opacity:1;transform:rotate(0deg) scale(1)} }
  @keyframes rowFadeUp { from{opacity:0;transform:translateY(12px)} to{opacity:1;transform:translateY(0)} }
  @keyframes checkDraw { from{stroke-dashoffset:var(--dash,20)} to{stroke-dashoffset:0} }
  @keyframes nodeSlideIn { from{opacity:0;transform:translateX(-20px)} to{opacity:1;transform:none} }
  @keyframes nodeSlideInR { from{opacity:0;transform:translateX(20px)} to{opacity:1;transform:none} }
  @keyframes zoomInSoft { from{opacity:0;transform:scale(.95)} to{opacity:1;transform:none} }
  @keyframes diamondPop { from{opacity:0;transform:rotate(45deg) scale(.9)} to{opacity:1;transform:rotate(45deg) scale(1)} }
  @keyframes gateDraw { from{opacity:0;transform:rotate(45deg) scale(.2)} to{opacity:1;transform:rotate(45deg) scale(1)} }
  @keyframes lineDraw { from{opacity:0;transform:scaleX(0)} to{opacity:1;transform:scaleX(1)} }
  @keyframes layerRise { from{opacity:0;transform:translateY(40px)} to{opacity:1;transform:none} }
  @keyframes chipPop { from{opacity:0;transform:scale(.8)} to{opacity:1;transform:scale(1)} }
  @keyframes barRise { from{opacity:0;transform:translateY(32px)} to{opacity:1;transform:none} }
  @keyframes fadeUp16 { from{opacity:0;transform:translateY(16px)} to{opacity:1;transform:none} }
  @keyframes diagIn { from{opacity:0;transform:translate(-24px,-8px)} to{opacity:1;transform:none} }
  @keyframes growX { from{transform:scaleX(0)} to{transform:scaleX(1)} }
  @keyframes growY { from{transform:scaleY(0)} to{transform:scaleY(1)} }
  @keyframes unfoldX { from{opacity:0;transform:scaleX(.15)} to{opacity:1;transform:scaleX(1)} }
  @keyframes labelIn { from{opacity:0;transform:translateX(-16px)} to{opacity:1;transform:none} }
  @keyframes drawStroke { from{stroke-dashoffset:var(--sd,40)} to{stroke-dashoffset:0} }
  @keyframes softIn { from{opacity:0} to{opacity:1} }
  @keyframes accReveal { from{opacity:0;transform:translateY(-8px)} to{opacity:1;transform:none} }
  @keyframes tailPop { from{opacity:0;transform:scale(.95)} to{opacity:1;transform:none} }
  @keyframes cardUp24 { from{opacity:0;transform:translateY(24px)} to{opacity:1;transform:none} }
  @keyframes fadeUp10 { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:none} }
  @keyframes cardUp32 { from{opacity:0;transform:translateY(32px) scale(.97)} to{opacity:1;transform:none} }
  @keyframes popIn90Up { from{opacity:0;transform:translateY(16px) scale(.9)} to{opacity:1;transform:none} }
  @keyframes tailPopUp { from{opacity:0;transform:translateY(20px) scale(.95)} to{opacity:1;transform:none} }
  @keyframes hubPop { 0%{opacity:0;transform:scale(.8)} 55%{opacity:1;transform:scale(1.08)} 72%{transform:scale(.97)} 86%{transform:scale(1.03)} 100%{transform:scale(1)} }
  @keyframes i6Pop { 0%{opacity:0;transform:scale(.4)} 60%{opacity:1;transform:scale(1.15)} 78%{transform:scale(.93)} 100%{opacity:1;transform:scale(1)} }
  @keyframes i6RingPop { 0%{opacity:0;transform:scale(.5)} 65%{opacity:1;transform:scale(1.05)} 100%{opacity:1;transform:scale(1)} }
  .figma-make-app-root h2 u{ text-decoration-color:#D79B00; text-decoration-thickness:.12em; text-underline-offset:.15em; text-decoration-skip-ink:none }
  .figma-make-app-root [data-i5-panel]{ transition:transform .18s ease }
  .figma-make-app-root [data-i5-panel]:hover{ transform:translateY(-4px) }
  @media (prefers-reduced-motion: reduce){ .figma-make-app-root *{animation:none !important;transition:none !important} }
  /* ===== Адаптив-канон: два брейкпоинта — ≤1023 (планшет), ≤599 (телефон); десктоп ≥1024 не меняется ===== */
  @media (max-width: 1023px){
    .figma-make-app-root [data-screen-label]{max-width:100%}
    .figma-make-app-root figure img{max-width:100%;height:auto}
    .figma-make-app-root [data-watermark]{display:none !important}
    .figma-make-app-root [data-mtband]{grid-template-columns:repeat(3,1fr) !important;gap:12px !important}
    /* Изобр.1 — три колонки встают друг под друга; шевроны поворачиваются на 90° */
    .figma-make-app-root [data-i1-root]{flex-direction:column !important}
    .figma-make-app-root [data-i1-chev] svg{transform:rotate(90deg)}
    .figma-make-app-root [data-i1-notes]{flex-direction:column !important;gap:8px !important}
    .figma-make-app-root [data-i1-notes] p{text-align:left !important}
    /* Изобр.7 — карточка шага 51 уходит под лестницу */
    .figma-make-app-root [data-i7-root]{flex-direction:column !important}
    .figma-make-app-root [data-i7-step51]{flex-basis:auto !important;flex-direction:row !important;align-self:stretch !important;text-align:left !important;justify-content:flex-start}
    /* Изобр.3 — радиальная схема сворачивается в вертикальный список: линии прячутся, карточки в один столбец строками */
    .figma-make-app-root [data-i3-lines]{display:none !important}
    .figma-make-app-root [data-i3-grid]{grid-template-columns:1fr !important}
    .figma-make-app-root [data-i3-grid] > *{grid-column:auto !important;grid-row:auto !important;max-width:100% !important;width:100% !important}
    .figma-make-app-root [data-i3-center]{width:100% !important;height:auto !important;border-radius:14px !important;flex-direction:row !important;justify-content:flex-start !important;gap:12px !important;padding:14px 16px !important;text-align:left !important}
    .figma-make-app-root [data-i3-node]{flex-direction:row !important;justify-content:flex-start !important;text-align:left !important;min-height:0 !important;padding:12px 14px !important}
    .figma-make-app-root [data-i3-node] [data-i3-txt]{align-items:flex-start !important;text-align:left !important}
    /* Изобр.6 — матрица и кольца встают друг под друга и центрируются */
    .figma-make-app-root [data-i6-root]{flex-direction:column !important;align-items:center !important;gap:22px !important}
    .figma-make-app-root [data-i6-fit]{width:100% !important}
    /* CTA — декоративные значки скрываются на планшете и телефоне */
    .figma-make-app-root [data-m="cta-deco"]{display:none !important}
  }
  @media (max-width: 599px){
    .figma-make-app-root [data-mtband]{grid-template-columns:repeat(2,1fr) !important}
    .figma-make-app-root [data-m="scrollhint"]{display:block !important;font-size:11px;color:#8a97a8;text-align:center;padding:6px 0 0}
    /* Изобр.9 — метка «Вы здесь» скрывается на телефоне (лента прокручивается, стрелка не привязана к нужной плитке) */
    .figma-make-app-root [data-m="youarehere"]{display:none !important}
    /* Изобр.0 / Изобр.9 — лента сохраняет натуральную десктопную ширину и прокручивается внутри рамки */
    .figma-make-app-root [data-strip="intro"], .figma-make-app-root [data-strip="gate1"]{overflow-x:auto !important;-webkit-overflow-scrolling:touch;flex-wrap:nowrap !important;justify-content:flex-start !important}
    .figma-make-app-root [data-strip="intro"] > div, .figma-make-app-root [data-strip="gate1"] > div{flex-shrink:0 !important}
    .figma-make-app-root [data-strip="intro"] > div:nth-child(even), .figma-make-app-root [data-strip="gate1"] > div:nth-child(even){flex-basis:auto !important;min-width:60px !important}
    /* Изобр.3 — ось вертикально: «дальше за горизонт» у Амбиции, «ближе к нам» у Плана */
    .figma-make-app-root [data-m="axis-h"]{display:none !important}
    .figma-make-app-root [data-m="axis-v"]{display:block !important;text-align:center;font-size:10.5px;color:#888}
    /* Изобр.4 — стек карточек без искусственного сдвига второй */
    .figma-make-app-root [data-triad="img4"] > div{margin-top:0 !important}
    .figma-make-app-root [data-m="frow"]{flex-direction:column !important}
    .figma-make-app-root [data-m="frow"] > div{flex-wrap:wrap}
    .figma-make-app-root [data-m="fcap"]{display:block !important;flex-basis:100%;font-size:10.5px;color:#888;padding-left:30px}
    /* Изобр.7 — пары встают друг под другом, соединение читается вертикальной стрелкой */
    .figma-make-app-root [data-i7-heads]{display:none !important}
    .figma-make-app-root [data-i7-rungrow]{flex-direction:column !important;gap:6px !important;padding:10px;border:1px dashed #e2e2e2;border-radius:12px}
    .figma-make-app-root [data-i7-mid]{flex-basis:auto !important;width:100% !important;height:26px !important}
    .figma-make-app-root [data-i7-rungsvg]{display:none !important}
    .figma-make-app-root [data-i7-vconn]{display:block !important}
    .figma-make-app-root [data-i7-cardtag]{display:block !important}
    .figma-make-app-root [data-m="flegend"]{display:none !important}
    /* Изобр.6 — подпись инициативы над баром, дата под ромбом */
    .figma-make-app-root [data-gantt="img6"] > div > div:last-child{height:56px !important}
    .figma-make-app-root [data-gantt="img6"] > div > div:last-child > div:nth-child(1){top:20px !important;height:16px !important;overflow:visible !important}
    .figma-make-app-root [data-gantt="img6"] > div > div:last-child > div:nth-child(1) [data-m="barlabel"]{position:absolute;bottom:calc(100% + 3px);left:2px;color:var(--p-darkblue);font-size:11px;font-weight:700;white-space:nowrap}
    .figma-make-app-root [data-gantt="img6"] > div > div:last-child > div:nth-child(2){top:16px !important}
    .figma-make-app-root [data-gantt="img6"] > div > div:last-child > div:nth-child(3){top:40px !important;font-size:10px !important}
    .figma-make-app-root [data-q="f"]{display:none !important}
    .figma-make-app-root [data-q="s"]{display:inline !important}
    /* Изобр.8 — рабочее пространство складывается в колонку */
    .figma-make-app-root [data-slot="img8"] [data-i8-row]{flex-direction:column !important}
    .figma-make-app-root [data-slot="img8"] [data-i8-node="print"]{flex-basis:auto !important}
    /* CTA — панель и колонка призыва отдают минимальную ширину; печатная формулировка получает запас высоты под перенос строк */
    .figma-make-app-root [data-cta-panel]{min-width:0 !important}
    .figma-make-app-root [data-cta-root] [style*="1 1 250px"]{min-width:0 !important}
    .figma-make-app-root [data-cta-print]{height:168px !important}
    .figma-make-app-root [data-cta-pl] [data-cta-line]{font-size:11px !important}
    /* CTA — форма технического видения на телефоне: переключатель ветки сверху, поля в один столбец на всю ширину (иначе подписи обрезаются в узкой колонке) */
    .figma-make-app-root [data-cta-root] [style*="height: 266px"]{flex-direction:column !important;height:auto !important;gap:12px !important}
    .figma-make-app-root [data-cta-switch]{flex:0 0 auto !important}
    .figma-make-app-root [data-cta-field]{flex:0 0 52px !important;min-height:52px !important}
    /* Практика — карточки шагов отдают ширину: padding контейнера 5px */
    .figma-make-app-root [data-screen-label="Практика"] > div > div:last-child{padding:5px !important}
    .figma-make-app-root [data-screen-label="Практика"] > div > div:last-child > div{min-width:0 !important}
    /* Карточки-термины (Проект/Фаза/Ворота + Миссия/Видение/Цель/Контрольное событие/Инициатива): ряд → колонка, плитка-иконка по центру сверху, текст на всю ширину */
    .figma-make-app-root [style*="gap: 18px"][style*="align-items: stretch"]{flex-direction:column !important;align-items:stretch !important}
    .figma-make-app-root [style*="width: 96px"][style*="height: 96px"]{margin-left:auto !important;margin-right:auto !important}
    /* Аккордеон ключевых терминов: раскрытая строка (иконка 84px + текст) → иконка по центру сверху, текст на всю ширину */
    .figma-make-app-root [style*="gap: 18px"][style*="align-items: flex-start"]{flex-direction:column !important;align-items:stretch !important}
    .figma-make-app-root [style*="width: 84px"][style*="height: 84px"]{margin-left:auto !important;margin-right:auto !important}
    /* Изобр.2 — внешняя рамка фигуры отдаёт ширину вложенной композиции: боковой padding 5px */
    .figma-make-app-root [data-screen-label="Изобр.2"] > div{padding-left:5px !important;padding-right:5px !important}
    /* Изобр.2 — ветки встают друг под друга, корень остаётся сверху; вилка-коннектор скрывается */
    .figma-make-app-root [data-i2-branches]{flex-direction:column !important;gap:14px !important}
    .figma-make-app-root [data-i2-fork]{display:none !important}
    /* Изобр.2 — ромб повёрнут на 45°, его нижний угол выступает за layout-бокс; без вилки нужен запас снизу, иначе он накрывает заголовок ветки */
    .figma-make-app-root [data-i2-diamond]{margin-bottom:30px !important}
    /* Изобр.4 — внешняя рамка отдаёт ширину вложенной композиции */
    .figma-make-app-root [data-screen-label="Изобр.4"] > div{padding-left:5px !important;padding-right:5px !important}
    /* Изобр.4 — боковые подписи у плашки архитектуры складываются под неё */
    .figma-make-app-root [data-i4-platerow]{flex-direction:column !important}
    .figma-make-app-root [data-i4-note]{max-width:320px !important}
    /* Callout'ы с левой цветной полосой («Частая ошибка» и однотипные): левый padding 5px, полоса 4px остаётся */
    .figma-make-app-root [style*="border-left: 4px solid"][style*="border-radius: 0px 12px 12px 0px"]{padding-left:5px !important}
  }
  @media (max-width: 599px){
    /* Изобр.8 — вложенные карточки на телефоне в один столбец */
    .figma-make-app-root [data-slot="img8"] [data-i8-nested]{flex-direction:column !important}
    /* Изобр.8 — печатная панель на телефоне занимает всю ширину рамки, без пустоты справа */
    .figma-make-app-root [data-slot="img8"] [data-i8-row] > div:last-child{flex-basis:auto !important;max-width:100% !important}
    /* Изобр.8 — поля формы на телефоне в один столбец */
    .figma-make-app-root [data-slot="img8"] [data-i8-form]{grid-template-columns:1fr !important}
    /* Изобр.5 — четыре панели в один столбец */
    .figma-make-app-root [data-i5-grid]{grid-template-columns:1fr !important;grid-auto-rows:auto !important}
    .figma-make-app-root [data-fieldgrid]{grid-template-columns:1fr !important}
    .figma-make-app-root [data-rolegrid]{grid-template-columns:1fr !important}
    /* Изобр.4 — лента-аппарат сохраняет натуральную ширину и прокручивается внутри рамки */
    .figma-make-app-root [data-i4-spine]{overflow-x:auto !important;-webkit-overflow-scrolling:touch;flex-wrap:nowrap !important;justify-content:flex-start !important}
    .figma-make-app-root [data-i4-spine] > *{flex:0 0 auto !important}
    .figma-make-app-root [data-i4-spine] [data-i4-link-node]{width:130px !important}
    /* Изобр.4 — два набора видов встают друг под друга; коннекторы-вилки скрываются */
    .figma-make-app-root [data-i4-cols]{flex-direction:column !important;gap:14px !important}
    .figma-make-app-root [data-i4-fork], .figma-make-app-root [data-i4-bridge]{display:none !important}
  }

/* ===== s117/s121 mobile laws (hooks present on this page only) ===== */
@media (max-width: 599px){
  .figma-make-app-root .figma-make-app-root div:has(> [data-m96]){flex-direction:column !important;align-items:stretch !important}
  .figma-make-app-root .figma-make-app-root [data-m96]{margin:auto !important}
  .figma-make-app-root .figma-make-app-root [data-macc]{flex-direction:column !important}
  .figma-make-app-root .figma-make-app-root [data-macc] > [data-m84]{margin:auto !important}
  .figma-make-app-root .figma-make-app-root [data-mcal]{padding-left:5px !important}
}
