/* Homepage links only. Resting styles remain untouched; touch has no added hover. */
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  body[data-page="home"] a[data-home-hover="link"],
  body[data-page="home"] a[data-home-hover="card"] {
    transition: translate 240ms cubic-bezier(.22, .61, .36, 1);
  }
  /* Retain the existing color/border and button transitions. */
  body[data-page="home"] a.link-under[data-home-hover="link"] {
    transition: border-color .15s ease, color .15s ease, translate 240ms cubic-bezier(.22, .61, .36, 1);
  }
  body[data-page="home"] a[data-home-hover="button"] {
    transition: background .15s ease, transform .15s ease, translate 240ms cubic-bezier(.22, .61, .36, 1);
  }
  body[data-page="home"] a[data-home-hover="link"]:hover { translate: 3px 0; }
  body[data-page="home"] a[data-home-hover="button"]:hover { translate: 0 -2px; }
  body[data-page="home"] a[data-home-hover="card"]:hover { translate: 0 -4px; }
  body[data-page="home"] a[data-home-hover="card"] img {
    transition: transform 400ms cubic-bezier(.22, .61, .36, 1);
  }
  body[data-page="home"] a[data-home-hover="card"]:hover img { transform: scale(1.035); }
  /* Move the two joined hero links together, preserving their shared shape. */
  body[data-page="home"] [data-home-section="hero"] .card-shadow:has(> a[data-home-hover="hero"]) {
    transition: translate 240ms cubic-bezier(.22, .61, .36, 1);
  }
  body[data-page="home"] [data-home-section="hero"] .card-shadow:has(> a[data-home-hover="hero"]:hover) {
    translate: 0 -2px;
  }
  body[data-page="home"] a[data-home-hover="hero"] svg {
    transition: translate 240ms cubic-bezier(.22, .61, .36, 1);
  }
  body[data-page="home"] [data-home-section="hero"] .card-shadow:has(> a[data-home-hover="hero"]:hover) svg {
    translate: 4px 0;
  }
}
