@font-face{font-family:Open Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/open-sans-latin-400-normal-Bk63H6sG.woff2)format("woff2"),url(/assets/open-sans-latin-400-normal-DKniycaP.woff)format("woff")}@font-face{font-family:Open Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/open-sans-latin-500-normal-C0rntwkW.woff2)format("woff2"),url(/assets/open-sans-latin-500-normal-BxcNt415.woff)format("woff")}@font-face{font-family:Open Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/open-sans-latin-600-normal-Cp4N6AwT.woff2)format("woff2"),url(/assets/open-sans-latin-600-normal-C3dWW5mx.woff)format("woff")}@font-face{font-family:Open Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/open-sans-latin-700-normal-CceUhp2e.woff2)format("woff2"),url(/assets/open-sans-latin-700-normal-CZCQA30i.woff)format("woff")}@font-face{font-family:Open Sans;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/open-sans-latin-800-normal-C0t39IfQ.woff2)format("woff2"),url(/assets/open-sans-latin-800-normal-w4vykUBk.woff)format("woff")}:root{color:#102634;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fff;font-family:Open Sans,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:#fff;min-width:320px;min-height:100vh;margin:0}button,a{font:inherit}button:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #6ab8c4}#root{min-height:100vh}.app-shell{--ink:#102634;--muted:#5c707b;--line:#d8e2e5;--paper:#fff;--mist:#f0f5f4;--navy:#102634;--blue:#1e6681;--cyan:#a8e2e2;--lime:#d7ef85;--coral:#ef8d73;min-height:100vh;color:var(--ink);background:var(--paper);flex-direction:column;display:flex}.topbar{z-index:10;background:var(--navy);color:#f5fbfa;justify-content:space-between;align-items:center;min-height:57px;padding:0 6.5vw;display:flex;position:sticky;top:0}.brand,.footer-brand{align-items:center;gap:.8rem;display:flex}.topbar .brand{color:inherit;text-decoration:none}.topbar .brand:hover .brand-title{color:var(--cyan)}.brand-mark{object-fit:cover;border-radius:8px;flex:none;width:2.55rem;height:2.55rem;display:block}.brand-title{font-size:1.08rem;font-weight:750;display:block}.brand small{color:#b5c7ce;margin-top:.12rem;font-size:.78rem;display:block}.topnav{align-items:center;gap:.5rem;display:flex}.topbar .topnav{position:absolute;left:50%;transform:translate(-50%)}.nav-link{color:#d8e6e9;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:.7rem 1rem;font-size:.98rem;font-weight:650;text-decoration:none;position:relative}.nav-link:hover,.nav-link.active{color:#fff;background:#1b4050}.catalog-page,.tutorials-page{flex:1;width:min(1120px,100% - 3rem);margin:0 auto}.catalog-page{padding:5.4rem 0 4rem}.home-intro{text-align:center;width:100%;padding-bottom:4rem;animation:.5s both rise-in}.eyebrow{color:var(--blue);letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:800;line-height:1.4}.home-intro h1,.tutorials-heading h1{max-width:760px;color:var(--ink);margin:1rem 0 1.1rem;font-size:3rem;font-weight:800;line-height:1.08}.home-intro h1{max-width:none;margin-top:0;font-size:3.5rem}.home-lede{color:#4e646e;max-width:none;margin:0;font-size:1.125rem;line-height:1.8}.home-intro img,.learning-intro img{object-fit:contain;width:100%;height:auto;max-height:590px;margin:2rem auto 0;display:block}.learning-intro{border-top:1px solid var(--line);text-align:center;padding:3.1rem 0 3.5rem}.learning-intro h2{margin:0 0 1.1rem;font-size:2.25rem;font-weight:800;line-height:1.2}.home-explore{background:#fff;width:100%;margin:0;padding:0 0 2.5rem}.home-explore img{object-fit:contain;width:100%;height:auto;max-height:590px;display:block}.home-explore .explore-button{width:fit-content;min-height:48px;margin:1.5rem auto 0;padding:.8rem 1.1rem;font-size:.9rem;display:flex}.learning-reasons{border-top:1px solid var(--line);grid-template-columns:minmax(240px,.82fr) minmax(0,1.18fr);gap:4rem;padding:3.1rem 0 3.5rem;display:grid}.section-heading h2{max-width:480px;margin:0;font-size:2rem;font-weight:800;line-height:1.2}.reason-list{border-top:1px solid var(--line)}.reason-item{border-bottom:1px solid var(--line);grid-template-columns:2.4rem 1fr;gap:1rem;padding:1.3rem 0;display:grid}.reason-item>span{color:#357991;font-size:.8rem;font-weight:800}.reason-item h3{margin:0;font-size:1rem;font-weight:750}.reason-item p{max-width:540px;color:var(--muted);margin:.45rem 0 0;font-size:.9rem;line-height:1.65}.home-courses{border-top:1px solid var(--line);padding:3.3rem 0 3.7rem}.section-heading-inline,.tutorials-heading{justify-content:space-between;align-items:end;gap:2rem;margin-bottom:1.8rem;display:flex}.section-heading-inline h2{max-width:540px}.home-courses-heading{text-align:center;grid-template-columns:1fr auto 1fr;align-items:center;display:grid}.home-courses-heading>div{grid-column:2}.home-courses-heading h2{max-width:none}.course-count{color:var(--muted);grid-column:3;justify-self:end;padding-bottom:.35rem;font-size:.84rem}.course-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.course-card{min-width:0;min-height:230px;color:var(--ink);text-align:left;cursor:pointer;background:#f3f7f6;border:1px solid #d5e0e3;border-radius:8px;flex-direction:column;align-items:stretch;gap:1rem;padding:1.35rem;text-decoration:none;transition:transform .18s,border-color .18s,box-shadow .18s;display:flex;position:relative;overflow:hidden}.course-card:before{background:var(--cyan);content:"";width:45%;height:6px;position:absolute;top:0;right:0}.course-card:hover{border-color:#91b6bd;transform:translateY(-3px);box-shadow:0 14px 30px #10263417}.course-card h3{margin:.25rem 0 0;font-size:1.35rem;font-weight:800;line-height:1.25}.course-card p{color:var(--muted);margin:0;font-size:.88rem;line-height:1.65}.course-card-footer{color:#386a79;border-top:1px solid #d8e2e2;justify-content:space-between;align-items:center;margin-top:auto;padding-top:.8rem;font-size:.8rem;font-weight:750;display:flex}.explore-button{background:var(--lime);min-height:48px;color:var(--ink);white-space:nowrap;cursor:pointer;border:0;border-radius:6px;justify-content:center;align-items:center;gap:1.5rem;padding:.8rem 1.1rem;font-size:.9rem;font-weight:800;text-decoration:none;display:inline-flex}.explore-button:hover{background:#e4f5ad}.tutorials-page{padding:4.5rem 0 5rem}.tutorials-heading{border-bottom:1px solid var(--line);align-items:end;padding-bottom:1.6rem}.tutorials-heading h1{margin:.65rem 0 0;font-size:2.65rem}.tutorials-heading>p{max-width:390px;color:var(--muted);margin:0 0 .2rem;font-size:.94rem;line-height:1.65}.layout{background:#f6f8f7;flex:1;grid-template-columns:292px 8px minmax(0,1fr);width:100%;min-width:0;min-height:calc(100vh - 57px);display:grid}.sidebar{background:#f0f4f3;border-right:1px solid #dce4e4;align-self:start;height:calc(100vh - 57px);padding:1.45rem 1rem;position:sticky;top:57px;overflow-y:auto;container-type:inline-size}.sidebar-header{padding:.4rem .55rem 1.25rem}.back-link{color:#3a6f7d;cursor:pointer;background:0 0;border:0;margin-bottom:1.5rem;padding:0;font-size:.8rem;font-weight:750;display:block}.back-link:hover{color:var(--ink)}.sidebar-header p{color:#71848a;letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:.68rem;font-weight:800}.sidebar-header h2{margin:.45rem 0 0;font-size:clamp(1rem,4.4cqi,1.25rem);font-weight:800;line-height:1.3}.chapter-list{flex-direction:column;gap:.6rem;display:flex}.chapter-block{background:#fbfcfc;border:1px solid #dbe4e4;border-radius:7px;overflow:hidden}.chapter-toggle{width:100%;min-height:46px;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:.5rem;padding:.75rem .85rem;font-size:clamp(.72rem,3.2cqi,.9rem);font-weight:750;display:flex}.chapter-toggle span:last-child{color:#4f8290;font-size:1rem}.subchapter-list{flex-direction:column;gap:.2rem;padding:0 .45rem .5rem;display:flex}.subchapter{color:#536972;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:5px;flex-direction:column;gap:.25rem;width:100%;padding:.67rem .65rem;font-size:clamp(.68rem,3cqi,.86rem);line-height:1.4;text-decoration:none;display:flex}.subchapter:hover{color:var(--ink);background:#edf4f3}.subchapter.active{color:#174b5a;background:#dceeed;font-weight:750}.sidebar-resizer{z-index:1;cursor:col-resize;touch-action:none;-webkit-user-select:none;user-select:none;margin-inline:-3px;position:relative}.sidebar-resizer:after{content:"";background:0 0;width:2px;position:absolute;top:0;bottom:0;left:3px}.sidebar-resizer:hover:after,.sidebar-resizer:focus-visible:after{background:#4c7e87}.sidebar-resizer:focus-visible{outline:none}.content{width:min(1440px,100%);min-width:0;margin:0 auto;padding:2rem clamp(1rem,2vw,1.75rem) 4rem}.lesson-header{margin-bottom:1.45rem}.lesson-header .eyebrow{color:#4c7e87}.lesson-header h1{margin:.5rem 0 .45rem;font-size:2rem;font-weight:800;line-height:1.2}.lesson-header p{max-width:660px;color:var(--muted);margin:0;font-size:.92rem;line-height:1.65}.focus-banner{color:#658087;align-items:center;gap:.65rem;margin-bottom:.85rem;font-size:.76rem;display:flex}.focus-banner strong{color:#285b68;font-size:.78rem}.notebook{background:#fff;border:1px solid #d9e0e1;border-radius:7px;overflow:hidden;box-shadow:0 12px 32px #122c370f}.notebook-toolbar{color:#425b64;background:#fafcfc;border-bottom:1px solid #e2e8e8;justify-content:space-between;align-items:center;gap:1rem;min-height:46px;padding:.65rem 1rem;font-size:.75rem;font-weight:750;display:flex}.notebook-kernel{color:#70868b;align-items:center;gap:.45rem;font-weight:600;display:flex}.notebook-kernel i{background:#73b78a;border-radius:50%;width:7px;height:7px}.notebook-cell{border-bottom:1px solid #edf0f0;grid-template-columns:1fr;min-width:0;padding:1.15rem 1.35rem;display:grid}.notebook-cell:last-child{border-bottom:0}.notebook-download{width:fit-content;margin:.75rem 1rem .85rem auto;display:block;position:relative}.notebook-download summary{color:#285b68;cursor:pointer;background:#fff;border:1px solid #cbd9db;border-radius:5px;align-items:center;gap:1rem;min-height:38px;padding:.45rem .75rem;font-size:.78rem;font-weight:750;list-style:none;display:inline-flex}.notebook-download summary::-webkit-details-marker{display:none}.notebook-download summary span:last-child{color:#64828a;font-size:1rem}.notebook-download[open] summary{border-color:#7eaeb5;border-radius:5px 5px 0 0}.download-options{z-index:3;background:#fff;border:1px solid #cbd9db;border-radius:6px;width:min(250px,100vw - 2rem);padding:.35rem;display:grid;position:absolute;bottom:calc(100% - .2rem);right:0;box-shadow:0 10px 24px #122c3724}.download-options button{color:#203b47;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:4px;justify-content:space-between;align-items:center;gap:1rem;min-height:42px;padding:.6rem .7rem;font-size:.78rem;font-weight:700;display:flex}.download-options button:hover{background:#edf4f3}.download-options button span{color:#69828a;font-family:SFMono-Regular,Consolas,monospace;font-size:.72rem;font-weight:500}.notebook-ad{min-width:0;min-height:100px}.ad-setup-placeholder{color:#667d83;text-align:center;background:#f7f9f9;border:1px dashed #becdce;border-radius:5px;place-content:center;min-height:120px;display:grid}.ad-setup-placeholder span{letter-spacing:.1em;text-transform:uppercase;font-size:.7rem;font-weight:800}.ad-setup-placeholder p{margin:.4rem 1rem 0;font-size:.8rem}.ad-local-preview{color:#425b64;background:#f0f5f4;border:1px dashed #9bb7bb;border-radius:5px;flex-direction:column;justify-content:center;gap:.45rem;min-height:180px;padding:1.25rem;display:flex}.ad-local-preview span{color:#4c7e87;letter-spacing:.08em;text-transform:uppercase;font-size:.7rem;font-weight:800}.ad-local-preview strong{color:var(--ink);font-size:1rem}.ad-local-preview p{margin:0;font-size:.82rem}.markdown-cell-content{color:#253f49;min-width:0;padding:.1rem .2rem;font-size:.92rem;line-height:1.75}.markdown-cell-content>:first-child{margin-top:0}.markdown-cell-content>:last-child{margin-bottom:0}.markdown-cell-content h1,.markdown-cell-content h2,.markdown-cell-content h3,.markdown-cell-content h4{color:#183744;margin:.3rem 0 .65rem;font-weight:800;line-height:1.3}.markdown-cell-content h1{font-size:1.55rem}.markdown-cell-content h2{font-size:1.28rem}.markdown-cell-content h3,.markdown-cell-content h4{font-size:1.08rem}.markdown-cell-content p{margin:.5rem 0}.markdown-cell-content ul,.markdown-cell-content ol{padding-left:1.5rem}.markdown-cell-content li{padding-left:.2rem}.markdown-cell-content a{color:#176c86;text-underline-offset:3px;text-decoration-thickness:1px}.markdown-cell-content code{color:#275466;background:#f1f5f4;border:1px solid #e0e8e8;border-radius:4px;padding:.12rem .3rem;font-family:SFMono-Regular,Consolas,monospace;font-size:.87em}.code-input,.code-output{grid-template-columns:5.4rem minmax(0,1fr);align-items:start;gap:.7rem;display:grid}.code-input{position:relative}.cell-prompt{color:#74868b;text-align:right;white-space:nowrap;padding-top:.75rem;font-family:SFMono-Regular,Consolas,monospace;font-size:.72rem}.code-input pre,.code-output pre{white-space:pre-wrap;overflow-wrap:anywhere;min-width:0;margin:0;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.82rem;line-height:1.65;overflow-x:auto}.code-input pre{color:#203b47;background:#f5f7f7;border:1px solid #d8e1e2;border-radius:5px;padding:.75rem 5rem .75rem .9rem}.code-input .hljs-keyword,.code-input .hljs-literal,.code-input .hljs-built_in{color:#9a3e70;font-weight:700}.code-input .hljs-string,.code-input .hljs-doctag{color:#2d6f49}.code-input .hljs-number{color:#9a541d}.code-input .hljs-comment{color:#718087;font-style:italic}.code-input .hljs-title.function_,.code-input .hljs-title.class_{color:#176c86;font-weight:700}.code-input .hljs-params,.code-input .hljs-variable,.code-input .hljs-attr{color:#4b5663}.code-copy-button{color:#285b68;cursor:pointer;background:#fff;border:1px solid #cbd9db;border-radius:4px;min-height:30px;padding:.3rem .55rem;font-size:.7rem;font-weight:700;position:absolute;top:.45rem;right:.45rem}.code-copy-button:hover{background:#edf4f3;border-color:#7eaeb5}.code-output{margin-top:.55rem}.code-output .cell-prompt{color:#4f8290}.code-output pre{color:#273b42;padding:.3rem .9rem .55rem}.code-output img{max-width:100%;height:auto}.site-footer{background:var(--navy);color:#f5fbfa;grid-template-columns:1fr auto 1fr;align-items:center;gap:1.5rem;min-height:54px;margin-top:auto;padding:.55rem 6.5vw;display:grid}.footer-brand>div{flex-direction:column;gap:.25rem;display:flex}.footer-brand .brand-mark{width:2rem;height:2rem}.footer-brand strong{font-size:.85rem}.footer-brand span:not(.brand-mark){color:#b5c7ce;font-size:.72rem}.footer-links{gap:.35rem;display:flex}.footer-links a,.footer-links button{color:#d8e6e9;cursor:pointer;background:0 0;border:0;border-radius:5px;align-items:center;padding:.38rem .7rem;font-size:.78rem;text-decoration:none;display:inline-flex}.footer-links a:hover,.footer-links button:hover{color:#fff;background:#1b4050}.site-footer>small{color:#b5c7ce;justify-self:end;font-size:.72rem}.legal-page{flex:1;width:min(860px,100% - 3rem);margin:0 auto;padding:4rem 0 5rem}.legal-page h1{color:var(--ink);margin:.55rem 0 1.25rem;font-size:2.5rem;font-weight:800}.legal-intro{max-width:75ch;color:var(--muted);margin:0 0 2rem;line-height:1.7}.legal-section{border-top:1px solid var(--line);padding:1.4rem 0}.legal-section h2{color:var(--ink);margin:0 0 .8rem;font-size:1.08rem}.legal-section p{color:#435c66;overflow-wrap:anywhere;max-width:78ch;margin:.45rem 0;font-size:.92rem;line-height:1.75}.legal-section a{color:#176c86}.legal-notice{color:#705a36;background:#fbf6ed;border-left:3px solid #efbd73;margin-top:1.5rem;padding:.85rem 1rem;font-size:.82rem;line-height:1.6}.legal-markdown{color:#435c66;font-size:.96rem;line-height:1.75}.legal-markdown h1,.legal-markdown h2{color:var(--ink);line-height:1.25}.legal-markdown h1{margin:0 0 1.5rem;font-size:2.5rem}.legal-markdown h2{border-top:1px solid var(--line);margin:2rem 0 .7rem;padding-top:1.2rem;font-size:1.25rem}.legal-markdown p,.legal-markdown ul{max-width:78ch;margin:.75rem 0}.legal-markdown li+li{margin-top:.35rem}.legal-markdown a{color:#176c86;text-underline-offset:2px}.legal-markdown blockquote{color:#705a36;background:#fbf6ed;border-left:3px solid #efbd73;margin:1.5rem 0 0;padding:.85rem 1rem;font-size:.86rem}.legal-markdown blockquote p{margin:0}.language-toggle{background:#f2f6f5;border:1px solid #cbd9db;border-radius:6px;flex:none;gap:2px;padding:3px;display:inline-flex}.legal-page>.language-toggle{width:fit-content;margin:0 0 1rem auto;display:flex}.language-toggle button{color:#4c626b;cursor:pointer;background:0 0;border:0;border-radius:4px;min-width:38px;min-height:32px;padding:.3rem .45rem;font-size:.72rem;font-weight:800}.language-toggle button[aria-pressed=true]{color:#fff;background:#102634}@keyframes rise-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (width<=900px){.learning-reasons{grid-template-columns:1fr;gap:1.8rem}.course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.layout{grid-template-columns:250px minmax(0,1fr)}.sidebar{height:calc(100vh - 57px)}.content{padding:1.8rem 1.2rem 3rem}}@media (width<=640px){.topbar{grid-template-columns:1fr;justify-items:start;gap:.35rem;min-height:78px;padding:0 1rem;display:grid}.topbar .nav-link{padding-block:.45rem}.topbar .topnav{justify-self:center;position:static;transform:none}.layout{flex-direction:column;display:flex}.sidebar{border-bottom:1px solid #dce4e4;border-right:0;width:100%;height:auto;max-height:42vh;padding:.8rem 1rem 1rem;position:static}.sidebar-resizer{display:none}.sidebar-header{padding:.35rem .3rem .8rem}.back-link{margin-bottom:.9rem}.chapter-list{gap:.4rem}.catalog-page,.tutorials-page{width:min(100% - 2rem,1120px)}.catalog-page{padding:3.3rem 0 2.5rem}.home-intro{padding-bottom:2.5rem}.home-intro img,.learning-intro img,.home-explore img{max-height:none}.home-intro h1,.tutorials-heading h1{font-size:2.5rem}.home-intro h1{font-size:2.75rem}.home-lede{font-size:1.0625rem}.learning-intro{padding:2.5rem 0}.learning-intro h2{font-size:2rem}.section-heading h2{font-size:1.65rem}.section-heading-inline,.tutorials-heading{flex-direction:column;align-items:start;gap:.8rem}.home-courses-heading{grid-template-columns:1fr;justify-items:center;display:grid}.home-courses-heading>div,.home-courses-heading .course-count{grid-column:1;justify-self:center}.course-grid{grid-template-columns:1fr}.course-card{min-height:240px}.tutorials-page{padding:3.2rem 0}.content{padding:1.5rem 1rem 2.5rem}.lesson-header h1{font-size:1.65rem}.notebook-cell{padding:.9rem .75rem}.code-input,.code-output{grid-template-columns:3.4rem minmax(0,1fr);gap:.4rem}.cell-prompt{font-size:.62rem}.code-input pre,.code-output pre{font-size:.75rem}.site-footer{grid-template-columns:1fr;justify-items:start;gap:.5rem;padding:.7rem 1rem}.footer-links{flex-wrap:wrap}.site-footer>small{justify-self:start}.legal-page{width:min(100% - 2rem,860px);padding:3rem 0}.legal-page h1{font-size:2rem}}
