/* OlimpiApp — Ambient mesh gradient + grain overlay */

/* ── Ambient mesh blobs ─────────────────────────────────────────── */
.ambient-mesh {
  position: fixed;
  inset: 0;
  z-index: -10;
  pointer-events: none;
  overflow: hidden;
}

.ambient-mesh::before,
.ambient-mesh::after {
  content: '';
  position: absolute;
  border-radius: 50%;
  opacity: 0;
  animation: meshFloat 22s ease-in-out infinite;
}

.ambient-mesh::before {
  width: 70vmax;
  height: 70vmax;
  background: radial-gradient(circle, var(--mesh-color-1, #7C5CFF) 0%, transparent 62%);
  top: -25%;
  left: -15%;
  opacity: 0.28;
}

.ambient-mesh::after {
  width: 55vmax;
  height: 55vmax;
  background: radial-gradient(circle, var(--mesh-color-2, #FF3D9A) 0%, transparent 60%);
  bottom: -20%;
  right: -10%;
  opacity: 0.22;
  animation-delay: -11s;
  animation-duration: 28s;
}

/* Vignette — focuses attention to center */
.ambient-mesh-vignette {
  position: absolute;
  inset: 0;
  background: radial-gradient(
    130% 85% at 50% 40%,
    transparent 0%,
    rgba(10, 11, 20, 0.55) 65%,
    rgba(10, 11, 20, 0.90) 100%
  );
}

/* ── Mood palettes (applied to body) ────────────────────────────── */
body.mood-home    { --mesh-color-1: #7C5CFF; --mesh-color-2: #FF3D9A; }
body.mood-paths   { --mesh-color-1: #3DDC97; --mesh-color-2: #6EE7D9; }
body.mood-league  { --mesh-color-1: #FFC857; --mesh-color-2: #FF9E3D; }
body.mood-library { --mesh-color-1: #B794F6; --mesh-color-2: #7C5CFF; }
body.mood-profile { --mesh-color-1: #A16BFF; --mesh-color-2: #6B4CEF; }
body.mood-exercise{ --mesh-color-1: #7C5CFF; --mesh-color-2: #3DDC97; }

/* ── Float animation ────────────────────────────────────────────── */
@keyframes meshFloat {
  0%, 100% { transform: translate(0, 0)       scale(1);    }
  25%       { transform: translate(7%, -6%)    scale(1.08); }
  50%       { transform: translate(-4%, 8%)    scale(0.96); }
  75%       { transform: translate(5%, 3%)     scale(1.04); }
}

@media (prefers-reduced-motion: reduce) {
  .ambient-mesh::before,
  .ambient-mesh::after { animation: none; }
}
