/* =====================================================================
   SİNEKDUR — assets/css/animations.css
   Sinek animasyonu, sayfa açılış sekansı ve mikro-etkileşimler.
   ===================================================================== */

/* Kanat çırpma: sürekli, sinek konarken de gövdesi hafif titrer */
@keyframes wingFlap{
  0%, 100%{ transform:scaleY(1) rotate(0deg); }
  50%{ transform:scaleY(.35) rotate(4deg); }
}
@keyframes wingFlapLeft{
  0%, 100%{ transform:scaleY(1) rotate(0deg); }
  50%{ transform:scaleY(.35) rotate(-4deg); }
}
.fly-wing-r{ transform-origin: 2px 6px; animation: wingFlap .09s linear infinite; }
.fly-wing-l{ transform-origin: -2px 6px; animation: wingFlapLeft .09s linear infinite; }

.sinekdur-bug.is-landed .fly-wing-r,
.sinekdur-bug.is-landed .fly-wing-l{ animation-duration:.4s; opacity:.5; }

.sinekdur-bug.is-idle .fly-wing-r,
.sinekdur-bug.is-idle .fly-wing-l{ animation:none; opacity:0; }

/* Konma titremesi */
@keyframes settleJitter{
  0%{ transform: translate(0,0) rotate(0deg); }
  25%{ transform: translate(.6px,-.4px) rotate(-1deg); }
  50%{ transform: translate(-.5px,.5px) rotate(1deg); }
  75%{ transform: translate(.4px,.3px) rotate(-.6deg); }
  100%{ transform: translate(0,0) rotate(0deg); }
}
.sinekdur-bug.is-landed .fly-body{ animation: settleJitter 2.6s ease-in-out infinite; }

/* Sinek yakalandığında patlayan "+1" puanı */
@keyframes popScore{
  0%{ transform: translateY(0) scale(.6); opacity:0; }
  15%{ transform: translateY(-6px) scale(1.15); opacity:1; }
  100%{ transform: translateY(-46px) scale(1); opacity:0; }
}
.fly-caught{ animation: popScore .9s var(--ease-out) forwards; }

/* Yakalama ağı efekti (tıklanan noktada) */
@keyframes netPulse{
  0%{ transform:scale(.2); opacity:.9; }
  100%{ transform:scale(2.4); opacity:0; }
}
.net-pulse{
  position:absolute; width:46px; height:46px; margin:-23px 0 0 -23px;
  border:2px solid var(--brass); border-radius:50%;
  animation:netPulse .5s var(--ease-out) forwards;
  pointer-events:none; z-index:6;
}

/* Hero giriş sekansı: tek, koreografik bir açılış (skill: tek orkestre edilmiş an) */
@keyframes heroRise{
  from{ opacity:0; transform:translateY(26px); }
  to{ opacity:1; transform:translateY(0); }
}
.hero-eyebrow-row{ animation: heroRise .8s var(--ease-out) .1s both; }
.hero h1{ animation: heroRise .9s var(--ease-out) .22s both; }
.hero-sub{ animation: heroRise .9s var(--ease-out) .36s both; }
.hero-cta{ animation: heroRise .9s var(--ease-out) .48s both; }
.hero-stats{ animation: heroRise .9s var(--ease-out) .6s both; }
.hero-visual{ animation: heroFrameIn 1.1s var(--ease-out) .3s both; }

@keyframes heroFrameIn{
  from{ opacity:0; transform:translateX(26px) scale(.97); }
  to{ opacity:1; transform:translateX(0) scale(1); }
}

/* Marka logosu hafif nefes alma */
@keyframes brandGlow{
  0%,100%{ text-shadow:0 0 0 rgba(201,162,75,0); }
  50%{ text-shadow:0 0 18px rgba(201,162,75,.35); }
}
.brand span{ animation:brandGlow 5s ease-in-out infinite; }

/* Mesh arkaplanın çok yavaş kayması — canlılık hissi */
@keyframes meshDrift{
  from{ background-position: 0 0, 0 0; }
  to{ background-position: 26px 26px, -26px 26px; }
}
.mesh-bg{ animation: meshDrift 40s linear infinite; }

/* Sayaç (istatistik) sayılarının hafif belirmesi zaten .reveal ile sağlanıyor */

/* Oyun sahnesinde ekran ışığı taraması (dikkat çekme, deliberate/tek yerde) */
@keyframes stageSheen{
  0%{ transform:translateX(-120%); }
  100%{ transform:translateX(220%); }
}
.game-stage .sheen{
  position:absolute; top:0; bottom:0; width:30%; z-index:3; pointer-events:none;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.06), transparent);
  animation: stageSheen 6s ease-in-out infinite;
}

/* Yakalama: küçülerek kaybolma + duman efekti */
@keyframes squashOut{
  0%{ transform: scale(1) rotate(0deg); opacity:1; }
  55%{ transform: scale(1.2,.55) rotate(10deg); opacity:1; }
  100%{ transform: scale(0) rotate(24deg); opacity:0; }
}
.sinekdur-bug.is-caught{ animation: squashOut .42s var(--ease-out) forwards; pointer-events:none; }

@keyframes puffRise{
  0%{ transform:translate(-50%,-50%) scale(.6); opacity:.9; }
  100%{ transform:translate(-50%,-160%) scale(1.7); opacity:0; }
}

/* Buton dalgalanma (tıklama geri bildirimi) prefer-reduced-motion tarafından zaten kapatılıyor */
