/* Gece Mührü v1.2.8 — patlama performansı (Mühür Dünyası seviye ekranı).
   Kök neden: tam ekran, sürekli animasyonlu film greni (body::before, mix-blend-mode: overlay) ve "screen" karışımlı
   aura/ışın/flaş katmanları her karede tüm ekranın yeniden karıştırılmasını zorluyordu; patlamada >50 ms kareler.
   Çözüm: seviye ekranında gren kapalı, karışım modları "normal" (ışıklı görünüm ton/opaklık ile korunur),
   patlama süresince süs animasyonları ve ortam katmanı duraklar, hareketli öğelerde bulanıklık yok. */
body:has(.m3l)::before { display: none; }
.m3t__aura, .sp-energy, .m3beam, .m3screenflash, .m3bolts, .m3flash, .m3fire, .m3burst { mix-blend-mode: normal !important; } /* aura, enerji, ışın, flaş, ateş, patlama, yıldırım */
.m3l .m3screenflash { opacity: .55; }
/* Yıldız aurası: dönen konik gradyanda blur yerine yumuşak radyal maske (blur her karede yeniden hesaplanıyordu) */
.m3t[data-s="x"] .m3t__aura { filter: none; inset: -6%; opacity: .7; }
/* Patlama/kaskad sürerken: süs döngüleri ve ortam parçacıkları duraklar (görünür kalır), arka plan kayması durur */
.m3b.is-busy .m3t__aura, .m3b.is-busy .sp-energy, .m3b.is-busy .sp-twinkle, .m3b.is-busy .sp-streak, .m3b.is-busy .sp-spark, .m3b.is-busy .sp-rays,
.m3b.is-busy .m3t[data-s] .m3t__in > img.gem, .m3b.is-busy .m3t__in > img.gem--sp, .m3b.is-busy .m3t__in > svg { animation-play-state: paused; }
.m3l.is-fxbusy::before, .m3l.is-fxbusy > .m3l__amb > i, .m3l.is-fxbusy > .m3l__amb > b, .m3l.is-fxbusy > .m3l__amb * { animation-play-state: paused; }
/* Yalnızca hareket eden taşlar bileşikleştirici katmanı alır (72 kalıcı katman yerine) */
.m3l .m3t { will-change: auto; }
.m3l .m3t.is-pop, .m3l .m3t.is-sel { will-change: transform; }
/* Kombo/övgü yazısı: 4 katlı gölge yerine tek gölge (büyük yazı her karede ölçekleniyor) */
.m3l .m3float.is-praise, .m3l .m3float.is-win { filter: drop-shadow(0 4px 0 #3a2006) drop-shadow(0 0 12px rgba(255,200,90,.75)); }
.m3l .m3float.is-praise--5, .m3l .m3float.is-praise--6 { filter: drop-shadow(0 4px 0 #2a0a4a) drop-shadow(0 0 14px rgba(185,140,255,.85)); }
.m3l .m3bolts line { filter: none; }

/* ───────── v1.2.8 Fırtına / hava efektleri (js/weather.js) ─────────
   Tümü pointer-events:none; karışım modu ve blur YOK; animasyonlar yalnızca transform/opacity. */
.wx { position: fixed; inset: 0; z-index: 96; pointer-events: none; opacity: 0; transition: opacity .6s ease; contain: strict; }
.wx.is-on { opacity: 1; }
.wx[data-mode="lose"] { z-index: 101; } /* kayıp ekranında fırtına pencerenin üstünde de görünür */
.wx > * { position: absolute; pointer-events: none; }
.wx__rain { left: 0; top: 0; }
.wx__fog { left: -30%; right: -30%; bottom: -5%; height: 55%; opacity: .55;
  background: radial-gradient(60% 40% at 30% 85%, rgba(170,190,210,.22), transparent 70%), radial-gradient(50% 35% at 75% 90%, rgba(150,175,200,.18), transparent 72%),
    linear-gradient(0deg, rgba(120,140,165,.18), transparent 80%);
  animation: wxfog 26s ease-in-out infinite alternate; will-change: transform; }
.wx__wet { left: 0; right: 0; bottom: 0; height: 18%; overflow: hidden; opacity: .8;
  background: linear-gradient(0deg, rgba(10,18,30,.55), rgba(40,60,85,.18) 55%, transparent); }
.wx__wet::after { content: ''; position: absolute; left: -60%; width: 60%; top: 30%; height: 50%;
  background: linear-gradient(100deg, transparent, rgba(190,215,240,.16) 45%, rgba(230,240,255,.24) 50%, rgba(190,215,240,.16) 55%, transparent);
  animation: wxsheen 7s linear infinite; will-change: transform; }
.wx[data-mode="play"] .wx__fog { opacity: .3; } .wx[data-mode="play"] .wx__wet { opacity: .45; }
.wx[data-mode="lose"] .wx__fog { opacity: .75; }
.wx__flash { inset: 0; opacity: 0; background: radial-gradient(120% 70% at 50% 0%, rgba(225,235,255,.85), rgba(180,200,255,.35) 55%, rgba(160,180,240,.12)); }
.wx__flash.is-on { animation: wxflash .55s ease-out; }
.wx__flash.is-near { animation: wxflash2 .7s ease-out; }
@keyframes wxfog { from { transform: translate3d(-4%, 0, 0); } to { transform: translate3d(4%, -2%, 0); } }
@keyframes wxsheen { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(270%, 0, 0); } }
@keyframes wxflash { 0% { opacity: 0; } 8% { opacity: .55; } 18% { opacity: .1; } 28% { opacity: .4; } 100% { opacity: 0; } }
@keyframes wxflash2 { 0% { opacity: 0; } 6% { opacity: .85; } 14% { opacity: .15; } 22% { opacity: .7; } 40% { opacity: .2; } 100% { opacity: 0; } }
.m3l.is-fxbusy ~ .wx .wx__fog, .wx.is-busy .wx__fog, .wx.is-busy .wx__wet::after { animation-play-state: paused; }
html.reduce-motion .wx__fog, html.reduce-motion .wx__wet::after { animation: none; }
@media (prefers-reduced-motion: reduce) { .wx__fog, .wx__wet::after { animation: none; } }
/* v1.2.8 ödüllü can düğmesi: kalan hak alt satırda */
[data-testid="m3-lose-ad"], [data-testid="m3-refill-ad"] { flex-wrap: wrap; row-gap: 0; line-height: 1.15; }
[data-testid="m3-lose-ad"] small, [data-testid="m3-refill-ad"] small { flex-basis: 100%; font-size: 11.5px; opacity: .8; font-weight: 600; }
.btn[disabled] { opacity: .55; cursor: not-allowed; }
