:root{--bg:#0f172a;--panel:#162036;--line:#26344f;--ink:#e8edf7;--mut:#8fa0bd;--acc:#6366f1;--gold:#fbbf24}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%}
body{font-family:"Poppins","Segoe UI",system-ui,Arial,sans-serif;background:radial-gradient(1200px 600px at 20% -10%,#1e2a52 0,transparent 60%),var(--bg);color:var(--ink);padding:12px;min-height:100vh}
.view[hidden],.modal[hidden]{display:none}
button{font:inherit;cursor:pointer}
.primary{background:linear-gradient(180deg,#7c83ff,#5258e8);color:#fff;border:0;border-radius:12px;padding:10px 22px;font-weight:800;box-shadow:0 4px 0 #3c41b5}
.primary:active{transform:translateY(2px);box-shadow:0 2px 0 #3c41b5}
.ghost{background:transparent;color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:8px 14px;font-weight:700}
.ghost:hover{background:#1c2a47}
.opt{font-size:13px;font-weight:600;display:flex;gap:6px;align-items:center;color:var(--mut)}
/* menü */
.hero{display:grid;grid-template-columns:1fr auto;gap:14px 24px;align-items:center;background:linear-gradient(135deg,#312e81,#4c1d95 55%,#9d174d);border-radius:20px;padding:20px 24px;box-shadow:0 12px 36px rgba(0,0,0,.35)}
.hero h1{margin:0;font-size:clamp(22px,3vw,32px)}
.hero p{margin:6px 0 0;opacity:.85}
.sum{display:flex;gap:18px}
.sum div{text-align:center}.sum b{display:block;font-size:28px;font-weight:900}.sum span{font-size:12px;opacity:.8}
.hero-actions{grid-column:1/-1;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.worlds{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;margin-top:14px}
.wcard{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:16px;cursor:pointer;position:relative;overflow:hidden;transition:.15s;text-align:left;color:inherit}
.wcard:hover{transform:translateY(-3px);border-color:var(--acc)}
.wcard.locked{opacity:.5;cursor:not-allowed}.wcard.locked:hover{transform:none;border-color:var(--line)}
.wcard .em{font-size:34px}
.wcard h3{margin:6px 0 2px;font-size:17px}
.wcard small{color:var(--mut);display:block;min-height:34px}
.wcard .rng{font-size:12px;color:var(--mut);margin-top:6px}
.pbar{height:8px;background:#0b1224;border-radius:99px;margin-top:8px;overflow:hidden}.pbar i{display:block;height:100%;background:linear-gradient(90deg,#34d399,#60a5fa)}
.wcard .st{position:absolute;right:14px;top:14px;color:var(--gold);font-weight:800;font-size:13px}
.wcard .band{position:absolute;left:0;top:0;bottom:0;width:6px}
/* bölümler */
.bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:12px}
.wtitle h2{margin:0;font-size:20px}.wtitle small{color:var(--mut)}
.wprog{margin-left:auto;font-weight:800;color:var(--mut)}
.nodes{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:10px}
.node{aspect-ratio:1;border-radius:18px;border:2px solid var(--line);background:var(--panel);color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:900;font-size:20px;position:relative}
.node small{font-size:11px;color:var(--gold);letter-spacing:1px;min-height:13px}
.node.done{border-color:#34d399;background:#12302c}
.node.next{border-color:var(--acc);background:#232a63;box-shadow:0 0 0 4px rgba(99,102,241,.35);animation:pulse 1.4s infinite}
.node.locked{opacity:.4;cursor:not-allowed}
.node.boss::after{content:"👑";position:absolute;top:-8px;right:-6px;font-size:16px}
@keyframes pulse{50%{box-shadow:0 0 0 8px rgba(99,102,241,.12)}}
/* oyun */
.board{display:grid;grid-template-columns:minmax(170px,230px) minmax(0,1fr) minmax(220px,330px);gap:12px;min-height:290px}
.stats{display:flex;flex-direction:column;gap:12px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:12px 16px;flex:1;display:flex;flex-direction:column;justify-content:center}
.card h3{margin:0;font-size:15px;font-weight:700;color:var(--mut)}
.big{font-size:40px;font-weight:900;line-height:1.1}
.card.acc.good .big{color:#34d399}.card.acc.mid .big{color:#fbbf24}.card.acc.bad .big{color:#f87171}.card.acc.zero .big{color:var(--mut)}
.card.acc.bad{background:#3a1a24;border-color:#7f2a3a}
.bar2{height:8px;background:#0b1224;border-radius:99px;margin-top:8px;overflow:hidden}
.bar2 i{display:block;height:100%;background:#34d399;transition:width .2s}
.card.mid .bar2 i{background:#fbbf24}.card.bad .bar2 i{background:#f87171}
.stage{background:var(--panel);border:1px solid var(--line);border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:22px 18px 16px;position:relative;min-width:0}
.prog{position:absolute;top:0;left:0;right:0;height:6px;background:#0b1224;border-radius:16px 16px 0 0;overflow:hidden}
.prog i{display:block;height:100%;width:0;background:linear-gradient(90deg,#6366f1,#ec4899);transition:width .2s}
.target{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:2px 0;width:100%;max-height:236px;overflow:hidden;align-content:flex-start;min-height:110px;align-items:center}
.target.tile{justify-content:center;max-height:none}
.keytile{color:#1b2238;min-width:140px;height:140px;border-radius:24px;display:grid;place-items:center;font-size:84px;font-weight:900;box-shadow:0 6px 0 rgba(0,0,0,.35);padding:0 18px}
.ch{font-size:clamp(24px,3.2vw,40px);font-weight:800;padding:2px 1px;border-radius:7px;color:#5d6d8c;font-family:"Consolas","Courier New",monospace}
.ch.done{color:#34d399}
.ch.cur{background:#6366f1;color:#fff}
.ch.cur.bad{background:#ef4444;animation:shake .25s}
.ch.sp{min-width:.55em}
@keyframes shake{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
.msg{font-size:14px;color:var(--mut);text-align:center;font-weight:600;min-height:20px}
.msg b{color:var(--gold)}
.start{font-size:16px}
.hands{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:10px;display:flex;flex-direction:column;align-items:center;gap:14px;justify-content:center}
.hands svg{width:100%;height:auto;max-height:260px}
.handnote{background:#1c2a47;border-radius:99px;padding:10px 16px;font-size:14px;font-weight:600;text-align:center;color:#c7d2e8;width:100%}
.kbwrap{margin-top:12px}
/* sonuç */
.modal{position:fixed;inset:0;background:rgba(2,6,23,.7);display:grid;place-items:center;z-index:50}
.box{background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:26px 34px;text-align:center;max-width:92vw}
.stars{font-size:46px;letter-spacing:6px;color:var(--gold)}
.box h2{margin:6px 0}.resgoal{color:var(--mut);font-size:13px;margin:4px 0 0}
.row{display:flex;gap:10px;justify-content:center;margin-top:16px;flex-wrap:wrap}
@media(max-width:900px){.board{grid-template-columns:1fr 1fr}.stage{grid-column:1/3;order:-1;min-height:230px}.stats{flex-direction:row}.big{font-size:30px}.hero{grid-template-columns:1fr}}

.wd{display:inline-flex;white-space:nowrap}
body.comp #btnBackWorld,body.comp #btnWorld{display:none}

/* Eller ve hedef harf sadece gösterge; ekran klavyesine yalnızca dokunma (telefon/tablet) kabul edilir, fare yok sayılır (app.js) */
#hands, #target, #target * { pointer-events: none !important; cursor: default; user-select: none; }
#kb, #kb * { cursor: default; user-select: none; -webkit-user-select: none; touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
