




/* Every animation here is opacity-only. No keyframe touches transform.
Layout positions live exclusively on SVG transform attributes carried by
wrapper group elements, so a CSS transform can never override them and
collapse the art onto the parent origin. */
.fade-in { opacity: 0; animation: acord25-fade 0.5s ease-out forwards; }
.a1 { animation-delay: 0.10s; }
.a2 { animation-delay: 0.25s; }
.a3 { animation-delay: 0.40s; }
.a4 { animation-delay: 0.55s; }
.a5 { animation-delay: 0.70s; }
.a6 { animation-delay: 0.85s; }
.a7 { animation-delay: 1.05s; }
.a9 { animation-delay: 1.45s; }
.a10 { animation-delay: 1.65s; }
.a11 { animation-delay: 1.85s; }
.a12 { animation-delay: 2.05s; }
@keyframes acord25-fade { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
.fade-in { opacity: 1; animation: none; }
}


/* Opacity-only animation. Positioning is carried solely by SVG transform
attributes on wrapper group elements, never by a keyframe, so a CSS
transform can never override a position and stack the art at the origin. */
.sf-in { opacity: 0; animation: sf-fade 0.5s ease-out forwards; }
.s1 { animation-delay: 0.10s; }
.s2 { animation-delay: 0.30s; }
.s3 { animation-delay: 0.50s; }
.s4 { animation-delay: 0.72s; }
.s5 { animation-delay: 0.92s; }
.s6 { animation-delay: 1.12s; }
.s7 { animation-delay: 1.32s; }
@keyframes sf-fade { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
.sf-in { opacity: 1; animation: none; }
}

