/**
 * Der einzige klassische <link>-Stylesheet der Bibliothek.
 *
 * Muss synchron im <head> stehen, *bevor* JavaScript laeuft: er verhindert den
 * kurzen Moment, in dem Custom Elements schon im DOM stehen, ihre CSS aber noch
 * unterwegs ist. initDesignSystem() entfernt data-ds-loading, sobald alle
 * Stylesheets eingespielt sind.
 *
 *   <link rel="stylesheet" href="/node_modules/@transformate/design-system/dist/styles/bootstrap.css">
 *
 * Ohne diese Datei laeuft alles ebenfalls — es blitzt nur einmal unformatiert auf.
 */

html[data-ds-loading] body {
  visibility: hidden;
}

/*
 * Reissleine: bleibt das Laden haengen (Netzwerkfehler, blockierter fetch),
 * wird der Inhalt nach 3 s trotzdem sichtbar. Lieber unformatiert lesbar als
 * eine dauerhaft weisse Seite.
 */
@keyframes ds-reveal {
  to {
    visibility: visible;
  }
}

html[data-ds-loading] body {
  animation: ds-reveal 0s linear 3s forwards;
}

/* Noch nicht registrierte Komponenten bleiben unsichtbar statt als nackter Slot-Inhalt zu blitzen. */
:not(:defined) {
  visibility: hidden;
}
