/* Round 75 - extra motion layer. All effects are decorative and switch off under reduced-motion. */
@media (prefers-reduced-motion: no-preference) {
  /* page fade-in */
  body { animation: mvPage .45s ease both; }
  @keyframes mvPage { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

  /* scroll progress bar */
  .mv-progress { position: fixed; left: 0; top: 0; height: 3px; width: 100%; transform-origin: 0 50%; transform: scaleX(0);
    background: linear-gradient(90deg, #2e5bff, #7c4dff, #ff7a45); z-index: 9998; pointer-events: none; }

  /* staggered cards */
  .mv-stagger { opacity: 0; transform: translateY(18px) scale(.98); }
  .mv-stagger.mv-in { opacity: 1; transform: none; transition: opacity .5s ease, transform .5s cubic-bezier(.2,.8,.2,1); transition-delay: var(--mv-d, 0ms); }

  /* tool-card hover: lift + tilt (tilt vars set by JS) + icon bounce */
  .tool-card { transition: transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s ease; will-change: transform; }
  .tool-card:hover { transform: perspective(700px) rotateX(var(--mv-rx, 0deg)) rotateY(var(--mv-ry, 0deg)) translateY(-6px);
    box-shadow: 0 18px 38px rgba(31,56,100,.18); }
  .tool-card:hover .tool-icon { animation: mvBounce .6s ease; }
  @keyframes mvBounce { 30% { transform: translateY(-7px) scale(1.08); } 60% { transform: translateY(0) scale(.97); } 100% { transform: none; } }

  /* primary buttons: soft pulse on the hero CTA, shine sweep on hover */
  .hero-cta { animation: mvPulse 2.8s ease-in-out 1.2s infinite; }
  @keyframes mvPulse { 0%,100% { box-shadow: 0 0 0 0 rgba(46,91,255,.35); } 55% { box-shadow: 0 0 0 14px rgba(46,91,255,0); } }
  .btn-primary { position: relative; overflow: hidden; }
  .btn-primary::after { content: ""; position: absolute; top: 0; left: -70%; width: 50%; height: 100%;
    background: linear-gradient(100deg, transparent, rgba(255,255,255,.35), transparent); transform: skewX(-20deg); transition: left .6s ease; pointer-events: none; }
  .btn-primary:hover::after { left: 130%; }

  /* dropzone: breathing icon, marching border on drag-over */
  .dropzone { transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
  .dropzone.dragover, .dropzone.drag-over, .dropzone.is-dragover { transform: scale(1.015); box-shadow: 0 0 0 4px rgba(46,91,255,.18); }
  .dropzone .dz-icon, .dropzone .dropzone-icon { animation: mvFloat 3.2s ease-in-out infinite; }
  @keyframes mvFloat { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }

  /* section titles: gradient underline draws in */
  .tools-section-title, .section-title { position: relative; }
  .tools-section-title::after, .section-title::after { content: ""; display: block; height: 3px; width: 0; margin-top: 6px; border-radius: 3px;
    background: linear-gradient(90deg, #2e5bff, #ff7a45); transition: width .7s ease .15s; }
  .tools-section-title.mv-in::after, .section-title.mv-in::after { width: 56px; }

  /* hero eyebrow sparkle + gradient headline slow shift */
  .hero-eyebrow svg { animation: mvTwinkle 2.4s ease-in-out infinite; }
  @keyframes mvTwinkle { 0%,100% { transform: scale(1) rotate(0); } 50% { transform: scale(1.25) rotate(18deg); } }
  .grad-text { background-size: 200% 100%; animation: mvShift 7s ease-in-out infinite; }
  @keyframes mvShift { 0%,100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }

  /* nav links: underline slide */
  .nav > a, .nav .nav-item > a { position: relative; }
  .nav > a::after { content: ""; position: absolute; left: 10%; right: 10%; bottom: 2px; height: 2px; background: currentColor; transform: scaleX(0); transition: transform .25s ease; opacity: .6; }
  .nav > a:hover::after { transform: scaleX(1); }

  /* success pop used by JS (.mv-pop) and download-complete confetti dots */
  .mv-pop { animation: mvPop .5s cubic-bezier(.2,1.4,.4,1); }
  @keyframes mvPop { from { transform: scale(.6); opacity: 0; } to { transform: none; opacity: 1; } }
  .mv-dot { position: fixed; width: 8px; height: 8px; border-radius: 2px; z-index: 99999; pointer-events: none; animation: mvBurst 1s ease-out forwards; }
  @keyframes mvBurst { to { transform: translate(var(--tx), var(--ty)) rotate(var(--tr)); opacity: 0; } }

  /* price cards + blog cards hover lift */
  .price-card, .blog-card, .post-card { transition: transform .25s ease, box-shadow .25s ease; }
  .price-card:hover, .blog-card:hover, .post-card:hover { transform: translateY(-5px); box-shadow: 0 16px 34px rgba(31,56,100,.16); }
}
