/* SourceBound animated mark */
.sb-logo {
    display: inline-block;
    vertical-align: middle;
    overflow: visible;
}
.sb-logo__ring--outer {
    transform-origin: 32px 32px;
    animation: sb-spin 18s linear infinite;
}
.sb-logo__ring--mid {
    transform-origin: 32px 32px;
    animation: sb-spin-rev 12s linear infinite;
    stroke-dasharray: 28 14;
}
.sb-logo__pulse {
    transform-origin: 32px 32px;
    opacity: 0.45;
    animation: sb-pulse 2.4s ease-out infinite;
}
.sb-logo__nodes circle {
    transform-origin: 32px 32px;
    animation: sb-node 2.8s ease-in-out infinite;
}
.sb-logo__nodes circle:nth-child(2) { animation-delay: 0.35s; }
.sb-logo__nodes circle:nth-child(3) { animation-delay: 0.7s; }
.sb-logo__nodes circle:nth-child(4) { animation-delay: 1.05s; }
.sb-logo__links path {
    stroke-dasharray: 12;
    animation: sb-link 2.8s ease-in-out infinite;
}
.sb-logo__links path:nth-child(2) { animation-delay: 0.35s; }
.sb-logo__links path:nth-child(3) { animation-delay: 0.7s; }
.sb-logo__links path:nth-child(4) { animation-delay: 1.05s; }

@keyframes sb-spin {
    to { transform: rotate(360deg); }
}
@keyframes sb-spin-rev {
    to { transform: rotate(-360deg); }
}
@keyframes sb-pulse {
    0%   { transform: scale(1); opacity: 0.4; }
    70%  { transform: scale(2.4); opacity: 0; }
    100% { transform: scale(2.4); opacity: 0; }
}
@keyframes sb-node {
    0%, 100% { opacity: 0.55; }
    50% { opacity: 1; }
}
@keyframes sb-link {
    0%, 100% { opacity: 0.35; stroke-dashoffset: 8; }
    50% { opacity: 0.95; stroke-dashoffset: 0; }
}

@media (prefers-reduced-motion: reduce) {
    .sb-logo__ring--outer,
    .sb-logo__ring--mid,
    .sb-logo__pulse,
    .sb-logo__nodes circle,
    .sb-logo__links path {
        animation: none !important;
    }
}
