/* Shared motion, September 2026. Text and images remain visible without JS. */
.reveal { opacity: 1; transform: none; transition: none; }
html.motion-ready .reveal.in {
  transition: opacity 650ms var(--ease), transform 750ms var(--ease);
  transition-delay: var(--d, 0s);
}
html.motion-ready .reveal:not(.in) { opacity: 0; transform: translateY(20px); }
html.motion-ready .reveal.in { opacity: 1; transform: none; }
.case-head .case-title { --d: 0s; }
.case-head .case-deck { --d: 90ms; }
.case-head .case-services, .case-head .case-copy { --d: 180ms; }
.motion-arrow { display: inline-block; transition: transform 300ms var(--ease); }
.case-visual img { transition: transform 650ms var(--ease); }
.case-card-link:focus-visible .motion-arrow,
.next-case a:focus-visible .motion-arrow { transform: translate(4px, -4px); }
@media (hover: hover) and (pointer: fine) {
  .case-card-link:hover .case-visual img { transform: scale(1.025); }
  .case-card-link:hover .motion-arrow,
  .next-case a:hover .motion-arrow { transform: translate(4px, -4px); }
}
/* Keep long-form copy still. Only headings, images and the opening arrive. */
.case-copy { scroll-margin-top: 32px; }
.scrub .w { opacity: .55; transition: opacity 240ms linear; }
.scrub .w.on { opacity: 1; }
.pin { z-index: 10; }
@media (max-width: 46em) {
  html.motion-ready .reveal:not(.in) { transform: translateY(12px); }
  html.motion-ready .reveal.in { transition-duration: 500ms, 600ms; }
  .case-head .case-deck { --d: 60ms; }
  .case-head .case-services, .case-head .case-copy { --d: 120ms; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  html.motion-ready .reveal, html.motion-ready .reveal:not(.in),
  .reveal, html.anim .hero-line, html.anim .hero-say, html.anim .hero-foot {
    opacity: 1 !important; transform: none !important; transition: none !important;
  }
  html.anim .type { visibility: visible; }
  .caret { display: none !important; animation: none !important; }
  .scrub .w { opacity: 1 !important; transition: none !important; }
  .case-visual img, .motion-arrow, .svc, .svc-desc, .pin { transition: none !important; }
  .case-card-link:hover .case-visual img, .motion-arrow { transform: none !important; }
  .case-card-link:hover .motion-arrow, .case-card-link:focus-visible .motion-arrow,
  .next-case a:hover .motion-arrow, .next-case a:focus-visible .motion-arrow { transform: none !important; }
}
