:root{color-scheme:dark;--learn-bg:#101220;--learn-panel:#171b2d;--learn-raised:#20263c;--learn-text:#f4f6ff;--learn-muted:#a7b1cf;--learn-edge:#343c56;--learn-lime:#c4ff3a;--learn-cyan:#6be6f6;--learn-pink:#ff77b4;--learn-lilac:#b2a0ff;--learn-mono:ui-monospace, "SFMono-Regular", Consolas, monospace}*{box-sizing:border-box}html{scroll-padding-top:6rem}body.learn-site{background:var(--learn-bg);color:var(--learn-text);margin:0;font-family:Inter,ui-sans-serif,system-ui,sans-serif;line-height:1.6}a{color:inherit;text-underline-offset:.22em}button,input{font:inherit}button,summary{cursor:pointer}button{color:inherit}button:disabled{cursor:wait}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,iframe:focus-visible,pre:focus-visible{outline:3px solid var(--learn-cyan);outline-offset:4px}button,a{-webkit-tap-highlight-color:transparent}button{touch-action:manipulation}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:20;background:var(--learn-lime);color:var(--learn-bg);padding:.7rem 1rem;font-weight:800;position:fixed;top:-5rem;left:1rem}.skip-link:focus{top:1rem}.learn-header{border-bottom:2px solid var(--learn-edge);background:var(--learn-bg)}.learn-header-inner{align-items:center;gap:48px;max-width:1640px;min-height:84px;margin:auto;padding:0 40px;display:flex}.learn-header .wordmark{color:var(--learn-text)}.learn-nav{align-items:center;gap:28px;margin-left:auto;display:flex}.learn-nav a{color:var(--learn-muted);padding:10px 0;font-weight:650;text-decoration:none}.learn-nav a:hover,.learn-nav a[aria-current]{color:var(--learn-lime)}.search-open{background:var(--learn-panel);border:1px solid var(--learn-edge);min-height:40px;color:var(--learn-muted);border-radius:6px;align-items:center;gap:32px;padding:7px 12px;font-size:.875rem;display:flex}.search-open:hover{color:var(--learn-text);border-color:var(--learn-cyan)}kbd{font-family:var(--learn-mono);font-size:.7rem}.learn-main{width:min(1560px,100% - 80px);min-height:70vh;margin:0 auto}.overline{color:var(--learn-cyan);font:600 .76rem/1.5 var(--learn-mono);letter-spacing:.08em;text-transform:uppercase;text-decoration:none}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.045em;line-height:1.08}h1{font-size:clamp(2.4rem,4.3vw,4.4rem);font-weight:850}h2{font-size:clamp(1.8rem,2.8vw,2.6rem)}.tone-lime{--chapter-color:var(--learn-lime)}.tone-cyan{--chapter-color:var(--learn-cyan)}.tone-lilac{--chapter-color:var(--learn-lilac)}.tone-pink{--chapter-color:var(--learn-pink)}.chapter-track{border-bottom:1px solid var(--learn-edge);grid-template-columns:repeat(8,1fr);padding:26px 0 0;display:grid}.chapter-track a{color:var(--learn-muted);border-bottom:3px solid #0000;align-items:center;gap:10px;margin-bottom:-1px;padding:12px 8px 19px;font-size:.85rem;text-decoration:none;display:flex}.chapter-track a:hover{background:var(--learn-panel);color:var(--learn-text)}.chapter-track a span{font:500 .7rem var(--learn-mono);border:1px solid var(--learn-edge);border-radius:5px;place-items:center;width:28px;height:28px;display:grid}.chapter-track a.current{border-color:var(--chapter-color);color:var(--learn-text)}.chapter-track a.current span{background:var(--chapter-color);color:var(--learn-bg);border-color:var(--chapter-color);font-weight:800}.chapter-intro{justify-content:space-between;align-items:end;gap:30px;padding:45px 0 30px;display:flex}.chapter-intro .overline{color:var(--chapter-color)}.chapter-intro h1{margin:12px 0;font-size:clamp(2.3rem,3.8vw,3.6rem)}.chapter-intro p{color:var(--learn-muted);margin:0;font-size:1.05rem}.download-link{white-space:nowrap;border:1px solid var(--learn-edge);background:var(--learn-panel);border-radius:6px;gap:18px;padding:11px 16px;font-size:.85rem;font-weight:650;text-decoration:none;display:flex}.download-link:hover{border-color:var(--learn-lime);color:var(--learn-lime)}.lesson-workspace{border:2px solid var(--learn-edge);background:var(--learn-panel);border-radius:10px;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);display:grid;overflow:clip}.workspace-source{border-right:2px solid var(--learn-edge);min-width:0;display:flex}.workspace-source .source-code{border:0;border-radius:0;flex-direction:column;flex:1;margin:0;display:flex}.source-code{border:1px solid var(--learn-edge);background:#111522;border-radius:8px;width:100%;min-width:0;margin:1.5rem 0;overflow:clip}.source-heading,.preview-heading{background:var(--learn-raised);border-bottom:1px solid var(--learn-edge);min-height:49px;font:500 .73rem var(--learn-mono);justify-content:space-between;align-items:center;gap:15px;padding:10px 18px;display:flex}.source-heading>span{text-overflow:ellipsis;white-space:nowrap;color:var(--learn-muted);overflow:hidden}.copy-source{color:var(--learn-cyan);font:inherit;background:0 0;border:0;padding:4px 0 4px 8px}.copy-source:hover{color:var(--learn-text)}.source-code pre{tab-size:2;border:0;margin:0;padding:22px;font-size:.79rem;line-height:1.8;overflow:auto;background:#111522!important}.source-compact pre{flex:1;max-height:470px}.preview-heading span{align-items:center;gap:9px;display:flex}.preview-heading i{background:var(--learn-lime);border-radius:50%;width:7px;height:7px}.preview-heading a{color:var(--learn-cyan);text-decoration:none}.preview-heading a:hover{text-decoration:underline}.workspace-preview{background:#111522;min-width:0}.guide-preview{background:#101220;border:0;width:100%;height:450px;display:block}.preview-footnote{color:var(--learn-muted);border-top:1px solid var(--learn-edge);justify-content:space-between;gap:10px;padding:13px 18px;font-size:.73rem;display:flex}.preview-footnote a{color:var(--learn-text);white-space:nowrap}.lesson-reading{grid-template-columns:minmax(0,790px) 240px;gap:clamp(45px,8vw,150px);max-width:1220px;margin:65px auto;display:grid}.reading-content{min-width:0;font-size:1rem}.reading-content>:first-child{margin-top:0}.reading-content p,.reading-content li{color:#c7cfe5}.reading-content p{margin-bottom:1.25rem}.reading-content h2{margin:2.7rem 0 1rem;font-size:1.65rem}.reading-content h3{margin:2rem 0 .8rem;font-size:1.2rem}.reading-content a{color:var(--learn-cyan)}.reading-content a:hover{color:var(--learn-lime)}.reading-content strong{color:var(--learn-text);font-weight:700}.reading-content ul,.reading-content ol{padding-left:1.3rem}.reading-content li{margin:.5rem 0}.reading-content :not(pre)>code{font:.86em var(--learn-mono);color:var(--learn-lilac);overflow-wrap:anywhere;background:#202437;border-radius:3px;padding:.15em .32em}.reading-content pre{border:1px solid var(--learn-edge);border-radius:6px;padding:20px;font-size:.83rem;line-height:1.8;overflow:auto;background:#111522!important}.reading-content .source-code pre{border:0;border-radius:0}.reading-content table{border-collapse:collapse;max-width:100%;margin:1.5rem 0;font-size:.88rem;display:block;overflow:auto}.reading-content th,.reading-content td{text-align:left;border:1px solid var(--learn-edge);vertical-align:top;min-width:130px;padding:11px 14px}.reading-content th{background:var(--learn-panel)}.reading-content td{color:#c7cfe5}.reading-content blockquote{border-left:2px solid var(--learn-lilac);margin:1.5rem 0;padding:8px 22px}.reading-content details{border:1px solid var(--learn-edge);border-radius:6px;margin:1.7rem 0;padding:14px 18px}.reading-content summary{color:var(--learn-cyan);font-weight:650}.reading-content img{max-width:100%;height:auto}.reading-content iframe{border:1px solid var(--learn-edge);border-radius:6px;width:100%;min-height:430px}.lesson-aside{align-self:start;padding-top:5px;font-size:.83rem;position:sticky;top:30px}.lesson-aside nav,.reference-outline nav{flex-direction:column;gap:11px;margin-bottom:32px;display:flex}.lesson-aside nav a,.reference-outline a{color:var(--learn-muted);text-decoration:none}.lesson-aside nav a:hover,.reference-outline a:hover{color:var(--learn-cyan)}.lesson-aside>p:not(.overline){color:var(--learn-muted);margin-bottom:8px}.lesson-aside>a{color:var(--learn-cyan);margin:10px 0;text-decoration:none;display:block}.chapter-pagination{border-top:1px solid var(--learn-edge);grid-template-columns:1fr 1fr;gap:20px;max-width:1220px;margin:0 auto 65px;padding-top:28px;display:grid}.chapter-pagination a{flex-direction:column;gap:5px;text-decoration:none;display:flex}.chapter-pagination small{color:var(--learn-muted);font:.73rem var(--learn-mono)}.chapter-pagination span{font-size:1.2rem;font-weight:700}.chapter-pagination a:hover span{color:var(--learn-lime)}.chapter-pagination .next-chapter{text-align:right}.learn-footer{border-top:1px solid var(--learn-edge);width:min(1560px,100% - 80px);color:var(--learn-muted);align-items:center;gap:25px;margin:auto;padding:28px 0;font-size:.78rem;display:flex}.learn-footer>a{color:var(--learn-text);font-size:1rem;font-weight:850;text-decoration:none}.learn-footer nav{gap:25px;margin-left:auto;display:flex}.learn-footer nav a{text-decoration:none}.learn-footer a:hover{color:var(--learn-lime)}.guide-opening{grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);align-items:center;gap:60px;padding:80px 0;display:grid}.guide-opening h1{margin:18px 0 25px;font-size:clamp(3.3rem,5.7vw,6rem)}.guide-opening h1 em{color:var(--learn-lime);font-style:normal}.guide-opening-copy>p:not(.overline){color:var(--learn-muted);font-size:1.12rem}.primary-link{border:2px solid var(--learn-bg);background:var(--learn-lime);color:var(--learn-bg);border-radius:7px;justify-content:space-between;gap:30px;padding:15px 20px;font-weight:800;text-decoration:none;display:inline-flex;box-shadow:4px 4px #708731}.primary-link:hover{background:#d7ff79}.primary-link:active{transform:translate(2px,2px);box-shadow:2px 2px #708731}.guide-opening-copy .opening-note{max-width:290px;margin:20px 0 0;font-size:.77rem!important}.guide-finish-preview{border:2px solid var(--learn-edge);border-radius:10px;overflow:clip}.guide-curriculum{border-top:1px solid var(--learn-edge);grid-template-columns:.8fr 1.4fr;gap:60px;padding:55px 0 75px;display:grid}.curriculum-heading{align-self:start;position:sticky;top:40px}.curriculum-heading h2{margin-bottom:20px}.curriculum-heading p{color:var(--learn-muted)}.guide-curriculum ol{margin:0;padding:0;list-style:none}.guide-curriculum li{border-top:1px solid var(--learn-edge)}.guide-curriculum li:last-child{border-bottom:1px solid var(--learn-edge)}.guide-curriculum li a{align-items:center;gap:24px;padding:23px 5px;text-decoration:none;display:flex}.guide-curriculum li a:hover h3{color:var(--chapter-color)}.chapter-number{color:var(--chapter-color);font:600 .95rem var(--learn-mono);min-width:32px}.guide-curriculum h3{margin:0 0 6px;font-size:1.25rem}.guide-curriculum li p{color:var(--learn-muted);margin:0;font-size:.88rem}.chapter-arrow{color:var(--chapter-color);margin-left:auto;font-size:1.5rem}.guide-next{border:2px solid var(--learn-edge);background:var(--learn-panel);border-radius:10px;margin:0 0 65px;padding:40px}.guide-next h2{margin-bottom:12px;font-size:1.8rem}.guide-next p{color:var(--learn-muted)}.guide-next>div{flex-wrap:wrap;gap:25px;display:flex}.guide-next a{color:var(--learn-cyan)}.reference-layout{grid-template-columns:210px minmax(0,790px) 190px;justify-content:center;gap:45px;padding:55px 0 80px;display:grid}.reference-nav,.reference-outline{align-self:start;min-width:0;position:sticky;top:25px}.reference-nav summary{font:600 .7rem/1.5 var(--learn-mono);color:var(--learn-muted);text-transform:uppercase;letter-spacing:.06em;cursor:default;margin:5px 0 15px;list-style:none}.reference-nav summary span{display:none}.reference-nav nav{flex-direction:column;gap:3px;display:flex}.reference-nav nav a{color:var(--learn-muted);border-radius:5px;padding:9px 12px;font-size:.85rem;text-decoration:none}.reference-nav nav a:hover{background:var(--learn-panel);color:var(--learn-text)}.reference-nav nav a[aria-current]{background:var(--learn-raised);color:var(--learn-lime);font-weight:650}.guide-return{border-top:1px solid var(--learn-edge);color:var(--learn-cyan);margin-top:20px;padding:20px 12px;font-size:.8rem;text-decoration:none;display:block}.guide-return span{color:var(--learn-muted);margin-bottom:4px;font-size:.75rem;display:block}.reference-intro{margin:0 0 35px}.reference-intro h1{margin:15px 0;font-size:clamp(2.2rem,3.5vw,3.1rem)}.reference-intro>p:last-child{color:var(--learn-muted);font-size:1.05rem}.reference-article{min-width:0}.reference-outline{max-height:calc(100vh - 60px);font-size:.75rem;overflow:auto}.reference-outline .overline{color:var(--learn-muted)}.search-dialog{background:var(--learn-panel);width:min(640px,100% - 32px);max-height:min(80vh,760px);color:var(--learn-text);border:2px solid var(--learn-edge);border-radius:10px;margin:min(12vh,100px) auto auto;padding:24px}.search-dialog::backdrop{background:#04060ecc}.search-heading{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.search-heading h2{margin:0;font-size:1.35rem}.search-close{color:var(--learn-muted);background:0 0;border:0;padding:0 8px;font-size:1.7rem}#search-query{background:var(--learn-bg);border:1px solid var(--learn-edge);width:100%;color:var(--learn-text);outline-offset:2px;border-radius:5px;padding:13px}#search-status{color:var(--learn-muted);margin:15px 0;font-size:.8rem}.search-results{margin:0;padding:0;list-style:none}.search-results li{border-top:1px solid var(--learn-edge)}.search-results a{padding:14px 4px;text-decoration:none;display:block}.search-results a:hover{color:var(--learn-cyan)}.search-results h3{letter-spacing:-.01em;margin:0 0 6px;font-size:1rem}.search-results p{color:var(--learn-muted);margin:0;font-size:.8rem}.search-suggestions{color:var(--learn-cyan);flex-direction:column;gap:12px;font-size:.88rem;display:flex}.search-suggestions[hidden]{display:none}.search-footer{font:.7rem var(--learn-mono);color:var(--learn-muted);border-top:1px solid var(--learn-edge);margin:20px 0 0;padding-top:15px}.not-found{max-width:650px;margin:auto;padding:110px 0}.not-found h1{margin:15px 0 25px}.not-found>p:not(.overline){color:var(--learn-muted)}.not-found>a:last-child{color:var(--learn-cyan);margin-top:25px;display:block}@media (width>=1650px){.guide-preview{height:490px}}@media (width<=1150px){.learn-header-inner{gap:25px;padding:0 25px}.learn-main,.learn-footer{width:calc(100% - 50px)}.chapter-track a{flex-direction:column;gap:7px;font-size:.75rem}.guide-preview{height:400px}.lesson-reading{grid-template-columns:minmax(0,1fr) 190px;gap:40px}.reference-layout{grid-template-columns:185px minmax(0,1fr);gap:35px}.reference-outline{display:none}.guide-opening{gap:30px}.guide-opening h1{font-size:4rem}}@media (width<=800px){.learn-header-inner{gap:20px;min-height:74px}.learn-nav{gap:20px;font-size:.85rem}.search-open{gap:0;padding:8px 11px}.search-open kbd{display:none}.chapter-intro{flex-direction:column;align-items:start;gap:22px;padding-top:30px}.chapter-intro h1{font-size:2.5rem}.lesson-workspace{grid-template-columns:1fr}.workspace-preview{border-bottom:2px solid var(--learn-edge);order:-1}.workspace-source{border-right:0}.guide-preview{height:460px}.source-compact pre{max-height:360px}.lesson-reading{margin:38px 0;display:block}.lesson-aside{display:none}.chapter-pagination span{font-size:1rem}.learn-footer{flex-wrap:wrap}.learn-footer nav{width:100%;margin:0}.guide-opening{grid-template-columns:1fr;gap:35px;padding:45px 0}.guide-opening h1{font-size:clamp(3.3rem,8vw,4.7rem)}.guide-curriculum{grid-template-columns:1fr;gap:25px;padding:40px 0}.curriculum-heading{position:static}.curriculum-heading h2 br,.curriculum-heading p br{display:none}.reference-layout{padding:25px 0 45px;display:block}.reference-nav{border:1px solid var(--learn-edge);border-radius:6px;margin-bottom:35px;padding:0 15px 10px;position:static}.reference-nav summary{cursor:pointer;justify-content:space-between;margin:0;padding:14px 0 4px;display:flex}.reference-nav nav{grid-template-columns:1fr 1fr;margin-top:12px;display:grid}.reference-nav summary span{display:inline}.guide-return{display:none}}@media (width<=500px){.learn-header-inner{padding:0 17px;flex-wrap:wrap;gap:12px;padding-block:14px}.learn-header .wordmark{font-size:1.65rem}.learn-nav{gap:15px;margin-left:auto;font-size:.8rem}.search-open{flex-basis:100%;justify-content:space-between;min-height:34px;font-size:.78rem}.search-open kbd{display:inline}.learn-main,.learn-footer{width:calc(100% - 34px)}.chapter-track{padding-top:17px}.chapter-track a{padding:9px 2px 12px}.chapter-track a b{font-size:.56rem;font-weight:500}.chapter-track a span{width:25px;height:25px;font-size:.62rem}.chapter-intro{padding:28px 0 23px}.chapter-intro h1{font-size:2.15rem}.chapter-intro p{font-size:.95rem}.download-link{padding:9px 12px;font-size:.8rem}.guide-preview{height:365px}.source-heading,.preview-heading{padding-inline:12px}.source-code pre{padding:16px;font-size:.73rem}.preview-footnote{padding-inline:12px;font-size:.65rem}.chapter-pagination{gap:15px}.chapter-pagination small{font-size:.64rem}.chapter-pagination span{font-size:.95rem}.guide-opening-copy>p:not(.overline){font-size:1rem}.guide-curriculum li a{gap:15px}.guide-curriculum h3{font-size:1.08rem}.guide-curriculum li p{font-size:.78rem}.guide-next{padding:23px}.guide-next>div{flex-direction:column;gap:13px}.reference-nav nav a{padding-inline:7px;font-size:.75rem}.learn-footer nav{gap:18px;font-size:.7rem}}@media (prefers-reduced-motion:reduce){.primary-link:active{transform:none}}.full-chapter-source{border-bottom:1px solid var(--learn-edge);padding:18px 0;font-size:.8rem}.full-chapter-source>summary{color:var(--learn-cyan)}.full-chapter-source>summary span{color:var(--learn-muted);margin-left:15px;font-size:.72rem}.full-chapter-source .source-code pre{max-height:620px}@media (width<=600px){.full-chapter-source>summary span{margin:6px 0 0 16px;display:block}}.source-compact pre{white-space:pre-wrap;overflow-wrap:anywhere}.command-tabs{margin:1.5rem 0}.command-tablist{border-bottom:1px solid var(--learn-edge);gap:4px;display:flex}.command-tablist[hidden]{display:none}.command-tablist button{color:var(--learn-muted);font:.8rem var(--learn-mono);background:0 0;border:0;border-bottom:2px solid #0000;padding:10px 20px}.command-tablist button[aria-selected=true]{color:var(--learn-lime);border-color:var(--learn-lime)}.command-tablist button:hover{color:var(--learn-text)}.command-tabs[data-ready] [role=tabpanel]>h3{display:none}.command-tabs[data-ready] .source-code{margin-top:12px}
