/* Презентация главной (волна 2026-09-23): канон артефакта presentation-scroll
   дизайнера — слои, слайды-сервисы, прорисовка схем от скролла. Токены :root
   дублируют css/tokens.css по значению (единый источник значений). */

      /* ============ Токены (canon: css/tokens.css) ============ */
      :root {
        --bg: #0b1020;
        --surface: #121a33;
        --surface-warm: #1b2450;
        --fg: #f8fafc;
        --fg-2: #cbd5e1;
        --muted: #8b95aa;
        --meta: #7d5cff;
        --border: #26314f;
        --border-soft: #1b2740;
        --accent: #7132f5;
        --accent-on: #ffffff;
        --accent-hover: color-mix(in oklab, var(--accent), black 8%);
        --font-display: "Inter", system-ui, sans-serif;
        --font-body: "Inter", system-ui, sans-serif;
        --font-mono: "Roboto Mono", "SF Mono", ui-monospace, Menlo, monospace;
        --text-xs: 11px; --text-sm: 13px; --text-base: 15px; --text-lg: 17px;
        --text-xl: 22px; --text-2xl: 30px; --text-3xl: 44px; --text-4xl: 60px;
        --text-7xl: clamp(64px, 11.5vw, 210px);
        --text-8xl: clamp(72px, 14vw, 300px);
        --leading-body: 1.48;
        --tracking-display: -0.015em;
        --tracking-giant: -0.035em;
        --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px;
        --space-5: 20px; --space-6: 24px; --space-8: 32px;
        --radius-sm: 8px; --radius-md: 12px; --radius-lg: 18px; --radius-pill: 9999px;
        --elev-raised: 0 24px 70px rgba(0, 0, 0, 0.42);
        --focus-ring: 0 0 0 4px rgba(113, 50, 245, 0.32);
        --motion-fast: 120ms; --motion-base: 200ms; --motion-slow: 520ms;
        --ease-standard: cubic-bezier(0.2, 0, 0, 1);
        --ease-out-soft: cubic-bezier(0.16, 1, 0.3, 1);
        --container-max: 1280px;
        --container-gutter-desktop: 32px;
        --container-gutter-phone: 16px;
        --plate-blur: 16px;
        --plate-veil: color-mix(in oklab, var(--bg) 84%, transparent);
        /* 2026-09-23: thera → розовый, orga → зелёный (решение владельца) */
        --svc-wt-1: #5fd0ff;   --svc-wt-2: #3b6dff;
        --svc-thera-1: #ff8f9d; --svc-thera-2: #b23a48;
        --svc-orga-1: #5fd38a;  --svc-orga-2: #0f8a5f;
        --svc-bots-1: #ffc25f;  --svc-bots-2: #ff7a45;
        --svc-sso-1: #9d8cff;   --svc-sso-2: #5b8cff;
        --svc-pay-1: #3ddc97;   --svc-pay-2: #14b8a6;
        --svc-redator-1: #f2b950; --svc-redator-2: #d97c2b;
      }

      /* ============ Карта акцентов ============ */
      [data-accent="wt"]      { --a1: var(--svc-wt-1);      --a2: var(--svc-wt-2); }
      [data-accent="thera"]   { --a1: var(--svc-thera-1);   --a2: var(--svc-thera-2); }
      [data-accent="orga"]    { --a1: var(--svc-orga-1);    --a2: var(--svc-orga-2); }
      [data-accent="bots"]    { --a1: var(--svc-bots-1);    --a2: var(--svc-bots-2); }
      [data-accent="sso"]     { --a1: var(--svc-sso-1);     --a2: var(--svc-sso-2); }
      [data-accent="pay"]     { --a1: var(--svc-pay-1);     --a2: var(--svc-pay-2); }
      [data-accent="redator"] { --a1: var(--svc-redator-1); --a2: var(--svc-redator-2); }

      /* ============ База ============ */
      * { box-sizing: border-box; }
      html { scroll-behavior: smooth; }
      body {
        margin: 0;
        background:
          radial-gradient(900px 480px at 85% -8%, color-mix(in oklab, var(--meta) 14%, transparent), transparent 60%),
          radial-gradient(700px 420px at -10% 22%, color-mix(in oklab, var(--svc-wt-2) 10%, transparent), transparent 55%),
          var(--bg);
        color: var(--fg);
        font-family: var(--font-body);
        font-size: var(--text-base);
        line-height: var(--leading-body);
        -webkit-font-smoothing: antialiased;
        min-height: 100vh;
        display: flex;
        flex-direction: column;
        overflow-x: hidden;
      }
      a { color: inherit; text-decoration: none; }
      ul { margin: 0; padding: 0; list-style: none; }
      figure { margin: 0; }
      :focus-visible { outline: none; }
      .shared-defs { position: absolute; width: 0; height: 0; overflow: hidden; }
      .wrap {
        width: 100%; max-width: var(--container-max);
        margin: 0 auto; flex: 1;
        padding: 0 clamp(var(--container-gutter-phone), 4vw, var(--container-gutter-desktop));
      }

      /* ============ Шапка ============ */
      .site-header {
        position: sticky; top: 0; z-index: 50;
        display: flex; align-items: center; gap: var(--space-4);
        padding: 14px clamp(var(--container-gutter-phone), 4vw, 40px);
        border-bottom: 1px solid var(--border-soft);
        background: color-mix(in oklab, var(--bg) 72%, transparent);
        backdrop-filter: blur(14px);
        -webkit-backdrop-filter: blur(14px);
      }
      .brand { display: flex; align-items: center; gap: 10px; min-width: 0; }
      .brand-mark {
        width: 34px; height: 34px; flex-shrink: 0;
        border-radius: var(--radius-sm);
        background: linear-gradient(135deg, var(--svc-wt-1), var(--accent) 55%, var(--svc-thera-1));
        display: grid; place-items: center;
        box-shadow: 0 4px 18px color-mix(in oklab, var(--accent) 40%, transparent);
        transition: transform var(--motion-base) var(--ease-standard);
      }
      .brand-mark:hover { transform: rotate(-8deg) scale(1.05); }
      .brand-mark:focus-visible { box-shadow: var(--focus-ring); }
      .brand-name { font-family: var(--font-display); font-weight: 700; font-size: 18px; letter-spacing: var(--tracking-display); }
      .brand-tagline { color: var(--muted); font-size: var(--text-sm); white-space: nowrap; }
      .site-nav { display: flex; align-items: center; gap: var(--space-1); margin-left: auto; }
      .nav-link {
        display: inline-flex; align-items: center; min-height: 44px;
        color: var(--fg-2); font-size: 14px; font-weight: 500;
        padding: 9px 14px; border-radius: var(--radius-md);
        transition: color var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard);
      }
      .nav-link:hover { color: var(--fg); background: var(--surface); }
      .nav-link:focus-visible { box-shadow: var(--focus-ring); }

      /* Переключатель языка — единый стиль с шапкой (канон home.css) */
      .lang { position: relative; flex-shrink: 0; }
      .lang-trigger {
        display: inline-flex; align-items: center; gap: 8px;
        min-height: 44px; padding: 8px 12px;
        background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md);
        color: var(--fg); font: inherit; font-size: 14px; cursor: pointer;
        transition: border-color var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard);
      }
      .lang-trigger:hover { border-color: var(--fg-2); background: var(--surface-warm); }
      .lang-trigger:focus-visible { box-shadow: var(--focus-ring); }
      .lang-current-flag { font-size: 17px; line-height: 1; }
      .lang-current-name { font-weight: 600; }
      .lang-caret { color: var(--muted); transition: transform var(--motion-fast) var(--ease-standard); }
      .lang-trigger[aria-expanded="true"] .lang-caret { transform: rotate(180deg); }
      .lang-menu {
        position: absolute; top: calc(100% + 8px); right: 0;
        min-width: 190px; padding: 6px;
        background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md);
        box-shadow: var(--elev-raised); z-index: 60;
      }
      .lang-menu[hidden] { display: none; }
      .lang-option {
        display: flex; align-items: center; gap: 10px;
        min-height: 40px; padding: 8px 12px; border: 0; background: none; width: 100%;
        font: inherit; font-size: 14px; text-align: left;
        border-radius: var(--radius-sm); cursor: pointer; color: var(--fg);
        transition: background var(--motion-fast) var(--ease-standard);
      }
      .lang-option:hover, .lang-option:focus { background: var(--surface-warm); }
      .lang-option:focus-visible { box-shadow: var(--focus-ring); }
      .lang-option.is-active { background: var(--surface-warm); }
      .lang-option .lang-flag { font-size: 18px; line-height: 1; }
      .lang-option.is-active::after {
        content: ""; margin-left: auto;
        width: 8px; height: 8px; border-radius: 50%;
        background: var(--meta);
      }

      /* ============ Скролл-рейка ============ */
      .scroll-rail {
        position: fixed; right: 18px; top: 50%; translate: 0 -50%;
        width: 3px; height: 180px; border-radius: var(--radius-pill);
        background: color-mix(in oklab, var(--fg) 10%, transparent);
        z-index: 40; overflow: hidden; opacity: .9;
        transition: background var(--motion-slow) var(--ease-standard);
      }
      .scroll-rail i {
        position: absolute; inset: 0; display: block; border-radius: inherit;
        background: linear-gradient(180deg, var(--rail, var(--meta)), color-mix(in oklab, var(--rail, var(--meta)) 30%, transparent));
        transform-origin: top;
        transform: scaleY(var(--rail-fill, 0));
      }

      /* ============ Кнопки / заголовки секций ============ */
      .btn {
        display: inline-flex; align-items: center; justify-content: center; gap: 8px;
        font-family: var(--font-body); font-weight: 600; font-size: var(--text-base);
        min-height: 46px; padding: 12px 22px;
        border-radius: var(--radius-md); border: 1px solid transparent; cursor: pointer;
        transition: background var(--motion-fast) var(--ease-standard),
                    border-color var(--motion-fast) var(--ease-standard),
                    transform var(--motion-fast) var(--ease-standard),
                    box-shadow var(--motion-fast) var(--ease-standard);
      }
      .btn-primary { background: var(--accent); color: var(--accent-on); }
      .btn-primary:hover { background: var(--accent-hover); transform: translateY(-1px); box-shadow: 0 10px 28px color-mix(in oklab, var(--accent) 35%, transparent); }
      .btn-primary:active { background: var(--accent-active); transform: none; }
      .btn-primary:focus-visible { box-shadow: var(--focus-ring); }
      .btn-ghost { background: var(--surface); border-color: var(--border); color: var(--fg); }
      .btn-ghost:hover { border-color: var(--fg-2); background: var(--surface-warm); }
      .btn-ghost:focus-visible { box-shadow: var(--focus-ring); }
      .cta-arrow { flex-shrink: 0; }
      .btn-ghost .cta-arrow { color: var(--muted); transition: color var(--motion-base) var(--ease-standard), transform var(--motion-base) var(--ease-standard); }
      .btn-ghost:hover .cta-arrow { color: inherit; transform: translateX(3px); }
      .eyebrow {
        display: inline-block; font-family: var(--font-mono); font-size: var(--text-xs);
        letter-spacing: 0.08em; text-transform: uppercase; color: var(--meta);
        margin-bottom: var(--space-3);
      }
      .section-head { margin-bottom: var(--space-8); }
      .section-title {
        margin: 0 0 var(--space-3); font-family: var(--font-display); font-weight: 700;
        font-size: clamp(30px, 4vw, var(--text-3xl)); line-height: 1.15;
        letter-spacing: var(--tracking-display);
      }
      .section-lead { margin: 0; color: var(--fg-2); font-size: var(--text-lg); max-width: 62ch; }

      /* ============ Hero ============ */
      .hero-layers { position: relative; padding: clamp(36px, 6vh, 72px) 0 clamp(12px, 2vh, 28px); }
      .brandstack {
        position: relative;
        width: calc(100% + 2 * clamp(var(--container-gutter-phone), 4vw, var(--container-gutter-desktop)));
        max-width: none;
        margin-left: calc(-1 * clamp(var(--container-gutter-phone), 4vw, var(--container-gutter-desktop)));
        margin-bottom: clamp(18px, 3vh, 34px);
        overflow: visible;
      }
      .brandstack-word {
        display: block; font-family: var(--font-display); font-weight: 800;
        font-size: clamp(56px, 12.6vw, 216px);
        line-height: 0.92; letter-spacing: var(--tracking-giant);
        white-space: nowrap; width: fit-content;
      }
      .brandstack-word--fill {
        position: relative; z-index: 2;
        background: linear-gradient(104deg, var(--fg) 30%, color-mix(in oklab, var(--meta) 55%, var(--fg)));
        -webkit-background-clip: text; background-clip: text;
        -webkit-text-fill-color: transparent;
      }
      .brandstack-word--outline {
        position: absolute; left: 0.015em; top: 0.03em; z-index: 1;
        color: transparent;
        -webkit-text-stroke: 1.4px color-mix(in oklab, var(--meta) 42%, transparent);
        pointer-events: none; user-select: none;
      }
      .hero-kicker {
        display: inline-flex; align-items: center; gap: 8px;
        font-family: var(--font-mono); font-size: var(--text-xs);
        letter-spacing: 0.08em; text-transform: uppercase; color: var(--meta);
        padding: 6px 12px; border-radius: var(--radius-pill);
        border: 1px solid color-mix(in oklab, var(--meta) 35%, transparent);
        background: color-mix(in oklab, var(--meta) 12%, transparent);
        margin: var(--space-6) 0 0;
      }
      .hero-title-2 {
        margin: clamp(18px, 3vh, 30px) 0 var(--space-4);
        font-family: var(--font-display); font-weight: 800;
        font-size: var(--text-4xl); line-height: 1.06;
        letter-spacing: var(--tracking-display); max-width: 22ch;
      }
      .hero-sub { margin: 0 0 var(--space-6); color: var(--fg-2); font-size: var(--text-lg); line-height: 1.6; max-width: 56ch; }
      .hero-actions { display: flex; flex-wrap: wrap; gap: var(--space-3); }
      .hero-copy { opacity: calc(1 - var(--hp, 0) * 0.22); }
      .hero-grid-layers {
        display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
        gap: clamp(48px, 6vw, 96px); align-items: end;
      }
      .hero-constellation { position: relative; min-height: 300px; align-self: center; }
      .hero-constellation .constellation-svg {
        display: block; max-width: 480px; margin-left: auto;
        width: 100%; height: auto; overflow: visible;
      }
      .hero-constellation .orbit { fill: none; stroke: var(--border); stroke-width: 1; stroke-dasharray: 3 6; }
      .hero-constellation .orbit-core { fill: none; stroke: color-mix(in oklab, var(--accent) 55%, transparent); stroke-width: 1.2; }
      .hero-constellation .link-line { stroke: var(--border); stroke-width: 1; opacity: .7; }
      .hero-constellation .node-circle { filter: drop-shadow(0 0 10px currentColor); }
      .hero-constellation .node-label {
        font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.06em;
        fill: var(--muted); text-transform: uppercase;
      }
      .hero-constellation .core-glow {
        fill: url(#coreGlow); transform-box: fill-box; transform-origin: center;
        animation: corePulse 6s ease-in-out infinite;
      }
      /* созвездие реагирует на первый скролл: --hp на секции hero */
      .hero-constellation .const-field {
        transform-origin: 260px 210px;
        transform: rotate(calc(var(--hp, 0) * 14deg)) scale(calc(1 + var(--hp, 0) * 0.06));
      }
      .const-field .node-pop { transform-box: fill-box; transform-origin: center; }
      .booted .const-field .node-pop { animation: nodePop 640ms var(--ease-out-soft) backwards, nodeBreathe 4.6s ease-in-out infinite; }
      @keyframes nodePop { from { transform: scale(0); opacity: 0; } to { transform: scale(1); opacity: 1; } }
      @keyframes nodeBreathe { 0%, 100% { opacity: .82; } 50% { opacity: 1; } }
      @keyframes corePulse { 0%, 100% { opacity: .55; transform: scale(1); } 50% { opacity: .8; transform: scale(1.06); } }
      .hero-constellation .orbit-spin { transform-origin: 260px 210px; animation: orbitSpin 60s linear infinite; }
      @keyframes orbitSpin { to { transform: rotate(360deg); } }

      /* ============ Манифест ============ */
      .manifest { margin: 0 0 64px; }
      .manifest-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--border-soft); border-bottom: 1px solid var(--border-soft); }
      .manifest-item { display: flex; align-items: center; gap: var(--space-4); padding: var(--space-5) var(--space-5) var(--space-5) 0; min-width: 0; }
      .manifest-item + .manifest-item { border-left: 1px solid var(--border-soft); padding-left: var(--space-5); }
      .manifest-ic { color: var(--muted); flex-shrink: 0; display: inline-flex; }
      .manifest-item p { margin: 0; color: var(--fg-2); font-size: var(--text-base); line-height: 1.5; }

      /* ============ Бегущая строка ============ */
      .marquee {
        position: relative; z-index: 3;
        margin: clamp(18px, 3vh, 32px) 0 clamp(24px, 4vh, 40px);
        padding: var(--space-5) 0;
        border-top: 1px solid var(--border-soft); border-bottom: 1px solid var(--border-soft);
        overflow: hidden;
        mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
        -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
      }
      .marquee-track { display: flex; gap: clamp(28px, 4vw, 56px); width: max-content; animation: marqueeRun 46s linear infinite; }
      .marquee-item {
        display: inline-flex; align-items: center; gap: 14px;
        font-family: var(--font-display); font-weight: 700;
        font-size: clamp(17px, 2vw, 24px); letter-spacing: var(--tracking-display);
        color: var(--fg-2); white-space: nowrap;
      }
      .marquee-item .mq-dot {
        width: 9px; height: 9px; border-radius: 50%;
        background: linear-gradient(135deg, var(--mq1, var(--meta)), var(--mq2, var(--accent)));
        box-shadow: 0 0 12px color-mix(in oklab, var(--mq1, var(--meta)) 55%, transparent);
        flex-shrink: 0;
      }
      .marquee-item .mq-tag { color: var(--muted); font-weight: 500; font-size: .72em; }
      @keyframes marqueeRun { to { transform: translateX(-33.3333%); } }
      .marquee:hover .marquee-track { animation-play-state: paused; }

      /* ============ Стопка листов-«слайдов» ============ */
      .plates {
        position: relative; overflow-x: clip;
        --overlap: clamp(56px, 11vh, 120px);
      }
      .plate {
        --shift: 0vw; --rot: 0deg;
        --overlap: clamp(56px, 11vh, 120px);
        position: relative; z-index: var(--i, 1); isolation: isolate;
        /* clip не создаёт скролл-контейнер — sticky внутри листа живёт */
        overflow: hidden; overflow: clip;
        margin-top: calc(-1 * var(--overlap));
        margin-left: var(--shift); margin-right: calc(-1 * var(--shift));
        border-radius: clamp(18px, 3vw, 34px);
        border-top: 1px solid color-mix(in oklab, var(--a1) 30%, var(--border));
        background:
          radial-gradient(120% 90% at 82% -10%, color-mix(in oklab, var(--a1) 9%, transparent), transparent 55%),
          radial-gradient(90% 80% at -8% 108%, color-mix(in oklab, var(--a2) 8%, transparent), transparent 52%),
          var(--plate-veil);
        backdrop-filter: blur(var(--plate-blur));
        -webkit-backdrop-filter: blur(var(--plate-blur));
        box-shadow: 0 -30px 80px -30px rgba(2, 5, 16, 0.9);
        transform: rotate(var(--rot));
      }
      .plate:first-child { margin-top: 0; transform: none; border-radius: 0; }
      .plate:not([data-accent]) { --a1: var(--meta); --a2: var(--accent); }
      .plate[data-accent="pay"] { --plate-veil: color-mix(in oklab, var(--surface) 82%, transparent); }
      .plates > .wrap .section-head { margin-bottom: calc(var(--overlap) + 24px); }
      .plate--tilt-l { --shift: 2.6vw; --rot: -0.5deg; }
      .plate--tilt-r { --shift: -2.6vw; --rot: 0.5deg; }

      .plate .scene-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
      .plate canvas[data-scene-canvas] { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }

      .plate-in {
        position: relative; z-index: 1;
        max-width: var(--container-max); margin: 0 auto;
        padding: clamp(44px, 7vh, 84px) clamp(var(--container-gutter-phone), 4vw, var(--container-gutter-desktop)) calc(var(--overlap) + clamp(56px, 6vh, 72px));
      }
      .plate--deep .plate-in { max-width: min(1120px, var(--container-max)); }

      .plate-top {
        position: sticky; top: 74px; z-index: 5;
        display: flex; align-items: center; flex-wrap: wrap; gap: 12px;
        margin: 0 -14px clamp(20px, 4vh, 40px);
        padding: 8px 14px; border-radius: var(--radius-md);
        background: color-mix(in oklab, var(--bg) 42%, transparent);
        backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
        font-family: var(--font-mono); font-size: var(--text-xs);
        letter-spacing: 0.1em; text-transform: uppercase; color: var(--a1);
      }
      .plate-no {
        font-family: var(--font-display); font-weight: 800;
        font-size: 15px; letter-spacing: 0.06em; color: var(--fg);
        font-variant-numeric: tabular-nums;
        padding: 5px 11px;
        border: 1px solid color-mix(in oklab, var(--a1) 40%, transparent);
        border-radius: var(--radius-pill);
        background: color-mix(in oklab, var(--a1) 12%, transparent);
      }
      .plate-domain { color: var(--muted); }
      .plate-domain::before { content: "·"; margin: 0 10px 0 2px; opacity: .7; }

      /* ---- Слайд-механика: гигантское имя удерживается и гаснет ---- */
      .giant {
        font-family: var(--font-display); font-weight: 800;
        line-height: 0.94; letter-spacing: var(--tracking-giant); margin: 0;
      }
      .giant-zone {
        position: relative;
        /* hold — окно удержания: пока лист прокручивается на эту высоту,
           имя стоит на сцене и гаснет по --gp; padding (не margin!) —
           чтобы sticky-контейнер накрывал всё окно удержания */
        padding-bottom: clamp(48px, 9vh, 120px);
      }
      .giant-pin { position: sticky; top: 96px; z-index: 1; }
      .giant-svc { font-size: var(--text-7xl); color: var(--fg); }
      .giant-svc a { color: inherit; display: inline-block; transition: color var(--motion-base) var(--ease-standard); }
      .giant-svc a:hover { color: var(--a1); }
      .giant-svc a:focus-visible { box-shadow: var(--focus-ring); border-radius: var(--radius-sm); }
      .giant-svc .glyph-tail { color: color-mix(in oklab, var(--a1) 70%, var(--fg)); }
      .plate .giant-svc {
        transform: translateY(calc(var(--gp, 0) * 46px)) scale(calc(1 - var(--gp, 0) * 0.04));
        opacity: clamp(0, 1 - var(--gp, 0) * 1.5, 1);
        filter: blur(calc(var(--gp, 0) * 9px));
        will-change: transform, opacity, filter;
      }

      .plate-lead {
        margin: clamp(18px, 3vh, 28px) 0 0; color: var(--fg-2);
        font-size: clamp(16.5px, 1.3vw, 19px); line-height: 1.66; max-width: 58ch;
      }
      .plate--deep .plate-lead { max-width: 66ch; }

      /* ---- Числа-факты убраны (волна 2026-09-26): плашки-счётчики из секций ---- */

      .plate-grid {
        display: grid; grid-template-columns: minmax(0, 6.5fr) minmax(0, 5.5fr);
        gap: clamp(28px, 4vw, 64px); align-items: center;
        margin-top: clamp(28px, 5vh, 52px);
      }
      .plate-grid--flip .plate-fig { order: 2; }
      .plate-grid--flip .plate-side { order: 1; }
      .plate-facts { display: grid; gap: var(--space-4); }
      .plate-fact {
        display: grid; grid-template-columns: 30px minmax(0, 1fr);
        gap: var(--space-3); align-items: start;
        padding: var(--space-4) var(--space-5);
        border: 1px solid color-mix(in oklab, var(--a1) 16%, var(--border-soft));
        border-radius: var(--radius-md);
        /* 88%: линии canvas-сцены под листом не просвечивают сквозь текст карточки */
        background: color-mix(in oklab, var(--surface) 88%, transparent);
        transition: border-color var(--motion-base) var(--ease-standard),
                    background var(--motion-base) var(--ease-standard),
                    transform var(--motion-base) var(--ease-standard);
      }
      .plate-fact:hover {
        border-color: color-mix(in oklab, var(--a1) 45%, var(--border));
        background: color-mix(in oklab, var(--surface) 85%, transparent);
        transform: translateX(4px);
      }
      .plate-fact .fact-ic {
        width: 30px; height: 30px;
        display: inline-flex; align-items: center; justify-content: center;
        border-radius: var(--radius-sm); color: var(--a1);
        background: color-mix(in oklab, var(--a1) 12%, transparent);
        border: 1px solid color-mix(in oklab, var(--a1) 26%, transparent);
      }
      .plate-fact h4 { margin: 0 0 3px; font-size: var(--text-base); font-weight: 650; letter-spacing: .01em; }
      .plate-fact p { margin: 0; color: var(--muted); font-size: var(--text-sm); line-height: 1.55; }

      .deep-cols {
        display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        gap: clamp(24px, 3.5vw, 56px); margin-top: clamp(26px, 4vh, 44px);
      }
      .deep-note {
        margin: 0; padding: var(--space-5) var(--space-6);
        border-left: 2px solid color-mix(in oklab, var(--a1) 60%, transparent);
        background: linear-gradient(90deg, color-mix(in oklab, var(--a1) 9%, transparent), transparent 72%);
        border-radius: 0 var(--radius-md) var(--radius-md) 0;
        color: var(--fg-2); font-size: var(--text-base); line-height: 1.7;
      }
      .deep-note strong { color: var(--fg); font-weight: 650; }

      .plate-cta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4); margin-top: clamp(26px, 4vh, 42px); }
      .plate-cta .btn-ghost { border-color: color-mix(in oklab, var(--a2) 40%, var(--border)); }
      .plate-cta .btn-ghost:hover { border-color: color-mix(in oklab, var(--a2) 70%, var(--border)); }
      .link-more {
        display: inline-flex; align-items: center; gap: 8px;
        color: var(--fg-2); font-weight: 600; font-size: var(--text-base);
        transition: color var(--motion-fast) var(--ease-standard);
      }
      .link-more .arr { transition: transform var(--motion-base) var(--ease-standard); }
      .link-more:hover { color: var(--a1); }
      .link-more:hover .arr { transform: translateX(4px); }
      .link-more:focus-visible { box-shadow: var(--focus-ring); border-radius: var(--radius-sm); }

      /* ============ Нарисованные схемы: прорисовка по --fp ============ */
      .fig {
        position: relative; margin: 0; --fp: 1;
        border-radius: var(--radius-lg); overflow: hidden;
        background: color-mix(in oklab, var(--surface) 88%, transparent);
        border: 1px solid color-mix(in oklab, var(--a1) 26%, var(--border));
        box-shadow:
          0 40px 110px -36px rgba(2, 5, 16, 0.9),
          0 30px 90px -40px color-mix(in oklab, var(--a1) 26%, transparent);
        transition: transform var(--motion-slow) var(--ease-out-soft), border-color var(--motion-slow) var(--ease-standard);
      }
      .fig::before {
        content: ""; position: absolute; inset: -30% -20% auto -20%; height: 78%;
        background: radial-gradient(60% 70% at 50% 0%, color-mix(in oklab, var(--a1) 13%, transparent), transparent 70%);
        pointer-events: none; z-index: 0;
      }
      @media (hover: hover) {
        .plate-fig .fig:hover {
          transform: translateY(-4px) rotate(-0.3deg) scale(1.008);
          border-color: color-mix(in oklab, var(--a1) 45%, var(--border));
        }
      }
      .fig-chrome {
        position: relative; display: flex; align-items: center; gap: 12px;
        height: 38px; padding: 0 14px;
        background: color-mix(in oklab, var(--surface-warm) 70%, var(--surface));
        border-bottom: 1px solid var(--border-soft);
      }
      .fig-dots { display: inline-flex; gap: 6px; }
      .fig-dots i { width: 8px; height: 8px; border-radius: 50%; background: var(--border); }
      .fig-url {
        font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.04em;
        color: var(--muted); padding: 3px 12px; border-radius: var(--radius-pill);
        background: rgba(255, 255, 255, 0.04);
        white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 62%;
      }
      .fig-body { position: relative; z-index: 1; padding: clamp(10px, 2vw, 20px); }
      .fig-svg { display: block; width: 100%; height: auto; transform-origin: 50% 50%; animation: figBreathe 12s ease-in-out infinite; }
      @keyframes figBreathe { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.012); } }

      .fig .ln { stroke: color-mix(in oklab, var(--fg-2) 26%, transparent); stroke-width: 6; stroke-linecap: round; }
      .fig .panel {
        fill: color-mix(in oklab, var(--surface-warm) 60%, transparent);
        stroke: color-mix(in oklab, var(--a1) 30%, var(--border)); stroke-width: 1.2;
      }
      .fig .mono-lbl { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.06em; fill: var(--muted); }
      .fig .accent-lbl { fill: color-mix(in oklab, var(--a1) 85%, var(--fg)); font-weight: 600; }

      /* штрих прорисовывается окном [--d0 → 1] общего прогресса --fp (pathLength=1) */
      .fig .fx-draw {
        stroke-dasharray: 1;
        stroke-dashoffset: clamp(0, 1 - (var(--fp, 1) - var(--d0, 0)) / (1 - var(--d0, 0)), 1);
      }
      /* заливка/группа проявляется окном [--d1 → --d1+0.5] */
      .fig .fx-fill { opacity: clamp(0, (var(--fp, 1) - var(--d1, 0.12)) / 0.5, 1); }

      /* --- WT --- */
      .fig--wt .fwt-route { fill: none; stroke: color-mix(in oklab, var(--a1) 34%, transparent); stroke-width: 1.1; }
      .fig--wt .fwt-city { fill: url(#nodeWt); filter: drop-shadow(0 0 6px rgba(95, 208, 255, 0.6)); }
      .fig--wt .fwt-dot { fill: var(--svc-wt-1); offset-rotate: 0rad; }
      .fig--wt .fwt-dot--1 { offset-path: path("M64 96 Q150 30 196 62"); animation: figTravel 5.2s linear infinite; }
      .fig--wt .fwt-dot--2 { offset-path: path("M196 62 Q282 74 340 138"); animation: figTravel 6.4s linear infinite 1.2s; }
      .fig--wt .fwt-dot--3 { offset-path: path("M136 246 Q190 292 282 330"); animation: figTravel 5.8s linear infinite 0.6s; }
      .fig--wt .fwt-dot--4 { offset-path: path("M282 330 Q368 318 422 262"); animation: figTravel 6.8s linear infinite 2.1s; }
      .fig--wt .fwt-dot--5 { offset-path: path("M340 138 Q392 196 422 262"); animation: figTravel 4.9s linear infinite 3s; }
      @keyframes figTravel { from { offset-distance: 0%; } to { offset-distance: 100%; } }
      .fig--wt .fwt-spark {
        fill: none; stroke: url(#nodeWt); stroke-width: 2.4; stroke-linecap: round;
        --dashlen: 320px; stroke-dasharray: var(--dashlen); stroke-dashoffset: var(--dashlen);
        animation: figDraw 4.6s var(--ease-out-soft) infinite;
      }
      .fig--wt .fwt-spark-glow { filter: drop-shadow(0 0 8px rgba(95, 208, 255, 0.55)); }
      .fig--wt .fwt-spark-head { fill: #fff; animation: figHeadPulse 4.6s ease-in-out infinite; }
      @keyframes figDraw { 0% { stroke-dashoffset: var(--dashlen, 320px); } 62% { stroke-dashoffset: 0; } 100% { stroke-dashoffset: 0; } }
      @keyframes figHeadPulse { 0%, 55% { opacity: 0; } 62%, 88% { opacity: 1; } 100% { opacity: 0; } }
      .fig--wt .fwt-bar {
        fill: color-mix(in oklab, var(--svc-wt-2) 55%, transparent);
        transform-origin: center bottom; animation: figBarGrow 4.6s var(--ease-out-soft) infinite;
      }
      .fig--wt .fwt-bars rect:nth-child(2) { animation-delay: .18s; }
      .fig--wt .fwt-bars rect:nth-child(3) { animation-delay: .36s; }
      .fig--wt .fwt-bars rect:nth-child(4) { animation-delay: .54s; }
      @keyframes figBarGrow { 0%, 8% { transform: scaleY(0.35); } 55%, 100% { transform: scaleY(1); } }

      /* --- Thera (розовая палитра 2026-09-23) --- */
      .fig--thera .ft-bubble { animation: ftRise 7s var(--ease-out-soft) infinite; }
      .fig--thera .ft-bubble--2 { animation-delay: 1.1s; }
      .fig--thera .ft-bubble--3 { animation-delay: 2.2s; }
      @keyframes ftRise { 0% { opacity: 0; transform: translateY(14px); } 14%, 88% { opacity: 1; transform: none; } 100% { opacity: 0; } }
      .fig--thera .ft-type circle { animation: ftType 1.4s ease-in-out infinite; }
      .fig--thera .ft-type circle:nth-child(2) { animation-delay: .22s; }
      .fig--thera .ft-type circle:nth-child(3) { animation-delay: .44s; }
      @keyframes ftType { 0%, 100% { opacity: .25; } 50% { opacity: 1; } }
      .fig--thera .ft-tree { stroke: color-mix(in oklab, var(--svc-thera-2) 45%, transparent); stroke-width: 1.2; fill: none; }
      .fig--thera .ft-path {
        fill: none; stroke: var(--svc-thera-1); stroke-width: 2.4; stroke-linecap: round;
        filter: drop-shadow(0 0 6px rgba(255, 143, 157, 0.5));
      }
      .fig--thera .ft-verdict { animation: ftRise 7s var(--ease-out-soft) infinite 2.9s; }

      /* --- Orga (зелёная палитра 2026-09-23) --- */
      .fig--orga .fo-card { fill: color-mix(in oklab, var(--surface) 90%, var(--fg) 4%); stroke: color-mix(in oklab, var(--svc-orga-1) 30%, var(--border)); stroke-width: 1.1; }
      .fig--orga .fo-col-line { stroke: color-mix(in oklab, var(--svc-orga-1) 30%, transparent); stroke-width: 5; stroke-linecap: round; }
      .fig--orga .fo-runner { animation: foRunner 8.4s var(--ease-in-out) infinite; }
      @keyframes foRunner {
        0% { transform: translate(0, 0); opacity: 0; }
        6% { opacity: 1; }
        30% { transform: translate(160px, 10px); }
        36% { transform: translate(160px, 64px); }
        60% { transform: translate(320px, 54px); opacity: 1; }
        66% { transform: translate(320px, 18px); }
        86%, 100% { transform: translate(396px, 18px); opacity: 0; }
      }
      .fig--orga .fo-ai { transform-box: fill-box; transform-origin: center; animation: foAiPulse 2.6s ease-in-out infinite; }
      @keyframes foAiPulse { 0%, 100% { opacity: .75; } 50% { opacity: 1; } }
      .fig--orga .fo-chat-line { stroke: color-mix(in oklab, var(--fg-2) 30%, transparent); stroke-width: 5.5; stroke-linecap: round; }

      /* --- Redactor --- */
      .fig--redator .fr-tree { stroke: color-mix(in oklab, var(--fg-2) 34%, transparent); stroke-width: 5; stroke-linecap: round; }
      .fig--redator .fr-node { fill: color-mix(in oklab, var(--fg-2) 30%, transparent); }
      .fig--redator .fr-node--active { fill: var(--svc-redator-1); }
      .fig--redator .fr-textline { stroke: color-mix(in oklab, var(--fg-2) 26%, transparent); stroke-width: 4; stroke-linecap: round; }
      .fig--redator .fr-textline--dim { stroke: color-mix(in oklab, var(--fg-2) 14%, transparent); }
      .fig--redator .fr-selection { fill: color-mix(in oklab, var(--svc-redator-1) 16%, transparent); stroke: color-mix(in oklab, var(--svc-redator-1) 55%, transparent); stroke-width: 1; }
      .fig--redator .fr-textline--sel { stroke: var(--svc-redator-1); }
      .fig--redator .fr-cursor { stroke: var(--svc-redator-1); stroke-width: 2.4; animation: fr-blink 1.1s steps(2, start) infinite; }
      @keyframes fr-blink { 50% { opacity: 0; } }
      .fig--redator .fr-chat { fill: rgba(255, 255, 255, 0.05); stroke: color-mix(in oklab, var(--svc-redator-2) 40%, var(--border)); stroke-width: 1; }
      .fig--redator .fr-chat--ai { stroke: color-mix(in oklab, var(--svc-redator-1) 45%, var(--border)); }
      .fig--redator .fr-chat-line { stroke: color-mix(in oklab, var(--fg-2) 30%, transparent); stroke-width: 3.4; stroke-linecap: round; }
      .fig--redator .fr-chat-line--ai { stroke: color-mix(in oklab, var(--svc-redator-1) 60%, transparent); }
      .fig--redator .fr-ai-orb { fill: var(--svc-redator-1); filter: drop-shadow(0 0 8px color-mix(in oklab, var(--svc-redator-1) 70%, transparent)); }
      .fig--redator .fr-ai-ring { fill: none; stroke: color-mix(in oklab, var(--svc-redator-1) 45%, transparent); stroke-width: 1; stroke-dasharray: 3 6; animation: fr-spin 9s linear infinite; transform-origin: 660px 60px; }
      @keyframes fr-spin { to { transform: rotate(360deg); } }

      /* --- Bots --- */
      .fig--bots .fb-phone {
        fill: color-mix(in oklab, var(--surface) 92%, transparent);
        stroke: color-mix(in oklab, var(--svc-bots-1) 34%, var(--border)); stroke-width: 1.4;
      }
      .fig--bots .fb-bubble { animation: ftRise 8.4s var(--ease-out-soft) infinite; }
      .fig--bots .fb-bubble--2 { animation-delay: .9s; }
      .fig--bots .fb-bubble--3 { animation-delay: 1.8s; }
      .fig--bots .fb-bubble--4 { animation-delay: 2.7s; }
      .fig--bots .fb-bot-chip { animation: fbFloat 5.2s ease-in-out infinite; }
      .fig--bots .fb-bot-chip--2 { animation-delay: 1.3s; }
      .fig--bots .fb-bot-chip--3 { animation-delay: 2.4s; }
      @keyframes fbFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-9px); } }
      .fig--bots .fb-send { animation: foAiPulse 2.2s ease-in-out infinite; }

      /* --- SSO --- */
      .fig--sso .fs-window { fill: color-mix(in oklab, var(--surface) 88%, transparent); stroke: color-mix(in oklab, var(--svc-sso-1) 32%, var(--border)); stroke-width: 1.2; }
      .fig--sso .fs-bridge { fill: none; stroke: color-mix(in oklab, var(--svc-sso-2) 40%, transparent); stroke-width: 1.1; }
      .fig--sso .fs-seed-box { fill: rgba(255, 255, 255, 0.05); stroke: color-mix(in oklab, var(--svc-sso-1) 34%, transparent); stroke-width: 1; }
      .fig--sso .fs-seed-txt { font-family: var(--font-mono); font-size: 12.5px; letter-spacing: 0.08em; fill: var(--fg-2); }
      .fig--sso .fs-shimmer { animation: fsSweep 3.8s var(--ease-standard) infinite; }
      @keyframes fsSweep { 0% { transform: translateX(-90px); opacity: 0; } 22% { opacity: .8; } 46%, 100% { transform: translateX(320px); opacity: 0; } }
      .fig--sso .fs-token { fill: var(--svc-sso-1); offset-rotate: 0rad; filter: drop-shadow(0 0 5px rgba(157, 140, 255, 0.7)); }
      .fig--sso .fs-token--1 { offset-path: path("M108 92 C 200 56, 300 92, 340 172"); animation: figTravel 4.4s linear infinite; }
      .fig--sso .fs-token--2 { offset-path: path("M612 92 C 520 56, 420 92, 380 172"); animation: figTravel 4.4s linear infinite 1.1s; }
      .fig--sso .fs-token--3 { offset-path: path("M108 332 C 200 368, 300 332, 340 248"); animation: figTravel 5s linear infinite 0.5s; }
      .fig--sso .fs-token--4 { offset-path: path("M612 332 C 520 368, 420 332, 380 248"); animation: figTravel 5s linear infinite 1.7s; }
      .fig--sso .fs-key { transform-box: fill-box; transform-origin: center; animation: fsKey 5.6s var(--ease-standard) infinite; }
      @keyframes fsKey { 0%, 20%, 100% { transform: rotate(0deg); } 38%, 62% { transform: rotate(-28deg); } }

      /* --- Pay --- */
      .fig--pay .fy-qr-cell { fill: color-mix(in oklab, var(--fg) 78%, transparent); }
      .fig--pay .fy-finder { fill: none; stroke: color-mix(in oklab, var(--svc-pay-1) 85%, var(--fg)); stroke-width: 3; transform-box: fill-box; transform-origin: center; animation: foAiPulse 3s ease-in-out infinite; }
      .fig--pay .fy-step-line { stroke: color-mix(in oklab, var(--svc-pay-2) 45%, transparent); stroke-width: 1.6; }
      .fig--pay .fy-progress {
        fill: none; stroke: var(--svc-pay-1); stroke-width: 2.6; stroke-linecap: round;
        filter: drop-shadow(0 0 6px rgba(61, 220, 151, 0.55));
      }
      .fig--pay .fy-node { fill: color-mix(in oklab, var(--surface) 90%, var(--fg) 6%); stroke: color-mix(in oklab, var(--svc-pay-1) 45%, var(--border)); stroke-width: 1.4; }
      .fig--pay .fy-ok {
        fill: none; stroke: var(--svc-pay-1); stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round;
        stroke-dasharray: 22; stroke-dashoffset: 22;
        animation: figDrawCheck 5.8s var(--ease-out-soft) infinite 3.4s;
      }
      @keyframes figDrawCheck { 0% { stroke-dashoffset: 22; } 35%, 82% { stroke-dashoffset: 0; } 100% { stroke-dashoffset: 0; } }
      .fig--pay .fy-block { fill: color-mix(in oklab, var(--surface) 92%, transparent); stroke: color-mix(in oklab, var(--svc-pay-1) 34%, var(--border)); stroke-width: 1.2; }
      .fig--pay .fy-link { stroke: color-mix(in oklab, var(--svc-pay-2) 40%, transparent); stroke-width: 1.2; stroke-dasharray: 3 6; }
      .fig--pay .fy-coin { offset-rotate: 0rad; }
      .fig--pay .fy-coin--1 { offset-path: path("M172 336 L 213 336"); animation: figTravel 3.6s linear infinite; }
      .fig--pay .fy-coin--2 { offset-path: path("M347 336 L 388 336"); animation: figTravel 3.6s linear infinite 1.2s; }
      .fig--pay .fy-coin--3 { offset-path: path("M522 336 L 563 336"); animation: figTravel 3.6s linear infinite 2.4s; }

      /* ============ Подложки сцен (thera/orga — новые палитры) ============ */
      [data-accent="orga"] .scene-base {
        background:
          radial-gradient(720px 440px at 20% 28%, rgba(95, 211, 138, 0.14), transparent 65%),
          radial-gradient(600px 420px at 84% 86%, rgba(15, 138, 95, 0.09), transparent 62%);
      }
      [data-accent="thera"] .scene-base {
        background:
          radial-gradient(700px 440px at 76% 18%, rgba(255, 143, 157, 0.10), transparent 64%),
          radial-gradient(540px 400px at 20% 92%, rgba(178, 58, 72, 0.07), transparent 60%);
      }
      [data-accent="wt"] .scene-base {
        background:
          radial-gradient(760px 460px at 78% 26%, rgba(59, 109, 255, 0.14), transparent 65%),
          radial-gradient(560px 420px at 12% 88%, rgba(95, 208, 255, 0.07), transparent 60%);
      }
      [data-accent="redator"] .scene-base {
        background:
          radial-gradient(740px 460px at 26% 22%, rgba(242, 185, 80, 0.11), transparent 64%),
          radial-gradient(600px 420px at 84% 88%, rgba(217, 124, 43, 0.08), transparent 60%);
      }
      [data-accent="bots"] .scene-base {
        background:
          radial-gradient(760px 500px at 50% 112%, rgba(255, 122, 69, 0.12), transparent 68%),
          radial-gradient(560px 380px at 82% 12%, rgba(255, 194, 95, 0.08), transparent 60%);
      }
      [data-accent="sso"] .scene-base {
        background:
          radial-gradient(700px 460px at 50% 42%, rgba(157, 140, 255, 0.12), transparent 66%),
          radial-gradient(560px 420px at 90% 88%, rgba(91, 140, 255, 0.07), transparent 60%);
      }
      [data-accent="pay"] .scene-base {
        background:
          radial-gradient(760px 480px at 80% 26%, rgba(61, 220, 151, 0.14), transparent 64%),
          radial-gradient(580px 420px at 14% 88%, rgba(20, 184, 166, 0.09), transparent 60%);
      }
      .scene-base { position: absolute; inset: 0; }
      .scene-bg::after {
        content: ""; position: absolute; inset: 0;
        background:
          linear-gradient(180deg, rgba(11, 16, 32, 0.26) 0%, rgba(11, 16, 32, 0) 26%),
          linear-gradient(0deg, rgba(11, 16, 32, 0.30) 0%, rgba(11, 16, 32, 0) 30%);
      }

      /* ============ Доктрина: маршрут из 6 принципов ============ */
      .section { padding-top: clamp(48px, 8vh, 88px); }
      #doctrine { padding-top: clamp(28px, 5vh, 48px); }
      .route { position: relative; --dp: 1; max-width: 1120px; }
      .route-line {
        position: absolute; top: 19px; left: 0; right: 0; height: 2px;
        background: color-mix(in oklab, var(--fg) 8%, transparent);
        border-radius: 2px; overflow: hidden;
      }
      .route-line i {
        position: absolute; inset: 0; display: block;
        background: linear-gradient(90deg, var(--meta), color-mix(in oklab, var(--meta) 20%, transparent));
        transform-origin: left; transform: scaleX(var(--dp));
      }
      .route-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: clamp(14px, 2vw, 26px); }
      .route-item { position: relative; padding-top: 58px; }
      .route-dot {
        position: absolute; top: 4px; left: 0;
        width: 32px; height: 32px; border-radius: 50%;
        display: grid; place-items: center;
        background: color-mix(in oklab, var(--bg) 70%, var(--surface));
        border: 1px solid color-mix(in oklab, var(--pc, var(--meta)) 30%, var(--border));
        font-family: var(--font-mono); font-size: 11px; color: var(--muted);
        transition: border-color var(--motion-base) var(--ease-standard),
                    box-shadow var(--motion-base) var(--ease-standard),
                    color var(--motion-base) var(--ease-standard);
      }
      .route-num { font-weight: 700; font-variant-numeric: tabular-nums; }
      .route-item.is-on .route-dot {
        border-color: var(--pc, var(--meta)); color: var(--pc, var(--meta));
        box-shadow: 0 0 0 4px color-mix(in oklab, var(--pc, var(--meta)) 14%, transparent),
                    0 0 24px color-mix(in oklab, var(--pc, var(--meta)) 30%, transparent);
      }
      .route-item h3 {
        margin: 0 0 8px; font-family: var(--font-display); font-weight: 700;
        font-size: var(--text-lg); letter-spacing: var(--tracking-display);
        display: flex; align-items: flex-start; gap: 8px;
      }
      .route-item .principle-ic { color: var(--pc, var(--meta)); display: inline-flex; flex-shrink: 0; }
      .route-item p { margin: 0; color: var(--fg-2); font-size: var(--text-sm); line-height: 1.6; }

      /* ============ Футер ============ */
      .site-footer {
        position: relative; z-index: 30;
        border-top: 1px solid var(--border-soft);
        padding: var(--space-8) clamp(var(--container-gutter-phone), 4vw, 40px) var(--space-6);
        background: color-mix(in oklab, var(--bg) 88%, transparent);
      }
      .footer-inner { max-width: var(--container-max); margin: 0 auto; display: flex; flex-direction: column; gap: var(--space-5); }
      .footer-links { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-5); }
      .footer-links .footer-sub {
        flex-basis: 100%; font-family: var(--font-mono); font-size: var(--text-xs);
        letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted);
        margin-bottom: var(--space-1);
      }
      .footer-link { font-size: var(--text-sm); color: var(--muted); transition: color var(--motion-fast) var(--ease-standard); }
      .footer-link:hover { color: var(--fg); }
      .footer-link:focus-visible { box-shadow: var(--focus-ring); border-radius: var(--radius-sm); }
      .footer-bottom {
        display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
        gap: var(--space-4); border-top: 1px solid var(--border-soft); padding-top: var(--space-5);
      }
      .footer-copy { font-size: var(--text-sm); color: var(--muted); }

      /* ============ Reveal / параллакс ============ */
      [data-reveal] {
        opacity: 0; transform: translateY(44px); filter: blur(14px);
        transition: opacity var(--motion-slow) var(--ease-out-soft),
                    transform var(--motion-slow) var(--ease-out-soft),
                    filter var(--motion-slow) var(--ease-out-soft);
        will-change: opacity, transform, filter;
      }
      [data-reveal="left"] { transform: translateX(-52px); }
      [data-reveal="right"] { transform: translateX(52px); }
      [data-reveal="zoom"] { transform: scale(.93); }
      [data-reveal].is-in { opacity: 1; transform: none; filter: none; }
      [data-reveal-delay="1"] { transition-delay: 90ms; }
      [data-reveal-delay="2"] { transition-delay: 180ms; }
      [data-reveal-delay="3"] { transition-delay: 270ms; }
      [data-reveal-delay="4"] { transition-delay: 360ms; }
      [data-reveal-delay="5"] { transition-delay: 450ms; }
      [data-reveal-delay="6"] { transition-delay: 540ms; }
      [data-para] { will-change: transform; }

      /* ============ Адаптив ============ */
      @media (max-width: 1024px) {
        .plates { --overlap: clamp(54px, 9vh, 96px); }
        .plate { --overlap: clamp(54px, 9vh, 96px); --shift: 0vw; --rot: 0deg; margin-left: 0; margin-right: 0; }
        .plate-grid, .plate-grid--flip, .deep-cols { grid-template-columns: 1fr; gap: var(--space-8); }
        .plate-grid--flip .plate-fig { order: 0; }
        .plate-grid--flip .plate-side { order: 0; }
        .hero-grid-layers { grid-template-columns: 1fr; }
        .hero-constellation { max-width: 430px; }
        .scroll-rail { display: none; }
        .manifest-row { grid-template-columns: 1fr; }
        .manifest-item + .manifest-item { border-left: none; border-top: 1px solid var(--border-soft); padding-left: 0; }
        .manifest-item { padding: var(--space-4) 0; }
        /* маршрут доктрины — вертикальный */
        .route-line { left: 15px; top: 0; bottom: 0; right: auto; width: 2px; height: auto; }
        .route-line i {
          transform-origin: top; transform: scaleY(var(--dp));
          background: linear-gradient(180deg, var(--meta), color-mix(in oklab, var(--meta) 20%, transparent));
        }
        .route-grid { grid-template-columns: 1fr; gap: 30px; }
        .route-item { padding-top: 0; padding-left: 58px; }
        .route-dot { top: 0; }
      }
      @media (max-width: 768px) {
        .plates { --overlap: clamp(44px, 7vh, 72px); }
        .plate { border-radius: 18px; --overlap: clamp(44px, 7vh, 72px); }
        .plate-top { position: static; }
        .giant-svc { font-size: clamp(52px, 13.5vw, 92px); }
        .giant-zone { padding-bottom: clamp(96px, 22vh, 200px); }
        .giant-pin { top: 74px; }
        .brandstack-word { font-size: clamp(46px, 13.5vw, 96px); }
        .site-header { gap: var(--space-2); }
        .nav-link { padding: 8px 10px; font-size: 13px; }
        .brand-tagline { display: none; }
        .footer-links { row-gap: var(--space-1); }
        .footer-link { padding: 8px 4px; margin: -6px -4px; }
      }
      @media (max-width: 560px) {
        .plate-cta { flex-direction: column; align-items: stretch; }
        .plate-cta .btn { width: 100%; }
        .plate-fact { padding: var(--space-3) var(--space-4); }
        .hero-actions .btn { flex: 1 1 auto; }
        .manifest-item { gap: var(--space-3); }
      }

      /* ============ Reduced motion / no-JS ============ */
      @media (prefers-reduced-motion: reduce) {
        html { scroll-behavior: auto; }
        .marquee-track, .core-glow, .orbit-spin, .fig-svg,
        .booted .const-field .node-pop,
        .fig--wt .fwt-dot, .fig--wt .fwt-spark, .fig--wt .fwt-bar, .fig--wt .fwt-spark-head,
        .fig--thera .ft-bubble, .fig--thera .ft-type circle, .fig--thera .ft-verdict,
        .fig--orga .fo-runner, .fig--orga .fo-ai,
        .fig--bots .fb-bubble, .fig--bots .fb-bot-chip, .fig--bots .fb-send,
        .fig--sso .fs-shimmer, .fig--sso .fs-token, .fig--sso .fs-key,
        .fig--pay .fy-finder, .fig--pay .fy-ok, .fig--pay .fy-coin,
        .fig--redator .fr-cursor, .fig--redator .fr-ai-ring {
          animation: none !important;
        }
        .fig--wt .fwt-spark { stroke-dashoffset: 0; }
        .fig--thera .ft-bubble, .fig--bots .fb-bubble, .fig--thera .ft-verdict { opacity: 1; }
        .fig .fx-draw { stroke-dashoffset: 0; }
        .fig .fx-fill { opacity: 1; }
        [data-reveal] { opacity: 1; transform: none; filter: none; transition: none; }
        [data-para] { transform: none !important; }
        .giant-zone { padding-bottom: 24px; }
        .giant-pin { position: static; }
        .plate .giant-svc { transform: none; opacity: 1; filter: none; }
        .btn, .nav-link, .footer-link, .plate-fact, .lang-trigger, .lang-option { transition: none; }
        .btn-primary:hover { transform: none; }
        .booted .const-field .node-pop { opacity: 1; }
      }
      /* Рендер-доска: без скролла hold-окно не съедается sticky — сжимаем,
         иначе между гигантом и лидом лежит до 420px пустоты */
      html.board .giant-zone { padding-bottom: 24px; }
      .no-js [data-reveal] { opacity: 1; transform: none; filter: none; }
      .no-js [data-para] { transform: none !important; }
      .no-js .marquee-track { animation: none; }
      .no-js .giant-zone { padding-bottom: 24px; }
      .no-js .giant-pin { position: static; }
      .no-js .route-dot { border-color: var(--pc, var(--meta)); color: var(--pc, var(--meta)); }
    