/* ══════════════════════════════════════════════════════════════════════════════
   PATCH — ORBES LAVA · DA Dark Cosmos validée 16/04/2026
   Architecture : drift → .orb-wrap | lava → .orb
   ══════════════════════════════════════════════════════════════════════════════ */

.orb-wrap {
  position: fixed;
  border-radius: 9999px;
  pointer-events: none;
  will-change: transform;
  z-index: 1;
}

.orb-wrap .orb {
  position: relative !important;
  width: 100%;
  height: 100%;
  border-radius: 9999px;
  will-change: transform;
  animation: orb-lava 12s ease-in-out infinite alternate;
}

/* Stagger 3s entre chaque orbe — DA validé */
.orb-wrap--1 .orb { animation-delay:  0s;  }
.orb-wrap--2 .orb { animation-delay: -3s;  }
.orb-wrap--3 .orb { animation-delay: -6s;  }
.orb-wrap--4 .orb { animation-delay: -9s;  }
.orb-wrap--5 .orb { animation-delay: -1.5s;}
.orb-wrap--6 .orb { animation-delay: -4.5s;}
.orb-wrap--7 .orb { animation-delay: -7.5s;}

/* ══ KEYFRAMES LAVA — paramètres DA validés ══════════════════════════════════
   Base : opacity 0.58 · Pic 1 (25%) : 0.98 · scale 1.16 · blur ×0.68
   Pic 2 (75%) : 1.00 · scale 1.20 · blur ×0.72
   ══════════════════════════════════════════════════════════════════════════════ */
@keyframes orb-lava {
  0% {
    opacity: .52;
    filter: blur(90px);
    transform: scale(1);
    border-radius: 58% 42% 38% 62% / 52% 48% 52% 48%;
  }
  25% {
    opacity: .88;
    filter: blur(62px);
    transform: scale(1.16);
    border-radius: 44% 56% 62% 38% / 48% 52% 48% 52%;
  }
  50% {
    opacity: .65;
    filter: blur(90px);
    transform: scale(1.05);
    border-radius: 62% 38% 44% 56% / 60% 40% 60% 40%;
  }
  75% {
    opacity: .90;
    filter: blur(65px);
    transform: scale(1.20);
    border-radius: 38% 62% 55% 45% / 45% 55% 45% 55%;
  }
  100% {
    opacity: .52;
    filter: blur(90px);
    transform: scale(1);
    border-radius: 50% 50% 42% 58% / 54% 46% 54% 46%;
  }
}

/* ══ REDUCED MOTION ══════════════════════════════════════════════════════════ */
@media (prefers-reduced-motion: reduce) {
  .orb-wrap { transition: none !important; }
  .orb-wrap .orb { animation: none !important; }
  .fade-up { opacity: 1 !important; transform: none !important; transition: none !important; }
  .btn-spectral::before,
  .btn-outline::before,
  .btn-outline-violet::before { animation: none !important; }
}
