/* ============================================================
   V25 — MOTION
   Reveal ricorrente + micro-animazioni editoriali.
   ============================================================ */

.reveal-on-scroll {
  opacity: 0;
  transform: translateY(13px);
  filter: blur(1.5px);
  transition:
    opacity .48s cubic-bezier(.2,.7,.2,1) var(--reveal-delay, 0ms),
    transform .56s cubic-bezier(.2,.7,.2,1) var(--reveal-delay, 0ms),
    filter .42s ease var(--reveal-delay, 0ms);
  will-change: opacity, transform, filter;
}

.reveal-on-scroll.is-revealed {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}

/* La piccola linea sotto i titoli si distende quando la sezione entra.
   È volutamente molto discreta. */
.section-heading.reveal-on-scroll::after {
  transform: scaleX(.22);
  transform-origin: left center;
  opacity: .32;
  transition:
    transform .72s cubic-bezier(.2,.7,.2,1) .12s,
    opacity .42s ease .12s;
}

.section-heading.reveal-on-scroll.is-revealed::after {
  transform: scaleX(1);
  opacity: 1;
}

/* Leggero assestamento del titolo: 2px, senza effetto "template". */
.section-heading.reveal-on-scroll h2 {
  transform: translateY(2px);
  transition: transform .58s cubic-bezier(.2,.7,.2,1);
}

.section-heading.reveal-on-scroll.is-revealed h2 {
  transform: translateY(0);
}

.brand-mark.is-logo-pulsing {
  animation: logo-double-pulse .68s cubic-bezier(.2,.7,.2,1);
  transform-origin: center;
}

@keyframes logo-double-pulse {
  0%   { transform: scale(1); }
  18%  { transform: scale(1.055); }
  36%  { transform: scale(1); }
  55%  { transform: scale(1.055); }
  76%  { transform: scale(1); }
  100% { transform: scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  .reveal-on-scroll,
  .reveal-on-scroll.is-revealed {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    transition: none !important;
  }

  .section-heading.reveal-on-scroll::after,
  .section-heading.reveal-on-scroll h2 {
    transform: none !important;
    opacity: 1 !important;
    transition: none !important;
  }

  .brand-mark.is-logo-pulsing {
    animation: none !important;
  }
}
