    /* Seiten-eigen bleibt nur, was assets/site.css (noch) nicht mitbringt:
       Basis-Reset (site.css setzt bewusst kein globales body{font-family},
       das übernimmt traditionell die Seite selbst) + die Live-Demo-Badge
       unter dem Chat-Mockup + Scrollbegrenzung der animierten Nachrichtenliste.
       Header/Footer/Hero/Buttons/Chat-Frame/CTA kommen aus dem geteilten
       System — s. Redesign 2026-07-13. */
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html { scroll-behavior: smooth; font-size: 16px; }
    body {
      font-family: var(--font-sans);
      font-weight: 400; line-height: 1.6; color: var(--color-text); background: var(--color-bg);
      -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
    }
    img, svg { display: block; max-width: 100%; }
    a { color: inherit; text-decoration: none; }
    .demo-messages { min-height: 340px; max-height: 340px; overflow-y: auto; scroll-behavior: smooth; }
    .demo-badge {
      position: absolute; bottom: -14px; left: 50%; transform: translateX(-50%);
      background: var(--color-surface); border: 1px solid var(--color-border); border-radius: 999px;
      padding: 6px 16px; font-size: 0.78rem; font-weight: 600; color: var(--color-text-muted);
      white-space: nowrap; box-shadow: var(--shadow-sm);
    }
    .demo-badge span { color: var(--color-primary); }
    .demo-chat-wrap { position: relative; }
