/* Disques sans contour : flottement continu et parallaxe indépendante. */
body:has(.hero-v3) {
  isolation: isolate;
  background: #fffbf7;
}
body:has(.hero-v3)::before,
body:has(.hero-v3)::after,
body:has(.hero-v3) .hero::before { display: none; }
.home-scroll-backdrop {
  --home-scroll: 0;
  --orb-size: min(clamp(360px, 43vw, 660px), 72vh);
  --orb-top: clamp(18px, 7vh, 90px);
  --orb-travel: calc(var(--orb-size) * .325 + 18px);
  --orb-drift: max(0px, min(18vh, calc(100vh - var(--orb-top) - var(--orb-size) * .825 - 28px)));
  position: fixed;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  pointer-events: none;
  contain: strict;
  background: #fffbf7;
}
.home-scroll-backdrop__orbit {
  position: absolute;
  top: var(--orb-top);
  right: calc(var(--orb-size) / -2);
  width: var(--orb-size);
  height: var(--orb-size);
  transform: translate3d(calc(var(--home-scroll) * var(--orb-travel) * -1), calc(var(--home-scroll) * var(--orb-drift)), 0) scale(calc(1 - var(--home-scroll) * .35));
  will-change: transform;
}
.home-scroll-backdrop__disc {
  width: 100%; height: 100%; border-radius: 50%;
  background: rgb(237 113 23 / .16);
  animation: home-orb-float 12s ease-in-out infinite;
}
.home-scroll-backdrop__bubble { position: absolute; will-change: transform; }
.home-scroll-backdrop__bubble span { display: block; width: 100%; height: 100%; border-radius: 50%; }
.home-scroll-backdrop__bubble--left {
  left: -110px;
  top: 48vh;
  width: 260px;
  height: 260px;
  transform: translate3d(calc(var(--home-scroll) * 36px), calc(var(--home-scroll) * -24vh), 0);
}
.home-scroll-backdrop__bubble--left span {
  background: rgb(245 148 75 / .16);
  animation: home-bubble-float 11s ease-in-out infinite;
}
.home-scroll-backdrop__bubble--right {
  right: 24px;
  top: 64vh;
  width: 86px;
  height: 86px;
  transform: translate3d(calc(var(--home-scroll) * -24px), calc(var(--home-scroll) * -28vh), 0);
}
.home-scroll-backdrop__bubble--right span {
  background: rgb(237 113 23 / .25);
  animation: home-bubble-float 8s -3s ease-in-out infinite reverse;
}
.home-scroll-backdrop__bubble--small {
  right: 13vw;
  top: 22vh;
  width: 22px;
  height: 22px;
  transform: translate3d(calc(var(--home-scroll) * 36px), calc(var(--home-scroll) * 12vh), 0);
}
.home-scroll-backdrop__bubble--small span {
  background: rgb(255 204 157 / .30);
  animation: home-bubble-float 9s -5s ease-in-out infinite;
}
/* Le centre presque uni garde les textes lisibles, les formes restent en marge. */
.home-scroll-backdrop__wash {
  position: absolute;
  inset: 0;
  background: transparent;
}
body:has(.hero-v3) #medias { background: rgb(248 249 251 / .88); }
body:has(.hero-v3) .site-footer { background: rgb(248 249 251 / .95); }
.home-scroll-backdrop[data-paused="true"] .home-scroll-backdrop__disc,
.home-scroll-backdrop[data-paused="true"] .home-scroll-backdrop__bubble span { animation-play-state: paused; }
@keyframes home-orb-float {
  0%, 100% { transform: translate3d(0, 0, 0); }
  50% { transform: translate3d(-50px, 65px, 0); }
}
@keyframes home-bubble-float {
  0%, 100% { transform: translate3d(0, 0, 0); }
  50% { transform: translate3d(45px, -55px, 0); }
}
@media (max-width: 900px) {
  .home-scroll-backdrop__disc { opacity: .7; }
  .home-scroll-backdrop__bubble--left { left: -155px; }
  .home-scroll-backdrop__bubble--right { right: -20px; opacity: .65; }
  .home-scroll-backdrop__bubble--small { right: 6vw; }
}
@media (max-width: 540px) {
  .home-scroll-backdrop { --orb-size: min(80vw, 64vh); --orb-top: 48px; }
  .home-scroll-backdrop__disc { opacity: .5; }
  .home-scroll-backdrop__disc, .home-scroll-backdrop__bubble span { animation-name: home-mobile-float; }
  .home-scroll-backdrop__bubble--left,
  .home-scroll-backdrop__bubble--small { display: none; }
  .home-scroll-backdrop__bubble--right { right: -15px; width: 66px; height: 66px; opacity: .5; }
  .home-scroll-backdrop__wash {
    background: transparent;
  }
}
@keyframes home-mobile-float { 0%,100% { transform: translate3d(0,0,0); } 50% { transform: translate3d(-18px,28px,0); } }
@media (prefers-reduced-motion: reduce) {
  .home-scroll-backdrop__orbit,
  .home-scroll-backdrop__bubble { transform: none; will-change: auto; }
  .home-scroll-backdrop__disc,
  .home-scroll-backdrop__bubble span { animation: none; }
}
