/* Services illustrations: scoped scroll motion. Initial states apply only when JS arms a panel. */
@media (prefers-reduced-motion: no-preference) {
  .sm-on [data-svc-motion].sm-armed svg * { transform-box: fill-box; }
  .sm-on .sm-armed .sm-bar { transform-origin: left center; transform: scaleX(0); }
  .sm-on .sm-armed .sm-pop { transform-origin: center; transform: scale(0); }
  .sm-on .sm-armed .sm-rise { opacity: 0; transform: translateY(10px); }
  .sm-on .sm-armed .sm-drop { opacity: 0; transform: translateY(-14px); }
  .sm-on .sm-armed .sm-fade { opacity: 0; }
  .sm-on .sm-armed .sm-type { clip-path: inset(0 100% 0 0); }
  .sm-on .sm-armed .sm-draw { stroke-dasharray: 1; stroke-dashoffset: 1; }

  .sm-on .sm-play .sm-bar  { animation: smScale .6s cubic-bezier(.2,.8,.2,1) var(--d,0s) both; }
  .sm-on .sm-play .sm-pop  { animation: smPop .45s cubic-bezier(.3,1.5,.5,1) var(--d,0s) both; }
  .sm-on .sm-play .sm-rise { animation: smMove .5s ease-out var(--d,0s) both; }
  .sm-on .sm-play .sm-drop { animation: smMove .45s cubic-bezier(.2,.9,.3,1.15) var(--d,0s) both; }
  .sm-on .sm-play .sm-fade { animation: smFade .4s ease-out var(--d,0s) both; }
  .sm-on .sm-play .sm-type { animation: smType .6s steps(4,end) var(--d,0s) both; }
  .sm-on .sm-play .sm-draw { animation: smDraw .55s ease-out var(--d,0s) both; }
}
@keyframes smScale { to { transform: scaleX(1); } }
@keyframes smPop   { to { transform: scale(1); } }
@keyframes smMove  { to { opacity: 1; transform: none; } }
@keyframes smFade  { to { opacity: 1; } }
@keyframes smType  { to { clip-path: inset(0 0 0 0); } }
@keyframes smDraw  { to { stroke-dashoffset: 0; } }
