/* ============================================================================
   Oltanis — Fonds animés « Arcs + Réseau » (combinaison Prop. B + C)
   Positionnement des calques + animations. Préfixe oltbc- (sans collision).
   À lier APRÈS la feuille de styles principale de la landing.
   ========================================================================== */
[data-oltbc] { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
[data-oltbc] svg { width: 100%; height: 100%; display: block; }
.oltbc-rel { position: relative; overflow: hidden; }
.oltbc-above { position: relative; z-index: 1; }

@media (prefers-reduced-motion: no-preference) {
  .oltbc-driftx { animation: oltbc-driftx 40s linear infinite; }
  @keyframes oltbc-driftx { from { transform: translateX(0); } to { transform: translateX(-140px); } }

  .oltbc-spin { animation: oltbc-spin 70s linear infinite; }
  @keyframes oltbc-spin { to { transform: rotate(360deg); } }

  .oltbc-breathe { animation: oltbc-breathe 9s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
  @keyframes oltbc-breathe { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.06); } }

  .oltbc-float { animation: oltbc-float 12s ease-in-out infinite; }
  @keyframes oltbc-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }

  .oltbc-pulse { stroke-dasharray: 26 240; animation: oltbc-pulse 4.5s linear infinite; }
  @keyframes oltbc-pulse { to { stroke-dashoffset: -266; } }
  .oltbc-pulse2 { animation-delay: -2.2s; }
  .oltbc-pulse3 { animation-delay: -3.6s; }

  .oltbc-blink { animation: oltbc-blink 4.5s ease-in-out infinite; }
  @keyframes oltbc-blink { 0%, 100% { opacity: .3; } 50% { opacity: 1; } }
}
