/* Subtle arrivals: a short fade with a small upward settle. Shared by
   word/paragraph reveals, the organism, and the nav hud. */
@keyframes fade-up {
  from {
    opacity: 0;
    transform: translateY(5px);
  }
  to {
    opacity: var(--arrival-opacity, 1);
    transform: none;
  }
}

.arrival-word { display: inline-block; }

@media (prefers-reduced-motion: no-preference) {
  .organism-arriving {
    animation: fade-up 480ms ease-out both;
  }
  .is-article #organism { --arrival-opacity: 0.55; }
  .arrival-unit {
    display: inline-block;
    animation: fade-up 480ms ease-out both;
    animation-delay: var(--arrival-delay);
  }
}

@media print {
  .arrival-unit { animation: none !important; }
}

/* No document snapshots: outgoing content fades once during native loading. */
.site-main, #organism, .organism-hud {
  transition: opacity 120ms ease-out;
}
html.is-leaving .site-main,
html.is-leaving #organism,
html.is-leaving .organism-hud {
  animation: none !important;
  opacity: 0 !important;
}
