/* ══════════════════════ Movimento «Kosmos» ══════════════════════
   Regola: gli sfondi possono fluttuare, il contenuto non si muove
   mai sotto gli occhi di chi legge. Tutto è disattivabile via
   prefers-reduced-motion e tutto funziona anche senza JS.
   ═════════════════════════════════════════════════════════════════ */

/* Reveal on scroll: si attiva SOLO quando il JS arma il contenitore
   (body.is-motion). Senza JS tutto è visibile da subito. */
body.is-motion .reveal {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
body.is-motion .reveal.in {
  opacity: 1;
  transform: none;
}

/* Pulsazione del puntino "ultima pubblicazione" */
body.is-motion .hero-badge .dot { animation: k-pulse 2s infinite; }
@keyframes k-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.35; }
}

/* Goccia dello scroll cue */
body.is-motion .scroll-line { animation: k-drop 1.8s infinite; }
@keyframes k-drop {
  0% { transform: scaleY(0); transform-origin: top; }
  50% { transform: scaleY(1); transform-origin: top; }
  51% { transform-origin: bottom; }
  100% { transform: scaleY(0); transform-origin: bottom; }
}

/* Dissolvenza delle citazioni (solo in modalità enhanced) */
body.is-motion .quote-rotator.is-enhanced .quote-slide.is-active { animation: k-fadein 0.8s ease; }
@keyframes k-fadein {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: none; }
}

/* ── Interruttore generale ───────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  body.is-motion .reveal { opacity: 1; transform: none; }
}
