/* Slides 25-26: position problem and position fingerprint. */

.story-layout {
  margin-top: 0.88rem;
  display: flex;
  justify-content: center;
  align-items: stretch;
  flex: 1 1 auto;
  min-height: 0;
}

.story-stage {
  width: min(100%, 60rem);
  padding: 1rem 1.05rem;
  display: grid;
  grid-template-rows: auto 1fr;
  gap: 0.8rem;
  align-content: start;
  min-height: 0;
  background:
    radial-gradient(circle at 16% 12%, rgba(42, 79, 214, 0.08), transparent 34%),
    var(--surface);
}

.story-takeaway {
  width: min(100%, 56rem);
  margin: 0.82rem auto 0;
  padding: 0.62rem 0.78rem;
  border-radius: var(--radius-md);
  border: 1px solid rgba(42, 79, 214, 0.55);
  background: rgba(42, 79, 214, 0.1);
  color: #0d1020;
  font-size: var(--fs-xs);
  line-height: 1.45;
}

.story-vector {
  --story-fill-top: rgba(42, 79, 214, 0.22);
  --story-fill-bottom: rgba(42, 79, 214, 0.1);
  --story-border: rgba(42, 79, 214, 0.34);
  --story-step: 12.5%;
  position: relative;
  min-width: 7.2rem;
  height: 0.9rem;
  border-radius: var(--radius-sm);
  border: 1px solid var(--story-border);
  background:
    repeating-linear-gradient(
      90deg,
      rgba(20, 30, 80, 0.02) 0,
      rgba(20, 30, 80, 0.02) calc(var(--story-step) - 1px),
      rgba(60, 70, 130, 0.20) calc(var(--story-step) - 1px),
      rgba(60, 70, 130, 0.20) var(--story-step)
    ),
    linear-gradient(180deg, var(--story-fill-top), var(--story-fill-bottom));
  box-shadow: inset 0 0 0 1px rgba(20, 30, 80, 0.02);
}

.story-vector.is-4 { --story-step: 25%; }
.story-vector.is-8 { --story-step: 12.5%; }
.story-vector.is-16 {
  --story-step: 6.25%;
  min-width: 11rem;
}

.story-vector.is-output {
  box-shadow: 0 0 0 0.07rem rgba(42, 79, 214, 0.08);
}

.token-dog {
  --story-fill-top: rgba(160, 80, 0, 0.26);
  --story-fill-bottom: rgba(160, 80, 0, 0.11);
  --story-border: rgba(160, 80, 0, 0.42);
}

.token-chased {
  --story-fill-top: rgba(90, 48, 200, 0.28);
  --story-fill-bottom: rgba(90, 48, 200, 0.12);
  --story-border: rgba(90, 48, 200, 0.42);
}

.token-cat {
  --story-fill-top: rgba(42, 79, 214, 0.28);
  --story-fill-bottom: rgba(42, 79, 214, 0.12);
  --story-border: rgba(42, 79, 214, 0.42);
}

.token-sat {
  --story-fill-top: rgba(0, 120, 144, 0.28);
  --story-fill-bottom: rgba(0, 120, 144, 0.12);
  --story-border: rgba(0, 120, 144, 0.42);
}

.token-on {
  --story-fill-top: rgba(106, 79, 0, 0.24);
  --story-fill-bottom: rgba(106, 79, 0, 0.1);
  --story-border: rgba(106, 79, 0, 0.36);
}

.token-the {
  --story-fill-top: rgba(40, 60, 130, 0.24);
  --story-fill-bottom: rgba(40, 60, 130, 0.1);
  --story-border: rgba(40, 60, 130, 0.3);
}

.token-mat {
  --story-fill-top: rgba(15, 110, 47, 0.26);
  --story-fill-bottom: rgba(15, 110, 47, 0.11);
  --story-border: rgba(15, 110, 47, 0.38);
}

/* ═══════════════════════════════════════════════════════
   SLIDE 25 — Shuffle the Words, Break the Meaning
   ═══════════════════════════════════════════════════════ */

.pos25-stage {
  flex: 1 1 auto;
  min-height: 0;
  display: grid;
  gap: 0.55rem;
  background:
    radial-gradient(circle at 84% 14%, rgba(192, 28, 28, 0.08), transparent 30%),
    radial-gradient(circle at 14% 18%, rgba(15, 110, 47, 0.06), transparent 34%),
    var(--surface);
}

#pos25-takeaway,
#pos26-takeaway {
  width: 100%;
  margin-left: 0;
  margin-right: 0;
}

.slide-has-takeaway .story-layout {
  margin-top: 0.34rem;
}

.pos25-compare {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: center;
  align-items: center;
}

.pos25-sentence {
  display: grid;
  gap: 0.5rem;
  justify-items: center;
  padding: 0.9rem 1.2rem;
  border-radius: var(--radius-md);
  border: 1px solid rgba(42, 79, 214, 0.55);
  background: rgba(210, 218, 244, 0.5);
  min-width: 16rem;
}

.pos25-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.32rem;
  justify-content: center;
}

.pos25-meaning {
  font-size: var(--fs-xs);
  font-weight: 600;
  color: rgba(10, 20, 80, 0.92);
  text-align: center;
}

.pos25-vs {
  font-family: 'JetBrains Mono', monospace;
  font-size: var(--fs-sm);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(100, 75, 0, 0.88);
  padding: 0.3rem 0.7rem;
  border-radius: 999px;
  border: 1px solid rgba(100, 75, 0, 0.55);
  background: rgba(100, 75, 0, 0.08);
}

.pos25-punchline {
  text-align: center;
  font-size: var(--fs-sm);
  font-weight: 600;
  color: #5a0000;
  padding: 0.44rem 0.8rem;
  border-radius: var(--radius-md);
  border: 1px solid rgba(192, 28, 28, 0.55);
  background: rgba(192, 28, 28, 0.08);
}

.pos25-answer-card {
  padding: 0.72rem 0.9rem;
  border-radius: var(--radius-md);
  border: 1px solid rgba(42, 79, 214, 0.55);
  background: rgba(210, 218, 244, 0.52);
}

.pos25-answer-title {
  font-size: var(--fs-xs);
  font-weight: 700;
  color: #5a0000;
  margin-bottom: 0.4rem;
}

.pos25-answer-body {
  font-size: var(--fs-xs);
  line-height: 1.45;
  color: rgba(10, 20, 80, 0.88);
}


/* ═══════════════════════════════════════════════════════
   SLIDE 26 — From Position Codes to RoPE
   ═══════════════════════════════════════════════════════ */

.pos26-stage {
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
  background:
    radial-gradient(circle at 82% 12%, rgba(0, 120, 144, 0.08), transparent 34%),
    radial-gradient(circle at 14% 12%, rgba(100, 75, 0, 0.06), transparent 30%),
    var(--surface);
}

.pos26-shell {
  flex: 1 1 auto;
  min-height: 0;
  height: 100%;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 0.56rem;
}

.pos26-progress,
.pos26-copy-card,
.pos26-visual-card,
.pos26-mini-strip-card,
.pos26-wave-card,
.pos26-binary-stage,
.pos26-formula-card,
.pos26-jump-card,
.pos26-normalize-card,
.pos26-score-geometry-card,
.pos26-rope-stage,
.pos26-rope-box,
.pos26-rope-score-card {
  border-radius: var(--radius-md);
  border: 1px solid rgba(42, 79, 214, 0.55);
  background: rgba(210, 218, 244, 0.46);
}

.pos26-progress {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0.3rem;
  padding: 0.36rem;
}

.pos26-progress-step {
  min-width: 0;
  display: grid;
  justify-items: center;
  gap: 0.12rem;
  padding: 0.32rem 0.2rem;
  border-radius: var(--radius-sm);
  border: 1px solid transparent;
  color: rgba(30,50,120,1);
  background: rgba(60, 70, 130, 0.15);
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.pos26-progress-step.is-active {
  color: #0d1020;
  border-color: rgba(42, 79, 214, 0.3);
  background: rgba(42, 79, 214, 0.14);
}

.pos26-progress-step.is-complete {
  color: #0a3e1a;
  border-color: rgba(15, 110, 47, 0.55);
  background: rgba(15, 110, 47, 0.08);
}

.pos26-progress-num {
  display: grid;
  place-items: center;
  width: 1.28rem;
  height: 1.28rem;
  border-radius: 999px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.62rem;
  font-weight: 700;
  background: rgba(20, 30, 80, 0.06);
}

.pos26-progress-name {
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.pos26-state-frame {
  position: relative;
  min-height: 0;
  height: 100%;
  overflow: hidden;
}

.pos26-state-panel {
  position: absolute;
  inset: 0;
  min-height: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 0.64rem;
  align-content: start;
  overflow: hidden;
  opacity: 0;
  transform: translateY(0.42rem);
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.28s ease, transform 0.28s ease, visibility 0.28s ease;
}

.pos26-state-panel.is-active {
  opacity: 1;
  transform: translateY(0);
  visibility: visible;
  pointer-events: auto;
}

.pos26-panel-header {
  display: grid;
  gap: 0.22rem;
}

.pos26-step-label {
  display: inline-flex;
  align-items: center;
  justify-self: start;
  gap: 0.28rem;
  padding: 0.16rem 0.42rem;
  border-radius: 999px;
  border: 1px solid rgba(42, 79, 214, 0.55);
  background: rgba(42, 79, 214, 0.08);
  color: rgba(10, 20, 80, 0.82);
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.pos26-state-title {
  margin: 0;
  font-size: var(--fs-sm);
  line-height: 1.24;
  color: rgba(10, 20, 80, 0.97);
}

.pos26-state-lead {
  margin: 0;
  font-size: var(--fs-xs);
  line-height: 1.55;
  color: rgba(10, 20, 80, 0.84);
}

.pos26-state-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.98fr) minmax(0, 1.12fr);
  gap: 0.62rem;
  min-height: 0;
  height: 100%;
  align-items: stretch;
  overflow: hidden;
}

.pos26-copy-card,
.pos26-visual-card {
  padding: 0.74rem 0.82rem;
  min-height: 0;
  height: 100%;
  display: grid;
  align-content: start;
  overflow: hidden;
}

.pos26-teach-list,
.pos26-raw-grid,
.pos26-normalize-compare,
.pos26-compare-rail,
.pos26-bridge-stage,
.pos26-relative-scene,
.pos26-score-geometry-grid,
.pos26-rope-walkthrough,
.pos26-rope-stage {
  min-height: 0;
}

.pos26-copy-title,
.pos26-panel-label {
  margin: 0 0 0.34rem;
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: rgba(30, 50, 120, 0.78);
}

.pos26-teach-list {
  display: grid;
  gap: 0.4rem;
}

.pos26-teach-row {
  display: flex;
  gap: 0.44rem;
  align-items: flex-start;
  padding: 0.48rem 0.54rem;
  border-radius: var(--radius-md);
  border: 1px solid rgba(42, 79, 214, 0.55);
  background: rgba(60, 70, 130, 0.15);
}

.pos26-row-badge {
  width: 1.3rem;
  height: 1.3rem;
  border-radius: 999px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.64rem;
  font-weight: 700;
  color: #0d1020;
  border: 1px solid rgba(42, 79, 214, 0.55);
  background: rgba(42, 79, 214, 0.14);
}

.pos26-row-body {
  display: grid;
  gap: 0.1rem;
}

.pos26-row-body strong {
  font-size: var(--fs-xs);
  color: rgba(10, 20, 80, 0.97);
}

.pos26-row-body span,
.pos26-footnote,
.pos26-token-note,
.pos26-frequency-note,
.pos26-angle-note,
.pos26-jump-note,
.pos26-rope-topline,
.pos26-rope-text {
  font-size: var(--fs-2xs);
  line-height: 1.42;
  color: rgba(30, 50, 120, 0.82);
}

.pos26-footnote,
.pos26-frequency-note,
.pos26-rope-topline {
  margin-top: 0.56rem;
}

.pos26-flow-ribbon {
  display: flex;
  flex-wrap: wrap;
  gap: 0.52rem;
  justify-content: center;
  align-items: center;
  padding: 0.5rem 0.64rem;
  border-radius: var(--radius-md);
  border: 1px solid rgba(42, 79, 214, 0.55);
  background: rgba(60, 70, 130, 0.20);
}

.pos26-flow-box {
  padding: 0.42rem 0.72rem;
  border-radius: var(--radius-sm);
  font-family: 'JetBrains Mono', monospace;
  font-size: var(--fs-2xs);
  font-weight: 600;
  text-align: center;
}

.pos26-flow-token {
  border: 1px solid rgba(42, 79, 214, 0.32);
  background: rgba(42, 79, 214, 0.12);
  color: #0d1020;
}

.pos26-flow-pos {
  border: 1px solid rgba(15, 110, 47, 0.32);
  background: rgba(15, 110, 47, 0.1);
  color: #0a3e1a;
}

.pos26-flow-result {
  border: 1px solid rgba(100, 75, 0, 0.55);
  background: rgba(100, 75, 0, 0.08);
  color: #4a3000;
}

.pos26-flow-plus,
.pos26-flow-eq {
  font-family: 'JetBrains Mono', monospace;
  font-size: 1.1rem;
  font-weight: 700;
  color: rgba(30, 50, 120, 0.78);
}

.pos26-token-story {
  margin-top: 0.56rem;
  padding: 0.58rem 0.66rem;
  border-radius: var(--radius-md);
  border: 1px solid rgba(42, 79, 214, 0.55);
  background: rgba(60, 70, 130, 0.16);
}

.pos26-token-line {
  display: flex;
  flex-wrap: wrap;
  gap: 0.28rem;
  align-items: center;
}

.pos26-token-line-wide {
  justify-content: center;
}

.pos26-token-note {
  margin-top: 0.34rem;
}

.pos26-raw-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr);
  gap: 0.55rem;
  align-items: center;
}

.pos26-raw-panel {
  min-width: 0;
}

.pos26-panel-label {
  margin-bottom: 0.28rem;
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(30, 50, 120, 0.76);
}

.pos26-number-vector {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.22rem;
}

.pos26-number-vector span {
  padding: 0.38rem 0.24rem;
  border-radius: var(--radius-sm);
  text-align: center;
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.50rem;
  font-weight: 700;
  border: 1px solid transparent;
}

.pos26-number-vector-token span {
  color: #0d1020;
  border-color: rgba(42, 79, 214, 0.55);
  background: rgba(42, 79, 214, 0.1);
}

.pos26-number-vector-pos span {
  color: #4a3000;
  border-color: rgba(100, 75, 0, 0.55);
  background: rgba(100, 75, 0, 0.12);
}

.pos26-number-vector-out span {
  color: #5a0000;
  border-color: rgba(192, 28, 28, 0.55);
  background: rgba(192, 28, 28, 0.12);
}

.pos26-math-op,
.pos26-transition-arrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 1.15rem;
  font-weight: 700;
  color: rgba(30, 50, 120, 0.74);
}

.pos26-normalize-compare {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.44rem;
  margin-top: 0.56rem;
}

.pos26-normalize-card {
  padding: 0.54rem 0.62rem;
}

.pos26-normalize-value {
  font-size: var(--fs-xs);
  color: #4a3000;
}

.pos26-binary-stage {
  padding: 0.72rem 0.78rem;
}

.pos26-binary-grid,
.pos26-mini-binary-row {
  align-items: center;
}

.pos26-binary-grid {
  display: grid;
  grid-template-columns: auto repeat(8, minmax(2rem, 1fr));
  gap: 0.18rem;
  align-items: center;
  justify-items: center;
}

.pos26-binary-label {
  font-family: 'JetBrains Mono', monospace;
  font-size: var(--fs-2xs);
  color: rgba(10, 20, 80, 0.88);
  text-align: right;
  padding-right: 0.42rem;
  white-space: nowrap;
}

.pos26-freq-tag {
  display: inline-block;
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 0.08rem 0.32rem;
  border-radius: 999px;
  margin-left: 0.24rem;
  vertical-align: middle;
}

.pos26-freq-tag.fast {
  color: #5a0000;
  background: rgba(192, 28, 28, 0.22);
  border: 1px solid rgba(192, 28, 28, 0.32);
}

.pos26-freq-tag.mid {
  color: #4a3000;
  background: rgba(100, 75, 0, 0.18);
  border: 1px solid rgba(100, 75, 0, 0.55);
}

.pos26-freq-tag.slow {
  color: #0a3e1a;
  background: rgba(15, 110, 47, 0.16);
  border: 1px solid rgba(15, 110, 47, 0.55);
}

.pos26-binary-cell {
  width: 100%;
  text-align: center;
  padding: 0.28rem 0;
  border-radius: var(--radius-sm);
  font-family: 'JetBrains Mono', monospace;
  font-size: var(--fs-2xs);
  font-weight: 600;
  transition: background 0.2s ease, color 0.2s ease;
}

.pos26-binary-cell.pos26-binary-header {
  color: rgba(40, 60, 130, 0.72);
  font-weight: 700;
  border: none;
  background: none;
}

.pos26-binary-cell.on {
  background: rgba(42, 79, 214, 0.14);
  border: 1px solid rgba(42, 79, 214, 0.55);
  color: rgba(30, 50, 120, 0.72);
}

.pos26-binary-cell.off {
  background: rgba(100, 75, 0, 0.16);
  border: 1px solid rgba(100, 75, 0, 0.55);
  color: #4a3000;
}

.pos26-compare-rail {
  display: grid;
  grid-template-columns: minmax(13rem, 0.86fr) auto minmax(0, 1.14fr);
  gap: 0.72rem;
  align-items: center;
}

.pos26-mini-strip-card,
.pos26-wave-card {
  padding: 0.58rem 0.64rem;
}

.pos26-mini-binary {
  display: grid;
  gap: 0.26rem;
}

.pos26-mini-binary-row {
  display: grid;
  grid-template-columns: auto repeat(8, minmax(0, 1fr));
  gap: 0.16rem;
}

.pos26-mini-bit {
  height: 0.52rem;
  border-radius: 0.2rem;
  border: 1px solid rgba(42, 79, 214, 0.55);
}

.pos26-mini-bit.on {
  background: rgba(42, 79, 214, 0.14);
}

.pos26-mini-bit.off {
  background: rgba(100, 75, 0, 0.14);
  border-color: rgba(100, 75, 0, 0.55);
}

.pos26-wave-card {
  display: grid;
  gap: 0.32rem;
}

.pos26-wave-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 0.44rem;
}

.pos26-wave-row svg {
  width: 100%;
  height: 1.7rem;
  overflow: visible;
}

.pos26-wave-line {
  fill: none;
  stroke-width: 2.4;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.pos26-wave-row.fast .pos26-wave-line { stroke: #63d3ff; }
.pos26-wave-row.mid .pos26-wave-line { stroke: #ff7b7b; }
.pos26-wave-row.slow .pos26-wave-line { stroke: #8be9ae; }

/* Slide 26 Step 5 right-stage controls */
#slide-26 {
  --pos26-step5-right-card-padding-y: 0.1rem;
  --pos26-step5-right-card-padding-x: 0.72rem;
  --pos26-step5-right-stage-gap: 0.0rem;
  --pos26-step5-right-scene-gap: 0.32rem;
  --pos26-step5-right-scene-padding-y: 0.1rem;
  --pos26-step5-right-scene-padding-x: 0.76rem;
  --pos26-step5-right-token-gap: 0.1rem;
  --pos26-step5-right-token-padding-y: 0.1rem;
  --pos26-step5-right-token-padding-x: 0.42rem;
  --pos26-step5-right-score-card-padding-y: 0.1rem;
  --pos26-step5-right-score-card-padding-x: 0.6rem;
  --pos26-step5-right-score-grid-gap: 0.48rem;
  --pos26-step5-right-score-inner-gap: 0.24rem;
}

.pos26-formula-card {
  --pos26-formula-font-size: 1.0rem;
  margin-top: 0.48rem;
  padding: 0.5rem 0.58rem;
}

.pos26-formula-lines {
  display: grid;
  gap: 0.22rem;
  font-size: var(--pos26-formula-font-size);
  color: #4a3000;
}

.pos26-jump-card {
  margin-top: 0.5rem;
  padding: 0.48rem 0.56rem;
}

.pos26-jump-list {
  margin: 0;
  padding-left: 1rem;
  color: rgba(30, 50, 120, 0.82);
}

.pos26-jump-list li {
  font-size: var(--fs-2xs);
  line-height: 1.42;
}

.pos26-jump-plot {
  width: 100%;
  height: 5rem;
}

.pos26-jump-plot line,
.pos26-jump-plot path {
  fill: none;
  stroke: rgba(40, 60, 130, 0.34);
  stroke-width: 1.2;
}

.pos26-jump-plot polyline {
  fill: none;
  stroke: #ff7b7b;
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.pos26-bridge-stage,
.pos26-relative-scene {
  display: grid;
  gap: var(--pos26-step5-right-scene-gap, 0.32rem);
}

.pos26-relative-scene {
  --pos26-relative-scene-padding-y: var(--pos26-step5-right-scene-padding-y, 0.08rem);
  --pos26-relative-scene-padding-x: var(--pos26-step5-right-scene-padding-x, 0.76rem);
  --pos26-relative-chip-gap: 0.20rem;
  --pos26-relative-token-gap: var(--pos26-step5-right-token-gap, 0.22rem);
  --pos26-relative-token-font-size: 0.50rem;
  --pos26-relative-token-padding-y: var(--pos26-step5-right-token-padding-y, 0.24rem);
  --pos26-relative-token-padding-x: var(--pos26-step5-right-token-padding-x, 0.42rem);
  padding: var(--pos26-relative-scene-padding-y) var(--pos26-relative-scene-padding-x);
  border-radius: var(--radius-md);
  border: 1px solid rgba(42, 79, 214, 0.55);
  background: rgba(60, 70, 130, 0.16);
}

.pos26-relative-row-group {
  display: grid;
  gap: 0.16rem;
}

.pos26-relative-row-label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: rgba(30, 50, 120, 0.76);
}

.pos26-sentence-row {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: var(--pos26-relative-chip-gap);
  align-items: center;
}

.pos26-sentence-row-top {
  margin-bottom: 0.34rem;
}

.pos26-sentence-row-bottom {
  margin-top: 0.34rem;
}

.pos26-index-chip {
  display: grid;
  place-items: center;
  min-height: 0.5rem;
  border-radius: var(--radius-sm);
  border: 1px solid rgba(42, 79, 214, 0.55);
  background: rgba(42, 79, 214, 0.08);
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.55rem;
  font-weight: 700;
  color: rgba(10, 20, 80, 0.88);
}

.pos26-index-chip.pos26-focus {
  border-color: rgba(100, 75, 0, 0.55);
  background: rgba(100, 75, 0, 0.12);
  color: #4a3000;
}

.pos26-relative-scene .pos26-token-line {
  gap: var(--pos26-relative-token-gap);
}

.pos26-relative-scene .token-pill {
  font-size: var(--pos26-relative-token-font-size);
  padding: var(--pos26-relative-token-padding-y) var(--pos26-relative-token-padding-x);
}

.pos26-relative-note {
  margin-top: 0.06rem;
  font-size: var(--fs-2xs);
  line-height: 1.42;
  color: rgba(30, 50, 120, 0.82);
}

.pos26-score-geometry-card {
  padding: var(--pos26-step5-right-score-card-padding-y, 0.54rem) var(--pos26-step5-right-score-card-padding-x, 0.64rem);
}

.pos26-score-geometry-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  gap: var(--pos26-step5-right-score-grid-gap, 0.56rem);
  align-items: center;
}

.pos26-score-geometry-copy,
.pos26-score-geometry-visual {
  display: grid;
  gap: var(--pos26-step5-right-score-inner-gap, 0.24rem);
  min-height: 0;
}

.pos26-score-cue {
  padding: 0.42rem 0.5rem;
  border-radius: var(--radius-sm);
  border: 1px solid rgba(42, 79, 214, 0.55);
  background: rgba(42, 79, 214, 0.1);
  font-size: 0.74rem;
  line-height: 1.4;
  color: #0d1020;
}

.pos26-bridge-formula {
  font-size: var(--fs-xs);
  line-height: 1.45;
  color: #4a3000;
}

.pos26-bridge-note {
  font-size: var(--fs-2xs);
  line-height: 1.42;
  color: #4a3000;
  font-weight: 700;
}

.pos26-angle-visual {
  width: 100%;
  height: 3.8rem;
  margin-top: 0;
}

.pos26-angle-visual line,
.pos26-angle-visual path {
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
}

.pos26-angle-visual line:nth-of-type(1) { stroke: #63d3ff; }
.pos26-angle-visual line:nth-of-type(2) { stroke: rgba(40, 60, 130, 0.5); }
.pos26-angle-visual line:nth-of-type(3) { stroke: #8be9ae; }
.pos26-angle-visual path { stroke: #7a3c00; }

.pos26-angle-svg-label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  font-weight: 700;
  fill: rgba(10, 20, 80, 0.88);
}

.pos26-angle-svg-label-q { fill: #63d3ff; }
.pos26-angle-svg-label-k { fill: #8be9ae; }
.pos26-angle-svg-label-theta { fill: #7a3c00; }

.pos26-rope-walkthrough {
  display: grid;
  gap: 0.44rem;
  margin-top: -0.10rem;
}

.pos26-rope-stage {
  padding: 0.48rem 0.56rem;
}

.pos26-rope-stage-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem;
  margin-top: 0.44rem;
}

.pos26-rope-box {
  padding: 0.56rem 0.6rem;
}

.pos26-rope-pair-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.32rem;
  margin: 0.44rem 0 0;
}

.pos26-rope-pair-grid span {
  display: grid;
  place-items: center;
  min-height: 2rem;
  border-radius: var(--radius-sm);
  border: 1px solid rgba(42, 79, 214, 0.55);
  background: rgba(42, 79, 214, 0.1);
  color: #0d1020;
  font-weight: 700;
}

.pos26-rope-rotate-labels {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.42rem;
  margin-top: 0.32rem;
  font-size: 0.67rem;
  color: #4a3000;
  text-align: center;
}

.pos26-rope-rotate-visual {
  width: 100%;
  height: 4.35rem;
  margin-top: 0.12rem;
}

.pos26-rope-rotate-visual circle,
.pos26-rope-rotate-visual line,
.pos26-rope-rotate-visual polyline {
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.pos26-rope-rotate-visual circle {
  stroke: rgba(40, 60, 130, 0.34);
}

.pos26-rope-rotate-ref {
  stroke: rgba(40, 60, 130, 0.52);
}

.pos26-rope-rotate-q {
  stroke: #63d3ff;
}

.pos26-rope-rotate-k {
  stroke: #8be9ae;
}

.pos26-rope-stage-note,
.pos26-rope-stage-kicker,
.pos26-rope-mini-note,
.pos26-rope-score-note {
  font-size: 0.67rem;
  line-height: 1.45;
  color: rgba(30, 50, 120, 0.82);
}

.pos26-rope-stage-kicker {
  margin-top: 0.24rem;
  color: #4a3000;
}

.pos26-rope-stage-note {
  margin-top: 0.08rem;
}

.pos26-rope-mini-note {
  display: block;
  margin-top: 0.28rem;
}

.pos26-rope-compare {
  display: grid;
  gap: 0.18rem;
  margin-top: 0.32rem;
}

.pos26-rope-score-formula {
  font-size: var(--fs-xs);
  color: #4a3000;
}

/* ── RoPE step 5: angle-arc SVG additions ── */

.pos26-rope-angle-svg {
  height: 6rem;
}

.pos26-rope-angle-arc {
  fill: none;
  stroke: #7a3c00;
  stroke-width: 2;
  stroke-linecap: round;
}

.pos26-rope-svg-label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  font-weight: 700;
  fill: rgba(10, 20, 80, 0.88);
}

#slide-26[data-pos26-step='5'] .pos26-copy-card,
#slide-26[data-pos26-step='5'] .pos26-visual-card {
  padding: 0.72rem 0.78rem;
}

#slide-26[data-pos26-step='5'] .pos26-teach-list {
  gap: 0.3rem;
}

#slide-26[data-pos26-step='5'] .pos26-teach-row {
  padding: 0.4rem 0.48rem;
}

#slide-26[data-pos26-step='5'] .pos26-row-body span {
  line-height: 1.4;
}

#slide-26[data-pos26-step='5'] .pos26-rope-walkthrough {
  gap: 0.42rem;
  margin-top: -0.4rem;
}

#slide-26[data-pos26-step='5'] .pos26-rope-stage {
  padding: 0.46rem 0.54rem;
}

#slide-26[data-pos26-step='5'] .pos26-rope-rotate-labels {
  margin-top: 0.34rem;
  font-size: 0.64rem;
}

#slide-26[data-pos26-step='5'] .pos26-rope-rotate-visual {
  height: 4.4rem;
}

#pos26-takeaway {
  margin-top: 0.62rem;
  padding: 0.38rem 0.56rem;
  font-size: var(--fs-2xs);
  line-height: 1.28;
}

.pos26-rope-q-label { fill: #63d3ff; }
.pos26-rope-k-label { fill: #8be9ae; }
.pos26-rope-arc-label { fill: #7a3c00; font-size: 8px; }

.pos26-rope-angle-note {
  margin-top: 0.28rem;
  font-size: 0.67rem;
  line-height: 1.45;
  color: rgba(30, 50, 120, 0.82);
}

#slide-26[data-pos26-step='4'] .pos26-state-grid {
  grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.22fr);
  gap: 0.54rem;
}

#slide-26[data-pos26-step='4'] .pos26-copy-card {
  padding: 0.68rem 0.74rem;
}

#slide-26[data-pos26-step='4'] .pos26-visual-card {
  padding: var(--pos26-step5-right-card-padding-y) var(--pos26-step5-right-card-padding-x);
}

#slide-26[data-pos26-step='4'] .pos26-teach-list {
  gap: 0.34rem;
}

#slide-26[data-pos26-step='4'] .pos26-teach-row {
  padding: 0.44rem 0.5rem;
}

#slide-26[data-pos26-step='4'] .pos26-row-body span {
  line-height: 1.38;
}

#slide-26[data-pos26-step='4'] .pos26-bridge-stage {
  gap: var(--pos26-step5-right-stage-gap);
}

#slide-26[data-pos26-step='4'] .pos26-score-geometry-card {
  padding: var(--pos26-step5-right-score-card-padding-y) var(--pos26-step5-right-score-card-padding-x);
}

#slide-26[data-pos26-step='4'] .pos26-score-geometry-grid {
  gap: var(--pos26-step5-right-score-grid-gap);
}

#slide-26[data-pos26-step='4'] .pos26-angle-note {
  margin-top: 0;
}


/* Slide 26 only: tighten bottom spacing */
#slide-26 .pos26-stage {
  padding-bottom: 0.1rem; /* was var(--sp-4) = 1.20rem */
}

#slide-26.slide.slide-has-takeaway .slide-body {
  gap: 0rem; /* was var(--deck-takeaway-body-gap) = 0.18rem */
}
