@font-face{font-family:Hanken;src:url(/fonts/hanken-latin.woff2) format("woff2");font-weight:100 900;font-display:swap}:root{--bg:#dfdedb;--surface:#d3d2ce;--paper:#f6f5f1;--ink:#26251e;--muted:#5f5d55;--accent:#2456d6;--accent-dark:#173978;--accent-ink:#fff;--code:#172c4a;--green:#215b43;--yellow:#e6bf68;--danger:#9e352f;--gutter:clamp(22px,5vw,80px);--small:14px;--body:16px;--lead:20px;--head:clamp(28px,3vw,43px);--display:clamp(45px,6.1vw,88px);--ease:cubic-bezier(.22,1,.36,1)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--ink);font-family:Hanken,Microsoft YaHei,PingFang SC,sans-serif;font-size:var(--body);line-height:1.75}button,input,textarea{font:inherit}button,a,input,textarea,summary{touch-action:manipulation}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button{color:inherit}button:disabled{cursor:wait;opacity:.6}button:not(:disabled):active,.button:active{transform:scale(.98)}button,button.button,.button{transition:background-color .18s,color .18s,transform .14s var(--ease)}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,label.button:focus-within{outline:3px solid var(--accent);outline-offset:4px}::selection{background:var(--yellow);color:var(--ink)}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:500;line-height:1.3}h1{font-size:var(--display);letter-spacing:-.045em}h2{font-size:var(--head);letter-spacing:-.035em}h3{font-size:var(--lead)}p{color:var(--muted)}main:focus{outline:none}pre{white-space:pre-wrap;overflow-wrap:anywhere;tab-size:4;margin:0;font-size:15px;line-height:1.9}code,pre,textarea#code-editor,.gutter{font-family:Cascadia Code,Consolas,Microsoft YaHei,monospace}p code{background:var(--surface);padding:2px 5px}button[hidden],[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip{position:fixed;top:10px;left:20px;z-index:100;background:var(--accent);color:#fff;padding:10px;transform:translateY(-150%)}.skip:focus{transform:none}.header{min-height:92px;padding:16px var(--gutter);display:flex;justify-content:space-between;align-items:center;gap:25px;background:var(--bg)}.brand{font-size:23px;letter-spacing:-.7px;display:flex;align-items:center;gap:9px;white-space:nowrap;font-weight:500}.brand>span{font-size:19px;letter-spacing:0}.header nav{display:flex;gap:34px;font-size:15px}.header nav a{padding:8px 0}.header nav a[aria-current]{color:var(--accent)}.nav-count{font-size:13px;margin-left:3px}.nav-continue{border:0;background:none;font-size:15px;padding:10px 0}.nav-continue span{margin-left:22px}.section-wrap{padding-left:var(--gutter);padding-right:var(--gutter);max-width:1600px;margin:0 auto}.button{display:inline-flex;align-items:center;justify-content:center;gap:32px;min-height:48px;padding:12px 24px;border:0;border-radius:0;background:var(--surface);font-size:15px;white-space:nowrap}.button.primary{background:var(--accent);color:var(--accent-ink)}.button.small{min-height:42px;padding:9px 16px}.plain-button{background:none;border:0;font-size:14px;padding:5px 0}.text-link{display:inline-block;padding:12px 0;color:var(--accent);font-size:16px}.back-link{display:inline-block;color:var(--muted);padding:10px 0;font-size:14px}.hero{background:var(--accent-dark);padding:52px var(--gutter) 0;color:var(--paper)}.hero-heading{text-align:center;margin:0 auto 62px}.hero h1{font-weight:500;line-height:1.16;white-space:nowrap}.mobile-br{display:none}.hero-heading p{font-size:18px;margin-top:22px;color:#c8d0dd;line-height:1.8}.folder-stack{max-width:1320px;margin:0 auto}.folder-tabs{display:flex;gap:8px;align-items:end;margin:0 0 -1px;position:relative;z-index:1}.folder-tab{flex:1;background:#9daabd;color:var(--code);border:0;min-height:54px;clip-path:polygon(0 0,90% 0,100% 100%,0 100%);padding:16px 15px 16px 8px;font-size:15px;text-align:center}.folder-tab:nth-child(2){background:#b6c0cb}.folder-tab:nth-child(3){background:#c9c9c3}.folder-tab:nth-child(4){background:#d5d1c3}.folder-tab:nth-child(5){background:#a9b9ad}.folder-tab.active{background:var(--paper);min-height:64px;padding-top:21px;color:var(--accent)}.folder-tab:focus-visible{outline-offset:-5px;outline-width:4px}.folder-paper{background:var(--paper);color:var(--ink);padding:43px clamp(24px,4vw,60px) 48px;display:grid;grid-template-columns:1fr 1.03fr;gap:50px;align-items:center;min-height:400px}.folder-context{font-size:13px;margin-bottom:17px}.folder-copy h2{font-size:clamp(29px,3vw,41px);line-height:1.4;margin-bottom:16px;white-space:nowrap}.folder-copy>p:not(.folder-context){max-width:430px;font-size:16px;line-height:1.9;margin-bottom:24px}.folder-copy .button{min-width:200px;justify-content:space-between}.folder-facts{display:flex;flex-wrap:wrap;gap:24px;margin-top:26px;font-size:13px;color:var(--muted)}.folder-facts b{font-size:23px;font-weight:500;color:var(--ink);margin-right:4px}.first-program{background:var(--code);color:#edf0f5;min-width:0}.terminal-top{padding:14px 20px;display:flex;justify-content:space-between;background:#203756;font-size:13px}.terminal-python{color:#c1cfdf}.demo-code{padding:19px 20px 21px;font-family:Consolas,Microsoft YaHei,monospace;font-size:14px;overflow:hidden}.demo-code p{white-space:nowrap;color:#eef1f9}.line-number{color:#8192ab;display:inline-block;width:25px;font-size:13px}.syntax-comment{color:#b1c2b6}.syntax-string{color:#e9c47c}.syntax-fn{color:#a8c4fc}.syntax-number{color:#f1bb9f}.syntax-op{color:#d3dfec}.demo-controls{display:flex;gap:10px;padding:0 20px 18px}.demo-controls input{min-width:0;width:100%;padding:8px 12px;color:#fff;border:0;background:#2c4364;font-size:14px;border-radius:0}.demo-controls .button{background:#cad7f8;color:#142a4b;white-space:nowrap;font-size:14px}.demo-output{background:#112139;padding:14px 20px 18px}.demo-output>span{font-size:13px;color:#b7c6da}.demo-output pre{font-size:15px;color:#e9c47c;padding-top:6px;min-height:62px}.demo-output small{display:block;color:#b4c0d1;font-size:13px;margin-top:8px}.intro{padding-top:100px;padding-bottom:104px;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.intro h2{font-size:clamp(36px,4vw,54px)}.intro>div>p{font-size:18px;line-height:1.95}.learning-steps{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:23px;font-size:14px}.learning-steps span{color:var(--accent)}.learning-steps b{font-weight:400;color:#8c8a81}.section-title{display:flex;justify-content:space-between;align-items:center;gap:28px;margin-bottom:38px}.section-title p{margin-top:10px}.curriculum{padding-top:76px;padding-bottom:100px;background:var(--paper)}.search{display:flex;align-items:center;gap:10px;background:var(--bg);padding:9px 16px;min-width:310px;font-size:16px}.search>span{font-size:27px;line-height:1}.search input{border:0;background:none;min-width:0;width:100%;outline-offset:3px!important;font-size:14px}.course-group{display:grid;grid-template-columns:210px 1fr;gap:40px;margin-top:40px}.group-caption{padding:20px 0}.group-caption h3{font-size:22px}.group-caption p{margin-top:9px;font-size:14px}.course-rows{display:grid;gap:8px}.course-row{display:flex;align-items:center;gap:20px;background:#e9e8e3;padding:20px 24px;transition:background .2s}.course-status{font-size:25px;color:var(--accent);width:28px;text-align:center;flex-shrink:0}.course-status.done{color:var(--green)}.course-row b{font-size:18px;font-weight:500;display:block}.course-row small{display:block;margin-top:4px;font-size:14px;color:var(--muted)}.row-time{margin-left:auto;white-space:nowrap;font-size:14px;color:var(--muted)}.row-time>span{margin-left:28px;color:var(--accent)}.field-note{padding-top:95px;padding-bottom:95px;display:grid;grid-template-columns:110px 1fr 300px;gap:45px;align-items:start}.note-stamp{background:var(--accent);color:#fff;font-size:42px;display:grid;place-items:center;aspect-ratio:1;font-weight:500}.field-note h2{font-size:32px;margin-bottom:18px}.field-note p{line-height:1.9}.mini-note{background:var(--paper);padding:28px}.mini-note>b{font-size:15px;font-weight:500}.mini-note p{margin:18px 0;font-size:14px}.mini-note a{font-size:14px;color:var(--accent)}.faq{max-width:1050px;padding-top:35px;padding-bottom:100px}.faq h2{font-size:32px;margin-bottom:30px}.faq details{background:var(--paper);margin-top:12px;padding:23px 28px}.faq summary{display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-size:18px;gap:18px;list-style:none}.faq summary::-webkit-details-marker{display:none}.faq summary span{color:var(--accent);font-size:25px}.faq details[open] summary span{transform:rotate(45deg)}.faq details p{margin-top:15px;font-size:16px;max-width:700px}.faq details:nth-of-type(2n){background:#d4d6d9}footer{background:#262d38;color:var(--paper);padding:55px var(--gutter);display:flex;flex-wrap:wrap;gap:26px;justify-content:space-between;align-items:start}footer .brand{font-size:29px;flex-wrap:wrap;gap:20px}footer .footer-mark{font-size:14px;font-weight:400;color:#ccd0d7}footer p{width:100%;order:3;color:#bdc2cc;font-size:13px}footer>div{display:flex;gap:25px;font-size:14px}#toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%,20px);background:var(--ink);color:#fff;padding:14px 24px;font-size:15px;z-index:200;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;max-width:calc(100vw - 32px);width:max-content}#toast.visible{opacity:1;transform:translate(-50%)}#celebration{pointer-events:none;position:fixed;bottom:10%;left:0;right:0;z-index:180}#celebration i{position:absolute;width:7px;height:12px}.empty{background:var(--bg);padding:35px;margin:22px 0;color:var(--muted)}.learning-layout{display:grid;grid-template-columns:250px minmax(0,1fr);max-width:1600px;margin:0 auto;padding:0 var(--gutter) 65px;gap:42px}.lesson-sidebar{align-self:start;position:sticky;top:16px;max-height:calc(100vh - 32px);overflow:auto;padding:10px 5px 20px 0;scrollbar-width:thin}.sidebar-progress{margin:15px 15px 24px 0;font-size:13px}.sidebar-progress>span{display:flex;justify-content:space-between}.progress-track{height:6px;background:#bbbdbf;overflow:hidden;margin-top:10px}.progress-track>div{height:100%;background:var(--accent);transform-origin:left;transition:transform .4s var(--ease)}.sidebar-group{margin-top:22px}.sidebar-group h3{font-size:14px;color:var(--muted);margin-bottom:8px}.sidebar-group a{font-size:14px;display:flex;align-items:center;gap:9px;padding:8px 10px}.sidebar-group a[aria-current]{background:var(--paper);color:var(--accent)}.sidebar-group a span{width:14px;color:var(--accent);flex-shrink:0}.lesson{background:var(--paper);min-width:0}.lesson-heading{background:#cbd5e5;padding:40px clamp(24px,4vw,60px)}.lesson-heading>p{font-size:14px;color:#48566c;margin-bottom:16px}.lesson-heading h1{font-size:clamp(30px,3.4vw,48px);letter-spacing:-.03em}.lesson-summary{margin-top:17px;display:flex;align-items:center;justify-content:space-between;gap:18px}.lesson-summary p{font-size:16px;color:#48566c}.lesson-badge{font-size:13px;color:var(--accent);white-space:nowrap}.lesson-body{padding:12px clamp(24px,4vw,60px) 40px}.concept{margin-top:34px}.concept h2{font-size:23px;letter-spacing:0;margin-bottom:12px}.concept p{font-size:16px;line-height:2;color:#49483f}.example-code{margin-top:35px;background:var(--code);color:#eef0f6}.example-code>div{padding:14px 20px;background:#233a59;display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:14px}.example-code b{font-weight:400}.example-code button{color:#d3def0}.example-code pre{padding:23px 24px;color:#e7c785;font-size:15px}.pitfall{background:#e9e1ca;padding:22px 26px;margin:25px 0 55px}.pitfall>b{font-size:15px;font-weight:500;color:#684a16}.pitfall p{color:#6c542f;font-size:15px;margin-top:7px}.quizzes>h2{font-size:27px;margin-bottom:28px}.quiz{border:0;margin:0 0 34px;padding:0;min-width:0}.quiz legend{font-size:18px;font-weight:500;margin-bottom:15px;display:block;width:100%;line-height:1.7}.quiz legend>span{display:block;color:var(--muted);font-size:13px;font-weight:400;margin-bottom:7px}.quiz-options{display:grid;grid-template-columns:1fr 1fr;gap:9px}.quiz-option{display:flex;align-items:center;gap:13px;padding:14px 18px;text-align:left;min-height:55px;border:2px solid transparent;background:#e7e6e0;font-size:15px;overflow-wrap:anywhere}.quiz-option>span{color:var(--muted);font-size:13px;flex-shrink:0}.quiz-option>b{margin-left:auto;font-size:20px}.quiz-option.correct{background:#d4e7dc;color:#164a33;border-color:#2c7150}.quiz-option.incorrect{background:#efd6d1;color:#7f2b23;border-color:#b55346}.quiz-feedback{display:none}.quiz-feedback.shown{display:block;padding:16px 20px;background:#efe0d9;margin-top:9px;font-size:15px;color:#7f3d2a}.quiz-feedback p{color:inherit;font-size:14px;margin-top:4px}.quiz-feedback.success{background:#dfe9df;color:#315942}.training{margin-top:48px;scroll-margin-top:25px}.training .section-title{align-items:start;margin-bottom:24px;gap:14px}.training h2{font-size:28px}.training .section-title p{font-size:15px}.python-state{font-size:13px;background:#e3e5e5;color:#455b66;padding:6px 10px;white-space:nowrap}.task{padding:22px 25px;background:#e6e8e9;margin-bottom:18px}.task h3{font-size:17px;margin-bottom:10px}.task>p{font-size:15px;color:#464b50;line-height:1.9}.examples summary{font-size:14px;color:var(--accent);cursor:pointer;margin-top:14px}.examples>div{background:#f2f3f3;padding:15px;margin-top:10px;font-size:14px}.examples pre{font-size:14px}.editor-shell{background:var(--code);color:#e4eaf4}.editor-top{background:#233a59;display:flex;justify-content:space-between;align-items:center;padding:11px 20px;font-size:13px}.editor-top button{color:#c5d3e6}.code-entry{display:grid;grid-template-columns:46px minmax(0,1fr);padding:18px 18px 18px 0}.gutter{font-size:15px;line-height:1.9;color:#8c9bb1;white-space:pre;text-align:right;padding-right:13px;overflow:hidden;max-height:230px}.code-entry textarea{border:0;border-radius:0;resize:vertical;min-height:230px;width:100%;max-height:650px;background:transparent;color:#f0d38e;font-size:15px;line-height:1.9;padding:0;overflow:auto;tab-size:4;white-space:pre;scrollbar-width:thin;caret-color:#fff}.code-entry textarea:focus-visible{outline-offset:7px;outline-width:2px;outline-color:#a6bfff}.editor-actions{background:#203654;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:10px}.editor-actions>span{font-size:13px;color:#c2cddd}.editor-actions>div{display:flex;gap:8px}.editor-actions .button{min-height:42px;padding:10px 16px;font-size:14px;gap:12px}.button.run{background:#d4deee;color:#162e4f}.button.stop{background:#ecc7bf;color:#62281f}.console-grid{display:grid;grid-template-columns:.7fr 1fr;gap:12px;margin-top:12px}.stdin,.console{background:#e7e7e1;min-width:0}.stdin label,.console-title{display:block;font-size:14px;padding:12px 16px;color:#3e464a}.stdin label span{display:block;font-size:13px;color:#666c6d}.stdin textarea{width:calc(100% - 32px);margin:0 16px 12px;min-height:100px;resize:vertical;background:#f7f7f3;color:var(--ink);border:0;padding:12px;font-family:Consolas,Microsoft YaHei,monospace;font-size:14px}.console{background:#e1e7e2}.console-title{display:flex;justify-content:space-between;gap:12px}.console-title>span{font-size:13px;color:#426050}.console pre{padding:4px 16px 20px;color:#264737;font-size:14px;max-height:350px;overflow:auto}.test-result{margin-top:8px;padding:14px 18px;font-size:14px}.test-result.pass{background:#d5e5d8;color:#235237}.test-result.fail{background:#eedbd5;color:#813e2c}.test-result>div{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:12px}.test-result pre{font-size:14px}.help-row{display:flex;align-items:start;gap:16px;margin-top:20px;flex-wrap:wrap}.help-row details{flex:1;min-width:220px;background:#e9e7df;padding:14px 18px}.help-row summary{font-size:14px;cursor:pointer;color:var(--accent)}.help-row details p{margin:14px 0;font-size:14px}.help-row pre{font-size:14px;background:var(--paper);padding:14px}.help-row .plain-button{color:var(--accent);margin-top:12px}.runtime-note{font-size:13px;color:#65675f;margin-top:16px}.lesson-end{margin-top:45px;background:#e6e4dc;padding:25px}.lesson-end>div:first-child{font-size:14px;color:#4a594d;margin-bottom:20px}.lesson-end>div:last-child{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:center}.lesson-end .button{white-space:normal;text-align:left}.playground{padding-top:35px;padding-bottom:75px;max-width:1250px}.playground h1{font-size:60px;margin-top:22px}.playground-intro>p{margin-top:16px;font-size:18px}.snippet-buttons{display:flex;gap:12px;margin-top:25px;flex-wrap:wrap}.snippet-buttons button{border:0;background:var(--paper);padding:10px 18px;color:var(--accent);font-size:14px}.playground .training{background:var(--paper);padding:35px 40px}.playground #code-editor{min-height:280px}.journal{padding-top:45px;padding-bottom:75px;max-width:1400px}.journal-header{display:flex;align-items:center;justify-content:space-between;gap:30px}.journal h1{font-size:clamp(38px,5vw,64px)}.journal-header p{margin-top:18px;font-size:18px}.journal-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:45px 0 32px}.journal-stats>div{background:var(--paper);padding:28px 32px}.journal-stats b{display:block;font-size:54px;font-weight:500;line-height:1.3;color:var(--accent)}.journal-stats b small{font-size:20px;color:var(--muted);margin-left:7px}.journal-stats span{display:block;color:var(--muted);font-size:14px;margin-top:12px}.big-progress{background:#cdd4dc;padding:24px 30px}.big-progress>span{display:flex;justify-content:space-between;font-size:15px}.big-progress .progress-track{height:9px;margin-top:16px;background:#b0bac6}.journal section{margin-top:65px}.journal section h2{font-size:29px;margin-bottom:20px}.badge-list{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.badge{background:#d0cfca;padding:26px 20px;color:#5f6059}.badge>span{font-size:46px;line-height:1.3}.badge h3{font-size:18px;margin-top:18px}.badge p{font-size:14px;margin-top:7px;color:inherit}.badge small{font-size:13px;display:inline-block;margin-top:18px;color:inherit}.badge.unlocked{background:var(--accent-dark);color:#e9c77f}.badge.unlocked p{color:#d5dce8}.review>p{margin-bottom:18px;font-size:15px}.review-row{display:flex;align-items:center;justify-content:space-between;gap:25px;background:var(--paper);padding:20px 25px;margin-top:9px}.review-row small{font-size:13px;display:block;color:var(--muted)}.review-row b{font-size:16px;font-weight:400;display:block;margin-top:5px}.review-row>span:last-child{color:var(--accent);font-size:14px;white-space:nowrap}.footprints{display:grid;grid-template-columns:1fr 1fr;gap:9px}.footprint{display:flex;align-items:center;gap:16px;background:#e9e8e2;padding:16px 20px}.footprint>span{font-size:14px;color:#777970}.footprint b{font-size:15px;font-weight:400}.footprint small{margin-left:auto;color:var(--muted);font-size:13px}.footprint.complete{background:#ceded1}.footprint.complete>span{color:var(--green)}.backup{background:var(--paper);padding:30px;display:flex;justify-content:space-between;align-items:center;gap:25px}.backup h2{margin-bottom:12px!important}.backup p{font-size:14px}.backup>div:last-child{display:flex;gap:10px;flex-wrap:wrap}.import-button{cursor:pointer}.privacy-note{font-size:13px;margin-top:22px}.finished-banner{margin-top:35px;display:flex;gap:25px;align-items:center;background:var(--accent-dark);padding:30px;color:#f4d48c}.finished-banner>span{font-size:50px}.finished-banner p{color:#d5dce8;margin-top:10px}@media(hover:hover)and (pointer:fine){.header a:hover,.plain-button:hover,.back-link:hover{color:var(--accent)}.button:hover{background:#bfc4cb}.button.primary:hover{background:#173fa6}.course-row:hover{background:#d8dfeb}.course-row:hover .row-time>span{display:inline-block;transform:translate(4px)}.quiz-option:hover:not(.correct):not(.incorrect){background:#d9dde5}.sidebar-group a:hover{background:#e9e8e1}.text-link:hover{text-decoration:underline;text-underline-offset:6px}.review-row:hover,.footprint:hover{background:#dce2e8}footer a:hover{color:var(--yellow)}}@media(min-width:1600px){.hero{padding-top:65px}.hero-heading{margin-bottom:65px}.folder-paper{min-height:450px}}@media(max-width:1100px){.header nav{gap:20px}.folder-paper{gap:28px;padding:32px}.folder-copy h2{font-size:30px}.folder-facts{gap:16px}.folder-facts b{font-size:20px}.hero-heading{margin-bottom:45px}.field-note{grid-template-columns:85px 1fr;gap:30px}.mini-note{grid-column:2}.learning-layout{grid-template-columns:210px minmax(0,1fr);gap:22px;padding-left:25px;padding-right:25px}.lesson-body,.lesson-heading{padding-left:28px;padding-right:28px}.training .section-title,.editor-actions{flex-wrap:wrap}.editor-actions>div{margin-left:auto}.course-group{grid-template-columns:170px 1fr;gap:25px}.journal-stats>div{padding:24px}.badge-list{gap:8px}.badge{padding:24px 18px}.backup{align-items:start;flex-direction:column}}@media(max-width:800px){.header{min-height:83px;padding-top:18px;padding-bottom:14px;flex-wrap:wrap;gap:10px}.brand{font-size:22px}.header nav{order:3;width:100%;justify-content:space-between;gap:12px;font-size:14px}.nav-continue{font-size:14px}.nav-continue span{margin-left:8px}.hero{padding-top:42px}.hero h1{font-size:clamp(42px,7vw,60px)}.hero-heading p{font-size:16px;margin-top:18px}.folder-tabs{gap:4px}.folder-tab{font-size:13px;padding:12px 6px 12px 0;min-height:46px}.folder-tab.active{min-height:54px;padding-top:16px}.folder-paper{grid-template-columns:1fr;padding:28px;gap:30px}.folder-copy h2{font-size:33px}.folder-copy>p:not(.folder-context){max-width:none}.folder-context{font-size:13px;margin-bottom:14px}.folder-facts{gap:26px;margin-top:22px}.first-program{max-width:none}.intro{padding-top:70px;padding-bottom:65px;gap:30px}.intro h2{font-size:37px}.intro>div>p{font-size:16px}.learning-steps{font-size:13px;gap:8px}.curriculum{padding-top:55px;padding-bottom:65px}.section-title{align-items:start;flex-direction:column;gap:23px;margin-bottom:28px}.search{width:100%;min-width:0}.course-group{grid-template-columns:1fr;gap:8px;margin-top:28px}.group-caption{display:flex;justify-content:space-between;align-items:center;padding:10px 0}.group-caption p{margin:0}.course-row{padding:18px;gap:14px}.row-time>span{margin-left:10px}.field-note{padding-top:65px;padding-bottom:65px;grid-template-columns:70px 1fr;gap:26px}.note-stamp{font-size:29px}.field-note h2{font-size:27px}.field-note p{font-size:15px}.faq{padding-bottom:65px}.faq h2{font-size:28px}.faq summary{font-size:16px}.faq details{padding:20px 22px}.learning-layout{display:block;padding:0 18px 45px}.lesson-sidebar{position:static;max-height:unset;padding:0}.lesson-sidebar>nav{display:none}.lesson-sidebar .back-link{padding:12px 0}.sidebar-progress{margin:0 0 18px}.sidebar-progress .progress-track{margin-top:5px}.lesson-heading{padding:30px 25px}.lesson-heading h1{font-size:34px}.lesson-summary{align-items:start}.lesson-summary p{font-size:15px}.lesson-body{padding:0 25px 30px}.concept{margin-top:28px}.concept h2{font-size:22px}.concept p{font-size:16px}.training{margin-top:35px}.training .section-title{flex-direction:row;align-items:center}.training h2{font-size:25px}.training .section-title>div{flex:1;min-width:230px}.training .section-title p{font-size:14px}.python-state{font-size:13px}.playground h1{font-size:45px}.playground .training{padding:28px 24px}.playground-intro>p{font-size:16px}.journal-stats{grid-template-columns:1fr 1fr;margin-top:30px}.journal-stats b{font-size:43px}.journal-header{align-items:start;flex-direction:column;gap:23px}.journal-header p{font-size:16px}.badge-list{grid-template-columns:1fr 1fr;gap:12px}.journal section{margin-top:45px}.footprints{grid-template-columns:1fr}.journal section h2{font-size:26px}.review-row{padding:18px;gap:15px}.backup{padding:25px}.backup>div:last-child{width:100%}.backup .button{flex:1}.intro .learning-steps b{display:none}}@media(max-width:520px){:root{--gutter:20px}.header{padding-top:15px;gap:9px}.header .brand{font-size:21px}.header .brand img{width:29px;height:29px}.header .brand>span{font-size:17px}.header nav{font-size:13px}.nav-count{font-size:13px}.hero{padding-left:12px;padding-right:12px;padding-top:34px}.hero-heading{margin-bottom:32px}.hero h1{font-size:46px;line-height:1.2;white-space:normal}.mobile-br{display:block}.hero-heading p{font-size:15px;margin-top:18px}.folder-tabs{gap:2px}.folder-tab{font-size:13px;min-height:43px;clip-path:polygon(0 0,89% 0,100% 100%,0 100%)}.folder-tab.active{min-height:50px}.folder-paper{padding:27px 20px;gap:27px}.folder-copy h2{font-size:28px;white-space:normal;line-height:1.4}.folder-copy>p:not(.folder-context){font-size:15px;margin-bottom:20px}.folder-copy .button{width:100%}.folder-facts{gap:12px;justify-content:space-between}.folder-facts>span{font-size:13px}.folder-facts b{font-size:20px}.demo-code{font-size:13px;padding:16px 12px}.demo-code .line-number{font-size:13px;width:21px}.demo-controls{padding:0 12px 15px;gap:7px}.demo-controls .button{font-size:13px;padding:9px 10px}.demo-output{padding:13px 14px}.terminal-top{padding:12px 14px;font-size:13px}.intro{grid-template-columns:1fr;gap:24px;padding-top:55px;padding-bottom:55px}.intro h2{font-size:38px}.intro h2 br{display:none}.intro .learning-steps{gap:13px;font-size:13px}.intro>div>p{font-size:15px}.curriculum h2{font-size:30px}.section-title p{font-size:14px}.group-caption h3{font-size:20px}.group-caption p{font-size:13px}.course-row{padding:16px 13px;gap:9px}.course-row b{font-size:16px}.course-row small{font-size:13px;line-height:1.6}.course-status{font-size:22px;width:24px}.row-time{font-size:13px;align-self:start;padding-top:3px}.row-time>span{display:none}.field-note{grid-template-columns:1fr;padding-top:55px;padding-bottom:45px;gap:23px}.note-stamp{width:65px;font-size:28px}.field-note h2{font-size:27px}.field-note p br{display:none}.mini-note{grid-column:auto;padding:24px}.faq{padding-top:20px;padding-bottom:55px}.faq h2{font-size:25px}.faq details{padding:19px}.faq details p{font-size:15px}.faq summary{font-size:15px;line-height:1.7}.faq summary span{font-size:21px}.learning-layout{padding:0 10px 25px}.lesson-heading{padding:26px 20px}.lesson-heading h1{font-size:29px}.lesson-summary{flex-direction:column;gap:10px}.lesson-heading>p{font-size:13px}.lesson-body{padding:0 18px 25px}.concept h2{font-size:21px}.concept p{line-height:1.95;font-size:15px}.example-code>div{padding:12px 15px;align-items:start;flex-direction:column;gap:8px}.example-code pre{padding:18px 15px;font-size:13px}.pitfall{padding:19px;margin-bottom:35px}.pitfall p{font-size:14px}.quizzes>h2{font-size:23px}.quiz legend{font-size:16px}.quiz-options{grid-template-columns:1fr;gap:7px}.quiz-option{padding:12px 15px;font-size:14px;min-height:49px}.training .section-title{gap:15px}.training h2{font-size:24px}.task{padding:19px}.task>p{font-size:14px}.editor-top{padding:10px 14px}.editor-actions{padding:12px}.editor-actions>span{font-size:13px}.editor-actions>div{width:100%;justify-content:end}.editor-actions .button{padding:10px 14px;font-size:13px}.code-entry{grid-template-columns:34px minmax(0,1fr);padding-right:12px}.code-entry textarea{font-size:13px;min-height:210px}.gutter{font-size:13px;max-height:210px;padding-right:9px}.console-grid{grid-template-columns:1fr;gap:8px}.stdin textarea{min-height:72px}.console pre{font-size:13px;min-height:90px}.help-row{gap:8px}.help-row details{min-width:100%;padding:14px 17px}.test-result>div{grid-template-columns:1fr;gap:10px}.test-result pre{font-size:13px}.lesson-end{padding:20px}.lesson-end>div:first-child{font-size:13px}.lesson-end>div:last-child{align-items:start;flex-direction:column;gap:12px}.lesson-end .button{font-size:14px;gap:15px}.playground{padding-top:20px}.playground h1{font-size:40px}.playground .training{margin:30px -10px 0;padding:24px 15px}.snippet-buttons{gap:7px}.snippet-buttons button{font-size:13px;padding:9px 10px}.journal{padding-top:30px}.journal h1{font-size:36px}.journal-header p{font-size:15px}.journal-stats{gap:8px;margin-top:28px}.journal-stats>div{padding:22px}.journal-stats b{font-size:37px}.journal-stats b small{font-size:16px}.journal-stats span{font-size:13px}.big-progress{padding:21px}.badge-list{gap:8px}.badge{padding:21px 15px}.badge>span{font-size:36px}.badge h3{font-size:16px}.badge p,.badge small{font-size:13px}.journal section h2{font-size:24px}.review>p{font-size:14px}.review-row{align-items:start}.review-row b{font-size:14px}.review-row>span:last-child{font-size:13px}.footprint{padding:14px;gap:12px}.footprint b{font-size:14px}.footprint small{font-size:13px}.backup{padding:22px}.backup>div:last-child{gap:7px}.backup .button{font-size:14px;padding:12px 16px}.finished-banner{padding:22px;gap:18px}.finished-banner h3{font-size:19px}.finished-banner p{font-size:14px}footer{padding-top:35px;padding-bottom:35px;gap:22px}footer .brand{font-size:25px;gap:12px}footer .footer-mark{font-size:13px}footer>div{font-size:13px;gap:18px;flex-wrap:wrap}footer p{font-size:13px}#toast{font-size:13px;padding:13px 17px;bottom:18px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.folder-tab{transition:background-color .25s,color .25s,transform .25s var(--ease)}.first-program{transform-style:preserve-3d}.motion-action{position:relative;isolation:isolate;overflow:hidden}.motion-action:before{content:"";position:absolute;inset:0;background:#14398c;transform:translate(-102%);transition:transform .35s var(--ease);z-index:-1}.motion-action>span:last-child{transition:transform .25s var(--ease)}.concept-lab{padding-top:78px;padding-bottom:85px;background:#cbd5e5}.lab-intro{display:flex;justify-content:space-between;gap:45px;align-items:end;margin-bottom:35px}.lab-intro h2{font-size:clamp(32px,3.5vw,48px)}.lab-intro p{margin-top:18px;max-width:590px;color:#475772;font-size:16px}.lab-intro .text-link{white-space:nowrap;font-size:15px}.lab-workbench{background:var(--paper);padding:12px}.lab-tabs{position:relative;display:flex;background:#e2e5e8;padding:5px;gap:5px;isolation:isolate}.lab-tabs>button{position:relative;z-index:1;flex:1;border:0;background:none;padding:14px 18px;font-size:15px;color:#5c6673;min-height:50px}.lab-tabs>button[aria-selected=true]{color:var(--accent)}.lab-tab-glider,.step-glider{position:absolute;top:0;left:0;background:var(--paper);pointer-events:none;z-index:0}.lab-tabs>button[aria-selected=true]{background:#f6f5f1}.lab-split{display:grid;grid-template-columns:1fr 1.05fr;gap:45px;padding:35px 32px}.lab-explanation{display:flex;flex-direction:column;align-items:start;min-width:0}.lab-explanation h3{font-size:26px;margin-bottom:15px;line-height:1.5}.lab-explanation>p{font-size:16px;line-height:1.9}.lab-explanation pre{background:#e6e9ee;padding:16px 20px;width:100%;margin:20px 0;font-size:16px;color:#23497b}.lab-explanation .button{font-size:14px;min-height:46px}.lab-explanation>a{font-size:14px;color:var(--accent);margin-top:20px;padding:5px 0}.identity-scene{background:#e7ebef;padding:26px 24px;min-width:0}.memory-layout{display:grid;grid-template-columns:45px minmax(30px,1fr) 1.3fr;align-items:center;min-height:150px;color:#2456d6}.memory-labels{display:flex;flex-direction:column;justify-content:space-around;height:160px}.memory-labels>span{background:#d1dafa;display:grid;place-items:center;width:42px;height:42px;font-size:23px}.memory-layout svg{height:140px;width:100%;overflow:visible}.memory-layout svg>path{fill:none;stroke:currentColor;stroke-width:2;marker-end:url(#memory-arrow)}.memory-objects{display:flex;flex-direction:column;justify-content:space-around;gap:12px;min-width:0;height:160px}.memory-objects>div{background:var(--paper);padding:9px 18px;min-height:64px}.memory-objects small{font-size:13px;color:#6b7482;display:block}.memory-objects b{font:500 24px/1.5 Consolas,monospace;color:#24416a}.memory-objects .memory-ghost{background:transparent;color:#5c6a7d;font-size:13px;display:flex;align-items:center;padding:9px 10px}.comparison-results{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:24px}.comparison-results>span{padding:15px;background:#d3e3d7;display:flex;flex-direction:column;gap:5px;color:#21553b}.comparison-results>span:nth-child(2){background:#e4dbca;color:#765d2e}.comparison-results>span.same{background:#d3e3d7;color:#21553b}.comparison-results code{font-size:14px}.comparison-results b{font-size:27px;font-weight:500;line-height:1.4}.comparison-results small{font-size:13px}.range-label{display:flex;justify-content:space-between;width:100%;font-size:15px;margin-top:20px;color:#465975}.range-label output{font-size:21px;color:var(--accent);font-variant-numeric:tabular-nums}.lab-explanation input[type=range]{width:100%;accent-color:var(--accent);cursor:pointer;min-height:35px;margin:0}.division-scene{background:#e7ebef;padding:26px}.division-formula{font-size:29px;text-align:center;color:#24416a;font-variant-numeric:tabular-nums}.division-number-line{display:flex;justify-content:space-around;gap:5px;margin:27px 0;position:relative;background:#d2d9e2;padding:18px 8px 10px}.division-number-line>span{flex:1;display:flex;flex-direction:column;align-items:center;gap:7px;min-height:70px;text-align:center;color:#5c6a7d}.division-number-line i{width:7px;height:7px;background:#8f9fb5;display:block;border-radius:50%}.division-number-line b{font-size:21px;font-weight:500;line-height:1.3}.division-number-line small{font-size:13px;white-space:nowrap}.division-number-line .chosen{color:var(--accent)}.division-number-line .chosen i{background:var(--accent);transform:scale(1.8)}.division-results{display:grid;grid-template-columns:1fr 1fr;gap:12px}.division-results>div{background:var(--paper);padding:15px;display:flex;flex-direction:column;align-items:center;gap:5px}.division-results code{font-size:14px;color:#516078}.division-results b{font-size:34px;font-weight:500;color:var(--accent);line-height:1.3}.division-results small{font-size:13px;color:#516078}.division-proof{font-size:14px;color:#4c5c74;margin-top:16px;text-align:center}.truth-choices{display:flex;flex-wrap:wrap;gap:8px;margin-top:25px}.truth-choices button{border:0;min-width:75px;padding:12px 18px;font-size:16px;background:#e3e7ec;color:#4b5d79}.truth-choices button[aria-pressed=true]{background:var(--accent);color:#fff}.truth-scene{display:flex;flex-direction:column;justify-content:center;align-items:center;background:#e7ebef;min-height:290px;padding:28px;gap:13px;text-align:center}.truth-scene>code{font-size:23px;color:#355475}.truth-flow{font-size:30px;color:#8395ad;line-height:1}.truth-result{font-size:50px;font-weight:500;line-height:1.3}.truth-result.true{color:#215b43}.truth-result.false{color:#8b5735}.truth-scene p{font-size:15px;line-height:1.8;max-width:300px}.resume-strip{display:flex;justify-content:space-between;align-items:center;gap:20px;background:#dde5ef;padding:19px 24px;margin-bottom:35px;font-size:14px;color:#4a5e7a}.resume-strip>div{display:flex;gap:10px;align-items:center}.resume-dot{width:8px;height:8px;display:block;background:var(--accent);border-radius:50%}.resume-strip a{display:flex;gap:30px;align-items:center;color:var(--accent)}.lesson-stepper{position:sticky;top:0;z-index:10;display:flex;isolation:isolate;gap:5px;background:#dce2e9;padding:6px}.lesson-stepper>button{background:none;border:0;min-height:65px;display:flex;align-items:center;justify-content:center;gap:12px;flex:1;z-index:1;padding:10px 12px;min-width:0;text-align:left}.lesson-stepper>button[aria-current]{background:var(--paper)}.step-orb{width:29px;height:29px;display:grid;place-items:center;background:#c3cdda;color:#53647d;border-radius:50%;font-size:14px;flex-shrink:0}.lesson-stepper b{font-size:15px;font-weight:500;display:block;line-height:1.5;color:#4d607a}.lesson-stepper small{display:block;font-size:13px;color:#627188;line-height:1.5}.lesson-stepper [aria-current] .step-orb{background:var(--accent);color:#fff}.lesson-stepper .step-done .step-orb{background:#bdd7c7;color:#215b43}#concepts,#questions,#training{scroll-margin-top:96px}.run-pipeline{background:#e1e8f2;display:flex;align-items:center;gap:20px;padding:16px 20px;margin-bottom:12px;font-size:13px;color:#57708f}.run-pipeline ol{display:flex;align-items:center;gap:20px;margin:0;padding:0;list-style:none;flex:1}.run-pipeline li{display:flex;align-items:center;gap:8px;white-space:nowrap}.run-pipeline li:before{content:"";width:6px;height:6px;display:block;background:#9eadc2;border-radius:50%}.run-pipeline li.active{color:var(--accent);font-weight:500}.run-pipeline li.active:before{background:var(--accent)}.run-pipeline li.phase-done{color:#2c6545}.run-pipeline li.phase-done:before{background:#397753}.run-pipeline>span:last-child{font-size:13px;text-align:right}.run-pulse{display:flex;gap:3px;align-items:center;min-width:22px;height:20px}.run-pulse i{width:4px;height:14px;background:var(--accent);display:block;animation:code-active 1s ease-in-out infinite;transform-origin:center}.run-pulse i:nth-child(2){animation-delay:.15s}.run-pulse i:nth-child(3){animation-delay:.3s}.pipeline-finished .run-pulse i,.pipeline-error .run-pulse i{animation:none;transform:scaleY(.45)}.pipeline-finished .run-pulse i{background:#397753}.pipeline-error{background:#f0dfd8;color:#855243}.pipeline-error .run-pulse i{background:#9e5640}@keyframes code-active{0%,to{transform:scaleY(.4)}50%{transform:scaleY(1)}}@media(hover:hover)and (pointer:fine){.motion-action:hover:before{transform:translate(0)}.motion-action:hover>span:last-child{transform:translate(3px,-2px)}.lab-tabs>button:hover{color:var(--accent)}.truth-choices button:hover{background:#c3cee2}.truth-choices button[aria-pressed=true]:hover{background:#173fa6}.course-row:hover .course-status{transform:rotate(-10deg);transition:transform .25s var(--ease)}}@media(max-width:1100px){.lab-split{gap:25px;padding:28px 24px}.lab-explanation h3{font-size:23px}.run-pipeline{gap:12px;flex-wrap:wrap}.run-pipeline ol{gap:12px}.run-pipeline>span:last-child{width:100%;text-align:left;margin-left:32px}}@media(max-width:800px){.lab-intro{align-items:start;flex-direction:column;gap:14px}.lab-intro h2 br{display:none}.lab-intro p{margin-top:14px}.lab-split{grid-template-columns:1fr;gap:25px}.concept-lab{padding-top:55px;padding-bottom:60px}.lab-explanation pre{max-width:500px}.lab-explanation input[type=range]{max-width:none}.resume-strip{align-items:start;flex-direction:column;gap:12px}.resume-strip a{width:100%;justify-content:space-between}.lesson-stepper>button{gap:8px;padding:9px 8px}.lesson-stepper b{font-size:14px}.lesson-stepper small{font-size:13px}.step-orb{width:25px;height:25px;font-size:13px}}@media(max-width:520px){.concept-lab{padding:45px 12px 50px}.lab-intro{padding:0 8px;margin-bottom:25px}.lab-intro h2{font-size:30px}.lab-intro p{font-size:15px}.lab-intro .text-link{font-size:14px}.lab-workbench{padding:7px}.lab-tabs{gap:2px;padding:4px}.lab-tabs>button{font-size:13px;padding:12px 6px;min-height:46px}.lab-split{padding:24px 12px;gap:25px}.lab-explanation h3{font-size:23px}.lab-explanation>p{font-size:15px}.lab-explanation pre{font-size:15px}.identity-scene{padding:20px 15px}.memory-layout{grid-template-columns:38px minmax(30px,1fr) 1.4fr}.memory-labels>span{width:36px;height:36px;font-size:21px}.memory-objects>div{padding:10px 13px}.memory-objects b{font-size:23px}.comparison-results{gap:8px;margin-top:17px}.comparison-results>span{padding:13px}.comparison-results b{font-size:25px}.comparison-results small{font-size:13px}.division-scene{padding:22px 15px}.division-formula{font-size:25px}.division-number-line small{font-size:13px}.division-results{gap:8px}.division-results>div{padding:13px 8px}.division-results small{font-size:13px}.truth-choices{gap:7px}.truth-choices button{padding:10px 14px;min-width:70px;font-size:15px}.truth-scene{min-height:250px;padding:24px}.truth-scene>code{font-size:21px}.truth-result{font-size:45px}.resume-strip{padding:17px;font-size:13px;margin-bottom:25px}.resume-strip a{gap:12px}.resume-strip a>span{white-space:nowrap}.lesson-stepper{gap:2px;padding:4px}.lesson-stepper>button{padding:9px 5px;gap:5px;min-height:58px}.lesson-stepper b{font-size:13px}.lesson-stepper small{font-size:11px;white-space:nowrap}.step-orb{width:22px;height:22px;font-size:12px}#concepts,#questions,#training{scroll-margin-top:80px}.run-pipeline{padding:13px;gap:10px}.run-pipeline ol{gap:8px;justify-content:space-between}.run-pipeline li{gap:5px;font-size:12px}.run-pipeline li:before{width:5px;height:5px}.run-pipeline>span:last-child{font-size:12px;margin-left:30px}}@media(prefers-reduced-motion:reduce){.run-pulse i{animation:none;transform:scaleY(.6)}.motion-action:before{transition:none}.folder-tab,.motion-action>span:last-child{transition:none}}@media(min-width:801px){.header{min-height:82px}.hero{padding-top:34px}.hero-heading{margin-bottom:36px}.hero h1{font-size:clamp(46px,5.5vw,80px)}.hero-heading p{font-size:16px;margin-top:16px;line-height:1.7}}.tab-name-short{display:none}@media(max-width:520px){.tab-name-full{display:none}.tab-name-short{display:inline}.folder-tab{font-size:13px;padding-left:0;padding-right:3px;white-space:nowrap}.lesson-stepper small{font-size:12px}.lesson-stepper b{font-size:13px}}@media(min-width:801px){.folder-copy{align-self:start;padding-top:8px}}@media(min-width:801px){.lesson-sidebar{max-height:calc(100dvh - 112px)}}
