/* ============================================
   COPSOS Living Surface — lave homogène homepage
   Intensité pilotée par [data-world] (DA respectée)
   ============================================ */

.page-home .living-surface {
  --ls-opacity: 0.22;
  --ls-crust: 0;
  --ls-red: 0.35;
  --ls-speed: 1;
  --ls-blend: screen;

  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}

.page-home .page-section,
.page-home .booking-cta,
.page-home .media-breath,
.page-home .site-footer {
  position: relative;
  isolation: isolate;
}

.page-home .page-section > .page-section__inner,
.page-home .booking-cta > .booking-cta__inner,
.page-home .booking-cta > .copsos-mark,
.page-home .booking-cta > .booking-cta__fracture,
.page-home .media-breath > .media-breath__frame,
.page-home .site-footer > :not(.living-surface) {
  position: relative;
  z-index: 1;
}

.page-home .living-surface__crust {
  position: absolute;
  inset: -6%;
  opacity: var(--ls-crust);
  background: url("/assets/img/fracture/earth-lava.jpg") center / cover no-repeat;
  transform-origin: 50% 40%;
  animation: ls-crust-drift calc(32s / var(--ls-speed)) ease-in-out infinite alternate;
  will-change: transform;
  filter: saturate(0.85) brightness(0.55);
}

.page-home .living-surface__glow {
  position: absolute;
  inset: -18%;
  opacity: var(--ls-opacity);
  mix-blend-mode: var(--ls-blend);
  will-change: transform, opacity;
}

.page-home .living-surface__glow--a {
  background:
    radial-gradient(
      ellipse 48% 40% at 28% 60%,
      rgba(255, 70, 35, calc(0.5 * var(--ls-red))) 0%,
      rgba(179, 18, 23, calc(0.2 * var(--ls-red))) 40%,
      transparent 70%
    ),
    radial-gradient(
      ellipse 36% 44% at 78% 30%,
      rgba(255, 100, 50, calc(0.28 * var(--ls-red))) 0%,
      transparent 65%
    );
  animation: ls-glow-a calc(16s / var(--ls-speed)) ease-in-out infinite;
}

.page-home .living-surface__glow--b {
  background:
    radial-gradient(
      ellipse 30% 34% at 55% 45%,
      rgba(255, 140, 70, calc(0.35 * var(--ls-red))) 0%,
      rgba(255, 43, 43, calc(0.15 * var(--ls-red))) 42%,
      transparent 72%
    );
  mix-blend-mode: color-dodge;
  animation: ls-glow-b calc(11s / var(--ls-speed)) ease-in-out infinite;
}

.page-home .living-surface__glow--c {
  background:
    radial-gradient(
      ellipse 14% 60% at 62% 40%,
      rgba(255, 50, 40, calc(0.4 * var(--ls-red))) 0%,
      transparent 58%
    ),
    radial-gradient(
      ellipse 50% 18% at 30% 75%,
      rgba(94, 9, 12, calc(0.35 * var(--ls-red))) 0%,
      transparent 62%
    );
  animation: ls-glow-c calc(20s / var(--ls-speed)) ease-in-out infinite;
}

/* —— Intensités par monde (DA) —— */

/* Artist — respiration, presque silence */
.page-home [data-world="discovery"] > .living-surface {
  --ls-opacity: 0.12;
  --ls-crust: 0.04;
  --ls-red: 0.22;
  --ls-speed: 0.75;
}

/* Live — impact, plus de magma */
.page-home [data-world="energy"] > .living-surface {
  --ls-opacity: 0.48;
  --ls-crust: 0.12;
  --ls-red: 0.85;
  --ls-speed: 1.25;
}

/* Music — contrôle, plus froid / discret */
.page-home [data-world="control"] > .living-surface {
  --ls-opacity: 0.16;
  --ls-crust: 0.03;
  --ls-red: 0.28;
  --ls-speed: 0.85;
  --ls-blend: soft-light;
}

/* Shows — précision éditoriale */
.page-home [data-world="reality"] > .living-surface {
  --ls-opacity: 0.1;
  --ls-crust: 0;
  --ls-red: 0.2;
  --ls-speed: 0.7;
}

/* Gallery — émotion, braises douces */
.page-home [data-world="memory"] > .living-surface {
  --ls-opacity: 0.22;
  --ls-crust: 0.06;
  --ls-red: 0.4;
  --ls-speed: 0.9;
}

/* Press — clarté, quasi neutre */
.page-home [data-world="professional"] > .living-surface {
  --ls-opacity: 0.06;
  --ls-crust: 0;
  --ls-red: 0.12;
  --ls-speed: 0.55;
}

/* Booking — conclusion, rouge revient */
.page-home [data-world="exit"] > .living-surface {
  --ls-opacity: 0.38;
  --ls-crust: 0.1;
  --ls-red: 0.7;
  --ls-speed: 1.05;
}

/* Media breath — pont doux */
.page-home [data-world="release"] > .living-surface {
  --ls-opacity: 0.18;
  --ls-crust: 0.05;
  --ls-red: 0.32;
  --ls-speed: 0.8;
}

/* Footer — continuité minimale */
.page-home .site-footer > .living-surface {
  --ls-opacity: 0.1;
  --ls-crust: 0.03;
  --ls-red: 0.25;
  --ls-speed: 0.65;
}

@keyframes ls-crust-drift {
  0% {
    transform: scale(1.04) translate3d(-1%, 0.5%, 0);
  }
  100% {
    transform: scale(1.1) translate3d(1.5%, -1%, 0);
  }
}

@keyframes ls-glow-a {
  0% {
    transform: translate3d(-3%, 2%, 0) scale(1);
    opacity: 0.7;
  }
  50% {
    transform: translate3d(4%, -3%, 0) scale(1.1);
    opacity: 1;
  }
  100% {
    transform: translate3d(1%, 3%, 0) scale(1.03);
    opacity: 0.8;
  }
}

@keyframes ls-glow-b {
  0%,
  100% {
    transform: translate3d(0, 0, 0) scale(1);
    opacity: 0.55;
  }
  50% {
    transform: translate3d(-4%, 2%, 0) scale(1.14);
    opacity: 0.95;
  }
}

@keyframes ls-glow-c {
  0% {
    transform: translate3d(2%, -2%, 0) scale(1);
    opacity: 0.5;
  }
  50% {
    transform: translate3d(-3%, 2%, 0) scale(1.08);
    opacity: 0.9;
  }
  100% {
    transform: translate3d(2.5%, 1%, 0) scale(1.02);
    opacity: 0.6;
  }
}

@media (max-width: 767px) {
  .page-home .living-surface {
    --ls-opacity: calc(var(--ls-opacity) * 0.75);
  }

  .page-home .living-surface__glow--b {
    display: none;
  }

  .page-home .living-surface__crust {
    animation-duration: 40s;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-home .living-surface__crust,
  .page-home .living-surface__glow--a,
  .page-home .living-surface__glow--b,
  .page-home .living-surface__glow--c {
    animation: none !important;
    will-change: auto;
    transform: none !important;
  }

  .page-home .living-surface__glow {
    opacity: calc(var(--ls-opacity) * 0.6);
  }
}
