/* vokindreb.ru — база от 01.11.2026.
   Чёрный фон, красная шапка, синий подвал, мягкие угловые свечения.
   Шрифт — универсальный системный (Segoe UI / Helvetica / Arial). */

:root {
  --band: clamp(108px, 7.8vw, 152px);
  --edge: 8px;                          /* отступ линии от кромки */
  --stripe-h: clamp(34px, 2.6vw, 46px); /* полоса между линиями */
  --pad: clamp(20px, 2.1vw, 34px);

  --red: #c00;
  --blue: #00c;

  --text: #b6b6b6;
  --text-hi: #f0f0f0;
  --dim: #8c8c8c;
  --rule: #242424;

  --ui: "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --sans: "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;

  --mark-red: #d13333;
  --mark-blue: #3f63d1;

  --mark: clamp(21px, 2.05vw, 34px);
  --menu: clamp(11px, .85vw, 13.5px);
  --util: clamp(10.5px, .78vw, 12px);
  --content: 1000px;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: #000;
  color: var(--text);
  font: 400 15.5px/1.72 var(--sans);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  -webkit-font-smoothing: antialiased;
}

a { color: #cfcfcf; text-decoration: none; }
a:hover { color: #fff; }

::selection { background: var(--red); color: #fff; }
:focus-visible { outline: 1px solid #4a7dff; outline-offset: 2px; }

/* ---------------- шапка ---------------- */
.top {
  position: relative;
  z-index: 4;
  flex: none;
  height: var(--band);
  background: linear-gradient(180deg, #470000 0%, #380000 58%, #2e0000 100%);
}

.stripe { position: absolute; left: 0; right: 0; height: var(--stripe-h); z-index: 1; }
.top .stripe { bottom: var(--edge); background: rgba(0, 0, 0, .34); }
.bottom .stripe { top: var(--edge); background: rgba(0, 0, 0, .38); }

.line { position: absolute; left: 0; right: 0; height: 1px; z-index: 2; }
.top .line.l1 { bottom: calc(var(--edge) + var(--stripe-h)); background: var(--red); }
.top .line.l2 { bottom: var(--edge); background: var(--red); }
.bottom .line.l1 { top: calc(var(--edge) + var(--stripe-h)); background: var(--blue); }
.bottom .line.l2 { top: var(--edge); background: var(--blue); }

/* ---------------- надпись ---------------- */
.mark {
  position: absolute;
  z-index: 5;
  display: flex;
  align-items: center;
  font: 400 var(--mark)/1 var(--ui);
  letter-spacing: .21em;
  text-transform: lowercase;
  color: var(--mark-red);
  user-select: none;
  white-space: nowrap;
}
.mark, .mark:hover, .mark:focus { color: var(--mark-red); text-decoration: none; }

.top .mark {
  left: var(--pad);
  right: var(--pad);
  top: 0;
  bottom: calc(var(--edge) + var(--stripe-h) + 1px);
}
.bottom .mark {
  right: var(--pad);
  left: var(--pad);
  justify-content: flex-end;
  top: calc(var(--edge) + var(--stripe-h) + 1px);
  bottom: 0;
  color: var(--mark-blue);
}
.bottom .mark:hover, .bottom .mark:focus { color: var(--mark-blue); }

/* ---------------- меню (между линиями шапки) ---------------- */
.menu {
  position: absolute;
  left: 0;
  right: 0;
  bottom: var(--edge);
  height: var(--stripe-h);
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: nowrap;
}
.menu a {
  font: 500 var(--menu)/1 var(--ui);
  letter-spacing: .13em;
  text-transform: uppercase;
  color: #dbcccc;
  padding: 0 clamp(10px, 1vw, 16px);
}
.menu a:first-child { padding-left: 0; }
.menu a:hover, .menu a.on { color: #fff; }
.sep {
  flex: none;
  display: inline-block;
  width: 1px;
  height: 11px;
  font-size: 0;
  color: transparent;
  background: rgba(255, 255, 255, .17);
}

/* ---------------- служебные ссылки (полоса подвала) ---------------- */
.subnav {
  position: absolute;
  left: 0;
  right: 0;
  top: var(--edge);
  height: var(--stripe-h);
  z-index: 6;
  display: flex;
  align-items: center;
  justify-content: center;
}
.subnav a {
  font: 500 var(--util)/1 var(--ui);
  letter-spacing: .13em;
  text-transform: uppercase;
  color: #9aa0d0;
  padding: 0 clamp(11px, 1.1vw, 18px);
}
.subnav a:first-child { padding-left: 0; }
.subnav a:last-child { padding-right: 0; }
.subnav a:hover, .subnav a.on { color: #dfe3ff; }

/* ---------------- каркас и свечения ---------------- */
.shell {
  position: relative;
  flex: 1 0 auto;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: #000;
}

.shell::before,
.shell::after {
  content: "";
  position: absolute;
  z-index: 0;
  pointer-events: none;
  width: min(640px, 50vw);
  height: min(540px, 56vh);
}
.shell::before {
  top: 0; left: 0;
  background: radial-gradient(circle at 0 0,
      rgba(135, 0, 0, .55) 0%,
      rgba(80, 0, 0, .22) 40%,
      rgba(40, 0, 0, .06) 58%,
      transparent 74%);
}
.shell::after {
  bottom: 0; right: 0;
  background: radial-gradient(circle at 100% 100%,
      rgba(0, 22, 130, .55) 0%,
      rgba(0, 12, 70, .22) 40%,
      rgba(0, 6, 40, .06) 58%,
      transparent 74%);
}

.content {
  position: relative;
  z-index: 3;
  width: 100%;
  max-width: var(--content);
  margin: 0 auto;
  padding: clamp(32px, 3.6vw, 54px) var(--pad) 64px;
  flex: 1 0 auto;
}

/* ---------------- подвал ---------------- */
.bottom {
  position: relative;
  z-index: 4;
  flex: none;
  height: var(--band);
  background: linear-gradient(180deg, #04001a 0%, #12002f 58%, #19003f 100%);
}

/* ---------------- типографика ---------------- */
h1, h2 {
  font-family: var(--ui);
  font-weight: 600;
  letter-spacing: -.015em;
  color: var(--text-hi);
  margin: 0 0 12px;
  line-height: 1.14;
}
h1 { font-size: 33px; }
h2 { font-size: 21px; margin: 32px 0 10px; }
h3 { font: 600 15.5px/1.45 var(--sans); color: var(--text-hi); margin: 24px 0 7px; }

p { margin: 0 0 13px; max-width: 84ch; }
p.intro { font-size: 16px; color: #a6a6a6; }

ul, ol { margin: 0 0 14px; padding-left: 22px; }
li { margin-bottom: 5px; }
li::marker { color: #7a4a4a; }

hr { border: 0; border-top: 1px solid var(--rule); margin: 24px 0; }

.rows { border-collapse: collapse; width: 100%; margin: 16px 0 6px; }
.rows tr { border-bottom: 1px solid var(--rule); }
.rows tr:hover td { background: #060606; }
.rows td { padding: 13px 20px 13px 0; vertical-align: baseline; }
.rows td:first-child { white-space: nowrap; width: 310px; }
.rows td.d { color: var(--dim); font-size: 14.5px; }
.rows a { color: #dcdcdc; }
.rows a:hover { color: #fff; }

.notes { margin: 6px 0 8px; }
.note { display: block; padding: 15px 0; border-bottom: 1px solid var(--rule); }
.note b { display: block; font: 600 16px/1.45 var(--sans); color: var(--text-hi); margin-bottom: 3px; }
.note span { color: var(--dim); font-size: 14px; }
.note:hover b { color: #fff; }

.file { display: block; padding: 15px 0; border-bottom: 1px solid var(--rule); }
.file b { display: block; font: 600 16px/1.45 var(--sans); color: var(--text-hi); }
.file span { color: var(--dim); font-size: 14px; }
.file em {
  float: right;
  font-style: normal;
  font-family: var(--ui);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: .1em;
  color: #8a6a6a;
  padding-left: 16px;
  text-transform: uppercase;
}
.file:hover b { color: #fff; }

.prose h2 { margin-top: 30px; }
.prose blockquote {
  margin: 20px 0;
  padding: 2px 0 2px 16px;
  border-left: 2px solid #7e0c0c;
  color: #a6a6a6;
}
.prose strong { color: var(--text-hi); }
.prose kbd {
  font: 12px/1 var(--sans);
  border: 1px solid #3a3a3a;
  border-radius: 2px;
  padding: 2px 5px;
  color: var(--text-hi);
}

.tldr {
  border-left: 2px solid #0a3d8f;
  padding: 8px 0 8px 16px;
  margin: 2px 0 26px;
  background: linear-gradient(90deg, rgba(0, 30, 90, .18), transparent 74%);
}
.tldr b {
  display: block;
  font: 500 11.5px/1 var(--ui);
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #c9c9c9;
  margin-bottom: 8px;
}
.tldr ul { margin: 0; }
.tldr li { font-size: 14px; color: #a4a4a4; }

ol.steps { list-style: none; padding-left: 0; counter-reset: s; }
ol.steps li {
  counter-increment: s;
  padding: 12px 0 12px 32px;
  position: relative;
  border-bottom: 1px solid var(--rule);
  margin: 0;
}
ol.steps li::before {
  content: counter(s);
  position: absolute;
  left: 0;
  top: 12px;
  font: 500 11px/1 var(--ui);
  letter-spacing: .06em;
  color: #8a6a6a;
}

/* ---------------- схема Модель8 ---------------- */
.diagram {
  display: block;
  width: 100%;
  max-width: 820px;
  height: auto;
  margin: clamp(14px, 2vw, 30px) auto 4px;
}
.diagram.diagram-m { display: none; }
.diagram .ring line { stroke: #8e2b2b; stroke-width: 1.2; }
.diagram .cross line { stroke: #2b3f8e; stroke-width: 1; }
.diagram .hub { fill: #000; stroke: #454545; stroke-width: 1; }
.diagram .node circle { fill: rgba(255, 255, 255, .022); stroke: rgba(255, 255, 255, .16); stroke-width: 1; }
.diagram text {
  fill: #e7e1df;
  font: 500 15px var(--ui);
  letter-spacing: 1.4px;
  text-anchor: middle;
  dominant-baseline: middle;
}
.diagram .node:hover circle { stroke: #d13333; fill: rgba(209, 51, 51, .08); }
.diagram .node:hover text { fill: #fff; }

.legend {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: clamp(16px, 2vw, 30px);
  margin: 0 0 clamp(20px, 2.4vw, 30px);
  font: 500 11px/1 var(--ui);
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #8d8d8d;
}
.legend span { display: inline-flex; align-items: center; gap: 9px; }
.legend i { display: inline-block; width: 26px; height: 1px; }
.legend .r i { background: #8e2b2b; }
.legend .b i { background: #2b3f8e; }

.rows.m8 td:first-child { width: 170px; white-space: nowrap; }
.rows.m8 td.h { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: #7d7d7d; padding-bottom: 8px; }
.rows.m8 td:last-child { width: 46%; }

ul.tight { margin-bottom: 18px; }

.pubnote {
  margin: clamp(34px, 3.6vw, 54px) 0 0;
  padding-top: 16px;
  border-top: 1px solid #1d1d1d;
  max-width: 84ch;
  font: 400 11.5px/1.75 var(--ui);
  letter-spacing: .012em;
  color: #666;
}
.pubnote span { color: #8a8a8a; }
.pubnote time { color: #8a8a8a; }
ul.tight li { font-size: 15px; color: #a4a4a4; }
ul.tight b { color: #dcdcdc; font-weight: 600; }

/* ---------------- адаптив ---------------- */
@media (max-width: 900px) {
  :root { --content: 100%; }
}

@media (max-width: 820px) {
  :root { --band: auto; --mark: 22px; --menu: 11.5px; --util: 11px; }
  .top, .bottom { height: auto; }
  .top { padding: 20px var(--pad) 16px; border-bottom: 2px solid var(--red); }
  .bottom { padding: 14px var(--pad) 18px; border-top: 2px solid var(--blue); }
  .top .stripe, .bottom .stripe, .line { display: none; }

  .top .mark, .bottom .mark {
    position: static;
    display: block;
    letter-spacing: .24em;
  }
  .top .mark { margin-bottom: 14px; }
  .bottom .mark { margin-top: 12px; }

  .menu { position: static; display: flex; justify-content: flex-start; flex-wrap: wrap; height: auto; }
  .menu a { padding: 0 12px 0 0; line-height: 2; }
  .menu a:first-child { padding-left: 0; }
  .menu .sep { display: none; }

  .subnav { position: static; display: flex; justify-content: flex-start; height: auto; margin-bottom: 10px; }
  .subnav a { line-height: 2; }

  .diagram { display: none; }
  .diagram.diagram-m {
    display: block;
    width: calc(100% + 2 * var(--pad));
    max-width: none;
    margin: 10px calc(-1 * var(--pad)) 14px;
  }
  .diagram-m text { font-size: 22px; letter-spacing: .4px; }
  .diagram-m .ring line { stroke-width: 1.8; }
  .diagram-m .cross line { stroke-width: 1.5; }
  .diagram-m .node circle { stroke-width: 1.4; }
  .rows.m8 td:first-child { width: auto; white-space: normal; }
  .rows.m8 td:last-child { width: auto; }

  .content { padding: 24px var(--pad) 40px; }
  h1 { font-size: 27px; }
  .rows td:first-child { white-space: normal; width: auto; padding-right: 18px; }
}

@media print {
  .top, .bottom, .shell::before, .shell::after { display: none; }
  body { background: #fff; color: #000; }
  a { color: #000; }
}
