/* Rozet hareketleri (badge-art.js). Hareket yalnız kazanılmış rozette; reduced-motion ve .no-anim ile kapanır. */
.bd { display: block; overflow: visible; flex: none; filter: drop-shadow(0 2px 0 rgba(23, 33, 43, 0.22)); }
.bd.lk { filter: saturate(0.8) brightness(0.98) opacity(0.82); }
.bd.earned .medal { transform-box: fill-box; transform-origin: 50% 60%; animation: bd-float 4.2s ease-in-out infinite; }
.bd.earned .shine { animation: bd-shine 3.4s ease-in-out infinite; }
.bd.earned .spk .s1 { transform-box: fill-box; transform-origin: center; animation: bd-twinkle 2.2s ease-in-out infinite; }
.bd.earned .spk .s2 { transform-box: fill-box; transform-origin: center; animation: bd-twinkle 2.2s ease-in-out 1.1s infinite; }
.bd .shine { transform: translateX(-10px); opacity: 0; }
@keyframes bd-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-1.600px); } }
@keyframes bd-shine { 0%, 55% { transform: translateX(0); opacity: 0; } 60% { opacity: 1; } 85% { transform: translateX(110px); opacity: 1; } 90%, 100% { transform: translateX(110px); opacity: 0; } }
@keyframes bd-twinkle { 0%, 100% { transform: scale(0.4); opacity: 0.2; } 50% { transform: scale(1); opacity: 1; } }
.bd.no-anim .medal, .bd.no-anim .shine, .bd.no-anim .spk path { animation: none !important; }
@media (prefers-reduced-motion: reduce) { .bd .medal, .bd .shine, .bd .spk path { animation: none !important; } .bd .shine { opacity: 0; } }
