@font-face{font-family:'Preeti';src:url('../fonts/Preeti.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}:root{--ts-bg:#f6f8fb;--ts-panel:#ffffff;--ts-panel-2:#f8fbff;--ts-ink:#0f172a;--ts-muted:#5c6b82;--ts-soft:#e8eef7;--ts-line:#dbe5f1;--ts-blue:#2563eb;--ts-cyan:#0891b2;--ts-good:#16a34a;--ts-bad:#dc2626;--ts-warn:#f97316;--ts-shadow:0 18px 45px rgba(15,23,42,0.09)}html[data-theme="dark"]{--ts-bg:#0d1526;--ts-panel:#111b2f;--ts-panel-2:#162033;--ts-ink:#eef4fb;--ts-muted:#b4c0d3;--ts-soft:#24334d;--ts-line:#314159;--ts-blue:#60a5fa;--ts-cyan:#22d3ee;--ts-shadow:0 18px 45px rgba(0,0,0,0.28)}body{background:radial-gradient(circle at 12% 0%,rgba(37,99,235,0.1),transparent 28rem),radial-gradient(circle at 90% 10%,rgba(8,145,178,0.1),transparent 24rem),var(--ts-bg);color:var(--ts-ink);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.ts-page{width:min(1120px,calc(100% - 24px));margin:0 auto;padding:10px 0 34px}.ts-header{text-align:center;max-width:1120px;margin:0 auto 8px}.ts-header h1{margin:0;font-size:clamp(1.85rem,3.4vw,2.75rem);line-height:1;letter-spacing:0;color:var(--ts-ink)}.ts-header p{margin:6px 0 0;color:var(--ts-muted);font-size:0.92rem;line-height:1.45;text-align:left}.ts-pill-row,.ts-actions,.ts-controls,.ts-dashboard,.ts-topbar,.ts-brandline,.ts-keyboard-head,.ts-legend,.ts-game-head,.ts-game-score,.ts-progressline{display:flex;align-items:center}.ts-legend span,.ts-pill-row button,.ts-segment button,.ts-toggle,.ts-btn,.ts-icon-btn{min-height:34px;border-radius:8px;border:1px solid var(--ts-line);background:var(--ts-panel);color:var(--ts-ink);font-weight:800}.ts-shell{position:relative;background:rgba(255,255,255,0.86);border:1px solid rgba(148,163,184,0.32);border-radius:8px;box-shadow:var(--ts-shadow);overflow:visible}.ts-sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0,0,0,0) !important;white-space:nowrap !important;border:0 !important}html[data-theme="dark"] .ts-shell{background:rgba(17,27,47,0.92)}.ts-topbar{justify-content:space-between;gap:16px;padding:9px 16px;background:linear-gradient(135deg,rgba(37,99,235,0.12),rgba(8,145,178,0.08));border-bottom:1px solid var(--ts-line)}.ts-brandline{gap:12px}.ts-tool-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:8px;background:linear-gradient(135deg,#2563eb,#0891b2);color:#fff;flex:0 0 auto}.ts-tool-icon svg,.ts-icon-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.ts-brandline h2{margin:0;font-size:0.96rem}.ts-brandline p,.ts-keyboard-head small,.ts-game-head small,.ts-panel-head small,.ts-mode-note,.ts-hint,.ts-preview,.ts-content p,.ts-info-grid p{color:var(--ts-muted)}.ts-brandline p{margin:3px 0 0;font-size:0.82rem}.ts-actions{gap:8px}.ts-btn,.ts-icon-btn,.ts-segment button,.ts-pill-row button,.ts-lesson,.ts-toggle{cursor:pointer;transition:transform 0.16s ease,border-color 0.16s ease,background 0.16s ease,color 0.16s ease,box-shadow 0.16s ease}.ts-btn{padding:0 14px;font-size:0.82rem}.ts-btn-ghost{color:var(--ts-blue)}.ts-icon-btn{width:36px;padding:0;display:grid;place-items:center}.ts-icon-btn .icon-sun{display:none}html[data-theme="dark"] .ts-icon-btn .icon-moon{display:none}html[data-theme="dark"] .ts-icon-btn .icon-sun{display:block}.ts-controls{flex-wrap:wrap;gap:10px;padding:7px 14px;border-bottom:1px solid var(--ts-line);background:var(--ts-panel)}.ts-hidden-input{position:fixed;left:-20px;top:-20px;width:1px;height:1px;opacity:0;border:0;pointer-events:none}.ts-segment{display:inline-grid;grid-auto-flow:column;gap:3px;padding:3px;border:1px solid var(--ts-line);border-radius:9px;background:var(--ts-panel-2)}.ts-segment button,.ts-pill-row button{border:0;padding:0 10px;background:transparent;color:var(--ts-muted);font-size:0.74rem}.ts-segment button.is-active,.ts-pill-row button.is-active{color:#fff;background:linear-gradient(135deg,#2563eb,#0891b2);box-shadow:0 8px 20px rgba(37,99,235,0.22)}.ts-toggle{position:relative;display:inline-flex;gap:8px;padding:0 10px;font-size:0.74rem;color:var(--ts-muted);align-items:center}.ts-toggle input{appearance:none;-webkit-appearance:none;width:16px;height:16px;display:grid;place-items:center;margin:0;border:1.5px solid #b7c5d8;border-radius:4px;background:#fff;box-shadow:inset 0 1px 0 rgba(15,23,42,0.04);cursor:pointer}.ts-toggle input::before{content:"";width:8px;height:4px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) scale(0);transform-origin:center;transition:transform 0.12s ease}.ts-toggle input:checked{border-color:var(--ts-blue);background:linear-gradient(135deg,var(--ts-blue),var(--ts-cyan))}.ts-toggle input:checked::before{transform:rotate(-45deg) scale(1)}.ts-toggle input:focus-visible{outline:3px solid rgba(37,99,235,0.2);outline-offset:2px}.ts-dashboard{display:grid;grid-template-columns:repeat(6,minmax(110px,1fr));gap:1px;background:var(--ts-line);border:1px solid var(--ts-line);border-radius:8px;overflow:hidden;margin-bottom:6px}.ts-stat{background:var(--ts-panel-2);padding:7px 11px;min-height:48px}.ts-stat span{display:block;margin-bottom:4px;color:var(--ts-muted);font-size:0.64rem;font-weight:800;letter-spacing:0.08em;text-transform:uppercase}.ts-stat strong{font-size:1.3rem;line-height:1;color:var(--ts-ink)}.ts-workgrid{display:grid;grid-template-columns:255px minmax(0,1fr);gap:0;min-height:0}.ts-workgrid.is-wide{grid-template-columns:1fr}.ts-workgrid.is-wide .ts-practice{width:100%}.ts-lessons{border-right:1px solid var(--ts-line);background:var(--ts-panel-2);padding:10px 12px;display:flex;flex-direction:column;min-height:0;height:256px}.ts-panel-head,.ts-keyboard-head,.ts-game-head{justify-content:space-between;gap:12px}.ts-panel-head span,.ts-keyboard-head span,.ts-game-head span{font-weight:900}.ts-lesson-list{display:grid;gap:6px;margin-top:8px;overflow-y:auto;max-height:214px;padding-right:2px;scrollbar-width:thin;scrollbar-color:var(--ts-line) transparent}.ts-lesson-list::-webkit-scrollbar{width:4px}.ts-lesson-list::-webkit-scrollbar-track{background:transparent}.ts-lesson-list::-webkit-scrollbar-thumb{background:var(--ts-line);border-radius:99px}.ts-lesson-list::-webkit-scrollbar-thumb:hover{background:var(--ts-muted)}.ts-lesson{width:100%;text-align:left;border:1px solid var(--ts-line);border-radius:8px;padding:8px 10px;background:var(--ts-panel);color:var(--ts-ink)}.ts-lesson:hover,.ts-btn:hover,.ts-icon-btn:hover,.ts-toggle:hover{transform:translateY(-1px);border-color:rgba(37,99,235,0.36)}.ts-lesson.is-active{border-color:rgba(37,99,235,0.4);box-shadow:inset 3px 0 0 var(--ts-blue);background:linear-gradient(90deg,rgba(37,99,235,0.08),transparent)}.ts-lesson strong{display:block;font-size:0.8rem;line-height:1.1}.ts-lesson span{display:block;margin-top:2px;color:var(--ts-muted);font-size:0.68rem;line-height:1.15}.ts-lesson small{display:inline-block;margin-top:8px;color:var(--ts-good);font-weight:900;font-size:0.68rem;text-transform:uppercase;letter-spacing:0.08em}.ts-practice{padding:8px 10px;min-width:0}.ts-timedbar{display:none;justify-content:space-between;align-items:center;gap:8px;margin-left:auto;padding:3px;border:1px solid var(--ts-line);border-radius:8px;background:var(--ts-panel-2);font-size:0.72rem;font-weight:800}.ts-timedbar.is-visible{display:flex}.ts-pill-row{gap:3px}.ts-pill-row button{border:1px solid var(--ts-line);background:var(--ts-panel)}.ts-text-card{height:176px;width:100%;outline:0;border:1px solid var(--ts-line);border-radius:8px;background:var(--ts-panel);padding:10px 14px;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(255,255,255,0.35)}.ts-text-card:focus{border-color:rgba(37,99,235,0.45);box-shadow:0 0 0 4px rgba(37,99,235,0.08)}.ts-mode-note{display:flex;justify-content:space-between;gap:10px;margin-bottom:7px;font-size:0.68rem;font-weight:900;text-transform:uppercase;letter-spacing:0.08em}.ts-target{min-height:72px;overflow:visible;font-size:clamp(0.98rem,1.35vw,1.22rem);line-height:1.42;letter-spacing:0;color:var(--ts-ink);word-break:break-word;text-align:center}.ts-target.is-preeti{text-align:center}.ts-target.is-english{font-size:clamp(1.18rem,1.7vw,1.55rem);line-height:1.5}.ts-target.is-english .ts-word-unit{align-items:center;vertical-align:baseline}.ts-target.is-english .ts-token{display:inline-flex;flex-direction:row;align-items:baseline;justify-content:center;min-width:auto;padding:2px 4px;white-space:nowrap}.ts-target.is-english .ts-pc{display:inline-block;min-width:0;line-height:1.12}.ts-word-unit{position:relative;display:inline-flex;align-items:flex-start;gap:0.18em;margin-right:0.76em;margin-bottom:0.28em;padding:3px 5px 5px;border-radius:7px;vertical-align:top}.ts-word-unit.is-word-current{background:rgba(37,99,235,0.075);box-shadow:inset 0 0 0 1px rgba(37,99,235,0.16)}.ts-word-unit.is-word-current::after{content:"";position:absolute;left:5px;right:5px;bottom:1px;height:2px;border-radius:99px;background:var(--ts-blue)}.ts-space-unit{display:inline;font-size:0.88em;font-family:system-ui,sans-serif;font-weight:600;color:var(--ts-muted);opacity:0.35;margin:0 0.1em;vertical-align:top}.ts-target.is-preeti .ts-space-unit{font-size:1.5em}.ts-space-unit::before{content:"␣"}.ts-space-unit.is-space-current{color:var(--ts-blue);opacity:1}.ts-space-unit.is-space-correct{color:var(--ts-good);opacity:0.8}.ts-space-unit.is-space-wrong{color:var(--ts-bad);opacity:1}.ts-token{position:relative;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;min-width:1.15em;border-radius:6px;padding:1px 3px;color:var(--ts-ink)}.ts-target.is-preeti .ts-token{min-width:1.5em;width:auto}.ts-target.is-unicode .ts-token{min-width:3.2em;padding:2px 6px}.ts-dev-main{display:block;font-weight:900;line-height:1.08}.ts-token small{display:block;margin-top:1px;color:var(--ts-muted);font-size:0.5em;line-height:1;font-weight:800;text-align:center}.ts-token.is-partial{background:rgba(37,99,235,0.08)}.ts-token.is-correct{background:rgba(22,163,74,0.08)}.ts-token.is-wrong{background:rgba(220,38,38,0.12)}.ts-pc{display:inline}.ts-pc-ok{color:var(--ts-good)}.ts-pc-err{color:var(--ts-bad)}.ts-preeti-char .ts-pc,.ts-preeti-char .ts-pc-ok,.ts-preeti-char .ts-pc-err{display:inline;font-family:inherit}.ts-token.is-current::before{content:"";position:absolute;left:-1px;top:0.2em;width:2px;height:1.25em;border-radius:99px;background:var(--ts-blue);animation:ts-caret 0.9s steps(2,start) infinite}.ts-char{position:relative;display:inline-block;min-width:0.42em;border-radius:6px;padding:0 2px;vertical-align:top}.ts-target.is-preeti .ts-char{width:2.15em;min-width:2.15em}.ts-char.is-space{width:1.3em;min-width:1.3em}.ts-key-main{display:block;min-width:100%;font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;font-size:0.92em;line-height:1.05;font-weight:900;text-align:center}.ts-char small{display:block;margin-top:1px;color:var(--ts-muted);font-size:0.48em;line-height:1;font-weight:800;text-align:center}.ts-char.is-correct{color:var(--ts-good);background:rgba(22,163,74,0.08)}.ts-char.is-wrong{color:var(--ts-bad);background:rgba(220,38,38,0.12)}.ts-char.is-current::before{content:"";position:absolute;left:-1px;top:0.2em;width:2px;height:1.25em;border-radius:99px;background:var(--ts-blue);animation:ts-caret 0.9s steps(2,start) infinite}@keyframes ts-caret{50%{opacity:0}}.ts-preview{display:none;min-height:0;margin:0;padding:0;border:1px dashed var(--ts-line);border-radius:8px;background:var(--ts-panel-2);font-size:1rem;line-height:1.6}.ts-hint{display:none}.ts-progressline{display:none}.ts-progressline #statusText{display:none}.ts-game{display:none;height:176px;border:1px solid var(--ts-line);border-radius:8px;background:var(--ts-panel);overflow:hidden}.ts-game.is-visible{display:flex;flex-direction:column}.ts-game-head{padding:8px 11px;border-bottom:1px solid var(--ts-line);background:var(--ts-panel-2)}.ts-game-score{gap:10px;color:var(--ts-muted);font-size:0.72rem;font-weight:800}.ts-game-score strong{color:var(--ts-ink);font-size:0.95rem}.ts-lives{color:#e11d48;letter-spacing:0.08em;white-space:nowrap}.ts-game-stage{position:relative;flex:1 1 auto;min-height:0;overflow:hidden;background:linear-gradient(90deg,rgba(34,197,94,0.13),transparent 24%,transparent 72%,rgba(248,113,113,0.12)),linear-gradient(180deg,rgba(15,23,42,0.08),rgba(15,23,42,0.02)),url("../images/typeshala-game/battlefield-bg.jpg") center 54% / cover no-repeat,var(--ts-panel)}.ts-classic-arena{position:absolute;inset:0;overflow:hidden;isolation:isolate}.ts-classic-arena::before{content:"";position:absolute;left:0;right:0;bottom:0;height:42%;background:linear-gradient(180deg,transparent,rgba(120,53,15,0.18));pointer-events:none}.ts-classic-arena.is-miss-flash{animation:ts-miss-flash 0.22s ease-out}.ts-game-over{position:absolute;z-index:9;left:50%;top:50%;width:min(300px,calc(100% - 36px));padding:18px 22px;border:1px solid rgba(248,250,252,0.36);border-radius:12px;background:linear-gradient(145deg,rgba(15,23,42,0.92),rgba(30,41,59,0.88));color:#fff;text-align:center;box-shadow:0 18px 45px rgba(15,23,42,0.36),0 0 0 999px rgba(15,23,42,0.28);transform:translate3d(-50%,-50%,0);animation:ts-game-over-pop 0.34s cubic-bezier(.2,.85,.2,1.18)}.ts-game-over strong{display:block;font-size:1.38rem;line-height:1;letter-spacing:0.02em}.ts-game-over span{display:block;margin-top:8px;font-size:0.9rem;font-weight:800;color:#fde68a}.ts-game-over small{display:block;margin-top:5px;color:#bfdbfe;font-size:0.76rem;font-weight:800}.ts-ram-sprite,.ts-ravana-sprite{position:absolute;z-index:4;bottom:-8px;pointer-events:none;background-repeat:no-repeat;background-position:center bottom;background-size:contain;filter:drop-shadow(0 8px 10px rgba(15,23,42,0.28))}.ts-ram-sprite{left:8px;width:88px;height:136px;bottom:-18px;background-image:url("../images/typeshala-game/ram-game-clean.png");transform:scaleX(-1);transform-origin:center bottom}.ts-ravana-sprite{right:7px;width:104px;height:128px;bottom:-12px;background-image:url("../images/typeshala-game/rawan-game-clean.png");transform:scaleX(-1);transform-origin:center bottom}.ts-ravana-sprite.is-hit{animation:ts-ravana-hit 0.2s ease-out}.ts-ravana-hp{display:none}.ts-ravana-hp span{display:block;width:100%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#22c55e,#facc15,#ef4444);transform-origin:left center;transform:scaleX(1);transition:transform 0.18s ease-out}.ts-runner-word,.ts-falling-word{position:absolute;left:0;top:0;box-sizing:border-box;z-index:3;width:112px;height:50px;display:block;padding:0;border:0;border-radius:99px;background:transparent;filter:drop-shadow(0 7px 10px rgba(15,23,42,0.24));font-size:1rem;font-weight:900;letter-spacing:0.035em;line-height:1;color:var(--ts-ink);white-space:nowrap;will-change:transform;transition:border-color 0.12s ease,box-shadow 0.12s ease,background 0.12s ease}.ts-runner-word::before,.ts-falling-word::before{content:"";position:absolute;z-index:-1;right:0;top:24px;width:86px;height:20px;background:url("../images/typeshala-game/ravana-arrow.png") right center / contain no-repeat}.ts-runner-label{position:absolute;left:64px;top:0;z-index:1;min-width:36px;max-width:112px;padding:6px 10px;border:1px solid rgba(37,99,235,0.32);border-radius:9px;background:linear-gradient(180deg,#ffffff,#eef6ff);box-shadow:0 7px 16px rgba(15,23,42,0.12);text-align:center;transform:translate3d(-50%,0,0);transition:opacity 0.12s ease-out,transform 0.12s ease-out}.ts-runner-word.is-defended .ts-runner-label{opacity:0;transform:translate3d(-50%,-6px,0) scale3d(0.82,0.82,1)}.ts-runner-word.ts-runner-layout-unicode,.ts-runner-word.ts-runner-layout-english{font-size:0.98rem}.ts-runner-word.ts-runner-layout-english{font-family:"Segoe UI",Arial,system-ui,sans-serif;font-weight:700;letter-spacing:0}.ts-runner-word.ts-runner-layout-english .ts-runner-label{min-width:40px;padding:7px 11px;font-size:1.1rem;font-weight:700;line-height:1.05}.ts-runner-word.ts-runner-layout-preeti{font-size:1.22rem;letter-spacing:0}.ts-runner-word.ts-runner-layout-preeti .ts-runner-label{min-width:40px;padding:7px 11px 6px;font-size:1.34rem;line-height:1.05}.ts-runner-track-a .ts-runner-label{background:linear-gradient(180deg,#ffffff,#eff6ff)}.ts-runner-track-b .ts-runner-label{background:linear-gradient(180deg,#ffffff,#ecfdf5)}.ts-runner-word.is-current{filter:drop-shadow(0 0 0 rgba(37,99,235,0)) drop-shadow(0 9px 12px rgba(15,23,42,0.24))}.ts-runner-word.is-target,.ts-falling-word.is-target{filter:drop-shadow(0 0 8px rgba(249,115,22,0.32)) drop-shadow(0 9px 12px rgba(15,23,42,0.22))}.ts-runner-word.is-current .ts-runner-label{border-color:rgba(37,99,235,0.72);box-shadow:0 0 0 4px rgba(37,99,235,0.13),0 10px 22px rgba(15,23,42,0.12)}.ts-runner-word.is-target .ts-runner-label,.ts-falling-word.is-target .ts-runner-label{border-color:rgba(249,115,22,0.5);box-shadow:0 0 0 4px rgba(249,115,22,0.12)}.ts-runner-word.is-miss .ts-runner-label{border-color:rgba(220,38,38,0.56);background:#fef2f2;box-shadow:0 0 0 4px rgba(220,38,38,0.12)}.ts-runner-word.is-hit{opacity:0;transform-origin:center;transition:opacity 0.14s ease-out,transform 0.14s ease-out}.ts-ram-arrow{position:absolute;z-index:5;left:0;top:0;width:92px;height:22px;pointer-events:none;background:url("../images/typeshala-game/arrow-flight.png") center / contain no-repeat;transform-origin:12px 50%;will-change:transform,opacity}.ts-ravana-arrow{position:absolute;z-index:5;left:0;top:0;width:86px;height:21px;pointer-events:none;background:url("../images/typeshala-game/ravana-arrow.png") center / contain no-repeat;transform-origin:12px 50%;filter:drop-shadow(0 0 6px rgba(239,68,68,0.42));will-change:transform,opacity}.ts-ram-arrow::before{content:"";display:none}.ts-ram-arrow::after{content:"";display:none}.ts-hit-burst{position:absolute;z-index:6;--burst-x:0px;--burst-y:0px;width:104px;height:122px;margin:-61px 0 0 -52px;pointer-events:none;background:url("../images/typeshala-game/arrow-blast.png") center / contain no-repeat;transform:translate3d(var(--burst-x),var(--burst-y),0) scale3d(0.35,0.35,1) rotate(0deg);animation:ts-hit-burst 0.34s ease-out forwards;will-change:transform,opacity}html[data-theme="dark"] .ts-runner-track-a{background:transparent}html[data-theme="dark"] .ts-runner-track-b{background:transparent}html[data-theme="dark"] .ts-runner-word,html[data-theme="dark"] .ts-falling-word{background:transparent;border-color:rgba(96,165,250,0.44);color:#f8fbff;text-shadow:none;box-shadow:0 8px 20px rgba(0,0,0,0.24)}html[data-theme="dark"] .ts-runner-label{border-color:rgba(96,165,250,0.44);background:linear-gradient(180deg,#24314a,#17243a)}html[data-theme="dark"] .ts-runner-word.is-current{border-color:rgba(147,197,253,0.78);box-shadow:none;filter:drop-shadow(0 8px 12px rgba(0,0,0,0.28))}html[data-theme="dark"] .ts-runner-word.is-target,html[data-theme="dark"] .ts-falling-word.is-target{border-color:rgba(251,146,60,0.78);box-shadow:none;filter:drop-shadow(0 8px 12px rgba(0,0,0,0.28))}html[data-theme="dark"] .ts-runner-word.is-miss{color:#fee2e2}html[data-theme="dark"] .ts-runner-word.is-miss .ts-runner-label{border-color:rgba(248,113,113,0.75);background:#3b1720;box-shadow:0 0 0 4px rgba(248,113,113,0.18)}.ts-game-restart-btn{padding:2px 10px;height:26px;border:1px solid var(--ts-line);border-radius:6px;background:var(--ts-panel);color:var(--ts-blue);font-size:0.72rem;font-weight:800;cursor:pointer;transition:background 0.15s,border-color 0.15s}.ts-game-restart-btn:hover{background:rgba(37,99,235,0.08);border-color:rgba(37,99,235,0.4)}.ts-danger-line{display:none}@keyframes ts-hit-burst{0%{opacity:1;transform:translate3d(var(--burst-x),var(--burst-y),0) scale3d(0.35,0.35,1) rotate(0deg)}100%{opacity:0;transform:translate3d(var(--burst-x),var(--burst-y),0) scale3d(1.4,1.4,1) rotate(40deg)}}@keyframes ts-ravana-hit{0%,100%{transform:translate3d(0,0,0) scaleX(-1)}35%{transform:translate3d(4px,0,0) scaleX(-1)}70%{transform:translate3d(-3px,0,0) scaleX(-1)}}@keyframes ts-ravana-defeat{0%,100%{transform:translate3d(0,0,0) scaleX(-1) scale3d(1,1,1);opacity:1}35%{transform:translate3d(6px,-2px,0) scaleX(-1) scale3d(0.96,0.96,1);opacity:0.62}70%{transform:translate3d(-5px,2px,0) scaleX(-1) scale3d(1.03,1.03,1);opacity:1}}.ts-ravana-sprite.is-defeated{animation:ts-ravana-defeat 0.52s ease-out}@keyframes ts-miss-flash{0%{box-shadow:inset 0 0 0 999px rgba(220,38,38,0)}45%{box-shadow:inset 0 0 0 999px rgba(220,38,38,0.16)}100%{box-shadow:inset 0 0 0 999px rgba(220,38,38,0)}}@keyframes ts-game-over-pop{0%{opacity:0;transform:translate3d(-50%,-50%,0) scale3d(0.78,0.78,1)}70%{opacity:1;transform:translate3d(-50%,-50%,0) scale3d(1.04,1.04,1)}100%{opacity:1;transform:translate3d(-50%,-50%,0) scale3d(1,1,1)}}.ts-game-input{display:none;justify-content:center;align-items:center;gap:12px;min-height:32px;padding:5px 12px;border-top:1px solid var(--ts-line);background:linear-gradient(135deg,rgba(37,99,235,0.08),rgba(8,145,178,0.05));color:var(--ts-blue);font-size:0.86rem;font-weight:800}.ts-game-input strong{color:var(--ts-blue);min-width:140px;min-height:22px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(37,99,235,0.25);border-radius:999px;background:var(--ts-panel);box-shadow:0 0 0 3px rgba(37,99,235,0.07);letter-spacing:0.08em}.ts-keyboard-wrap{margin:6px auto 0;width:fit-content;max-width:calc(100% - 22px);padding:8px 8px 10px;border:1px solid var(--ts-line);border-radius:8px;background:linear-gradient(180deg,rgba(15,23,42,0.04),transparent 26%),var(--ts-panel-2);user-select:none;transition:box-shadow 0.2s}.ts-keyboard-wrap.ts-kbd-float{position:fixed;z-index:1000;bottom:16px;left:50%;transform:translateX(-50%);margin:0;max-width:calc(100vw - 24px);box-shadow:0 8px 40px rgba(0,0,0,0.22),0 2px 12px rgba(0,0,0,0.12)}.ts-keyboard-wrap.ts-kbd-float .ts-keyboard-head{cursor:grab}.ts-keyboard-wrap.ts-kbd-float.ts-kbd-dragging{box-shadow:0 20px 60px rgba(0,0,0,0.3);opacity:0.95}.ts-keyboard-wrap.ts-kbd-float.ts-kbd-dragging .ts-keyboard-head{cursor:grabbing}.ts-keyboard-wrap.ts-kbd-min .ts-keyboard,.ts-keyboard-wrap.ts-kbd-min .ts-legend{display:none}.ts-kbd-placeholder{display:none}.ts-kbd-placeholder.ts-kbd-float-on{display:block;height:190px}.ts-kbd-ctrl{display:inline-flex;align-items:center;gap:3px;margin-left:6px}.ts-kbd-ctrl button{background:none;border:1px solid var(--ts-line);border-radius:5px;color:var(--ts-muted);cursor:pointer;font-size:0.8rem;line-height:1;padding:1px 7px;min-width:22px;text-align:center;transition:background 0.14s,color 0.14s}.ts-kbd-ctrl button:hover{background:var(--ts-panel);color:var(--ts-text)}.ts-kbd-ctrl button.ts-active{background:#2563eb;color:#fff;border-color:transparent}.ts-keyboard-head{margin-bottom:5px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px}.ts-keyboard-head small{display:block;margin-top:2px;font-size:0.74rem}.ts-legend{flex-wrap:wrap;justify-content:flex-end;gap:5px}.ts-keyboard-progress{justify-self:center;color:var(--ts-muted);font-size:0.74rem;font-weight:900;letter-spacing:0.03em;white-space:nowrap}.ts-legend span{gap:6px;min-height:22px;padding:0 6px;background:var(--ts-panel);color:var(--ts-muted);font-size:0.62rem}.ts-legend i{width:9px;height:9px;display:inline-block;border-radius:50%}.fz-lp{background:#fb7185}.fz-lr{background:#f97316}.fz-lm{background:#facc15}.fz-li{background:#22c55e}.fz-ri{background:#14b8a6}.fz-rm{background:#38bdf8}.fz-rr{background:#818cf8}.fz-rp{background:#c084fc}.ts-keyboard{display:flex;flex-direction:column;gap:7px;width:fit-content;max-width:100%;overflow-x:auto;padding:16px 12px;scrollbar-width:thin;border:1px solid rgba(15,23,42,0.2);border-radius:10px;background:linear-gradient(180deg,#263142 0%,#111827 64%,#0b1220 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,0.08),inset 0 -5px 16px rgba(0,0,0,0.42),0 14px 28px rgba(15,23,42,0.14)}.kb-row{display:flex;flex-wrap:nowrap;gap:6px;width:max-content;min-width:1064px;margin:0 auto}.kb-row-1{padding-left:29px}.kb-row-2{padding-left:48px}.kb-row-3{padding-left:70px}.kb-row-4{padding-left:132px}.kb-key{flex:0 0 62px;width:62px;min-height:48px;display:grid;place-items:center;border:1px solid rgba(255,255,255,0.08);border-radius:7px;background:linear-gradient(180deg,#202a3b 0%,#121b2d 55%,#0b1322 100%);color:#fff;font-weight:900;font-size:0.86rem;box-shadow:inset 0 1px 0 rgba(255,255,255,0.11),inset 0 -3px 0 rgba(0,0,0,0.38),0 2px 0 rgba(0,0,0,0.28);text-align:center;line-height:1.05}.kb-key small{display:block;margin-top:4px;color:rgba(255,255,255,0.72);font-size:0.64rem;font-weight:800}.kb-key.zone-lp{border-color:rgba(251,113,133,0.65)}.kb-key.zone-lr{border-color:rgba(249,115,22,0.65)}.kb-key.zone-lm{border-color:rgba(250,204,21,0.65)}.kb-key.zone-li{border-color:rgba(34,197,94,0.65)}.kb-key.zone-ri{border-color:rgba(20,184,166,0.65)}.kb-key.zone-rm{border-color:rgba(56,189,248,0.65)}.kb-key.zone-rr{border-color:rgba(129,140,248,0.65)}.kb-key.zone-rp{border-color:rgba(192,132,252,0.65)}.kb-key.is-next{color:#fff;background:linear-gradient(135deg,#2563eb,#0891b2);border-color:#bfdbfe;animation:ts-glow 1.2s ease-in-out infinite}.kb-key.is-shift-needed{color:#fff;background:linear-gradient(135deg,#f97316,#e11d48);border-color:rgba(254,202,202,0.9);box-shadow:0 0 0 3px rgba(249,115,22,0.18),inset 0 1px 0 rgba(255,255,255,0.18),inset 0 -3px 0 rgba(0,0,0,0.32)}.kb-key.is-pressed{transform:translateY(1px);box-shadow:inset 0 2px 0 rgba(0,0,0,0.22)}.kb-small,.kb-mod{flex-basis:52px;width:52px;font-size:0.78rem}.kb-tab{flex-basis:92px;width:92px}.kb-caps{flex-basis:110px;width:110px}.kb-backspace,.kb-enter{flex-basis:118px;width:118px}.kb-shift-left{flex-basis:132px;width:132px}.kb-shift-right{flex-basis:150px;width:150px}.kb-space{flex-basis:366px;width:366px}@keyframes ts-glow{0%,100%{box-shadow:0 0 0 0 rgba(37,99,235,0.34),inset 0 -2px 0 rgba(0,0,0,0.16)}50%{box-shadow:0 0 0 6px rgba(37,99,235,0.12),inset 0 -2px 0 rgba(0,0,0,0.16)}}.ts-content{max-width:960px;margin:120px auto 0;padding:0 4px}.ts-content h2{margin:0 0 10px;font-size:1.45rem}.ts-content h3{margin:0 0 7px;font-size:1rem}.ts-content p,.ts-info-grid p{line-height:1.75}.ts-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}.ts-info-grid>div{border:1px solid var(--ts-line);border-radius:8px;background:var(--ts-panel);padding:15px}.ts-content a{color:var(--ts-blue);font-weight:800}@media (max-width:900px){.ts-page{width:min(100% - 20px,1180px);padding-top:20px}.ts-dashboard{grid-template-columns:repeat(3,1fr)}.ts-workgrid,.ts-info-grid{grid-template-columns:1fr}.ts-lessons{border-right:0;border-bottom:1px solid var(--ts-line)}.ts-lesson-list{grid-template-columns:repeat(2,minmax(0,1fr))}.ts-shell{overflow:hidden}}@media (max-width:640px){.ts-topbar,.ts-keyboard-head,.ts-timedbar,.ts-progressline,.ts-mode-note{align-items:flex-start;flex-direction:column}.ts-controls,.ts-actions{width:100%}.ts-segment{width:100%;grid-auto-flow:row;grid-template-columns:repeat(3,minmax(0,1fr))}.ts-controls .ts-segment:nth-child(2){grid-template-columns:repeat(3,minmax(0,1fr))}.ts-segment button{padding:0 6px;font-size:0.72rem}.ts-dashboard{grid-template-columns:repeat(2,1fr)}.ts-lesson-list{grid-template-columns:1fr}.ts-target{font-size:1.22rem}.ts-text-card{height:206px;padding:14px}}.ts-preeti-font{font-family:'Preeti',serif !important}.ts-preeti-char{display:block;font-family:'Preeti',serif;font-size:1.8em;line-height:1.1;letter-spacing:0;white-space:nowrap}.ts-key-hint{display:block;font-family:system-ui,-apple-system,sans-serif !important;font-size:0.52em !important;font-weight:700;color:var(--ts-muted);text-align:center;margin-top:1px;line-height:1;letter-spacing:0;white-space:nowrap}.ts-target.is-preeti .ts-token{min-width:1.5em;width:auto;padding:2px 5px}.ts-dev-font,.ts-target.is-unicode .ts-dev-main{font-family:'Noto Sans Devanagari','Noto Sans Devanagari UI',Mangal,serif}.ts-upcoming-wrap{border-top:1px dashed var(--ts-line);margin-top:10px;padding-top:8px}.ts-upcoming{display:flex;flex-direction:column;gap:3px}.ts-upcoming-line{display:block;font-size:0.82rem;color:var(--ts-muted);opacity:0.45;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.55}.ts-upcoming-line:first-child{opacity:0.68}.kb-key .ts-preeti-font{display:block;width:100%;font-family:'Preeti',"Noto Sans Devanagari",sans-serif;font-size:1.34rem;font-weight:400;line-height:0.95;text-align:center;color:#ffffff;text-shadow:none}.kb-key .ts-key-roman{display:block;width:100%;margin-top:2px;color:rgba(255,255,255,0.72);font-size:0.58rem;font-weight:800;line-height:1;text-align:center}.ts-lesson.is-done small{background:#dcfce7;color:#166534}.ts-article{max-width:860px;margin:0 auto;padding:0 20px 60px}.ts-article h2{font-size:1.55rem;font-weight:800;color:var(--ts-ink);margin:2.4rem 0 0.7rem;padding-top:0.4rem;border-top:2px solid var(--ts-line);line-height:1.25}.ts-article h3{font-size:1.15rem;font-weight:700;color:var(--ts-ink);margin:1.6rem 0 0.5rem}.ts-article p{color:var(--ts-muted-ink,#374151);line-height:1.75;margin-bottom:1rem;font-size:0.97rem}.ts-article ul,.ts-article ol{padding-left:1.4rem;margin-bottom:1rem}.ts-article li{color:var(--ts-muted-ink,#374151);line-height:1.72;font-size:0.97rem;margin-bottom:0.25rem}.ts-article strong{color:var(--ts-ink);font-weight:700}.ts-article a{color:var(--ts-blue);text-decoration:underline;text-underline-offset:2px}.ts-table-wrap{width:100%;overflow-x:auto;margin:1.2rem 0 1.6rem;border-radius:8px;border:1px solid var(--ts-line)}.ts-table-wrap table{width:100%;border-collapse:collapse;font-size:0.88rem;min-width:400px}.ts-table-wrap th{background:var(--ts-panel);color:var(--ts-ink);font-weight:700;padding:10px 14px;text-align:left;border-bottom:2px solid var(--ts-line);white-space:nowrap}.ts-table-wrap td{padding:9px 14px;border-bottom:1px solid var(--ts-line);color:var(--ts-muted-ink,#374151);line-height:1.5}.ts-table-wrap tr:last-child td{border-bottom:none}.ts-table-wrap tr:nth-child(even) td{background:rgba(0,0,0,0.018)}.ts-callout{background:rgba(37,99,235,0.07);border-left:4px solid var(--ts-blue);border-radius:0 8px 8px 0;padding:12px 18px;margin:1.2rem 0;font-size:0.93rem;color:var(--ts-ink);line-height:1.65}.ts-callout strong{display:block;margin-bottom:4px;font-size:0.82rem;letter-spacing:0.06em;text-transform:uppercase;color:var(--ts-blue)}.ts-faq-list{margin:0;padding:0;list-style:none}.ts-faq-list li{border-bottom:1px solid var(--ts-line);padding:1rem 0}.ts-faq-list li:last-child{border-bottom:none}.ts-faq-q{font-weight:700;color:var(--ts-ink);font-size:0.96rem;margin-bottom:0.4rem}.ts-faq-a{color:var(--ts-muted-ink,#374151);font-size:0.93rem;line-height:1.7;margin:0}.ts-tip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin:1.2rem 0 1.6rem}.ts-tip-card{border:1px solid var(--ts-line);border-radius:8px;padding:14px 16px;background:var(--ts-panel)}.ts-tip-card .tip-num{font-size:0.75rem;font-weight:800;color:var(--ts-blue);letter-spacing:0.07em;text-transform:uppercase;margin-bottom:5px}.ts-tip-card p{margin:0;font-size:0.9rem;line-height:1.6}.ts-wpm-bar-wrap{margin:1.2rem 0 1.6rem}.ts-wpm-row{display:flex;align-items:center;gap:12px;margin-bottom:10px;font-size:0.88rem}.ts-wpm-label{min-width:110px;color:var(--ts-ink);font-weight:600}.ts-wpm-track{flex:1;background:var(--ts-line);border-radius:99px;height:10px;overflow:hidden}.ts-wpm-fill{height:100%;border-radius:99px;background:var(--ts-blue);transition:width 0.4s ease}.ts-wpm-val{min-width:60px;color:var(--ts-muted);font-size:0.82rem}[data-theme="dark"] .ts-article p,[data-theme="dark"] .ts-article li,[data-theme="dark"] .ts-table-wrap td,[data-theme="dark"] .ts-faq-a{color:var(--ts-muted,#9ca3af)}[data-theme="dark"] .ts-table-wrap tr:nth-child(even) td{background:rgba(255,255,255,0.03)}@media (max-width:640px){.ts-article h2{font-size:1.25rem}.ts-article h3{font-size:1.05rem}.ts-tip-grid{grid-template-columns:1fr}.ts-wpm-label{min-width:80px;font-size:0.8rem}}.ts-mobile-notice{display:none}@media (max-width:640px){.ts-header p{display:none}.ts-header{margin-bottom:6px}.ts-header h1{font-size:clamp(1.35rem,6vw,1.75rem)}.ts-kicker{font-size:0.65rem}.ts-mobile-notice{display:flex;align-items:center;gap:10px;padding:9px 14px;border-bottom:1px solid var(--ts-line);background:linear-gradient(135deg,rgba(37,99,235,0.07),rgba(8,145,178,0.05));color:var(--ts-blue);font-size:0.76rem;font-weight:700;line-height:1.4}.ts-mobile-notice svg{flex:0 0 15px;width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:0.75}.ts-stat span{font-size:0.65rem}.ts-stat strong{font-size:1.22rem}.ts-segment button{min-height:38px;padding:0 10px;font-size:0.76rem}.ts-controls{padding:8px 12px}.ts-keyboard-head{grid-template-columns:1fr auto;row-gap:6px;column-gap:8px}.ts-legend{grid-column:1 / -1;justify-content:flex-start;gap:4px}.ts-legend span{font-size:0.6rem;gap:4px;min-height:20px}.ts-lessons{height:auto;max-height:210px}.ts-content{margin-top:40px}}