.article header img{width:100%;height:auto;display:block;margin:0 auto;max-width:30rem}.markdown{--markdown-text-primary:rgba(0,0,0,.87);--markdown-text-secondary:#666;--markdown-link-color:#1976d2;--markdown-border-color:#ddd;--markdown-background-emphasis:#f5f5f5;--markdown-primary-50:#f0fdf4;--markdown-primary-100:#dcfce7;--markdown-primary-200:#bbf7d0;--markdown-primary-300:#86efac;--markdown-primary-400:#4ade80;--markdown-primary-500:#379885;--markdown-primary-600:#2f7e70;--markdown-primary-700:#27685d;--markdown-primary-800:#1f524a;--markdown-primary-900:#183e39;--markdown-primary-950:#0f2926;--markdown-white:#ffffff;--markdown-font-size-h1:2rem;--markdown-font-size-h2:1.75rem;--markdown-font-size-h3:1.5rem;--markdown-font-size-h4:1.25rem;--markdown-font-size-h5:1rem;--markdown-font-size-h6:.875rem;--markdown-font-size-code:.95em;--markdown-font-size-katex:1rem;--markdown-spacing-xs:.4em;--markdown-spacing-sm:.5em;--markdown-spacing-md:1em;--markdown-spacing-lg:2em;--markdown-spacing-xl:3em;--markdown-spacing-2xl:4em;--markdown-border-radius-sm:.25rem;--markdown-border-radius-md:.125rem;--markdown-border-radius-lg:.25rem;--markdown-border-width-thin:.0625rem;--markdown-border-width-thick:.25rem;line-height:1.6;color:var(--markdown-text-primary);word-break:break-word;overflow-wrap:anywhere}.markdown--dense{--markdown-spacing-xs:.2em;--markdown-spacing-sm:.3em;--markdown-spacing-md:.5em;--markdown-spacing-lg:.8em;--markdown-spacing-xl:1.2em;--markdown-spacing-2xl:1.5em}.markdown--dense h1{margin:var(--markdown-spacing-lg) 0 var(--markdown-spacing-md)}.markdown--dense h2{margin:1em 0 .5em}.markdown--dense h3{margin:.9em 0 .4em}.markdown--dense h4{margin:.8em 0 .3em}.markdown--dense h5{margin:.7em 0 var(--markdown-spacing-sm)}.markdown--dense h6{margin:var(--markdown-spacing-md) 0 .2em}.markdown--dense p{margin:var(--markdown-spacing-sm) 0}.markdown--dense ol,.markdown--dense ul{margin:var(--markdown-spacing-md) 0}.markdown--dense li{margin:var(--markdown-spacing-xs) 0}.markdown--dense blockquote,.markdown--dense img,.markdown--dense table{margin:var(--markdown-spacing-md) 0}.markdown--dense hr{margin:var(--markdown-spacing-xl) 0}.markdown--dense .katex-display{margin:var(--markdown-spacing-md) 0}.markdown h1{font-size:var(--markdown-font-size-h1);margin:var(--markdown-spacing-xl) 0 var(--markdown-spacing-lg);padding-bottom:.3em}.markdown h1,.markdown h2{font-weight:500;border-bottom:var(--markdown-border-width-thin) solid var(--markdown-border-color)}.markdown h2{font-size:var(--markdown-font-size-h2);margin:1.4em 0 .8em;padding-bottom:var(--markdown-spacing-xs)}.markdown h3{font-size:var(--markdown-font-size-h3);font-weight:500;margin:1.3em 0 .7em}.markdown h4{font-size:var(--markdown-font-size-h4);font-weight:500;margin:1.2em 0 .6em}.markdown h5{font-size:var(--markdown-font-size-h5);font-weight:500;margin:1.1em 0 var(--markdown-spacing-md)}.markdown h6{font-size:var(--markdown-font-size-h6);font-weight:500;margin:var(--markdown-spacing-lg) 0 .4em;color:var(--markdown-text-secondary)}.markdown p{margin:var(--markdown-spacing-md) 0}.markdown em{font-style:italic}.markdown strong{font-weight:700}.markdown del{text-decoration:line-through}.markdown blockquote{margin:var(--markdown-spacing-lg) 0;padding-left:var(--markdown-spacing-lg);border-left:var(--markdown-border-width-thick) solid var(--markdown-border-color);color:var(--markdown-text-secondary);font-style:italic}.markdown blockquote,.markdown code{background-color:var(--markdown-background-emphasis)}.markdown code{padding:var(--markdown-spacing-xs) .4em;border-radius:var(--markdown-border-radius-sm);font-size:var(--markdown-font-size-code)}.markdown code,.markdown pre{font-family:Source Code Pro,monospace}.markdown pre code{background:none;padding:0}.markdown .article-code-block{max-width:100%;min-width:0;margin:var(--markdown-spacing-lg) 0;overflow:hidden;border:1px solid #a48631;border-radius:10px;background:#151a24;font-family:Source Code Pro,ui-monospace,SFMono-Regular,Consolas,monospace}.markdown .article-code-block__header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 16px;background:#f5d86d;color:#171717;font:600 14px/1.5 system-ui,sans-serif}.markdown .article-code-block__header .bioinforest-copy-button,.markdown .article-code-block__header strong{color:#171717}.markdown .article-code-block__header .bioinforest-copy-button{padding:5px 12px;border:1px solid #7c672f;background:#fff9db;font-size:12px}.markdown .article-code-block__body{max-width:100%;margin:0;padding:16px 0;overflow:auto;overscroll-behavior-x:contain;border:0;border-radius:0;font:14px/1.75 Source Code Pro,ui-monospace,SFMono-Regular,Consolas,monospace;text-align:left;tab-size:4;word-break:normal;overflow-wrap:normal}.markdown .article-code-block__body:focus-visible{outline:3px solid #e8bd43;outline-offset:-3px}.markdown .article-code-block__code{display:block;min-width:max-content;padding:0;margin:0;border-radius:0;background:transparent;color:inherit;font:inherit}.markdown .article-code-block__line{display:grid;grid-template-columns:4.5ch minmax(0,1fr);min-height:1.75em;padding-right:20px;white-space:pre}.markdown .article-code-block__number{padding-right:1.2ch;margin-right:1.2ch;border-right:1px solid #364253;color:#8393a9;text-align:right;user-select:none}.markdown .article-code-block__source{white-space:pre}.markdown ol,.markdown ul{margin:var(--markdown-spacing-lg) 0;padding-left:var(--markdown-spacing-xl)}.markdown li{margin:var(--markdown-spacing-sm) 0}.markdown :is(ul,ol) :is(ul,ol){margin:var(--markdown-spacing-lg) 0;padding-left:var(--markdown-spacing-xl)}.markdown-table-scroll{max-width:100%;overflow-x:auto;margin:var(--markdown-spacing-lg) 0;overscroll-behavior-x:contain}.markdown-table-scroll:focus-visible{outline:2px solid var(--markdown-link-color);outline-offset:2px}.markdown .markdown-table-scroll>table{margin:0}.markdown table{border-collapse:collapse;width:100%;margin:var(--markdown-spacing-lg) 0}.markdown td,.markdown th{border:var(--markdown-border-width-thin) solid var(--markdown-border-color);padding:var(--markdown-spacing-md);text-align:left}.markdown th{background-color:var(--markdown-background-emphasis);font-weight:600}.markdown a{color:var(--markdown-link-color);text-decoration:none}.markdown a:hover{text-decoration:underline}.markdown img{height:auto}.markdown .article-image-trigger,.markdown img{max-width:100%;margin:var(--markdown-spacing-lg) 0}.markdown .article-image-trigger{display:inline-block;position:relative;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in;color:inherit}.markdown .article-image-trigger img{display:block;width:100%;margin:0}.article-image-trigger>span{position:absolute;right:10px;bottom:10px;padding:5px 10px;background:#173d50eb;color:#fff;border-radius:20px;font:12px/1.5 sans-serif}.article-image-trigger:focus-visible{outline:3px solid #4599bb;outline-offset:4px}.article-image-dialog{width:min(96vw,1400px);max-width:96vw;height:90dvh;max-height:90dvh;margin:auto;padding:0;border:1px solid #bdcbd3;border-radius:16px;color:#243e50;background:#f7f9fb;box-shadow:0 20px 80px #071f4c66}.article-image-dialog::backdrop{background:#0b2034b3}.article-image-dialog[open]{display:flex;flex-direction:column}.article-image-dialog header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;border-bottom:1px solid #c8d6df;flex-shrink:0}.article-image-dialog header strong{font:600 16px/1.5 sans-serif;flex:1 1 220px}.article-image-controls{display:flex;gap:8px;align-items:center}.article-image-controls button{width:40px;height:40px;border:1px solid #b7cbd4;border-radius:8px;background:#fff;color:#243e50;font-size:20px;cursor:pointer}.article-image-controls button:disabled{opacity:.35;cursor:default}.article-image-controls .article-image-compare-toggle{width:auto;padding:0 12px;font-size:13px;white-space:nowrap}.markdown .article-original-image-button{display:inline-flex;align-items:center;min-height:40px;margin:0 0 18px;padding:8px 14px;border:1px solid #b9b2d3;border-radius:8px;background:#f3effa;color:#51436e;font:13px/1.5 sans-serif;cursor:pointer}.markdown .article-original-image-button:focus-visible{outline:3px solid #4599bb;outline-offset:3px}@media(max-width:520px){.article-image-controls{flex-wrap:wrap}}.article-image-controls button:focus-visible,.article-image-scroll:focus-visible{outline:3px solid #4599bb;outline-offset:-3px}.article-image-controls output{min-width:48px;font:14px sans-serif;text-align:center}.article-image-scroll{flex:1;overflow:auto;min-height:0;padding:12px;overscroll-behavior:contain}.article-image-scroll>img{display:block;max-width:none;height:auto;margin:0}.markdown hr{border:none;border-top:var(--markdown-border-width-thin) solid var(--markdown-border-color);margin:var(--markdown-spacing-2xl) 0}.markdown .katex{font-size:var(--markdown-font-size-katex)}.markdown .katex-display{margin:var(--markdown-spacing-lg) 0;text-align:left;overflow-x:auto;overflow-y:hidden;max-width:100%;padding:.25em 0}.markdown .katex-display>.katex{display:inline-block;min-width:100%}.markdown .katex-display>.katex>.katex-html>.tag{position:relative;right:auto;margin-left:2em}.markdown .markdown-article-card{display:flex;gap:2rem;align-items:flex-start;border-block:1px solid #e5e7eb;padding:1rem;margin:1.5rem 0;color:#111;text-decoration:none}.markdown .markdown-article-card:hover{background:#f9fafb;text-decoration:none}.markdown .markdown-article-card img{width:18rem;aspect-ratio:16/9;object-fit:cover;flex-shrink:0;border-radius:.5rem;margin:0}.markdown-article-card__body{display:flex;flex-direction:column;gap:1rem}.markdown-article-card__badge{align-self:flex-start;padding:.35rem .65rem;border-radius:.4rem;background:#ff6900;color:#fff;font-size:.875rem}.markdown-article-card__title{font-size:1.5rem;font-weight:700}@media(max-width:640px){.markdown .markdown-article-card{flex-direction:column;gap:1rem;padding:1rem 0}.markdown .markdown-article-card img{width:100%}}.article-function-plot{margin:24px 0;padding:18px;background:#f5faff;border:1px solid #c5d9e8;border-radius:12px;color:#243e52}.article-function-plot figcaption{display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;align-items:center}.article-function-plot svg{display:block;width:100%;height:auto;margin:16px 0;background:#fff;border-radius:8px}.article-function-plot svg text{font:12px system-ui;fill:#4a6271}.article-function-plot .plot-grid{stroke:#e1e9ef;stroke-width:1}.article-function-plot .plot-axis{stroke:#7b94a6;stroke-width:1.3}.article-density-plot svg text,.article-joint-density svg text{font-size:14px}@media(max-width:520px){.article-function-plot{padding:12px}.article-function-plot input[type=range]{min-width:120px}}.article-function-plot label{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:12px 0;font-size:15px}.article-function-plot input[type=range]{flex:1;min-width:160px;accent-color:#337fa8;min-height:32px}.article-function-plot p{font-size:14px;line-height:1.7}.article-function-plot .plot-reading{font-variant-numeric:tabular-nums;color:#734b66}.linear-algebra-plot>svg{display:block;width:100%;max-width:640px;height:auto;margin:1rem auto}.python-lecture-cell{background:#f3f8f5;color:#224936;padding:12px;border-top:1px solid #d1e1d7}.python-lecture-cell__toggle{border:0;border-radius:7px;padding:8px 16px;background:#24634a;color:#fff;font-weight:700;cursor:pointer}.python-lecture-cell__frame{display:block;width:100%;border:0;margin-top:10px;background:#f5f9f7;border-radius:8px}.python-lecture-cell__notice{font-size:13px;margin:0}.python-lecture-cell__editor{padding-top:14px}.python-lecture-cell__editor label{display:block;margin:12px 0 6px;font-weight:700}.python-lecture-cell__editor textarea{display:block;width:100%;box-sizing:border-box;resize:vertical;padding:14px;border:1px solid #abc3b6;border-radius:8px;background:#15251e;color:#e5f4ea;font:14px/1.6 ui-monospace,monospace;tab-size:4;white-space:pre;overflow:auto}.python-lecture-cell__actions,.python-lecture-cell__downloads{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;align-items:center}.python-lecture-cell__actions button,.python-lecture-cell__downloads button{border:1px solid #86ac96;border-radius:6px;padding:8px 14px;background:#fff;color:#21553e;cursor:pointer}.python-lecture-cell__actions button:first-child{background:#24634a;color:#fff}.python-lecture-cell button:disabled{opacity:.5;cursor:not-allowed}.python-lecture-cell details pre,.python-lecture-cell__output pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:480px;overflow:auto;background:#fff;color:#1b3428;padding:12px;border-radius:6px;font:13px/1.6 ui-monospace,monospace}.python-lecture-cell__output pre.python-lecture-cell__error{background:#fff1ef;color:#902c25}.python-lecture-cell__output img{max-width:100%;height:auto;background:#fff}.python-lecture-cell__plot{display:block;width:100%;height:500px;border:1px solid #c5d9cd;background:#fff;border-radius:8px}.markdown .article-code-editor{position:relative;overflow:hidden;border:1px solid #687c8f;border-radius:8px;background:#151a24;min-width:0;width:100%}.markdown .article-code-editor pre,.markdown .article-code-editor textarea{box-sizing:border-box;margin:0!important;padding:16px!important;border:0!important;border-radius:0!important;font:16px/25.6px ui-monospace,SFMono-Regular,Consolas,monospace!important;letter-spacing:0!important;tab-size:4;white-space:pre!important;word-wrap:normal!important;overflow-wrap:normal!important;text-align:left}.markdown .article-code-editor pre{position:absolute;inset:0 auto auto 0;min-width:100%;width:max-content;height:auto;max-height:none;overflow:visible;pointer-events:none;background:transparent!important;color:#d4d4d4!important}.markdown .article-code-editor textarea{position:relative;display:block;width:100%;height:100%;resize:none;background:transparent!important;color:transparent!important;-webkit-text-fill-color:transparent!important;caret-color:#fff;outline-offset:-3px;overflow:auto;text-shadow:none!important}.markdown .article-code-editor textarea::selection{background:#6b86b455;color:transparent}.markdown .article-code-editor pre span{font:inherit;line-height:inherit;letter-spacing:inherit}.bioinforest-proposition-block{scroll-margin-top:6rem;padding:0;border:solid var(--markdown-border-width-thin) var(--markdown-primary-600);border-radius:var(--markdown-border-radius-lg);margin:var(--markdown-spacing-lg) 0;overflow:hidden}.markdown .bioinforest-proposition-block__title a{color:inherit}.bioinforest-proposition-block:target{outline:3px solid #38bdf8;outline-offset:3px}.bioinforest-proposition-block__title{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem 1rem;padding:var(--markdown-spacing-md);color:var(--markdown-white);background:var(--markdown-primary-800)}.statement-difficulty{margin-left:auto;flex-shrink:0;white-space:nowrap;font-size:.8rem;letter-spacing:.04em;color:inherit}.statement-difficulty__empty{opacity:.45}.bioinforest-details__summary .statement-difficulty{float:right;margin-left:1rem}.bioinforest-proposition-block__content{padding:var(--markdown-spacing-md);background:var(--markdown-primary-50)}.bioinforest-code{font-family:var(--font-mono)}.bioinforest-code--block{border:solid var(--markdown-border-width-thin) var(--markdown-border-color);margin-block-end:var(--markdown-spacing-lg)}.bioinforest-code--block__header{display:flex;flex-direction:row;justify-content:space-between;align-items:center;border-bottom:solid var(--markdown-border-width-thin) var(--markdown-border-color)}.bioinforest-code--block__language{font-family:var(--font-mono);font-size:.75rem;color:var(--color-text-secondary);padding:var(--markdown-spacing-sm) var(--markdown-spacing-md)}.bioinforest-code--block__body{overflow-x:auto}.bioinforest-code--block__body>div{display:block;white-space:pre;font-family:var(--font-mono);padding:var(--markdown-spacing-md);margin:0;overflow-x:auto}.bioinforest-code--block__line{margin:0;padding:0}.bioinforest-code--inline{background-color:var(--markdown-background-emphasis);padding:var(--markdown-spacing-sm);border-radius:var(--markdown-border-radius-sm)}.bioinforest-copy-button{font-family:var(--font-mono);font-size:.75rem;color:var(--color-text-secondary);background:transparent;border:var(--markdown-border-width-thin) solid var(--color-text-secondary);border-radius:var(--markdown-border-radius-sm);padding:var(--markdown-spacing-sm) var(--markdown-spacing-md);cursor:pointer;transition:all .2s ease}.bioinforest-copy-button:hover{background-color:var(--markdown-background-emphasis)}.bioinforest-details{padding:0;border:solid var(--markdown-border-width-thin) var(--markdown-primary-200);border-radius:var(--markdown-border-radius-lg);margin:var(--markdown-spacing-lg) 0;overflow:hidden}.bioinforest-details__summary{color:var(--markdown-primary-900);background:var(--markdown-primary-50)}.bioinforest-details__content,.bioinforest-details__summary{padding:var(--markdown-spacing-md)}.bioinforest-details--example{border-color:#7dd3fc}.bioinforest-details--example>.bioinforest-details__summary{background:#e0f2fe;color:#075985;cursor:pointer}.bioinforest-details--example>.bioinforest-details__content{background:#f0f9ff}.bioinforest-details--note,.bioinforest-proposition-block--note,.local-forest .forest-shell-content .markdown :is(.bioinforest-details--note,.bioinforest-proposition-block--note){border-color:#66a98b;background:#f3fbf6}.bioinforest-details--note>.bioinforest-details__summary,.bioinforest-proposition-block--note>.bioinforest-proposition-block__title,.local-forest .forest-shell-content .markdown :is(.bioinforest-details--note>.bioinforest-details__summary,.bioinforest-proposition-block--note>.bioinforest-proposition-block__title){background:#d9f0e2;border-bottom-color:#9bcbb0;color:#164b34}.local-forest .forest-shell-content .markdown :is(.bioinforest-details--note>.bioinforest-details__summary,.bioinforest-proposition-block--note>.bioinforest-proposition-block__title),.local-forest .forest-shell-content .markdown :is(.bioinforest-details--note>.bioinforest-details__summary,.bioinforest-proposition-block--note>.bioinforest-proposition-block__title) *{color:#164b34!important}.bioinforest-details--note>.bioinforest-details__content,.bioinforest-proposition-block--note>.bioinforest-proposition-block__content,.local-forest .forest-shell-content .markdown :is(.bioinforest-details--note>.bioinforest-details__content,.bioinforest-proposition-block--note>.bioinforest-proposition-block__content){background:#f3fbf6}.bioinforest-details__summary{cursor:pointer}.markdown h2#toc,.markdown h2#目次{background-color:var(--markdown-primary-100);color:var(--markdown-primary-800);font-weight:600;font-size:var(--markdown-font-size-h6);margin:var(--markdown-spacing-lg) 0 0;padding:var(--markdown-spacing-xs) var(--markdown-spacing-md);border:var(--markdown-border-width-thin) solid var(--markdown-primary-200);border-bottom:none;border-radius:var(--markdown-border-radius-sm) var(--markdown-border-radius-sm) 0 0}.markdown h2#toc+ul,.markdown h2#目次+ul{background-color:var(--markdown-primary-50);border:var(--markdown-border-width-thin) solid var(--markdown-primary-200);border-top:none;border-radius:0 0 var(--markdown-border-radius-sm) var(--markdown-border-radius-sm);list-style:none;display:block;margin:0 0 var(--markdown-spacing-lg);padding:var(--markdown-spacing-xs) var(--markdown-spacing-md);font-size:var(--markdown-font-size-code)}.markdown h2#toc+ul li,.markdown h2#目次+ul li{margin:var(--markdown-spacing-xs) 0;line-height:1.4}.markdown h2#toc+ul li a,.markdown h2#目次+ul li a{color:var(--markdown-primary-700);text-decoration:none;font-weight:400;transition:color .2s ease;display:block;padding:1px 0}.markdown h2#toc+ul li a:hover,.markdown h2#目次+ul li a:hover{color:var(--markdown-primary-800);text-decoration:underline}.markdown h2#toc+ul ul,.markdown h2#目次+ul ul{margin-left:0;margin-top:var(--markdown-spacing-xs);margin-bottom:var(--markdown-spacing-xs)}.markdown h2#toc+ul ul ul,.markdown h2#目次+ul ul ul{margin-left:var(--markdown-spacing-sm)}.markdown h2#toc+ul,.markdown h2#toc+ul ul,.markdown h2#目次+ul,.markdown h2#目次+ul ul{list-style-type:none;padding-left:var(--markdown-spacing-md)}