/* ---- Before: sluggish, one-at-a-time step pulse (manual, waiting feel) ---- */
            .baf-before-icon {
              animation: bafBeforePulse 4.8s ease-in-out infinite;
            }

            .baf-before-icon.d1 {
              animation-delay: 0s;
            }

            .baf-before-icon.d2 {
              animation-delay: 0.8s;
            }

            .baf-before-icon.d3 {
              animation-delay: 1.6s;
            }

            .baf-before-icon.d4 {
              animation-delay: 2.4s;
            }

            .baf-before-icon.d5 {
              animation-delay: 3.2s;
            }

            .baf-before-icon.d6 {
              animation-delay: 4.0s;
            }

            @keyframes bafBeforePulse {

              0%,
              83%,
              100% {
                transform: scale(1);
                box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
              }

              8% {
                transform: scale(1.12);
                box-shadow: 0 0 0 6px rgba(239, 68, 68, 0.10);
              }

              16% {
                transform: scale(1);
                box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
              }
            }

            /* Re-enter / Check icons spin slowly to read as "still working on it" */
            .baf-before-spin {
              animation: bafBeforeSpin 2.6s linear infinite;
              transform-origin: 50% 50%;
            }

            @keyframes bafBeforeSpin {
              to {
                transform: rotate(360deg);
              }
            }

            @media (prefers-reduced-motion: reduce) {

              .baf-before-icon,
              .baf-before-spin,
              .baf-flow-dot,
              .baf-after-icon,
              .baf-done-ring {
                animation: none !important;
              }
            }

            /* ---- After: continuous fast flow, dot travels each connector, icons light up in sequence ---- */
            .baf-arrow-track {
              position: relative;
              overflow: visible;
            }

            .baf-flow-dot {
              position: absolute;
              top: 50%;
              left: -3px;
              width: 6px;
              height: 6px;
              border-radius: 50%;
              background: #22C55E;
              box-shadow: 0 0 6px rgba(34, 197, 94, 0.7);
              transform: translateY(-50%);
              animation: bafFlowDot 2.4s cubic-bezier(0.4, 0, 0.2, 1) infinite;
            }

            .baf-arrow-track.t1 .baf-flow-dot {
              animation-delay: 0s;
            }

            .baf-arrow-track.t2 .baf-flow-dot {
              animation-delay: 0.6s;
            }

            .baf-arrow-track.t3 .baf-flow-dot {
              animation-delay: 1.2s;
            }

            @keyframes bafFlowDot {
              0% {
                left: -3px;
                opacity: 0;
              }

              8% {
                opacity: 1;
              }

              85% {
                opacity: 1;
              }

              100% {
                left: 100%;
                opacity: 0;
              }
            }

            .baf-after-icon {
              animation: bafAfterLight 2.4s ease-in-out infinite;
            }

            .baf-after-icon.a1 {
              animation-delay: 0s;
            }

            .baf-after-icon.a2 {
              animation-delay: 0.6s;
            }

            .baf-after-icon.a3 {
              animation-delay: 1.2s;
            }

            .baf-after-icon.a4 {
              animation-delay: 1.8s;
            }

            @keyframes bafAfterLight {

              0%,
              82%,
              100% {
                transform: scale(1);
                box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
              }

              10% {
                transform: scale(1.14);
                box-shadow: 0 0 0 7px rgba(34, 197, 94, 0.16);
              }

              22% {
                transform: scale(1);
                box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
              }
            }

            .baf-done-ring {
              animation: bafDoneRing 2.4s ease-in-out infinite;
              animation-delay: 1.8s;
            }

            @keyframes bafDoneRing {

              0%,
              82%,
              100% {
                box-shadow: 0 0 0 0 rgba(34, 197, 94, 0);
              }

              10% {
                box-shadow: 0 0 0 6px rgba(34, 197, 94, 0.18);
              }

              25% {
                box-shadow: 0 0 0 0 rgba(34, 197, 94, 0);
              }
            }
