/* Partner motion: one scroll entrance, with independent image hover motion. */
@keyframes partner-arrive {
  from { opacity: 0; transform: translateY(28px) scale(.96); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@media (prefers-reduced-motion: no-preference) {
  .partner-logo.partner-arrived {
    animation: partner-arrive .75s cubic-bezier(.22,1,.36,1) backwards;
    animation-delay: var(--partner-delay, 0ms);
  }
  .partner-logo { transition: border-color .25s, box-shadow .25s; }
  .partner-logo img { transition: transform .35s cubic-bezier(.22,1,.36,1); }
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .partner-logo:hover { border-color: #b7c7b5; box-shadow: 0 10px 24px rgba(18,60,48,.08); }
  .partner-logo:hover img { transform: translateY(-3px) scale(1.04); }
}
@media (prefers-reduced-motion: reduce) {
  .partner-logo.partner-arrived { animation: none; }
  .partner-logo, .partner-logo img { transition: none; }
}