.learning{--learn-ink:#25322f;--learn-muted:#627063;width:min(calc(100% - var(--site-gutter) - var(--site-gutter)),1100px);margin:auto;padding:0 0 80px;color:var(--learn-ink);font-family:Arial,Helvetica,sans-serif;letter-spacing:-.01em}.learning *{box-sizing:border-box}.learning :is(h1,h2,p){margin:0}.learning :is(a,button,summary,textarea):focus-visible{outline:3px solid #6656aa;outline-offset:4px}.learn-back{padding:28px 0;border-bottom:1px solid #dce2da;font-size:12px}.learn-back a{color:#5d6b64;text-decoration:none}.learn-back a:hover{text-decoration:underline;text-underline-offset:4px}.learn-article{max-width:760px;margin:48px auto 60px}.learn-kicker{font-size:12px;color:#697567}.learn-article h1{font-size:clamp(36px,4.5vw,56px);letter-spacing:-.05em;line-height:1.08;font-weight:500;margin:20px 0}.learn-article .learn-introduction{font-size:20px;line-height:1.65;color:#627063}.learn-article section{margin-top:48px}.learn-article h2{font-size:27px;line-height:1.25;font-weight:500;letter-spacing:-.035em;margin-bottom:20px}.learn-article p{margin:16px 0;font-size:16px;line-height:1.8}.learn-prerequisites{background:#edf0e7;border-radius:12px;padding:20px 24px;margin-top:32px;font-size:13px}.learn-prerequisites p{font-size:14px;margin:8px 0 0}.learn-article a{text-decoration:underline;text-underline-offset:4px}.learn-article pre{max-width:100%;overflow:auto;background:#eef0e9;padding:22px;border-radius:10px;line-height:1.8;font-size:13px}.learn-article code{font-family:ui-monospace,monospace;font-size:.88em}.learn-article pre code{font-size:inherit}.learn-article .learn-equation{text-align:center;font-family:Georgia,serif;font-size:23px;padding:12px 0;line-height:1.9;overflow-wrap:anywhere}.learn-article details{border-top:1px solid #dce3d6;padding:20px 0;margin-top:12px}.learn-article summary{cursor:pointer;font-size:15px}.learn-download{display:inline-block;padding:12px 0;font-size:14px;font-weight:600}.python-runner{margin:26px 0;overflow:hidden;border:1px solid #d7ded4;border-radius:12px;background:#fff}.python-runner-bar{display:flex;min-height:48px;padding:8px 10px 8px 16px;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid #dfe4dc;background:#f2f4ef}.python-runner-bar span{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.python-runner-bar button{min-height:32px;padding:0 15px;border:0;border-radius:6px;background:#314d40;color:#fff;font-size:12px;font-weight:700;cursor:pointer}.python-runner-bar button:hover{background:#253c31}.python-runner-bar button:disabled{cursor:wait;opacity:.62}.python-editor-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.python-runner textarea{display:block;width:100%;min-height:230px;resize:vertical;padding:20px;border:0;border-radius:0;outline:0;background:#19211e;color:#eef4ef;font:13px/1.65 ui-monospace,SFMono-Regular,Menlo,monospace;tab-size:4}.python-runner textarea:focus{box-shadow:inset 0 0 0 3px #8d7bd8}.python-run-status{padding:12px 16px;color:#65716b;font-size:11px!important;line-height:1.5!important}.python-output,.python-run-status{margin:0!important;border-top:1px solid #dfe4dc}.python-output{border-radius:0!important;background:#f3f5f1!important}.python-checks{padding:17px 18px 19px;border-top:1px solid #dfe4dc}.python-checks>strong{color:#7a403b;font-size:13px}.python-checks[data-passed=true]>strong{color:#386148}.python-checks ul{display:grid;gap:9px;margin:14px 0 0;padding:0;list-style:none}.python-checks li{display:flex;gap:10px;color:#914d46;font-size:12px}.python-checks li[data-passed=true]{color:#3e6a4f}.python-checks li b{display:block;font-weight:600}.python-checks li small{display:block;margin-top:3px;color:#6c756f;line-height:1.5}.python-checks p{margin:16px 0 0!important;color:#6c756f;font-size:11px!important;line-height:1.55!important}.project-workspace{width:min(calc(100vw - var(--site-gutter) - var(--site-gutter)),1080px);margin-left:50%;transform:translateX(-50%)}.project-workspace-heading{display:flex;align-items:end;justify-content:space-between;gap:24px}.project-workspace-heading h2{margin:7px 0 0}.project-workspace-save :is(button,a),.workspace-notice button{padding:0;border:0;background:transparent;color:#405a4d;font-size:11px;font-weight:700;text-decoration:underline;text-underline-offset:4px;cursor:pointer}.workspace-notice{display:flex;margin-top:18px;padding:12px 15px;align-items:center;justify-content:space-between;gap:18px;border:1px solid #d6ded4;background:#f2f4ef;color:#5f6c65;font-size:11px}.milestone-progress{display:grid;gap:9px;margin:24px 0 14px;color:#66736c;font-size:10px}.milestone-progress>div{height:3px;background:#dfe5dd}.milestone-progress>div span{display:block;height:100%;background:#4e6c5d}.project-workspace-grid{display:grid;grid-template-columns:220px minmax(0,1fr);overflow:hidden;border:1px solid #d8dfd6;border-radius:12px;background:#fff}.milestone-nav{padding:10px;border-right:1px solid #dfe4dc;background:#f3f5f1}.milestone-nav button{display:grid;width:100%;grid-template-columns:22px minmax(0,1fr);gap:8px;padding:11px 9px;border:0;border-radius:7px;background:transparent;color:#536159;text-align:left;cursor:pointer}.milestone-nav button:hover{background:#e8ece6}.milestone-nav button[aria-current=step]{background:#fff;color:#26352e;box-shadow:0 0 0 1px #d6ddd4}.milestone-nav button>span:first-child{color:#8a958f;font-size:10px}.milestone-nav button>span:last-child{font-size:11px;font-weight:700;line-height:1.35}.milestone-nav small{display:block;margin-top:3px;color:#7b8780;font-size:9px;font-weight:400}.milestone-work{min-width:0}.milestone-work>header{padding:22px 24px;border-bottom:1px solid #dfe4dc}.milestone-work>header p{color:#758078;font-size:9px;text-transform:uppercase}.milestone-work>header h3{margin:7px 0 8px;font-family:Georgia,Times New Roman,serif;font-size:25px;font-weight:400}.milestone-work>header>span{color:#59665f;font-size:12px;line-height:1.55}.workspace-files{display:flex;max-width:100%;padding:8px;gap:5px;overflow-x:auto;border-bottom:1px solid #dfe4dc}.workspace-files button{flex:none;padding:8px 10px;border:0;border-radius:5px;background:transparent;color:#68756e;font:10px ui-monospace,SFMono-Regular,Menlo,monospace;cursor:pointer}.workspace-files button[aria-selected=true]{background:#e9eee8;color:#26372f}.workspace-files small{display:block;margin-top:2px;color:#89938e;font:8px Arial,sans-serif}.milestone-work>textarea{display:block;width:100%;min-height:430px;padding:20px 22px;resize:vertical;border:0;outline:0;background:#17201c;color:#edf3ee;font:12px/1.65 ui-monospace,SFMono-Regular,Menlo,monospace;tab-size:4}.milestone-work>textarea[readonly]{background:#202824;color:#c9d0cb}.milestone-work>textarea:focus{box-shadow:inset 0 0 0 3px #8d7bd8}.workspace-actions{display:flex;flex-wrap:wrap;gap:9px;padding:14px 16px 0}.workspace-actions button{min-height:34px;padding:0 14px;border:1px solid #aab8ad;border-radius:6px;background:#fff;color:#31473d;font-size:10px;font-weight:700;cursor:pointer}.workspace-actions button:first-child{border-color:#314d40;background:#314d40;color:#fff}.workspace-actions button:disabled{cursor:wait;opacity:.6}.workspace-status{margin:0!important;padding:12px 16px 15px;color:#68756e;font-size:10px!important}.workspace-check{margin:0 16px 16px;padding:13px 14px;border-left:3px solid #a75b50;background:#f8f2ef}.workspace-check[data-passed=true]{border-color:#4b755c;background:#f0f5f0}.workspace-check strong{font-size:11px}.workspace-check p{margin:5px 0 0!important;font-size:11px!important;line-height:1.5!important}.workspace-check pre{margin:12px 0 0}.workspace-limit{margin:13px 0 0!important;color:#718078;font-size:10px!important;line-height:1.55!important}.learn-figure{margin:26px 0;background:#f2f3ed;border:1px solid #e3e7dc;border-radius:14px;padding:20px}.pen-surface{height:320px;width:100%}.pen-surface canvas{display:block}.learn-controls{display:flex;flex-wrap:wrap;align-items:center;gap:15px;font-size:14px;margin:12px 0}.learn-controls label{display:flex;gap:12px;align-items:center}.learn-controls input{flex:1 1;min-width:100px;accent-color:var(--figure-lilac-accent)}.learn-controls select{max-width:100%;padding:9px;background:#fafbf7;border:1px solid #bbc5b5;border-radius:6px;color:#25322f}.learn-actions{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}.learn-actions button{padding:11px 17px;border:1px solid #b7c3b0;border-radius:7px;background:#fafbf7;font-size:13px}.learn-actions button:hover{background:#e3eadc}.learn-figure figcaption{font-size:12px;line-height:1.7;color:#627063}.learn-metrics{display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px;margin:22px 0;font-size:12px}.learn-metrics strong{display:block;font-size:21px;margin-top:6px;font-weight:500}.learn-article table{width:100%;border-collapse:collapse;font-size:14px;margin:20px 0;text-align:left}.learn-article caption{text-align:left;color:#627063;font-size:12px;padding-bottom:12px}.learn-article td,.learn-article th{border-bottom:1px solid #d9dfd3;padding:10px 6px}.learn-sources>a{display:block;margin:16px 0;font-size:14px;line-height:1.7}@media (max-width:600px){.learning{width:calc(100% - 40px)}.learn-back{padding:22px 0}.learn-article{margin:26px auto 40px}.learn-article .learn-introduction{font-size:17px}.learn-article p{font-size:15px}.learn-article h2{font-size:24px}.learn-prerequisites{padding:18px}.learn-figure{padding:12px}.pen-surface{height:245px}.learn-controls output{width:100%}.learn-article .learn-equation{font-size:18px}.project-workspace{width:calc(100vw - 40px)}.project-workspace-heading{align-items:flex-start;flex-direction:column}.project-workspace-grid{grid-template-columns:1fr}.milestone-nav{display:flex;overflow-x:auto;border-right:0;border-bottom:1px solid #dfe4dc}.milestone-nav button{flex:0 0 165px}.milestone-work>textarea{min-height:360px}}