:root{--page-text:#1a1a1a;--page-muted:#4a4a4a;--page-background:#fff;--page-surface:#f4f5f7;--page-border:#8a8f98;--page-accent:#1d4ed8;--page-on-accent:#fff;--page-right:#14532d;--page-right-background:#dcfce7;--page-wrong:#7f1d1d;--page-wrong-background:#fee2e2;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--page-text:#ececec;--page-muted:#b8bcc4;--page-background:#121316;--page-surface:#1d1f24;--page-border:#7d838d;--page-accent:#8ab4ff;--page-on-accent:#0b1020;--page-right:#bbf7d0;--page-right-background:#143522;--page-wrong:#fecaca;--page-wrong-background:#3f1515}}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}body{background:var(--page-background);color:var(--page-text);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:1.0625rem;line-height:1.55}a{color:var(--page-accent)}:focus-visible{outline:3px solid var(--page-accent);outline-offset:2px}.page-header,.page-footer{max-width:var(--page-max-width,44rem);overflow-wrap:break-word;margin:0 auto;padding:0 1rem}.page-header{flex-wrap:wrap;justify-content:flex-end;align-items:baseline;gap:.25rem 1rem;padding-top:.75rem;display:flex}.page-languages ul{flex-wrap:wrap;gap:.25rem .75rem;margin:0;padding:0;list-style:none;display:flex}.page-languages a[aria-current=page]{color:var(--page-text);font-weight:600;text-decoration:none}.page-footer{color:var(--page-muted);margin-top:2rem;padding-bottom:1.5rem;font-size:.9375rem}:root{--block-hl-keyword:#7b2382;--block-hl-string:#0f5a2e;--block-hl-number:#8a3b00;--block-hl-comment:#50555c}@media (prefers-color-scheme:dark){:root{--block-hl-keyword:#e0a3ff;--block-hl-string:#8fe0ac;--block-hl-number:#ffb77a;--block-hl-comment:#a3a9b3}}.block-figure{margin:1.25rem 0}.block-figure img,.block-drawing{max-width:100%;height:auto;display:block}.block-hundred-grid{width:16rem}.block-bar{width:100%;max-width:28rem}figcaption{color:var(--page-muted);margin-top:.5rem;font-size:.9375rem}figcaption p{margin:0}.block-credit{font-size:.875rem;display:block}.block-labelled-image{max-width:100%;display:inline-block;position:relative}.block-labelled-fill{display:block}.block-labelled-fill img{width:100%}.block-marker{background:var(--page-text);min-width:1.6rem;color:var(--page-background);text-align:center;border-radius:1rem;padding:0 .3rem;font-size:.875rem;font-weight:700;line-height:1.6rem;position:absolute;transform:translate(-50%,-50%)}.block-formula{margin:1rem 0;padding:.25rem 0;overflow:auto hidden}math{font-size:1.1em}.block-quote,.block-code{margin:1.25rem 0}.block-table{margin:1rem 0;overflow-x:auto}.block-table table{border-collapse:collapse}.block-table caption{text-align:left;margin-bottom:.25rem;font-weight:600}.block-table th,.block-table td{border:1px solid var(--page-border);text-align:left;vertical-align:top;padding:.35rem .6rem}.block-table thead th,.block-table th[scope=row]{background:var(--page-surface)}.block-quote blockquote{border-left:4px solid var(--page-border);margin:0;padding:.25rem 1rem;font-style:italic}.block-code pre{background:var(--page-surface);border-radius:.5rem;margin:0;padding:.75rem 1rem;font-size:.9375rem;line-height:1.45;overflow-x:auto}.hljs-keyword,.hljs-selector-tag,.hljs-literal,.hljs-type{color:var(--block-hl-keyword)}.hljs-string,.hljs-attr,.hljs-regexp{color:var(--block-hl-string)}.hljs-number,.hljs-symbol{color:var(--block-hl-number)}.hljs-comment,.hljs-meta{color:var(--block-hl-comment);font-style:italic}.hljs-title,.hljs-function,.hljs-name,.hljs-built_in{color:var(--page-accent)}.hljs-variable,.hljs-params,.hljs-tag{color:var(--page-text)}.question{margin:0 0 1.5rem}.question fieldset{border:1px solid var(--page-border);background:var(--page-surface);border-radius:.5rem;min-width:0;margin:0;padding:.75rem 1rem}.question legend{padding:0 .25rem;font-weight:600}.question-material{margin:.75rem 0}.question-material>:first-child{margin-top:0}.question-material>:last-child{margin-bottom:0}.question-option{align-items:flex-start;gap:.5rem;padding:.375rem 0;display:flex}.question-option input{flex:none;margin-top:.3rem}.question-number input,.question-pairs select{font:inherit;border:1px solid var(--page-border);background:var(--page-background);color:var(--page-text);border-radius:.25rem;max-width:100%;padding:.25rem .5rem}.question-number input{width:8rem}.question-pairs{margin:0;padding:0;list-style:none}.question-pairs li{padding:.375rem 0}.question-pairs label{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.question-hint{color:var(--page-muted);margin:0 0 .5rem}.question-actions{flex-wrap:wrap;gap:.5rem;display:flex}.question-feedback:not(:empty){border:1px solid var(--page-border);border-radius:.375rem;margin:.75rem 0;padding:.5rem 1rem}.question-feedback p{margin:.25rem 0}.question-right{background:var(--page-right-background);color:var(--page-right)}.question-wrong{background:var(--page-wrong-background);color:var(--page-wrong)}.question-infos,.question-links{padding-left:0;list-style:none}.question-info{border:1px solid var(--page-border);border-left-width:4px;border-radius:.375rem;margin:.5rem 0;padding:.5rem .75rem}.question-info p{margin:.25rem 0}.question-info-right{border-left-color:var(--page-right)}.question-info-chosen:not(.question-info-right){border-left-color:var(--page-wrong)}.question-badge{border-radius:999px;margin-left:.25rem;padding:0 .5rem;font-size:.875rem;font-weight:600;display:inline-block}.question-badge-right{background:var(--page-right-background);color:var(--page-right)}.question-badge-chosen{background:var(--page-surface);color:var(--page-text);border:1px solid var(--page-border)}.question-links li{margin:.25rem 0}.question-more{margin-bottom:0;font-weight:600}.question button{font:inherit;border:2px solid var(--page-accent);background:var(--page-accent);color:var(--page-on-accent);cursor:pointer;border-radius:.375rem;padding:.5rem 1rem}.question button.question-solve{background:var(--page-background);color:var(--page-accent)}.question button:focus-visible,.question a:focus-visible,.question input:focus-visible,.question select:focus-visible,.question summary:focus-visible{outline:3px solid var(--page-text);outline-offset:2px}.question-diagnosis{margin:.25rem 0 0}:root{--explainer-example:#ecfdf3;--explainer-note:#fff7e0}@media (prefers-color-scheme:dark){:root{--explainer-example:#12261b;--explainer-note:#2b2512;--explainer-hl-keyword:#e0a3ff;--explainer-hl-string:#8fe0ac;--explainer-hl-number:#ffb77a;--explainer-hl-comment:#a3a9b3}}.explainer-breadcrumbs,.explainer,.explainer-tutor-page,.explainer-pager{max-width:var(--page-max-width,44rem);overflow-wrap:break-word;margin:0 auto;padding:0 1rem}.explainer-breadcrumbs ol{flex-wrap:wrap;gap:.25rem .75rem;margin:0;padding:0;list-style:none;display:flex}.explainer-breadcrumbs{margin-top:.5rem;font-size:.9375rem}.explainer-breadcrumbs li+li:before{content:"›";color:var(--page-muted);margin-right:.75rem}.explainer h1{font-size:1.875rem;line-height:1.2}.explainer h2,.explainer h3,.explainer h4{scroll-margin-top:1rem;line-height:1.25}.explainer-toc{border-left:4px solid var(--page-accent);background:var(--page-surface);margin:1rem 0;padding:.5rem 1rem}.explainer-toc-title{margin:.25rem 0;font-weight:600}.explainer-timeline{border-left:3px solid var(--page-border);margin:1rem 0;padding-left:1.25rem;list-style:none}.explainer-timeline li{margin-bottom:.75rem}.explainer-event{margin:0}.explainer-date{color:var(--page-muted);font-size:.9375rem;display:block}.explainer-event-text p{margin:.25rem 0 0}.explainer-definition{margin:1rem 0}.explainer-definition dt{font-weight:600}.explainer-definition dd{margin-left:1rem}.explainer-definition dd p:first-child{margin-top:.25rem}.explainer-box{border:1px solid var(--page-border);border-radius:.5rem;margin:1.25rem 0;padding:.25rem 1rem}.explainer-example{background:var(--explainer-example)}.explainer-note{background:var(--explainer-note)}.explainer-box-title{margin:.75rem 0 .5rem;font-size:1.0625rem}.explainer-pages li,.explainer-chapters>li{margin-bottom:.5rem}.explainer-chapter-link{font-weight:600}.explainer-description{color:var(--page-muted);font-size:.9375rem;display:block}.explainer-glossary dt{margin-top:1rem;font-weight:600}.explainer-glossary dd{margin-left:1rem}.explainer-pager{flex-wrap:wrap;justify-content:space-between;gap:.75rem;margin-top:2rem;margin-bottom:1rem;display:flex}.explainer-pager a[rel=next]{margin-left:auto}.explainer-exercise,.explainer-component{margin:1rem 0 1.5rem}.explainer-exercise details{border:1px solid var(--page-border);border-radius:.375rem;margin:.5rem 0;padding:.25rem .75rem}.explainer-exercise summary{cursor:pointer;font-weight:600}.explainer-exercise summary:focus-visible{outline:3px solid var(--page-text);outline-offset:2px}.explainer-exercise .question{margin:0}.explainer-new-task{font:inherit;border:2px solid var(--page-accent);background:var(--page-accent);color:var(--page-on-accent);cursor:pointer;border-radius:.375rem;padding:.5rem 1rem}.explainer-new-task:focus-visible{outline:3px solid var(--page-text);outline-offset:2px}.explainer-worked{padding-left:1.5rem}.explainer-worked-task{margin:0 0 1rem}.explainer-live:not([hidden])+.explainer-worked-intro{border-top:1px solid var(--page-border);margin-top:1rem;padding-top:.5rem}.explainer-nojs.explainer-caption{color:var(--page-muted);margin-top:.5rem;font-size:.9375rem}.explainer-nojs.explainer-caption summary{cursor:pointer;font-weight:600}.explainer-component .question-diagnosis{margin:.25rem 0 0;display:block}.explainer-task-number{color:var(--page-muted);margin:0 0 .25rem;font-size:.9375rem;font-weight:600}.explainer-task-controls{flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin:0 0 .5rem;display:flex}.explainer-task-controls[hidden]{display:none}.explainer-task-controls .explainer-task-number{margin:0}.explainer-task-controls button{font:inherit;border:2px solid var(--page-accent);background:var(--page-background);min-height:2.75rem;color:var(--page-accent);cursor:pointer;border-radius:.375rem;padding:.5rem 1rem}.explainer-task-controls button:focus-visible{outline:3px solid var(--page-text);outline-offset:2px}.explainer-back button{font:inherit;border:2px solid var(--page-accent);background:var(--page-background);min-height:2.75rem;color:var(--page-accent);cursor:pointer;border-radius:.375rem;padding:.5rem 1rem}.explainer-back button:focus-visible{outline:3px solid var(--page-text);outline-offset:2px}.explainer-tutor-actions{flex-wrap:wrap;align-items:center;gap:.5rem 1rem;display:flex}.explainer-tutor-way{align-items:stretch;display:inline-flex}.explainer-tutor-way[hidden],.explainer-tutor-plain[hidden]{display:none}.explainer-tutor-go,.explainer-tutor-select{font:inherit;border:2px solid var(--page-accent);cursor:pointer;min-height:2.75rem;padding:.5rem 1rem}.explainer-tutor-go{background:var(--page-accent);color:var(--page-on-accent);border-radius:.375rem 0 0 .375rem}.explainer-tutor-select{background:var(--page-background);color:var(--page-accent);border-left-width:1px;border-radius:0 .375rem .375rem 0;padding-inline:.5rem}.explainer-tutor-go:focus-visible,.explainer-tutor-select:focus-visible{outline:3px solid var(--page-text);outline-offset:2px}.explainer-tutor-page{border-top:2px solid var(--page-border);margin-top:2rem}.explainer>section.explainer-section,.explainer-main>section.explainer-section{border-top:2px solid var(--page-border);margin-top:2.5rem;padding-top:.5rem}.explainer section.explainer-section>h2{margin:.75rem 0;font-size:1.5rem}.explainer section.explainer-section section.explainer-section{border-top:0;margin-top:1.75rem;padding-top:0}.explainer section.explainer-section section.explainer-section>h3{border-left:4px solid var(--page-accent);padding-left:.6rem;font-size:1.2rem}.explainer-exercise{border:2px solid var(--page-accent);background:var(--page-background);border-radius:.75rem;padding:0 1rem 1rem}.explainer-exercise-label{background:var(--page-accent);color:var(--page-on-accent);letter-spacing:.04em;text-transform:uppercase;border-radius:.5rem .5rem 0 0;margin:0 -1rem 1rem;padding:.4rem 1rem;font-size:.9375rem;font-weight:700}.explainer-exercise-label:before{content:"✎ "}.explainer-exercise legend{float:left;width:100%;margin:0 0 .5rem;padding:0}.explainer-exercise legend+*{clear:both}.explainer-exercise details.explainer-solution{border:1px solid var(--page-right);background:var(--page-right-background);color:var(--page-right);border-left-width:5px;margin:.75rem 0;padding:.25rem .75rem}.explainer-exercise details.explainer-solution>summary:before{content:"✔ "}.explainer-exercise details.explainer-solution[open]>summary{margin-bottom:.5rem}.explainer-exercise details.explainer-solution p,.explainer-exercise details.explainer-solution li{color:var(--page-text)}.explainer-exercise details.explainer-hint{border-style:dashed}.explainer-worked-task{border-bottom:1px dashed var(--page-border);margin-bottom:1.5rem;padding-bottom:1rem}.explainer-worked-task:last-child{border-bottom:0}.explainer-drawing .fig-on{fill:var(--page-accent)}.explainer-drawing .fig-off{fill:var(--page-background)}.explainer-drawing .fig-line{stroke:var(--page-muted)}.explainer-drawing .fig-text{fill:var(--page-text)}
