@keyframes fadeUp {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes haloGrow {
  from { opacity: 0; transform: scale(0.6); }
  to { opacity: 1; transform: scale(1); }
}

@keyframes twinkle {
  0%, 100% { opacity: var(--o, 0.5); transform: scale(1); }
  50% { opacity: 1; transform: scale(1.6); }
}

/* cometa: attraversa in diagonale con scia */
@keyframes cometFly {
  0% { opacity: 0; transform: translate(0, 0) rotate(20deg); }
  8% { opacity: 1; }
  85% { opacity: 1; }
  100% { opacity: 0; transform: translate(var(--cx, 440px), var(--cy, 150px)) rotate(20deg); }
}

@keyframes drawLine {
  to { stroke-dashoffset: 0; }
}

@keyframes floatSlow {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}

/* lo schizzo "si disegna" da sinistra a destra (effetto penna) */
@keyframes inkWipe {
  from { clip-path: inset(0 100% 0 0); }
  to { clip-path: inset(0 0 0 0); }
}

/* backlight hero: entra e poi "respira" */
@keyframes glowIn {
  from { opacity: 0; scale: 0.6; }
  to { opacity: 1; scale: 1; }
}
@keyframes glowBreathe {
  0%, 100% { opacity: 1; scale: 1; }
  50% { opacity: 0.72; scale: 1.06; }
}

.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity var(--dur-slow) var(--ease-out-expo),
              transform var(--dur-slow) var(--ease-out-expo);
}
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.reveal-stagger > * {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 800ms var(--ease-out-expo),
              transform 800ms var(--ease-out-expo);
}
.reveal-stagger.is-visible > * {
  opacity: 1;
  transform: translateY(0);
}
.reveal-stagger.is-visible > *:nth-child(1) { transition-delay: 0ms; }
.reveal-stagger.is-visible > *:nth-child(2) { transition-delay: 80ms; }
.reveal-stagger.is-visible > *:nth-child(3) { transition-delay: 160ms; }
.reveal-stagger.is-visible > *:nth-child(4) { transition-delay: 240ms; }
.reveal-stagger.is-visible > *:nth-child(5) { transition-delay: 320ms; }
.reveal-stagger.is-visible > *:nth-child(6) { transition-delay: 400ms; }
.reveal-stagger.is-visible > *:nth-child(7) { transition-delay: 480ms; }
.reveal-stagger.is-visible > *:nth-child(8) { transition-delay: 560ms; }

.sketch-draw path,
.sketch-draw line,
.sketch-draw polyline,
.sketch-draw circle,
.sketch-draw ellipse,
.sketch-draw rect {
  stroke-dasharray: 1200;
  stroke-dashoffset: 1200;
}
.sketch-draw.is-visible path,
.sketch-draw.is-visible line,
.sketch-draw.is-visible polyline,
.sketch-draw.is-visible circle,
.sketch-draw.is-visible ellipse,
.sketch-draw.is-visible rect {
  animation: drawLine 2.4s var(--ease-out-expo) forwards;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .reveal, .reveal-stagger > * { opacity: 1 !important; transform: none !important; }
  .sketch-draw path, .sketch-draw line, .sketch-draw polyline,
  .sketch-draw circle, .sketch-draw ellipse, .sketch-draw rect {
    stroke-dasharray: none !important;
    stroke-dashoffset: 0 !important;
  }
  .atelier-summary img { clip-path: none !important; }
}
