/* =====================================================================
   90 · MOTION  —  entrance animations and reduced-motion fallback
   ===================================================================== */

@media (prefers-reduced-motion: no-preference) {
  .js [data-rise] { opacity: 0; transform: translateY(18px); animation: riseIn 800ms var(--ease-out) forwards; animation-delay: calc(var(--i, 0) * 90ms + 120ms); }
  .js .cover__sig { clip-path: inset(0 100% 0 0); animation: write 1400ms var(--ease-in-out) 500ms forwards; }
}
@keyframes riseIn { to { opacity: 1; transform: none; } }
@keyframes write { to { clip-path: inset(0 0 0 0); } }

@media (prefers-reduced-motion: reduce) {
  .screen, .sheet, .sheet.is-leaving, .screen.is-leaving { transition: none; }
  .js .sheet--page.is-active .pg { animation: none; }
}
