/* A005/V05: editorial composition, scoped to the existing additive component. */
.ts-story {
  grid-column: 1 / -1;
  container: ts-story / inline-size;
  min-width: 0;
  margin-top: var(--sp-6);
  border-top: 1px solid var(--ink);
  padding-top: var(--sp-6);
  color: var(--ink);
  font-family: var(--font-body);
  overflow-wrap: anywhere;
}
.ts-story [hidden] { display: none !important; }
.ts-story-head { display: grid; gap: var(--sp-3); max-width: 760px; }
.ts-story-head h3 { font-family: var(--font-head); font-size: var(--h2); line-height: var(--h2-lh); font-weight: 600; }
.ts-story-eyebrow { font-size: var(--caption); line-height: var(--caption-lh); font-weight: 600; letter-spacing: .035em; }
.ts-story-note { font-size: var(--body); line-height: var(--body-lh); }
.ts-story-nav { display: flex; flex-wrap: wrap; gap: var(--sp-4); margin-block: var(--sp-5) var(--sp-6); }
.ts-story-nav a, .ts-story-action {
  display: inline-flex;
  min-width: 48px;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: var(--sp-2);
  padding: 10px 14px;
  border: 1px solid var(--ink);
  border-radius: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: var(--body);
  font-weight: 600;
  line-height: 1.4;
  text-decoration: none;
  cursor: pointer;
  white-space: normal;
  text-align: center;
}
.ts-story-action.ts-story-open {
  background: var(--accent);
  color: var(--bg);
  border-color: var(--accent);
}
.ts-story-nav a { border: 0; border-bottom: 2px solid transparent; background: transparent; padding-inline: 0; font-weight: 500; }
.ts-story-nav a[aria-current="step"] { border-bottom-color: var(--accent); color: var(--ink); font-weight: 700; }
.ts-story-nav a:hover, .ts-story-action:hover { text-decoration: underline; text-underline-offset: 4px; }
.ts-story a:focus-visible, .ts-story button:focus-visible, .ts-story-chapter:focus-visible {
  outline: 3px solid var(--ink);
  outline-offset: 3px;
}
.ts-story-grid { display: grid; gap: var(--sp-4); align-items: start; min-width: 0; }
.ts-story-copy { min-width: 0; padding-top: var(--sp-3); }
.ts-story-chapter {
  margin-bottom: var(--sp-6);
  padding: 0;
  background: transparent;
  min-width: 0;
  scroll-margin-top: calc(var(--sticky-top, 112px) + 24px);
}
.ts-story-chapter:last-child { margin-bottom: 0; }
.ts-story h4 { font: 600 var(--body)/var(--body-lh) var(--font-body); margin: 0 0 var(--sp-3); color: var(--ink); }
.ts-story-chapter blockquote {
  margin: var(--sp-4) 0;
  padding: 0;
  font-family: var(--font-head);
  font-size: var(--h3);
  line-height: var(--h3-lh);
  font-weight: 500;
  letter-spacing: -.018em;
  max-width: 26ch;
}
.ts-story-chapter > .ts-story-action { margin-top: var(--sp-3); }
.ts-story-mapping { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.ts-story-mapping li { display: grid; gap: var(--sp-2); min-width: 0; padding-block: var(--sp-3); border-bottom: 1px solid var(--ink); }
.ts-story-mapping li:first-child { padding-top: 0; }
.ts-story-mapping li > span { font-size: var(--caption); line-height: var(--caption-lh); }
.ts-story-mapping strong { font-weight: 600; }
.ts-story-card {
  min-width: 0;
  width: 100%;
  background: var(--bg);
  border: 1px solid var(--ink);
  border-top: 4px solid var(--ink);
  border-radius: 0;
  padding: var(--sp-4);
  transform-origin: top left;
  scroll-margin-top: calc(var(--sticky-top, 112px) + 24px);
}
.ts-story-paper-head { display: grid; gap: var(--sp-2); }
.ts-story-paper-head h4 { font-family: var(--font-head); font-size: var(--h3); line-height: var(--h3-lh); margin: var(--sp-2) 0; }
.ts-story-company { font-weight: 600; }
.ts-story-draft { font-size: var(--caption); line-height: var(--caption-lh); }
.ts-story-fields { margin: var(--sp-4) 0 0; }
.ts-story-fields > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: var(--sp-3); padding-block: 14px; border-bottom: 1px solid var(--ink); min-width: 0; }
.ts-story-fields dt, .ts-story-fields dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.ts-story-fields dd { min-height: 1.6em; font-weight: 600; }
.ts-story-detail { margin-top: var(--sp-4); }
.ts-story-detail .ts-story-fields { margin-top: 0; }
.ts-story-actions { display: flex; gap: var(--sp-2); flex-wrap: wrap; margin-top: var(--sp-4); }
.ts-story-action.ts-story-open, .ts-story-action.ts-story-back { display: none; }
.ts-story.ts-story-ready .ts-story-action.ts-story-open,
.ts-story.ts-story-ready .ts-story-action.ts-story-back { display: inline-flex; }
.ts-story-foot { margin-top: var(--sp-3); font-size: var(--caption); line-height: var(--caption-lh); }
.ts-story.ts-story-expanded .ts-story-grid { grid-template-columns: minmax(0, 1fr); }
.ts-story.ts-story-expanded .ts-story-card { position: static; grid-column: 1 / -1; }
.ts-story.ts-story-expanded .ts-story-nav { margin-bottom: var(--sp-5); }
@container ts-story (min-width: 640px) {
  .ts-story-grid { grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr); gap: var(--sp-5); }
  .ts-story-card { position: sticky; top: calc(var(--sticky-top, 112px) + 24px); }
  .ts-story.ts-story-expanded .ts-story-card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: var(--sp-5); }
  .ts-story.ts-story-expanded .ts-story-paper-head { grid-column: 1 / -1; }
  .ts-story.ts-story-expanded .ts-story-actions { grid-column: 1 / -1; }
}
@container ts-story (min-width: 1000px) {
  .ts-story-grid { column-gap: var(--sp-7); }
  .ts-story-copy { max-width: 480px; }
  .ts-story-mapping li { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: var(--sp-3); align-items: baseline; }
}
@container ts-story (max-width: 639px) {
  .ts-story-nav { gap: var(--sp-3); margin-block: var(--sp-4) var(--sp-5); }
  .ts-story-chapter { margin-bottom: var(--sp-5); }
}
/* Ausschließlich der benannten Karte; kein Root-/Seitenübergang wird gestaltet. */
::view-transition-group(ts-story-report-v04) { animation-duration: var(--ts-detail, 500ms); animation-timing-function: cubic-bezier(.22,.75,.2,1); }
::view-transition-old(ts-story-report-v04), ::view-transition-new(ts-story-report-v04) { animation-duration: var(--ts-detail, 500ms); }
@media (prefers-reduced-motion: reduce) {
  ::view-transition-group(ts-story-report-v04), ::view-transition-old(ts-story-report-v04), ::view-transition-new(ts-story-report-v04) { animation-duration: 0s; }
}
@media (forced-colors: active) {
  .ts-story-nav a[aria-current="step"], .ts-story-action.ts-story-open { color: HighlightText; background: Highlight; border-color: ButtonText; }
  .ts-story-card, .ts-story-fields > div { border-color: CanvasText; }
}
