/* ═══════════════════════════════════════════════════════════════
   base.css - her sayfada ortak temel davranışlar
   Görünümü değiştirmez; erişilebilirlik ve giriş yöntemleri içindir.
   ═══════════════════════════════════════════════════════════════ */

/* Klavyeyle gezenler için görünür odak halkası.
   :focus-visible kullanıldığı için fareyle tıklamada çıkmaz -
   yani mevcut tasarımda hiçbir şey değişmez, sadece Tab ile
   gezen kullanıcı nerede olduğunu görür. */
:focus-visible {
  outline: 3px solid #7AAACE;
  outline-offset: 2px;
}

/* İşletim sisteminde "hareketi azalt" açık olanlarda animasyonları kıs.
   Oyun animasyon ağırlıklı (kart uçuşu, alev efektleri, titreşimler);
   bu tercih baş dönmesi/migren yaşayanlar için var, göz ardı edilmemeli. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   Hareket katmani
   Kural: yalnizca transform ve opacity animasyonlanir. Bu ikisi
   derleyici katmaninda calisir, layout ve paint tetiklemez, yani
   dusuk guclu telefonlarda bile kasma yapmaz. width/height/top/left
   gibi ozellikleri ASLA animasyonlama, kare dusurur.
   Hareketi azalt tercihi acik olanlarda hepsi yukarida kapaniyor.
   ═══════════════════════════════════════════════════════════════ */

/* Butonlara basinca geri bildirim. Dokunmatikte "bastim mi" belirsizligini
   giderir, en cok hissedilen iyilestirme budur. */
button, .lobby-btn, .hbadge, .lobby-auth-btn, .privacy-btn, .room-join-btn,
.spa-coins-pkg-btn, .shop-pkg, .prompt-btn, .vbtn {
  transition: transform .12s cubic-bezier(.2,.8,.3,1), filter .12s ease;
}
button:active, .lobby-btn:active, .hbadge:active, .lobby-auth-btn:active,
.privacy-btn:active, .room-join-btn:active, .spa-coins-pkg-btn:active,
.shop-pkg:active, .prompt-btn:active, .vbtn:active {
  transform: scale(.95);
}

/* Ekrana giren ogeler yukaridan yumusakca belirsin. */
@keyframes mimRise {
  from { opacity: 0; transform: translate3d(0, 12px, 0); }
  to   { opacity: 1; transform: none; }
}
.room-item, .lb-entry, .shop-pkg, .spa-coins-pkg, .prompt-item {
  animation: mimRise .28s cubic-bezier(.2,.8,.3,1) both;
}
/* Liste ogeleri sirayla gelsin, hepsi ayni anda zipllamasin. */
.room-item:nth-child(2), .lb-entry:nth-child(2) { animation-delay: .04s; }
.room-item:nth-child(3), .lb-entry:nth-child(3) { animation-delay: .08s; }
.room-item:nth-child(4), .lb-entry:nth-child(4) { animation-delay: .12s; }
.room-item:nth-child(5), .lb-entry:nth-child(5) { animation-delay: .16s; }
.room-item:nth-child(n+6), .lb-entry:nth-child(n+6) { animation-delay: .2s; }

/* Logo cok hafif nefes alsin. 6 saniyelik dongu, dikkat dagitmaz. */
@keyframes mimFloat {
  0%, 100% { transform: translate3d(0, 0, 0); }
  50%      { transform: translate3d(0, -5px, 0); }
}
.lobby-logo img, .lobby-logo-img { animation: mimFloat 6s ease-in-out infinite; }

/* Toast animasyonu BILEREK burada degil.
   Eskiden burada 'animation: mimToast ... both' vardi. Dolgu 'both' oldugu icin
   animasyon bitis karesi (transform:none) kalici uygulaniyordu ve her sayfanin
   kendi .toast kuralindaki 'translateX(-50%) translateY(80px)' iptal oluyordu:
   bos toast ekranin altinda, ortadan saga kaymis beyaz bir kutu olarak sureki
   goruntuleniyordu. Kayma animasyonunu zaten her sayfanin kendi CSS'i
   transition ile yapiyor; buraya tekrar ekleme. */

/* Apple ile giris gecici olarak gizli.
   Sebep: Apple Developer hesabi kapali, ayrica authDomain artik
   auth.mimlendin.com. Apple tarafindaki Return URL eski adrese kayitli ve
   hesap kapaliyken degistirilemiyor, yani buton kesin hata verir.
   GERI ACMAK ICIN: bu blogu sil. Once Apple Developer > Identifiers >
   Services ID > Configure > Return URLs'e sunu ekle:
   https://auth.mimlendin.com/__/auth/handler */
.lobby-auth-apple,
.spa-account-btn-apple { display: none !important; }
