/* Cerchi MoodFramework: solo grafica locale, mai sopra i controlli. */
.mf-section > .mf-container { position: relative; z-index: 1; }
.gnc-circles {
  position: absolute; inset: 0; z-index: 0; overflow: hidden;
  pointer-events: none; user-select: none; opacity: var(--gnc-circle-strength, .6);
  --gnc-ring-color: var(--ds-primary); --gnc-orbit-color: var(--ds-accent);
}
.gnc-hero > .gnc-circles { z-index: 2; }
.gnc-circles span { position: absolute; display: block; border-radius: 50%; }
.gnc-circles__ring {
  width: clamp(360px, 43vw, 680px); aspect-ratio: 1;
  right: -180px; bottom: -260px;
  border: clamp(38px, 5vw, 76px) solid var(--gnc-ring-color);
}
.gnc-circles__orbit {
  width: clamp(250px, 29vw, 440px); aspect-ratio: 1;
  right: 50px; top: -180px;
  border: 2px solid var(--gnc-orbit-color);
  box-shadow: 0 0 0 28px color-mix(in srgb, var(--gnc-orbit-color) 9%, transparent);
}
.gnc-circles__dot {
  width: clamp(35px, 5vw, 76px); aspect-ratio: 1;
  right: 14%; bottom: 16%; background: var(--gnc-orbit-color);
}
.gnc-circles--orbits .gnc-circles__ring {
  width: clamp(300px, 34vw, 490px); right: -220px; bottom: -150px;
  border-width: 2px;
  box-shadow: 0 0 0 32px color-mix(in srgb, var(--gnc-ring-color) 8%, transparent),
              0 0 0 68px color-mix(in srgb, var(--gnc-ring-color) 4%, transparent);
}
.gnc-circles--orbits .gnc-circles__orbit {
  width: 280px; right: 60px; top: -210px; border-width: 28px; opacity: .22;
  box-shadow: none;
}
.gnc-circles--orbits .gnc-circles__dot {
  width: 22px; right: 38px; top: 32px; bottom: auto; opacity: .6;
}
.mf-tone-primary > .gnc-circles, .mf-tone-gradient > .gnc-circles {
  --gnc-ring-color: var(--ds-soft); --gnc-orbit-color: var(--ds-dark);
}
.gnc-circles--left { transform: scaleX(-1); }
.gnc-circles--motion.is-visible span { animation: gnc-circle-enter 4.2s cubic-bezier(.2,.7,.2,1) both; }
.gnc-circles--motion.is-visible .gnc-circles__orbit { animation-name: gnc-orbit-enter; }
@keyframes gnc-circle-enter {
  from { transform: translate(45px, 50px) scale(.84); }
  to { transform: translate(0, 0) scale(1); }
}
@keyframes gnc-orbit-enter {
  from { transform: translate(-35px, -30px) scale(.88); }
  to { transform: translate(0, 0) scale(1); }
}
@media (max-width: 640px) {
  .gnc-circles { opacity: calc(var(--gnc-circle-strength, .6) * .65); }
  .gnc-circles__ring { width: 350px; right: -225px; bottom: -170px; border-width: 36px; }
  .gnc-circles__orbit { width: 250px; right: -155px; top: -120px; }
  .gnc-circles__dot { width: 25px; right: 20px; bottom: 28px; }
  .gnc-circles--orbits .gnc-circles__ring { width: 300px; right: -240px; bottom: -170px; }
  .gnc-circles--orbits .gnc-circles__orbit { right: -170px; top: -230px; }
  .gnc-circles--orbits .gnc-circles__dot { width: 14px; right: 18px; top: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .gnc-circles--motion.is-visible span { animation: none; }
}
@media print { .gnc-circles { display: none; } }
