/* SVG Loading Animation */
svg .svg-elem-1 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 0s infinite;
}

svg .svg-elem-2 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 0.1s infinite;
}

svg .svg-elem-3 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 0.2s infinite;
}

svg .svg-elem-4 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 0.3s infinite;
}

svg .svg-elem-5 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 0.4s infinite;
}

svg .svg-elem-6 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 0.5s infinite;
}

svg .svg-elem-7 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 0.6s infinite;
}

svg .svg-elem-8 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 0.7s infinite;
}

svg .svg-elem-9 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 0.8s infinite;
}

svg .svg-elem-10 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 0.9s infinite;
}

svg .svg-elem-11 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 1.0s infinite;
}

svg .svg-elem-12 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 1.1s infinite;
}

svg .svg-elem-13 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 1.2s infinite;
}

svg .svg-elem-14 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 1.3s infinite;
}

svg .svg-elem-15 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 1.4s infinite;
}

svg .svg-elem-16 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 1.5s infinite;
}

svg .svg-elem-17 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 1.6s infinite;
}

svg .svg-elem-18 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 1.7s infinite;
}

svg .svg-elem-19 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 1.8s infinite;
}

svg .svg-elem-20 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 1.9s infinite;
}

svg .svg-elem-21 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 2.0s infinite;
}

svg .svg-elem-22 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 2.1s infinite;
}

svg .svg-elem-23 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 2.2s infinite;
}

svg .svg-elem-24 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 2.3s infinite;
}

svg .svg-elem-25 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 2.4s infinite;
}

svg .svg-elem-26 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 2.5s infinite;
}

svg .svg-elem-27 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 2.6s infinite;
}

svg .svg-elem-28 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 2.7s infinite;
}

svg .svg-elem-29 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 2.8s infinite;
}

svg .svg-elem-30 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 2.9s infinite;
}

svg .svg-elem-31 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 3.0s infinite;
}

svg .svg-elem-32 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 3.1s infinite;
}

svg .svg-elem-33 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 3.2s infinite;
}

svg .svg-elem-34 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 3.3s infinite;
}

svg .svg-elem-35 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 3.4s infinite;
}

svg .svg-elem-36 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 3.5s infinite;
}

svg .svg-elem-37 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 3.6s infinite;
}

svg .svg-elem-38 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 3.7s infinite;
}

svg .svg-elem-39 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 3.8s infinite;
}

svg .svg-elem-40 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 3.9s infinite;
}

svg .svg-elem-41 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 4.0s infinite;
}

svg .svg-elem-42 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 4.1s infinite;
}

svg .svg-elem-43 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 4.2s infinite;
}

svg .svg-elem-44 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 4.3s infinite;
}

svg .svg-elem-45 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 4.4s infinite;
}

svg .svg-elem-46 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 4.5s infinite;
}

svg .svg-elem-47 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 4.6s infinite;
}

svg .svg-elem-48 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 4.7s infinite;
}

svg .svg-elem-49 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 4.8s infinite;
}

svg .svg-elem-50 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 4.9s infinite;
}

svg .svg-elem-51 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 5.0s infinite;
}

svg .svg-elem-52 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 5.1s infinite;
}

svg .svg-elem-53 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 5.2s infinite;
}

svg .svg-elem-54 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 5.3s infinite;
}

svg .svg-elem-55 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 5.4s infinite;
}

svg .svg-elem-56 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 5.5s infinite;
}

svg .svg-elem-57 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 5.6s infinite;
}

svg .svg-elem-58 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 5.7s infinite;
}

svg .svg-elem-59 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 5.8s infinite;
}

svg .svg-elem-60 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 5.9s infinite;
}

svg .svg-elem-61 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 6.0s infinite;
}

svg .svg-elem-62 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 6.1s infinite;
}

svg .svg-elem-63 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 6.2s infinite;
}

svg .svg-elem-64 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 6.3s infinite;
}

svg .svg-elem-65 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 6.4s infinite;
}

svg .svg-elem-66 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 6.5s infinite;
}

svg .svg-elem-67 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 6.6s infinite;
}

svg .svg-elem-68 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 6.7s infinite;
}

svg .svg-elem-69 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 6.8s infinite;
}

svg .svg-elem-70 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 6.9s infinite;
}

svg .svg-elem-71 {
    fill: transparent;
    animation: fillAnimation 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 7.0s infinite;
}

@keyframes fillAnimation {
    0% { fill: transparent; }
    100% { fill: rgb(139, 92, 246); }
}

/* Ensure animation restarts */
svg.active {
    animation: restart 0.1s;
}

@keyframes restart {
    from { opacity: 1; }
    to { opacity: 1; }
}