/*
 * Blueprint animations for LiveAndBreathingEssay.html.
 *
 * Builds on dist/flowAnimations.css: the .flow-anim shell, .fx-stage / .fx-card /
 * .fx-wire grammar and the reduced-motion rules are inherited from there. This
 * file adds only the pieces the blueprint needs — the four-stage ribbon, the
 * document panel with its skipped headings, the redline, the sign-off row, the
 * overflow tray and the shelf-life comparison.
 */

.lbe-anim {
  max-width: 940px;
  background: linear-gradient(150deg, #f0fdfa 0%, #ffffff 52%, #f8fafc 100%);
  border: 1px solid rgba(13, 148, 136, 0.18);
  box-shadow: 0 4px 22px rgba(13, 148, 136, 0.08);
  margin: 22px auto 30px;
}

.lbe-anim .fx-caption { min-height: 15px; }

/* ── the redline ────────────────────────────────────────────────────────── */
.lbe-anim .bp-redline {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
  padding: 9px 11px 10px;
  margin-bottom: 9px;
}

.lbe-anim .bp-redline-hd {
  font-size: 9.5px;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  font-weight: 700;
  color: #94a3b8;
  border-bottom: 1px solid #f1f5f9;
  padding-bottom: 5px;
  margin-bottom: 6px;
}

.lbe-anim .bp-redline p {
  font-size: 11.5px;
  line-height: 1.55;
  color: #334155;
  margin: 0;
}

.lbe-anim .bp-redline ins {
  background: rgba(16, 185, 129, 0.16);
  color: #065f46;
  text-decoration: none;
  border-radius: 3px;
  padding: 0 2px;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

.lbe-anim .bp-redline del {
  background: rgba(244, 63, 94, 0.12);
  color: #9f1239;
  border-radius: 3px;
  padding: 0 2px;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

/* ── freshness stamp ────────────────────────────────────────────────────── */
.lbe-anim .bp-stamp {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 10.5px;
  font-weight: 600;
  color: #0f766e;
  background: rgba(13, 148, 136, 0.09);
  border: 1px solid rgba(13, 148, 136, 0.22);
  border-radius: 999px;
  padding: 4px 11px;
}

.lbe-anim .bp-stamp-off {
  color: #64748b;
  background: #f1f5f9;
  border-color: #e2e8f0;
}

/* ── the accept / revert buttons on the gate ────────────────────────────── */
.lbe-anim .bp-btn {
  display: inline-block;
  padding: 4px 12px;
  border-radius: 6px;
  border: 1px solid #cbd5e1;
  background: #ffffff;
  font-family: var(--lbe-sans, system-ui, sans-serif);
  font-size: 10.5px;
  font-weight: 700;
  color: #64748b;
  white-space: nowrap;
  transition: background 0.25s ease, border-color 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.lbe-anim .bp-btn.is-picked {
  background: #0d9488;
  border-color: #0d9488;
  color: #ffffff;
  transform: translateY(-1px);
}

.lbe-anim .bp-btn-no.is-picked {
  background: #b91c1c;
  border-color: #b91c1c;
}

/* ══════════════════════════════════════════════════════════════════════════
   The map (#lbe-hero-anim). Four components at a glance, and one broken wire
   ══════════════════════════════════════════════════════════════════════════ */

.lbe-anim .bpm-feed {
  display: grid;
  grid-template-columns: 1fr 40px 1fr 96px 1fr 40px 1fr;
  margin-bottom: 2px;
  opacity: 0.35;
  transition: opacity 0.4s ease, color 0.4s ease;
  color: #94a3b8;
}

.lbe-anim .bpm-feed-in {
  grid-column: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.lbe-anim .bpm-feed.is-on { opacity: 1; color: #0d9488; }

.lbe-anim .bpm-feed-l {
  font-family: var(--lbe-sans, system-ui, sans-serif);
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.9px;
  text-transform: uppercase;
  color: inherit;
}

.lbe-anim .bpm-feed-a { font-size: 15px; line-height: 1.1; color: inherit; }

.lbe-anim .bpm-rail {
  display: grid;
  grid-template-columns: 1fr 40px 1fr 96px 1fr 40px 1fr;
  align-items: stretch;
  gap: 0;
}

/* ── the four cards ─────────────────────────────────────────────────────── */
.lbe-anim .bpm-card {
  display: flex;
  flex-direction: column;
  padding: 11px 12px 10px;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  background: #ffffff;
  transition: border-color 0.4s ease, box-shadow 0.4s ease, background 0.4s ease;
}

.lbe-anim .bpm-card.is-on {
  border-color: rgba(13, 148, 136, 0.55);
  box-shadow: 0 0 0 3px rgba(13, 148, 136, 0.09);
  background: #f8fffe;
}

.lbe-anim .bpm-top {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 4px;
}

.lbe-anim .bpm-badge {
  display: inline-block;
  min-width: 22px;
  text-align: center;
  padding: 2px 4px;
  border-radius: 5px;
  background: #0f766e;
  color: #ffffff;
  font-family: var(--lbe-sans, system-ui, sans-serif);
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: 0.4px;
}

.lbe-anim .bpm-name {
  font-family: var(--lbe-sans, system-ui, sans-serif);
  font-size: 13px;
  font-weight: 800;
  color: #0f172a;
}

.lbe-anim .bpm-q {
  font-family: var(--lbe-serif, Georgia, serif);
  font-size: 12px;
  font-style: italic;
  line-height: 1.4;
  color: #64748b;
  min-height: 34px;
}

.lbe-anim .bpm-body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 46px;
  margin: 6px 0 5px;
}

.lbe-anim .bpm-st {
  font-family: var(--lbe-sans, system-ui, sans-serif);
  font-size: 10.5px;
  color: #94a3b8;
  min-height: 14px;
}

.lbe-anim .bpm-st b { color: #0f766e; }

/* ── C4, a clock ────────────────────────────────────────────────────────── */
.lbe-anim .bpm-ticks { display: flex; align-items: flex-end; gap: 3px; height: 20px; }

.lbe-anim .bpm-tick {
  flex: 1 1 auto;
  height: 8px;
  border-radius: 2px;
  background: #eef2f7;
  transition: background 0.3s ease, height 0.3s ease;
}

.lbe-anim .bpm-tick.is-on { background: #cbd5e1; }

.lbe-anim .bpm-tick.is-fired {
  background: #0d9488;
  height: 20px;
  box-shadow: 0 0 0 3px rgba(13, 148, 136, 0.15);
}

/* ── C3, a lot arrives and almost all of it goes ────────────────────────── */
.lbe-anim .bpm-dots {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  gap: 4px;
}

.lbe-anim .bpm-dot {
  justify-self: center;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #f1f5f9;
  opacity: 0;
  transition: opacity 0.3s ease, background 0.4s ease, transform 0.4s ease;
}

.lbe-anim .bpm-dot.is-in { opacity: 1; background: #94a3b8; }
.lbe-anim .bpm-dot.is-out { opacity: 0.16; background: #cbd5e1; transform: scale(0.6); }

.lbe-anim .bpm-dot.is-keep {
  opacity: 1;
  background: #0d9488;
  transform: scale(1.5);
  box-shadow: 0 0 0 3px rgba(13, 148, 136, 0.18);
}

/* ── C2, three claims and one of them moves ─────────────────────────────── */
.lbe-anim .bpm-claims { display: flex; flex-direction: column; gap: 5px; }

.lbe-anim .bpm-claim {
  height: 9px;
  border-radius: 3px;
  background: #eef2f7;
  transition: background 0.4s ease, box-shadow 0.4s ease;
}

.lbe-anim .bpm-claim.is-hit { background: #99f6e4; }
.lbe-anim .bpm-claim.is-wrote { background: #0d9488; box-shadow: 0 0 0 3px rgba(13, 148, 136, 0.16); }

/* ── C1, the page ───────────────────────────────────────────────────────── */
.lbe-anim .bpm-lines { display: flex; flex-direction: column; gap: 4px; }

.lbe-anim .bpm-line {
  height: 5px;
  border-radius: 3px;
  background: #eef2f7;
  transition: background 0.4s ease;
}

.lbe-anim .bpm-line:nth-child(3) { width: 62%; }
.lbe-anim .bpm-line.is-wrote { background: #5eead4; }

.lbe-anim .bpm-stamp {
  display: inline-block;
  margin-top: 7px;
  padding: 2px 7px;
  border-radius: 20px;
  background: #f1f5f9;
  color: #cbd5e1;
  font-family: var(--lbe-sans, system-ui, sans-serif);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.3px;
  transition: background 0.4s ease, color 0.4s ease;
}

.lbe-anim .bpm-stamp::before { content: '\2713  updated today'; }
.lbe-anim .bpm-stamp.is-on { background: #ccfbf1; color: #0f766e; }

/* ── the wires between them ─────────────────────────────────────────────── */
.lbe-anim .bpm-slot {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
}

.lbe-anim .bpm-wire {
  position: relative;
  width: 100%;
  height: 2px;
  border-top: 2px solid #e2e8f0;
  transition: border-color 0.4s ease;
}

.lbe-anim .bpm-wire.is-on { border-color: #99f6e4; }

.lbe-anim .bpm-pk {
  position: absolute;
  top: -5px;
  left: 0;
  width: 8px;
  height: 8px;
  margin-left: -4px;
  border-radius: 50%;
  background: #0d9488;
  opacity: 0;
  transition: left 0.85s ease, opacity 0.3s ease;
}

.lbe-anim .bpm-pk.is-half { opacity: 1; left: 50%; }
.lbe-anim .bpm-pk.is-go { opacity: 1; left: 100%; }

/* the one wire the architecture leaves open until a person closes it */
.lbe-anim .bpm-wire-cut { border-top-style: dashed; border-top-color: #fcd34d; }
.lbe-anim .bpm-wire-cut.is-on { border-top-color: #f59e0b; }

.lbe-anim .bpm-wire-cut.is-open {
  border-top-style: solid;
  border-top-color: #0d9488;
}

.lbe-anim .bpm-slot-gate { gap: 3px; }

.lbe-anim .bpm-gate {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  border: 1px dashed #e2e8f0;
  background: #ffffff;
  font-family: var(--lbe-sans, system-ui, sans-serif);
  font-size: 12px;
  font-weight: 800;
  color: #cbd5e1;
  transition: border-color 0.4s ease, color 0.4s ease, background 0.4s ease, box-shadow 0.4s ease;
}

.lbe-anim .bpm-gate.is-on {
  border-color: #f59e0b;
  border-style: solid;
  background: #fffbeb;
  color: #b45309;
  box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.15);
}

.lbe-anim .bpm-gate.is-ok {
  border-color: #0d9488;
  background: #ccfbf1;
  color: #0f766e;
  box-shadow: 0 0 0 3px rgba(13, 148, 136, 0.15);
}

.lbe-anim .bpm-gate-l {
  font-family: var(--lbe-sans, system-ui, sans-serif);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  color: #b45309;
  white-space: nowrap;
}

/* ── the narration ──────────────────────────────────────────────────────── */
.lbe-anim .bpm-say {
  margin: 14px auto 0;
  max-width: 620px;
  text-align: center;
  font-family: var(--lbe-serif, Georgia, serif);
  font-size: 14.5px;
  line-height: 1.6;
  color: #0f172a;
  min-height: 46px;
}

/* ══════════════════════════════════════════════════════════════════════════
   The four components animation (#lbe-stack-anim)
   ══════════════════════════════════════════════════════════════════════════ */

/* ── the map: four components, four edges, one of them missing ───────────── */
.lbe-anim .bpc-map {
  display: flex;
  align-items: stretch;
  justify-content: center;
  flex-wrap: wrap;
  gap: 2px;
  margin-bottom: 7px;
}

.lbe-anim .bpc-node,
.lbe-anim .bpc-gnode {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 6px 8px;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
  background: #ffffff;
  font-family: var(--lbe-sans, system-ui, sans-serif);
  font-size: 11px;
  font-weight: 700;
  color: #475569;
  white-space: nowrap;
  transition: border-color 0.35s ease, box-shadow 0.35s ease, color 0.35s ease, opacity 0.35s ease;
}

.lbe-anim .bpc-node.is-on {
  border-color: rgba(13, 148, 136, 0.55);
  box-shadow: 0 0 0 3px rgba(13, 148, 136, 0.09);
  color: #0f172a;
}

.lbe-anim .bpc-node.is-skip,
.lbe-anim .bpc-gnode.is-skip { opacity: 0.4; }

.lbe-anim .bpc-nlab {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1px;
  line-height: 1.25;
}

.lbe-anim .bpc-svc {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 8px;
  font-weight: 600;
  letter-spacing: 0.1px;
  color: #94a3b8;
}

.lbe-anim .bpc-node.is-on .bpc-svc { color: #0d9488; }
.lbe-anim .bpc-gnode.is-on .bpc-svc { color: #b45309; }

/* component 5 is the one a person operates, so it is drawn dashed and amber */
.lbe-anim .bpc-gnode {
  border-style: dashed;
  border-color: #fcd34d;
  background: #fffbeb;
  color: #92400e;
}

.lbe-anim .bpc-gnode.is-on {
  border-color: #f59e0b;
  box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.14);
}

.lbe-anim .bpc-gnode .bpc-badge { background: #b45309; }

.lbe-anim .bpc-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  padding: 0 2px;
  min-width: 36px;
  transition: color 0.35s ease, opacity 0.35s ease;
  color: #cbd5e1;
}

.lbe-anim .bpc-link.is-on { color: #0d9488; }
.lbe-anim .bpc-link.is-skip { opacity: 0.35; }

.lbe-anim .bpc-link-t {
  font-family: var(--lbe-sans, system-ui, sans-serif);
  font-size: 8.5px;
  font-weight: 700;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: inherit;
}

.lbe-anim .bpc-link-a {
  font-size: 15px;
  line-height: 1;
  color: inherit;
}

/* the C3 to gate edge is the one the architecture interrupts */
.lbe-anim .bpc-link-cut .bpc-link-a {
  border-top: 1px dashed currentColor;
  padding-top: 1px;
}

.lbe-anim .bpc-link-cut.is-on { color: #b45309; }

.lbe-anim .bpc-maprule {
  margin: 0 0 12px;
  text-align: center;
  font-family: var(--lbe-sans, system-ui, sans-serif);
  font-size: 10.5px;
  font-weight: 600;
  color: #94a3b8;
  letter-spacing: 0.1px;
}

/* ── backend stack on the left, the page a reader sees on the right ─────── */
.lbe-anim .bpc-split {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) auto minmax(0, 1fr);
  align-items: start;
  gap: 0;
}

.lbe-anim .bpc-sidelbl {
  font-family: var(--lbe-sans, system-ui, sans-serif);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 1.1px;
  text-transform: uppercase;
  color: #94a3b8;
  margin-bottom: 6px;
}

.lbe-anim .bpc-across {
  flex-direction: column;
  align-self: center;
  padding: 0 7px;
}

.lbe-anim .bpc-across::before,
.lbe-anim .bpc-across::after {
  width: 15px;
  height: 1px;
}

/* ── the component panels ────────────────────────────────────────────────── */
.lbe-anim .bpc-comp {
  border: 1px solid #e2e8f0;
  border-radius: 11px;
  background: #ffffff;
  padding: 11px 13px 12px;
  transition: border-color 0.35s ease, box-shadow 0.35s ease, background 0.35s ease;
}

.lbe-anim .bpc-comp.is-on {
  border-color: rgba(13, 148, 136, 0.5);
  box-shadow: 0 0 0 3px rgba(13, 148, 136, 0.08);
  background: #f8fffe;
}

.lbe-anim .bpc-hd {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
  font-family: var(--lbe-sans, system-ui, sans-serif);
  font-size: 12.5px;
  font-weight: 800;
  color: #0f172a;
  margin-bottom: 9px;
}

.lbe-anim .bpc-hd-sub {
  font-size: 10.5px;
  font-weight: 500;
  color: #94a3b8;
  letter-spacing: 0.1px;
}

.lbe-anim .bpc-badge {
  display: inline-block;
  min-width: 20px;
  text-align: center;
  padding: 2px 4px;
  border-radius: 5px;
  background: #0f766e;
  color: #ffffff;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.5px;
}

/* ── C4, the clock ───────────────────────────────────────────────────────── */
.lbe-anim .bpc-sched-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}

.lbe-anim .bpc-ticks {
  display: flex;
  align-items: flex-end;
  gap: 4px;
  flex: 1 1 200px;
}

.lbe-anim .bpc-tick {
  flex: 1 1 auto;
  height: 12px;
  border-radius: 2px;
  background: #e2e8f0;
  transition: background 0.3s ease, height 0.3s ease;
}

.lbe-anim .bpc-tick.is-past { background: #cbd5e1; }

.lbe-anim .bpc-tick.is-fired {
  background: #0d9488;
  height: 20px;
  box-shadow: 0 0 0 3px rgba(13, 148, 136, 0.14);
}

.lbe-anim .bpc-sched-state {
  font-family: var(--lbe-sans, system-ui, sans-serif);
  font-size: 11px;
  color: #64748b;
  white-space: nowrap;
}

.lbe-anim .bpc-sched-state b { color: #0f766e; }

/* ── the vertical connectors between panels ──────────────────────────────── */
.lbe-anim .bpc-down {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 5px 0;
  font-family: var(--lbe-sans, system-ui, sans-serif);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  color: #cbd5e1;
  transition: color 0.35s ease;
}

.lbe-anim .bpc-down::before,
.lbe-anim .bpc-down::after {
  content: '';
  width: 1px;
  height: 13px;
  background: currentColor;
}

.lbe-anim .bpc-down.is-on { color: #0d9488; }
.lbe-anim .bpc-down.is-skip { color: #e2e8f0; }

/* ── C3, the four movements ──────────────────────────────────────────────── */
.lbe-anim .bpc-moves {
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.lbe-anim .bpc-mv {
  display: grid;
  grid-template-columns: 18px 62px 1fr;
  align-items: baseline;
  gap: 4px 8px;
  padding: 6px 8px;
  border-radius: 7px;
  font-family: var(--lbe-sans, system-ui, sans-serif);
  font-size: 11px;
  color: #cbd5e1;
  transition: background 0.3s ease, color 0.3s ease;
}

.lbe-anim .bpc-mv.is-on {
  background: #f0fdfa;
  color: #475569;
}

.lbe-anim .bpc-mv.is-skip { opacity: 0.7; }

.lbe-anim .bpc-mv-n {
  display: inline-block;
  width: 16px;
  height: 16px;
  line-height: 16px;
  text-align: center;
  border-radius: 50%;
  background: #f1f5f9;
  color: #94a3b8;
  font-size: 9.5px;
  font-weight: 800;
  transition: background 0.3s ease, color 0.3s ease;
}

.lbe-anim .bpc-mv.is-on .bpc-mv-n { background: #0d9488; color: #ffffff; }

.lbe-anim .bpc-mv-nm { font-weight: 800; color: inherit; }
.lbe-anim .bpc-mv.is-on .bpc-mv-nm { color: #0f172a; }

.lbe-anim .bpc-mv-rd {
  grid-column: 3;
  font-size: 10px;
  font-style: italic;
  color: #94a3b8;
}

.lbe-anim .bpc-mv.is-skip .bpc-mv-rd { text-decoration: line-through; }

.lbe-anim .bpc-mv-out {
  grid-column: 3;
  font-size: 11px;
  line-height: 1.5;
  color: #475569;
}

.lbe-anim .bpc-mv-out:empty { display: none; }
.lbe-anim .bpc-mv-out b { color: #0f172a; }
.lbe-anim .bpc-ok { color: #0d9488; font-weight: 700; margin-right: 4px; }

.lbe-anim .bpc-draft:empty { display: none; }
.lbe-anim .bpc-draft { margin-top: 8px; }

/* ── the gate, sitting on the missing edge ───────────────────────────────── */
.lbe-anim .bpc-gate {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 8px;
  padding: 9px 12px;
  border: 1px dashed #e2e8f0;
  border-radius: 10px;
  background: #fcfcfd;
  font-family: var(--lbe-sans, system-ui, sans-serif);
  transition: border-color 0.35s ease, background 0.35s ease;
}

.lbe-anim .bpc-gate.is-on {
  border-color: #f59e0b;
  background: #fffbeb;
}

.lbe-anim .bpc-gate.is-skip { opacity: 0.55; }

.lbe-anim .bpc-gate-lbl {
  font-size: 11px;
  color: #64748b;
  flex: 1 1 220px;
}

.lbe-anim .bpc-gate-lbl b { color: #b45309; }
.lbe-anim .bpc-gate-btns { display: flex; gap: 6px; }

/* ── C2, the claims and the structures with no counterpart on the page ───── */
.lbe-anim .bpc-json {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.lbe-anim .bpc-row {
  padding: 6px 9px;
  border-radius: 7px;
  border: 1px solid #eef2f7;
  background: #fbfcfe;
  transition: border-color 0.3s ease, background 0.3s ease;
}

.lbe-anim .bpc-row.is-hit {
  border-color: rgba(13, 148, 136, 0.4);
  background: #f0fdfa;
}

.lbe-anim .bpc-row.is-wrote {
  border-color: rgba(5, 150, 105, 0.55);
  background: #ecfdf5;
}

.lbe-anim .bpc-key {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10.5px;
  font-weight: 700;
  color: #0f766e;
  margin-right: 8px;
}

.lbe-anim .bpc-meta {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 9.5px;
  color: #94a3b8;
}

.lbe-anim .bpc-text {
  margin-top: 4px;
  font-family: var(--lbe-sans, system-ui, sans-serif);
  font-size: 10.5px;
  line-height: 1.5;
  color: #475569;
}

.lbe-anim .bpc-text:empty { display: none; }

.lbe-anim .bpc-text ins {
  background: #d1fae5;
  color: #065f46;
  text-decoration: none;
  border-radius: 2px;
  padding: 0 2px;
}

.lbe-anim .bpc-auxrow {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 8px;
}

.lbe-anim .bpc-aux {
  padding: 3px 8px;
  border: 1px dashed #e2e8f0;
  border-radius: 20px;
  background: #ffffff;
  font-family: var(--lbe-sans, system-ui, sans-serif);
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.2px;
  color: #cbd5e1;
  transition: color 0.3s ease, border-color 0.3s ease, background 0.3s ease;
}

.lbe-anim .bpc-aux.is-read {
  color: #0f766e;
  border-color: rgba(13, 148, 136, 0.45);
  border-style: solid;
}

.lbe-anim .bpc-aux.is-wrote {
  color: #065f46;
  border-color: #059669;
  border-style: solid;
  background: #ecfdf5;
}

.lbe-anim .bpc-state {
  margin-top: 9px;
  font-family: var(--lbe-sans, system-ui, sans-serif);
  font-size: 11px;
  color: #64748b;
}

.lbe-anim .bpc-state b { color: #0f766e; }

/* ── C1, the page ────────────────────────────────────────────────────────── */
.lbe-anim .bpc-sent {
  margin: 0 0 5px;
  padding: 5px 9px;
  border-radius: 6px;
  font-family: var(--lbe-serif, Georgia, serif);
  font-size: 12px;
  line-height: 1.6;
  color: #334155;
  transition: background 0.3s ease, box-shadow 0.3s ease;
}

.lbe-anim .bpc-sent.is-hit { background: #f0fdfa; box-shadow: inset 2px 0 0 #0d9488; }
.lbe-anim .bpc-sent.is-wrote { background: #ecfdf5; box-shadow: inset 2px 0 0 #059669; }

.lbe-anim .bpc-sent ins {
  background: #d1fae5;
  color: #065f46;
  text-decoration: none;
  border-radius: 2px;
  padding: 0 2px;
}

.lbe-anim .bpc-date { margin-top: 9px; }

/* ── the verdict, outside every component ────────────────────────────────── */
.lbe-anim .bpc-verdict {
  margin-top: 12px;
  padding: 10px 13px;
  border-left: 3px solid #0d9488;
  background: #f8fafc;
  border-radius: 0 8px 8px 0;
}

.lbe-anim .bpc-verdict:empty { display: none; }

.lbe-anim .bpc-verdict b {
  display: block;
  font-family: var(--lbe-sans, system-ui, sans-serif);
  font-size: 12px;
  color: #0f172a;
  margin-bottom: 3px;
}

.lbe-anim .bpc-verdict span {
  display: block;
  font-family: var(--lbe-sans, system-ui, sans-serif);
  font-size: 11px;
  line-height: 1.6;
  color: #64748b;
}

/* ── responsive ─────────────────────────────────────────────────────────── */
@media (max-width: 860px) {
  .lbe-anim .bpc-link { min-width: 40px; }
  .lbe-anim .bpm-q { font-size: 11px; }
  .lbe-anim .bpm-rail,
  .lbe-anim .bpm-feed { grid-template-columns: 1fr 26px 1fr 74px 1fr 26px 1fr; }
  .lbe-anim .bpm-card { padding: 9px 9px 8px; }
  .lbe-anim .bpm-name { font-size: 11.5px; }
}

@media (max-width: 640px) {
  /* the rail becomes a column, so every wire and gate turns through 90 degrees */
  .lbe-anim .bpm-rail { grid-template-columns: 1fr; }
  /* stacked, the strip would point into C4 rather than C3, so it goes */
  .lbe-anim .bpm-feed { display: none; }
  .lbe-anim .bpm-slot { flex-direction: row; gap: 8px; padding: 7px 0; }
  .lbe-anim .bpm-wire { width: 2px; height: 22px; border-top: 0; border-left: 2px solid #e2e8f0; }
  .lbe-anim .bpm-wire.is-on { border-left-color: #99f6e4; }
  .lbe-anim .bpm-wire-cut { border-left-style: dashed; border-left-color: #fcd34d; }
  .lbe-anim .bpm-wire-cut.is-on { border-left-color: #f59e0b; }
  .lbe-anim .bpm-wire-cut.is-open { border-left-style: solid; border-left-color: #0d9488; }
  .lbe-anim .bpm-pk { top: 0; left: -5px; margin-left: 0; transition: top 0.85s ease, opacity 0.3s ease; }
  .lbe-anim .bpm-pk.is-half { left: -5px; top: 50%; }
  .lbe-anim .bpm-pk.is-go { left: -5px; top: 100%; }
  .lbe-anim .bpm-q { min-height: 0; }
  .lbe-anim .bpm-say { font-size: 13px; }
  .lbe-anim .bpc-hd-sub,
  .lbe-anim .bpc-svc,
  .lbe-anim .bpc-mv-rd { display: none; }
  .lbe-anim .bpc-map { gap: 0; }
  .lbe-anim .bpc-node,
  .lbe-anim .bpc-gnode { padding: 5px 7px; font-size: 10px; }
  .lbe-anim .bpc-link { min-width: 30px; }
  .lbe-anim .bpc-link-t { font-size: 7.5px; letter-spacing: 0.2px; }
  .lbe-anim .bpc-mv { grid-template-columns: 16px 1fr; }
  .lbe-anim .bpc-split { grid-template-columns: 1fr; }
  .lbe-anim .bpc-across { flex-direction: row; padding: 5px 0; }
  .lbe-anim .bpc-across::before,
  .lbe-anim .bpc-across::after { width: 1px; height: 13px; }
  .lbe-anim .bpc-mv-out { grid-column: 2; }
}

/* ── accessibility: reduced motion ──────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .lbe-anim .bp-btn.is-picked { transform: none; }
  .lbe-anim .bpm-card,
  .lbe-anim .bpm-tick,
  .lbe-anim .bpm-dot,
  .lbe-anim .bpm-claim,
  .lbe-anim .bpm-line,
  .lbe-anim .bpm-stamp,
  .lbe-anim .bpm-wire,
  .lbe-anim .bpm-pk,
  .lbe-anim .bpm-gate,
  .lbe-anim .bpm-feed,
  .lbe-anim .bpc-comp,
  .lbe-anim .bpc-node,
  .lbe-anim .bpc-gnode,
  .lbe-anim .bpc-link,
  .lbe-anim .bpc-row,
  .lbe-anim .bpc-sent,
  .lbe-anim .bpc-mv,
  .lbe-anim .bpc-mv-n,
  .lbe-anim .bpc-aux,
  .lbe-anim .bpc-tick,
  .lbe-anim .bpc-gate,
  .lbe-anim .bpc-down { transition: none; }
}
