:root {
  --home-motion-ease:cubic-bezier(.16,1,.3,1);
  --home-motion-fast:180ms;
}

/* One composed first impression: copy first, action last. */
.home-page .nav .brand,
.home-page .nav .desktop-nav__links,
.home-page .nav .nav__actions {
  animation:home-nav-in 520ms var(--home-motion-ease) both;
}
.home-page .nav .desktop-nav__links { animation-delay:50ms; }
.home-page .nav .nav__actions { animation-delay:100ms; }
@media (max-width:900px) {
  .home-page .nav .brand,
  .home-page .nav .nav__actions,
  .home-page .nav .nav__burger {
    animation:none !important;
  }
}
.home-page .hero-drop-tag,
.home-page .headline > .line,
.home-page .hero-subtitle,
.home-page .cta-row {
  animation:home-hero-in 700ms var(--home-motion-ease) both;
}
.home-page .hero-drop-tag { animation-delay:100ms; }
.home-page .headline > .line:nth-of-type(1),
.home-page .headline > .line:nth-of-type(4) { animation-delay:170ms; }
.home-page .headline > .line:nth-of-type(2),
.home-page .headline > .line:nth-of-type(5) { animation-delay:245ms; }
.home-page .headline > .line:nth-of-type(3) { animation-delay:320ms; }
.home-page .hero-subtitle { animation-delay:345ms; }
.home-page .cta-row { animation-delay:420ms; }

@keyframes home-nav-in {
  from { opacity:0; transform:translateY(-7px); }
  to { opacity:1; transform:none; }
}
@keyframes home-hero-in {
  from { opacity:0; transform:translateY(13px); filter:blur(3px); }
  to { opacity:1; transform:none; filter:blur(0); }
}

/* Scroll reveals stay restrained and never affect layout. */
.home-page [data-home-reveal] {
  opacity:0;
  filter:blur(4px);
  transform:translate3d(0,18px,0) !important;
  transition:
    opacity 480ms ease-out,
    filter 560ms var(--home-motion-ease),
    transform 560ms var(--home-motion-ease) !important;
  transition-delay:var(--home-reveal-delay,0ms) !important;
  will-change:opacity,filter,transform;
}
.home-page [data-home-reveal].is-home-visible {
  opacity:1;
  filter:blur(0);
  transform:translate3d(0,0,0) !important;
}
.home-page [data-home-reveal].is-home-settled { will-change:auto; }

/* Home cards remain completely still under a desktop pointer. */
@media (hover:hover) and (pointer:fine) {
  .home-page .gallery .showcase-card.is-home-visible {
    transition:none !important;
  }
  .home-page .gallery .showcase-card.is-home-visible:hover {
    transform:translate3d(0,0,0) !important;
    filter:none !important;
    border-color:rgba(255,255,255,.12) !important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.075) !important;
  }
  .home-page .gallery .showcase-card .showcase-card__preview > img,
  .home-page .gallery .showcase-card .showcase-card__preview > video,
  .home-page .gallery .showcase-card:hover .showcase-card__preview > img,
  .home-page .gallery .showcase-card:hover .showcase-card__preview > video {
    transition:none !important;
    transform:none !important;
    scale:1 !important;
  }
  .home-page .gallery .showcase-card:hover .showcase-card__preview {
    border-color:rgba(245,241,248,.27) !important;
    outline-color:rgba(123,111,245,.16) !important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.12),
      inset 0 -1px 0 rgba(0,0,0,.52),
      0 16px 36px -29px rgba(101,88,244,.84),
      0 22px 50px -43px rgba(241,151,102,.5) !important;
  }
  .home-page .home-adoption-card {
    transition:transform 440ms var(--home-motion-ease),border-color 220ms ease !important;
  }
  .home-page .home-adoption-card:hover { transform:translateY(-3px) !important; }
}

/* Controls use the same short, physical response. */
.home-page :where(.gallery-toggle button,.gallery-filter-options button,.card-likes,.home-testimonials__controls button) {
  transition:
    transform var(--home-motion-fast) var(--home-motion-ease),
    color var(--home-motion-fast) ease,
    background-color var(--home-motion-fast) ease,
    border-color var(--home-motion-fast) ease !important;
}
.home-page :where(.gallery-toggle button,.gallery-filter-options button,.card-likes,.home-testimonials__controls button):active {
  transform:scale(.96) !important;
  transition-duration:90ms !important;
}
.home-page .card-likes span {
  display:inline-block;
  transition:transform 260ms var(--home-motion-ease),color 180ms ease !important;
}
.home-page .card-likes:hover span { transform:scale(1.08); }
.home-page .card-likes[aria-pressed="true"] span { animation:home-heart-pop 360ms var(--home-motion-ease); }
@keyframes home-heart-pop {
  0% { transform:scale(.72); }
  52% { transform:scale(1.22); }
  100% { transform:scale(1); }
}

.home-page .hero .btn-cta,
.home-page .gallery-access-cta__button {
  transition:transform 240ms var(--home-motion-ease),background-color 200ms ease,border-color 200ms ease !important;
}
.home-page .hero .btn-cta:active,
.home-page .gallery-access-cta__button:active { transform:scale(.985) !important; }
.home-page .gallery-access-cta__button svg {
  transition:transform 320ms var(--home-motion-ease) !important;
}
.home-page .gallery-access-cta__button:hover svg { transform:translateX(4px) !important; }

.home-page .gallery-sort[open] > summary {
  transform:scale(.98) !important;
  transition:transform 180ms var(--home-motion-ease),background-color 180ms ease !important;
}
.home-page .gallery-result-count.is-home-updating { animation:home-count-change 320ms var(--home-motion-ease); }
@keyframes home-count-change {
  0% { opacity:.45; transform:translateY(3px); }
  100% { opacity:1; transform:none; }
}

@media (max-width:680px) {
  .home-page [data-home-reveal] {
    filter:none;
    transform:translate3d(0,11px,0) !important;
    transition-duration:420ms !important;
  }
  .home-page [data-home-reveal].is-home-visible { transform:none !important; }
}

@media (prefers-reduced-motion:reduce) {
  .home-page .nav .brand,
  .home-page .nav .desktop-nav__links,
  .home-page .nav .nav__actions,
  .home-page .hero-drop-tag,
  .home-page .headline > .line,
  .home-page .hero-subtitle,
  .home-page .cta-row,
  .home-page [data-home-reveal],
  .home-page .card-likes[aria-pressed="true"] span,
  .home-page .gallery-result-count.is-home-updating {
    animation:none !important;
    transition:none !important;
    opacity:1 !important;
    filter:none !important;
    transform:none !important;
  }
  .home-page :where(.showcase-card,.showcase-card img,.showcase-card video,.home-adoption-card,.btn-cta,.gallery-access-cta__button,.gallery-access-cta__button svg,.card-likes,.card-likes span) {
    transition:none !important;
    transform:none !important;
  }
}
