/* ===== BBN Warteschirm (Schmetterling) v1.0 | S368 | 2026-07-20 =====
   Wiederverwendbares Bauteil fuer JEDE Stelle, an der ein Mensch auf etwas
   Langsames wartet (Gumlet-Video, Fremd-Einbettung, langer Server-Weg).

   HERKUNFT, damit es nie wieder gesucht werden muss:
   Das Original ist der Lade-Schirm der Systeme.io-Seiten,
   bbn-fouc-shield.js v2.1-butterfly (S331, 19.06.2026), von Anita abgenommen.
   Dort deckt er die React-Luecke der ganzen Seite ab. Diese Fassung ist
   dasselbe Bild (Schmetterling-Zeichnung, Farben, Atem-Rhythmus, Wortlaut),
   aber fuer einen EINZELNEN Kasten statt fuer die ganze Seite.
   Volker-Entscheid S368: nicht auf alle neuen Seiten legen, die sind nach
   0,35 s fertig; nur dort, wo wirklich gewartet wird.

   Benutzung: ein Element mit position:relative bekommt als Kind
   <div class="bbn-warteschirm bbn-warteschirm--klein"> ... </div>
   Markup baut bbn-warteschirm.js, Aufdecken per Klasse .ist-weg.
   ===================================================================== */

@keyframes bbn-ws-atem {
  0%, 100% { transform: scale(1);    opacity: .92; }
  50%      { transform: scale(1.07); opacity: 1; }
}
@keyframes bbn-ws-punkt {
  0%, 100% { opacity: .3; transform: translateY(0); }
  50%      { opacity: 1;  transform: translateY(-4px); }
}

.bbn-warteschirm {
  position: absolute;
  inset: 0;
  z-index: 5;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  background: radial-gradient(ellipse at 50% 38%, #FBF6EE 0%, #F4EADF 60%, #EADBCB 100%);
  font-family: Georgia, "Times New Roman", serif;
  transition: opacity .5s ease;
  opacity: 1;
  pointer-events: none;
}

/* Aufgedeckt: sanft weg, dann per JS aus dem Markup entfernt. */
.bbn-warteschirm.ist-weg { opacity: 0; }

.bbn-warteschirm__falter {
  display: block;
  width: 96px;
  height: 96px;
  margin: 0 auto 26px;
  transform-origin: center;
  animation: bbn-ws-atem 2.6s ease-in-out infinite;
}
.bbn-warteschirm__titel { font-size: 30px; color: #660033; }
.bbn-warteschirm__satz {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 16px;
  color: #9A7B86;
  margin-top: 10px;
}
.bbn-warteschirm__punkte { margin-top: 22px; }
.bbn-warteschirm__punkte i {
  display: inline-block;
  width: 8px; height: 8px;
  margin: 0 5px;
  border-radius: 50%;
  background: #E6BB72;
  opacity: .35;
  animation: bbn-ws-punkt 1.4s ease-in-out infinite;
}
.bbn-warteschirm__punkte i:nth-child(2) { animation-delay: .2s; }
.bbn-warteschirm__punkte i:nth-child(3) { animation-delay: .4s; }

/* ---- Kleine Fassung fuer einen Kasten (z. B. das hochkante Video, 240 px) ---- */
.bbn-warteschirm--klein .bbn-warteschirm__falter { width: 64px; height: 64px; margin-bottom: 14px; }
.bbn-warteschirm--klein .bbn-warteschirm__titel  { font-size: 19px; }
.bbn-warteschirm--klein .bbn-warteschirm__satz   { font-size: 16px; margin-top: 6px; padding: 0 14px; }
.bbn-warteschirm--klein .bbn-warteschirm__punkte { margin-top: 14px; }
.bbn-warteschirm--klein .bbn-warteschirm__punkte i { width: 6px; height: 6px; margin: 0 4px; }

/* Wer Bewegung nicht vertraegt, bekommt das Bild ruhig. */
@media (prefers-reduced-motion: reduce) {
  .bbn-warteschirm__falter,
  .bbn-warteschirm__punkte i { animation: none; }
}
