/* Homepage motion only; shared pages keep their existing behavior. */
@media (prefers-reduced-motion:no-preference){
  body.home .hp-main :is(.hn-pubs .pubcover img,.hn-prog img,.es-card img,.hn-gimg img,.hn-img img,.hn-aimg img){transition:transform .5s cubic-bezier(.22,1,.36,1)}
  body.home .hp-main :is(.hn-svc>div,.hp-glance .g-row){transition:transform .35s ease,background-color .35s ease}
  body.home .hp-main :is(.hn-pubs article:focus-within .pubcover img,.hn-prog a:focus-visible img,.es-card:focus-visible img,.hn-gtop:focus-within .hn-gimg img,.hn-gtrio article:focus-within img,.hn-op article:focus-within .hn-img img,.hn-an a:focus-visible img){transform:scale(1.03)!important}
  body.home .hp-main .hn-svc>div:focus-within{transform:translateY(-3px)!important}
  @media (hover:hover) and (pointer:fine){
    body.home .hp-main :is(.hn-pubs article:hover .pubcover img,.hn-prog a:hover img,.es-card:hover img,.hn-gtop:hover .hn-gimg img,.hn-gtrio article:hover img,.hn-op article:hover .hn-img img,.hn-an a:hover img){transform:scale(1.03)!important}
    body.home .hp-main .hn-svc>div:hover{transform:translateY(-3px)!important}
    body.home .hp-main .hp-glance .g-row:hover{transform:translateX(3px)!important}
  }
}
/* Existing zooms must also respect the visitor's motion preference. */
@media (prefers-reduced-motion:reduce){
  body.home .hp-main *,body.home .hp-main *::before,body.home .hp-main *::after{animation:none!important;transition:none!important}
  body.home .hp-main :is(.hn-gimg img,.hn-img img,.hn-aimg img,.hn-prog img,.es-card img,.pubcover,.pubcover img,.hn-svc>div,.g-row){transform:none!important}
}
