/* Logic Point Solutions - Motion and Interaction Layer
   Motion should reinforce clarity, direction, and connection. */
@media (prefers-reduced-motion: no-preference) {
  .lps-button, .lps-button__arrow, .lps-card, .lps-card::before, .lps-link::after, .lps-nav a::after {
    transition-timing-function: var(--lps-ease);
    transition-duration: 240ms;
  }

  .lps-button { transition-property: transform, box-shadow, background-color, border-color; }
  .lps-button::before {
    content: ''; position: absolute; inset: 0; z-index: -1;
    background: linear-gradient(110deg,var(--lps-blue),var(--lps-signal),var(--lps-cyan));
    transform: translateX(-102%); transition: transform 420ms var(--lps-ease);
  }
  .lps-button:hover { transform: translateY(-3px); box-shadow: 0 16px 34px rgba(9,77,186,.28); }
  .lps-button:hover::before { transform: translateX(0); }
  .lps-button:hover .lps-button__arrow { transform: translateX(5px); }
  .lps-button:active { transform: translateY(-1px) scale(.985); }

  .lps-card { transition-property: transform, box-shadow, border-color; }
  .lps-card::before { transform: scaleX(.2); transition-property: transform; }
  .lps-card:hover { transform: translateY(-8px); border-color: rgba(9,77,186,.3); box-shadow: var(--lps-shadow-md); }
  .lps-card:hover::before { transform: scaleX(1); }

  .lps-link { position: relative; display: inline-flex; align-items: center; gap: 8px; color: var(--lps-blue); font-weight: 700; text-decoration: none; }
  .lps-link::after {
    content: ''; display: inline-block; width: 1.05em; height: 1.05em;
    background-color: currentColor;
    -webkit-mask: var(--icon-arrow-right) center/contain no-repeat;
            mask: var(--icon-arrow-right) center/contain no-repeat;
    transition-property: transform;
  }
  .lps-link:hover::after { transform: translateX(6px); }

  .lps-nav a { position: relative; text-decoration: none; }
  .lps-nav a::after {
    content: ''; position: absolute; left: 0; right: 0; bottom: -7px; height: 2px;
    background: linear-gradient(90deg,var(--lps-blue),var(--lps-cyan)); transform: scaleX(0); transform-origin: right;
    transition-property: transform;
  }
  .lps-nav a:hover::after, .lps-nav a[aria-current='page']::after { transform: scaleX(1); transform-origin: left; }

  .lps-reveal { opacity: 0; transform: translateY(18px); }
  .lps-reveal.is-visible { animation: lpsReveal 650ms var(--lps-ease) forwards; }
  @keyframes lpsReveal { to { opacity: 1; transform: translateY(0); } }

  .lps-node-pulse { transform-box: fill-box; transform-origin: center; animation: lpsNodePulse 2.8s ease-in-out infinite; }
  @keyframes lpsNodePulse { 0%,100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.12); opacity: .72; } }
}

@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
