@media (prefers-reduced-motion: no-preference) {
  .content-motion-enabled [data-content-motion] { transition: opacity 650ms cubic-bezier(.22,1,.36,1); }
  .content-motion-enabled [data-motion-state="visible"] { opacity: 1; transition-duration: 850ms; }
  .content-motion-enabled [data-motion-state="below"],
  .content-motion-enabled [data-motion-state="above"] { opacity: 0; }
  .content-motion-enabled [data-content-motion]:focus-within { opacity: 1; }
  .header .brand img { animation: identity-enter 1000ms cubic-bezier(.16,1,.3,1) both; }
  .hero-media img { animation: scene-enter 1800ms cubic-bezier(.16,1,.3,1) both; }
  .content-motion-enabled .hero-panel[data-motion-state="visible"] > * { animation: hero-copy-enter 900ms cubic-bezier(.16,1,.3,1) both; }
  .content-motion-enabled .hero-panel[data-motion-state="visible"] > .eyebrow { animation-delay: 100ms; }
  .content-motion-enabled .hero-panel[data-motion-state="visible"] > h1 { animation-delay: 220ms; }
  .content-motion-enabled .hero-panel[data-motion-state="visible"] > .lead { animation-delay: 340ms; }
  .content-motion-enabled .hero-panel[data-motion-state="visible"] > .button { animation-delay: 460ms; }
  .hero-panel > :focus-visible { animation: none !important; opacity: 1; }
  .clinician-bio[open] > .bio { animation: hero-copy-enter 350ms ease-out both; }
  @keyframes identity-enter { from { opacity: 0; transform: translateY(-10px) scale(.98); } to { opacity: 1; transform: none; } }
  @keyframes scene-enter { from { opacity: .55; transform: scale(1.045); } to { opacity: 1; transform: scale(1); } }
  @keyframes hero-copy-enter { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
}
@media (prefers-reduced-motion: reduce), print {
  [data-content-motion] { opacity: 1 !important; transform: none !important; transition: none !important; }
  .header .brand img, .hero-media img, .hero-panel > *, .clinician-bio .bio,
  .header nav > a, .header nav > a::before, .header nav > a::after { animation: none !important; transition: none !important; transform: none !important; }
}

/* Separate scene and copy layers let entrance and scroll motion compose. */
@media (prefers-reduced-motion: no-preference) {
  .photo-hero .hero-media { overflow: hidden; }
  .photo-hero .hero-media picture {
    position: absolute;
    inset: -150px 0;
    height: calc(100% + 300px);
    transform: translate3d(0, var(--scene-y, 0px), 0);
    will-change: transform;
  }
  .photo-hero .hero-content {
    transform: translate3d(0, var(--hero-exit-y, 0px), 0);
    opacity: var(--hero-exit-opacity, 1);
  }
  .photo-hero .hero-content:focus-within { opacity: 1; }
  .footer-landscape { position: relative; overflow: hidden; isolation: isolate; background-image: none; }
  .footer-landscape::before {
    content: "";
    position: absolute;
    inset: -80px 0;
    background: url('/assets/hero-home.webp') center 60% / cover;
    transform: translate3d(0, var(--scene-y, 0px), 0);
    will-change: transform;
  }
  .hero-panel { overflow: hidden; }
  @keyframes hero-copy-enter {
    from { opacity: 0; transform: translate3d(0, 26px, 0); }
    to { opacity: 1; transform: translate3d(0, 0, 0); }
  }
  @media (max-width: 850px) {
    .footer-landscape::before { background-image: url('/assets/hero-home-mobile.webp'); }
  }
}

@media (prefers-reduced-motion: no-preference) {
  .photo-hero .hero-media picture { transition: transform 180ms ease-out; }
  .photo-hero .hero-content { transition: transform 180ms ease-out, opacity 180ms linear; }
  .photo-hero .hero-media img {
    animation: scene-light-in 1600ms cubic-bezier(.22,1,.36,1) both, hero-ken-burns 24s cubic-bezier(.37,0,.63,1) infinite alternate;
    transform-origin: center;
  }
  .photo-hero.scene-away .hero-media img { animation-play-state: paused; }
  @keyframes scene-light-in { from { opacity: .3; } to { opacity: 1; } }
  @keyframes hero-ken-burns { from { transform: scale(1.01); } to { transform: scale(1.055); } }
}

@media (prefers-reduced-motion: no-preference) {
  .content-motion-enabled .clinicians article[data-content-motion] {
    transition: opacity 850ms cubic-bezier(.22,1,.36,1), transform 550ms cubic-bezier(.4,0,.2,1), box-shadow 550ms cubic-bezier(.4,0,.2,1), border-color 550ms ease;
  }
}

/* Balanced opposing entrances around the compact care cards. */
@media (prefers-reduced-motion: no-preference) {
  .content-motion-enabled #care .split > div[data-content-motion] {
    transition: opacity 750ms cubic-bezier(.22,1,.36,1), translate 850ms cubic-bezier(.22,1,.36,1);
    translate: 0 0;
  }
  .content-motion-enabled #care .split > div:first-child[data-motion-state="below"],
  .content-motion-enabled #care .split > div:first-child[data-motion-state="above"] { translate: -28px 0; }
  .content-motion-enabled #care .split > div:last-child[data-motion-state="below"],
  .content-motion-enabled #care .split > div:last-child[data-motion-state="above"] { translate: 28px 0; }
  .content-motion-enabled #care .options > article[data-content-motion] {
    transition: opacity 750ms cubic-bezier(.22,1,.36,1), translate 850ms cubic-bezier(.22,1,.36,1);
    translate: 0 0;
  }
  .content-motion-enabled #care .options > article[data-motion-state="below"] { translate: 0 14px; }
  .content-motion-enabled #care .options > article[data-motion-state="above"] { translate: 0 -14px; }
  .content-motion-enabled #care [data-content-motion]:focus-within { translate: 0 0; }
}
@media (prefers-reduced-motion: reduce), print {
  #care [data-content-motion] { translate: none !important; }
}
