/* ════ Mühür Dünyası v1.2.4 — "dramatik" görsel paket ════
   Raster mücevher-mühür taşları, oymalı ceviz + pirinç çerçeve, eğimli dama hücreler, vinyet, tam ekran vadi,
   canlı özel taşlar, tuval patlamaları, madalyonlu üst çubuk, çerçeveli hedefler, 3B güçlendirici rozetleri.
   Hareket azaltma tercihinde efektler kapanmaz, yalnızca yavaşlar/yumuşar. */

/* ── Tam ekran vadi arka planı ── */
.m3l::before { opacity: 1; filter: saturate(1.15) brightness(.9); transform: scale(1.02); animation: m3bgdrift 30s ease-in-out infinite alternate; }
@keyframes m3bgdrift { to { transform: scale(1.08) translate(-1.5%, -1%); } }
.m3l::after { background: radial-gradient(90% 55% at 50% 52%, rgba(6,8,11,.05), rgba(6,8,11,.62) 80%), linear-gradient(180deg, rgba(6,8,11,.55), transparent 22%, transparent 74%, rgba(6,8,11,.85)); }

/* ── Üst çubuk: tıknaz ahşap levha + pirinç alt kenar ── */
.m3l__top { margin: calc(-8px - var(--safe-t)) -8px 4px; padding: calc(16px + var(--safe-t)) 10px 10px; min-height: 92px; gap: 10px;
  background: linear-gradient(180deg, rgba(255,230,170,.10), transparent 30%), repeating-linear-gradient(92deg, rgba(0,0,0,.08) 0 3px, transparent 3px 11px), linear-gradient(180deg, #4a3119, #2a1a0c 60%, #1a1007);
  border-radius: 0 0 26px 26px; box-shadow: inset 0 -3px 0 #8c6a2f, inset 0 -5px 0 #2a1d0b, 0 4px 0 #d6b26a, 0 6px 0 #5a4016, 0 12px 22px rgba(0,0,0,.65); }
.m3l__lv { top: calc(3px + var(--safe-t)); color: #ffe7b0; font-weight: 800; text-shadow: 0 1px 2px #000; }
/* Hamle madalyonu */
.m3l__moves { position: relative; width: 86px; height: 86px; margin: -8px 0 -6px; display: block; background: none; border: 0; border-radius: 0; box-shadow: none; flex: none; }
.m3l__medal { position: absolute; inset: -2px; background: url("../assets/img/m3/medal.webp") center / contain no-repeat; filter: drop-shadow(0 5px 6px rgba(0,0,0,.65)); }
.m3l__moves b { position: absolute; left: 50%; top: 44%; transform: translate(-50%, -50%); font: 900 31px/1 var(--f-ui); color: #fff7d6; text-shadow: 0 2px 0 #0a2630, 0 0 10px rgba(140,220,255,.55); -webkit-text-stroke: 1px rgba(10,38,48,.6); }
.m3l__moves small { position: absolute; left: 50%; bottom: 3px; transform: translateX(-50%); font: 900 9px var(--f-ui); color: #fff1df; letter-spacing: .1em; text-shadow: 0 1px 1px #4a0a0a; }
.m3l__moves.is-low { animation: m3lowp .9s ease-in-out infinite; } .m3l__moves.is-low b { color: #ffb0a0; text-shadow: 0 2px 0 #4a0a0a, 0 0 14px #ff5a4a; }
@keyframes m3lowp { 50% { transform: scale(1.08); filter: drop-shadow(0 0 10px rgba(255,90,74,.85)); } }
/* Çerçeveli hedef yuvaları + ilerleme */
.m3l__goals { background: none; box-shadow: none; border: 0; padding: 0; gap: 8px; align-items: center; }
.m3l__goals li { width: 60px; padding: 6px 3px 11px; border-radius: 14px; background: radial-gradient(120% 90% at 50% 0%, #2e4350, #0e151b 72%);
  box-shadow: 0 0 0 2px #2a1d0b, 0 0 0 4px #d6b26a, 0 0 0 5.5px #5a4016, 0 6px 10px rgba(0,0,0,.6), inset 0 2px 0 rgba(255,255,255,.18), inset 0 -8px 12px rgba(0,0,0,.45); }
.m3l__goals li b { font: 900 16px var(--f-ui); color: #fff; text-shadow: 0 2px 0 #000; margin-top: -2px; }
.m3l__goals li .m3-gi { width: 40px; height: 40px; }
.m3l__gp { position: absolute; left: 7px; right: 7px; bottom: 4px; height: 6px; border-radius: 99px; background: #05080a; box-shadow: inset 0 1px 2px #000, 0 0 0 1px rgba(214,178,106,.45); overflow: hidden; }
.m3l__gp::before { content: ''; position: absolute; inset: 0; transform-origin: left; transform: scaleX(var(--gp, 0)); background: linear-gradient(180deg, #b6ffb0, #3fc860 55%, #1d7a35); transition: transform .45s cubic-bezier(.3, 1.3, .5, 1); }
.m3l__goals li.is-done { box-shadow: 0 0 0 2px #10261a, 0 0 0 4px #7ee08a, 0 0 0 5.5px #1d5a37, 0 0 16px rgba(126,224,138,.55), inset 0 2px 0 rgba(255,255,255,.18); }
.m3l__goals li.is-done::after { right: -6px; top: -6px; width: 20px; height: 20px; font-size: 13px; line-height: 20px; box-shadow: 0 2px 4px rgba(0,0,0,.5); }

/* ── Tahta: oymalı ceviz + pirinç çerçeve (özgün görsel), eğimli dama hücreler, vinyet ── */
.m3l__boardwrap { padding: 18px 6px; }
.m3l__board { width: min(100% - 8px, calc((100dvh - 268px) * 8 / 9), 460px); }
.m3l__board::before { inset: -19px; border-radius: 0; background: none; border: 40px solid transparent; border-image: url("../assets/img/m3/frame.webp") 100 / 40px stretch; box-shadow: none; filter: drop-shadow(0 16px 22px rgba(0,0,0,.75)); z-index: 2; }
.m3l__board::after { display: none; }
.m3l[data-skin]:not([data-skin="gece"]) .m3l__board::before { background: none; }
.m3l[data-skin]:not([data-skin="gece"]) .m3b__cells { box-shadow: 0 0 0 3px var(--sk1), inset 0 0 36px 10px rgba(0,0,0,.7); }
.m3b { z-index: 3; }
.m3b__cells { border-radius: 4px; background: radial-gradient(120% 100% at 50% 40%, #0f2329, #060c0f); box-shadow: inset 0 0 36px 10px rgba(0,0,0,.7); }
.m3b__cells::after { content: ''; position: absolute; inset: 0; pointer-events: none; z-index: 3; border-radius: 4px; box-shadow: inset 0 0 26px 6px rgba(0,0,0,.55), inset 0 0 0 2px rgba(0,0,0,.6); background: radial-gradient(110% 90% at 50% 45%, transparent 55%, rgba(0,0,0,.35)); }
.m3c { box-sizing: border-box; border: 1.5px solid transparent; background-clip: padding-box; border-radius: 7px;
  background-image: linear-gradient(160deg, rgba(255,255,255,.10), rgba(255,255,255,0) 45%, rgba(0,0,0,.18)), linear-gradient(180deg, rgba(var(--cell, 38,78,88), .96), rgba(var(--cell, 38,78,88), .78));
  box-shadow: inset 0 2px 0 rgba(255,255,255,.16), inset 0 -3px 0 rgba(0,0,0,.38), inset 2px 0 0 rgba(255,255,255,.05), inset -2px 0 0 rgba(0,0,0,.2); }
.m3c.is-alt { background-image: linear-gradient(160deg, rgba(255,255,255,.07), rgba(255,255,255,0) 45%, rgba(0,0,0,.22)), linear-gradient(180deg, rgba(var(--cell2, 22,48,56), .96), rgba(var(--cell2, 22,48,56), .8)); }
.m3c.is-hole { background: transparent; box-shadow: none; border: 0; }

/* ── Raster taşlar ── */
img.gem { display: block; width: 100%; height: auto; pointer-events: none; -webkit-user-drag: none; user-select: none; }
.m3t__in > img.gem, .m3-gi > img.gem { position: absolute; left: 3%; top: 3%; width: 94%; height: 94%; object-fit: contain; }
.m3t__in > img.gem { filter: drop-shadow(0 3px 2px rgba(0,0,0,.55)); }
img.gem ~ svg.tile, img.gem--sp ~ svg.sp--b, img.gem--sp ~ svg.sp--x { display: none; }
html.no-gem img.gem { display: none !important; } html.no-gem img.gem ~ svg.tile, html.no-gem img.gem--sp ~ svg.sp { display: block; }
.m3t { padding: 1px; }
.m3t.is-sel .m3t__in { transform: scale(1.16); filter: brightness(1.2) drop-shadow(0 0 10px #fff3cf); }
.m3t.is-land .m3t__in { animation: m3land .38s cubic-bezier(.3, 1.6, .5, 1); transform-origin: 50% 92%; }
@keyframes m3land { 0% { transform: scale(1.14, .78); } 45% { transform: scale(.93, 1.09); } 75% { transform: scale(1.03, .97); } 100% { transform: scale(1); } }
.m3t.is-born .m3t__in { animation: m3drop2 .45s cubic-bezier(.3, 1.6, .5, 1); }
@keyframes m3drop2 { 0% { transform: scale(.2); opacity: 0; } 60% { transform: scale(1.12); opacity: 1; } 100% { transform: scale(1); } }
.m3t.is-pop .m3t__in { transform: scale(1.5); opacity: 0; filter: brightness(2.4) saturate(.5); }

/* ── Canlı özel taşlar ── */
.m3t__aura { inset: -22%; background: radial-gradient(circle, var(--tg, #fff6d8) 0%, rgba(255,214,120,.35) 38%, transparent 66%); animation: m3aura2 1.15s ease-in-out infinite; mix-blend-mode: screen; }
@keyframes m3aura2 { 50% { transform: scale(1.18); opacity: .55; } }
.m3t[data-s] .m3t__in > img.gem { animation: m3sppulse 1.15s ease-in-out infinite; }
.m3t[data-s=""] .m3t__in > img.gem { animation: none; }
@keyframes m3sppulse { 50% { transform: scale(1.06); filter: brightness(1.25) drop-shadow(0 0 6px var(--tg, #fff)); } }
.sp-twinkle { position: absolute; right: -10%; top: -10%; width: 46%; height: 46%; pointer-events: none; z-index: 3;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cdefs%3E%3CradialGradient id='a'%3E%3Cstop offset='0' stop-color='%23fff'/%3E%3Cstop offset='1' stop-color='%23ffe7a8' stop-opacity='0'/%3E%3C/radialGradient%3E%3C/defs%3E%3Ccircle cx='20' cy='20' r='9' fill='url(%23a)'/%3E%3Cpath d='M20 0q2 18 20 20q-18 2-20 20q-2-18-20-20q18-2 20-20z' fill='%23fffbe8'/%3E%3C/svg%3E") center / contain no-repeat;
  animation: m3twk 1.6s linear infinite; filter: drop-shadow(0 0 4px #fff3c4); }
@keyframes m3twk { 0% { transform: rotate(0) scale(.5); opacity: .4; } 25% { transform: rotate(90deg) scale(1.1); opacity: 1; } 50% { transform: rotate(180deg) scale(.6); opacity: .6; } 75% { transform: rotate(270deg) scale(1); opacity: 1; } 100% { transform: rotate(360deg) scale(.5); opacity: .4; } }
/* Şerit: akan çizgili enerji bandı */
.sp-energy { position: absolute; z-index: 2; pointer-events: none; border-radius: 99px; mix-blend-mode: screen;
  background: repeating-linear-gradient(90deg, rgba(255,255,255,.95) 0 5px, rgba(255,226,140,.15) 5px 12px); background-size: 24px 100%;
  box-shadow: 0 0 10px 3px var(--tg, #fff3c4), 0 0 3px 1px #fff; animation: m3flow .45s linear infinite, m3ebreathe 1.1s ease-in-out infinite; }
.sp-energy--h { left: -8%; right: -8%; top: 39%; height: 22%; }
.sp-energy--v { top: -8%; bottom: -8%; left: 39%; width: 22%; background-image: repeating-linear-gradient(180deg, rgba(255,255,255,.95) 0 5px, rgba(255,226,140,.15) 5px 12px); background-size: 100% 24px; animation-name: m3flowv, m3ebreathe; }
@keyframes m3flow { to { background-position: 24px 0; } }
@keyframes m3flowv { to { background-position: 0 24px; } }
@keyframes m3ebreathe { 50% { opacity: .65; } }
.m3t[data-s="h"] svg.sp, .m3t[data-s="v"] svg.sp { z-index: 2; opacity: .9; }
/* Barut: yanan fitil + kıvılcımlar */
.sp-fuse { position: absolute; left: 81%; top: 19%; width: 0; height: 0; z-index: 3; pointer-events: none; }
.sp-fuse::before { content: ''; position: absolute; left: -9px; top: -9px; width: 18px; height: 18px; border-radius: 50%; background: radial-gradient(circle, #fff 0 20%, #ffd24a 40%, rgba(255,120,30,0) 70%); animation: m3fuse .18s steps(2) infinite; }
.sp-fuse b { position: absolute; left: -1.5px; top: -1.5px; width: 3px; height: 3px; border-radius: 50%; background: #fff3c4; box-shadow: 0 0 4px 2px #ffae3a; animation: m3fspark .5s linear infinite; }
.sp-fuse b:nth-child(2) { --a: 120deg; animation-delay: -.17s; } .sp-fuse b:nth-child(3) { --a: 240deg; animation-delay: -.33s; }
@keyframes m3fuse { 50% { transform: scale(.7); opacity: .8; } }
@keyframes m3fspark { 0% { transform: rotate(var(--a, 0deg)) translateX(0); opacity: 1; } 100% { transform: rotate(calc(var(--a, 0deg) + 50deg)) translateX(13px); opacity: 0; } }
.m3t[data-s="b"] .m3t__in > img.gem--sp { animation: m3tick2 1s ease-in-out infinite; }
@keyframes m3tick2 { 50% { transform: scale(1.07) rotate(-4deg); filter: brightness(1.15) drop-shadow(0 0 8px #ffb347); } }
/* Yıldız: gökkuşağı girdabı */
.sp-swirl { position: absolute; inset: -20%; border-radius: 50%; pointer-events: none; z-index: 0; filter: blur(3px);
  background: conic-gradient(#ff5a4a, #ffc94a, #3fd17a, #2fd6e3, #4f8dff, #b06bff, #ff5a4a);
  -webkit-mask: radial-gradient(circle, transparent 28%, #000 42%, #000 52%, transparent 70%); mask: radial-gradient(circle, transparent 28%, #000 42%, #000 52%, transparent 70%);
  animation: m3spin 1.6s linear infinite; }
.m3t[data-s="x"] .m3t__in > img.gem--sp { animation: m3starp 2.4s ease-in-out infinite; }
@keyframes m3starp { 0%, 100% { transform: rotate(-6deg) scale(1); } 50% { transform: rotate(6deg) scale(1.08); filter: brightness(1.3) drop-shadow(0 0 10px #fff); } }

/* ── Tuval efekt katmanı ── */
.m3fx-cv { position: absolute; pointer-events: none; z-index: 2; }
.m3b__fx { z-index: 4; }
.m3screenflash.is-soft { animation-name: m3sflashsoft; }
@keyframes m3sflashsoft { 20% { opacity: .22; } }

/* ── Büyük, zıplayan kombo yazıları + skor ── */
.m3float.is-praise, .m3float.is-win { top: 34%; font: 900 50px/1.1 var(--f-ui); letter-spacing: -.01em; -webkit-text-stroke: 0; text-shadow: none; padding: 0 6px; filter: drop-shadow(0 0 1px #3a2006) drop-shadow(0 0 1px #3a2006) drop-shadow(0 4px 0 #3a2006) drop-shadow(0 0 16px rgba(255,200,90,.85)); animation: m3praise2 1.35s cubic-bezier(.2, 1.4, .4, 1) forwards; z-index: 8; }
.m3float.is-praise--3 { font-size: 54px; }
.m3float.is-praise--4 { font-size: 58px; background-image: linear-gradient(180deg, #fff 5%, #ffe17a 35%, #ff9d3c 70%, #b3262a 95%); }
.m3float.is-praise--5, .m3float.is-praise--6 { font-size: 62px; background-image: linear-gradient(180deg, #fff 0%, #ffd1ff 25%, #b98cff 50%, #5aa8ff 75%, #2fd6e3 100%); filter: drop-shadow(0 0 1px #2a0a4a) drop-shadow(0 0 1px #2a0a4a) drop-shadow(0 4px 0 #2a0a4a) drop-shadow(0 0 20px rgba(185,140,255,.9)); }
@keyframes m3praise2 { 0% { opacity: 0; transform: translate(-50%, 20px) scale(.2) rotate(-10deg); } 18% { opacity: 1; transform: translate(-50%, 0) scale(1.35) rotate(3deg); } 30% { transform: translate(-50%, 0) scale(.88) rotate(-2deg); } 42% { transform: translate(-50%, 0) scale(1.08); } 54% { transform: translate(-50%, 0) scale(1); } 82% { opacity: 1; } 100% { opacity: 0; transform: translate(-50%, -40px) scale(1.04); } }
.m3float.is-combo { font: 900 30px var(--f-ui); }
.m3score { font: 900 24px var(--f-ui); color: #fff; -webkit-text-stroke: 0; text-shadow: 0 0 2px #6b3a06, 0 2px 0 #6b3a06, 0 3px 0 #3a2006, 0 0 12px rgba(255,190,80,.95); }
.m3b__tiles { clip-path: inset(-3px -10px -10px -10px); }

/* ── 3B güçlendirici rozetleri ── */
.m3l__boosters { gap: 16px; padding-bottom: 18px; }
.m3-bb { width: 70px; height: 70px; padding: 0; border-radius: 50%; display: grid; place-items: center; border: 0;
  background: radial-gradient(circle at 50% 30%, #4a6a7c, #1a2a34 58%, #0b1217);
  box-shadow: 0 0 0 3px #2a1d0b, 0 0 0 6px #d6b26a, 0 0 0 7.5px #5a4016, 0 6px 0 5px #2a1d0b, 0 12px 18px rgba(0,0,0,.6), inset 0 4px 0 rgba(255,255,255,.22), inset 0 -8px 12px rgba(0,0,0,.55);
  transition: transform .12s; }
.m3-bb:active { transform: translateY(3px) scale(.96); }
.m3-bb svg { width: 44px; height: 44px; filter: drop-shadow(0 3px 2px rgba(0,0,0,.65)); }
.m3-bb small { position: absolute; left: 50%; bottom: -21px; transform: translateX(-50%); white-space: nowrap; font: 800 11px var(--f-ui); color: #ffe7b0; text-shadow: 0 1px 2px #000; }
.m3-bb b { top: -4px; right: -6px; min-width: 24px; height: 24px; font: 900 13px/20px var(--f-ui); border: 2px solid #fff1c4; box-shadow: 0 2px 4px rgba(0,0,0,.6); }
.m3-bb.is-on { box-shadow: 0 0 0 3px #2a1d0b, 0 0 0 6px #fff1c4, 0 0 22px 8px rgba(255,214,120,.75), 0 6px 0 5px #2a1d0b, inset 0 4px 0 rgba(255,255,255,.3); }

@media (max-height: 700px) {
  .m3l__top { min-height: 76px; padding-bottom: 6px; } .m3l__moves { width: 70px; height: 70px; } .m3l__moves b { font-size: 25px; }
  .m3l__goals li { width: 52px; } .m3l__goals li .m3-gi { width: 32px; height: 32px; }
  .m3-bb { width: 56px; height: 56px; } .m3-bb svg { width: 34px; height: 34px; } .m3l__boosters { padding-bottom: 16px; }
  .m3l__board { width: min(100% - 8px, calc((100dvh - 236px) * 8 / 9), 460px); }
}
/* Hareket azaltma: kapatma yok, yalnızca yavaşlat/yumuşat */
@media (prefers-reduced-motion: reduce) {
  .m3t__aura, .sp-energy, .sp-swirl, .sp-twinkle, .m3t[data-s] .m3t__in > img.gem, .m3t[data-s="b"] .m3t__in > img.gem--sp { animation-duration: 2.6s !important; }
  .m3l::before { animation: none; }
}
html.reduce-motion .m3t__aura, html.reduce-motion .sp-energy, html.reduce-motion .sp-swirl, html.reduce-motion .sp-twinkle { animation-duration: 2.6s !important; }

/* 1.2.5: sis/zincir raster taşlarda net görünsün */
.m3t[data-lock="sis"] img.gem { filter: blur(1.4px) saturate(.45) brightness(.72); }
.m3t[data-lock="sis"] .m3t__in::after { content: ''; position: absolute; inset: 2%; border-radius: 22%; z-index: 2; pointer-events: none; background: radial-gradient(circle at 50% 55%, rgba(225,232,240,.78) 0%, rgba(200,210,222,.55) 45%, rgba(170,182,198,.22) 75%, transparent 100%); animation: m3fog 3.2s ease-in-out infinite alternate; }
.m3t[data-lock="sis"] .lk { z-index: 3; transform: scale(1.25); filter: drop-shadow(0 2px 3px rgba(0,0,0,.45)); }
.m3t[data-lock="zincir"] .lk { z-index: 3; filter: drop-shadow(0 2px 2px rgba(0,0,0,.55)); }
@keyframes m3fog { from { opacity: .85; transform: translateX(-3%) scale(1); } to { opacity: 1; transform: translateX(3%) scale(1.04); } }
