/* === Ambient Fix (single-layer, robust) === */
:root {
  --ambient-img: "";
  --ambient-opacity: 0.90;
  --ambient-blur: 80px;
  --ambient-saturate: 2;
  --ambient-fade-ms: 100;
}

html, body { min-height: 100%; }

body { position: relative; }

body.has-ambient-img::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  background-image: var(--ambient-img);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  filter: blur(var(--ambient-blur)) saturate(var(--ambient-saturate));
  opacity: var(--ambient-opacity);
  pointer-events: none;
  transition: opacity calc(var(--ambient-fade-ms) * 1ms) ease;
}

/* First load: fade in */
body.has-ambient-img.ambient-first-load::before { opacity: 0; }

/* On change/clear: fade out old image; JS swaps after timeout */
body.has-ambient-img.ambient-fading-out::before { opacity: 0; }

@media (prefers-reduced-motion: reduce) {
  body.has-ambient-img::before { transition: none !important; }
}

/* --- disable ambient fade in/out --- */
:root { --ambient-fade-ms: 0 !important; }
body.has-ambient-img.ambient-first-load::before { opacity: var(--ambient-opacity) !important; }
body.has-ambient-img.ambient-fading-out::before { opacity: var(--ambient-opacity) !important; }

