@import "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500&family=Inter:wght@400;500&family=JetBrains+Mono:wght@400&display=swap";:root{--plc-ink:rgba(11, 18, 48, 1);--plc-muted:rgba(107, 115, 146, 1);--plc-hair:rgba(230, 233, 242, 1);--plc-unused:rgba(184, 192, 216, 1);--plc-done:rgba(100, 149, 237, 1);--plc-prog:rgba(196, 181, 253, 1);--plc-prog-text:rgba(124, 107, 214, 1);--plc-mono:"JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;--plc-head:"Space Grotesk", "Inter", system-ui, sans-serif;--paper-grain-opacity:0.065;--MAIN-LINK-color:var(--plc-prog-text);--MAIN-LINK-HOVER-color:var(--plc-prog-text);--MENU-SECTIONS-LINK-color:var(--plc-prog-text);--MENU-SECTIONS-LINK-HOVER-color:var(--plc-prog-text);--MENU-HOME-LINK-color:var(--plc-prog-text);--MENU-HOME-LINK-HOVER-color:var(--plc-prog-text);--TOPBAR-LINK-color:var(--plc-prog-text);--TOPBAR-LINK-HOVER-color:var(--plc-prog-text)}:root[data-r-theme-variant=mlouw-dark]{--plc-ink:rgba(232, 233, 237, 1);--plc-muted:rgba(138, 141, 150, 1);--plc-hair:rgba(46, 48, 54, 1);--plc-unused:rgba(52, 54, 62, 1);--plc-prog-text:rgba(196, 181, 253, 1)}@media(prefers-color-scheme:dark){:root[data-r-theme-variant=mlouw-auto]{--plc-ink:rgba(232, 233, 237, 1);--plc-muted:rgba(138, 141, 150, 1);--plc-hair:rgba(46, 48, 54, 1);--plc-unused:rgba(52, 54, 62, 1);--plc-prog-text:rgba(196, 181, 253, 1)}}#R-sidebar{font-family:inter,system-ui,sans-serif;border-right:1px solid var(--plc-hair)}#R-header-wrapper{text-align:left;padding:1.5rem 1rem 1rem;border-bottom:1px solid var(--plc-hair)}#R-header-wrapper>*{padding-left:0;padding-right:0}#R-sidebar #R-logo.plate-logo{display:block;padding:0;margin:0 0 .35rem;text-decoration:none}#R-sidebar .plate-logo-name{display:block;font-family:var(--plc-head);font-weight:500;font-size:1.25rem;line-height:1.25;letter-spacing:-.01em;color:var(--plc-ink);text-align:left;padding:0;overflow-wrap:anywhere}#R-sidebar .plate-logo-course{font-family:var(--plc-mono);font-size:11px;letter-spacing:.04em;line-height:1.7;color:var(--plc-muted);margin:0 0 .9rem}#R-sidebar .plate-mini{display:block;max-width:220px;margin:0 0 1rem;padding:0}#R-sidebar .plate-mini svg{display:block;width:100%;height:auto;filter:none;box-shadow:none}.plate-mini .pm-body,.plate-mini .pm-corner{fill:none;stroke:var(--plc-ink);stroke-width:.8}.plate-mini .pm-unused{fill:none;stroke:var(--plc-unused);stroke-width:.6}.plate-mini .pm-upcoming{fill:none;stroke:var(--plc-muted);stroke-width:.7}.plate-mini .pm-done{fill:var(--plc-done)}.plate-mini .pm-progress{fill:var(--plc-prog)}.plate-mini .pm-ring{fill:none;stroke:var(--plc-ink);stroke-width:.9}#R-sidebar .searchbox{border:1px solid var(--plc-hair);border-radius:0}#R-sidebar .searchbox input{font-family:inter,system-ui,sans-serif;font-size:.875rem}#R-homelinks{display:none}#R-sidebar .R-sidebarmenu>ul{margin-top:1rem}#R-sidebar ul li>a,#R-sidebar ul li>span{font-size:.875rem;line-height:1.5}#R-sidebar .R-shortcutmenu-main ul li>a{display:flex;align-items:baseline;gap:.6rem}#R-sidebar .R-shortcutmenu-main ul li>a .plate-menu-tag{flex:none}#R-sidebar ul.morespace li>*{padding-top:.45rem;padding-bottom:.45rem}#R-sidebar li.active>a{background-color:transparent;box-shadow:inset 2px 0 0 var(--plc-done)}#R-sidebar .plate-menu-tag{display:inline-block;min-width:2.4em;font-family:var(--plc-mono);font-size:11px;letter-spacing:.04em;color:var(--plc-muted)}#R-sidebar .R-menu-divider hr{border-color:var(--plc-hair)}#R-sidebar .R-shortcutmenu-resources a,#R-sidebar .R-shortcutmenu-resources label{font-family:var(--plc-mono);font-size:11px;letter-spacing:.04em;color:var(--plc-muted)}#R-topbar{border-bottom:1px solid var(--plc-hair)}.topbar-breadcrumbs,.topbar-breadcrumbs a{font-family:var(--plc-mono);font-size:12px;letter-spacing:.04em}#R-topbar .topbar-button>a,#R-topbar .topbar-button>button{border-radius:0}#R-body .flex-block-wrapper{width:100%;max-width:none;margin-inline:0}#R-body-inner{padding:0 clamp(20px,4vw,64px)4rem}#R-body-inner article{font-family:inter,system-ui,sans-serif;font-size:1rem;line-height:1.8}.plate-tag{font-family:var(--plc-mono);font-size:12px;letter-spacing:.04em;font-variant-numeric:tabular-nums;color:var(--plc-muted);margin:1.75rem 0 .5rem}.plate-tag .plate-tag--progress{color:var(--plc-prog-text)}.plate-tag .plate-tag--done{color:var(--plc-done)}#R-body h1,#R-body h2,#R-body h3,#R-body h4,#R-body h5,#R-body h6{overflow:visible!important}#R-body h1,#R-body-inner>.flex-block-wrapper article h1{font-family:var(--plc-head)!important;text-transform:none!important;text-align:center!important;font-size:2.4rem!important;letter-spacing:-.01em!important;line-height:1.1;margin:0 auto 1.75rem;text-wrap:balance;max-width:24ch}#R-body h2{font-family:var(--plc-head);font-size:1.5rem;line-height:1.2;letter-spacing:-.005em;margin:3rem 0 .9rem;padding-top:1.5rem;border-top:1px solid var(--plc-hair)}#R-body h3{font-family:var(--plc-head);font-size:1.15rem;line-height:1.3;margin:2rem 0 .6rem}#R-body h4,#R-body h5,#R-body h6{font-family:var(--plc-mono);font-size:12px;letter-spacing:.04em;font-weight:400;color:var(--plc-muted);margin:1.75rem 0 .5rem}#R-body p,#R-body li{line-height:1.8}#R-body p{margin:0 0 1.1rem}#R-body ul,#R-body ol{padding-left:1.4rem}#R-body hr{border:0;border-top:1px solid var(--plc-hair);margin:2rem 0}#R-body blockquote{border-left:2px solid var(--plc-prog);background:0 0;margin:1.5rem 0;padding:.25rem 0 .25rem 1.25rem;color:inherit}#R-body blockquote p:last-child{margin-bottom:0}#R-body img{max-width:100%;height:auto}#R-body figure,figure.plate-fig{margin:1.75rem 0}#R-body figure img,figure.plate-fig img{display:block;max-width:100%;height:auto;border:1px solid var(--plc-hair)}#R-body figure figcaption,figure.plate-fig figcaption{font-family:var(--plc-mono);font-size:12px;letter-spacing:.04em;color:var(--plc-muted);margin-top:.5rem;text-align:left}#R-body figure figcaption h4{margin:0;font:inherit;color:inherit}#R-body table{width:100%;border-collapse:collapse;margin:1.5rem 0;font-size:.9375rem}#R-body table th,#R-body table td{border-left:0;border-right:0;border-top:0}#R-body table th{font-family:var(--plc-mono);font-size:11px;font-weight:400;letter-spacing:.04em;color:var(--plc-muted);text-align:left;padding:.5rem .75rem .5rem 0;border-bottom:1px solid var(--plc-ink);background:0 0}#R-body table td{padding:.55rem .75rem .55rem 0;border-bottom:1px solid var(--plc-hair);background:0 0;vertical-align:top}#R-body table tr:nth-child(2n) td{background:0 0}#R-body code,#R-body pre{font-family:var(--plc-mono);font-size:.875rem}#R-body pre{border:1px solid var(--plc-hair);border-radius:0;padding:1rem 1.25rem;line-height:1.55}#R-body :not(pre)>code{border-radius:0;padding:.1em .35em}#R-body .box,#R-body .notices{border-radius:0}.plate-side{display:flex;gap:2rem;align-items:stretch;margin:1.5rem 0}.plate-side--left{flex-direction:row-reverse}.plate-side-text{flex:1;min-width:0}.plate-side-text p{text-wrap:pretty;hyphens:auto;-webkit-hyphens:auto}.plate-side-text>p:last-child{margin-bottom:0}#R-body .plate-side-fig,figure.plate-side-fig{flex:0 0 38%;margin:0;position:relative;min-height:0}#R-body .plate-side-fig svg,figure.plate-side-fig svg,#R-body .plate-side-fig img,figure.plate-side-fig img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;border:0}@media(max-width:700px){.plate-side,.plate-side--left{flex-direction:column}#R-body .plate-side-fig,figure.plate-side-fig{flex-basis:auto;width:100%;position:static}#R-body .plate-side-fig svg,figure.plate-side-fig svg,#R-body .plate-side-fig img,figure.plate-side-fig img{position:static;display:block;width:100%;height:auto}}.idea-deck{margin:2rem 0}.idea-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem}.idea-card{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;padding:.85rem .9rem;min-width:0;border:1px solid var(--plc-hair);background:0 0;text-align:left;font:inherit;cursor:pointer;transition:border-color .15s,box-shadow .15s}.idea-card:hover{border-color:var(--plc-prog-text)}.idea-card.is-active{border-color:var(--plc-prog-text);box-shadow:inset 2px 0 0 var(--plc-prog-text)}.idea-card-tag{font-family:var(--plc-mono);font-size:11px;letter-spacing:.04em;color:var(--plc-muted)}.idea-card-title{font-family:var(--plc-head);font-size:.95rem;line-height:1.25;color:var(--plc-ink)}.idea-card,.idea-card-tag,.idea-card-title,.idea-card-summary{white-space:normal;overflow-wrap:anywhere;max-width:100%}.idea-card-summary{font-size:.8125rem;line-height:1.5;color:var(--plc-muted)}.idea-panels{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--plc-hair)}.idea-panel{display:none}.idea-panel.is-active{display:block}#R-body .idea-panel-title{margin-top:0}#R-body .idea-panel>*:last-child{margin-bottom:0}.idea-lead{margin-bottom:1.5rem}.idea-section{margin-bottom:1.5rem}.idea-section:last-child{margin-bottom:0}#R-body .idea-section-label{font-family:var(--plc-mono);font-size:11px;letter-spacing:.04em;font-weight:400;color:var(--plc-muted);margin:0 0 .4rem;padding-bottom:.35rem;border-bottom:1px solid var(--plc-hair)}#R-body .idea-section>*:last-child{margin-bottom:0}.idea-section-todo{color:var(--plc-muted);font-style:italic;opacity:.7}.idea-deck:not(:has(.idea-card)) .idea-panel{display:block}.references-all{margin:1.25rem 0 0}.references-all>summary{display:flex;align-items:center;gap:.75rem;padding:.85rem .9rem;border:1px solid var(--plc-hair);font-family:var(--plc-head);font-size:.95rem;color:var(--plc-ink);cursor:pointer;list-style:none;user-select:none;transition:border-color .15s,box-shadow .15s}.references-all>summary::-webkit-details-marker{display:none}.references-all>summary::before{content:"";flex:none;width:.5rem;height:.5rem;border-right:1.5px solid var(--plc-prog-text);border-bottom:1.5px solid var(--plc-prog-text);transform:rotate(-45deg);transition:transform .15s}.references-all[open]>summary::before{transform:rotate(45deg)}.references-all>summary::after{content:"click to unfold";margin-left:auto;font-family:var(--plc-mono);font-size:11px;letter-spacing:.04em;color:var(--plc-muted)}.references-all[open]>summary::after{content:"click to fold"}.references-all>summary:hover{border-color:var(--plc-prog-text)}.references-all[open]>summary{border-color:var(--plc-prog-text);box-shadow:inset 2px 0 0 var(--plc-prog-text)}.references-all>summary strong{font-weight:500}.references-all>:not(summary){margin-left:.9rem;margin-right:.9rem}.references-all>summary+*{margin-top:1rem}#R-body footer.footline{margin-top:3rem;padding-top:1rem;border-top:1px solid var(--plc-hair)}.plate-footline{font-family:var(--plc-mono);font-size:12px;letter-spacing:.04em;color:var(--plc-muted)}body::after{display:none}#R-body a[href],#R-body a[href]:visited,#R-body a[href]:hover,#R-body a[href]:active,#R-sidebar a[href],#R-sidebar a[href]:visited,#R-sidebar a[href]:hover,#R-sidebar a[href]:active,#R-topbar a[href],#R-topbar a[href]:visited,#R-topbar a[href]:hover,#R-topbar a[href]:active{color:var(--plc-prog-text)!important}#R-body a[href]:not(.btn):not(.anchor){text-decoration-line:underline;text-decoration-color:initial;text-underline-offset:.2em;text-decoration-thickness:1px}#R-body a[href]:not(.btn):not(.anchor):hover{text-decoration-thickness:2px}#R-body :is(a,button,summary):focus-visible,#R-sidebar a[href]:focus-visible,#R-topbar a[href]:focus-visible{outline:2px solid var(--plc-prog-text);outline-offset:4px}@media only screen and (max-width:47.999rem){#R-body h1,#R-body-inner>.flex-block-wrapper article h1{font-size:1.9rem!important}}@media(max-width:700px){#R-body-inner{padding-inline:20px}}#R-sidebar .R-shortcutmenu-main ul.collapsible-menu>li>ul{padding-inline-start:0;margin-bottom:.35rem}#R-sidebar .R-shortcutmenu-main li.menu-heading>a[href]{display:block;font-size:.8rem;line-height:1.4;padding-top:.2rem;padding-bottom:.2rem;color:var(--plc-muted)!important}#R-sidebar .R-shortcutmenu-main li.menu-heading-level-1>a{padding-inline-start:1.5rem}#R-sidebar .R-shortcutmenu-main li.menu-heading-level-2>a{padding-inline-start:2.1rem}#R-sidebar .R-shortcutmenu-main li.menu-heading-level-3>a{padding-inline-start:2.9rem}#R-sidebar .R-shortcutmenu-main li.menu-heading>a[href]:hover,#R-sidebar .R-shortcutmenu-main li.menu-heading.is-current>a[href]{color:var(--plc-prog-text)!important}#R-sidebar .R-shortcutmenu-main li.menu-heading.is-current>a{box-shadow:inset 2px 0 0 var(--plc-prog-text)}.ref-group[hidden]{display:none}.references-all .references-note{font-size:.85em;color:var(--plc-muted)}