/* Bulles qui remontent depuis le bas (Été, rafraîchissant)
   Layer injecté par bubbles.js
   ----------------------------------------------------------------- */

.fx-bubbles .fx-bubble-layer {
  position: fixed;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
  z-index: 9998;
}

.fx-bubbles .fx-bubble {
  position: absolute;
  bottom: -40px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, rgba(255,255,255,0.9) 0%, rgba(190,220,240,0.35) 60%, rgba(140,180,220,0.1) 100%);
  border: 1px solid rgba(255,255,255,0.6);
  animation-name: fx-bubble-rise;
  animation-timing-function: ease-in;
  animation-iteration-count: infinite;
  will-change: transform;
}

@keyframes fx-bubble-rise {
  0%   { transform: translate3d(0, 0, 0) scale(0.5); opacity: 0; }
  15%  { opacity: 0.9; }
  90%  { opacity: 0.7; }
  100% { transform: translate3d(20px, -110vh, 0) scale(1); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .fx-bubbles .fx-bubble-layer { display: none; }
}
