/* Restrained feedback; layout and reading positions remain stable. */
@media (prefers-reduced-motion: no-preference) {
  /* Replace the older five-second home zoom with scroll-linked motion. */
  body.page-home .hero-art { animation: none; }
  .button { transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease, translate 180ms ease; }
  .button::after { transition: transform 180ms ease; }
  .textlink { transition: color 180ms ease, text-underline-offset 180ms ease; }
}
@media (min-width: 801px) and (prefers-reduced-motion: no-preference) {
  .motion-photo { translate: 0 var(--hero-drift, 0px); scale: 1.065; }
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .button:hover { translate: 0 -2px; }
  .button:hover::after { transform: translate(1px, -1px); }
  .button:active { translate: 0 0; }
  .textlink:hover { text-underline-offset: 5px; }
  .resource { transition: border-color 180ms ease, box-shadow 180ms ease; }
  .resource:hover { border-color: #90bdc6; box-shadow: 0 8px 24px rgba(5,30,47,.05); }
}
@media (prefers-reduced-motion: reduce) {
  .motion-photo { translate: none; scale: none; }
  body.page-home .hero-art { animation: none; }
  .button, .button::after, .textlink, .resource, body > .nav { transition: none !important; }
}
@media print { .motion-photo { translate: none; scale: none; } }
