/* Экран «Внутри» (.p0-stage--inside) и общая схема хранилищ (.p0-inside-bank),
   которую показывает и «Спросить систему». Подключается после
   frontend-demo/styles/presentation0.css. Финальное состояние — базовые стили (бит 2),
   ранние биты — .p0-stage--inside[data-beat="N"]. Подсветка запросов
   на схеме — в styles/presentation0/ask.css. */

/* Свечение найденного элемента (анимирует «Спросить систему»). */
@property --inside-glow {
  syntax: "<number>";
  inherits: true;
  initial-value: 0;
}
@property --inside-panel-glow {
  syntax: "<number>";
  inherits: false;
  initial-value: 0;
}

.p0-inside-grid-bg {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(#e6cd9a0a 1px, transparent 1px),
    linear-gradient(90deg, #e6cd9a0a 1px, transparent 1px);
  background-size: 3.2vw 3.2vw;
  mask-image: radial-gradient(ellipse at 62% 45%, #000 25%, transparent 72%);
}

/* --- Схема хранилищ -------------------------------------------------------- */

.p0-inside-bank { position: absolute; z-index: 3; }
.p0-inside-bank__band {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  overflow: hidden;
  border: 1px solid #e6cd9a2b;
  border-radius: calc(.9 * var(--su));
  background: linear-gradient(90deg, #172221e6, #0e1515e6);
  box-shadow: inset 0 1px #f3e6c914;
}
/* Четыре цветных потока входят в полосу — продолжение потоков «Разбора встречи». */
.p0-inside-bank--inside .p0-inside-bank__band::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: calc(.22 * var(--su));
  background: linear-gradient(90deg,
    transparent 0 19%,
    rgb(var(--gold-rgb)) 19% 39.5%,
    rgb(var(--mint-rgb)) 39.5% 59.5%,
    rgb(var(--lav-rgb)) 59.5% 79.5%,
    rgb(136, 182, 222) 79.5% 100%);
  opacity: .55;
}
.p0-inside-bank__grid { position: absolute; left: 0; right: 0; display: grid; }

.p0-inside-store {
  --store-rgb: var(--gold-rgb);
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(var(--store-rgb), calc(.26 + .6 * var(--inside-panel-glow)));
  border-radius: calc(.9 * var(--su));
  background: linear-gradient(160deg, rgba(var(--store-rgb), .08), #0d1413eb 48%);
  box-shadow: inset 0 1px #f3e6c912, 0 0 calc(2 * var(--su) * var(--inside-panel-glow)) rgba(var(--store-rgb), .35);
}
.p0-inside-store--events { --store-rgb: var(--mint-rgb); }
.p0-inside-store--files { --store-rgb: var(--lav-rgb); }
.p0-inside-store--vector { --store-rgb: 136, 182, 222; }
.p0-inside-store__head {
  position: absolute;
  left: calc(.6 * var(--su));
  right: calc(.6 * var(--su));
  top: calc(.55 * var(--su));
  display: flex;
  align-items: center;
  gap: calc(.5 * var(--su));
}
.p0-inside-store__icon {
  display: grid;
  place-items: center;
  flex: none;
  width: calc(1.5 * var(--su));
  height: calc(1.5 * var(--su));
  border-radius: calc(.45 * var(--su));
  background: rgba(var(--store-rgb), .15);
  color: rgb(var(--store-rgb));
}
.p0-inside-store__icon svg { width: 72%; height: 72%; }
.p0-inside-store__head h2 {
  margin: 0;
  font-size: calc(.94 * var(--su));
  font-weight: 600;
  color: #f1ede4;
  white-space: nowrap;
}
.p0-inside-store__head small {
  margin-left: auto;
  font: calc(.58 * var(--su)) var(--mono);
  letter-spacing: 0;
  color: rgba(var(--store-rgb), .9);
  white-space: nowrap;
}
.p0-inside-store__body { position: absolute; right: calc(.6 * var(--su)); bottom: calc(.2 * var(--su)); }
.p0-inside-store__body > svg { display: block; width: 100%; height: 100%; overflow: visible; }

/* Граф */
.p0-inside-edge {
  stroke: rgba(217, 197, 158, calc(.34 + .66 * var(--inside-glow)));
  stroke-width: calc(.08px + .1px * var(--inside-glow));
  stroke-linecap: round;
  stroke-dasharray: 100;
  stroke-dashoffset: 0;
}
.p0-inside-edge--similar { stroke-dasharray: 3 2.4; stroke: rgba(183, 162, 245, calc(.5 + .5 * var(--inside-glow))); }
.p0-inside-node {
  color: rgb(var(--entity-rgb));
  opacity: calc(.62 + .38 * var(--inside-glow));
  transform-box: view-box;
  transform-origin: 0 0;
}
.p0-inside-node__halo { fill: rgba(var(--entity-rgb), .2); opacity: var(--inside-glow); }
.p0-inside-node__dot { fill: rgba(var(--entity-rgb), .3); stroke: rgb(var(--entity-rgb)); stroke-width: .1px; }
.p0-inside-node__label {
  fill: #dfe4e1;
  font-size: .58px;
  font-weight: 520;
  paint-order: stroke;
  stroke: #0d1413;
  stroke-width: .32px;
}

/* База событий: одна сетка, строки — подсетки. */
.p0-inside-events {
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content max-content max-content;
  column-gap: calc(.6 * var(--su));
  row-gap: calc(.16 * var(--su));
  font-size: calc(.62 * var(--su));
  line-height: 1.2;
}
.p0-inside-events__row {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: subgrid;
  align-items: center;
  padding: calc(.28 * var(--su)) calc(.4 * var(--su));
  border-radius: calc(.35 * var(--su));
  background: rgba(var(--mint-rgb), calc(.2 * var(--inside-glow)));
  box-shadow: inset calc(.18 * var(--su) * var(--inside-glow)) 0 rgb(var(--mint-rgb));
  opacity: calc(.66 + .34 * var(--inside-glow));
}
.p0-inside-events__row span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #cfd6d3; }
.p0-inside-events__row span:first-child { color: #eef0ec; font-weight: 540; }
.p0-inside-events__row--head { padding-block: 0; opacity: 1; }
.p0-inside-events__row--head span,
.p0-inside-events__row--head span:first-child {
  font: calc(.54 * var(--su)) var(--mono);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #8fa09b;
}

/* Файловое хранилище */
.p0-inside-files { display: grid; gap: calc(.4 * var(--su)); margin: 0; padding: 0; list-style: none; }
.p0-inside-file {
  position: relative;
  display: flex;
  align-items: center;
  gap: calc(.55 * var(--su));
  padding: calc(.35 * var(--su)) calc(.5 * var(--su));
  border: 1px solid rgba(var(--entity-rgb), calc(.22 + .6 * var(--inside-glow)));
  border-radius: calc(.55 * var(--su));
  background: rgba(15, 23, 22, .8);
  opacity: calc(.7 + .3 * var(--inside-glow));
}
.p0-inside-file__icon { flex: none; font-size: calc(1.05 * var(--su)); }
.p0-inside-file__text { display: grid; flex: 1; min-width: 0; line-height: 1.22; }
.p0-inside-file__text b {
  overflow: hidden;
  font-size: calc(.76 * var(--su));
  font-weight: 560;
  color: #f1ede4;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.p0-inside-file__text small {
  overflow: hidden;
  font: calc(.56 * var(--su)) var(--mono);
  color: #9fb0ab;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.p0-inside-file__text small.p0-inside-file__versions { color: #b7a2f5c0; }
.p0-inside-file__pages { display: flex; gap: calc(.22 * var(--su)); flex: none; }
.p0-inside-page {
  /* Страница светится сама по себе, а не вместе с объектом договора. */
  --inside-glow: 0;
  position: relative;
  width: calc(.95 * var(--su));
  height: calc(1.3 * var(--su));
  border-radius: calc(.12 * var(--su));
  background:
    repeating-linear-gradient(180deg, transparent 0 calc(.18 * var(--su)), #ffffff2e calc(.18 * var(--su)) calc(.24 * var(--su))) calc(.15 * var(--su)) calc(.2 * var(--su)) / calc(.65 * var(--su)) calc(.9 * var(--su)) no-repeat,
    #1c2827;
  box-shadow: inset 0 0 0 1px rgba(230, 205, 154, calc(.18 + .8 * var(--inside-glow)));
  scale: calc(1 + .4 * var(--inside-glow));
  transform-origin: 50% 100%;
}
.p0-inside-page__mark {
  position: absolute;
  bottom: calc(100% + .25 * var(--su));
  left: 50%;
  translate: -50% 0;
  font: 600 calc(.5 * var(--su)) var(--mono);
  color: #e6cd9a;
  white-space: nowrap;
  opacity: var(--inside-glow);
}
.p0-inside-wave {
  position: relative;
  flex: none;
  width: calc(5 * var(--su));
  height: calc(1.3 * var(--su));
  color: #b7a2f5aa;
}
.p0-inside-wave svg { display: block; width: 100%; height: 100%; }
.p0-inside-wave__knob {
  position: absolute;
  left: 0;
  top: calc(-.2 * var(--su));
  width: calc(.14 * var(--su));
  height: calc(1.7 * var(--su));
  border-radius: 1px;
  background: #e6cd9a;
  box-shadow: 0 0 calc(.6 * var(--su)) #e6cd9a;
}
.p0-inside-wave__knob b {
  position: absolute;
  bottom: calc(100% + .1 * var(--su));
  left: 50%;
  translate: -50% 0;
  font: 600 calc(.5 * var(--su)) var(--mono);
  color: #f3e6c9;
  opacity: 0;
}

/* Векторный индекс */
.p0-inside-cloud__dot { fill: rgba(136, 182, 222, .4); }
.p0-inside-cloud__cluster {
  fill: #7f96a8;
  font: .5px var(--mono);
  letter-spacing: .1em;
  text-transform: uppercase;
}
.p0-inside-point { opacity: calc(.72 + .28 * var(--inside-glow)); transform-box: view-box; transform-origin: 0 0; }
.p0-inside-point__dot {
  fill: #cfe0ee;
  stroke: rgba(230, 205, 154, var(--inside-glow));
  stroke-width: .5px;
  stroke-opacity: calc(.4 * var(--inside-glow));
}
.p0-inside-point__label {
  fill: #c6d2d9;
  font-size: .56px;
  paint-order: stroke;
  stroke: #0d1413;
  stroke-width: .16px;
}
.p0-inside-cloud__link { stroke: #e6cd9aa0; stroke-width: .07px; stroke-dasharray: 100; stroke-dashoffset: 0; }
.p0-inside-probe { display: none; }
.p0-inside-probe__spoke { stroke: #f3e6c9; stroke-width: .08px; stroke-dasharray: 100; stroke-dashoffset: 0; }
.p0-inside-probe__mark { fill: #f5e6c4; }

/* На «Внутри» новое от письма ярче старой памяти; на «Спросить систему» — нет. */
.p0-inside-bank--inside .p0-inside-edge[data-new] { stroke: rgba(var(--gold-rgb), .85); stroke-width: .13px; }
.p0-inside-bank--inside .p0-inside-node:is([data-new], [data-touched]) { opacity: 1; }
.p0-inside-bank--inside .p0-inside-node[data-new] .p0-inside-node__halo { opacity: .7; }
.p0-inside-bank--inside .p0-inside-node:not([data-new], [data-touched]) { opacity: .42; }
.p0-inside-bank--inside .p0-inside-edge:not([data-new]) { opacity: .5; }
.p0-inside-bank--inside .p0-inside-events__row[data-new] {
  background: rgba(var(--mint-rgb), .11);
  box-shadow: inset calc(.18 * var(--su)) 0 rgb(var(--mint-rgb));
  opacity: 1;
}
.p0-inside-bank--inside .p0-inside-events__row:not([data-new], .p0-inside-events__row--head) { opacity: .5; }
.p0-inside-bank--inside .p0-inside-file[data-new] {
  border-color: rgba(var(--lav-rgb), .6);
  opacity: 1;
  /* Стопка из версий: v2 и v1 остаются отдельными объектами. */
  box-shadow: calc(.25 * var(--su)) calc(.22 * var(--su)) 0 calc(-.04 * var(--su)) #b7a2f52e,
    calc(.5 * var(--su)) calc(.44 * var(--su)) 0 calc(-.08 * var(--su)) #b7a2f51a;
}
.p0-inside-bank--inside .p0-inside-file:not([data-new]) { opacity: .5; }
.p0-inside-bank--inside .p0-inside-point[data-new] { opacity: 1; }
.p0-inside-bank--inside .p0-inside-point[data-new] .p0-inside-point__dot { fill: #e6cd9a; stroke: #e6cd9a; stroke-opacity: .35; }
.p0-inside-bank--inside .p0-inside-point[data-new] .p0-inside-point__label { fill: #f3e6c9; font-weight: 600; }
.p0-inside-bank--inside .p0-inside-point:not([data-new]) { opacity: .55; }

/* --- Порты входящих потоков («Внутри») ------------------------------------- */

.p0-inside-ports { position: relative; z-index: 1; display: flex; align-items: center; height: 100%; }
.p0-inside-ports__caption {
  flex: none;
  padding-left: calc(.9 * var(--su));
  font: 500 calc(.66 * var(--su)) var(--mono);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #bfae8a;
}
.p0-inside-port {
  --store-rgb: var(--gold-rgb);
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(.4 * var(--su));
  font-size: calc(.84 * var(--su));
  color: #dfe4e1;
}
.p0-inside-port[data-store="events"] { --store-rgb: var(--mint-rgb); }
.p0-inside-port[data-store="files"] { --store-rgb: var(--lav-rgb); }
.p0-inside-port[data-store="vector"] { --store-rgb: 136, 182, 222; }
.p0-inside-port__dot {
  width: calc(.75 * var(--su));
  height: calc(.75 * var(--su));
  border-radius: 50%;
  background: rgb(var(--store-rgb));
  box-shadow: 0 0 calc(.8 * var(--su)) rgba(var(--store-rgb), .8);
}
.p0-inside-port__gain { font: 600 calc(.7 * var(--su)) var(--mono); color: rgb(var(--store-rgb)); }

/* --- Письмо ------------------------------------------------------------------ */

.p0-inside-message {
  position: absolute;
  z-index: 4;
  left: calc(3 * var(--su));
  top: calc(4.4 * var(--su));
  width: calc(44 * var(--su));
  height: calc(15.6 * var(--su));
  display: flex;
  flex-direction: column;
  padding: calc(1 * var(--su)) calc(1.4 * var(--su));
  overflow: hidden;
  border: 1px solid #e6cd9a38;
  border-radius: calc(1.1 * var(--su));
  background: linear-gradient(150deg, #1e2b2aee, #0d1414f2);
  box-shadow: 0 calc(1 * var(--su)) calc(3 * var(--su)) #04070780, inset 0 1px #f3e6c91a;
}
.p0-inside-message__head {
  display: flex;
  align-items: center;
  gap: calc(.6 * var(--su));
  font: 500 calc(.72 * var(--su)) var(--mono);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #bfae8a;
}
.p0-inside-message__head time { margin-left: auto; letter-spacing: .04em; color: #a9b5b1; }
.p0-inside-message__icon {
  display: grid;
  place-items: center;
  width: calc(1.6 * var(--su));
  height: calc(1.6 * var(--su));
  border-radius: calc(.5 * var(--su));
  background: #e6cd9a1c;
  color: #e6cd9a;
}
.p0-inside-message__icon .ui-icon { width: 62%; height: 62%; }
.p0-inside-message__subject { margin: calc(.7 * var(--su)) 0 0; font-size: calc(1.15 * var(--su)); font-weight: 600; color: #f3efe6; }
.p0-inside-message__from { margin: calc(.2 * var(--su)) 0 0; font-size: calc(.86 * var(--su)); color: #a9b5b1; }
.p0-inside-message__text {
  margin: calc(.7 * var(--su)) 0 0;
  font-size: calc(1.45 * var(--su));
  line-height: 1.38;
  color: #eef0ec;
}
.p0-inside-fragment {
  padding: 0 .08em;
  border-radius: calc(.25 * var(--su));
  background: rgba(var(--entity-rgb), .14);
  box-shadow: inset 0 -.16em rgba(var(--entity-rgb), .7);
  color: inherit;
}
.p0-inside-fragment--quiet { background: transparent; box-shadow: inset 0 -.12em rgba(var(--entity-rgb), .45); }
.p0-inside-message__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: calc(1 * var(--su));
  margin-top: auto;
}
.p0-inside-attachment {
  display: inline-flex;
  align-items: center;
  gap: calc(.5 * var(--su));
  padding: calc(.3 * var(--su)) calc(.8 * var(--su)) calc(.3 * var(--su)) calc(.4 * var(--su));
  border: 1px solid rgba(var(--entity-rgb), .5);
  border-radius: calc(.6 * var(--su));
  background: rgba(var(--entity-rgb), .1);
  font-size: calc(.9 * var(--su));
}
.p0-inside-attachment b { font-weight: 560; color: #f1ede4; }
.p0-inside-attachment small { font: calc(.64 * var(--su)) var(--mono); color: #9fb0ab; }
.p0-inside-lock {
  display: inline-flex;
  align-items: center;
  gap: calc(.4 * var(--su));
  padding: calc(.25 * var(--su)) calc(.7 * var(--su));
  border: 1px solid #e6cd9a66;
  border-radius: 999px;
  background: #e6cd9a14;
  font: 500 calc(.68 * var(--su)) var(--mono);
  letter-spacing: .04em;
  color: #e6cd9a;
}
.p0-inside-lock .ui-icon { width: 1.1em; height: 1.1em; }
.p0-inside-scan {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: calc(.2 * var(--su));
  background: linear-gradient(90deg, transparent, #f5e6c4, #b7a2f5, transparent);
  box-shadow: 0 0 calc(1.4 * var(--su)) #e6cd9a99;
  opacity: 0;
  pointer-events: none;
}

/* --- Разбор источника и два слоя ----------------------------------------------- */

.p0-inside-steps,
.p0-inside-layers {
  position: absolute;
  z-index: 2;
  left: calc(3 * var(--su));
  top: calc(21.2 * var(--su));
  width: calc(44 * var(--su));
}
.p0-inside-kicker {
  margin: 0 0 calc(.6 * var(--su));
  font: 500 calc(.76 * var(--su)) var(--mono);
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #bfae8a;
}
.p0-inside-steps ol {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: calc(.7 * var(--su));
  margin: 0;
  padding: 0;
  list-style: none;
}
.p0-inside-step {
  display: grid;
  align-content: start;
  gap: calc(.35 * var(--su));
  min-height: calc(6.2 * var(--su));
  padding: calc(.8 * var(--su)) calc(.8 * var(--su));
  border: 1px solid #e6cd9a5c;
  border-radius: calc(.8 * var(--su));
  background: linear-gradient(160deg, #e6cd9a17, #101817d9);
}
.p0-inside-step b { font-size: calc(.98 * var(--su)); font-weight: 600; color: #f3e6c9; }
.p0-inside-step span { font-size: calc(.8 * var(--su)); line-height: 1.3; color: #b4c0bc; }
.p0-inside-steps { display: none; }
.p0-inside-kicker--legend { margin-top: calc(1.2 * var(--su)); }
/* Куда ушёл каждый фрагмент: остаётся после полёта чипов. */
.p0-inside-legend {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: calc(.4 * var(--su)) calc(1 * var(--su));
  margin: 0;
  padding: 0;
  list-style: none;
}
.p0-inside-legend li {
  display: flex;
  align-items: center;
  gap: calc(.45 * var(--su));
  min-width: 0;
  padding: calc(.25 * var(--su)) calc(.7 * var(--su)) calc(.25 * var(--su)) calc(.3 * var(--su));
  border: 1px solid rgba(var(--entity-rgb), .4);
  border-radius: 999px;
  background: rgba(var(--entity-rgb), .09);
  font-size: calc(.84 * var(--su));
}
.p0-inside-legend b { overflow: hidden; font-weight: 540; color: #f1ede4; white-space: nowrap; text-overflow: ellipsis; }
.p0-inside-legend__store {
  --store-rgb: var(--gold-rgb);
  margin-left: auto;
  flex: none;
  font: 500 calc(.66 * var(--su)) var(--mono);
  color: rgb(var(--store-rgb));
}
.p0-inside-legend__store[data-store="events"] { --store-rgb: var(--mint-rgb); }
.p0-inside-legend__store[data-store="files"] { --store-rgb: var(--lav-rgb); }
.p0-inside-legend__store[data-store="vector"] { --store-rgb: 136, 182, 222; }
.p0-stage--inside[data-beat="0"] :is(.p0-inside-legend, .p0-inside-kicker--legend) { opacity: 0; }
.p0-stage--inside[data-beat="1"] .p0-inside-kicker--legend { animation: p0-inside-fade-in .6s ease .4s both; }
.p0-stage--inside[data-beat="1"] .p0-inside-legend li { animation: p0-inside-fade-in .5s var(--ease-out) var(--d) both; }

.p0-inside-layers {
  display: grid;
  grid-template-columns: minmax(0, 1fr) calc(12.5 * var(--su));
  grid-template-rows: auto auto auto;
  column-gap: calc(1.2 * var(--su));
  row-gap: calc(.7 * var(--su));
}
.p0-inside-layers .p0-inside-kicker { grid-column: 1 / -1; margin: 0; }
.p0-inside-plate {
  position: relative;
  grid-column: 1;
  padding: calc(.8 * var(--su)) calc(1 * var(--su));
  border: 1px solid;
  border-radius: calc(.9 * var(--su));
}
.p0-inside-plate__title {
  display: flex;
  align-items: center;
  gap: calc(.45 * var(--su));
  font: 500 calc(.72 * var(--su)) var(--mono);
  letter-spacing: .12em;
  text-transform: uppercase;
}
.p0-inside-plate__title .ui-icon { width: 1.2em; height: 1.2em; }
.p0-inside-plate--interp {
  border-color: rgba(var(--lav-rgb), .55);
  border-style: dashed;
  background: linear-gradient(135deg, rgba(var(--lav-rgb), .16), #111a19eb 60%);
  color: #cbbdf7;
}
.p0-inside-plate--interp ul {
  display: flex;
  flex-wrap: wrap;
  gap: calc(.4 * var(--su));
  margin: calc(.55 * var(--su)) 0 0;
  padding: 0;
  list-style: none;
}
.p0-inside-plate--interp li {
  display: inline-flex;
  align-items: center;
  gap: calc(.35 * var(--su));
  padding: calc(.2 * var(--su)) calc(.6 * var(--su)) calc(.2 * var(--su)) calc(.3 * var(--su));
  border: 1px solid rgba(var(--entity-rgb), .5);
  border-radius: 999px;
  background: rgba(var(--entity-rgb), .12);
  font-size: calc(.8 * var(--su));
  color: #f1ede4;
}
.p0-inside-plate__fix {
  position: absolute;
  top: calc(.6 * var(--su));
  right: calc(.8 * var(--su));
  padding: calc(.15 * var(--su)) calc(.7 * var(--su));
  border: 1px solid rgba(var(--lav-rgb), .6);
  border-radius: 999px;
  font-size: calc(.7 * var(--su));
  color: #e2dafc;
}
.p0-inside-plate--obs {
  border-color: rgba(var(--gold-rgb), .55);
  background: linear-gradient(135deg, rgba(var(--gold-rgb), .13), #111a19eb 60%);
  color: #e6cd9a;
}
.p0-inside-plate--obs blockquote {
  margin: calc(.45 * var(--su)) 0 calc(.25 * var(--su));
  font-size: calc(.98 * var(--su));
  line-height: 1.35;
  color: #eef0ec;
}
.p0-inside-plate--obs small { font: calc(.62 * var(--su)) var(--mono); color: #bfae8a; }
.p0-inside-stamp {
  grid-column: 2;
  grid-row: 2 / 4;
  align-self: center;
  display: grid;
  gap: calc(.35 * var(--su));
  padding: calc(1 * var(--su)) calc(.9 * var(--su));
  border: calc(.16 * var(--su)) double #e6cd9acc;
  border-radius: calc(.7 * var(--su));
  background: #e6cd9a0f;
  rotate: -5deg;
  text-align: center;
  font-family: var(--mono);
  color: #e6cd9a;
}
.p0-inside-stamp b { font-size: calc(.78 * var(--su)); letter-spacing: .14em; text-transform: uppercase; }
.p0-inside-stamp span { font-size: calc(.62 * var(--su)); line-height: 1.3; color: #d9c9a4; }

/* --- Чипы фрагментов ------------------------------------------------------------ */

.p0-inside-chips { position: absolute; inset: 0; z-index: 7; pointer-events: none; }
.p0-inside-chip { position: absolute; width: 0; height: 0; opacity: 0; }
.p0-inside-chip__body {
  position: absolute;
  left: 0;
  top: 0;
  transform: translate(-50%, -50%);
  display: flex;
  align-items: center;
  gap: calc(.4 * var(--su));
  padding: calc(.22 * var(--su)) calc(.7 * var(--su)) calc(.22 * var(--su)) calc(.28 * var(--su));
  border: 1px solid rgba(var(--entity-rgb), .7);
  border-radius: 999px;
  background: linear-gradient(120deg, rgba(var(--entity-rgb), .34), #0e1615f2 70%);
  box-shadow: 0 0 calc(1.2 * var(--su)) rgba(var(--entity-rgb), .35);
  font-size: calc(.86 * var(--su));
  white-space: nowrap;
}
.p0-inside-chip b { font-weight: 560; color: #f6f2ea; }
.p0-inside-chip small { font: calc(.6 * var(--su)) var(--mono); color: rgb(var(--entity-rgb)); }
@keyframes p0-inside-chip-fly {
  0% { opacity: 0; translate: 0 0; scale: .7; }
  10% { opacity: 1; translate: 0 calc(-1.3 * var(--su)); scale: 1; }
  20% { translate: 0 calc(-1.3 * var(--su)); }
  48% { translate: var(--mx) var(--my); scale: .92; }
  56% { translate: var(--mx) var(--my); }
  85% { opacity: 1; translate: var(--ex) var(--ey); scale: .8; }
  100% { opacity: 0; translate: var(--ex) var(--ey); scale: .2; }
}

/* --- Биты -------------------------------------------------------------------------
   0 «Сообщение»: скан, фрагменты подсвечиваются, хранилища ждут. */
.p0-stage--inside[data-beat="0"] .p0-inside-scan { animation: p0-inside-scan 1.9s ease-in-out .3s 2 both; }
@keyframes p0-inside-scan {
  0% { opacity: 0; translate: 0 0; }
  12%, 85% { opacity: 1; }
  100% { opacity: 0; translate: 0 calc(15.4 * var(--su)); }
}
.p0-stage--inside[data-beat="0"] .p0-inside-fragment { animation: p0-inside-mark .8s var(--ease-out) calc(1s + var(--k) * .3s) both; }
@keyframes p0-inside-mark { from { background: transparent; box-shadow: inset 0 0 transparent; } }
.p0-stage--inside[data-beat="0"] .p0-inside-lock,
.p0-stage--inside[data-beat="0"] .p0-inside-bank [data-new],
.p0-stage--inside[data-beat="0"] .p0-inside-port__gain { opacity: 0; }
.p0-stage--inside:is([data-beat="0"], [data-beat="1"]) .p0-inside-steps { display: block; }
.p0-stage--inside:is([data-beat="0"], [data-beat="1"]) .p0-inside-layers { display: none; }
.p0-stage--inside[data-beat="0"] .p0-inside-step:not(:first-child) { border-color: #e6cd9a24; background: #101817cc; opacity: .5; }
.p0-stage--inside[data-beat="0"] .p0-inside-step:first-child { animation: p0-inside-step-on .8s var(--ease-out) .3s both; }
@keyframes p0-inside-step-on { from { border-color: #e6cd9a24; background: #101817cc; opacity: .5; } }

/* 1 «Четыре хранилища»: чипы летят, хранилища заполняются по прилёту. */
.p0-stage--inside[data-beat="1"] .p0-inside-scan { animation: p0-inside-scan 1.6s ease-in-out both; }
.p0-stage--inside[data-beat="1"] .p0-inside-lock { animation: p0-inside-fade-in .8s var(--ease-out) .3s both; }
@keyframes p0-inside-fade-in { from { opacity: 0; } }
.p0-stage--inside[data-beat="1"] .p0-inside-step { animation: p0-inside-step-on .8s var(--ease-out) calc(var(--k) * 1.6s) both; }
.p0-stage--inside[data-beat="1"] .p0-inside-chip {
  animation-name: p0-inside-chip-fly;
  animation-timing-function: cubic-bezier(.4, 0, .3, 1);
  animation-fill-mode: both;
}
.p0-stage--inside[data-beat="1"] .p0-inside-node[data-new],
.p0-stage--inside[data-beat="1"] .p0-inside-point[data-new] { animation: p0-inside-pop .7s var(--ease-out) var(--d) both; }
@keyframes p0-inside-pop { from { opacity: 0; scale: 0; } }
.p0-stage--inside[data-beat="1"] .p0-inside-node:is([data-new], [data-touched]) .p0-inside-node__halo { animation: p0-inside-halo 1.3s ease-out var(--d) both; }
@keyframes p0-inside-halo {
  0% { opacity: 0; scale: .4; }
  30% { opacity: 1; scale: 1.5; }
}
.p0-stage--inside[data-beat="1"] .p0-inside-node__halo { transform-box: view-box; transform-origin: 0 0; }
.p0-stage--inside[data-beat="1"] :is(.p0-inside-edge, .p0-inside-cloud__link)[data-new] { animation: p0-inside-draw .9s var(--ease-out) var(--d) both; }
@keyframes p0-inside-draw { from { stroke-dashoffset: 100; } }
.p0-stage--inside[data-beat="1"] .p0-inside-events__row[data-new] { animation: p0-inside-row .9s var(--ease-out) var(--d) both; }
@keyframes p0-inside-row {
  0% { opacity: 0; translate: 0 calc(-.6 * var(--su)); }
  40% { opacity: 1; background: rgba(126, 225, 200, .38); }
}
.p0-stage--inside[data-beat="1"] .p0-inside-file[data-new] { animation: p0-inside-file .9s var(--ease-out) var(--d) both; }
@keyframes p0-inside-file { from { opacity: 0; translate: 0 calc(-.8 * var(--su)); } }
.p0-stage--inside[data-beat="1"] .p0-inside-port__gain { animation: p0-inside-gain .6s var(--ease-out) var(--d) both; }
@keyframes p0-inside-gain { from { opacity: 0; scale: .5; } }

/* 2 «Наблюдение и интерпретация»: два слоя и штамп истории. */
.p0-stage--inside[data-beat="2"] .p0-inside-kicker { animation: p0-inside-fade-in .6s ease both; }
.p0-stage--inside[data-beat="2"] .p0-inside-plate--obs { animation: p0-inside-plate .9s var(--ease-out) .2s both; }
.p0-stage--inside[data-beat="2"] .p0-inside-plate--interp { animation: p0-inside-plate .9s var(--ease-out) .9s both; }
@keyframes p0-inside-plate { from { opacity: 0; translate: 0 calc(1.4 * var(--su)); } }
.p0-stage--inside[data-beat="2"] .p0-inside-stamp { animation: p0-inside-stamp .5s cubic-bezier(.3, 1.4, .5, 1) 2.4s both; }
@keyframes p0-inside-stamp { from { opacity: 0; scale: 1.8; } }
.p0-stage--inside[data-beat="2"] .p0-inside-plate__fix { animation: p0-inside-fix 1.6s ease-in-out 3.4s 2 both; }
@keyframes p0-inside-fix { 50% { background: rgba(183, 162, 245, .3); } }
