/* ============================================================
   BREATH CURRENT SESSION TRANSCRIPT . V1
   Additive geometry over the frozen Breath 0004 surface.

   Every visible pair arrives after the existing successful turn
   conveyor returns. This sheet preserves exact text, ordering,
   one composer, and one contained scroll seam. It contains no
   automatic state change and no authored conversation content.
   ============================================================ */

.convo {
  grid-template-rows: minmax(0, 1fr) auto;
  align-content: stretch;
  overflow: hidden;
}

.transcript {
  grid-column: 3 / 11;
  grid-row: 1;
  align-self: stretch;
  min-width: 0;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 4px 8px 10px;
}

.transcript-turn {
  width: min(640px, 92%);
  flex: none;
  backdrop-filter: blur(var(--glass-blur)) saturate(122%);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(122%);
  border: 1px solid var(--hairline);
  box-shadow: var(--highlight), 0 18px 50px rgba(4, 3, 8, .32);
  padding: 13px 17px 15px;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.transcript-turn[data-speaker="human"] {
  align-self: flex-end;
  background: rgba(139, 92, 246, 0.14);
  border-radius: 20px 20px 6px 20px;
}

.transcript-turn[data-speaker="anu"] {
  align-self: flex-start;
  background: rgba(10, 8, 18, 0.34);
  border-radius: 20px 20px 20px 6px;
  box-shadow: var(--highlight), 0 24px 70px rgba(4, 3, 8, .35);
}

.transcript-role {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ink-faint);
  margin: 0;
}

.transcript-body {
  font-family: inherit;
  margin: 0;
  font-size: 14.5px;
  line-height: 1.6;
  color: var(--ink);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.spoken,
.refusal,
.restart,
.reconnect {
  grid-row: 2;
}

body[data-state="response"] .spoken,
body[data-state="refusal"] .spoken,
body[data-state="restart"] .transcript {
  display: none;
}

@media (prefers-reduced-transparency: reduce) {
  .transcript-turn {
    background: rgba(14, 11, 20, 0.92);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
}

html[data-reduced-transparency="true"] .transcript-turn,
body[data-contrast="raised"] .transcript-turn {
  background: rgba(14, 11, 20, 0.92);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

@media (max-width: 520px) {
  .transcript {
    grid-column: 1 / -1;
    padding-inline: 2px;
  }

  .transcript-turn {
    width: min(100%, 94vw);
  }
}
