/* ============================================
   OYUN BAHÇESİ - Animasyonlar
   ============================================ */

/* Bulut yüzme */
@keyframes cloudFloat {
    0% { transform: translateX(0); }
    100% { transform: translateX(calc(100vw + 200px)); }
}

/* Güneş nabız */
@keyframes sunPulse {
    0%, 100% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.08); opacity: 0.9; }
}

/* Bounce giriş */
@keyframes bounceIn {
    0% { transform: scale(0.3); opacity: 0; }
    50% { transform: scale(1.06); }
    70% { transform: scale(0.96); }
    100% { transform: scale(1); opacity: 1; }
}

/* Fade in yukarı */
@keyframes fadeInUp {
    from { transform: translateY(30px); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
}

/* Fade in */
@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* Başarı pulse */
@keyframes successPulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.12); }
}

/* Hata sallama */
@keyframes wiggle {
    0%, 100% { transform: rotate(0deg); }
    20% { transform: rotate(-8deg); }
    40% { transform: rotate(8deg); }
    60% { transform: rotate(-5deg); }
    80% { transform: rotate(5deg); }
}

/* Yüzme (dekoratif) */
@keyframes float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-8px); }
}

/* Yıldız kazanma */
@keyframes starEarned {
    0% { transform: scale(0) rotate(0deg); opacity: 0; }
    60% { transform: scale(1.4) rotate(360deg); opacity: 1; }
    100% { transform: scale(1) rotate(360deg); }
}

/* Kart giriş (hub) */
@keyframes cardEnter {
    0% { transform: scale(0.5) translateY(40px); opacity: 0; }
    100% { transform: scale(1) translateY(0); opacity: 1; }
}

/* Pop efekt */
@keyframes pop {
    0% { transform: scale(0); }
    70% { transform: scale(1.15); }
    100% { transform: scale(1); }
}

/* Parlama (yıldız ışığı) */
@keyframes glow {
    0%, 100% { box-shadow: 0 0 5px var(--yildiz-zemin); }
    50% { box-shadow: 0 0 20px var(--yildiz-isik), 0 0 40px var(--yildiz-zemin); }
}

/* Zıplama */
@keyframes jump {
    0%, 100% { transform: translateY(0); }
    30% { transform: translateY(-20px); }
    50% { transform: translateY(-15px); }
    70% { transform: translateY(-18px); }
}

/* Döndürme */
@keyframes spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* Kart çevirme */
@keyframes flipIn {
    0% { transform: rotateY(90deg); }
    100% { transform: rotateY(0deg); }
}

/* Slide in sağdan */
@keyframes slideInRight {
    from { transform: translateX(100%); opacity: 0; }
    to { transform: translateX(0); opacity: 1; }
}

/* Slide in soldan */
@keyframes slideInLeft {
    from { transform: translateX(-100%); opacity: 0; }
    to { transform: translateX(0); opacity: 1; }
}

/* Slide out sola */
@keyframes slideOutLeft {
    from { transform: translateX(0); opacity: 1; }
    to { transform: translateX(-100%); opacity: 0; }
}

/* Sayı büyüme */
@keyframes numberPop {
    0% { transform: scale(1); }
    50% { transform: scale(1.5); color: var(--dogru); }
    100% { transform: scale(1); }
}

/* Çiçek sallanma */
@keyframes sway {
    0%, 100% { transform: rotate(-3deg); }
    50% { transform: rotate(3deg); }
}

/* Gökkuşağı kenarlık (başarı) — altı kategori rengi sırayla */
@keyframes rainbowBorder {
    0% { border-color: var(--kat-yaratici); }
    16% { border-color: var(--kat-bulmaca); }
    33% { border-color: var(--kat-sayi); }
    50% { border-color: var(--kat-harf); }
    66% { border-color: var(--kat-online); }
    83% { border-color: var(--kat-strateji); }
    100% { border-color: var(--kat-yaratici); }
}

/* Eğlenceli sallanma (hover) */
@keyframes wiggleHover {
    0%, 100% { transform: rotate(0deg); }
    20% { transform: rotate(-3deg); }
    40% { transform: rotate(3deg); }
    60% { transform: rotate(-2deg); }
    80% { transform: rotate(2deg); }
}

/* Nabız halkası (CTA buton): mavi-800 halka genişleyip söner; gölge sabit kalır */
@keyframes pulseGlow {
    0%, 100% { box-shadow: 0 0 0 0 var(--odak-isik), var(--golge-2); }
    50% { box-shadow: 0 0 0 14px transparent, var(--golge-2); }
}

/* Zıp basma (buton active) */
@keyframes bouncePress {
    0% { transform: scale(1); }
    30% { transform: scale(0.88); }
    60% { transform: scale(1.04); }
    100% { transform: scale(1); }
}

/* Jöle titreme (kutlama) */
@keyframes jelloWobble {
    0%, 100% { transform: skewX(0deg) skewY(0deg); }
    15% { transform: skewX(-5deg) skewY(-5deg); }
    30% { transform: skewX(4deg) skewY(4deg); }
    45% { transform: skewX(-3deg) skewY(-3deg); }
    60% { transform: skewX(2deg) skewY(2deg); }
    75% { transform: skewX(-1deg) skewY(-1deg); }
}

/* Gökkuşağı parıltı */
@keyframes rainbowShimmer {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

/* Reduced motion — hedefli: dekoratif hareket gider, anlamlı geri bildirim kalır.
   (Eski global 0.01ms öldürme yıldız/ilerleme geri bildirimini de siliyordu.) */
@media (prefers-reduced-motion: reduce) {
    /* 1) Dekoratif sonsuz döngüler durur: bulut, güneş nabzı, CTA parıltısı, ok süzülmesi,
          kelebek, lobi ikonu, sıra rozeti nabzı, çip sallanması */
    .cloud, .sun, .splash-sun, .login-sun, .splash-btn, .splash-btn::after,
    .hub .butterfly, .lobby-icon, .mp-turn-badge, .hub-nav-chip:hover {
        animation: none !important;
    }
    /* 2) Giriş koreografisi atlanır: içerik anında yerinde (kayma/ölçek/kademe yok) */
    .game-card, .splash-content, .login-card, .user-menu,
    .dialog, .dialog > *,   /* kilit penceresi, meta panel, seviye tamamlama kartı (css/hub.css .dialog ayrıca animation:none der) */
    .lobby-main, .lobby-create, .lobby-waiting, .lobby-list-screen, .word-setup, .lobby-loading-screen {
        animation-duration: 0.01ms !important;
        animation-delay: 0s !important;
    }
    /* 3) Durum geçişleri kısa ve düz (150 ms): hover/basma/odak geri bildirimi korunur */
    .game-card, .hub-nav-chip, .top-switch, .top-btn, .coin-counter, .user-toggle,
    .splash-btn, .login-btn, .complete-btn, .lm-btn, .imza,
    .pill, .kb-key, .word-box, .guess-cell, .harf-cell, .mp-turn-badge, .lobby-refresh-btn {
        transition-duration: 150ms !important;
        transition-timing-function: ease-out !important;
    }
    /* Hover'da uzaysal kaldırma yok; gölge/kenarlık ve basma ölçeği (%3) yeter */
    .game-card:hover, .game-card:focus-visible { transform: none !important; }
    .game-card:active { transform: scale(0.97) !important; }
    /* KASTEN korunur: starEarned, successPulse, numberPop, wiggle (hata), lm-bar-fill (ilerleme
       çubuğu), oyun içi hücre açılışları. (Kilitli karta dokunma zıplaması da 2. kuralla sönümlenir;
       geri bildirimi zaten açılan kilit penceresi verir.) */
}
