body { margin: 0; background: #141414; padding: 3rem 1rem; }

  /* ============ Diagramm: System-Architektur ============ */
  /* Alle Masse in cqw (Designbreite 1500px → 1cqw = 15px). */
  .sa {
    container-type: inline-size;
    width: 100%;
    margin: 0;
    font-family: "GT Walsheim", "GT Walsheim Pro", Inter, -apple-system, "Helvetica Neue", Arial, sans-serif;
  }
  .sa * { box-sizing: border-box; }
  .sa-canvas {
    position: relative;
    aspect-ratio: 1500 / 839;
    background: #141414;
    color: #fff;
    overflow: hidden;
  }

  /* --- Boxen --- */
  .sa-box {
    position: absolute;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.15cqw;
    border-radius: 0.667cqw;
    text-align: center;
  }
  .sa-box--outline { border: 1px solid rgba(255, 255, 255, 0.5); }
  .sa-box--fill    { background: #292929; }
  .sa-title { font-size: 1.067cqw; font-weight: 500; letter-spacing: 0.01em; }
  .sa-sub   { font-size: 1.067cqw; color: rgba(255, 255, 255, 0.5); }

  /* --- Inhalte der Webseite-Box --- */
  .sa-panel-title {
    position: absolute;
    font-size: 1.2cqw;
    font-weight: 500;
    text-align: center;
  }
  .sa-col-header {
    position: absolute;
    font-size: 1.067cqw;
    font-weight: 500;
    text-align: center;
  }
  .sa-item {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #363636;
    border-radius: 0.533cqw;
    font-size: 1.067cqw;
    font-weight: 500;
  }

  /* --- Linien & Pfeile --- */
  .sa-line { position: absolute; }
  .sa-line--v { border-left: 1px solid rgba(255, 255, 255, 0.5); width: 0; }
  .sa-line--h { border-top: 1px solid rgba(255, 255, 255, 0.5); height: 0; }
  .sa-line::before,
  .sa-line::after {
    position: absolute;
    width: 0.45cqw;
    height: 0.45cqw;
    border-right: 1px solid rgba(255, 255, 255, 0.55);
    border-bottom: 1px solid rgba(255, 255, 255, 0.55);
  }
  /* Pfeilspitzen: unten / oben (vertikale Linien) */
  .sa-line--v.sa-arr-end::after    { content: ""; bottom: 0; left: 0; transform: translate(-50%, 0) rotate(45deg); }
  .sa-line--v.sa-arr-start::before { content: ""; top: 0;    left: 0; transform: translate(-50%, 0) rotate(225deg); }
  /* Pfeilspitzen: rechts / links (horizontale Linien) */
  .sa-line--h.sa-arr-end::after    { content: ""; right: 0; top: 0; transform: translate(0, -50%) rotate(-45deg); }
  .sa-line--h.sa-arr-start::before { content: ""; left: 0;  top: 0; transform: translate(0, -50%) rotate(135deg); }

  /* --- Wandernde Punkte auf den Linien --- */
  .sa-dot {
    position: absolute;
    width: 0; height: 0;
  }
  .sa-dot::before {
    content: "";
    position: absolute;
    width: 0.4cqw; height: 0.4cqw;
    border-radius: 50%;
    background: #fff;
    transform: translate(-50%, -50%) scale(1);
    animation: sa-pulse 1.6s ease-in-out infinite;
  }
  .sa-line--v .sa-dot { left: 0; top: 0;  animation: sa-travel-v var(--t, 3s) linear infinite var(--d, 0s) both; }
  .sa-line--h .sa-dot { top: 0;  left: 0; animation: sa-travel-h var(--t, 3s) linear infinite var(--d, 0s) both; }
  .sa-line--v.sa-rev .sa-dot { animation-name: sa-travel-v-rev; }
  .sa-line--h.sa-rev .sa-dot { animation-name: sa-travel-h-rev; }

  @keyframes sa-travel-v     { 0% { top: 0;      opacity: 0; } 12% { opacity: 1; } 88% { opacity: 1; } 100% { top: 100%;   opacity: 0; } }
  @keyframes sa-travel-v-rev { 0% { top: 100%;   opacity: 0; } 12% { opacity: 1; } 88% { opacity: 1; } 100% { top: 0;      opacity: 0; } }
  @keyframes sa-travel-h     { 0% { left: 0;     opacity: 0; } 12% { opacity: 1; } 88% { opacity: 1; } 100% { left: 100%;  opacity: 0; } }
  @keyframes sa-travel-h-rev { 0% { left: 100%;  opacity: 0; } 12% { opacity: 1; } 88% { opacity: 1; } 100% { left: 0;     opacity: 0; } }
  @keyframes sa-pulse {
    0%, 100% { transform: translate(-50%, -50%) scale(1);    opacity: 0.75; }
    50%      { transform: translate(-50%, -50%) scale(1.25); opacity: 1; }
  }
  @media (prefers-reduced-motion: reduce) {
    .sa-dot { display: none; }
  }


  /* --- Klick-Popup mit Erklärungstext --- */
  .sa-card { cursor: pointer; outline: none; }
  .sa-info { display: none; }
  .sa-popup {
    position: absolute;
    z-index: 10;
    display: none;
    min-width: 20cqw;
    max-width: 32cqw;
    background: #292929;
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 0.8cqw;
    padding: 1.6cqw 3cqw 1.6cqw 1.7cqw;
    font-size: 1.25cqw;
    line-height: 1.5;
    color: rgba(255, 255, 255, 0.9);
    box-shadow: 0 0.8cqw 2.4cqw rgba(0, 0, 0, 0.6);
  }
  .sa-popup.open { display: block; animation: sa-pop 0.32s cubic-bezier(0.2, 0.7, 0.3, 1) both; }
  @keyframes sa-pop {
    from { opacity: 0; transform: translateY(0.7cqw) scale(0.96); }
    to   { opacity: 1; transform: none; }
  }
  @media (prefers-reduced-motion: reduce) {
    .sa-popup.open { animation: none; }
  }
  .sa-popup-close {
    position: absolute;
    top: 0.45cqw;
    right: 0.45cqw;
    width: 2.2cqw;
    height: 2.2cqw;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 0;
    background: none;
    color: rgba(255, 255, 255, 0.6);
    font: inherit;
    font-size: 1.6cqw;
    line-height: 1;
    cursor: pointer;
  }
  .sa-popup-close:hover { color: #fff; }


  /* --- Vertikaler Text (Landingpages / Microsites) --- */
  .sa-box--vertical .sa-title {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    white-space: nowrap;
  }

  /* --- User-Pill mit CSS-Avatar --- */
  .sa-user {
    position: absolute;
    left: 25.256cqw; top: 3.733cqw; width: 7.2cqw; height: 3.467cqw;
    display: flex; align-items: center; gap: 0.8cqw;
    padding-left: 0.4cqw;
    background: #313131;
    border-radius: 1.733cqw;
  }
  .sa-avatar {
    position: relative;
    width: 2.667cqw; height: 2.667cqw;
    background: #4a4a4a;
    border-radius: 50%;
    overflow: hidden;
  }
  .sa-avatar img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
  }

  /* --- LLM-Liste unterhalb des LLM Selectors --- */
  .sa-llm-toggle { cursor: pointer; outline: none; }
  .sa-llm-list {
    position: absolute;
    display: none;
    flex-flow: row wrap;
    align-content: flex-start;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 0.8cqw;
    z-index: 5;
  }
  .sa-llm-list.open { display: flex; animation: sa-pop 0.32s cubic-bezier(0.2, 0.7, 0.3, 1) both; }
  .sa-llm {
    display: flex;
    align-items: center;
    gap: 0.7cqw;
    background: #292929;
    border-radius: 0.667cqw;
    padding: 0.75cqw 1.2cqw;
    font-size: 1.067cqw;
    font-weight: 500;
    white-space: nowrap;
  }

  /* Elemente weichen geöffneten Listen nach unten aus */
  .sa-canvas > .sa-box,
  .sa-canvas > .sa-line,
  .sa-canvas > .sa-llm-list {
    transition: transform 0.3s ease;
  }
