/* Kategori ikonları (_cat_icons.html): GIF örneklerinden uyarlanan döngüler. Ana sayfa, ilanlar, kategoriler ve profil kullanır. */
.cat-ic { height: 44px; display: flex; align-items: center; }
.ai-emoji { font-size: 30px; line-height: 1; }
.ai .ai-spin { animation: spin .5s linear infinite; }
.ai .ai-bob { animation: bob .35s ease-in-out infinite alternate; }
.ai .ai-speed, .ai .ai-road { animation: speed .6s linear infinite; }
.ai .ai-snip-a { animation: snipA 1s ease-in-out infinite; }
.ai .ai-snip-b { animation: snipB 1s ease-in-out infinite; }
.ai .ai-fall { animation: fall 1.6s ease-in infinite; }
.ai .ai-leaf { animation: leaf 2s ease-in infinite; transform-box: fill-box; transform-origin: center; }
.ai .ai-spark { animation: spark .9s steps(2) infinite; transform-box: fill-box; transform-origin: center; }
.ai .ai-drip, .ai .ai-drop { animation: drip 1.4s ease-in infinite; }
.ai .ai-drop { animation-name: drop; }
.ai .ai-sway { animation: sway 1.6s ease-in-out infinite; }
.ai .ai-turn { animation: turn 1.2s ease-in-out infinite; }
.ai .ai-twinkle { animation: twinkle 1.4s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
.ai .ai-wave { animation: wave 2.4s ease-in-out infinite; }
.ai .ai-fly { animation: fly 2.4s ease-in-out infinite; }
.ai .ai-trail { animation: trail 2.4s linear infinite; }
.ai .ai-flame { animation: flame .5s ease-in-out infinite alternate; }
.ai .ai-smoke { animation: smoke 2s ease-out infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes flame { from { transform: scale(1, .8); } to { transform: scale(.9, 1.15); } }
@keyframes smoke { 0% { transform: translateY(6px); opacity: 0; } 30% { opacity: .9; } 100% { transform: translateY(-8px); opacity: 0; } }
@keyframes bob { to { transform: translateY(-1.2px); } }
@keyframes speed { from { transform: translateX(6px); } to { transform: translateX(-10px); opacity: 0; } }
@keyframes snipA { 0%, 100% { transform: rotate(-9deg); } 45%, 55% { transform: rotate(3deg); } }
@keyframes snipB { 0%, 100% { transform: rotate(9deg); } 45%, 55% { transform: rotate(-3deg); } }
@keyframes fall { 0% { transform: translateY(-8px); opacity: 0; } 20% { opacity: 1; } 100% { transform: translateY(10px) rotate(25deg); opacity: 0; } }
@keyframes leaf { 0% { transform: translate(0, -10px) rotate(0); opacity: 0; } 20% { opacity: 1; } 100% { transform: translate(6px, 20px) rotate(160deg); opacity: 0; } }
@keyframes spark { 0% { opacity: 1; transform: scale(1); } 50% { opacity: .15; transform: scale(.7); } 100% { opacity: 1; transform: scale(1.1); } }
@keyframes drip { 0% { transform: translateY(0); opacity: 0; } 15% { opacity: 1; } 85% { transform: translateY(18px); opacity: 1; } 100% { transform: translateY(20px); opacity: 0; } }
@keyframes drop { 0% { transform: translate(0, 0); opacity: 0; } 15% { opacity: 1; } 100% { transform: translate(-6px, 14px); opacity: 0; } }
@keyframes sway { 0%, 100% { transform: rotate(-4deg); } 50% { transform: rotate(4deg); } }
@keyframes turn { 0%, 100% { transform: rotate(-6deg); } 50% { transform: rotate(8deg); } }
@keyframes twinkle { 0%, 100% { transform: scale(.4); opacity: .2; } 50% { transform: scale(1.1); opacity: 1; } }
@keyframes wave { 0%, 100% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } }
@keyframes fly { 0%, 100% { transform: translate(0, 0); } 50% { transform: translate(3px, -3px); } }
@keyframes trail { to { stroke-dashoffset: -16; } }
/* ana sayfadaki kurye sahnesi (rider makrosu) */
.ai .ai-puff { animation: puff 1.35s ease-out infinite; transform-box: fill-box; transform-origin: center; }
.ai .ai-beam { animation: beam 1.6s ease-in-out infinite; }
.ai .ai-nod { animation: nod 1.6s ease-in-out infinite; }
/* hareket azaltma açıkken ikonlar durur; ana sayfa sahnesindekiler yerinde döner (home.css) */
@media (prefers-reduced-motion: reduce) { .ai:not(.hero-art .ai) * { animation: none !important; } }
