:root{font-family:Arial,Helvetica,sans-serif;color:#333;background:#fff;line-height:1.5;font-synthesis:none;--L_Pinky:#ec9bb0;--L_Ring:#e6b486;--L_Middle:#ddcc83;--L_Index:#91c7a3;--Thumb:#b8c1cd;--R_Index:#8fcbd1;--R_Middle:#99b9e6;--R_Ring:#b8a6d6;--R_Pinky:#d6a3d7}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,select,textarea{outline-offset:3px}button:focus-visible,a:focus-visible{outline:2px solid #428bca}button{cursor:pointer;border:1px solid #ccc;color:#333;background:#fff;border-radius:4px;padding:6px 12px}button:hover{background:#ebebeb;border-color:#aaa}button:disabled{opacity:.5;cursor:default}a{color:#08c;text-decoration:none}a:hover{text-decoration:underline}header{height:51px;position:sticky;top:0;z-index:20;padding:0 22px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #ddd;background:#f8f8f8;gap:12px}header>div{display:flex;align-items:center;gap:10px;font-size:14px}.brand{display:flex;gap:18px;align-items:center;color:#555;font-size:22px}.brand span{font-size:14px;color:#777}.brand b{font-weight:400}.menu-toggle{position:fixed;left:5px;top:58px;z-index:15;padding:4px 7px;background:#d9edf7;border:1px solid #b5d6e8;color:#08c}.course-menu{position:fixed;top:51px;bottom:0;left:0;width:252px;overflow:auto;background:#d9edf7;border-right:1px solid #c5dbe8;padding:36px 0 20px}.course-menu h2{font-size:18px;padding:10px 16px;margin:10px 0 0;border-top:1px solid #bad6e7}.course-menu button{display:block;width:100%;border:0;border-radius:0;text-align:left;background:transparent;color:#08c;padding:8px 16px;font-size:16px;line-height:1.35}.course-menu button:hover{background:#c7e4f3}.course-menu button.done{background:#bde8c7;color:#08c}.course-menu button.current{box-shadow:inset 4px 0 #428bca;font-weight:700}.course-menu .menu-heading{font-weight:700}main{max-width:1140px;margin:0 auto;padding:25px 32px 55px}.with-menu main{margin-left:252px;max-width:none}h1,h2,h3{font-weight:400;line-height:1.2}h1{font-size:32px;margin:16px 0 22px}h2{font-size:26px;margin:26px 0 14px}h3{font-size:21px;margin:22px 0 12px}p{max-width:78ch;margin:12px 0}small,.muted{font-size:13px;color:#666}.hero{padding:0 0 22px;border-bottom:1px solid #eee}.hero>.robot,.welcome>.robot{display:none}.eyebrow{font-size:14px;color:#666}.robot{width:150px}.small-robot{width:80px;flex-shrink:0}.pills{display:flex;gap:20px;flex-wrap:wrap}.pills>span{font-size:14px;color:#555}.section-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:20px}.section-head h2{margin-bottom:8px}.section-head p{margin-top:0}.lesson-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:16px 0;border-top:1px solid #ddd}.lesson{text-align:left;border:0;border-bottom:1px solid #ddd;border-radius:0;padding:11px 12px;display:grid;grid-template-columns:25px 1fr;gap:4px 8px;color:#08c;background:#fff}.lesson b{font-weight:400;font-size:17px}.lesson small{grid-column:2;font-family:Consolas,monospace}.number{font-size:14px;color:#666}.done{background:#bde8c7;color:#08c}.race-banner{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:10px 0 24px;margin:24px 0;border-bottom:1px solid #ddd}.race-banner h3{margin:0 0 10px}.race-banner p{font-size:15px}.mission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid #ddd}.mission{font-size:16px;padding:12px;text-align:left;border:0;border-bottom:1px solid #ddd;border-radius:0;color:#08c}.next-course{display:block;margin-top:32px;padding:20px 0;border-top:1px solid #ddd;font-size:20px}.next-course small{display:block;margin-top:6px}footer{font-size:12px;color:#777;padding:20px 32px;text-align:left;border-top:1px solid #bbb}.with-menu footer{margin-left:252px}label{display:block;font-size:15px;margin:12px 0}input,select,textarea{display:block;border:1px solid #ccc;border-radius:4px;background:#fff;color:#333;padding:8px 10px;margin-top:6px;max-width:100%}input,select{width:100%}.primary{background:#428bca;color:#fff;border-color:#357ebd}.primary:hover{background:#3276b1;border-color:#285e8e}.welcome{max-width:720px;padding-top:45px}.welcome h1{font-size:32px}.welcome form{max-width:350px;margin:25px 0}.profile-list{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:25px}.python-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:30px;margin-top:24px}.python-layout h1{font-size:30px}.brief{white-space:pre-wrap;font-size:19px;line-height:1.65}.concept{padding:4px 0 14px;margin:20px 0;border-top:1px solid #ddd;border-bottom:1px solid #ddd}pre{font:16px/1.6 Menlo,Consolas,monospace;background:#f5f5f5;border:1px solid #ddd;padding:12px;border-radius:4px;white-space:pre-wrap;overflow-wrap:anywhere;color:#333}.editor-panel{min-width:0}.editor-panel textarea{width:100%;height:235px;font:18px/1.6 Menlo,Consolas,monospace;resize:vertical;padding:14px}.robot-scene{display:flex;align-items:center;border-bottom:1px solid #ddd;min-height:100px;gap:8px}.robot-scene p{font-size:14px}.gate{font-size:28px;margin:10px}.robot-scene.success b{color:#277b37}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.test{padding:12px;margin:12px 0;border:1px solid #ddd;border-radius:0}.test.pass b{color:#277b37}.test.fail b{color:#a94442}details{margin:20px 0;padding:12px 0;border-top:1px solid #ddd;border-bottom:1px solid #ddd}summary{cursor:pointer;color:#08c}.symbol-buttons{display:flex;gap:7px;flex-wrap:wrap}.symbol-buttons button{min-width:42px;padding:7px}.settings{max-width:750px}.settings button{margin:6px}.practice h1{font-size:30px}.track{position:relative;height:40px;margin-top:20px}.track span{position:absolute;transition:left .15s;font-size:27px}.track b{position:absolute;right:0;font-size:27px}progress{width:100%;height:7px;accent-color:#428bca}.typing-board{background:#fafafa;border:1px solid #ccc;border-radius:4px;padding:18px;margin:22px 0}.typing-text{font:28px/1.7 Menlo,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere;min-height:90px;color:#666}.typed{color:#27833b}.cursor{background:#d9edf7;color:#222;box-shadow:0 3px #428bca}.typing-board textarea{height:42px;width:100%;resize:none;caret-color:transparent}.warning{color:#9b4a25;min-height:24px;font-size:14px}.finger-hint{min-height:45px;font-size:18px}.keyboard-scroll{overflow-x:auto;padding-bottom:8px}.keyboard{min-width:650px}.key-row{display:flex;gap:5px;margin:5px 0}.key{min-width:0;background:#f7f7f7;border:1px solid #bbb;border-bottom:3px solid var(--finger);border-radius:4px;height:52px;display:flex;flex-direction:column;justify-content:center;align-items:center;font:16px monospace}.key small{font-size:11px;color:#666;height:15px}.key.target{background:var(--finger);color:#222;outline:2px solid #428bca}.key.target small{color:#333}.hands{display:flex;justify-content:center;gap:75px;margin:15px 0}.hands>div{text-align:center}.fingers{display:flex;gap:5px;align-items:flex-end;margin-top:10px}.fingers span{width:23px;border-radius:15px 15px 5px 5px;opacity:.5;display:flex;align-items:center;justify-content:center;font-size:11px;color:#222}.result{padding:16px 0;border-top:1px solid #ddd}.result button{margin:7px}.overflow-visible{overflow:visible}@media(max-width:1100px){.python-layout{grid-template-columns:1fr}.mission-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){header{height:auto;min-height:51px;padding:10px 14px;flex-wrap:wrap}.brand span{display:none}.with-menu main,.with-menu footer{margin-left:0}.course-menu{position:relative;top:0;width:100%;max-height:320px;border-bottom:1px solid #bbb}.menu-toggle{position:relative;top:0;left:0;margin:8px 14px}.with-menu .menu-toggle{position:absolute;top:60px;left:0}main{padding:20px 16px}.section-head,.race-banner{display:block}.lesson-grid{grid-template-columns:1fr}h1,.practice h1{font-size:27px}.typing-text{font-size:23px}.hands{gap:35px}.mission-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}@media(min-width:601px)and (max-width:1000px){.course-menu{width:210px}.with-menu main,.with-menu footer{margin-left:210px}.brand span{display:none}.lesson-grid{grid-template-columns:1fr}.section-head{display:block}}.hands{gap:65px;margin:24px 0 30px}.fingers{position:relative;height:133px;width:132px;padding:0 7px 52px;gap:4px;margin-top:14px;isolation:isolate}.fingers:after{content:"";position:absolute;left:7px;bottom:0;width:84px;height:67px;background:#edf1f4;border:1px solid #bdc9d2;border-radius:10px 12px 28px 24px;z-index:-1}.fingers span{flex-shrink:0;border:1px solid #aebbc6;border-radius:12px 12px 5px 5px;opacity:.65;align-items:flex-start;padding-top:12px;font-size:10px}.fingers .pinky{margin-bottom:-10px}.fingers .thumb{position:absolute;bottom:20px;right:25px;transform:rotate(35deg);transform-origin:50% 100%;border-radius:15px 15px 8px 8px}.hand-right{padding-left:41px;padding-right:0}.hand-right:after{left:41px;border-radius:12px 10px 24px 28px}.hand-right .thumb{right:auto;left:25px;transform:rotate(-35deg)}.fingers .lit{opacity:1;outline:2px solid #428bca;outline-offset:2px}@media(max-width:600px){.hands{gap:35px}}.typing-phases{display:flex;gap:24px;flex-wrap:wrap;padding:12px 28px;background:#f5f5f5;border:1px solid #ddd}.typing-phases li{padding-right:14px;color:#777}.typing-phases [aria-current]{color:#245b84;font-weight:700}.hand-position table{border-collapse:collapse;width:100%;max-width:500px}.hand-position th,.hand-position td{border:1px solid #ddd;padding:8px 12px;text-align:left}.blind-practice{padding:16px 0;border-bottom:1px solid #ddd}.imported-outline{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}.imported-outline h2{grid-column:1/-1;margin-top:26px}.imported-outline .lesson{text-align:left;padding:14px;min-height:58px}.course-video{width:100%;max-height:70vh;background:#111;margin:20px 0}.course-instruction-image{display:block;max-width:100%;margin:16px auto}.game-path{position:relative;height:100px;border-bottom:3px solid #87bfe1;margin:20px}.game-path>span{position:absolute;bottom:12px;font-size:42px;transition:left .18s}.game-path>b{position:absolute;right:0;bottom:10px;font-size:32px}.imported-game{background:#edf7fc;padding:12px;border:1px solid #b3d5e8}.imported-game small{color:#465864}.imported-course .typing-text{white-space:pre-wrap;overflow-wrap:anywhere}.game-score{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin:14px 0;font-size:16px}.game-score button{margin-left:auto}.game-arena{position:relative;height:320px;overflow:hidden;border:1px solid #a8c9e2;border-radius:6px;background:linear-gradient(#e5f3fc,#f8fcff);isolation:isolate}.game-cloud{position:absolute;width:110px;height:28px;border-radius:50%;background:#fff;opacity:.85;top:30px;left:20%}.cloud-two{left:65%;top:70px;width:150px}.game-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#f4faffcc;z-index:10}.game-overlay button{font-size:21px;padding:16px 32px}.game-input{display:block;width:100%;height:48px;min-height:48px;margin-top:12px;text-align:center;border:1px solid #8fb7d6;font-size:18px;resize:none}.game-input:focus{outline:3px solid #9fd0f3}.game-word{display:block;width:max-content;max-width:90vw;white-space:pre;background:#fff;border:2px solid #669ec8;border-radius:6px;padding:5px 9px;font:700 23px monospace;position:relative;z-index:2;margin:auto;color:#263b4b}.game-word .hit{color:#598763;background:#e1f0df}.game-word .current{color:#006bc0;text-decoration:underline;text-underline-offset:4px}.monster-art{width:76px;height:76px;display:block;margin:auto}.game-arena .monster-art{filter:drop-shadow(0 4px 0 #0001)}.cliff{position:absolute;bottom:0;width:13%;height:70%;background:linear-gradient(90deg,#9aaeb8,#bfced5);border-top:12px solid #6da58b;border-radius:15px 15px 0 0}.left-cliff{left:0}.right-cliff{right:0}.valley-water{position:absolute;bottom:0;left:13%;right:13%;height:25px;background:#83c0e2}.balloon-rider{position:absolute;transform:translate(-50%,-10%);transition:left .2s linear,top .05s linear;text-align:center}.balloon{border-radius:50%;padding:16px 10px;background:#92c9eb;border:2px solid #387fba}.balloon-string{height:24px;border-left:2px solid #62859a;width:1px;margin:auto}.game-hero{font-size:25px;color:#255c8a}.finish-flag{position:absolute;right:3%;top:8%;font-size:40px;color:#2f6b99}.saved-balloons{position:absolute;top:15px;left:15px;font-size:34px}.basket{position:absolute;bottom:20px;width:80px;height:70px}.basket-front{position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(0deg,#cba974 0,#cba974 9px,#aa8757 10px,#aa8757 12px);border:3px solid #987447;border-radius:7px 7px 22px 22px;z-index:2}.basket-monster{position:absolute;left:0;transition:bottom .05s linear}.basket-monster .game-word{position:absolute;bottom:80px;left:10px}.arena-TempleBash{background:linear-gradient(#ecf6fb 70%,#d9e8d0 70%)}.battle-bridge{position:absolute;bottom:30px;left:5%;right:5%;height:30px;background:repeating-linear-gradient(90deg,#c2a77c 0,#c2a77c 20px,#a78e67 21px,#a78e67 23px);border-bottom:10px solid #8b7759}.defender{position:absolute;bottom:60px;left:7%;font-size:65px;color:#3171a4}.attack-monster{position:absolute;bottom:60px;transition:left .1s linear}.throw-trail{position:absolute;left:17%;bottom:105px;color:#e6a332;font-size:30px;animation:throw-object .25s ease-out forwards}@keyframes throw-object{to{left:75%;opacity:0}}.bubble-floor{position:absolute;bottom:0;width:100%;height:25px;background:#a8d4eb}.floating-target{position:absolute;transition:bottom .05s linear}.creature-bubble{padding:15px;border:3px solid #8bb8d7;border-radius:50%;background:radial-gradient(circle at 30% 20%,#fff,#b3d7ed88);margin:auto;width:100px;height:100px}.creature-bubble .monster-art{width:65px;height:65px}.escape-line{position:absolute;top:0;width:100%;text-align:center;border-bottom:2px dashed #acbcca;color:#657985;font-size:13px}.orchard-ground{position:absolute;bottom:0;width:100%;height:35px;background:#94b897}.apple-tree{position:absolute;bottom:32px;right:3%;width:110px}.tree-crown{position:relative;z-index:1;background:#80ac7e;border-radius:45%;padding:15px 8px;min-height:95px;font-size:22px}.tree-trunk{height:100px;width:22px;background:#a18a65;margin:auto}.apple-thief{position:absolute;bottom:35px;transition:left .05s linear}@media(max-width:600px){.game-arena{height:280px}.game-word{font-size:18px}.game-score{gap:10px;font-size:14px}.apple-tree{width:80px}.monster-art{width:60px;height:60px}.game-cloud{width:70px}.creature-bubble{width:80px;height:80px;padding:5px}}@media(prefers-reduced-motion:reduce){.throw-trail{animation:none;display:none}.balloon-rider,.attack-monster,.apple-thief{transition:none}}.typing-game label,.imported-course label{display:flex;align-items:center;gap:8px}.typing-game input[type=checkbox],.imported-course input[type=checkbox]{width:auto;margin:0}.boxed-text span{display:inline-block;min-width:1.3em;text-align:center;margin:2px;border:1px solid #ccdce6;border-radius:3px}.anchor-rule{padding:12px;background:#edf5fb;border-left:3px solid #5394c4}.attack-monster .game-word{transform:translate(-35%)}
