/* Restrained movement; text never uses blur or scale transforms. */
@keyframes bc-arrive {
  from { opacity: 0; transform: translateY(9px); }
  to { opacity: 1; transform: none; }
}
@keyframes bc-dawn {
  from { transform: scale(1.045); }
  to { transform: none; }
}
@keyframes bc-backdrop { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: no-preference) {
  .hero-art { animation: bc-dawn 1.8s cubic-bezier(.2,.65,.3,1) both; }
  .hero-copy > * { animation: bc-arrive .7s cubic-bezier(.16,1,.3,1) both; }
  .hero-copy > :nth-child(2) { animation-delay: .06s; }
  .hero-copy > :nth-child(3) { animation-delay: .12s; }
  .hero-copy > :nth-child(4) { animation-delay: .18s; }
  .hero-copy > :nth-child(5) { animation-delay: .24s; }
  .start-dialog[open] { animation: bc-arrive .28s cubic-bezier(.16,1,.3,1); }
  .start-dialog[open]::backdrop { animation: bc-backdrop .25s ease-out; }
  .language-menu[open] .language-options { animation: bc-arrive .2s ease-out; }
  .primary-nav.is-open { animation: bc-arrive .24s ease-out; }
  [data-rank-panel]:not([hidden]) { animation: bc-arrive .25s ease-out; }
  .quick-action, .support-project, .news-card, .stream-card, .event-card {
    transition: background .22s, border-color .22s, box-shadow .28s, transform .28s cubic-bezier(.2,.8,.2,1);
  }
  .quick-arrow, .ranking-full > span, .about-links a > span, .button > span[aria-hidden] {
    display: inline-block; transition: transform .25s cubic-bezier(.2,.8,.2,1);
  }
  @media (hover: hover) and (pointer: fine) {
    .quick-action:hover, .support-project:hover, .news-card:hover, .stream-card:hover, .event-card:hover {
      transform: translateY(-3px); box-shadow: 0 8px 22px #493b2512;
    }
    .quick-action:hover .quick-arrow, .ranking-full:hover > span, .about-links a:hover > span, .button:hover > span[aria-hidden] {
      transform: translate(2px,-2px);
    }
    .button-primary:hover { box-shadow: 0 7px 19px #763d3230, inset 0 1px #ffffff20; }
  }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
