/* Экран «Приток» (.p0-stage--intake). Подключается после frontend-demo/styles/presentation0.css. */


.p0-intake-hex { position: absolute; inset: 0; width: 100%; height: 100%; stroke: #d9c59e14; stroke-width: 1; fill: none; }
.p0-intake-rain {
  position: absolute;
  inset: -50% 0 0;
  background: repeating-linear-gradient(90deg, transparent 0 7vw, #e6cd9a0c 7vw calc(7vw + 1px), transparent calc(7vw + 1px) 11vw),
    linear-gradient(180deg, transparent, #7ee1c80a 40%, transparent 60%);
  background-size: auto, 100% 50%;
  animation: p0-intake-rain 18s linear infinite;
}
@keyframes p0-intake-rain { to { transform: translateY(50%); } }
.p0-intake-world {
  position: absolute;
  inset: 0;
  transform-origin: 50% 40%;
  transition: transform 1.2s var(--ease-out);
}
.p0-intake-world > * { transition: opacity 1s var(--ease); }
.p0-intake-caption {
  position: absolute;
  top: calc(3.7 * var(--su));
  margin: 0;
  font: 500 calc(.8 * var(--su)) var(--mono);
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #bfae8a;
}
.p0-intake-caption--sources { left: calc(3 * var(--su)); }
.p0-intake-caption--stores { left: calc(66 * var(--su)); }
.p0-intake-flow { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.p0-intake-flow > svg { display: block; width: 100%; height: 100%; overflow: visible; }
.p0-intake-route { stroke: #e6cd9a2e; stroke-width: .09; stroke-dasharray: .7 .5; animation: cs-flow 12s linear infinite; }
.p0-intake-route--out { stroke: #b7a2f53a; }
.p0-intake-packet {
  fill: #0e1615;
  stroke: #f1dfb6;
  stroke-width: .09;
  offset-rotate: 0deg;
  animation-name: p0-intake-fly;
  animation-timing-function: cubic-bezier(.45, .05, .55, .95);
  animation-iteration-count: infinite;
  transition: opacity .6s;
}
.p0-intake-packet--out { fill: rgb(var(--entity-rgb)); stroke: none; }
@keyframes p0-intake-fly {
  0% { offset-distance: 0%; opacity: 0; }
  12%, 85% { opacity: 1; }
  100% { offset-distance: 100%; opacity: 0; }
}
.p0-intake-sources { position: absolute; inset: 0; margin: 0; padding: 0; list-style: none; z-index: 2; }
.p0-intake-source {
  position: absolute;
  width: calc(19.5 * var(--su));
  height: calc(3 * var(--su));
  display: flex;
  align-items: center;
  gap: calc(.6 * var(--su));
  padding: 0 calc(.8 * var(--su)) 0 calc(.45 * var(--su));
  border: 1px solid #e6cd9a2e;
  border-radius: calc(.8 * var(--su));
  background: linear-gradient(110deg, #22302fd9, #111918e6);
  box-shadow: inset 0 1px #f3e6c914;
}
.p0-intake-source__icon {
  display: grid;
  place-items: center;
  flex: none;
  width: calc(1.9 * var(--su));
  height: calc(1.9 * var(--su));
  border-radius: calc(.6 * var(--su));
  background: #e6cd9a1a;
  color: #e6cd9a;
}
.p0-intake-source__icon .ui-icon { width: 60%; height: 60%; }
.p0-intake-source__text { display: grid; min-width: 0; line-height: 1.15; }
.p0-intake-source__text b { font-size: calc(1 * var(--su)); font-weight: 560; color: #f1ede4; }
.p0-intake-source__sim { font-style: normal; font-weight: 400; color: #b7a2f5; }
.p0-intake-source__message {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: calc(.8 * var(--su));
  color: #a6b3af;
}
.p0-stage--intake[data-beat="0"] .p0-intake-source { animation: p0-intake-tile 700ms var(--ease-out) calc(var(--i) * 90ms) both; }
@keyframes p0-intake-tile { from { opacity: 0; transform: translateX(calc(-3 * var(--su))); } }
.p0-stage--intake[data-beat="0"] .p0-intake-source[data-typed="true"] .p0-intake-source__message {
  animation: p0-intake-type 1.8s steps(28, end) calc(1s + var(--i) * 150ms) both;
}
@keyframes p0-intake-type { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }

.p0-intake-core { position: absolute; left: calc(35 * var(--su)); top: calc(4.2 * var(--su)); width: calc(30 * var(--su)); z-index: 2; }
.p0-intake-core__caption {
  margin: 0;
  text-align: center;
  font: 500 calc(.8 * var(--su)) var(--mono);
  letter-spacing: .18em;
  color: #dcc699;
}
.p0-intake-prism {
  position: relative;
  width: calc(16 * var(--su));
  height: calc(18.13 * var(--su));
  margin: calc(3.6 * var(--su)) auto 0;
}
.p0-intake-prism > svg { display: block; width: 100%; height: 100%; overflow: visible; }
.p0-intake-prism__face { stroke: #efe0c1aa; stroke-width: .35; }
.p0-intake-prism__facets { stroke: #f3e6c966; stroke-width: .25; }
.p0-intake-prism__heart { fill: #f5e6c4; filter: drop-shadow(0 0 3px #e6cd9a); animation: cs-breathe 2.6s ease-in-out infinite; }
.p0-intake-prism__rotor { stroke: #e4c992; stroke-width: .5; transform-origin: 0 0; animation: cs-orbit 18s linear infinite; }
.p0-intake-prism__rotor--reverse { stroke: #9c91fa; animation-direction: reverse; animation-duration: 13s; }
.p0-intake-prism__scan { fill: #f5e6c4; opacity: .7; animation: p0-intake-scan 3.2s ease-in-out infinite alternate; }
@keyframes p0-intake-scan { from { transform: translateY(-24px); } to { transform: translateY(24px); } }
.p0-stage--intake:not([data-beat="0"]) .p0-intake-prism__rotor { animation-duration: 7s; }
.p0-stage--intake:not([data-beat="0"]) .p0-intake-prism__rotor--reverse { animation-duration: 5s; }

.p0-intake-conveyor { position: absolute; z-index: 4; left: calc(25.8 * var(--su)); top: calc(29.2 * var(--su)); width: calc(39.4 * var(--su)); }
.p0-intake-record {
  position: absolute;
  inset: 0 0 auto;
  display: grid;
  grid-template-columns: 1.25fr auto 1fr auto .9fr;
  align-items: stretch;
  gap: calc(.4 * var(--su));
  transition: opacity .7s var(--ease), transform .7s var(--ease-out);
}
.p0-intake-record[data-record="1"] { opacity: 0; transform: rotateX(80deg); }
.p0-intake-cell {
  display: grid;
  align-content: start;
  gap: calc(.3 * var(--su));
  min-height: calc(8.4 * var(--su));
  padding: calc(.7 * var(--su)) calc(.8 * var(--su));
  border: 1px solid #e6cd9a33;
  border-radius: calc(.8 * var(--su));
  background: linear-gradient(140deg, #1d2a29f2, #101817f5);
  font-size: calc(.88 * var(--su));
  transition: opacity .7s, border-color .7s, box-shadow .7s;
}
.p0-intake-cell__title {
  display: flex;
  align-items: center;
  gap: .4em;
  font: 500 calc(.72 * var(--su)) var(--mono);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #cbb88e;
}
.p0-intake-cell__title .ui-icon { width: 1.2em; height: 1.2em; }
.p0-intake-cell small { color: #93a19d; font-size: calc(.8 * var(--su)); }
.p0-intake-cell p { margin: 0; color: #f1ede4; line-height: 1.25; }
.p0-intake-cell ul { display: grid; gap: calc(.3 * var(--su)); margin: 0; padding: 0; list-style: none; }
.p0-intake-cell li { display: flex; align-items: baseline; gap: .4em; color: #e6ebe9; transition: opacity .6s var(--ease) calc(var(--k) * 250ms), transform .6s var(--ease-out) calc(var(--k) * 250ms); }
.p0-intake-arrow { align-self: center; width: calc(1.2 * var(--su)); height: 1px; background: linear-gradient(90deg, #e6cd9a22, #e6cd9a); position: relative; }
.p0-intake-arrow::after { content: ""; position: absolute; right: 0; top: -3px; border: 3px solid transparent; border-left-color: #e6cd9a; border-right: 0; }
.p0-intake-fix { display: grid; gap: calc(.3 * var(--su)); perspective: 400px; }
.p0-intake-fix__before { color: #c4ccc9; }
.p0-intake-fix__after { color: #a8ecd6; font-weight: 560; }
.p0-intake-fix__after:empty { display: none; }
/* Биты: 0 «Источники», 1 «Запись», 2 «Приток и раскладка» (раскладка — с 5 с),
   3 «Связи», 4 «Коррекция». Базовые стили — законченный экран. */
.p0-stage--intake:is([data-beat="0"], [data-beat="1"]) .p0-intake-cell { opacity: .35; }
.p0-stage--intake:is([data-beat="0"], [data-beat="1"]) .p0-intake-cell--interp li { opacity: 0; transform: translateY(calc(.8 * var(--su))); }
.p0-stage--intake[data-beat="2"] .p0-intake-cell--source { animation: p0-intake-received 1.4s var(--ease-out) .6s both; }
.p0-stage--intake[data-beat="2"] .p0-intake-cell--interp li { transition-delay: calc(1.6s + var(--k) * 300ms); }
@keyframes p0-intake-received {
  0% { border-color: #e6cd9a33; box-shadow: none; }
  30% { border-color: #f5e6c4; box-shadow: 0 0 calc(2.5 * var(--su)) #e6cd9a55; }
}
.p0-stage--intake[data-beat="4"] .p0-intake-record[data-record="0"] { opacity: 0; transform: rotateX(-80deg); }
.p0-stage--intake[data-beat="4"] .p0-intake-record[data-record="1"] { opacity: 1; transform: none; transition-delay: .3s; }
.p0-stage--intake[data-beat="4"] .p0-intake-record[data-record="1"] .p0-intake-cell--fix {
  border-color: #f0a95a;
  box-shadow: 0 0 calc(3 * var(--su)) #f0a95a44;
}
.p0-stage--intake[data-beat="4"] .p0-intake-fix__before { text-decoration: line-through; text-decoration-color: #f0a95a; animation: p0-intake-flip .9s var(--ease-out) 1.2s both; }
.p0-stage--intake[data-beat="4"] .p0-intake-fix__after { animation: p0-intake-flip .9s var(--ease-out) 1.6s both; }
@keyframes p0-intake-flip { from { opacity: 0; transform: rotateX(90deg); } }

.p0-intake-store {
  position: absolute;
  z-index: 2;
  left: calc(66 * var(--su));
  width: calc(31 * var(--su));
  padding: calc(.7 * var(--su)) calc(1 * var(--su));
  border: 1px solid #e6cd9a2b;
  border-radius: calc(1 * var(--su));
  background: linear-gradient(140deg, #1a2524cc, #0e1515d9);
}
.p0-intake-store h2 { margin: 0; font-size: calc(1.2 * var(--su)); font-weight: 580; color: #f3efe6; }
.p0-intake-store > small { display: block; font-size: calc(.8 * var(--su)); color: #98a5a1; }
.p0-intake-store--cloud { top: calc(5.6 * var(--su)); height: calc(7.8 * var(--su)); overflow: hidden; }
.p0-intake-store--graph {
  top: calc(14.2 * var(--su));
  height: calc(16 * var(--su));
  background: radial-gradient(ellipse at 50% 62%, #e6cd9a1a, transparent 68%), #0e151580;
}
.p0-intake-store--db { top: calc(30.8 * var(--su)); height: calc(7.6 * var(--su)); }
.p0-intake-store--db > small { display: none; }
.p0-intake-cloud { position: absolute; inset: 30% 0 0; pointer-events: none; }
.p0-intake-cloud__blob {
  position: absolute;
  width: 60%;
  height: 90%;
  border-radius: 50%;
  mix-blend-mode: screen;
  background: radial-gradient(ellipse, #b7a2f53a, transparent 68%);
  animation: p0-intake-cloud 14s ease-in-out infinite alternate;
}
.p0-intake-cloud__blob:nth-child(1) { left: 0; top: 0; }
.p0-intake-cloud__blob:nth-child(2) { left: 30%; top: 10%; background: radial-gradient(ellipse, #e6cd9a33, transparent 68%); animation-direction: alternate-reverse; }
.p0-intake-cloud__blob:nth-child(3) { left: 50%; top: -10%; background: radial-gradient(ellipse, #7ee1c82a, transparent 68%); animation-duration: 18s; }
@keyframes p0-intake-cloud { from { transform: translate(-8%, 4%) scale(.95); } to { transform: translate(8%, -4%) scale(1.08); } }
.p0-intake-cloud__labels {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  gap: calc(.35 * var(--su));
  margin: calc(.6 * var(--su)) 0 0;
  padding: 0;
  list-style: none;
}
.p0-intake-cloud__labels li {
  display: inline-flex;
  align-items: baseline;
  gap: .35em;
  padding: .15em .6em;
  border-radius: 999px;
  border: 1px solid rgba(var(--entity-rgb), .4);
  background: #0e1615cc;
  font-size: calc(.72 * var(--su));
  white-space: nowrap;
  transition: opacity .6s var(--ease) calc(var(--k) * 400ms), transform .6s var(--ease-out) calc(var(--k) * 400ms);
}
.p0-intake-dbs { display: grid; grid-template-columns: repeat(3, 1fr); gap: calc(.5 * var(--su)); margin-top: calc(.4 * var(--su)); }
.p0-intake-db { display: grid; grid-template-columns: auto 1fr; column-gap: calc(.4 * var(--su)); align-items: center; font-size: calc(.7 * var(--su)); color: #c9d0cd; line-height: 1.1; }
.p0-intake-db svg { grid-row: span 2; width: calc(2.8 * var(--su)); height: calc(2.8 * var(--su)); overflow: visible; }
.p0-intake-db__body, .p0-intake-db__top { stroke: rgba(var(--entity-rgb), .7); stroke-width: .7; fill: rgba(var(--entity-rgb), .08); }
.p0-intake-db__ring { stroke: rgba(var(--entity-rgb), .9); stroke-width: .7; stroke-dasharray: 3 2; animation: cs-flow 8s linear infinite; }
.p0-intake-db__row {
  fill: #e6cd9a;
  transform-box: fill-box;
  transform-origin: left;
  transition: transform .5s var(--ease-out) calc(.4s + var(--k) * 300ms);
}
.p0-stage--intake:is([data-beat="0"], [data-beat="1"]) .p0-intake-db__row { transform: scaleX(0); }
.p0-stage--intake:is([data-beat="0"], [data-beat="1"]) .p0-intake-cloud__labels li { opacity: 0; transform: scale(.6); }
.p0-stage--intake:is([data-beat="0"], [data-beat="1"]) .p0-stage-count { --p0-count: 0; }
.p0-stage--intake:is([data-beat="0"], [data-beat="1"]) .p0-intake-packet { opacity: 0; animation-play-state: paused; }
.p0-stage--intake:is([data-beat="0"], [data-beat="1"]) .p0-intake-packet--out { opacity: 0; animation-play-state: paused; }
/* Раскладка по хранилищам начинается на 5-й секунде бита «Приток и раскладка». */
.p0-stage--intake[data-beat="2"] .p0-intake-db__row { transition-delay: calc(5.4s + var(--k) * 300ms); }
.p0-stage--intake[data-beat="2"] .p0-intake-cloud__labels li { transition-delay: calc(5s + var(--k) * 400ms); }
.p0-stage--intake[data-beat="2"] .p0-stage-count { transition-delay: 5s; }
.p0-stage--intake[data-beat="2"] .p0-intake-packet--out { transition-delay: 5s; }
.p0-intake-store__count {
  position: absolute;
  right: calc(1 * var(--su));
  top: calc(.8 * var(--su));
  font-size: calc(.8 * var(--su));
  color: #aab6b2;
}
.p0-intake-store__count b, .p0-intake-db__count b { font-size: calc(1.5 * var(--su)); font-weight: 560; color: #f2e4c4; }
.p0-intake-db__count { font-size: calc(.72 * var(--su)); color: #97a4a0; }
.p0-intake-db__count b { font-size: calc(1.1 * var(--su)); }
.p0-intake-store__note { margin: calc(.2 * var(--su)) 0 0; text-align: right; font: 500 calc(.62 * var(--su)) var(--mono); letter-spacing: .14em; text-transform: uppercase; color: #7f8c88; }

.p0-intake-graph-stage {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  transform-origin: 0 0;
  transition: transform 1.3s var(--ease-out);
  perspective: calc(160 * var(--su));
}
.p0-intake-graph { position: absolute; inset: 0; transform-origin: 50% 40%; }
.p0-intake-graph > svg { position: relative; display: block; width: 100%; height: 100%; overflow: visible; }
.p0-intake-graph__orbit { stroke: #78958e33; stroke-width: .06; stroke-dasharray: .4 .8; }
.p0-intake-sweep { transform-origin: 0 0; animation: cs-orbit 9s linear infinite; }
.p0-intake-sweep path { fill: #e6cd9a14; stroke: #e6cd9a33; stroke-width: .05; }
.p0-intake-graph .p0-graph-edge { stroke: #e3c78e40; stroke-width: .08; animation: none; transition: opacity .8s var(--ease), stroke .6s; }
.p0-intake-graph .p0-graph-edge-tracer { stroke: #f2dfb3; stroke-width: .2; stroke-linecap: round; stroke-dasharray: 3 97; transition: opacity .8s; }
.p0-graph-edge-tracer { animation: cs-transmit 7s linear infinite; }
.p0-graph-svg > g:nth-child(3n) .p0-graph-edge-tracer { animation-delay: -2s; }
.p0-graph-svg > g:nth-child(3n + 1) .p0-graph-edge-tracer { animation-delay: -4s; }
.p0-intake-graph .p0-graph-node { cursor: default; transition: opacity .8s var(--ease); }
.p0-intake-graph .p0-graph-node__shape {
  stroke-width: .12;
  filter: none;
  transform-box: fill-box;
  transform-origin: center;
  transition: transform .7s cubic-bezier(.34, 1.56, .64, 1) calc(var(--n, 0) * 22ms), fill 180ms, stroke 180ms;
}
.p0-intake-node[data-ring="0"] .p0-graph-node__shape { animation: cs-breathe 3s ease-in-out infinite; }
/* Рёбра прорисовываются от центра по мере прихода пакетов. */
.p0-intake-graph .p0-intake-edge:not(.p0-intake-edge--chain, .p0-intake-edge--wrong, .p0-intake-edge--fixed) {
  stroke-dasharray: 100;
  stroke-dashoffset: 0;
  transition: stroke-dashoffset 1.4s var(--ease-out) calc(var(--n, 0) * 18ms), opacity .8s var(--ease), stroke .6s;
}
.p0-intake-graph .p0-graph-node__label {
  font-size: 1.05px;
  font-weight: 520;
  fill: #e2e7e4;
  stroke: #0b1111;
  stroke-width: .3px;
  paint-order: stroke;
  transition: opacity .8s;
}
.p0-intake-node[data-ring="3"] .p0-graph-node__label { font-size: .82px; fill: #9aa8a4; }
.p0-intake-node[data-ring="0"] .p0-graph-node__label { font-size: 1.3px; fill: #f5e6c4; }
.p0-intake-edge--chain {
  stroke: #f1d9a3;
  stroke-width: .22;
  stroke-dasharray: 100;
  stroke-dashoffset: 0;
  filter: drop-shadow(0 0 .3px #e6cd9a);
  transition: stroke-dashoffset .8s var(--ease-out) calc(.8s + var(--k) * .6s), opacity .8s;
}
.p0-intake-relation { font: 500 .78px var(--mono); fill: #d8c49a; stroke: #0b1111; stroke-width: .28px; paint-order: stroke; letter-spacing: .04em; transition: opacity .8s; }
.p0-intake-relation--wrong, .p0-intake-alert { fill: #f0a95a; }
.p0-intake-relation--fixed { fill: #a8ecd6; }
.p0-intake-alert { font: 600 .82px var(--font); stroke: #0b1111; stroke-width: .3px; paint-order: stroke; opacity: 0; }
.p0-intake-edge--fixed { stroke: #7ee1c8; stroke-width: .2; stroke-dasharray: 100; stroke-dashoffset: 100; opacity: 0; }
.p0-intake-relation--fixed { opacity: 0; }
.p0-stage--intake:is([data-beat="0"], [data-beat="1"], [data-beat="2"]) .p0-intake-graph-stage {
  transform: translate(calc(62 * var(--su)), calc(14.6 * var(--su))) scale(.39);
}
/* Мини-граф в хранилище медленно покачивается в объёме. */
.p0-stage--intake:is([data-beat="0"], [data-beat="1"], [data-beat="2"]) .p0-intake-graph {
  animation: p0-intake-graph-sway 14s ease-in-out infinite alternate;
}
@keyframes p0-intake-graph-sway {
  from { transform: rotateX(16deg) rotateY(-9deg) rotateZ(-1.5deg); }
  to { transform: rotateX(8deg) rotateY(9deg) rotateZ(1.5deg); }
}
.p0-stage--intake:is([data-beat="0"], [data-beat="1"], [data-beat="2"]) :is(.p0-graph-node__label, .p0-intake-relation) { opacity: 0; }
.p0-stage--intake:is([data-beat="0"], [data-beat="1"], [data-beat="2"]) .p0-intake-edge--chain { stroke-dashoffset: 100; }
/* Узлы растут по кольцам: второе — на бите «Запись», пока записи уходят в ядро,
   внешнее кольцо проявляется одной группой вместе с раскладкой. Прозрачность
   отдельных узлов и рёбер не меняется, поэтому рост не порождает лишних переходов. */
.p0-stage--intake[data-beat="0"] .p0-intake-graph [data-ring="2"] .p0-graph-node__shape { transform: scale(0); }
.p0-stage--intake[data-beat="0"] .p0-intake-graph .p0-intake-edge[data-ring="2"] { stroke-dashoffset: 100; }
.p0-intake-ring-3 { transition: opacity 1.2s var(--ease); }
.p0-stage--intake:is([data-beat="0"], [data-beat="1"]) .p0-intake-ring-3 { opacity: 0; }
.p0-stage--intake[data-beat="2"] .p0-intake-ring-3 { transition-delay: 5s; }
/* Трассеры видны только в большом графе: мини-граф анимируют покачивание,
   радар, орбиты, рост узлов и прорисовка рёбер, бюджет анимаций не тратится. */
.p0-stage--intake:is([data-beat="0"], [data-beat="1"], [data-beat="2"]) .p0-intake-graph .p0-graph-edge-tracer { opacity: 0; animation-play-state: paused; }
.p0-stage--intake:is([data-beat="3"], [data-beat="4"]) .p0-intake-world { transform: scale(.9); }
.p0-stage--intake:is([data-beat="3"], [data-beat="4"]) .p0-intake-world > *:not(.p0-intake-conveyor) { opacity: .07; }
.p0-stage--intake[data-beat="3"] .p0-intake-conveyor { opacity: .07; }
.p0-stage--intake[data-beat="4"] .p0-intake-world { z-index: 4; }
/* Поток за полупрозрачным графом не виден: пакеты и маршруты не анимируются. */
.p0-stage--intake:is([data-beat="3"], [data-beat="4"]) .p0-intake-packet { display: none; }
.p0-stage--intake:is([data-beat="3"], [data-beat="4"]) :is(.p0-intake-route, .p0-intake-rain, .p0-intake-cloud__blob, .p0-intake-db__ring) { animation: none; }
.p0-stage--intake[data-beat="4"] .p0-intake-graph { opacity: .55; }
.p0-stage--intake[data-beat="4"] .p0-intake-edge--wrong { stroke: #f0a95a; stroke-width: .22; animation: p0-intake-wrong 2.6s ease-in-out both; }
@keyframes p0-intake-wrong {
  0%, 30%, 60% { opacity: 1; }
  15%, 45% { opacity: .25; }
  100% { opacity: .35; stroke-dasharray: .6 .6; }
}
.p0-stage--intake[data-beat="4"] .p0-intake-alert { opacity: 1; transition: opacity .6s .3s; }
.p0-stage--intake[data-beat="4"] .p0-intake-edge--fixed { opacity: 1; stroke-dashoffset: 0; transition: stroke-dashoffset 1s var(--ease-out) 2s, opacity .3s 2s; }
.p0-stage--intake[data-beat="4"] .p0-intake-relation--fixed { opacity: 1; transition: opacity .6s 2.6s; }
.p0-stage--intake[data-beat="4"] .p0-intake-relation--wrong { opacity: .4; }
.p0-intake-chain-caption {
  position: absolute;
  z-index: 8;
  right: calc(3 * var(--su));
  top: calc(1.6 * var(--su));
  max-width: calc(52 * var(--su));
  margin: 0;
  font: 500 calc(.85 * var(--su)) var(--mono);
  letter-spacing: .08em;
  color: #f1d9a3;
  text-align: right;
  opacity: 0;
  transition: opacity .8s var(--ease) 1s;
}
.p0-stage--intake[data-beat="3"] .p0-intake-chain-caption { opacity: 1; }
.p0-pres[data-screen="intake"] .p0-pres-mark { top: calc(var(--frame-top) + 3.4 * var(--su)); }

/* Эстафета prism приносит ядро целиком, остальной мир проявляется. */
.p0-stage--intake[data-beat="0"] :is(.p0-intake-store, .p0-intake-caption, .p0-intake-conveyor) { animation: p0-intake-appear .9s var(--ease) .2s both; }
@keyframes p0-intake-appear { from { opacity: 0; } }

/* --- Пауза источника (бит «Приток и раскладка», как в «Настройки» → «Источники») --- */

.p0-intake-pause {
  display: grid;
  flex: none;
  margin-left: auto;
  font: 500 calc(.62 * var(--su))/1 var(--mono);
  letter-spacing: .04em;
}
.p0-intake-pause > span {
  grid-area: 1 / 1;
  padding: .35em .7em;
  border-radius: 999px;
  text-align: center;
  white-space: nowrap;
  transition: opacity .5s var(--ease);
}
.p0-intake-pause__on { border: 1px solid #e6cd9a66; color: #e6cd9a; opacity: 0; }
.p0-intake-pause__off { border: 1px solid #f0a95a88; background: #f0a95a1f; color: #f6c48a; }
.p0-intake-pause-note {
  position: absolute;
  left: calc(100% + .6 * var(--su));
  top: 50%;
  translate: 0 -50%;
  padding: .2em .7em;
  border: 1px solid #f0a95a55;
  border-radius: 999px;
  background: #151a18e6;
  font: 500 calc(.62 * var(--su)) var(--mono);
  color: #f3d3a8;
  white-space: nowrap;
  transition: opacity .6s var(--ease);
}
.p0-intake-source[data-paused] .p0-intake-source__icon,
.p0-intake-source[data-paused] .p0-intake-source__text { opacity: .4; transition: opacity .6s var(--ease); }
.p0-intake-paused-packets { opacity: 0; transition: opacity .6s var(--ease); }
.p0-stage--intake:is([data-beat="0"], [data-beat="1"]) .p0-intake-pause__on { opacity: 1; }
.p0-stage--intake:is([data-beat="0"], [data-beat="1"]) .p0-intake-pause__off,
.p0-stage--intake:is([data-beat="0"], [data-beat="1"]) .p0-intake-pause-note { opacity: 0; }
.p0-stage--intake:is([data-beat="0"], [data-beat="1"]) .p0-intake-source[data-paused] :is(.p0-intake-source__icon, .p0-intake-source__text) { opacity: 1; }
.p0-stage--intake:is([data-beat="0"], [data-beat="1"]) .p0-intake-paused-packets { opacity: 1; }
.p0-stage--intake[data-beat="2"] :is(.p0-intake-pause > span, .p0-intake-pause-note, .p0-intake-paused-packets),
.p0-stage--intake[data-beat="2"] .p0-intake-source[data-paused] :is(.p0-intake-source__icon, .p0-intake-source__text) { transition-delay: 8s; }

/* --- Бит «Запись» (сценарий A) ---------------------------------------------------- */

.p0-intake-capture {
  --parse-at: 3.4s;
  position: absolute;
  z-index: 6;
  display: grid;
  gap: calc(.55 * var(--su));
  padding: calc(1 * var(--su)) calc(1.1 * var(--su));
  border: 1px solid #e6cd9a4d;
  border-radius: calc(1.1 * var(--su));
  background: linear-gradient(155deg, #1d2a29fa, #0d1414fc);
  box-shadow: inset 0 1px #f3e6c91a, 0 calc(1 * var(--su)) calc(4 * var(--su)) #040707b3;
  transform-origin: 35% 80%;
  opacity: 0;
  visibility: hidden;
  scale: .94;
  transition: opacity .6s var(--ease), scale .6s var(--ease-out), visibility .6s;
}
.p0-stage--intake[data-beat="1"] .p0-intake-capture { opacity: 1; visibility: visible; scale: 1; --parse: p0-channels-parse; --parse-sweep: p0-channels-parse-sweep; }
.p0-stage--intake[data-beat="1"] .p0-intake-source[data-capture] { border-color: #e6cd9a; box-shadow: 0 0 calc(2 * var(--su)) #e6cd9a55; }
.p0-intake-source { transition: opacity .6s var(--ease); }
.p0-stage--intake[data-beat="1"] .p0-intake-source:not([data-capture]) { opacity: .15; }
.p0-intake-capture__head { display: flex; align-items: center; gap: calc(.6 * var(--su)); min-width: 0; }
.p0-intake-capture__icon {
  display: grid;
  place-items: center;
  flex: none;
  width: calc(1.9 * var(--su));
  height: calc(1.9 * var(--su));
  border-radius: calc(.6 * var(--su));
  background: #e6cd9a1f;
  color: #e6cd9a;
}
.p0-intake-capture__icon .ui-icon { width: 60%; height: 60%; }
.p0-intake-capture__head b { font-size: calc(1.1 * var(--su)); font-weight: 600; color: #f6f2ea; white-space: nowrap; }
.p0-intake-capture__template {
  overflow: hidden;
  margin-left: auto;
  padding: .2em .7em;
  border: 1px solid #b7a2f566;
  border-radius: 999px;
  font: 500 calc(.6 * var(--su)) var(--mono);
  color: #c9bdf7;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.p0-intake-capture__text {
  position: relative;
  overflow: hidden;
  padding: calc(.7 * var(--su)) calc(2.2 * var(--su)) calc(.6 * var(--su)) calc(.9 * var(--su));
  border: 1px solid #e6cd9a33;
  border-radius: calc(.7 * var(--su));
  background: #0b1111cc;
}
.p0-intake-capture__text p { margin: 0; font-size: calc(1.02 * var(--su)); line-height: 1.35; color: #f1ede4; }
.p0-intake-capture__text .p0-channels-parse__lock { top: calc(.6 * var(--su)); translate: none; --parse-step-at: 1s; }
.p0-intake-capture__lock { display: block; margin-top: calc(.35 * var(--su)); font: 500 calc(.6 * var(--su)) var(--mono); letter-spacing: .06em; color: #b9a57c; --parse-step-at: 1.1s; }
.p0-intake-capture__text .p0-channels-parse__beam { --parse-sweep-at: .1s; }
.p0-intake-capture__label { margin: 0; font: 500 calc(.64 * var(--su)) var(--mono); letter-spacing: .1em; text-transform: uppercase; color: #cdb98f; }
.p0-intake-capture__preview { position: relative; padding-left: calc(1.3 * var(--su)); }
.p0-intake-capture__links { position: absolute; left: 0; top: 0; width: calc(1.3 * var(--su)); height: 100%; overflow: visible; }
.p0-intake-capture__links .p0-channels-parse__edges { stroke: #e6cd9a; stroke-width: 1.2px; --parse-step-at: 2.9s; }
.p0-intake-capture__rows { display: grid; gap: calc(.35 * var(--su)); margin: 0; padding: 0; list-style: none; }
.p0-intake-capture__rows li {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  column-gap: calc(.5 * var(--su));
  align-items: baseline;
  padding: calc(.35 * var(--su)) calc(.7 * var(--su));
  border: 1px solid rgba(var(--entity-rgb), .45);
  border-left-width: 3px;
  border-radius: calc(.6 * var(--su));
  background: linear-gradient(120deg, rgba(var(--entity-rgb), .12), #0f1716e6 60%);
  font-size: calc(.72 * var(--su));
  line-height: 1.25;
  --parse-from-t: translateY(calc(-1 * var(--su))) scale(.94);
  --parse-step-at: calc(1.3s + var(--k) * .45s);
}
.p0-intake-capture__rows .entity-icon { grid-row: span 3; align-self: center; font-size: 1.4em; }
.p0-intake-capture__role { font: 500 calc(.58 * var(--su)) var(--mono); letter-spacing: .08em; text-transform: uppercase; color: rgb(var(--entity-rgb)); }
.p0-intake-capture__rows b { overflow: hidden; font-size: calc(.9 * var(--su)); font-weight: 580; color: #f3efe6; white-space: nowrap; text-overflow: ellipsis; }
.p0-intake-capture__rows small { color: #a9b5b1; font-size: calc(.68 * var(--su)); }
.p0-intake-capture__foot { display: flex; align-items: center; gap: calc(.8 * var(--su)); }
.p0-intake-capture__save {
  display: inline-flex;
  align-items: center;
  flex: none;
  min-height: calc(2.2 * var(--su));
  padding: 0 1.1em;
  border: 1px solid #efe0c1;
  border-radius: 999px;
  background: linear-gradient(135deg, #eddbb8, #e0c184);
  font-size: calc(.82 * var(--su));
  font-weight: 560;
  color: #1c2a29;
}
.p0-intake-capture__status { display: grid; gap: calc(.2 * var(--su)); margin: 0; font-size: calc(.64 * var(--su)); line-height: 1.25; }
.p0-intake-capture__saved { color: #a8ecd6; --parse-step-at: 3.9s; }
.p0-intake-capture__again { color: #f3d3a8; --parse-step-at: 5.1s; }
.p0-intake-capture__scenario { margin: 0; font: 500 calc(.58 * var(--su)) var(--mono); letter-spacing: .04em; color: #8d9a96; }
.p0-intake-word { transition: none; }
/* Только backwards: с fill forwards погрешность calc() в задержке оставляет
   steps(1) в начальном кадре, и слово не проявляется. */
.p0-stage--intake[data-beat="1"] .p0-intake-word { animation: p0-intake-word .01s steps(1) calc(.7s + var(--w) * .13s) backwards; }
@keyframes p0-intake-word { from { opacity: 0; } }
/* Два нажатия «Сохранить»: первое создаёт записи, второе дублей не создаёт. */
.p0-stage--intake[data-beat="1"] .p0-intake-capture__save { animation: p0-intake-press 1.6s var(--ease) 7s both; }
@keyframes p0-intake-press {
  0%, 16%, 70%, 86%, 100% { scale: 1; box-shadow: none; }
  8%, 78% { scale: .93; box-shadow: 0 0 calc(1.6 * var(--su)) #e6cd9a88; }
}
/* Подтверждённые записи уходят в ядро. */
.p0-intake-drop { display: none; fill: rgb(var(--entity-rgb)); offset-rotate: 0deg; }
.p0-stage--intake[data-beat="1"] .p0-intake-drop { display: inline; animation: p0-intake-drop 1.1s ease-in calc(7.4s + var(--k) * .15s) both; }
@keyframes p0-intake-drop {
  0% { offset-distance: 0%; opacity: 0; }
  15% { opacity: 1; }
  100% { offset-distance: 100%; opacity: 0; }
}
