.portfolio-card,.portfolio-card-strong,.portfolio-toc{border-radius:16px}.portfolio-card-subtle,.portfolio-preview-card{border-radius:12px}.portfolio-card{border:1px solid var(--portfolio-border);background:var(--portfolio-surface);box-shadow:var(--portfolio-shadow)}.portfolio-card-strong{border:1px solid var(--portfolio-border-strong);background:var(--portfolio-surface-strong);box-shadow:var(--portfolio-shadow)}.portfolio-card-subtle{border:1px solid var(--portfolio-border-soft);background:color-mix(in oklab, var(--portfolio-surface-raised) 92%, transparent 8%)}.portfolio-preview-card{border:1px solid var(--portfolio-border);background:color-mix(in oklab, var(--portfolio-surface) 92%, transparent 8%);box-shadow:var(--portfolio-shadow)}.portfolio-kicker{color:var(--portfolio-muted);letter-spacing:.16em;text-transform:uppercase;align-items:center;gap:.65rem;font-size:.72rem;font-weight:700;display:inline-flex}.portfolio-kicker:before{content:"";background:var(--portfolio-border-strong);width:1.5rem;height:1px;display:inline-flex}.portfolio-list-row{border:1px solid var(--portfolio-border-soft);background:color-mix(in oklab, var(--portfolio-surface-raised) 84%, transparent 16%);min-height:2.6rem;color:var(--portfolio-ink-soft);border-radius:14px;align-items:center;padding:.72rem .9rem;font-size:.95rem;font-weight:600;display:flex}.portfolio-article-shell{border:1px solid var(--portfolio-border-soft);background:color-mix(in oklab, var(--portfolio-surface-strong) 86%, transparent 14%);border-radius:16px;box-shadow:0 20px 48px -40px #0a122033}.portfolio-article-header{border-bottom:1px solid var(--portfolio-border-soft);position:relative}.portfolio-article-body,.portfolio-article-compression-root,.portfolio-article-body-wrap{position:relative}.portfolio-article-compress-trigger{border:1px solid var(--portfolio-border-soft);background:color-mix(in oklab, var(--portfolio-surface-raised) 96%, transparent 4%);min-height:2.3rem;color:color-mix(in oklab, var(--portfolio-ink) 72%, var(--portfolio-muted) 28%);letter-spacing:.01em;border-radius:999px;justify-content:center;align-items:center;gap:.45rem;padding:.45rem .75rem;font-size:.82rem;font-weight:600;transition:color .14s,border-color .14s,background-color .14s,transform .14s,box-shadow .14s;display:inline-flex}.portfolio-article-compress-trigger:hover:not(:disabled){color:var(--portfolio-ink);border-color:var(--portfolio-border-strong);background:color-mix(in oklab, var(--portfolio-surface-raised) 100%, transparent 0%);outline:none;transform:translateY(-1px);box-shadow:0 2px 8px -2px #00000014}.portfolio-article-compress-trigger:focus-visible{color:var(--portfolio-ink);border-color:var(--portfolio-border-strong);background:color-mix(in oklab, var(--portfolio-surface-raised) 100%, transparent 0%);outline:none;transform:translateY(-1px);box-shadow:0 2px 8px -2px #00000014}.portfolio-article-compress-trigger.is-active{color:var(--portfolio-ink);border-color:color-mix(in oklab, var(--portfolio-accent) 36%, var(--portfolio-border-strong) 64%)}.portfolio-article-compress-trigger:disabled{opacity:.6;cursor:wait}.portfolio-article-compress-trigger-inline{justify-content:flex-start}.portfolio-article-secondary-tools{gap:.1rem;display:grid}.portfolio-article-body.is-compressing{filter:blur(5px);opacity:.24;pointer-events:none;-webkit-user-select:none;user-select:none;transition:filter .18s,opacity .18s,transform .18s;transform:scale(.996)}.portfolio-article-summary-loading{border:1px solid var(--portfolio-border-soft);background:color-mix(in oklab, var(--portfolio-surface) 94%, transparent 6%);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;width:min(34rem,100%);padding:1rem 1rem 1.1rem;position:absolute;inset:0 auto auto 0;box-shadow:0 20px 46px -36px #0a122047}.portfolio-article-summary-progress{background:color-mix(in oklab, var(--portfolio-border) 70%, transparent 30%);border-radius:999px;height:2px;overflow:hidden}.portfolio-article-summary-progress span{background:linear-gradient(90deg, var(--portfolio-accent) 0%, var(--portfolio-accent-strong) 100%);border-radius:999px;width:42%;height:100%;display:block}.portfolio-article-summary-card{border:1px solid var(--portfolio-border-soft);background:color-mix(in oklab, var(--portfolio-surface) 97%, transparent 3%);border-radius:16px;padding:1rem;position:relative}.portfolio-article-summary-card.is-loading{opacity:.78;pointer-events:none}.portfolio-article-summary-toolbar{flex-wrap:wrap;gap:.45rem;margin-bottom:1rem;display:flex}.portfolio-article-summary-pill{border:1px solid var(--portfolio-border-soft);background:color-mix(in oklab, var(--portfolio-surface-raised) 86%, transparent 14%);min-height:2rem;color:var(--portfolio-muted);letter-spacing:.02em;border-radius:999px;justify-content:center;align-items:center;padding:.38rem .72rem;font-size:.82rem;font-weight:650;transition:color .14s,border-color .14s,background-color .14s;display:inline-flex}:is(.portfolio-article-summary-pill:hover,.portfolio-article-summary-pill:focus-visible,.portfolio-article-summary-pill.is-active){color:var(--portfolio-ink);border-color:var(--portfolio-border-strong);background:color-mix(in oklab, var(--portfolio-surface) 94%, transparent 6%)}.portfolio-article-summary-bullet{padding-inline-start:1.1rem;list-style:none;position:relative}.portfolio-article-summary-bullet:before{content:"";top:.72rem;background:color-mix(in oklab, var(--portfolio-accent) 52%, var(--portfolio-muted) 48%);border-radius:999px;width:.38rem;height:.38rem;position:absolute;inset-inline-start:0}.portfolio-article-summary-paragraphs{display:grid}.portfolio-article-summary-paragraph{margin:0}.portfolio-article-summary-error{color:color-mix(in oklab, var(--portfolio-ink) 74%, var(--portfolio-muted) 26%);flex-wrap:wrap;align-items:center;gap:.75rem;font-size:.92rem;line-height:1.6;display:inline-flex}.portfolio-article-summary-error p{margin:0}.portfolio-article-summary-retry{border:1px solid color-mix(in oklab, var(--portfolio-border) 84%, transparent 16%);background:color-mix(in oklab, var(--portfolio-surface) 92%, transparent 8%);color:color-mix(in oklab, var(--portfolio-ink) 82%, var(--portfolio-muted) 18%);letter-spacing:.01em;border-radius:999px;align-items:center;gap:.42rem;padding:.35rem .68rem;font-size:.84rem;font-weight:600;transition:border-color .14s,background-color .14s,color .14s;display:inline-flex}:is(.portfolio-article-summary-retry:hover,.portfolio-article-summary-retry:focus-visible){border-color:var(--portfolio-border-strong);background:color-mix(in oklab, var(--portfolio-surface-strong) 92%, transparent 8%);color:var(--portfolio-ink)}.portfolio-article-summary-retry:disabled{opacity:.74;cursor:default}.mermaid-diagram{-webkit-overflow-scrolling:touch}.mermaid-diagram-canvas{width:100%;min-width:0;overflow:hidden}.mermaid-diagram-canvas svg{display:block}.portfolio-legal-tabs-shell{min-width:0}.portfolio-legal-tabs{flex-wrap:wrap;gap:.65rem;display:flex}.portfolio-legal-private-shell{min-width:0}.portfolio-legal-article-toc{transition:opacity .16s,transform .16s}.portfolio-article-shell-storytelling{background:color-mix(in oklab, var(--portfolio-surface-strong) 90%, transparent 10%)}.portfolio-article-lead{max-width:42rem;color:color-mix(in oklab, var(--portfolio-ink) 90%, transparent 10%);margin:0 0 2.8rem;font-size:clamp(1.18rem,1.8vw,1.34rem);font-weight:420;line-height:1.78}.portfolio-article-lead+.portfolio-article-keypoints,.portfolio-article-lead+.portfolio-article-callout,.portfolio-article-lead+aside{margin-top:1.6rem}.portfolio-article-block-body>:first-child{margin-top:0}.portfolio-article-block-body>:last-child{margin-bottom:0}.portfolio-article-callout,.portfolio-article-checklist,.portfolio-article-keypoints,.portfolio-article-figure{box-shadow:none}.portfolio-article-checklist,.portfolio-article-keypoints{background:color-mix(in oklab, var(--portfolio-surface-raised) 96%, transparent 4%)}.portfolio-article-break{color:var(--portfolio-muted);letter-spacing:.16em;text-transform:uppercase;align-items:center;gap:.85rem;margin:2.6rem 0 2rem;font-size:.72rem;font-weight:700;display:flex}.portfolio-article-break:before,.portfolio-article-break:after{content:"";background:linear-gradient(90deg, transparent 0%, var(--portfolio-border) 100%);flex:auto;height:1px}.portfolio-article-break:after{background:linear-gradient(90deg, var(--portfolio-border) 0%, transparent 100%)}.portfolio-compare{gap:1rem;margin:2rem 0;display:grid}.portfolio-compare-pane{border:1px solid var(--portfolio-border-soft);background:color-mix(in oklab, var(--portfolio-surface-raised) 94%, transparent 6%);border-radius:14px;padding:1rem 1rem 1.05rem}.portfolio-compare-title{color:var(--portfolio-ink);letter-spacing:.14em;text-transform:uppercase;margin:0 0 .75rem;font-size:.78rem;font-weight:700}.portfolio-compare-caption{color:var(--portfolio-muted);margin:.2rem 0 0;font-size:.92rem;line-height:1.65}@media (min-width:768px){.portfolio-compare{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem}.portfolio-compare-caption{grid-column:1/-1}}.portfolio-prose{color:var(--portfolio-ink-soft);font-family:var(--font-body), system-ui, sans-serif;letter-spacing:-.01em;overflow-wrap:anywhere;font-variant-numeric:oldstyle-nums proportional-nums;font-size:1.06rem;line-height:1.78}.portfolio-prose h1,.portfolio-prose h2,.portfolio-prose h3,.portfolio-prose h4{font-family:var(--font-heading), serif;color:var(--portfolio-ink);letter-spacing:-.034em;text-rendering:optimizelegibility;font-kerning:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"kern" 1, "liga" 1;line-height:1.04}.portfolio-prose h2,.portfolio-prose h3,.portfolio-prose h4{scroll-margin-top:6rem}.portfolio-prose h2{margin-top:4rem;margin-bottom:.9rem;font-size:clamp(2rem,3vw,2.8rem)}.portfolio-prose h3{margin-top:2.2rem;margin-bottom:.72rem;font-size:clamp(1.42rem,2vw,1.84rem)}.portfolio-prose h4{margin-top:1.75rem;margin-bottom:.55rem;font-size:1.14rem}.portfolio-prose p,.portfolio-prose ul,.portfolio-prose ol,.portfolio-prose pre,.portfolio-prose blockquote,.portfolio-prose table,.portfolio-prose figure,.portfolio-prose .portfolio-compare,.portfolio-prose .portfolio-article-break{margin-top:.95rem;margin-bottom:.95rem}.portfolio-prose p{text-wrap:pretty;orphans:2;widows:2}.portfolio-prose>p,.portfolio-prose>ul,.portfolio-prose>ol,.portfolio-prose>blockquote,.portfolio-prose>.portfolio-source-note,.portfolio-prose>.portfolio-article-lead{max-width:74ch}.portfolio-prose>h2,.portfolio-prose>h3,.portfolio-prose>h4,.portfolio-prose>figure,.portfolio-prose>pre,.portfolio-prose>table,.portfolio-prose>aside,.portfolio-prose>section,.portfolio-prose>div{max-width:none}.portfolio-prose-storytelling>p,.portfolio-prose-storytelling>ul,.portfolio-prose-storytelling>ol,.portfolio-prose-storytelling>blockquote,.portfolio-prose-storytelling>.portfolio-source-note,.portfolio-prose-storytelling>.portfolio-article-lead{max-width:78ch}.portfolio-article-body-storytelling .portfolio-card,.portfolio-article-body-storytelling .portfolio-card-strong,.portfolio-article-body-storytelling .portfolio-article-figure{overflow:clip}.portfolio-bi-stack{gap:1rem;display:grid}.portfolio-bi-stack-card{border:1px solid var(--portfolio-border-soft);background:color-mix(in oklab, var(--portfolio-surface) 90%, transparent 10%);border-radius:18px;min-height:100%;padding:1.1rem 1.15rem 1.2rem;position:relative}.portfolio-bi-stack-step{color:var(--portfolio-muted);letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:.74rem;font-weight:700}.portfolio-bi-review-card{border:1px solid var(--portfolio-border-soft);background:color-mix(in oklab, var(--portfolio-surface-raised) 94%, transparent 6%);border-radius:20px;padding:1.15rem}@media (min-width:1024px){.portfolio-bi-stack{grid-template-columns:repeat(5,minmax(0,1fr))}}.portfolio-prose h2+p{margin-top:.55rem}.portfolio-prose h3+p{margin-top:.5rem}.portfolio-prose h4+p{margin-top:.45rem}.portfolio-prose p+ul,.portfolio-prose p+ol,.portfolio-prose ul+p,.portfolio-prose ol+p{margin-top:.82rem}.portfolio-prose a{color:var(--portfolio-accent-strong);text-decoration:underline;-webkit-text-decoration-color:color-mix(in oklab, var(--portfolio-accent) 46%, transparent 54%);text-decoration-color:color-mix(in oklab, var(--portfolio-accent) 46%, transparent 54%);text-underline-offset:.16em;text-decoration-thickness:.08em;transition:color .15s ease-out,text-decoration-color .15s ease-out,text-decoration-thickness .15s ease-out}:is(.portfolio-prose a:hover,.portfolio-prose a:focus-visible){color:color-mix(in oklab, var(--portfolio-accent-strong) 82%, var(--portfolio-ink) 18%);-webkit-text-decoration-color:color-mix(in oklab, var(--portfolio-accent-strong) 70%, transparent 30%);text-decoration-color:color-mix(in oklab, var(--portfolio-accent-strong) 70%, transparent 30%);text-decoration-thickness:.14em}.portfolio-prose a[href^=http]:not([href*=alexchernysh\.com]):not([href*=localhost]):after{content:" ↗";vertical-align:super;opacity:.4;margin-left:.1em;font-size:.75em;line-height:0}.portfolio-prose strong{color:var(--portfolio-ink);font-weight:620}.portfolio-prose em{color:color-mix(in oklab, var(--portfolio-ink) 86%, transparent 14%)}.portfolio-prose mark{color:inherit;background:#f9e3a799;background:lab(91.03% 1.60959 32.1606/.6);border-radius:.25rem;padding:.05em .2em}.portfolio-prose abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;-webkit-text-decoration-color:color-mix(in oklab, var(--portfolio-muted) 40%, transparent 60%);text-decoration-color:color-mix(in oklab, var(--portfolio-muted) 40%, transparent 60%);text-underline-offset:3px;cursor:help}.portfolio-prose a>abbr[title]{text-decoration:none}.portfolio-article-lead+p{color:color-mix(in oklab, var(--portfolio-ink) 78%, var(--portfolio-muted) 22%);font-size:1.1em;line-height:1.82}.portfolio-prose code{background:color-mix(in oklab, var(--portfolio-surface-raised) 72%, var(--portfolio-bg-secondary) 28%);color:var(--portfolio-ink);overflow-wrap:break-word;white-space:nowrap;border-radius:.45rem;padding:.14rem .38rem;font-size:.9em;display:inline}.portfolio-prose figure[data-rehype-pretty-code-figure]{margin:1.5rem 0;position:relative}.portfolio-prose figure[data-rehype-pretty-code-figure] pre[data-language]:before{content:attr(data-language);text-transform:uppercase;letter-spacing:.06em;color:var(--portfolio-muted);opacity:.4;pointer-events:none;font-size:.7rem;font-weight:500;font-family:var(--font-mono), ui-monospace, monospace;position:absolute;top:.55rem;left:.9rem}.portfolio-prose pre{border:1px solid var(--portfolio-border);border-left:2px solid color-mix(in oklab, var(--portfolio-accent) 40%, var(--portfolio-border) 60%);background:color-mix(in oklab, var(--portfolio-surface-raised) 72%, var(--portfolio-bg-secondary) 28%);border-radius:1rem;padding:1.05rem 1.12rem;position:relative;overflow-x:auto;box-shadow:inset 0 1px #ffffff0a}.portfolio-prose pre code{background:0 0;padding:0;font-size:.875rem;line-height:1.7}.portfolio-prose pre::-webkit-scrollbar{height:6px}.portfolio-prose pre::-webkit-scrollbar-track{background:0 0}.portfolio-prose pre::-webkit-scrollbar-thumb{background:color-mix(in oklab, var(--portfolio-muted) 30%, transparent 70%);border-radius:3px}.portfolio-prose pre::-webkit-scrollbar-thumb:hover{background:color-mix(in oklab, var(--portfolio-muted) 50%, transparent 50%)}@supports (scrollbar-width:thin){.portfolio-prose pre{scrollbar-width:thin;scrollbar-color:color-mix(in oklab, var(--portfolio-muted) 30%, transparent 70%) transparent}}code[data-theme*=\ ],code[data-theme*=\ ] span{color:var(--shiki-light)}.dark code[data-theme*=\ ],.dark code[data-theme*=\ ] span{color:var(--shiki-dark)}span[data-rehype-pretty-code-figure]{display:inline}span[data-rehype-pretty-code-figure]>code{background:color-mix(in oklab, var(--portfolio-surface-raised) 72%, var(--portfolio-bg-secondary) 28%);white-space:nowrap;border-radius:.45rem;padding:.14rem .38rem;display:inline!important}span[data-rehype-pretty-code-figure] [data-line]{width:auto!important;display:inline!important}pre code[data-theme*=\ ] [data-line]{width:100%;display:inline-block}code[data-line-numbers]{counter-reset:line}code[data-line-numbers] [data-line]:before{counter-increment:line;content:counter(line);text-align:right;width:1.5rem;color:var(--portfolio-muted);opacity:.35;margin-right:1rem;font-size:.8em;display:inline-block}code[data-theme*=\ ] [data-highlighted-line]{background:color-mix(in oklab, var(--portfolio-accent) 8%, transparent 92%);border-left:2px solid var(--portfolio-accent);margin-left:-1.12rem;margin-right:-1.12rem;padding-left:calc(1.12rem - 2px);padding-right:1.12rem}pre code [data-line][data-highlighted-line-id=add]{background:#c6e9c626;background:lab(89.1767% -16.7674 13.1527/.15);border-left:2px solid #4aa651;border-left:2px solid lab(61.2132% -42.0948 35.0149);margin-left:-1.12rem;margin-right:-1.12rem;padding-left:calc(1.12rem - 2px);padding-right:1.12rem}pre code [data-line][data-highlighted-line-id=remove]{background:#ffcfca26;background:lab(87.6475% 24.7115 13.4899/.15);border-left:2px solid #dc655f;border-left:2px solid lab(57.9281% 47.0389 27.0407);margin-left:-1.12rem;margin-right:-1.12rem;padding-left:calc(1.12rem - 2px);padding-right:1.12rem}.portfolio-prose ul,.portfolio-prose ol{padding-inline-start:1.45rem}.portfolio-prose ul{list-style:outside}.portfolio-prose ol{list-style:decimal}.portfolio-prose ul ul{list-style-type:circle}.portfolio-prose ol ol,.portfolio-prose ul ol{list-style-type:lower-alpha}.portfolio-prose li{padding-inline-start:.18rem}.portfolio-prose li+li{margin-top:.42rem}.portfolio-prose li::marker{color:color-mix(in oklab, var(--portfolio-accent) 30%, var(--portfolio-muted) 70%);font-weight:700}.portfolio-prose li>ul,.portfolio-prose li>ol{margin-top:.58rem;margin-bottom:.1rem}.portfolio-prose blockquote{border-inline-start:3px solid var(--portfolio-border-strong);max-width:72ch;color:color-mix(in oklab, var(--portfolio-ink) 88%, transparent 12%);background:color-mix(in oklab, var(--portfolio-surface) 40%, transparent 60%);hanging-punctuation:first;border-radius:0 .5rem .5rem 0;padding:.35rem 0 .35rem 1rem;padding-inline-start:1rem;font-size:1.03em}.portfolio-prose table{border-collapse:collapse;border:1px solid var(--portfolio-border);background:color-mix(in oklab, var(--portfolio-surface-raised) 92%, transparent 8%);border-radius:1rem;width:100%;display:block;overflow-x:auto}.portfolio-prose th,.portfolio-prose td{border-bottom:1px solid var(--portfolio-border-soft);text-align:left;vertical-align:top;padding:.86rem .92rem}.portfolio-prose th{color:var(--portfolio-ink);letter-spacing:.1em;text-transform:uppercase;border-bottom:2px solid var(--portfolio-border);font-size:.8rem;font-weight:700}.portfolio-prose thead th{background:color-mix(in oklab, var(--portfolio-surface-raised) 97%, var(--portfolio-bg-secondary) 3%);z-index:1;position:sticky;top:0}.portfolio-prose tbody tr:last-child td{border-bottom:none}.portfolio-prose tbody tr:nth-child(2n){background:color-mix(in oklab, var(--portfolio-surface) 50%, transparent 50%)}.portfolio-prose tbody tr{transition:background-color .12s}.portfolio-prose tbody tr:hover{background:color-mix(in oklab, var(--portfolio-accent) 4%, var(--portfolio-surface) 96%)}.portfolio-prose td{font-variant-numeric:tabular-nums lining-nums}.portfolio-prose td:first-child{color:var(--portfolio-ink);font-weight:550}.portfolio-prose th[data-highlight],.portfolio-prose td[data-highlight]{background:color-mix(in oklab, var(--portfolio-accent) 5%, transparent 95%)}.dark .portfolio-prose th[data-highlight],.dark .portfolio-prose td[data-highlight]{background:color-mix(in oklab, var(--portfolio-accent) 8%, transparent 92%)}.portfolio-prose figcaption{color:var(--portfolio-muted);font-size:.84rem;font-style:italic;line-height:1.5}.portfolio-prose hr{background:var(--portfolio-border);border:none;max-width:4rem;height:1px;margin:2.5rem auto}.portfolio-note-row:hover .portfolio-display{color:var(--portfolio-accent-strong)}.portfolio-note-tag{border:1px solid var(--portfolio-border-soft);background:color-mix(in oklab, var(--portfolio-surface-raised) 82%, transparent 18%);color:var(--portfolio-muted);letter-spacing:.08em;text-transform:uppercase;border-radius:10px;align-items:center;padding:.28rem .55rem;font-size:.72rem;font-weight:700;display:inline-flex}.portfolio-meta-row{flex-wrap:wrap;gap:.8rem 1.15rem;display:flex}.portfolio-meta-item{color:var(--portfolio-muted);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:.45rem;font-size:.84rem;font-weight:700;display:inline-flex}.portfolio-note-row{overflow:hidden}.portfolio-toc{border:1px solid var(--portfolio-border-soft);background:color-mix(in oklab, var(--portfolio-surface) 82%, transparent 18%);box-shadow:none;border-radius:18px}.portfolio-toc-link{color:var(--portfolio-muted);padding:.42rem 0;font-size:.95rem;line-height:1.45;transition:color .15s,transform .15s;display:block}.portfolio-toc-link:hover{color:var(--portfolio-accent-strong);transform:translate(1px)}.portfolio-toc-link.is-active{color:var(--portfolio-ink);font-weight:600}.portfolio-toc-link[data-level="3"]{padding-inline-start:.9rem;font-size:.9rem}.portfolio-plotly .main-svg,.portfolio-plotly .svg-container{width:100%!important}.portfolio-plotly text{fill:var(--portfolio-muted)!important}.portfolio-plotly .xtitle text,.portfolio-plotly .ytitle text,.portfolio-plotly .gtitle text,.portfolio-plotly .legend text,.portfolio-plotly .legendtext{fill:var(--portfolio-ink)!important}.portfolio-plotly .gridlayer path,.portfolio-plotly .gridlayer line,.portfolio-plotly .zerolinelayer path,.portfolio-plotly .zerolinelayer line{stroke:color-mix(in oklab, var(--portfolio-border) 72%, transparent 28%)!important}.portfolio-plotly .xaxislayer-above path,.portfolio-plotly .yaxislayer-above path,.portfolio-plotly .xaxislayer-above line,.portfolio-plotly .yaxislayer-above line{stroke:color-mix(in oklab, var(--portfolio-border-strong) 58%, transparent 42%)!important}@media (max-width:767px){.portfolio-card,.portfolio-card-strong,.portfolio-toc{border-radius:16px}.portfolio-card-subtle,.portfolio-preview-card{border-radius:14px}.portfolio-card,.portfolio-card-strong{box-shadow:0 14px 32px -30px #0a14282e}.portfolio-kicker{letter-spacing:.14em;gap:.5rem;font-size:.68rem}.portfolio-kicker:before{width:1.1rem}.portfolio-meta-row{gap:.6rem .85rem}.portfolio-meta-item{letter-spacing:.06em;font-size:.78rem}.portfolio-note-tag{letter-spacing:.06em;font-size:.68rem}.portfolio-prose{font-size:1rem;line-height:1.72}.portfolio-article-lead{margin-bottom:2rem;font-size:1.08rem;line-height:1.68}.portfolio-article-break{letter-spacing:.14em;gap:.7rem;margin:2.05rem 0 1.55rem;font-size:.68rem}.portfolio-compare-pane{padding:.92rem .92rem .96rem}.portfolio-prose h2{margin-top:2.35rem;margin-bottom:.8rem;font-size:1.92rem}.portfolio-prose h3{margin-top:1.9rem;margin-bottom:.6rem;font-size:1.42rem}.portfolio-prose h4{margin-top:1.55rem;font-size:1.08rem}.portfolio-prose p,.portfolio-prose ul,.portfolio-prose ol,.portfolio-prose pre,.portfolio-prose blockquote,.portfolio-prose table,.portfolio-prose figure{margin-top:.82rem;margin-bottom:.82rem}.portfolio-prose pre{border-radius:.85rem;padding:.9rem .95rem;font-size:.92rem}.portfolio-prose blockquote{padding-inline-start:.8rem}.portfolio-prose ul,.portfolio-prose ol{padding-inline-start:1.2rem}}@media print{.portfolio-header,.portfolio-footer,.portfolio-article-toc-sidebar,.portfolio-article-endcap,.portfolio-reading-progress,.portfolio-back-to-top,.portfolio-sticky-header-border,.portfolio-article-link-button,button,nav:not([aria-label="Table of contents"]),[data-radix-popper-content-wrapper]{display:none!important}body,.portfolio-theme,.portfolio-page{color:#000!important;background:#fff!important}.portfolio-prose{max-width:none;font-size:11pt;line-height:1.6;color:#000!important}.portfolio-prose a{text-decoration:underline;color:#000!important}.portfolio-prose a[href^=http]:after{color:#666;opacity:1;vertical-align:baseline;font-size:.8em;line-height:inherit;content:" (" attr(href) ")"!important}.portfolio-prose pre{page-break-inside:avoid;white-space:pre-wrap;word-wrap:break-word;background:#f9f9f9!important;border:1px solid #ddd!important}.portfolio-prose img{page-break-inside:avoid;max-width:100%!important}h2,h3,h4{page-break-after:avoid;color:#000!important}.portfolio-article-figure{page-break-inside:avoid;background:#fff!important;border-color:#ddd!important}.portfolio-article-callout,.portfolio-article-keypoints,.portfolio-article-checklist{page-break-inside:avoid;background:#f9f9f9!important;border-color:#ddd!important}}.portfolio-floating-read-progress{inset-inline-end:1.25rem;z-index:60;border:1px solid var(--portfolio-border);background:var(--portfolio-surface-raised);width:44px;height:44px;color:var(--portfolio-ink);cursor:pointer;opacity:0;pointer-events:none;border-radius:9999px;justify-content:center;align-items:center;transition:opacity .18s,transform .18s,border-color .16s,box-shadow .16s;display:flex;position:fixed;bottom:1.25rem;transform:translateY(8px);box-shadow:0 2px 10px #0a142814}.portfolio-floating-read-progress.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)}:is(.portfolio-floating-read-progress:hover,.portfolio-floating-read-progress:focus-visible){border-color:var(--portfolio-border-strong);outline:none;box-shadow:0 4px 14px #0a14281f}.portfolio-floating-read-progress svg{width:calc(100% - 4px);height:calc(100% - 4px);position:absolute;inset:2px}.portfolio-floating-read-progress-value{font-family:var(--font-mono,ui-monospace, monospace);color:var(--portfolio-ink);pointer-events:none;font-size:10px;font-weight:600;line-height:1;position:relative}@media (prefers-reduced-motion:reduce){.portfolio-floating-read-progress{transition:opacity .12s;transform:none}}.portfolio-toc-sidebar{scrollbar-width:thin;max-height:calc(100vh - 128px);overflow-y:auto}.portfolio-toc-sidebar-scroll{min-height:0}.portfolio-toc-sidebar-link{color:var(--portfolio-muted);border-inline-start:2px solid #0000;padding-inline-start:.6rem;transition:color .15s,border-color .15s,background-color .15s}.portfolio-toc-sidebar-link:hover{color:var(--portfolio-ink)}.portfolio-toc-sidebar-link.is-active{color:var(--portfolio-accent-strong);border-inline-start-color:var(--portfolio-accent);font-weight:600}.portfolio-toc-sidebar-num{color:var(--portfolio-border-strong)}.portfolio-toc-sidebar-num.is-active{color:var(--portfolio-accent)}.portfolio-toc-details{border:1px solid var(--portfolio-border-soft);background:color-mix(in oklab, var(--portfolio-surface-raised) 90%, transparent 10%);border-radius:14px;padding:.75rem 1rem}.portfolio-toc-details[open]{padding-bottom:1rem}.portfolio-toc-details-summary{letter-spacing:.14em;text-transform:uppercase;color:var(--portfolio-muted);cursor:pointer;align-items:center;gap:.5rem;font-size:.78rem;font-weight:700;list-style:none;display:inline-flex}.portfolio-toc-details-summary::-webkit-details-marker{display:none}.portfolio-toc-details-summary:before{content:"";border-block-end:1.5px solid;border-inline-end:1.5px solid;width:8px;height:8px;margin-inline-end:.2rem;transition:transform .18s;display:inline-block;transform:rotate(-45deg)}.portfolio-toc-details[open] .portfolio-toc-details-summary:before{transform:rotate(45deg)}[dir=rtl] .portfolio-toc-details-summary:before,body[data-site-dir=rtl] .portfolio-toc-details-summary:before{transform:rotate(-135deg)}[dir=rtl] .portfolio-toc-details[open] .portfolio-toc-details-summary:before,body[data-site-dir=rtl] .portfolio-toc-details[open] .portfolio-toc-details-summary:before{transform:rotate(45deg)}.portfolio-toc-details-count{color:var(--portfolio-border-strong);font-weight:500}.portfolio-note-tag-link{text-decoration:none;transition:color .14s,border-color .14s,background-color .14s}:is(.portfolio-note-tag-link:hover,.portfolio-note-tag-link:focus-visible){color:var(--portfolio-accent-strong);border-color:var(--portfolio-border-strong);outline:none}.portfolio-meta-sep{color:var(--portfolio-border-strong);letter-spacing:0;text-transform:none;font-weight:400}.portfolio-article-endcap-author{margin-bottom:1.25rem}.portfolio-article-endcap-author-link{border:1px solid #0000;border-radius:999px;align-items:center;gap:.65rem;padding:.35rem .6rem .35rem .4rem;transition:border-color .14s,background-color .14s;display:inline-flex}:is(.portfolio-article-endcap-author-link:hover,.portfolio-article-endcap-author-link:focus-visible){border-color:var(--portfolio-border-soft);background:color-mix(in oklab, var(--portfolio-surface-raised) 90%, transparent 10%);outline:none}.portfolio-article-endcap-author-meta{flex-direction:column;gap:.15rem;line-height:1.1;display:inline-flex}.portfolio-article-endcap-author-name{color:var(--portfolio-ink);font-size:.85rem;font-weight:600}.portfolio-article-endcap-author-role{color:var(--portfolio-muted);letter-spacing:.02em;font-size:.72rem}.portfolio-tldr-toggle{border:1px solid var(--portfolio-border);background:color-mix(in oklab, var(--portfolio-surface) 92%, transparent 8%);border-radius:999px;align-items:stretch;gap:2px;padding:3px;display:inline-flex}.portfolio-tldr-toggle-chip{color:var(--portfolio-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;align-items:center;gap:.4rem;padding:.4rem .8rem;font-size:.8rem;font-weight:600;transition:color .14s,background-color .14s,border-color .14s;display:inline-flex}.portfolio-tldr-toggle-chip:hover:not(.is-disabled):not(.is-active){color:var(--portfolio-ink)}.portfolio-tldr-toggle-chip.is-active{background:var(--portfolio-surface-raised);color:var(--portfolio-ink);border-color:color-mix(in oklab, var(--portfolio-accent) 30%, var(--portfolio-border-strong) 70%);box-shadow:0 1px 4px #0a14280f}.portfolio-tldr-toggle-chip.is-disabled{opacity:.55;cursor:not-allowed}.portfolio-tldr-toggle-chip-label{letter-spacing:.01em;font-weight:600}.portfolio-tldr-toggle-chip-dot{color:var(--portfolio-border-strong)}.portfolio-tldr-toggle-chip-meta{font-family:var(--font-mono,ui-monospace, monospace);color:var(--portfolio-muted);font-size:.72rem;font-weight:500}.portfolio-tldr-toggle-chip.is-active .portfolio-tldr-toggle-chip-meta{color:var(--portfolio-ink-soft,var(--portfolio-muted))}.portfolio-tldr-toggle-spin{animation:.9s linear infinite portfolio-tldr-spin}@keyframes portfolio-tldr-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.portfolio-tldr-toggle-spin{animation:none}}.portfolio-article-heading{position:relative}.portfolio-anchor-link{width:1.4rem;height:1.4rem;color:var(--portfolio-muted);opacity:0;vertical-align:middle;border-radius:6px;justify-content:center;align-items:center;margin-inline-start:.4rem;transition:opacity .14s,color .14s,background-color .14s;display:inline-flex;position:relative}.portfolio-article-heading:hover .portfolio-anchor-link{opacity:.7}.portfolio-anchor-link:focus-visible{opacity:.7}:is(.portfolio-anchor-link:hover,.portfolio-anchor-link:focus-visible){opacity:1;color:var(--portfolio-accent-strong);background:color-mix(in oklab, var(--portfolio-surface-raised) 85%, transparent 15%);outline:none}.portfolio-anchor-link-toast{inset-inline-start:100%;color:var(--portfolio-accent-strong);background:color-mix(in oklab, var(--portfolio-accent) 8%, transparent 92%);white-space:nowrap;opacity:0;pointer-events:none;border-radius:6px;margin-inline-start:.5rem;padding:.2rem .55rem;font-size:.7rem;font-weight:600;transition:opacity .16s;position:absolute;top:50%;transform:translateY(-50%)}.portfolio-anchor-link-toast:not(:empty){opacity:1}
