:root{--bg-color: #ffffff;--text-color: #000000;--correct-color: #4caf50;--highlight-color: #ffeb3b;--error-color: #f44336;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark}body[data-theme=dark]{--bg-color: #121212;--text-color: #ffffff}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh;background-color:var(--bg-color);color:var(--text-color)}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}@media (prefers-reduced-motion: no-preference){body{transition:background-color .3s ease,color .3s ease}.key,.key.active{transition:background-color .2s ease,color .2s ease,border-color .2s ease}}.lesson-text{font-size:3rem;line-height:1.4;margin:1rem auto;max-width:90vw;word-wrap:break-word}.menu-list{list-style:none;padding:0;margin-top:1rem;display:flex;flex-direction:column;align-items:center;gap:.5rem}.menu-list li{padding:.5rem 1rem;border:2px solid #fff;border-radius:8px;cursor:pointer;min-width:200px}.menu-list li.active{background-color:#4ade80;color:#000}.menu-list li.disabled{opacity:.4}.menu-list li.disabled.active{background-color:transparent}.map-container{text-align:center;padding:2rem}.map-header{margin-bottom:1rem}.lesson-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;max-height:60vh;overflow-y:auto;padding:1rem;border:1px solid rgba(0,0,0,.25);border-radius:8px;background:var(--bg-color)}.lesson-card{padding:1rem;background:#0003;color:var(--text-color);border:1px solid rgba(0,0,0,.4);border-radius:6px;cursor:pointer;transition:transform .2s ease,background .2s ease;font-size:.9rem}.lesson-card:hover:not(:disabled){transform:translateY(-3px);background:#0000004d}.lesson-card.locked{opacity:.4;cursor:not-allowed}.lesson-card.completed{background:var(--correct-color);color:#000}.back-btn{margin-top:1rem}.keyboard-container{display:inline-block;margin-top:2rem;background:var(--bg-color);padding:1.5rem;border-radius:8px}.keyboard-row{display:flex;justify-content:center;margin-bottom:6px}.key{font-family:monospace;font-size:18px;color:var(--text-color);background:#00000040;border:1px solid rgba(0,0,0,.4);border-radius:4px;padding:10px 12px;margin:3px;min-width:34px;text-align:center}.key.active{background:var(--correct-color);color:#000;border-color:var(--correct-color)}.key.shift{min-width:60px}.key.space{min-width:180px}.finger-guide{display:flex;justify-content:center;align-items:flex-end;gap:4rem;margin-top:2rem}.hand{position:relative;display:flex;align-items:flex-end;gap:.35rem}:root{--skin-color: #f5cba7;--skin-border: #d2a67d}.finger{width:30px;background:var(--skin-color);border:2px solid var(--skin-border);border-radius:14px 14px 8px 8px;opacity:.6;transition:opacity .3s ease,transform .3s ease,background .3s ease}.finger.pinky{height:85px}.finger.ring{height:95px}.finger.middle{height:110px}.finger.index{height:100px}.thumb{position:absolute;bottom:-20px;width:50px;height:50px;background:var(--skin-color);border:2px solid var(--skin-border);border-radius:50% 50% 40% 40%;opacity:.6;transition:opacity .3s ease,transform .3s ease,background .3s ease}.left-hand .thumb{right:-25px;transform:rotate(25deg)}.right-hand .thumb{left:-25px;transform:rotate(-25deg)}.finger.active,.thumb.active{opacity:1;background:var(--highlight-color);animation:wiggle 1s ease-in-out infinite}@keyframes wiggle{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}#root{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}.star-effect{position:fixed;font-size:24px;color:#facc15;animation:star-move 1s ease-out forwards;pointer-events:none;z-index:9999}@keyframes star-move{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-150px) scale(.5)}}.error-effect{position:fixed;font-size:36px;color:var(--error-color);animation:error-burst .7s ease-out forwards;pointer-events:none;z-index:9999}@keyframes error-burst{0%{opacity:1;transform:scale(0) rotate(45deg)}70%{opacity:.8;transform:scale(1.5) rotate(0)}to{opacity:0;transform:scale(2) rotate(0)}}.confetti-effect{position:fixed;font-size:32px;animation:confetti-pop 1.2s ease-out forwards;pointer-events:none;z-index:9999}@keyframes confetti-pop{0%{transform:translateY(0) scale(.2);opacity:1}70%{transform:translateY(-120px) scale(1.2) rotate(360deg);opacity:.9}to{transform:translateY(150px) scale(.3);opacity:0}}
