* { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --gold: #e8b84a; --gold2: #f6d98a; --line: #2c3550; --line2: #3b4666; --txt: #e7e9f0; --mut: #8a93ab;
  --panel: linear-gradient(180deg, rgba(22, 28, 44, .96), rgba(11, 14, 23, .97));
}
html, body { width: 100%; height: 100%; background: #04060b; overflow: hidden; font-family: Inter, system-ui, sans-serif; color: var(--txt); user-select: none; }
#game { position: absolute; left: 50%; top: 50%; width: 1280px; height: 720px; transform-origin: center center; overflow: hidden; background: #0b0f18; box-shadow: 0 0 80px #000; }
#scene { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
#ui, #modal-root { position: absolute; inset: 0; pointer-events: none; }
#ui > *, #modal-root > * { pointer-events: auto; }
.screen { position: absolute; inset: 0; }
#ui > .screen.pass { pointer-events: none; } /* #ui > * kuralını ezmeli: tıklamalar tuvale geçsin */
.pe { pointer-events: auto; }
.muted { color: var(--mut); font-size: 13px; }
.lbl { color: var(--gold); font: 700 11px Inter; letter-spacing: 1.5px; text-transform: uppercase; margin: 10px 0 6px; }
canvas { display: block; }

/* Butonlar */
.btn { font: 700 14px Inter; color: var(--txt); background: linear-gradient(180deg, #252d42, #161c2a); border: 1px solid var(--line2); border-radius: 7px; padding: 9px 18px; cursor: pointer; transition: .15s; white-space: nowrap; }
.btn:hover:not(:disabled) { border-color: var(--gold); color: #fff; box-shadow: 0 0 14px rgba(232, 184, 74, .25); }
.btn.gold { background: linear-gradient(180deg, #e2ad48, #9b6a1d); border-color: #f6d98a; color: #1f1405; }
.btn.gold:hover:not(:disabled) { color: #000; filter: brightness(1.1); }
.btn.red { background: linear-gradient(180deg, #b3262e, #6f1218); border-color: #e05a60; }
.btn.sm { padding: 6px 12px; font-size: 12px; }
.btn.big { width: 100%; padding: 12px; font-size: 16px; margin-top: 10px; }
.btn:disabled { opacity: .45; cursor: not-allowed; }
.icon-btn { width: 40px; height: 40px; border-radius: 8px; border: 1px solid var(--line2); background: linear-gradient(180deg, #252d42cc, #12172299); color: #fff; font-size: 17px; cursor: pointer; transition: .15s; }
.icon-btn.txt { font: 800 13px Inter; }
.icon-btn:hover { border-color: var(--gold); box-shadow: 0 0 12px rgba(232, 184, 74, .35); }
.back-btn { width: 40px; height: 40px; border-radius: 8px; border: 1px solid var(--line2); background: #1a2032; color: #fff; font-size: 26px; line-height: 34px; cursor: pointer; }
.back-btn:hover { border-color: var(--gold); }

.coin { display: inline-block; width: 15px; height: 15px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #fff4b8, #e8b84a 45%, #9b6a1d); border: 1px solid #6b4a12; margin-right: 6px; vertical-align: -2px; box-shadow: 0 0 6px rgba(232, 184, 74, .5); }

/* Paneller */
.panel { background: var(--panel); border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 10px 40px rgba(0, 0, 0, .55), inset 0 1px 0 rgba(255, 255, 255, .05); }
.panel.full { position: absolute; inset: 22px; padding: 14px 20px; display: flex; flex-direction: column; animation: pop .25s ease; }
@keyframes pop { from { opacity: 0; transform: scale(.97); } to { opacity: 1; transform: none; } }
.hdr { display: flex; align-items: center; gap: 14px; padding-bottom: 12px; border-bottom: 1px solid var(--line); margin-bottom: 14px; }
.hdr-title { font: 800 24px Cinzel, serif; color: var(--gold2); letter-spacing: 2px; text-shadow: 0 0 18px rgba(232, 184, 74, .35); flex: 1; }
.hdr-extra { display: flex; align-items: center; gap: 12px; }
.sp { font-size: 14px; color: var(--mut); } .sp b { color: var(--gold2); font-size: 18px; }

/* Kasaba HUD */
.hud-tl { position: absolute; left: 16px; top: 14px; display: flex; gap: 10px; align-items: center; }
.lvl-badge { background: linear-gradient(180deg, #252d42, #12172a); border: 1px solid var(--gold); border-radius: 8px; padding: 8px 14px; font: 800 15px Inter; cursor: pointer; box-shadow: 0 0 14px rgba(232, 184, 74, .25); }
.lvl-badge span { color: var(--gold2); margin-left: 4px; }
.gold-pill { background: #0d1120cc; border: 1px solid var(--line2); border-radius: 20px; padding: 7px 14px; font: 800 15px Inter; color: var(--gold2); }
.hud-tr { position: absolute; right: 16px; top: 14px; display: flex; gap: 8px; }
.title-plate { position: absolute; left: 50%; top: 12px; transform: translateX(-50%); padding: 8px 46px; font: 800 26px Cinzel, serif; color: var(--gold2); letter-spacing: 3px;
  background: linear-gradient(180deg, #1f2538ee, #0d1120ee); border: 2px solid var(--gold); border-radius: 6px; box-shadow: 0 0 24px rgba(232, 184, 74, .3), inset 0 0 18px rgba(0, 0, 0, .6); text-shadow: 0 0 14px rgba(232, 184, 74, .5); }
.title-plate::before, .title-plate::after { content: '◆'; position: absolute; top: 50%; transform: translateY(-50%); font-size: 14px; color: var(--gold); }
.title-plate::before { left: 14px; } .title-plate::after { right: 14px; }
.side-nav { position: absolute; left: 16px; top: 74px; display: flex; flex-direction: column; gap: 8px; }
.nav-btn { width: 64px; padding: 6px 0 5px; border-radius: 10px; border: 1px solid var(--line2); background: linear-gradient(180deg, #1f2638e6, #0f1320e6); color: #fff; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 2px; transition: .15s; }
.nav-btn span { font-size: 22px; } .nav-btn small { font: 600 9.5px Inter; color: var(--mut); }
.nav-btn:hover { border-color: var(--gold); transform: translateX(3px); } .nav-btn:hover small { color: var(--gold2); }
.name-tag { position: absolute; transform: translateX(-50%); background: linear-gradient(180deg, #1c2236ee, #0c1020ee); border: 1px solid var(--line2); border-radius: 7px; padding: 5px 14px 4px; font: 700 15px Inter; text-align: center; cursor: pointer; white-space: nowrap; transition: .15s; }
.name-tag small { display: block; font: 600 10px Inter; color: var(--mut); }
.name-tag.me { border-color: var(--gold); color: var(--gold2); }
.name-tag:hover { border-color: var(--gold); transform: translateX(-50%) translateY(-3px); }
.mode-bar { position: absolute; left: 50%; bottom: 16px; transform: translateX(-50%); display: flex; gap: 8px; padding: 8px; background: #0a0d18d0; border: 1px solid var(--line); border-radius: 12px; }
.mode-btn { min-width: 108px; padding: 11px 14px; font: 800 15px Inter; color: #fff; background: linear-gradient(180deg, #252d42, #141a28); border: 1px solid var(--line2); border-radius: 8px; cursor: pointer; transition: .15s; }
.mode-btn:hover { border-color: var(--gold); color: var(--gold2); transform: translateY(-2px); box-shadow: 0 6px 18px rgba(232, 184, 74, .25); }
.mode-btn.online { background: linear-gradient(180deg, #2a6a3a, #133a1e); border-color: #4ade80; }

/* Karakter seçimi */
.cs-body { flex: 1; display: flex; gap: 18px; min-height: 0; }
.cs-grid { flex: 1; display: grid; grid-template-columns: repeat(5, 1fr); grid-auto-rows: 1fr; gap: 10px; }
.cs-card { position: relative; border: 1px solid var(--line2); border-radius: 10px; background: radial-gradient(circle at 50% 60%, color-mix(in srgb, var(--c) 22%, transparent), #0e1220 70%); display: flex; flex-direction: column; align-items: center; justify-content: center; cursor: pointer; transition: .15s; }
.cs-card:hover { border-color: var(--c); transform: translateY(-2px); }
.cs-card.sel { border: 2px solid var(--c); box-shadow: 0 0 18px color-mix(in srgb, var(--c) 60%, transparent); }
.cs-card .nm { font: 700 13px Inter; margin-top: 2px; }
.cs-card .check { position: absolute; top: 6px; right: 8px; color: #4ade80; font-weight: 800; }
.cs-side { width: 350px; background: #0c1020; border: 1px solid var(--line); border-radius: 10px; padding: 12px 16px; display: flex; flex-direction: column; overflow: hidden; }
.cs-side canvas { margin: 0 auto; }
.cs-name { font: 800 24px Cinzel, serif; text-align: center; }
.cs-desc { font-size: 12.5px; color: #b9c0d3; text-align: center; margin: 4px 0 8px; line-height: 1.4; min-height: 34px; }
.sk-row { display: flex; gap: 6px; justify-content: center; margin-bottom: 8px; }
.stat-row { display: flex; align-items: center; gap: 10px; font-size: 12.5px; margin: 3px 0; }
.stat-row span { width: 90px; color: var(--mut); }
.stat-row b { width: 46px; text-align: right; }
.sbar { flex: 1; height: 7px; background: #1d2336; border-radius: 4px; overflow: hidden; }
.sbar i { display: block; height: 100%; border-radius: 4px; }
.dt { flex: 1; text-align: right !important; } .dt.magic { color: #c084fc; } .dt.physical { color: #fbbf24; }

/* Yetenek ikonları */
.sk-ic { width: 60px; height: 60px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 30px; position: relative;
  background: radial-gradient(circle at 50% 45%, color-mix(in srgb, var(--c) 70%, #fff 0%), color-mix(in srgb, var(--c) 25%, #0a0d18) 75%);
  border: 2px solid color-mix(in srgb, var(--c) 80%, #fff); box-shadow: 0 0 14px color-mix(in srgb, var(--c) 50%, transparent), inset 0 0 12px rgba(0, 0, 0, .5); }
.sk-ic.sm { width: 46px; height: 46px; font-size: 22px; border-radius: 8px; }
.sk-ic.big { width: 92px; height: 92px; font-size: 48px; margin: 6px auto; }
.sk-ic.off { filter: grayscale(.9) brightness(.6); }
.sk-ic .lock { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(0, 0, 0, .6); border-radius: 8px; font-size: 22px; }

/* Dükkan */
.shop-body { flex: 1; display: flex; gap: 16px; min-height: 0; }
.cat-list { width: 190px; display: flex; flex-direction: column; gap: 6px; }
.cat-btn { text-align: left; padding: 11px 14px; border-radius: 8px; border: 1px solid transparent; background: #121726; color: #c6cce0; font: 600 14px Inter; cursor: pointer; display: flex; gap: 10px; align-items: center; }
.cat-btn span { width: 22px; text-align: center; }
.cat-btn:hover { border-color: var(--line2); color: #fff; }
.cat-btn.on { background: linear-gradient(90deg, #4a3a1a, #1c1a1a); border-color: var(--gold); color: var(--gold2); }
.shop-right { flex: 1; display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.item-grid { flex: 1; display: grid; grid-template-columns: repeat(5, 1fr); grid-auto-rows: 172px; gap: 12px; align-content: start; }
.item-card { position: relative; border: 1px solid var(--line2); border-radius: 10px; background: #0e1220; padding: 10px; display: flex; flex-direction: column; align-items: center; cursor: pointer; transition: .15s; }
.item-card:hover { transform: translateY(-3px); border-color: var(--rc); }
.item-card.sel { border: 2px solid var(--gold); box-shadow: 0 0 18px rgba(232, 184, 74, .35); }
.item-icon { width: 100%; height: 96px; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 50px; background: radial-gradient(circle, color-mix(in srgb, var(--rc) 45%, transparent), color-mix(in srgb, var(--rc) 10%, #0a0d18) 75%); border: 1px solid color-mix(in srgb, var(--rc) 60%, transparent); filter: drop-shadow(0 0 6px rgba(0,0,0,.5)); }
.item-card .nm { font: 700 13px Inter; margin-top: 8px; text-align: center; }
.item-card .price { font: 700 13px Inter; color: var(--gold2); margin-top: 3px; }
.owned-badge { position: absolute; top: 6px; right: 6px; font: 700 10px Inter; padding: 2px 6px; background: #14532dee; border: 1px solid #22c55e; border-radius: 4px; }
.r-common { --rc: #8a93ab; } .r-uncommon { --rc: #22c55e; } .r-rare { --rc: #3b82f6; } .r-epic { --rc: #a855f7; } .r-legendary { --rc: #f59e0b; }
.r-l1 { --rc: #8a93ab; } .r-l2 { --rc: #22c55e; } .r-l3 { --rc: #3b82f6; } .r-l4 { --rc: #a855f7; } .r-l5 { --rc: #f97316; } .r-l6 { --rc: #ef4444; } .r-l7 { --rc: #f5c542; } .r-l8 { --rc: #fff3c4; }
.r-text-l1 { color: #cbd2e3; } .r-text-l2 { color: #4ade80; } .r-text-l3 { color: #60a5fa; } .r-text-l4 { color: #c084fc; } .r-text-l5 { color: #fb923c; } .r-text-l6 { color: #f87171; } .r-text-l7 { color: #fbbf24; } .r-text-l8 { color: #fff7d6; }
.r-text-common { color: #cbd2e3; } .r-text-uncommon { color: #4ade80; } .r-text-rare { color: #60a5fa; } .r-text-epic { color: #c084fc; } .r-text-legendary { color: #fbbf24; }
.item-detail { min-height: 104px; background: #0c1020; border: 1px solid var(--line); border-radius: 10px; padding: 12px 16px; display: flex; align-items: center; gap: 16px; }
.det-icon { width: 78px; height: 78px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 44px; background: radial-gradient(circle, color-mix(in srgb, var(--rc) 45%, transparent), #0a0d18 80%); border: 2px solid var(--rc); flex-shrink: 0; }
.det-info { flex: 1; }
.det-name { font: 800 19px Cinzel, serif; }
.det-rar { font: 700 10px Inter; letter-spacing: 1.5px; color: var(--mut); margin: 2px 0 6px; }
.det-stats { font-size: 13.5px; color: #cfd6e8; line-height: 1.5; }
.det-btns { display: flex; gap: 10px; align-items: center; }

/* Ekipman */
.eq-body { flex: 1; display: flex; gap: 18px; min-height: 0; }
.eq-left { width: 270px; background: #0c1020; border: 1px solid var(--line); border-radius: 10px; padding: 16px; }
.eq-who { font: 800 20px Cinzel, serif; color: var(--gold2); }
.eq-stat { display: flex; justify-content: space-between; padding: 9px 2px; border-bottom: 1px solid #1c2236; font-size: 14px; }
.eq-stat span { color: var(--mut); }
.eq-center { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; }
.eq-layout { display: flex; align-items: center; gap: 30px; }
.slot-col { display: flex; flex-direction: column; gap: 14px; }
.slot { width: 76px; height: 76px; border-radius: 10px; border: 2px solid var(--rc, #2c3550); background: radial-gradient(circle, color-mix(in srgb, var(--rc, #2c3550) 35%, transparent), #0a0d18 80%); display: flex; align-items: center; justify-content: center; font-size: 36px; cursor: pointer; transition: .15s; position: relative; }
.slot .empty-dim { position: absolute; inset: 0; background: rgba(10, 13, 24, .6); border-radius: 8px; }
.slot:hover { border-color: var(--gold); transform: scale(1.05); }
.tabs { display: flex; gap: 6px; background: #0c1020; border: 1px solid var(--line); border-radius: 10px; padding: 5px; }
.tab { padding: 8px 22px; border-radius: 7px; border: 0; background: transparent; color: var(--mut); font: 700 13px Inter; cursor: pointer; }
.tab.on { background: linear-gradient(180deg, #4a3a1a, #2a2010); color: var(--gold2); box-shadow: inset 0 0 0 1px var(--gold); }
.stat-table { border-collapse: collapse; min-width: 480px; font-size: 15px; }
.stat-table th { color: var(--gold); font: 700 12px Inter; letter-spacing: 1px; text-align: right; padding: 8px 14px; }
.stat-table td { padding: 9px 14px; border-bottom: 1px solid #1c2236; text-align: right; }
.stat-table td:first-child { text-align: left; color: var(--mut); }
.stat-table .plus { color: #4ade80; }
.app-wrap { display: flex; gap: 26px; align-items: center; }
.swatches { display: flex; flex-wrap: wrap; gap: 8px; max-width: 380px; align-items: center; }
.swatch { width: 32px; height: 32px; border-radius: 50%; border: 2px solid #0008; cursor: pointer; box-shadow: 0 0 10px currentColor; }
.swatch.on { outline: 3px solid #fff; outline-offset: 2px; }
.hats { display: grid; grid-template-columns: repeat(6, 60px); gap: 6px; }
.hat-btn { width: 60px; height: 60px; border-radius: 8px; border: 1px solid var(--line2); background: #0e1220; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.hat-btn.on { border: 2px solid var(--gold); background: #2a2010; }

/* Yetenekler */
.sk-body { flex: 1; display: flex; gap: 18px; min-height: 0; }
.sk-left { width: 220px; background: #0c1020; border: 1px solid var(--line); border-radius: 10px; padding: 12px; text-align: center; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.sk-grid { flex: 1; display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 1fr; gap: 12px; }
.skill-card { border: 1px solid var(--line2); border-radius: 10px; background: #0e1220; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; cursor: pointer; transition: .15s; }
.skill-card:hover { border-color: var(--gold); transform: translateY(-2px); }
.skill-card.sel { border: 2px solid var(--gold); box-shadow: 0 0 18px rgba(232, 184, 74, .3); }
.skill-card.locked .nm { color: var(--mut); }
.skill-card .nm { font: 700 14px Inter; }
.skill-card .lvtxt { font: 600 12px Inter; color: var(--mut); }
.pips { display: flex; gap: 4px; } .pips i { width: 14px; height: 5px; border-radius: 3px; background: #262d42; } .pips i.on { background: var(--gold); box-shadow: 0 0 6px var(--gold); }
.sk-detail { width: 330px; background: #0c1020; border: 1px solid var(--line); border-radius: 10px; padding: 16px; display: flex; flex-direction: column; gap: 6px; text-align: center; }
.sk-desc { background: #121829; border: 1px solid #1f2740; border-radius: 8px; padding: 10px; font-size: 13.5px; line-height: 1.45; text-align: left; }
.sk-desc .lbl { margin-top: 0; } .sk-desc.next { opacity: .8; }
.mp { color: #60a5fa; }
.req { color: #f87171; font-weight: 700; font-size: 13px; }
.sk-detail .btn.big { margin-top: auto; }

/* Envanter */
.inv-body { flex: 1; display: flex; gap: 18px; }
.inv-grid { display: grid; grid-template-columns: repeat(8, 78px); grid-auto-rows: 78px; gap: 10px; align-content: start; }
.inv-cell { border-radius: 9px; border: 1px solid var(--rc, #232a3f); background: radial-gradient(circle, color-mix(in srgb, var(--rc, #232a3f) 30%, transparent), #0a0d18 80%); display: flex; align-items: center; justify-content: center; font-size: 36px; position: relative; cursor: pointer; }
.inv-cell:empty { cursor: default; background: #0b0e19; }
.inv-cell.sel { border: 2px solid var(--gold); box-shadow: 0 0 14px rgba(232, 184, 74, .4); }
.inv-cell small { position: absolute; right: 5px; bottom: 3px; font: 800 13px Inter; text-shadow: 0 0 3px #000; }
.inv-cell em { position: absolute; left: 4px; top: 3px; font: 800 10px Inter; font-style: normal; color: #4ade80; }
.inv-detail.col { flex: 1; flex-direction: column; align-items: flex-start; justify-content: flex-start; }

/* Profil */
.pf-body { flex: 1; display: flex; gap: 30px; align-items: center; padding: 0 30px; }
.pf-left { background: #0c1020; border: 1px solid var(--gold); border-radius: 12px; padding: 10px; box-shadow: 0 0 24px rgba(232, 184, 74, .2); }
.pf-right { flex: 1; }
.name-in { background: #0c1020; border: 1px solid var(--line2); border-radius: 8px; color: #fff; font: 700 18px Inter; padding: 10px 14px; width: 320px; outline: none; }
.name-in:focus { border-color: var(--gold); }
.pf-lv { font: 800 30px Cinzel, serif; margin: 16px 0 8px; } .pf-lv span { color: var(--gold2); }
.xpbar { position: relative; height: 22px; background: #141a2a; border: 1px solid var(--line2); border-radius: 12px; overflow: hidden; margin: 8px 0; }
.xpbar i { display: block; height: 100%; background: linear-gradient(90deg, #1d4ed8, #60a5fa); box-shadow: 0 0 12px #3b82f6; }
.xpbar span { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font: 700 12px Inter; text-shadow: 0 0 3px #000; }
.tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 18px; }
.tile { background: #0c1020; border: 1px solid var(--line); border-radius: 10px; padding: 14px; }
.tile small { display: block; color: var(--mut); font-size: 12px; margin-bottom: 4px; }
.tile b { font: 800 24px Inter; }

/* Modlar */
.mode-grid { flex: 1; display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 1fr; gap: 16px; }
.mode-card { --mc: #3b82f6; border-radius: 12px; border: 1px solid color-mix(in srgb, var(--mc) 70%, transparent); background: linear-gradient(180deg, color-mix(in srgb, var(--mc) 30%, #0c1020), #0c1020); display: flex; flex-direction: column; align-items: center; justify-content: center; cursor: pointer; transition: .15s; padding: 10px; }
.mode-card:hover { transform: translateY(-4px); box-shadow: 0 10px 26px color-mix(in srgb, var(--mc) 40%, transparent); }
.mode-card.k-teamBattle { --mc: #8b5cf6; } .mode-card.k-survival { --mc: #ef4444; } .mode-card.k-jugDesc { --mc: #f59e0b; } .mode-card.k-online { --mc: #22c55e; }
.mc-title { font: 800 26px Cinzel, serif; margin-top: 6px; }
.mc-sub { color: #cbd2e3; font: 600 13px Inter; }
.mc-rew { color: var(--gold2); font: 700 12px Inter; margin-top: 6px; }

/* Eşleşme */
.mf-panel { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 460px; padding: 26px; display: flex; flex-direction: column; align-items: center; gap: 14px; text-align: center; animation: pop .25s; }
.mf-panel .hdr-title { flex: none; }
.mf-icon { width: 130px; height: 130px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 64px; border: 3px solid var(--gold); background: radial-gradient(circle, #3a2a10, #0c1020 70%); box-shadow: 0 0 30px rgba(232, 184, 74, .45); animation: pulse 1.4s infinite; }
@keyframes pulse { 50% { box-shadow: 0 0 50px rgba(232, 184, 74, .75); transform: scale(1.04); } }
.mf-status { font: 700 20px Inter; }
.spinner { width: 34px; height: 34px; border-radius: 50%; border: 4px solid #2c3550; border-top-color: #60a5fa; animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.mf-opp { display: flex; align-items: center; gap: 12px; background: #0c1020; border: 1px solid #22c55e; border-radius: 10px; padding: 6px 18px 6px 6px; text-align: left; animation: pop .3s; }
.mf-opp b { font-size: 18px; }

/* Savaş HUD */
.b-title { position: absolute; left: 50%; top: 10px; transform: translateX(-50%); font: 800 20px Cinzel, serif; color: var(--gold2); letter-spacing: 2px; text-shadow: 0 0 12px rgba(232, 184, 74, .5), 0 2px 4px #000; white-space: nowrap; }
.b-turn { position: absolute; left: 50%; top: 42px; transform: translateX(-50%); background: #0c1020dd; border: 1px solid var(--gold); border-radius: 8px; padding: 2px 22px 4px; text-align: center; }
.b-turn small { display: block; font: 700 11px Inter; color: var(--mut); }
.b-turn b { font: 800 28px Inter; line-height: 1; display: inline-block; }
.b-turn b.pop { animation: pop2 .4s; }
@keyframes pop2 { 40% { transform: scale(1.4); color: var(--gold2); } }
.b-panel { position: absolute; top: 12px; width: 360px; display: flex; gap: 10px; align-items: center; background: #0c1020dd; border: 1px solid var(--line2); border-radius: 10px; padding: 8px 10px; }
.b-panel.left { left: 14px; } .b-panel.right { right: 14px; flex-direction: row-reverse; }
.b-panel canvas { width: 64px; height: 64px; border-radius: 8px; border: 1px solid var(--gold); background: #070a12; flex-shrink: 0; }
.bp-av { width: 64px; height: 64px; border-radius: 8px; border: 1px solid var(--c); background: radial-gradient(circle, color-mix(in srgb, var(--c) 40%, transparent), #070a12 75%); display: flex; align-items: center; justify-content: center; font-size: 30px; flex-shrink: 0; }
.bp-info { flex: 1; min-width: 0; }
.bp-nm { font: 800 13px Inter; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-bottom: 4px; }
.bp-nm small { font-weight: 600; margin-left: 4px; }
.bbar { position: relative; height: 16px; background: #1a1f2e; border-radius: 4px; overflow: hidden; margin-bottom: 3px; border: 1px solid #000; }
.bbar i { display: block; height: 100%; transition: width .3s; }
.bbar.hp i { background: linear-gradient(180deg, #f87171, #b91c1c); }
.bbar.mp i { background: linear-gradient(180deg, #60a5fa, #1d4ed8); }
.bbar em { position: absolute; left: 0; top: 0; height: 4px; background: #7dd3fc; }
.bbar span { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font: 700 11px Inter; text-shadow: 0 0 3px #000, 0 0 2px #000; }
.bp-fx { font-size: 12px; min-height: 14px; }
.b-ctl { position: absolute; right: 14px; top: 104px; display: flex; gap: 6px; }
.b-msg { position: absolute; left: 50%; top: 104px; transform: translateX(-50%); font: 800 20px Inter; color: var(--gold2); text-shadow: 0 0 10px #000, 0 0 16px rgba(232, 184, 74, .6); opacity: 0; transition: .25s; }
.b-msg.show { opacity: 1; }
.b-log { position: absolute; left: 14px; top: 104px; width: 260px; font-size: 11.5px; color: #aab3c9; text-shadow: 0 1px 2px #000; line-height: 1.5; }
.b-log div:last-child { color: #fff; }
.skill-bar { position: absolute; left: 50%; bottom: 14px; transform: translateX(-50%); display: flex; gap: 8px; padding: 9px; background: #0a0d18e6; border: 1px solid var(--line2); border-radius: 12px; align-items: center; }
.skill-bar .sep { width: 1px; height: 54px; background: var(--line2); margin: 0 4px; }
.sk-btn { position: relative; width: 66px; height: 66px; border-radius: 10px; cursor: pointer; font-size: 30px; transition: .12s;
  background: radial-gradient(circle at 50% 45%, color-mix(in srgb, var(--c) 65%, transparent), color-mix(in srgb, var(--c) 18%, #0a0d18) 75%);
  border: 2px solid color-mix(in srgb, var(--c) 85%, #fff); box-shadow: 0 0 12px color-mix(in srgb, var(--c) 45%, transparent); color: #fff; }
.sk-btn:hover:not(.dis) { transform: translateY(-4px); box-shadow: 0 0 22px var(--c); }
.sk-btn.dis { filter: grayscale(.85) brightness(.55); cursor: default; }
.sk-btn .mc { position: absolute; right: 3px; bottom: 2px; font: 800 11px Inter; color: #93c5fd; text-shadow: 0 0 3px #000, 0 0 3px #000; }
.sk-btn.nomana .mc { color: #f87171; }
.sk-btn .hk { position: absolute; left: 4px; top: 2px; font: 700 10px Inter; color: #fff9; }
.sk-btn .cnt { position: absolute; right: 4px; bottom: 2px; font: 800 13px Inter; text-shadow: 0 0 3px #000; }
.sk-btn .cdv { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font: 800 28px Inter; text-shadow: 0 0 6px #000; }
.sk-btn.cd .ic { opacity: .25; }
.sk-btn.pot { width: 54px; height: 54px; font-size: 24px; }
.result { position: absolute; inset: 0; background: rgba(0, 0, 0, .55); display: flex; align-items: center; justify-content: center; animation: fadein .4s; }
@keyframes fadein { from { opacity: 0; } }
.res-box { width: 440px; padding: 26px; border-radius: 14px; background: var(--panel); text-align: center; animation: pop .35s; }
.res-box.win { border: 2px solid var(--gold); box-shadow: 0 0 60px rgba(232, 184, 74, .45); }
.res-box.lose { border: 2px solid #b91c1c; box-shadow: 0 0 60px rgba(185, 28, 28, .45); }
.res-title { font: 800 46px Cinzel, serif; letter-spacing: 4px; }
.win .res-title { color: var(--gold2); text-shadow: 0 0 24px rgba(232, 184, 74, .7); }
.lose .res-title { color: #f87171; text-shadow: 0 0 24px rgba(239, 68, 68, .6); }
.res-rew { display: flex; justify-content: center; gap: 30px; font: 800 24px Inter; color: var(--gold2); margin-bottom: 8px; }
.res-rew .xp { color: #60a5fa; }
.res-lvl { font: 800 18px Inter; color: #4ade80; margin: 8px 0; animation: pulse 1.2s infinite; }
.res-lvl small { display: block; font-size: 12px; color: var(--mut); }
.res-btns { display: flex; gap: 12px; justify-content: center; margin-top: 16px; }

/* Modal, ipucu, bildirim */
.modal-bg { position: absolute; inset: 0; background: rgba(2, 4, 10, .7); display: flex; align-items: center; justify-content: center; }
.modal { width: 520px; max-height: 640px; padding: 22px 26px; display: flex; flex-direction: column; gap: 12px; animation: pop .2s; }
.modal .hdr-title { flex: none; }
.help-text { font-size: 14px; line-height: 1.6; color: #cfd6e8; overflow: auto; } .help-text p { margin-bottom: 9px; } .help-text b { color: var(--gold2); }
.set-row { display: flex; align-items: center; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid #1c2236; font-size: 15px; }
.set-row input[type=range] { width: 220px; accent-color: var(--gold); }
.set-row select { width: 220px; background: #121726; color: #fff; border: 1px solid var(--line2); border-radius: 6px; padding: 7px 10px; font: 600 14px Inter; }
.set-btns { display: flex; gap: 10px; justify-content: flex-end; margin-top: 6px; }
.slot-list { display: flex; flex-direction: column; gap: 8px; overflow: auto; max-height: 420px; }
.slot-item { display: flex; align-items: center; gap: 12px; padding: 10px; border: 1px solid var(--line2); border-left: 4px solid var(--rc); border-radius: 8px; background: #0e1220; cursor: pointer; }
.slot-item:hover { border-color: var(--gold); }
.slot-item.on { background: #1a2a1a; }
.slot-item em { margin-left: auto; color: #4ade80; font: 700 12px Inter; font-style: normal; }
.si-ic { font-size: 30px; }
#tip { position: absolute; display: none; width: 260px; padding: 10px 12px; background: #0a0d18f2; border: 1px solid var(--gold); border-radius: 8px; font-size: 12.5px; line-height: 1.45; pointer-events: none; z-index: 50; box-shadow: 0 8px 24px #000a; }
#toast { position: absolute; left: 50%; top: 80px; transform: translateX(-50%) translateY(-10px); background: #0a0d18f2; border: 1px solid var(--gold); color: var(--gold2); padding: 10px 22px; border-radius: 8px; font: 700 14px Inter; opacity: 0; pointer-events: none; transition: .25s; z-index: 60; }
#toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }

/* ---- Eskitilmiş görünüm (ayar: Kenar 0 · Yazı 31 · Kir 100) ---- */
:root {
  --dirt: .8;
  --grain: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='f'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' seed='4'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 1.6 -0.55'/></filter><rect width='100%' height='100%' filter='url(%23f)'/></svg>");
}
.btn, .mode-btn, .cat-btn, .icon-btn, .nav-btn, .lvl-badge { position: relative; }
.btn::after, .mode-btn::after, .cat-btn::after, .icon-btn::after, .nav-btn::after, .name-tag::after, .lvl-badge::after {
  content: ''; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  background: var(--grain); mix-blend-mode: multiply; opacity: var(--dirt);
}
.btn.gold::after { opacity: calc(var(--dirt) * .5); }
.title-plate { background: var(--grain), linear-gradient(180deg, #1f2538ee, #0d1120ee); background-blend-mode: multiply, normal; }
/* Yazı aşınması: arayüzdeki tüm metinler .wt ile sarılır (main.js wearText).
   Filtre yerine bir kez üretilen aşınma maskesi kullanılır (performans için). */
:root {
  --wear: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='256' height='256'><filter id='f' x='0' y='0' width='100%' height='100%'><feTurbulence type='fractalNoise' baseFrequency='0.5' numOctaves='3' seed='11' stitchTiles='stitch' result='a'/><feColorMatrix in='a' values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  -12 0 0 0 8.76' result='A'/><feTurbulence type='fractalNoise' baseFrequency='1.6' numOctaves='1' seed='5' stitchTiles='stitch' result='b'/><feColorMatrix in='b' values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  -14 0 0 0 9.8' result='B'/><feComposite in='A' in2='B' operator='in'/></filter><rect width='100%' height='100%' filter='url(%23f)'/></svg>");
}
.wt { position: relative; z-index: 1; -webkit-mask-image: var(--wear); mask-image: var(--wear); -webkit-mask-size: 256px; mask-size: 256px; }

/* ---- Ses aç/kapat ---- */
.b-ctl .mute-btn { width: 34px; height: 30px; font-size: 15px; }
.mf-mute { position: absolute; top: 14px; right: 14px; }
.mf-mute .mute-btn { width: 34px; height: 32px; font-size: 15px; }
.switch { position: relative; width: 52px; height: 28px; cursor: pointer; }
.switch input { position: absolute; opacity: 0; width: 0; height: 0; }
.switch i { position: absolute; inset: 0; border-radius: 14px; background: #2a3045; border: 1px solid var(--line2); transition: .2s; }
.switch i::after { content: ''; position: absolute; left: 3px; top: 3px; width: 20px; height: 20px; border-radius: 50%; background: #8a93ab; transition: .2s; }
.switch input:checked + i { background: linear-gradient(180deg, #e2ad48, #9b6a1d); border-color: var(--gold2); }
.switch input:checked + i::after { left: 27px; background: #fff7df; }
