:root {
  /* термопалитра недра → мозги */
  --ember: #ff7a18;
  --amber: #ffb547;
  --earth: #1a0e08;
  --gazprom-blue: #005bab;
  --navy: #04162b;
  --navy-deep: #020c1a;
  --cyan: #00a6df;
  --synapse: #7fe6ff;
  --ice: #e9f7ff;
  --steel: #9eb6c7;
  --muted: #6f8aa0;
  --risk: #ff5a7a;

  /* институциональная дисциплина: hairline-линии вместо рамок-карточек */
  --rule: rgba(158, 182, 199, 0.16);
  --rule-strong: rgba(233, 247, 255, 0.26);
  --panel: rgba(7, 22, 42, 0.62);
  --panel-strong: rgba(6, 20, 40, 0.78);
  --shadow: 0 30px 90px rgba(0, 8, 24, 0.5);

  --font-display: "Spectral", Georgia, serif;
  --font-head: "Spectral", Georgia, serif;
  --font-body: "Wix Madefor Text", system-ui, sans-serif;
  --font-mono: "Martian Mono", "SFMono-Regular", Consolas, monospace;

  /* движение — единые токены */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
  --ease-inout: cubic-bezier(0.65, 0, 0.35, 1);
  --d-fast: 220ms;
  --d-base: 420ms;
  --d-slow: 680ms;
  --stagger: 70ms;

  --t: 0.1;
  --accent: color-mix(in oklab, var(--amber), var(--cyan) calc(var(--t) * 100%));
}

* { box-sizing: border-box; }

html, body {
  width: 100%; height: 100%; margin: 0; overflow: hidden;
  background: var(--navy-deep); color: var(--ice);
  font-family: var(--font-body);
  -webkit-font-smoothing: antialiased;
}

/* ── фоновые слои ───────────────────────────────────────── */
.higgsfield-layer, .thermal, .vignette {
  position: fixed; inset: 0; width: 100vw; height: 100vh; pointer-events: none;
}
.thermal {
  z-index: 0;
  background: linear-gradient(180deg, var(--navy) 0%, var(--navy-deep) 52%, #0a0a0f 80%, var(--earth) 100%);
}
.thermal::before, .thermal::after { content: ""; position: absolute; inset: 0; transition: opacity 800ms ease; }
.thermal::before {
  opacity: calc(1 - var(--t));
  background:
    radial-gradient(120% 70% at 80% 110%, rgba(255, 122, 24, 0.26), transparent 56%),
    radial-gradient(90% 60% at 88% 92%, rgba(255, 181, 71, 0.14), transparent 60%);
}
.thermal::after {
  opacity: var(--t);
  background:
    radial-gradient(130% 90% at 20% -8%, rgba(0, 166, 223, 0.2), transparent 58%),
    radial-gradient(80% 60% at 10% 6%, rgba(127, 230, 255, 0.1), transparent 60%);
}
.higgsfield-layer { z-index: 1; opacity: 0; overflow: hidden; transition: opacity 800ms ease; }
.higgsfield-layer.is-ready { opacity: 0.26; }
.higgsfield-layer video {
  width: 100%; height: 100%; object-fit: cover;
  filter: brightness(0.62) saturate(1.04) contrast(1.05);
}
.vignette {
  z-index: 3;
  background: radial-gradient(125% 125% at 44% 42%, transparent 54%, rgba(0, 0, 0, 0.62) 100%);
}

/* ── рельс глубины ──────────────────────────────────────── */
.rail { position: fixed; left: clamp(16px, 2.6vw, 42px); top: 0; bottom: 0; z-index: 11; width: 24px; pointer-events: none; }
.rail__line {
  position: absolute; top: 16%; bottom: 16%; left: 11px; width: 2px; border-radius: 2px;
  background: linear-gradient(180deg, var(--ember) 0%, var(--amber) 14%, var(--gazprom-blue) 40%, var(--cyan) 66%, var(--synapse) 100%);
  opacity: 0.46;
}
.rail__cap {
  position: absolute; left: 5px; font-family: var(--font-mono); font-weight: 500;
  font-size: 9px; letter-spacing: 0.24em; writing-mode: vertical-rl; text-orientation: mixed;
}
.rail__cap--top { top: 6%; color: var(--amber); }
.rail__cap--bottom { bottom: 6%; color: var(--synapse); }
.rail__marker {
  position: absolute; left: 6px; width: 12px; height: 12px; border-radius: 50%;
  background: var(--accent); top: 50%; transform: translateY(-50%);
  transition: top var(--d-slow) var(--ease-inout), background var(--d-slow) ease;
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 14%, transparent), 0 0 18px 3px color-mix(in srgb, var(--accent) 46%, transparent);
}
.rail__marker::after {
  content: ""; position: absolute; inset: 0; border-radius: 50%; background: inherit; opacity: 0.4;
  transition: top calc(var(--d-slow) + 130ms) var(--ease-inout);
}

/* ── каркас ─────────────────────────────────────────────── */
.deck { position: relative; z-index: 5; width: 100vw; height: 100vh; overflow: hidden; }
.topbar, .controls {
  position: fixed; left: clamp(54px, 6.5vw, 110px); right: clamp(18px, 4vw, 56px); z-index: 12;
  display: flex; align-items: center; justify-content: space-between;
}
.topbar { top: clamp(18px, 3vh, 36px); }
.brandmark { display: inline-flex; align-items: center; gap: 13px; }
.brandmark__logo { width: 118px; height: auto; object-fit: contain; opacity: 0.96; }
.brandmark__text { color: var(--steel); font-size: 12px; font-weight: 500; letter-spacing: 0.01em; }
.topbar__meta { display: inline-flex; align-items: center; gap: 12px; font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.1em; color: var(--steel); }
.topbar__meta #slide-label { color: var(--synapse); font-weight: 600; }
.topbar__divider { width: 24px; height: 1px; background: var(--rule); }

/* ── слайды: направленный вертикальный переход (future=низ, past=верх) ── */
.slide {
  position: absolute; inset: 0; z-index: 1; display: flex; align-items: center;
  padding: clamp(74px, 11vh, 128px) clamp(54px, 6.5vw, 110px) clamp(86px, 11vh, 122px);
  opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(48px);
  transition: opacity 320ms linear, transform var(--d-slow) var(--ease-inout), visibility 0s linear var(--d-slow);
  overflow-y: auto; scrollbar-width: none;
}
.slide::-webkit-scrollbar { display: none; }
.slide.slide--past { transform: translateY(-40px); }
.slide.active {
  z-index: 2; opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0);
  transition: opacity 320ms linear, transform var(--d-slow) var(--ease-inout), visibility 0s;
}

.slide__grid {
  width: 100%; max-width: 1280px; margin: 0 auto; display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(0, 0.96fr); gap: clamp(28px, 4vw, 70px); align-items: center;
}
.slide__grid--hero { grid-template-columns: minmax(0, 1.22fr) minmax(0, 0.78fr); }
.slide__grid--wide { grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); }

.copy { max-width: 60ch; }
.slide.active .copy > * { animation: childRise 400ms var(--ease-out) both; }
.slide.active .copy > *:nth-child(1) { animation-delay: 0.14s; }
.slide.active .copy > *:nth-child(2) { animation-delay: 0.21s; }
.slide.active .copy > *:nth-child(3) { animation-delay: 0.28s; }
.slide.active .copy > *:nth-child(4) { animation-delay: 0.35s; }
.slide.active .copy > *:nth-child(n+5) { animation-delay: 0.42s; }
@keyframes childRise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

/* ── типографика ────────────────────────────────────────── */
.overline {
  font-family: var(--font-mono); font-weight: 500; font-size: 11px; letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--muted);
}
.kicker {
  display: inline-flex; align-items: center; gap: 12px; margin: 0 0 24px;
  font-family: var(--font-body); font-weight: 600; font-size: 12px; letter-spacing: 0.22em;
  text-transform: uppercase; color: var(--accent);
}
.kicker::before { content: ""; width: 26px; height: 1px; background: linear-gradient(90deg, var(--accent), transparent); }

h1 {
  font-family: var(--font-display); font-weight: 600; font-size: clamp(38px, 5vw, 76px);
  line-height: 1.04; letter-spacing: -0.005em; margin: 0 0 26px; color: var(--ice);
}
h1 .nedra, h1 .mozgi { padding-bottom: 0.02em; border-bottom: 2px solid currentColor; }
h1 .nedra { color: var(--amber); }
h1 .mozgi { color: var(--synapse); }
h1 .arrow { color: var(--steel); font-weight: 400; margin: 0 0.16em; }

h2 {
  font-family: var(--font-head); font-weight: 600; font-size: clamp(26px, 2.9vw, 40px);
  line-height: 1.14; letter-spacing: -0.005em; margin: 0 0 20px; color: var(--ice);
}
.lead { font-size: clamp(15px, 1.18vw, 18px); line-height: 1.6; color: var(--steel); max-width: 54ch; margin: 0 0 28px; }
.lead b { color: var(--ice); font-weight: 600; }
.dek { font-size: 14px; line-height: 1.55; color: var(--muted); max-width: 52ch; margin: 18px 0 0; padding-top: 16px; border-top: 1px solid var(--rule); }

/* ── метрики hero: цифра-герой, без карточек ────────────── */
.metric-row { display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 0; max-width: 660px; }
.metric-row article { display: flex; flex-direction: column; padding: 0 26px; border-left: 1px solid var(--rule); }
.metric-row article:first-child { border-left: 0; padding-left: 0; }
.metric-row .overline { margin: 0 0 12px; }
.stat-num { font-family: var(--font-display); font-weight: 600; font-size: clamp(38px, 4.2vw, 58px); line-height: 0.96; letter-spacing: -0.01em; color: var(--ice); font-variant-numeric: tabular-nums lining-nums; }
.stat-num--xl { font-size: clamp(72px, 10vw, 132px); }
.stat-unit { margin-top: 8px; font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.04em; color: var(--muted); }

/* ── hero-stat (слайд факела) ───────────────────────────── */
.hero-stat { max-width: 380px; }
.hero-stat .overline { margin: 0 0 6px; display: block; }
.hero-stat__line { display: flex; align-items: baseline; gap: 14px; }
.hero-stat__line .stat-unit { font-size: 16px; color: var(--steel); }
.hero-stat__note { margin: 20px 0 0; padding-top: 18px; border-top: 1px solid var(--rule); color: var(--steel); font-size: 14.5px; line-height: 1.55; }
.hero-stat .stat-num--xl { color: var(--amber); }

/* ── стеклянная панель — единственный привилегированный экспонат на слайд ── */
.glass-panel {
  position: relative; border: 1px solid var(--rule); border-radius: 12px;
  background: var(--panel-strong); backdrop-filter: blur(14px); box-shadow: var(--shadow); overflow: hidden;
}
.panel-label { padding: 16px 20px 0; }
.terminal-panel { min-height: 320px; padding-bottom: 18px; }
.typewriter {
  font-family: var(--font-mono); font-size: 13px; line-height: 1.9; color: var(--synapse);
  white-space: pre-wrap; padding: 14px 20px 0; min-height: 230px;
}
.code-card pre { margin: 0; padding: 12px 20px 20px; overflow: hidden; }
.code-card code { font-family: var(--font-mono); font-size: 12.5px; line-height: 1.75; color: var(--ice); white-space: pre; display: block; }

/* ── реестр (заменяет карточные сетки) ──────────────────── */
.ledger { display: grid; grid-template-columns: 1fr 1fr; column-gap: 38px; }
.ledger--risk { grid-template-columns: 1fr 1fr; }
.ledger article {
  display: grid; grid-template-columns: 48px 1fr; grid-template-areas: "idx title" "idx desc";
  column-gap: 14px; padding: 15px 0; border-top: 1px solid var(--rule); align-content: start;
}
.ledger .lx { grid-area: idx; font-family: var(--font-display); font-weight: 700; font-size: 26px; line-height: 1; color: var(--muted); }
.ledger article > b { grid-area: title; color: var(--ice); font-size: 15px; font-weight: 600; }
.ledger article > p { grid-area: desc; margin: 4px 0 0; color: var(--steel); font-size: 13px; line-height: 1.45; }
.ledger__accent { padding-left: 14px; margin-left: -16px; border-left: 2px solid var(--accent); }
.ledger__accent .lx { color: var(--synapse); }

/* ── стек вычисления: реестр-процесс ────────────────────── */
.stack-diagram { display: grid; border-top: 1px solid var(--rule); }
.stack-layer {
  display: flex; justify-content: space-between; align-items: baseline; gap: 16px;
  padding: 15px 4px; border-bottom: 1px solid var(--rule); color: var(--steel); font-size: 15px;
}
.stack-layer span { font-weight: 500; }
.stack-layer i { font-family: var(--font-mono); font-style: normal; font-size: 11.5px; letter-spacing: 0.04em; color: var(--muted); }
.stack-layer.accent { padding-left: 14px; border-left: 3px solid var(--accent); color: var(--ice); background: linear-gradient(90deg, color-mix(in srgb, var(--accent) 9%, transparent), transparent); }
.stack-layer.accent span { font-weight: 600; }
.stack-layer.accent i { color: var(--synapse); }
.slide.active .stack-layer { animation: layerIn 460ms var(--ease-out) both; }
.slide.active .stack-layer:nth-last-child(1) { animation-delay: 0.16s; }
.slide.active .stack-layer:nth-last-child(2) { animation-delay: 0.23s; }
.slide.active .stack-layer:nth-last-child(3) { animation-delay: 0.30s; }
.slide.active .stack-layer:nth-last-child(4) { animation-delay: 0.37s; }
.slide.active .stack-layer:nth-last-child(5) { animation-delay: 0.44s; }
.slide.active .stack-layer:nth-last-child(6) { animation-delay: 0.51s; }
@keyframes layerIn { from { opacity: 0; clip-path: inset(0 100% 0 0); } to { opacity: 1; clip-path: inset(0 0 0 0); } }

/* ── уровни локаций: реестр с крупной буквой ────────────── */
.tier-board { display: grid; }
.tier { display: grid; grid-template-columns: 64px 1fr; gap: 18px; padding: 16px 0; border-top: 1px solid var(--rule); }
.tier-letter { font-family: var(--font-display); font-weight: 700; font-size: 46px; line-height: 0.9; }
.tier-a .tier-letter { color: var(--amber); }
.tier-b .tier-letter { color: var(--cyan); }
.tier-c .tier-letter { color: var(--gazprom-blue); }
.tier-d .tier-letter { color: var(--muted); }
.tier-body .overline { display: block; margin: 4px 0 10px; }
.tier-body p { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; margin: 0 0 6px; color: var(--ice); font-size: 14px; }
.tier-body p span { font-weight: 500; }
.tier-body p em { font-family: var(--font-mono); font-style: normal; font-size: 12px; color: var(--muted); font-variant-numeric: tabular-nums; text-align: right; }

/* ── формула газ→электр→ИТ: уравнение без рамки ─────────── */
.formula { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; margin: 4px 0 0; }
.formula .term { display: flex; flex-direction: column; }
.formula .term b { font-family: var(--font-display); font-weight: 600; font-size: clamp(26px, 2.6vw, 34px); color: var(--ice); line-height: 1; font-variant-numeric: tabular-nums; }
.formula .term span { font-family: var(--font-mono); font-size: 11px; color: var(--muted); margin-top: 6px; letter-spacing: 0.03em; }
.formula .term--accent b { color: var(--synapse); }
.formula i { font-family: var(--font-display); font-style: normal; font-size: 26px; color: var(--steel); }

/* ── сигнальный список ──────────────────────────────────── */
.signal-list { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 13px; }
.signal-list li { position: relative; padding-left: 24px; color: var(--steel); font-size: 15px; line-height: 1.5; }
.signal-list li::before { content: ""; position: absolute; left: 0; top: 9px; width: 7px; height: 7px; background: var(--accent); transform: rotate(45deg); }

/* ── настоящая таблица рынка ─────────────────────────────── */
.mini-table { border-collapse: collapse; width: 100%; max-width: 520px; margin: 4px 0 0; }
.mini-table th {
  font-family: var(--font-mono); font-weight: 500; font-size: 11px; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--muted); text-align: right; padding: 0 0 11px; border-bottom: 1px solid var(--rule-strong);
}
.mini-table th:first-child { text-align: left; }
.mini-table td { padding: 14px 0; border-bottom: 1px solid var(--rule); text-align: right; color: var(--steel); font-size: 14px; font-variant-numeric: tabular-nums; }
.mini-table td:first-child { text-align: left; }
.mini-table .mt-share { font-family: var(--font-display); font-weight: 700; font-size: 26px; color: var(--amber); }
.mini-table td b { font-family: var(--font-mono); font-weight: 600; font-size: 16px; color: var(--ice); }

/* ── SVG-графики ────────────────────────────────────────── */
.chart-card { padding-bottom: 16px; }
#energy-chart, #market-chart, #fiber-map { width: 100%; height: auto; display: block; padding: 12px 18px 4px; }

.ec-grid { stroke: rgba(127, 230, 255, 0.06); stroke-width: 1; }
.ec-base { stroke: var(--rule-strong); stroke-width: 1; }
.ec-axis { fill: var(--muted); font-family: var(--font-mono); font-size: 10px; }
.ec-bar { fill: var(--accent); fill-opacity: 0.82; transform-box: fill-box; transform-origin: bottom; }
.slide.active .ec-bar { animation: barGrow var(--d-slow) var(--ease-spring) both; }
.slide.active .ec-bar:nth-of-type(2) { animation-delay: 0.1s; }
.slide.active .ec-bar:nth-of-type(3) { animation-delay: 0.2s; }
@keyframes barGrow { from { transform: scaleY(0); } to { transform: scaleY(1); } }
.ec-val { fill: var(--ice); font-family: var(--font-mono); font-weight: 600; font-size: 26px; }
.ec-over { fill: var(--muted); font-family: var(--font-mono); font-size: 10px; }

.chart-grid { stroke: rgba(127, 230, 255, 0.05); stroke-width: 1; }
.chart-axis { stroke: var(--rule-strong); stroke-width: 1; }
.chart-axis-label { fill: var(--muted); font-family: var(--font-mono); font-size: 10px; }
.chart-ref { stroke: rgba(127, 230, 255, 0.32); stroke-width: 0.75; stroke-dasharray: 3 4; }
.chart-ref-label { fill: var(--steel); font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.04em; }
.chart-line { fill: none; stroke: var(--ice); stroke-width: 2; stroke-dasharray: var(--len); stroke-dashoffset: var(--len); }
.slide.active .chart-line { animation: trace 1100ms var(--ease-out) forwards; }
.chart-mark { fill: var(--amber); }
.chart-val { fill: var(--ice); font-family: var(--font-mono); font-size: 11px; }
.slide.active .chart-mark, .slide.active .chart-val { animation: fadeIn 500ms var(--ease-out) both; animation-delay: 0.7s; }

/* ── настоящая карта ВОЛС ───────────────────────────────── */
.map-land { fill: rgba(0, 91, 171, 0.07); stroke: rgba(127, 230, 255, 0.24); stroke-width: 1.1; }
.map-land-tex { fill: url(#tundra); stroke: none; }
.map-gulf { fill: var(--navy-deep); stroke: rgba(127, 230, 255, 0.16); stroke-width: 0.75; }
.map-river { fill: none; stroke: rgba(0, 166, 223, 0.32); stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.map-grid { stroke: rgba(127, 230, 255, 0.06); stroke-width: 1; }
.map-grat { fill: var(--steel); opacity: 0.34; font-family: var(--font-mono); font-size: 9px; }
.map-context { fill: var(--steel); opacity: 0.5; }
.map-context-label { fill: var(--steel); opacity: 0.5; font-family: var(--font-mono); font-size: 9.5px; }
.fiber-line { fill: none; stroke: var(--cyan); stroke-width: 1.6; opacity: 0.85; stroke-dasharray: var(--len); stroke-dashoffset: var(--len); }
.fiber-line.alt { stroke: var(--amber); stroke-width: 1.1; opacity: 0.6; stroke-dasharray: 3 3; }
.slide.active .fiber-line { animation: trace 1000ms var(--ease-out) forwards; }
.slide.active .fiber-line:nth-of-type(2n) { animation-delay: 0.12s; }
.fiber-km { fill: var(--steel); font-family: var(--font-mono); font-size: 9px; opacity: 0.66; }
.map-hub { fill: var(--cyan); stroke: var(--navy-deep); stroke-width: 1; }
.site-ring { fill: none; stroke: var(--cyan); stroke-width: 1.2; opacity: 0.7; }
.site-cross { stroke: var(--cyan); stroke-width: 1; opacity: 0.55; }
.site-dot { fill: var(--cyan); }
.site.hot .site-ring, .site.hot .site-cross { stroke: var(--amber); }
.site.hot .site-dot { fill: var(--amber); }
.site.hot .site-ring { transform-box: fill-box; transform-origin: center; animation: mapPulse 2.6s var(--ease-inout) infinite; }
.site-leader { stroke: var(--rule-strong); stroke-width: 1; }
.site-name { fill: var(--ice); font-family: var(--font-body); font-weight: 600; font-size: 12px; }
.site-mw { fill: var(--muted); font-family: var(--font-mono); font-size: 10px; }
.scale-bar { stroke: var(--steel); stroke-width: 1; opacity: 0.6; }
.north-tip { fill: var(--steel); opacity: 0.6; }
@keyframes mapPulse { 0%, 100% { transform: scale(1); opacity: 0.7; } 50% { transform: scale(1.22); opacity: 0.35; } }

/* ── «окно» из трёх дефицитов (слайд 10) ────────────────── */
.nc-window { fill: color-mix(in srgb, var(--accent) 11%, transparent); stroke: color-mix(in srgb, var(--accent) 42%, transparent); stroke-width: 0.75; stroke-dasharray: 3 4; }
.slide.active .nc-window { animation: fadeIn 600ms var(--ease-out) 0.2s both; }
.nc-now { fill: var(--synapse); font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.12em; }
.nc-axis { stroke: var(--rule-strong); stroke-width: 1; }
.nc-axis-label { fill: var(--muted); font-family: var(--font-mono); font-size: 10px; }
.nc-label { fill: var(--steel); font-family: var(--font-mono); font-size: 10.5px; }
.nc-line { fill: none !important; stroke-width: 2; stroke-dasharray: var(--len); stroke-dashoffset: var(--len); }
.slide.active .nc-line { animation: trace 1100ms var(--ease-out) forwards; }
.slide.active .nc-line.nc-power { animation-delay: 0.12s; }
.slide.active .nc-line.nc-llm { animation-delay: 0.24s; }
.nc-gas { stroke: var(--amber); fill: var(--amber); }
.nc-power { stroke: var(--cyan); fill: var(--cyan); }
.nc-llm { stroke: var(--synapse); fill: var(--synapse); }

@keyframes trace { to { stroke-dashoffset: 0; } }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }

/* ── лестница дистилляции (слайд 7) ─────────────────────── */
.ladder-card { padding-bottom: 16px; }
.ladder { position: relative; display: grid; padding: 14px 20px 0 44px; }
.ladder::before {
  content: ""; position: absolute; left: 22px; top: 20px; bottom: 4px; width: 2px;
  background: linear-gradient(180deg, var(--amber), var(--cyan) 56%, var(--synapse));
  opacity: 0.5; border-radius: 2px;
}
.ladder .rung { display: grid; grid-template-columns: 62px 1fr; align-items: center; gap: 14px; padding: 12px 0; border-top: 1px solid var(--rule); }
.ladder .rung:first-child { border-top: 0; }
.rung__tier { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.13em; text-transform: uppercase; color: var(--muted); }
.ladder .rung b { display: block; color: var(--ice); font-size: 14.5px; font-weight: 600; }
.ladder .rung em { font-family: var(--font-mono); font-style: normal; font-size: 10.5px; color: var(--muted); letter-spacing: 0.02em; }
.rung--science { background: linear-gradient(90deg, color-mix(in srgb, var(--amber) 13%, transparent), transparent); }
.rung--science .rung__tier { color: var(--amber); }
.rung--free { opacity: 0.72; }
.rung--free .rung__tier { color: var(--synapse); }
.ladder__note { margin: 14px 20px 0; padding-top: 12px; border-top: 1px solid var(--rule); font-size: 12px; color: var(--steel); line-height: 1.5; }
.slide.active .ladder .rung { animation: childRise 360ms var(--ease-out) both; }
.slide.active .ladder .rung:nth-child(1) { animation-delay: 0.14s; }
.slide.active .ladder .rung:nth-child(2) { animation-delay: 0.21s; }
.slide.active .ladder .rung:nth-child(3) { animation-delay: 0.28s; }
.slide.active .ladder .rung:nth-child(4) { animation-delay: 0.35s; }
.slide.active .ladder .rung:nth-child(5) { animation-delay: 0.42s; }

/* ── национальная карта ВОЛС (слайд 6) ──────────────────── */
.nm-land { fill: rgba(0, 91, 171, 0.05); stroke: rgba(127, 230, 255, 0.16); stroke-width: 1; }
.nm-route { fill: none; stroke: var(--cyan); stroke-width: 1.6; opacity: 0.82; stroke-dasharray: var(--len); stroke-dashoffset: var(--len); }
.slide.active .nm-route { animation: trace 1200ms var(--ease-out) forwards; }
.nm-route.alt { stroke: var(--amber); stroke-width: 1.1; opacity: 0.5; stroke-dasharray: 4 4; stroke-dashoffset: 0; }
.slide.active .nm-route.alt { animation: none; }
.nm-lastmile { stroke: var(--amber); stroke-width: 1; opacity: 0.5; stroke-dasharray: 2 3; }
.nm-gw { fill: var(--cyan); stroke: var(--navy-deep); stroke-width: 1; }
.nm-gw-label { fill: var(--steel); font-family: var(--font-mono); font-size: 10px; }
.nm-site { fill: var(--amber); }
.nm-cluster { fill: var(--amber); opacity: 0.78; font-family: var(--font-mono); font-size: 10px; }
.nm-city { fill: var(--synapse); stroke: var(--navy-deep); stroke-width: 1; }
.nm-city.major { fill: var(--ice); }
.nm-city-label { fill: var(--ice); font-family: var(--font-body); font-weight: 600; font-size: 11px; }
.nm-note { fill: var(--muted); font-family: var(--font-mono); font-size: 9px; opacity: 0.7; }

/* ── углубление по темам (горизонтальный слой) ──────────── */
.drill-cue {
  position: fixed; left: clamp(54px, 6.5vw, 110px); bottom: clamp(48px, 6.4vh, 72px); z-index: 13;
  font-family: var(--font-body); font-weight: 600; font-size: 12px; letter-spacing: 0.06em;
  color: var(--accent); background: none; border: 0; cursor: pointer; padding: 8px 0;
  transition: transform var(--d-fast) ease;
}
.drill-cue:hover { transform: translateX(3px); }

/* ── сноска: расшифровка единиц + дисклеймер по оценкам ──── */
.slide-note {
  position: fixed; z-index: 12; margin: 0;
  left: clamp(54px, 6.5vw, 110px); right: clamp(150px, 19vw, 280px); bottom: 0;
  padding: 16px 0 clamp(14px, 2.2vh, 22px); border-top: 1px solid var(--rule); max-width: 92ch;
  font-family: var(--font-mono); font-size: 10px; line-height: 1.5; letter-spacing: 0.01em; color: var(--muted);
  background: linear-gradient(to top, var(--navy-deep) 0%, var(--navy-deep) 86%, transparent 100%);
}
.drill {
  position: fixed; inset: 0; z-index: 40; opacity: 0; visibility: hidden; pointer-events: none;
  background: rgba(2, 8, 18, 0.62); backdrop-filter: blur(8px);
  transition: opacity 360ms var(--ease-out), visibility 0s linear 360ms;
}
.drill.open { opacity: 1; visibility: visible; pointer-events: auto; transition: opacity 360ms var(--ease-out); }
.drill__shell {
  position: absolute; right: 0; top: 0; bottom: 0; width: min(1180px, 92vw);
  background: linear-gradient(180deg, rgba(6, 20, 40, 0.97), rgba(4, 14, 30, 0.98));
  border-left: 1px solid var(--rule-strong); box-shadow: -40px 0 120px rgba(0, 6, 20, 0.6);
  display: flex; flex-direction: column; padding: clamp(40px, 6vh, 70px) clamp(40px, 5vw, 88px);
  transform: translateX(48px); transition: transform 420ms var(--ease-out);
}
.drill.open .drill__shell { transform: translateX(0); }
.drill__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 24px; }
.drill__steps { display: flex; gap: 6px; flex: 1; justify-content: center; }
.drill__steps span { width: 22px; height: 3px; background: var(--rule-strong); border-radius: 2px; }
.drill__steps span.on { background: var(--accent); }
.drill__close {
  font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.06em; color: var(--steel);
  background: none; border: 1px solid var(--rule); border-radius: 6px; padding: 8px 12px; cursor: pointer;
  transition: border-color var(--d-fast) ease, color var(--d-fast) ease;
}
.drill__close:hover { border-color: var(--accent); color: var(--ice); }
.drill__body { flex: 1; overflow-y: auto; scrollbar-width: thin; }
.drill__body .kicker { margin-bottom: 16px; }
.drill__body h2 { font-size: clamp(24px, 2.6vw, 36px); margin-bottom: 10px; }
.drill-dek { color: var(--steel); font-size: 15px; line-height: 1.5; margin: 0 0 26px; max-width: 72ch; }
.drill-grid { display: grid; grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr); gap: clamp(26px, 4vw, 58px); align-items: start; }
.drill-grid .signal-list { gap: 15px; }
.drill-grid .signal-list li { font-size: 14.5px; }
.drill-exhibit { min-width: 0; }
.drill-exhibit svg { width: 100%; height: auto; }
.drill-img { width: 100%; height: auto; display: block; border-radius: 10px; border: 1px solid var(--rule); }
.drill-sources { margin: 26px 0 0; padding-top: 16px; border-top: 1px solid var(--rule); font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.04em; color: var(--muted); }
.drill-sources b { color: var(--steel); font-weight: 600; }

.exhibit-table { border-collapse: collapse; width: 100%; }
.exhibit-table th {
  font-family: var(--font-mono); font-weight: 500; font-size: 10.5px; letter-spacing: 0.07em;
  text-transform: uppercase; color: var(--muted); text-align: right; padding: 0 10px 10px;
  border-bottom: 1px solid var(--rule-strong); white-space: nowrap;
}
.exhibit-table th:first-child { text-align: left; padding-left: 0; }
.exhibit-table td { padding: 11px 10px; border-bottom: 1px solid var(--rule); text-align: right; color: var(--steel); font-size: 13px; font-variant-numeric: tabular-nums; }
.exhibit-table td:first-child { padding-left: 0; }
.exhibit-table td.lead-col { text-align: left; color: var(--ice); font-weight: 500; }

/* ── обзор цепочки (AI-схема) ───────────────────────────── */
.chain-wrap { width: 100%; max-width: 1180px; margin: 0 auto; display: flex; flex-direction: column; align-items: center; text-align: center; }
.chain-h { font-size: clamp(22px, 2.9vw, 40px); line-height: 1.12; margin: 4px 0 16px; max-width: 24ch; }
.chain-img { display: block; width: auto; height: auto; max-width: min(1000px, 100%); max-height: 40vh; border-radius: 12px; border: 1px solid var(--rule); box-shadow: var(--shadow); }
.chain-cap { margin: 16px auto 0; max-width: 72ch; color: var(--steel); font-size: 14px; line-height: 1.5; }
.slide.active .chain-wrap > * { animation: childRise 460ms var(--ease-out) both; }
.slide.active .chain-wrap > *:nth-child(2) { animation-delay: 0.1s; }
.slide.active .chain-wrap > *:nth-child(3) { animation-delay: 0.2s; }
.slide.active .chain-wrap > *:nth-child(4) { animation-delay: 0.3s; }

/* ── финансы: IRR база → цель ───────────────────────────── */
.metric-row--fin article:nth-child(1) .stat-num, .metric-row--fin article:nth-child(2) .stat-num { color: #43d39a; }
.fin-grid { stroke: rgba(127, 230, 255, 0.06); stroke-width: 1; }
.fin-axis { fill: var(--muted); font-family: var(--font-mono); font-size: 10px; }
.fin-zero { stroke: var(--rule-strong); stroke-width: 1.2; }
.fin-wacc { stroke: rgba(127, 230, 255, 0.32); stroke-dasharray: 3 4; stroke-width: 0.75; }
.fin-wacc-label { fill: var(--steel); font-family: var(--font-mono); font-size: 9px; }
.fin-name { fill: var(--steel); font-family: var(--font-body); font-size: 12px; }
.fin-val { font-family: var(--font-mono); font-size: 13px; font-weight: 600; }
.fin-bar { transform-box: fill-box; }
.fin-bar.fin-bad, .fin-val.fin-bad { fill: var(--risk); }
.fin-bar.fin-mid, .fin-val.fin-mid { fill: var(--steel); }
.fin-bar.fin-good, .fin-val.fin-good { fill: #43d39a; }
.fin-bar.fin-good, .fin-bar.fin-mid { transform-origin: left; }
.fin-bar.fin-bad { transform-origin: right; }
.slide.active .fin-bar { animation: finGrow 700ms var(--ease-out) both; }
.slide.active .fin-bar:nth-of-type(2) { animation-delay: 0.1s; }
.slide.active .fin-bar:nth-of-type(3) { animation-delay: 0.2s; }
@keyframes finGrow { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.fin-base-line { stroke: var(--amber); stroke-width: 1; stroke-dasharray: 3 3; opacity: 0.7; }
.fin-base-label { fill: var(--amber); font-family: var(--font-mono); font-size: 9px; opacity: 0.85; }
.tor-bar { fill: rgba(158, 182, 199, 0.34); transform-box: fill-box; transform-origin: left; }
.tor-pos { fill: #43d39a; opacity: 0.9; transform-box: fill-box; transform-origin: left; }
.tor-name { fill: var(--steel); font-family: var(--font-body); font-size: 11px; }
.slide.active .tor-bar, .slide.active .tor-pos { animation: finGrow 620ms var(--ease-out) both; }

/* ── таблица-экспонат на слайде (offtake / hardware) ────── */
.seg-card { align-self: start; min-width: 0; }
.seg-card .panel-label { padding: 0 0 14px; }
.exhibit-table.seg-table { width: 100%; }
.exhibit-table.seg-table th, .exhibit-table.seg-table td { text-align: left; padding: 11px 16px 11px 0; vertical-align: top; }
.exhibit-table.seg-table th { font-size: 10px; }
.exhibit-table.seg-table td { font-size: 12.5px; line-height: 1.4; }
.exhibit-table.seg-table td.lead-col { color: var(--ice); font-weight: 600; }

/* ── управление ─────────────────────────────────────────── */
.controls { bottom: clamp(18px, 3vh, 32px); justify-content: flex-end; gap: 12px; }
.controls button {
  width: 44px; height: 44px; border-radius: 8px; border: 1px solid var(--rule);
  background: var(--panel-strong); color: var(--ice); font-size: 17px; cursor: pointer;
  transition: border-color var(--d-fast) ease, transform var(--d-fast) ease;
}
.controls button:hover:not(:disabled) { border-color: var(--accent); transform: translateY(-2px); }
.controls button:disabled { opacity: 0.32; cursor: not-allowed; }
.controls button:focus-visible { outline: 2px solid var(--synapse); outline-offset: 2px; }
.progress { position: fixed; right: clamp(18px, 4vw, 56px); top: 50%; transform: translateY(-50%); width: 2px; height: 116px; background: var(--rule); overflow: hidden; z-index: 12; }
.progress span { display: block; width: 100%; background: linear-gradient(180deg, var(--synapse), var(--accent)); transition: height var(--d-slow) var(--ease-out); }

/* ── адаптив ────────────────────────────────────────────── */
@media (max-width: 1024px) {
  .slide__grid, .slide__grid--hero, .slide__grid--wide { grid-template-columns: 1fr; gap: 24px; }
  .ledger, .ledger--risk { grid-template-columns: 1fr; column-gap: 0; }
  .drill-grid { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .rail, .brandmark__text, .progress { display: none; }
  .slide { padding: 88px 20px 92px; align-items: flex-start; }
  .topbar, .controls { left: 20px; right: 20px; }
  .metric-row { grid-template-columns: 1fr; gap: 18px; }
  .metric-row article { border-left: 0; padding: 0; padding-top: 14px; border-top: 1px solid var(--rule); }
  .metric-row article:first-child { padding-top: 0; border-top: 0; }
  .drill__shell { width: 100vw; padding: 60px 22px; }
  .drill-cue { left: 20px; }
  .slide-note { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .slide { transition: opacity 200ms ease !important; transform: none !important; }
  .slide.slide--past, .slide.slide--future { transform: none !important; }
  *, *::before, *::after { animation: none !important; }
  .chart-line, .fiber-line, .nc-line, .nm-route { stroke-dashoffset: 0 !important; }
  .ec-bar { transform: scaleY(1) !important; }
  .fin-bar, .tor-bar, .tor-pos { transform: scaleX(1) !important; }
  .drill__shell { transform: none !important; }
  .rail__marker { transition: top var(--d-slow) var(--ease-inout) !important; }
}
