/* Gentle editorial motion | Cultural Quiet Signals
   Intentionally no sliding, scaling, parallax, or recurring animations.
   Content stays visible when JavaScript is absent, unavailable, or disabled.
*/
@media (prefers-reduced-motion: no-preference) {
  html.cqs-motion-active .cqs-motion-item {
    opacity: 0;
    transition: opacity 670ms cubic-bezier(.22,.61,.36,1);
    transition-delay: var(--cqs-motion-delay, 0ms);
  }
  html.cqs-motion-active .cqs-motion-item.cqs-motion-visible {
    opacity: 1;
  }
  /* Quiet feedback on interactive elements, no movement of the content. */
  a.button, .footer-links a, nav a, .mobile-menu a {
    transition: background-color 230ms ease, color 230ms ease,
      border-color 230ms ease, box-shadow 230ms ease;
  }
}
@media (prefers-reduced-motion: reduce) {
  html.cqs-motion-active .cqs-motion-item {
    opacity: 1 !important;
    transition: none !important;
  }
}


/* HOME HERO: first-paint entrance independent of scrolling.
   Pure opacity, no position change or image zoom. Animations begin
   as soon as the CSS is parsed, including for direct browser visits. */
@media (prefers-reduced-motion: no-preference) {
  .hero .author-hero-name,
  .hero .hero-subtitle,
  .hero .hero-quote,
  .hero .actions,
  .hero .hero-art {
    animation-name: cqs-home-arrival;
    animation-duration: 1050ms;
    animation-timing-function: cubic-bezier(.22,.61,.36,1);
    animation-fill-mode: both;
    animation-iteration-count: 1;
  }
  .hero .author-hero-name { animation-delay: 40ms; }
  .hero .hero-subtitle    { animation-delay: 185ms; }
  .hero .hero-quote       { animation-delay: 345ms; }
  .hero .actions          { animation-delay: 470ms; }
  .hero .hero-art         { animation-delay: 210ms; animation-duration: 1330ms; }
  @keyframes cqs-home-arrival {
    from { opacity: 0; }
    to   { opacity: 1; }
  }
}
@media (prefers-reduced-motion: reduce) {
  .hero .author-hero-name,
  .hero .hero-subtitle,
  .hero .hero-quote,
  .hero .actions,
  .hero .hero-art {
    animation: none !important;
    opacity: 1 !important;
  }
}
