{"id":5631,"date":"2026-07-02T21:43:08","date_gmt":"2026-07-02T18:43:08","guid":{"rendered":"https:\/\/moonshinein.me\/?page_id=5631"},"modified":"2026-07-02T21:43:14","modified_gmt":"2026-07-02T18:43:14","slug":"ingilizce-ogreniyorum","status":"publish","type":"page","link":"https:\/\/moonshinein.me\/en\/ingilizce-ogreniyorum\/","title":{"rendered":"\u0130ngilizce \u00d6\u011freniyorum"},"content":{"rendered":"<style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Baloo+2:wght@500;600;700;800&family=Nunito:wght@400;600;700;800&family=Cinzel+Decorative:wght@700&display=swap');\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 SCOPE \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.mten {\n  --bg:#0a0a16;\n  --bg2:#12122a;\n  --surface:#171733;\n  --surface2:#1e1e40;\n  --line:rgba(255,255,255,.09);\n  --ink:#eae4f5;\n  --muted:#a9a4c4;\n  --gold:#f0b825;\n  --gold-l:#ffd75e;\n  --green:#3bf58a;\n  --green-d:#22c55e;\n  --red:#ff6b8a;\n  --red-d:#f43f5e;\n  --blue:#5ab0ff;\n\n  position:relative;\n  font-family:'Nunito',system-ui,sans-serif;\n  color:var(--ink);\n  background:\n    radial-gradient(1200px 600px at 50% -10%, rgba(212,168,83,.10), transparent 60%),\n    linear-gradient(180deg,#0a0a16,#0c0c1e);\n  border-radius:20px;\n  overflow:hidden;\n  min-height:640px;\n  box-sizing:border-box;\n}\n.mten *, .mten *::before, .mten *::after { box-sizing:border-box; margin:0; padding:0; }\n.mten button { font-family:inherit; cursor:pointer; }\n.mten .mten-hidden { display:none !important; }\n\n\/* starfield *\/\n.mten-stars { position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden; }\n.mten-star { position:absolute; border-radius:50%; background:#fff; animation:mtenTw var(--d,3s) ease-in-out infinite alternate; }\n@keyframes mtenTw { 0%{opacity:.1;transform:scale(.8);} 100%{opacity:var(--o,.8);transform:scale(1.2);} }\n\n.mten-app { position:relative; z-index:1; max-width:560px; margin:0 auto; padding:0 16px 40px; }\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 TOP BAR \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.mten-top {\n  display:flex; align-items:center; gap:14px;\n  padding:18px 4px 10px;\n}\n.mten-badge {\n  font-family:'Cinzel Decorative',serif;\n  font-size:.78rem; letter-spacing:.1em;\n  color:var(--gold-l);\n  border:1.5px solid var(--gold);\n  padding:6px 12px; border-radius:12px;\n  background:rgba(212,168,83,.08);\n  box-shadow:0 0 14px rgba(212,168,83,.2);\n  white-space:nowrap;\n}\n.mten-top-sp { flex:1; }\n.mten-stat { display:flex; align-items:center; gap:6px; font-weight:800; font-size:1rem; }\n.mten-stat .mten-ic { font-size:1.15rem; }\n.mten-hearts { color:var(--red); }\n.mten-xp { color:var(--gold-l); }\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 PATH (y\u0131ld\u0131z yolu) \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.mten-intro { text-align:center; padding:6px 10px 22px; }\n.mten-intro h1 {\n  font-family:'Baloo 2',cursive; font-weight:800;\n  font-size:clamp(1.5rem,5vw,2rem); color:var(--gold-l);\n  letter-spacing:.01em; line-height:1.15;\n}\n.mten-intro p { color:var(--muted); font-size:1rem; margin-top:6px; }\n\n.mten-unit{\n  --uc:#ffc53d; --uc2:#ffe487; --uc-glow:rgba(255,197,61,.6);\n  position:relative;\n  margin:30px 0 10px;\n  padding:14px 14px 20px;\n  border:2px solid var(--uc);\n  border-radius:20px;\n  background:rgba(10,10,22,.35);\n  box-shadow:0 0 14px 1px var(--uc-glow), inset 0 0 20px rgba(255,255,255,.02);\n  animation:mtenUnitBreath 3.6s ease-in-out infinite;\n}\n.mten-unit::before{\n  content:''; position:absolute; inset:-2px; border-radius:22px; z-index:-1;\n  background:linear-gradient(135deg,var(--uc),var(--uc2),var(--uc),var(--uc2));\n  background-size:300% 300%;\n  filter:blur(3px); opacity:.72; saturate:1.3;\n  animation:mtenBorderFlow 3.5s linear infinite;\n}\n@keyframes mtenUnitBreath{\n  0%,100%{ box-shadow:0 0 12px 1px var(--uc-glow), inset 0 0 20px rgba(255,255,255,.02); }\n  50%{ box-shadow:0 0 24px 3px var(--uc-glow), inset 0 0 20px rgba(255,255,255,.02); }\n}\n@keyframes mtenBorderFlow{\n  0%{ background-position:0% 50%; } 50%{ background-position:100% 50%; } 100%{ background-position:0% 50%; }\n}\n\/* renk varyantlar\u0131 \u2014 her \u00fcnite farkl\u0131 renk *\/\n.mten-unit.uc-gold    { --uc:#ffc53d; --uc2:#ffe487; --uc-glow:rgba(255,197,61,.6); }\n.mten-unit.uc-blue    { --uc:#3d9bff; --uc2:#8fd0ff; --uc-glow:rgba(61,155,255,.6); }\n.mten-unit.uc-purple  { --uc:#c04dff; --uc2:#e3b3ff; --uc-glow:rgba(192,77,255,.6); }\n.mten-unit.uc-emerald { --uc:#1fe39a; --uc2:#7dffcf; --uc-glow:rgba(31,227,154,.6); }\n.mten-unit.uc-crimson { --uc:#ff3d6a; --uc2:#ffb0c0; --uc-glow:rgba(255,61,106,.6); }\n.mten-unit.uc-cyan    { --uc:#12e0ff; --uc2:#a0f2ff; --uc-glow:rgba(18,224,255,.6); }\n\/* aktif b\u00f6l\u00fcm daha g\u00fc\u00e7l\u00fc \u0131\u015f\u0131ldar *\/\n.mten-unit.is-active{\n  border-color:var(--uc2);\n  box-shadow:0 0 26px 4px var(--uc-glow), 0 0 60px 12px var(--uc-glow);\n  animation:mtenUnitBreathActive 2.2s ease-in-out infinite;\n}\n.mten-unit.is-active::before{ opacity:.95; animation-duration:3s; }\n@keyframes mtenUnitBreathActive{\n  0%,100%{ box-shadow:0 0 22px 3px var(--uc-glow), 0 0 50px 10px var(--uc-glow); }\n  50%{ box-shadow:0 0 34px 6px var(--uc-glow), 0 0 80px 18px var(--uc-glow); }\n}\n.mten-unit-head {\n  display:flex; align-items:center; gap:12px;\n  background:linear-gradient(90deg, var(--uc-glow), transparent 85%);\n  border:1px solid var(--line);\n  border-left:3px solid var(--uc);\n  border-radius:14px;\n  padding:12px 16px; margin-bottom:6px;\n}\n.mten-unit-head .mten-u-no {\n  font-family:'Baloo 2',cursive; font-weight:800; font-size:1.1rem;\n  width:34px;height:34px;border-radius:50%;\n  display:flex;align-items:center;justify-content:center;\n  background:var(--uc-glow); color:#fff; flex:none;\n  box-shadow:0 0 10px 1px var(--uc-glow);\n}\n.mten-unit-head h2 { font-family:'Baloo 2',cursive; font-weight:700; font-size:1.06rem; color:var(--ink); }\n.mten-unit-head p { font-size:.85rem; color:var(--muted); }\n\n\/* d\u00fc\u011f\u00fcm yolu *\/\n.mten-path { position:relative; padding:8px 0 4px; }\n.mten-node-wrap { display:flex; justify-content:center; position:relative; padding:12px 0; }\n.mten-node-wrap:nth-child(odd)  { transform:translateX(-58px); }\n.mten-node-wrap:nth-child(even) { transform:translateX(58px); }\n.mten-node-wrap::before{\n  content:''; position:absolute; z-index:0;\n  top:-14px; left:50%; width:2px; height:34px;\n  background:repeating-linear-gradient(to bottom, rgba(212,168,83,.5) 0 4px, transparent 4px 9px);\n  transform:translateX(-50%);\n}\n.mten-node-wrap:first-child::before{ display:none; }\n\n.mten-node {\n  position:relative; z-index:1;\n  width:74px;height:74px;border-radius:50%;\n  border:none; display:flex;align-items:center;justify-content:center;\n  font-size:2rem;\n  background:radial-gradient(circle at 50% 35%, #2a2a52, #16162e);\n  box-shadow:0 6px 0 rgba(0,0,0,.35), inset 0 2px 6px rgba(255,255,255,.05);\n  color:var(--muted);\n  transition:transform .15s ease, box-shadow .2s ease;\n}\n.mten-node:active { transform:translateY(3px); box-shadow:0 3px 0 rgba(0,0,0,.35); }\n.mten-node.is-done {\n  background:radial-gradient(circle at 50% 35%, var(--gold-l), var(--gold));\n  color:#2a1e00;\n  box-shadow:0 6px 0 #8a6a1e, 0 0 22px rgba(212,168,83,.6);\n}\n.mten-node.is-current {\n  background:radial-gradient(circle at 50% 35%, #3a3a70, #20204a);\n  color:var(--gold-l);\n  border:2px solid var(--gold);\n  box-shadow:0 6px 0 rgba(0,0,0,.35), 0 0 26px rgba(212,168,83,.55);\n  animation:mtenPulse 1.8s ease-in-out infinite;\n}\n@keyframes mtenPulse { 0%,100%{box-shadow:0 6px 0 rgba(0,0,0,.35),0 0 18px rgba(212,168,83,.45);} 50%{box-shadow:0 6px 0 rgba(0,0,0,.35),0 0 34px rgba(212,168,83,.8);} }\n.mten-node.is-locked { opacity:.55; }\n.mten-node-label {\n  position:absolute; z-index:1; bottom:-6px; left:50%; transform:translateX(-50%);\n  font-size:.72rem; font-weight:700; color:var(--muted);\n  background:var(--bg2); padding:2px 8px; border-radius:8px; white-space:nowrap;\n  border:1px solid var(--line);\n}\n.mten-node.is-done + .mten-node-label { color:var(--gold-l); }\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 LESSON RUNNER \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.mten-runner { position:relative; z-index:1; max-width:560px; margin:0 auto; padding:16px; min-height:600px; display:flex; flex-direction:column; }\n.mten-run-top { display:flex; align-items:center; gap:14px; padding:6px 0 16px; }\n.mten-x { background:none; border:none; color:var(--muted); font-size:1.5rem; line-height:1; padding:4px 8px; border-radius:8px; }\n.mten-x:hover { color:var(--ink); background:var(--surface); }\n.mten-bar { flex:1; height:14px; border-radius:10px; background:var(--surface2); overflow:hidden; }\n.mten-bar-fill { height:100%; width:0%; border-radius:10px; background:linear-gradient(90deg,var(--gold),var(--gold-l)); transition:width .35s ease; box-shadow:0 0 12px rgba(212,168,83,.5); }\n.mten-run-hearts { color:var(--red); font-weight:800; display:flex; align-items:center; gap:5px; }\n\n.mten-q { flex:1; display:flex; flex-direction:column; }\n.mten-q-kind { font-family:'Baloo 2',cursive; font-weight:700; font-size:1.15rem; color:var(--ink); margin-bottom:18px; }\n.mten-q-kind small { display:block; font-family:'Nunito'; font-weight:600; font-size:.85rem; color:var(--muted); margin-top:2px; }\n\n\/* teach card *\/\n.mten-teach { text-align:center; padding:14px 0; }\n.mten-teach-emoji { font-size:4.4rem; line-height:1; margin-bottom:10px; }\n.mten-teach-en { font-family:'Baloo 2',cursive; font-weight:800; font-size:2rem; color:var(--gold-l); }\n.mten-teach-tr { font-size:1.25rem; color:var(--ink); margin-top:2px; }\n.mten-teach-ex { margin-top:16px; padding:14px 16px; background:var(--surface); border:1px solid var(--line); border-radius:14px; }\n.mten-teach-ex .en { font-weight:700; color:var(--ink); }\n.mten-teach-ex .tr { color:var(--muted); font-size:.95rem; margin-top:2px; }\n\n\/* speaker button *\/\n.mten-speak {\n  display:inline-flex; align-items:center; gap:9px;\n  background:var(--surface); border:1.5px solid var(--blue);\n  color:#bfdbfe; font-weight:800; font-size:1.05rem;\n  padding:14px 22px; border-radius:16px; margin:4px 0 8px;\n  box-shadow:0 4px 0 rgba(0,0,0,.3);\n  transition:transform .12s ease;\n}\n.mten-speak:active { transform:translateY(3px); box-shadow:0 1px 0 rgba(0,0,0,.3); }\n.mten-speak .mten-wave { font-size:1.3rem; }\n.mten-speak.mten-big { font-size:1.4rem; padding:20px 30px; }\n\n\/* option grid *\/\n.mten-opts { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:8px; }\n.mten-opts.one-col { grid-template-columns:1fr; }\n.mten-opt {\n  background:var(--surface); border:2px solid var(--line); border-bottom-width:4px;\n  color:var(--ink); font-weight:700; font-size:1.05rem;\n  padding:16px 14px; border-radius:16px; text-align:center;\n  transition:transform .1s ease, border-color .15s ease, background .15s ease;\n}\n.mten-opt:hover { border-color:var(--gold); }\n.mten-opt:active { transform:translateY(2px); }\n.mten-opt.sel { border-color:var(--gold); background:rgba(212,168,83,.12); }\n.mten-opt.ok { border-color:var(--green-d); background:rgba(74,222,128,.15); color:#bbf7d0; }\n.mten-opt.no { border-color:var(--red-d); background:rgba(244,63,94,.15); color:#fecdd3; }\n.mten-opt:disabled { cursor:default; }\n.mten-opt .em { font-size:2.2rem; display:block; margin-bottom:4px; }\n\n\/* choose big emoji prompt *\/\n.mten-prompt-emoji { text-align:center; font-size:5rem; line-height:1; margin:4px 0 14px; }\n.mten-prompt-word { text-align:center; font-family:'Baloo 2',cursive; font-weight:800; font-size:2.2rem; color:var(--gold-l); margin:6px 0 16px; }\n\n\/* fill \/ order sentence *\/\n.mten-sentence { font-size:1.4rem; font-weight:700; text-align:center; line-height:1.6; margin:6px 0 14px; }\n.mten-blank { display:inline-block; min-width:80px; border-bottom:3px dashed var(--gold); color:var(--gold-l); padding:0 6px; }\n.mten-tr-hint { text-align:center; color:var(--muted); font-size:1rem; margin-bottom:14px; }\n\n\/* order build area *\/\n.mten-build { min-height:60px; display:flex; flex-wrap:wrap; gap:8px; justify-content:center;\n  border:2px dashed var(--line); border-radius:14px; padding:14px; margin-bottom:14px; }\n.mten-bank { display:flex; flex-wrap:wrap; gap:8px; justify-content:center; }\n.mten-chip {\n  background:var(--surface); border:2px solid var(--line); border-bottom-width:4px;\n  color:var(--ink); font-weight:700; font-size:1.05rem; padding:10px 16px; border-radius:12px;\n}\n.mten-chip:active { transform:translateY(2px); }\n.mten-chip.used { opacity:.25; pointer-events:none; }\n\n\/* match *\/\n.mten-match { display:grid; grid-template-columns:1fr 1fr; gap:10px 22px; }\n.mten-match-col { display:flex; flex-direction:column; gap:10px; }\n.mten-match-btn {\n  background:var(--surface); border:2px solid var(--line); border-bottom-width:4px;\n  color:var(--ink); font-weight:700; font-size:1rem; padding:14px 10px; border-radius:14px;\n}\n.mten-match-btn.sel { border-color:var(--gold); background:rgba(212,168,83,.12); }\n.mten-match-btn.done { border-color:var(--green-d); background:rgba(74,222,128,.12); color:#bbf7d0; opacity:.7; pointer-events:none; }\n.mten-match-btn.err { border-color:var(--red-d); animation:mtenShake .35s; }\n@keyframes mtenShake { 0%,100%{transform:translateX(0);} 25%{transform:translateX(-6px);} 75%{transform:translateX(6px);} }\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 FOOTER \/ CHECK \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.mten-foot { padding-top:14px; }\n.mten-cta {\n  width:100%; border:none; border-radius:16px; padding:17px;\n  font-family:'Baloo 2',cursive; font-weight:800; font-size:1.15rem; letter-spacing:.02em;\n  color:#2a1e00; background:linear-gradient(180deg,var(--gold-l),var(--gold));\n  box-shadow:0 5px 0 #8a6a1e; transition:transform .12s ease, box-shadow .12s ease, opacity .2s;\n}\n.mten-cta:active { transform:translateY(4px); box-shadow:0 1px 0 #8a6a1e; }\n.mten-cta:disabled { opacity:.4; box-shadow:0 5px 0 #444; color:#666; background:#2a2a44; cursor:default; }\n.mten-cta.skip { background:transparent; color:var(--muted); box-shadow:none; font-size:1rem; }\n\n\/* feedback bar *\/\n.mten-fb { border-radius:16px 16px 0 0; padding:16px 18px; margin:14px -16px -40px; display:flex; align-items:center; gap:12px; }\n.mten-fb.good { background:rgba(74,222,128,.14); border-top:2px solid var(--green-d); }\n.mten-fb.bad  { background:rgba(244,63,94,.14); border-top:2px solid var(--red-d); }\n.mten-fb-ic { font-size:1.8rem; }\n.mten-fb-txt b { font-family:'Baloo 2',cursive; font-size:1.05rem; display:block; }\n.mten-fb.good .mten-fb-txt b { color:#86efac; }\n.mten-fb.bad .mten-fb-txt b { color:#fda4af; }\n.mten-fb-txt span { font-size:.9rem; color:var(--muted); }\n\n\/* result \/ fail *\/\n.mten-result { text-align:center; padding:40px 20px; }\n.mten-result .big { font-size:4rem; }\n.mten-result h2 { font-family:'Baloo 2',cursive; font-weight:800; font-size:1.7rem; color:var(--gold-l); margin:8px 0; }\n.mten-result p { color:var(--muted); margin-bottom:8px; }\n.mten-result .stats { display:flex; gap:14px; justify-content:center; margin:22px 0; }\n.mten-result .stat-box { background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:14px 20px; min-width:96px; }\n.mten-result .stat-box .v { font-family:'Baloo 2',cursive; font-weight:800; font-size:1.5rem; color:var(--gold-l); }\n.mten-result .stat-box .l { font-size:.78rem; color:var(--muted); text-transform:uppercase; letter-spacing:.08em; }\n\n@media (prefers-reduced-motion: reduce) {\n  .mten *, .mten *::before { animation:none !important; transition:none !important; }\n}\n@media (max-width:420px){\n  .mten-node-wrap:nth-child(odd){ transform:translateX(-42px); }\n  .mten-node-wrap:nth-child(even){ transform:translateX(42px); }\n  .mten-node{ width:64px;height:64px;font-size:1.7rem; }\n}\n<\/style>\n\n\n<div class=\"mten\" id=\"mten\">\n  <div class=\"mten-stars\" id=\"mten-stars\"><\/div>\n  <div id=\"mten-view\"><\/div>\n<\/div>\n\n\n<script>\n(function(){\n\"use strict\";\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   \u0130\u00c7ER\u0130K VER\u0130S\u0130 (JSON) \u2014 Motor bundan ba\u011f\u0131ms\u0131zd\u0131r.\n   Yeni \u00fcnite\/ders eklemek i\u00e7in sadece bu diziyi b\u00fcy\u00fctmen yeterli.\n   Al\u0131\u015ft\u0131rma tipleri: teach | listen | choose | fill | order | match\n   \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\nvar CONTENT = {\n  level: \"A1.1\",\n  title: \"\u0130ngilizce \u00b7 Seviye 1\",\n  subtitle: \"S\u0131f\u0131rdan \u0130ngilizce \u2014 dinle, se\u00e7, tamamla, ilerle\",\n  units: [\n    {\n      no:1, title:\"Selamla\u015fma\", subtitle:\"Merhaba demeyi \u00f6\u011fren\",\n      lessons:[\n        { id:\"u1l1\", label:\"Selamlar\", xp:10, exercises:[\n          {type:\"teach\", emoji:\"\ud83d\udc4b\", en:\"Hello\", tr:\"Merhaba\", ex_en:\"Hello!\", ex_tr:\"Merhaba!\"},\n          {type:\"teach\", emoji:\"\ud83c\udf05\", en:\"Good morning\", tr:\"G\u00fcnayd\u0131n\", ex_en:\"Good morning!\", ex_tr:\"G\u00fcnayd\u0131n!\"},\n          {type:\"choose\", show:\"\ud83d\udc4b\", showKind:\"emoji\", question:\"Bu ne anlama geliyor?\", answer:\"Merhaba\", options:[\"Merhaba\",\"Te\u015fekk\u00fcrler\",\"Ho\u015f\u00e7a kal\",\"L\u00fctfen\"]},\n          {type:\"listen\", say:\"Hello\", question:\"Ne duydun? Anlam\u0131 nedir?\", answer:\"Merhaba\", options:[\"Merhaba\",\"G\u00fcnayd\u0131n\",\"\u0130yi geceler\",\"Evet\"]},\n          {type:\"choose\", show:\"Good morning\", showKind:\"text\", question:\"Anlam\u0131 nedir?\", answer:\"G\u00fcnayd\u0131n\", options:[\"G\u00fcnayd\u0131n\",\"\u0130yi ak\u015famlar\",\"Merhaba\",\"G\u00f6r\u00fc\u015f\u00fcr\u00fcz\"]},\n          {type:\"listen\", say:\"Good morning\", question:\"Ne duydun?\", answer:\"G\u00fcnayd\u0131n\", options:[\"G\u00fcnayd\u0131n\",\"Merhaba\",\"Te\u015fekk\u00fcrler\",\"Ho\u015f\u00e7a kal\"]}\n        ]},\n        { id:\"u1l2\", label:\"Nezaket\", xp:10, exercises:[\n          {type:\"teach\", emoji:\"\ud83d\ude4f\", en:\"Thank you\", tr:\"Te\u015fekk\u00fcr ederim\", ex_en:\"Thank you very much.\", ex_tr:\"\u00c7ok te\u015fekk\u00fcr ederim.\"},\n          {type:\"teach\", emoji:\"\ud83e\udd1d\", en:\"Please\", tr:\"L\u00fctfen\", ex_en:\"Water, please.\", ex_tr:\"Su, l\u00fctfen.\"},\n          {type:\"teach\", emoji:\"\ud83d\udc4b\", en:\"Goodbye\", tr:\"Ho\u015f\u00e7a kal\", ex_en:\"Goodbye!\", ex_tr:\"Ho\u015f\u00e7a kal!\"},\n          {type:\"choose\", show:\"\ud83d\ude4f\", showKind:\"emoji\", question:\"Bu ne anlama geliyor?\", answer:\"Thank you\", options:[\"Thank you\",\"Hello\",\"Please\",\"Goodbye\"]},\n          {type:\"listen\", say:\"Please\", question:\"Ne duydun?\", answer:\"L\u00fctfen\", options:[\"L\u00fctfen\",\"Te\u015fekk\u00fcrler\",\"Merhaba\",\"Ho\u015f\u00e7a kal\"]},\n          {type:\"match\", pairs:[[\"Hello\",\"Merhaba\"],[\"Thank you\",\"Te\u015fekk\u00fcrler\"],[\"Please\",\"L\u00fctfen\"],[\"Goodbye\",\"Ho\u015f\u00e7a kal\"]]},\n          {type:\"choose\", show:\"Goodbye\", showKind:\"text\", question:\"Anlam\u0131 nedir?\", answer:\"Ho\u015f\u00e7a kal\", options:[\"Ho\u015f\u00e7a kal\",\"G\u00fcnayd\u0131n\",\"Te\u015fekk\u00fcrler\",\"L\u00fctfen\"]}\n        ]}\n      ]\n    },\n    {\n      no:2, title:\"Kendini Tan\u0131t\", subtitle:\"\u0130smini ve kim oldu\u011funu s\u00f6yle\",\n      lessons:[\n        { id:\"u2l1\", label:\"Ben ...\", xp:10, exercises:[\n          {type:\"teach\", emoji:\"\ud83e\uddd1\", en:\"I am\", tr:\"Ben ...-im\", ex_en:\"I am Kayra.\", ex_tr:\"Ben Kayra'y\u0131m.\"},\n          {type:\"teach\", emoji:\"\ud83d\udcdb\", en:\"My name is\", tr:\"Benim ad\u0131m\", ex_en:\"My name is Ali.\", ex_tr:\"Benim ad\u0131m Ali.\"},\n          {type:\"listen\", say:\"My name is Ali\", question:\"Ne duydun?\", answer:\"Benim ad\u0131m Ali\", options:[\"Benim ad\u0131m Ali\",\"Ben iyiyim\",\"Merhaba Ali\",\"Ad\u0131n ne?\"]},\n          {type:\"fill\", tr:\"Benim ad\u0131m Ali.\", tokens:[\"My\",\"name\",\"___\",\"Ali\"], answer:\"is\", options:[\"is\",\"am\",\"are\"]},\n          {type:\"order\", tr:\"Ben Kayra'y\u0131m.\", answer:[\"I\",\"am\",\"Kayra\"], extra:[\"is\",\"you\"]},\n          {type:\"choose\", show:\"I am\", showKind:\"text\", question:\"Anlam\u0131 nedir?\", answer:\"Ben ...-im\", options:[\"Ben ...-im\",\"Sen ...-sin\",\"O ...-dir\",\"Biz ...-iz\"]}\n        ]},\n        { id:\"u2l2\", label:\"Tan\u0131\u015fma\", xp:10, exercises:[\n          {type:\"teach\", emoji:\"\u2753\", en:\"What is your name?\", tr:\"Ad\u0131n ne?\", ex_en:\"What is your name?\", ex_tr:\"Ad\u0131n ne?\"},\n          {type:\"teach\", emoji:\"\ud83d\ude0a\", en:\"Nice to meet you\", tr:\"Tan\u0131\u015ft\u0131\u011f\u0131m\u0131za memnun oldum\", ex_en:\"Nice to meet you!\", ex_tr:\"Tan\u0131\u015ft\u0131\u011f\u0131ma memnun oldum!\"},\n          {type:\"listen\", say:\"What is your name\", question:\"Ne duydun?\", answer:\"Ad\u0131n ne?\", options:[\"Ad\u0131n ne?\",\"Nas\u0131ls\u0131n?\",\"Nerelisin?\",\"Ka\u00e7 ya\u015f\u0131ndas\u0131n?\"]},\n          {type:\"fill\", tr:\"Ad\u0131n ne?\", tokens:[\"What\",\"is\",\"your\",\"___\"], answer:\"name\", options:[\"name\",\"are\",\"hello\",\"you\"]},\n          {type:\"order\", tr:\"Tan\u0131\u015ft\u0131\u011f\u0131ma memnun oldum.\", answer:[\"Nice\",\"to\",\"meet\",\"you\"], extra:[\"name\",\"is\"]},\n          {type:\"match\", pairs:[[\"I am\",\"Ben ...-im\"],[\"My name is\",\"Benim ad\u0131m\"],[\"What is your name?\",\"Ad\u0131n ne?\"],[\"Nice to meet you\",\"Memnun oldum\"]]}\n        ]}\n      ]\n    },\n    {\n      no:3, title:\"Nesneler\", subtitle:\"G\u00f6rd\u00fc\u011f\u00fcn \u015feyin ad\u0131n\u0131 s\u00f6yle\",\n      lessons:[\n        { id:\"u3l1\", label:\"Yiyecek & \u0130\u00e7ecek\", xp:10, exercises:[\n          {type:\"teach\", emoji:\"\ud83c\udf4e\", en:\"Apple\", tr:\"Elma\", ex_en:\"An apple.\", ex_tr:\"Bir elma.\"},\n          {type:\"teach\", emoji:\"\ud83d\udca7\", en:\"Water\", tr:\"Su\", ex_en:\"A glass of water.\", ex_tr:\"Bir bardak su.\"},\n          {type:\"teach\", emoji:\"\ud83c\udf5e\", en:\"Bread\", tr:\"Ekmek\", ex_en:\"Fresh bread.\", ex_tr:\"Taze ekmek.\"},\n          {type:\"choose\", show:\"\ud83c\udf4e\", showKind:\"emoji\", question:\"Bu nedir?\", answer:\"Apple\", options:[\"Apple\",\"Water\",\"Bread\",\"Milk\"]},\n          {type:\"choose\", show:\"\ud83d\udca7\", showKind:\"emoji\", question:\"Bu nedir?\", answer:\"Water\", options:[\"Water\",\"Apple\",\"Bread\",\"Book\"]},\n          {type:\"listen\", say:\"Bread\", question:\"Ne duydun?\", answer:\"Ekmek\", options:[\"Ekmek\",\"Su\",\"Elma\",\"S\u00fct\"]},\n          {type:\"match\", pairs:[[\"Apple\",\"Elma\"],[\"Water\",\"Su\"],[\"Bread\",\"Ekmek\"]]}\n        ]},\n        { id:\"u3l2\", label:\"Evdeki Nesneler\", xp:10, exercises:[\n          {type:\"teach\", emoji:\"\ud83d\udcd6\", en:\"Book\", tr:\"Kitap\", ex_en:\"A good book.\", ex_tr:\"\u0130yi bir kitap.\"},\n          {type:\"teach\", emoji:\"\ud83d\udeaa\", en:\"Door\", tr:\"Kap\u0131\", ex_en:\"Open the door.\", ex_tr:\"Kap\u0131y\u0131 a\u00e7.\"},\n          {type:\"teach\", emoji:\"\ud83e\ude91\", en:\"Chair\", tr:\"Sandalye\", ex_en:\"A wooden chair.\", ex_tr:\"Ah\u015fap bir sandalye.\"},\n          {type:\"choose\", show:\"\ud83d\udcd6\", showKind:\"emoji\", question:\"Bu nedir?\", answer:\"Book\", options:[\"Book\",\"Door\",\"Chair\",\"Table\"]},\n          {type:\"choose\", show:\"\ud83d\udeaa\", showKind:\"emoji\", question:\"Bu nedir?\", answer:\"Door\", options:[\"Door\",\"Chair\",\"Book\",\"Water\"]},\n          {type:\"listen\", say:\"Chair\", question:\"Ne duydun?\", answer:\"Sandalye\", options:[\"Sandalye\",\"Kap\u0131\",\"Kitap\",\"Masa\"]},\n          {type:\"match\", pairs:[[\"Book\",\"Kitap\"],[\"Door\",\"Kap\u0131\"],[\"Chair\",\"Sandalye\"]]}\n        ]}\n      ]\n    },\n    {\n      no:4, title:\"\u0130lk C\u00fcmleler\", subtitle:\"am \/ is \/ are ile basit c\u00fcmleler\",\n      lessons:[\n        { id:\"u4l1\", label:\"am \/ is \/ are\", xp:15, exercises:[\n          {type:\"teach\", emoji:\"\ud83e\uddd1\u200d\ud83c\udf93\", en:\"I am a student\", tr:\"Ben bir \u00f6\u011frenciyim\", ex_en:\"I am a student.\", ex_tr:\"Ben bir \u00f6\u011frenciyim.\"},\n          {type:\"teach\", emoji:\"\ud83d\ude0a\", en:\"She is happy\", tr:\"O mutlu\", ex_en:\"She is happy.\", ex_tr:\"O mutlu.\"},\n          {type:\"fill\", tr:\"Ben bir \u00f6\u011frenciyim.\", tokens:[\"I\",\"___\",\"a\",\"student\"], answer:\"am\", options:[\"am\",\"is\",\"are\"]},\n          {type:\"fill\", tr:\"O mutlu.\", tokens:[\"She\",\"___\",\"happy\"], answer:\"is\", options:[\"is\",\"am\",\"are\"]},\n          {type:\"order\", tr:\"Ben bir \u00f6\u011frenciyim.\", answer:[\"I\",\"am\",\"a\",\"student\"], extra:[\"is\",\"she\"]},\n          {type:\"listen\", say:\"She is happy\", question:\"Ne duydun?\", answer:\"O mutlu\", options:[\"O mutlu\",\"Ben \u00f6\u011frenciyim\",\"Sen iyisin\",\"Onlar burada\"]}\n        ]},\n        { id:\"u4l2\", label:\"Sen & O\", xp:15, exercises:[\n          {type:\"teach\", emoji:\"\ud83d\ude42\", en:\"You are my friend\", tr:\"Sen benim arkada\u015f\u0131ms\u0131n\", ex_en:\"You are my friend.\", ex_tr:\"Sen benim arkada\u015f\u0131ms\u0131n.\"},\n          {type:\"teach\", emoji:\"\ud83d\udc31\", en:\"It is a cat\", tr:\"O bir kedi\", ex_en:\"It is a cat.\", ex_tr:\"O bir kedi.\"},\n          {type:\"fill\", tr:\"Sen benim arkada\u015f\u0131ms\u0131n.\", tokens:[\"You\",\"___\",\"my\",\"friend\"], answer:\"are\", options:[\"are\",\"is\",\"am\"]},\n          {type:\"choose\", show:\"\ud83d\udc31\", showKind:\"emoji\", question:\"Bu nedir?\", answer:\"Cat\", options:[\"Cat\",\"Dog\",\"Door\",\"Book\"]},\n          {type:\"order\", tr:\"O bir kedi.\", answer:[\"It\",\"is\",\"a\",\"cat\"], extra:[\"are\",\"you\"]},\n          {type:\"match\", pairs:[[\"I am\",\"Ben ...-im\"],[\"You are\",\"Sen ...-sin\"],[\"She is\",\"O ...-d\u0131r\"],[\"It is\",\"O (nesne)\"]]}\n        ]}\n      ]\n    }\n  ]\n};\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   MOTOR\n   \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\nvar MAX_HEARTS = 5;\nvar STORE_KEY = \"mten_en_a1_1_v1\";\nvar view = document.getElementById(\"mten-view\");\n\nvar state = { xp:0, done:{} };\ntry { var raw = localStorage.getItem(STORE_KEY); if(raw){ state = JSON.parse(raw); state.done=state.done||{}; } } catch(e){}\nfunction save(){ try { localStorage.setItem(STORE_KEY, JSON.stringify(state)); } catch(e){} }\n\n\/* d\u00fcz ders listesi (kilit s\u0131ras\u0131 i\u00e7in) *\/\nvar FLAT = [];\nCONTENT.units.forEach(function(u){ u.lessons.forEach(function(l){ FLAT.push(l.id); }); });\nfunction isUnlocked(id){ var i=FLAT.indexOf(id); if(i<=0) return true; return !!state.done[FLAT[i-1]]; }\n\n\/* ---- starfield ---- *\/\n(function(){\n  var sf=document.getElementById(\"mten-stars\");\n  for(var i=0;i<70;i++){ var s=document.createElement(\"div\"); s.className=\"mten-star\";\n    var z=Math.random()*2+.5;\n    s.style.cssText=\"width:\"+z+\"px;height:\"+z+\"px;top:\"+Math.random()*100+\"%;left:\"+Math.random()*100+\"%;--d:\"+(Math.random()*3+2)+\"s;--o:\"+(Math.random()*.5+.4)+\";animation-delay:\"+(Math.random()*4)+\"s;\";\n    sf.appendChild(s);\n  }\n})();\n\n\/* ---- TTS ---- *\/\nfunction speak(txt){\n  try{\n    if(!(\"speechSynthesis\" in window)) return;\n    window.speechSynthesis.cancel();\n    var u=new SpeechSynthesisUtterance(txt);\n    u.lang=\"en-US\"; u.rate=.9;\n    window.speechSynthesis.speak(u);\n  }catch(e){}\n}\n\n\/* ---- yard\u0131mc\u0131 ---- *\/\nfunction shuffle(a){ a=a.slice(); for(var i=a.length-1;i>0;i--){ var j=Math.floor(Math.random()*(i+1)); var t=a[i];a[i]=a[j];a[j]=t; } return a; }\nfunction el(html){ var d=document.createElement(\"div\"); d.innerHTML=html.trim(); return d.firstChild; }\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 PATH EKRANI \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\nfunction renderPath(){\n  window.speechSynthesis && window.speechSynthesis.cancel();\n  var totalXp = state.xp||0;\n  var h = '';\n  h += '<div class=\"mten-app\">';\n  h += '<div class=\"mten-top\">';\n  h += '<span class=\"mten-badge\">'+CONTENT.level+'<\/span>';\n  h += '<span class=\"mten-top-sp\"><\/span>';\n  h += '<span class=\"mten-stat mten-xp\"><span class=\"mten-ic\">\u2b50<\/span>'+totalXp+'<\/span>';\n  h += '<\/div>';\n  h += '<div class=\"mten-intro\"><h1>'+CONTENT.title+'<\/h1><p>'+CONTENT.subtitle+'<\/p><\/div>';\n\n  var UCOLORS=[\"uc-gold\",\"uc-blue\",\"uc-purple\",\"uc-emerald\",\"uc-crimson\",\"uc-cyan\"];\n  var activeNo=null;\n  for(var ui=0; ui<CONTENT.units.length; ui++){\n    var un=CONTENT.units[ui];\n    var open=false; for(var k=0;k<un.lessons.length;k++){ if(!state.done[un.lessons[k].id]){ open=true; break; } }\n    if(open){ activeNo=un.no; break; }\n  }\n  CONTENT.units.forEach(function(u,idx){\n    var ucls=\"mten-unit \"+UCOLORS[idx%UCOLORS.length]+(u.no===activeNo?\" is-active\":\"\");\n    h += '<div class=\"'+ucls+'\">';\n    h += '<div class=\"mten-unit-head\"><div class=\"mten-u-no\">'+u.no+'<\/div><div><h2>'+u.title+'<\/h2><p>'+u.subtitle+'<\/p><\/div><\/div>';\n    h += '<div class=\"mten-path\">';\n    u.lessons.forEach(function(l){\n      var done = !!state.done[l.id];\n      var unlocked = isUnlocked(l.id);\n      var cls = done ? \"is-done\" : (unlocked ? \"is-current\" : \"is-locked\");\n      var icon = done ? \"\u2605\" : (unlocked ? \"\u25b6\" : \"\ud83d\udd12\");\n      h += '<div class=\"mten-node-wrap\">';\n      h += '<button class=\"mten-node '+cls+'\" data-lesson=\"'+l.id+'\" '+(unlocked?\"\":\"disabled\")+'>'+icon+'<\/button>';\n      h += '<span class=\"mten-node-label\">'+l.label+'<\/span>';\n      h += '<\/div>';\n    });\n    h += '<\/div><\/div>';\n  });\n\n  h += '<\/div>';\n  view.innerHTML = h;\n  view.querySelectorAll(\".mten-node[data-lesson]\").forEach(function(b){\n    if(b.hasAttribute(\"disabled\")) return;\n    b.addEventListener(\"click\", function(){ startLesson(b.getAttribute(\"data-lesson\")); });\n  });\n}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 DERS \u00c7ALI\u015eTIRICI \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\nvar run = null;\nfunction findLesson(id){\n  for(var i=0;i<CONTENT.units.length;i++){ var ls=CONTENT.units[i].lessons;\n    for(var j=0;j<ls.length;j++){ if(ls[j].id===id) return ls[j]; } }\n  return null;\n}\nfunction startLesson(id){\n  var lesson = findLesson(id);\n  if(!lesson) return;\n  run = { lesson:lesson, i:0, hearts:MAX_HEARTS, correct:0, answered:false, ok:false };\n  renderExercise();\n}\n\nfunction renderExercise(){\n  var L=run.lesson, ex=L.exercises[run.i];\n  run.answered=false; run.ok=false; run.payload=null;\n  var pct = Math.round((run.i\/L.exercises.length)*100);\n\n  var h='<div class=\"mten-runner\">';\n  h+='<div class=\"mten-run-top\">';\n  h+='<button class=\"mten-x\" id=\"mten-x\">\u2715<\/button>';\n  h+='<div class=\"mten-bar\"><div class=\"mten-bar-fill\" style=\"width:'+pct+'%\"><\/div><\/div>';\n  h+='<div class=\"mten-run-hearts\">\u2764 '+run.hearts+'<\/div>';\n  h+='<\/div>';\n  h+='<div class=\"mten-q\" id=\"mten-q\"><\/div>';\n  h+='<div class=\"mten-foot\" id=\"mten-foot\"><\/div>';\n  h+='<\/div>';\n  view.innerHTML=h;\n  document.getElementById(\"mten-x\").addEventListener(\"click\", function(){\n    if(confirm(\"Dersten \u00e7\u0131kmak istiyor musun? \u0130lerlemen kaydedilmez.\")) renderPath();\n  });\n\n  var q=document.getElementById(\"mten-q\");\n  var foot=document.getElementById(\"mten-foot\");\n  RENDER[ex.type](ex,q,foot);\n}\n\n\/* footer buton kurucu *\/\nfunction setCheck(foot, label, enabledGetter, onCheck){\n  var btn=el('<button class=\"mten-cta\" disabled>'+label+'<\/button>');\n  foot.innerHTML=''; foot.appendChild(btn);\n  var iv=setInterval(function(){ btn.disabled=!enabledGetter(); },120);\n  btn.addEventListener(\"click\", function(){\n    if(btn.disabled) return; clearInterval(iv); onCheck();\n  });\n  run._iv=iv;\n}\nfunction feedback(foot, ok, correctText){\n  run.answered=true; run.ok=ok;\n  if(ok){ run.correct++; }\n  else { run.hearts--; }\n  var fb=el('<div class=\"mten-fb '+(ok?'good':'bad')+'\">'+\n    '<div class=\"mten-fb-ic\">'+(ok?'\ud83c\udf1f':'\ud83d\udcab')+'<\/div>'+\n    '<div class=\"mten-fb-txt\"><b>'+(ok?'Harika!':'Tekrar dene fikrini akl\u0131nda tut')+'<\/b>'+\n    (correctText?'<span>Do\u011frusu: '+correctText+'<\/span>':'')+'<\/div><\/div>');\n  var cont=el('<button class=\"mten-cta\">Devam \u2192<\/button>');\n  foot.innerHTML=''; foot.appendChild(cont); foot.appendChild(fb);\n  cont.addEventListener(\"click\", nextExercise);\n  save();\n}\nfunction nextExercise(){\n  if(run.hearts<=0){ return renderFail(); }\n  run.i++;\n  if(run.i>=run.lesson.exercises.length){ return renderComplete(); }\n  renderExercise();\n}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 ALI\u015eTIRMA RENDERER'LARI \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\nvar RENDER = {};\n\n\/* TEACH \u2014 \u00f6\u011fretim kart\u0131 *\/\nRENDER.teach=function(ex,q,foot){\n  q.innerHTML='<div class=\"mten-q-kind\">Yeni kelime <small>Dinle ve tekrar et<\/small><\/div>'+\n    '<div class=\"mten-teach\">'+\n    '<div class=\"mten-teach-emoji\">'+(ex.emoji||'\u2728')+'<\/div>'+\n    '<div class=\"mten-teach-en\">'+ex.en+'<\/div>'+\n    '<div class=\"mten-teach-tr\">'+ex.tr+'<\/div>'+\n    '<div style=\"margin-top:14px\"><button class=\"mten-speak mten-big\" id=\"mten-sp\"><span class=\"mten-wave\">\ud83d\udd0a<\/span> Dinle<\/button><\/div>'+\n    '<div class=\"mten-teach-ex\"><div class=\"en\">'+ex.ex_en+'<\/div><div class=\"tr\">'+ex.ex_tr+'<\/div><\/div>'+\n    '<\/div>';\n  q.querySelector(\"#mten-sp\").addEventListener(\"click\",function(){ speak(ex.en); });\n  speak(ex.en);\n  var cont=el('<button class=\"mten-cta\">Anlad\u0131m \u2192<\/button>');\n  foot.innerHTML=''; foot.appendChild(cont);\n  cont.addEventListener(\"click\", function(){ run.correct++; nextExercise(); });\n};\n\n\/* CHOOSE \u2014 nesne\/kelime \u2192 se\u00e7enek *\/\nRENDER.choose=function(ex,q,foot){\n  var sel={v:null};\n  var promptHtml = ex.showKind===\"emoji\"\n    ? '<div class=\"mten-prompt-emoji\">'+ex.show+'<\/div>'\n    : '<div class=\"mten-prompt-word\">'+ex.show+'<\/div>';\n  var opts=shuffle(ex.options);\n  var h='<div class=\"mten-q-kind\">'+ex.question+'<\/div>'+promptHtml+'<div class=\"mten-opts\">';\n  opts.forEach(function(o){ h+='<button class=\"mten-opt\" data-v=\"'+o.replace(\/\"\/g,'&quot;')+'\">'+o+'<\/button>'; });\n  h+='<\/div>';\n  q.innerHTML=h;\n  q.querySelectorAll(\".mten-opt\").forEach(function(b){\n    b.addEventListener(\"click\",function(){\n      if(run.answered) return;\n      q.querySelectorAll(\".mten-opt\").forEach(function(x){x.classList.remove(\"sel\");});\n      b.classList.add(\"sel\"); sel.v=b.getAttribute(\"data-v\");\n    });\n  });\n  setCheck(foot,\"Kontrol et\",function(){return sel.v!==null;},function(){\n    var ok=sel.v===ex.answer;\n    q.querySelectorAll(\".mten-opt\").forEach(function(x){\n      x.disabled=true;\n      if(x.getAttribute(\"data-v\")===ex.answer) x.classList.add(\"ok\");\n      else if(x.classList.contains(\"sel\")) x.classList.add(\"no\");\n    });\n    feedback(foot, ok, ok?null:ex.answer);\n  });\n};\n\n\/* LISTEN \u2014 duy \u2192 anla *\/\nRENDER.listen=function(ex,q,foot){\n  var sel={v:null};\n  var opts=shuffle(ex.options);\n  var h='<div class=\"mten-q-kind\">'+(ex.question||\"Ne duydun?\")+'<\/div>'+\n    '<div style=\"text-align:center\"><button class=\"mten-speak mten-big\" id=\"mten-sp\"><span class=\"mten-wave\">\ud83d\udd0a<\/span> Tekrar dinle<\/button><\/div>'+\n    '<div class=\"mten-opts\" style=\"margin-top:16px\">';\n  opts.forEach(function(o){ h+='<button class=\"mten-opt\" data-v=\"'+o.replace(\/\"\/g,'&quot;')+'\">'+o+'<\/button>'; });\n  h+='<\/div>';\n  q.innerHTML=h;\n  q.querySelector(\"#mten-sp\").addEventListener(\"click\",function(){ speak(ex.say); });\n  speak(ex.say);\n  q.querySelectorAll(\".mten-opt\").forEach(function(b){\n    b.addEventListener(\"click\",function(){\n      if(run.answered) return;\n      q.querySelectorAll(\".mten-opt\").forEach(function(x){x.classList.remove(\"sel\");});\n      b.classList.add(\"sel\"); sel.v=b.getAttribute(\"data-v\");\n    });\n  });\n  setCheck(foot,\"Kontrol et\",function(){return sel.v!==null;},function(){\n    var ok=sel.v===ex.answer;\n    q.querySelectorAll(\".mten-opt\").forEach(function(x){\n      x.disabled=true;\n      if(x.getAttribute(\"data-v\")===ex.answer) x.classList.add(\"ok\");\n      else if(x.classList.contains(\"sel\")) x.classList.add(\"no\");\n    });\n    feedback(foot, ok, ok?null:ex.answer);\n  });\n};\n\n\/* FILL \u2014 bo\u015fluk doldur *\/\nRENDER.fill=function(ex,q,foot){\n  var sel={v:null};\n  var sent=ex.tokens.map(function(t){ return t===\"___\" ? '<span class=\"mten-blank\" id=\"mten-blank\">?<\/span>' : t; }).join(\" \");\n  var opts=shuffle(ex.options);\n  var h='<div class=\"mten-q-kind\">Bo\u015flu\u011fu doldur<\/div>'+\n    '<div class=\"mten-sentence\">'+sent+'<\/div>'+\n    '<div class=\"mten-tr-hint\">'+ex.tr+'<\/div>'+\n    '<div class=\"mten-opts one-col\">';\n  opts.forEach(function(o){ h+='<button class=\"mten-opt\" data-v=\"'+o+'\">'+o+'<\/button>'; });\n  h+='<\/div>';\n  q.innerHTML=h;\n  q.querySelectorAll(\".mten-opt\").forEach(function(b){\n    b.addEventListener(\"click\",function(){\n      if(run.answered) return;\n      q.querySelectorAll(\".mten-opt\").forEach(function(x){x.classList.remove(\"sel\");});\n      b.classList.add(\"sel\"); sel.v=b.getAttribute(\"data-v\");\n      var bl=document.getElementById(\"mten-blank\"); if(bl) bl.textContent=sel.v;\n    });\n  });\n  setCheck(foot,\"Kontrol et\",function(){return sel.v!==null;},function(){\n    var ok=sel.v===ex.answer;\n    q.querySelectorAll(\".mten-opt\").forEach(function(x){\n      x.disabled=true;\n      if(x.getAttribute(\"data-v\")===ex.answer) x.classList.add(\"ok\");\n      else if(x.classList.contains(\"sel\")) x.classList.add(\"no\");\n    });\n    var bl=document.getElementById(\"mten-blank\"); if(bl) bl.textContent=ex.answer;\n    feedback(foot, ok, ok?null:ex.answer);\n  });\n};\n\n\/* ORDER \u2014 c\u00fcmleyi diz *\/\nRENDER.order=function(ex,q,foot){\n  var built=[];\n  var bank=shuffle(ex.answer.concat(ex.extra||[]));\n  var h='<div class=\"mten-q-kind\">C\u00fcmleyi diz<\/div>'+\n    '<div class=\"mten-tr-hint\">'+ex.tr+'<\/div>'+\n    '<div class=\"mten-build\" id=\"mten-build\"><\/div>'+\n    '<div class=\"mten-bank\" id=\"mten-bank\"><\/div>';\n  q.innerHTML=h;\n  var bankEl=q.querySelector(\"#mten-bank\"), buildEl=q.querySelector(\"#mten-build\");\n  function draw(){\n    buildEl.innerHTML=''; bankEl.innerHTML='';\n    built.forEach(function(w,idx){\n      var c=el('<button class=\"mten-chip\">'+w+'<\/button>');\n      c.addEventListener(\"click\",function(){ if(run.answered) return; built.splice(idx,1); draw(); });\n      buildEl.appendChild(c);\n    });\n    bank.forEach(function(w,idx){\n      var used = countUsed(w) >= countBank(w);\n      var c=el('<button class=\"mten-chip'+(used?' used':'')+'\">'+w+'<\/button>');\n      c.addEventListener(\"click\",function(){ if(run.answered) return; built.push(w); draw(); });\n      bankEl.appendChild(c);\n    });\n  }\n  function countUsed(w){ return built.filter(function(x){return x===w;}).length; }\n  function countBank(w){ return bank.filter(function(x){return x===w;}).length; }\n  draw();\n  setCheck(foot,\"Kontrol et\",function(){return built.length===ex.answer.length;},function(){\n    var ok = built.join(\" \")===ex.answer.join(\" \");\n    feedback(foot, ok, ok?null:ex.answer.join(\" \"));\n  });\n};\n\n\/* MATCH \u2014 e\u015fle\u015ftir *\/\nRENDER.match=function(ex,q,foot){\n  var left=shuffle(ex.pairs.map(function(p){return p[0];}));\n  var right=shuffle(ex.pairs.map(function(p){return p[1];}));\n  var map={}; ex.pairs.forEach(function(p){ map[p[0]]=p[1]; });\n  var selL={b:null,v:null}, remaining=ex.pairs.length;\n  var h='<div class=\"mten-q-kind\">E\u015fle\u015ftir <small>\u00d6nce soldan, sonra sa\u011fdan se\u00e7<\/small><\/div><div class=\"mten-match\">';\n  h+='<div class=\"mten-match-col\" id=\"mten-L\">';\n  left.forEach(function(v){ h+='<button class=\"mten-match-btn\" data-v=\"'+v+'\">'+v+'<\/button>'; });\n  h+='<\/div><div class=\"mten-match-col\" id=\"mten-R\">';\n  right.forEach(function(v){ h+='<button class=\"mten-match-btn\" data-v=\"'+v.replace(\/\"\/g,'&quot;')+'\">'+v+'<\/button>'; });\n  h+='<\/div><\/div>';\n  q.innerHTML=h;\n  var Lbtns=q.querySelectorAll(\"#mten-L .mten-match-btn\");\n  var Rbtns=q.querySelectorAll(\"#mten-R .mten-match-btn\");\n  Lbtns.forEach(function(b){ b.addEventListener(\"click\",function(){\n    if(b.classList.contains(\"done\")) return;\n    Lbtns.forEach(function(x){x.classList.remove(\"sel\");});\n    b.classList.add(\"sel\"); selL.b=b; selL.v=b.getAttribute(\"data-v\");\n    speak(selL.v);\n  });});\n  Rbtns.forEach(function(b){ b.addEventListener(\"click\",function(){\n    if(b.classList.contains(\"done\")||!selL.b) return;\n    var want=map[selL.v];\n    if(b.getAttribute(\"data-v\")===want){\n      b.classList.add(\"done\"); selL.b.classList.add(\"done\");\n      selL.b=null; selL.v=null; remaining--;\n      if(remaining<=0){ feedback(foot,true,null); }\n    } else {\n      b.classList.add(\"err\"); var bb=b;\n      setTimeout(function(){ bb.classList.remove(\"err\"); },380);\n      if(!run.answered){ run.hearts=Math.max(0,run.hearts-0); } \/\/ e\u015fle\u015ftirmede kalp d\u00fc\u015f\u00fcrm\u00fcyoruz, sadece tekrar dene\n    }\n  });});\n  \/\/ e\u015fle\u015ftirmede alt buton yok; otomatik feedback\n  foot.innerHTML='<button class=\"mten-cta skip\" id=\"mten-skip\">T\u00fcm\u00fcn\u00fc e\u015fle\u015ftir \u2191<\/button>';\n  foot.querySelector(\"#mten-skip\").disabled=true;\n};\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 SONU\u00c7 \/ BA\u015eARISIZ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\nfunction renderComplete(){\n  var L=run.lesson;\n  var firstTime = !state.done[L.id];\n  if(firstTime){ state.done[L.id]=true; state.xp=(state.xp||0)+L.xp; save(); }\n  var total=L.exercises.length;\n  var acc=Math.round((run.correct\/total)*100);\n  window.speechSynthesis && window.speechSynthesis.cancel();\n  var h='<div class=\"mten-runner\"><div class=\"mten-result\">'+\n    '<div class=\"big\">\ud83c\udf1f<\/div>'+\n    '<h2>Ders tamamland\u0131!<\/h2>'+\n    '<p>'+L.label+'<\/p>'+\n    '<div class=\"stats\">'+\n    '<div class=\"stat-box\"><div class=\"v\">+'+(firstTime?L.xp:0)+'<\/div><div class=\"l\">XP<\/div><\/div>'+\n    '<div class=\"stat-box\"><div class=\"v\">%'+acc+'<\/div><div class=\"l\">Do\u011fruluk<\/div><\/div>'+\n    '<\/div>'+\n    '<button class=\"mten-cta\" id=\"mten-done\">Devam et<\/button>'+\n    '<\/div><\/div>';\n  view.innerHTML=h;\n  document.getElementById(\"mten-done\").addEventListener(\"click\", renderPath);\n}\nfunction renderFail(){\n  window.speechSynthesis && window.speechSynthesis.cancel();\n  var L=run.lesson;\n  var h='<div class=\"mten-runner\"><div class=\"mten-result\">'+\n    '<div class=\"big\">\ud83d\udc94<\/div>'+\n    '<h2>Kalpler bitti<\/h2>'+\n    '<p>Sorun de\u011fil \u2014 tekrar denemek \u00f6\u011frenmenin par\u00e7as\u0131.<\/p>'+\n    '<div style=\"margin-top:18px\"><button class=\"mten-cta\" id=\"mten-retry\">Tekrar dene<\/button><\/div>'+\n    '<div style=\"margin-top:10px\"><button class=\"mten-cta skip\" id=\"mten-back\">Yol haritas\u0131na d\u00f6n<\/button><\/div>'+\n    '<\/div><\/div>';\n  view.innerHTML=h;\n  document.getElementById(\"mten-retry\").addEventListener(\"click\", function(){ startLesson(L.id); });\n  document.getElementById(\"mten-back\").addEventListener(\"click\", renderPath);\n}\n\n\/* ba\u015flat *\/\nrenderPath();\n\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":194118654,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"_wpcom_ai_launchpad_about_page":false,"_wpcom_ai_launchpad_gallery_page":false,"footnotes":""},"class_list":["post-5631","page","type-page","status-publish","hentry"],"jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/PdUYMd-1sP","jetpack-related-posts":[{"id":3476,"url":"https:\/\/moonshinein.me\/en\/aslanbugun\/","url_meta":{"origin":5631,"position":0},"title":"ASLAN (BUG\u00dcN)","author":"aymabedi","date":"24 March 2025","format":false,"excerpt":"T\u00fcrk\u00e7e \u0130ngilizce [ezhp_ezhoroscope sign=\"leo\" language=\"en\"]","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3503,"url":"https:\/\/moonshinein.me\/en\/koc-bugun\/","url_meta":{"origin":5631,"position":1},"title":"KO\u00c7 (BUG\u00dcN)","author":"aymabedi","date":"24 March 2025","format":false,"excerpt":"T\u00fcrk\u00e7e \u0130ngilizce [ezhp_ezhoroscope sign=\"aries\" language=\"en\"]","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3508,"url":"https:\/\/moonshinein.me\/en\/ikizler-bugun\/","url_meta":{"origin":5631,"position":2},"title":"\u0130K\u0130ZLER (BUG\u00dcN)","author":"aymabedi","date":"24 March 2025","format":false,"excerpt":"T\u00fcrk\u00e7e \u0130ngilizce [ezhp_ezhoroscope sign=\"gemini\" language=\"en\"]","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3509,"url":"https:\/\/moonshinein.me\/en\/boga-bugun\/","url_meta":{"origin":5631,"position":3},"title":"BO\u011eA (BUG\u00dcN)","author":"aymabedi","date":"24 March 2025","format":false,"excerpt":"T\u00fcrk\u00e7e \u0130ngilizce [ezhp_ezhoroscope sign=\"taurus\" language=\"en\"]","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3513,"url":"https:\/\/moonshinein.me\/en\/yengec-bugun\/","url_meta":{"origin":5631,"position":4},"title":"YENGE\u00c7 (BUG\u00dcN)","author":"aymabedi","date":"24 March 2025","format":false,"excerpt":"T\u00fcrk\u00e7e \u0130ngilizce [ezhp_ezhoroscope sign=\"cancer\" language=\"en\"]","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3516,"url":"https:\/\/moonshinein.me\/en\/basak-bugun\/","url_meta":{"origin":5631,"position":5},"title":"BA\u015eAK (BUG\u00dcN)","author":"aymabedi","date":"24 March 2025","format":false,"excerpt":"T\u00fcrk\u00e7e \u0130ngilizce [ezhp_ezhoroscope sign=\"virgo\" language=\"en\"]","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/moonshinein.me\/en\/wp-json\/wp\/v2\/pages\/5631","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/moonshinein.me\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/moonshinein.me\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/moonshinein.me\/en\/wp-json\/wp\/v2\/users\/194118654"}],"replies":[{"embeddable":true,"href":"https:\/\/moonshinein.me\/en\/wp-json\/wp\/v2\/comments?post=5631"}],"version-history":[{"count":2,"href":"https:\/\/moonshinein.me\/en\/wp-json\/wp\/v2\/pages\/5631\/revisions"}],"predecessor-version":[{"id":5635,"href":"https:\/\/moonshinein.me\/en\/wp-json\/wp\/v2\/pages\/5631\/revisions\/5635"}],"wp:attachment":[{"href":"https:\/\/moonshinein.me\/en\/wp-json\/wp\/v2\/media?parent=5631"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}