/* ============================================================
   Claude Campus в Nuanu — стратегическое обоснование
   Editorial system: warm paper, ink, clay, deep Nuanu green
   ============================================================ */

:root {
  --paper: #F2EFE6;
  --paper-soft: #EAE6D9;
  --ink: #1F1E1B;
  --ink-soft: #57544C;
  --muted: #8A8576;
  --clay: #C2552F;
  --clay-soft: #D78A6B;
  --green: #1D2B29;
  --green-soft: #41544F;
  --hairline: #D8D2C2;
  --hairline-dark: rgba(242, 239, 230, 0.22);
  --serif: "Source Serif 4", "Georgia", serif;
  --sans: "Golos Text", "Helvetica Neue", sans-serif;
  --mono: "JetBrains Mono", "SF Mono", monospace;
}

deck-stage:not(:defined) { visibility: hidden; }

deck-stage section {
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  box-sizing: border-box;
  padding: 60px 100px 44px;
  display: flex;
  flex-direction: column;
}
deck-stage section * { box-sizing: border-box; }

/* ---------- shared chrome ---------- */
.kicker-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 32px;
  border-bottom: 1px solid var(--hairline);
  padding-bottom: 18px;
  margin-bottom: 34px;
}
.kicker {
  font-family: var(--mono);
  font-size: 22px;
  font-weight: 500;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--ink);
  display: flex;
  align-items: baseline;
  gap: 22px;
}
.kicker .num { color: var(--clay); }
.kicker-right {
  font-family: var(--mono);
  font-size: 18px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--muted);
}

.headline {
  font-family: var(--serif);
  font-weight: 600;
  font-size: 54px;
  line-height: 1.12;
  letter-spacing: -0.01em;
  margin: 0 0 20px;
  max-width: 1480px;
  text-wrap: balance;
}
.headline em { font-style: italic; color: var(--clay); }

.lede {
  font-size: 26px;
  line-height: 1.48;
  color: var(--ink-soft);
  max-width: 1280px;
  margin: 0 0 30px;
  text-wrap: pretty;
}

.footer {
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px solid var(--hairline);
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--mono);
  font-size: 16px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
}

.sources {
  font-family: var(--mono);
  font-size: 17px;
  line-height: 1.55;
  color: var(--muted);
  max-width: 1700px;
  margin: 20px 0 0;
}

.illo-tag {
  font-family: var(--mono);
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--clay);
  margin: 0 0 20px;
}

/* ---------- stats ---------- */
.stat-band { display: grid; grid-template-columns: repeat(4, 1fr); }
.stat-band .stat {
  padding: 28px 40px 6px 0;
  border-top: 3px solid var(--ink);
}
.stat-band .stat + .stat { margin-left: 40px; }
.stat .v {
  font-family: var(--serif);
  font-weight: 600;
  font-size: 70px;
  line-height: 1;
  letter-spacing: -0.02em;
  margin: 0 0 14px;
}
.stat .c {
  font-size: 23px;
  line-height: 1.42;
  color: var(--ink-soft);
  margin: 0;
}

/* exec slide compact */
.s-exec .exec-grid { margin-bottom: 36px; }
.s-exec .exec-thesis { font-size: 38px; }
.s-exec .exec-body { font-size: 24px; }
.s-exec .stat .v { font-size: 60px; margin-bottom: 12px; }
.s-exec .stat .v span { font-size: 34px !important; }
.s-exec .stat { padding: 24px 32px 4px 0; }
.s-exec .stat .c { font-size: 21px; }

/* ---------- bars ---------- */
.bars { display: flex; flex-direction: column; gap: 22px; }
.bar-row { display: grid; grid-template-columns: 360px 1fr; align-items: center; gap: 34px; }
.bar-row .bl { font-size: 24px; line-height: 1.3; color: var(--ink); }
.bar-row .bl small { display: block; font-size: 20px; color: var(--muted); }
.bar-track { display: flex; align-items: center; gap: 20px; }
.bar {
  height: 40px;
  background: var(--green);
  border-radius: 0;
  min-width: 8px;
}
.bar.clay { background: var(--clay); }
.bar.soft { background: var(--paper-soft); border: 1px solid var(--hairline); }
.bar-val {
  font-family: var(--mono);
  font-size: 26px;
  font-weight: 500;
  white-space: nowrap;
}

/* ---------- tables ---------- */
table.dt { width: 100%; border-collapse: collapse; }
table.dt th {
  font-family: var(--mono);
  font-size: 17px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
  text-align: left;
  padding: 0 28px 10px 0;
  border-bottom: 2px solid var(--ink);
}
table.dt td {
  font-size: 23px;
  line-height: 1.32;
  padding: 12px 28px 12px 0;
  border-bottom: 1px solid var(--hairline);
  vertical-align: top;
}
table.dt td:first-child { font-weight: 600; }
table.dt td.num { font-family: var(--mono); font-size: 22px; white-space: nowrap; }
table.dt tr.hl td {
  background: var(--green);
  color: var(--paper);
  font-weight: 500;
}
table.dt tr.hl td:first-child { padding-left: 20px; font-weight: 600; }
table.dt tr.total td {
  border-top: 2px solid var(--ink);
  border-bottom: 2px solid var(--ink);
  font-weight: 600;
}

/* ---------- callout ---------- */
.callout {
  display: grid;
  grid-template-columns: 420px 1fr;
  gap: 48px;
  background: var(--paper-soft);
  padding: 30px 40px;
  margin-top: 28px;
}
.callout .ct {
  font-family: var(--mono);
  font-size: 21px;
  font-weight: 500;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  line-height: 1.6;
  color: var(--clay);
}
.callout .cb { font-size: 24px; line-height: 1.48; color: var(--ink); margin: 0; text-wrap: pretty; }

/* ---------- title slide (dark, animated) ---------- */
.s-title {
  padding: 64px 100px 56px;
  background: #15201E;
  color: var(--paper);
}
.rain-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  pointer-events: none;
}
.s-title > *:not(.rain-canvas), .s-dark > *:not(.rain-canvas) { position: relative; z-index: 1; }
.confbar {
  font-family: var(--mono);
  font-size: 19px;
  font-weight: 500;
  letter-spacing: 0.42em;
  text-transform: uppercase;
  color: var(--clay-soft);
  border-bottom: 1px solid var(--hairline-dark);
  padding-bottom: 26px;
  display: flex;
  justify-content: space-between;
}
.confbar .dim { color: rgba(242, 239, 230, 0.45); letter-spacing: 0.3em; }
.title-main {
  font-family: var(--serif);
  font-weight: 600;
  font-size: 142px;
  line-height: 1.04;
  letter-spacing: -0.02em;
  margin: 84px 0 44px;
  color: var(--paper);
}
.title-main .at { color: var(--clay-soft); font-style: italic; font-weight: 400; }
.title-sub {
  font-size: 32px;
  line-height: 1.45;
  color: rgba(242, 239, 230, 0.74);
  max-width: 1180px;
  margin: 0;
  text-wrap: pretty;
}
.title-meta {
  margin-top: auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 48px;
  border-top: 1px solid var(--hairline-dark);
  padding-top: 30px;
}
.title-meta .k {
  font-family: var(--mono);
  font-size: 16px;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: rgba(242, 239, 230, 0.45);
  margin: 0 0 10px;
}
.title-meta .v { font-size: 24px; font-weight: 500; margin: 0; color: var(--paper); }
.logo-row {
  display: flex;
  align-items: center;
  gap: 52px;
  margin: 60px 0 0;
}
.logo-row img { display: block; opacity: 0.92; }
.logo-row .sep { width: 1px; height: 44px; background: var(--hairline-dark); }
.proed-chip {
  background: rgba(242, 239, 230, 0.93);
  padding: 10px 18px;
  border-radius: 6px;
}
.proed-chip img { display: block; }

/* ---------- exec summary ---------- */
.exec-grid { display: grid; grid-template-columns: 560px 1fr; gap: 80px; margin-bottom: 56px; }
.exec-label {
  font-family: var(--mono);
  font-size: 20px;
  font-weight: 500;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--clay);
}
.exec-thesis {
  font-family: var(--serif);
  font-size: 44px;
  font-weight: 600;
  line-height: 1.28;
  margin: 0;
  text-wrap: pretty;
}
.exec-body { font-size: 26px; line-height: 1.56; color: var(--ink-soft); margin: 0; text-wrap: pretty; }

/* ---------- synergy / plan blocks ---------- */
.block-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 80px; }
.block {
  padding: 34px 0 30px;
  border-top: 1px solid var(--hairline);
}
.block.first-row { border-top: 3px solid var(--ink); }
.block h3 {
  font-family: var(--serif);
  font-size: 32px;
  font-weight: 600;
  margin: 0 0 14px;
}
.block p { font-size: 24px; line-height: 1.5; color: var(--ink-soft); margin: 0; text-wrap: pretty; }
.block .bn {
  font-family: var(--mono);
  font-size: 22px;
  color: var(--clay);
  font-weight: 500;
  margin-right: 14px;
}

/* steps */
.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 64px; }
.step { border-top: 3px solid var(--ink); padding-top: 30px; }
.step .sn {
  font-family: var(--serif);
  font-style: italic;
  font-size: 64px;
  line-height: 1;
  color: var(--clay);
  display: block;
  margin-bottom: 22px;
}
.step h3 { font-family: var(--serif); font-size: 31px; font-weight: 600; margin: 0 0 14px; line-height: 1.25; }
.step p { font-size: 23px; line-height: 1.5; color: var(--ink-soft); margin: 0; text-wrap: pretty; }

/* ---------- quadrant map ---------- */
.quad-wrap { display: grid; grid-template-columns: 1fr 480px; gap: 72px; flex: 1; min-height: 0; }
.quad {
  position: relative;
  border-left: 2px solid var(--ink);
  border-bottom: 2px solid var(--ink);
  background:
    linear-gradient(to right, transparent calc(50% - 1px), var(--hairline) calc(50% - 1px), var(--hairline) calc(50% + 0px), transparent calc(50% + 0px)),
    linear-gradient(to bottom, transparent calc(50% - 1px), var(--hairline) calc(50% - 1px), var(--hairline) calc(50% + 0px), transparent calc(50% + 0px));
}
.quad .free-zone {
  position: absolute;
  right: 0; top: 0;
  width: 50%; height: 50%;
  background: rgba(194, 85, 47, 0.07);
  border: 2px dashed var(--clay-soft);
}
.quad .dot {
  position: absolute;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  text-align: center;
}
.quad .dot i {
  width: 18px; height: 18px;
  border-radius: 50%;
  background: var(--green);
  display: block;
}
.quad .dot span { font-size: 21px; line-height: 1.3; color: var(--ink); max-width: 240px; }
.quad .dot.us i { width: 26px; height: 26px; background: var(--clay); outline: 8px solid rgba(194, 85, 47, 0.18); }
.quad .dot.us span { font-weight: 600; font-size: 23px; }
.axis-x, .axis-y {
  font-family: var(--mono);
  font-size: 18px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
}
.axis-x { text-align: right; margin-top: 14px; }
.axis-y { writing-mode: vertical-rl; transform: rotate(180deg); margin-right: 14px; }
.quad-note { display: flex; flex-direction: column; gap: 28px; }
.quad-note p { font-size: 24px; line-height: 1.52; color: var(--ink-soft); margin: 0; text-wrap: pretty; }
.free-tag {
  font-family: var(--mono);
  position: absolute;
  top: 24px; right: 24px;
  font-size: 19px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--clay);
}

/* ---------- dark closing ---------- */
.s-dark { background: #15201E; color: var(--paper); }
.s-dark .kicker-row { border-color: var(--hairline-dark); }
.s-dark .kicker { color: var(--paper); }
.s-dark .kicker .num { color: var(--clay-soft); }
.s-dark .kicker-right { color: rgba(242, 239, 230, 0.55); }
.s-dark .footer { border-color: var(--hairline-dark); color: rgba(242, 239, 230, 0.55); }
.close-thesis {
  font-family: var(--serif);
  font-weight: 600;
  font-size: 72px;
  line-height: 1.18;
  max-width: 1560px;
  margin: 70px 0 0;
  text-wrap: balance;
}
.close-thesis em { color: var(--clay-soft); font-style: italic; }
.close-sub { font-size: 30px; line-height: 1.5; color: rgba(242, 239, 230, 0.78); max-width: 1280px; margin: 40px 0 0; text-wrap: pretty; }
.close-sig { margin-top: auto; display: flex; justify-content: space-between; align-items: flex-end; }
.close-sig .who .n { font-family: var(--serif); font-size: 34px; font-weight: 600; margin: 0 0 10px; }
.close-sig .who .d { font-family: var(--mono); font-size: 19px; letter-spacing: 0.12em; color: rgba(242, 239, 230, 0.65); margin: 0; }
.close-logos { display: flex; align-items: center; gap: 44px; }
.close-logos img { display: block; opacity: 0.92; }
.close-logos .sep { width: 1px; height: 40px; background: var(--hairline-dark); }

/* ---------- funnel ---------- */
.funnel { display: flex; flex-direction: column; gap: 16px; }
.fun-row { display: grid; grid-template-columns: 460px 1fr 170px; align-items: center; gap: 30px; }
.fun-row .fl { font-size: 24px; line-height: 1.3; }
.fun-row .ft { height: 42px; display: flex; align-items: center; }
.fun-row .fb { height: 100%; background: var(--green); }
.fun-row:nth-child(2) .fb { background: var(--green-soft); }
.fun-row:nth-child(3) .fb { background: var(--clay); }
.fun-row:nth-child(4) .fb { background: var(--clay-soft); }
.fun-row:nth-child(5) .fb { background: var(--muted); }
.fun-row .fv { font-family: var(--mono); font-size: 26px; font-weight: 500; text-align: left; white-space: nowrap; }

/* scramble duds */
.dud { color: var(--clay-soft); opacity: 0.65; }

