.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%,#0000 8%)}.portfolio-preview-card{border:1px solid var(--portfolio-border);background:color-mix(in oklab,var(--portfolio-surface) 92%,#0000 8%);box-shadow:var(--portfolio-shadow)}.portfolio-kicker{display:inline-flex;align-items:center;gap:.65rem;color:var(--portfolio-muted);font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.portfolio-kicker:before{content:"";display:inline-flex;width:1.5rem;height:1px;background:var(--portfolio-border-strong)}.portfolio-list-row{display:flex;align-items:center;min-height:2.6rem;padding:.72rem .9rem;border:1px solid var(--portfolio-border-soft);border-radius:14px;background:color-mix(in oklab,var(--portfolio-surface-raised) 84%,#0000 16%);color:var(--portfolio-ink-soft);font-size:.95rem;font-weight:600}.portfolio-article-shell{border:1px solid var(--portfolio-border-soft);border-radius:16px;background:color-mix(in oklab,var(--portfolio-surface-strong) 86%,#0000 14%);box-shadow:0 20px 48px -40px #0a122033}.portfolio-article-header{position:relative;border-bottom:1px solid var(--portfolio-border-soft)}.portfolio-article-body,.portfolio-article-body-wrap,.portfolio-article-compression-root{position:relative}.portfolio-article-compress-trigger{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:2.3rem;padding:.45rem .75rem;border:1px solid var(--portfolio-border-soft);border-radius:999px;background:color-mix(in oklab,var(--portfolio-surface-raised) 96%,#0000 4%);color:color-mix(in oklab,var(--portfolio-ink) 72%,var(--portfolio-muted) 28%);font-size:.82rem;font-weight:600;letter-spacing:.01em;transition:color .14s ease,border-color .14s ease,background-color .14s ease,transform .14s ease,box-shadow .14s ease}.portfolio-article-compress-trigger:focus-visible,.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%,#0000 0);transform:translateY(-1px);box-shadow:0 2px 8px -2px #00000014;outline:none}.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{display:grid;gap:.1rem}.portfolio-article-body.is-compressing{filter:blur(5px);opacity:.24;transform:scale(.996);transition:filter .18s ease,opacity .18s ease,transform .18s ease;pointer-events:none;-webkit-user-select:none;user-select:none}.portfolio-article-summary-loading{position:absolute;inset:0 auto auto 0;width:min(34rem,100%);padding:1rem 1rem 1.1rem;border:1px solid var(--portfolio-border-soft);border-radius:20px;background:color-mix(in oklab,var(--portfolio-surface) 94%,#0000 6%);box-shadow:0 20px 46px -36px #0a122047;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.portfolio-article-summary-progress{height:2px;overflow:hidden;border-radius:999px;background:color-mix(in oklab,var(--portfolio-border) 70%,#0000 30%)}.portfolio-article-summary-progress span{display:block;width:42%;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--portfolio-accent) 0,var(--portfolio-accent-strong) 100%)}.portfolio-article-summary-card{position:relative;border:1px solid var(--portfolio-border-soft);border-radius:16px;background:color-mix(in oklab,var(--portfolio-surface) 97%,#0000 3%);padding:1rem}.portfolio-article-summary-card.is-loading{opacity:.78;pointer-events:none}.portfolio-article-summary-toolbar{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:1rem}.portfolio-article-summary-pill{display:inline-flex;align-items:center;justify-content:center;min-height:2rem;padding:.38rem .72rem;border:1px solid var(--portfolio-border-soft);border-radius:999px;background:color-mix(in oklab,var(--portfolio-surface-raised) 86%,#0000 14%);color:var(--portfolio-muted);font-size:.82rem;font-weight:650;letter-spacing:.02em;transition:color .14s ease,border-color .14s ease,background-color .14s ease}.portfolio-article-summary-pill.is-active,.portfolio-article-summary-pill:focus-visible,.portfolio-article-summary-pill:hover{color:var(--portfolio-ink);border-color:var(--portfolio-border-strong);background:color-mix(in oklab,var(--portfolio-surface) 94%,#0000 6%)}.portfolio-article-summary-bullet{list-style:none;position:relative;padding-inline-start:1.1rem}.portfolio-article-summary-bullet:before{content:"";position:absolute;top:.72rem;inset-inline-start:0;width:.38rem;height:.38rem;border-radius:999px;background:color-mix(in oklab,var(--portfolio-accent) 52%,var(--portfolio-muted) 48%)}.portfolio-article-summary-paragraphs{display:grid}.portfolio-article-summary-paragraph{margin:0}.portfolio-article-summary-error{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.75rem;color:color-mix(in oklab,var(--portfolio-ink) 74%,var(--portfolio-muted) 26%);font-size:.92rem;line-height:1.6}.portfolio-article-summary-error p{margin:0}.portfolio-article-summary-retry{display:inline-flex;align-items:center;gap:.42rem;padding:.35rem .68rem;border-radius:999px;border:1px solid color-mix(in oklab,var(--portfolio-border) 84%,#0000 16%);background:color-mix(in oklab,var(--portfolio-surface) 92%,#0000 8%);color:color-mix(in oklab,var(--portfolio-ink) 82%,var(--portfolio-muted) 18%);font-size:.84rem;font-weight:600;letter-spacing:.01em;transition:border-color .14s ease,background-color .14s ease,color .14s ease}.portfolio-article-summary-retry:focus-visible,.portfolio-article-summary-retry:hover{border-color:var(--portfolio-border-strong);background:color-mix(in oklab,var(--portfolio-surface-strong) 92%,#0000 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{display:flex;flex-wrap:wrap;gap:.65rem}.portfolio-legal-private-shell{min-width:0}.portfolio-legal-article-toc{transition:opacity .16s ease,transform .16s ease}.portfolio-article-shell-storytelling{background:color-mix(in oklab,var(--portfolio-surface-strong) 90%,#0000 10%)}.portfolio-article-lead{max-width:42rem;margin:0 0 2.8rem;color:color-mix(in oklab,var(--portfolio-ink) 90%,#0000 10%);font-size:clamp(1.18rem,1.8vw,1.34rem);font-weight:420;line-height:1.78}.portfolio-article-lead+.portfolio-article-callout,.portfolio-article-lead+.portfolio-article-keypoints,.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-figure,.portfolio-article-keypoints{box-shadow:none}.portfolio-article-checklist,.portfolio-article-keypoints{background:color-mix(in oklab,var(--portfolio-surface-raised) 96%,#0000 4%)}.portfolio-article-break{display:flex;align-items:center;gap:.85rem;margin:2.6rem 0 2rem;color:var(--portfolio-muted);font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.portfolio-article-break:after,.portfolio-article-break:before{content:"";flex:1 1 auto;height:1px;background:linear-gradient(90deg,#0000 0,var(--portfolio-border) 100%)}.portfolio-article-break:after{background:linear-gradient(90deg,var(--portfolio-border) 0,#0000 100%)}.portfolio-compare{display:grid;gap:1rem;margin:2rem 0}.portfolio-compare-pane{border:1px solid var(--portfolio-border-soft);border-radius:14px;background:color-mix(in oklab,var(--portfolio-surface-raised) 94%,#0000 6%);padding:1rem 1rem 1.05rem}.portfolio-compare-title{margin:0 0 .75rem;color:var(--portfolio-ink);font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.portfolio-compare-caption{margin:.2rem 0 0;color:var(--portfolio-muted);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;font-size:1.06rem;line-height:1.78;letter-spacing:-.01em;overflow-wrap:anywhere;font-variant-numeric:oldstyle-nums proportional-nums}.portfolio-prose h1,.portfolio-prose h2,.portfolio-prose h3,.portfolio-prose h4{font-family:var(--font-heading),serif;color:var(--portfolio-ink);line-height:1.04;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}.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 .portfolio-article-break,.portfolio-prose .portfolio-compare,.portfolio-prose blockquote,.portfolio-prose figure,.portfolio-prose ol,.portfolio-prose p,.portfolio-prose pre,.portfolio-prose table,.portfolio-prose ul{margin-top:.95rem;margin-bottom:.95rem}.portfolio-prose p{text-wrap:pretty;orphans:2;widows:2}.portfolio-prose>.portfolio-article-lead,.portfolio-prose>.portfolio-source-note,.portfolio-prose>blockquote,.portfolio-prose>ol,.portfolio-prose>p,.portfolio-prose>ul{max-width:74ch}.portfolio-prose>aside,.portfolio-prose>div,.portfolio-prose>figure,.portfolio-prose>h2,.portfolio-prose>h3,.portfolio-prose>h4,.portfolio-prose>pre,.portfolio-prose>section,.portfolio-prose>table{max-width:none}.portfolio-prose-storytelling>.portfolio-article-lead,.portfolio-prose-storytelling>.portfolio-source-note,.portfolio-prose-storytelling>blockquote,.portfolio-prose-storytelling>ol,.portfolio-prose-storytelling>p,.portfolio-prose-storytelling>ul{max-width:78ch}.portfolio-article-body-storytelling .portfolio-article-figure,.portfolio-article-body-storytelling .portfolio-card,.portfolio-article-body-storytelling .portfolio-card-strong{overflow:clip}.portfolio-bi-stack{display:grid;gap:1rem}.portfolio-bi-stack-card{position:relative;min-height:100%;padding:1.1rem 1.15rem 1.2rem;border:1px solid var(--portfolio-border-soft);border-radius:18px;background:color-mix(in oklab,var(--portfolio-surface) 90%,#0000 10%)}.portfolio-bi-stack-step{margin:0;color:var(--portfolio-muted);font-size:.74rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.portfolio-bi-review-card{border:1px solid var(--portfolio-border-soft);border-radius:20px;background:color-mix(in oklab,var(--portfolio-surface-raised) 94%,#0000 6%);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 ol+p,.portfolio-prose p+ol,.portfolio-prose p+ul,.portfolio-prose ul+p{margin-top:.82rem}.portfolio-prose a{color:var(--portfolio-accent-strong);text-decoration:underline;text-decoration-color:color-mix(in oklab,var(--portfolio-accent) 46%,#0000 54%);text-decoration-thickness:.08em;text-underline-offset:.16em;transition:color .15s ease-out,text-decoration-color .15s ease-out,text-decoration-thickness .15s ease-out}.portfolio-prose a:focus-visible,.portfolio-prose a:hover{color:color-mix(in oklab,var(--portfolio-accent-strong) 82%,var(--portfolio-ink) 18%);text-decoration-color:color-mix(in oklab,var(--portfolio-accent-strong) 70%,#0000 30%);text-decoration-thickness:.14em}.portfolio-prose a[href^=http]:not([href*="alexchernysh.com"]):not([href*=localhost]):after{content:" \2197";font-size:.75em;vertical-align:super;line-height:0;opacity:.4;margin-left:.1em}.portfolio-prose strong{color:var(--portfolio-ink);font-weight:620}.portfolio-prose em{color:color-mix(in oklab,var(--portfolio-ink) 86%,#0000 14%)}.portfolio-prose mark{background:color-mix(in oklab,oklch(.92 .08 90) 60%,#0000 40%);padding:.05em .2em;border-radius:.25rem;color:inherit}.portfolio-prose abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;text-decoration-color:color-mix(in oklab,var(--portfolio-muted) 40%,#0000 60%);text-underline-offset:3px;cursor:help}.portfolio-prose a>abbr[title]{text-decoration:none}.portfolio-article-lead+p{font-size:1.1em;color:color-mix(in oklab,var(--portfolio-ink) 78%,var(--portfolio-muted) 22%);line-height:1.82}.portfolio-prose code{display:inline;border-radius:.45rem;background:color-mix(in oklab,var(--portfolio-surface-raised) 72%,var(--portfolio-bg-secondary) 28%);padding:.14rem .38rem;font-size:.9em;color:var(--portfolio-ink);overflow-wrap:break-word;white-space:nowrap}.portfolio-prose figure[data-rehype-pretty-code-figure]{position:relative;margin:1.5rem 0}.portfolio-prose figure[data-rehype-pretty-code-figure] pre[data-language]:before{content:attr(data-language);position:absolute;top:.55rem;left:.9rem;font-size:.7rem;font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--portfolio-muted);opacity:.4;pointer-events:none;font-family:var(--font-mono),ui-monospace,monospace}.portfolio-prose pre{position:relative;overflow-x:auto;border-radius:1rem;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%);padding:1.05rem 1.12rem;box-shadow:inset 0 1px 0 #ffffff0a}.portfolio-prose pre code{background:#0000;padding:0;font-size:.875rem;line-height:1.7}.portfolio-prose pre::-webkit-scrollbar{height:6px}.portfolio-prose pre::-webkit-scrollbar-track{background:#0000}.portfolio-prose pre::-webkit-scrollbar-thumb{background:color-mix(in oklab,var(--portfolio-muted) 30%,#0000 70%);border-radius:3px}.portfolio-prose pre::-webkit-scrollbar-thumb:hover{background:color-mix(in oklab,var(--portfolio-muted) 50%,#0000 50%)}@supports (scrollbar-width:thin){.portfolio-prose pre{scrollbar-width:thin;scrollbar-color:color-mix(in oklab,var(--portfolio-muted) 30%,#0000 70%) #0000}}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{display:inline!important;background:color-mix(in oklab,var(--portfolio-surface-raised) 72%,var(--portfolio-bg-secondary) 28%);padding:.14rem .38rem;border-radius:.45rem;white-space:nowrap}span[data-rehype-pretty-code-figure] [data-line]{display:inline!important;width:auto!important}pre code[data-theme*=" "] [data-line]{display:inline-block;width:100%}code[data-line-numbers]{counter-reset:line}code[data-line-numbers] [data-line]:before{counter-increment:line;content:counter(line);display:inline-block;width:1.5rem;margin-right:1rem;text-align:right;color:var(--portfolio-muted);opacity:.35;font-size:.8em}code[data-theme*=" "] [data-highlighted-line]{background:color-mix(in oklab,var(--portfolio-accent) 8%,#0000 92%);border-left:2px solid var(--portfolio-accent)}code[data-theme*=" "] [data-highlighted-line],pre code [data-line][data-highlighted-line-id=add]{margin-left:-1.12rem;padding-left:calc(1.12rem - 2px);margin-right:-1.12rem;padding-right:1.12rem}pre code [data-line][data-highlighted-line-id=add]{background:color-mix(in oklab,oklch(.9 .06 145) 15%,#0000 85%);border-left:2px solid oklch(.65 .15 145)}pre code [data-line][data-highlighted-line-id=remove]{background:color-mix(in oklab,oklch(.9 .08 25) 15%,#0000 85%);border-left:2px solid oklch(.65 .15 25);margin-left:-1.12rem;padding-left:calc(1.12rem - 2px);margin-right:-1.12rem;padding-right:1.12rem}.portfolio-prose ol,.portfolio-prose ul{padding-inline-start:1.45rem}.portfolio-prose ul{list-style:disc outside}.portfolio-prose ol{list-style:decimal outside}.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>ol,.portfolio-prose li>ul{margin-top:.58rem;margin-bottom:.1rem}.portfolio-prose blockquote{max-width:72ch;border-inline-start:3px solid var(--portfolio-border-strong);padding:.35rem 0 .35rem 1rem;padding-inline-start:1rem;color:color-mix(in oklab,var(--portfolio-ink) 88%,#0000 12%);font-size:1.03em;background:color-mix(in oklab,var(--portfolio-surface) 40%,#0000 60%);border-radius:0 .5rem .5rem 0;hanging-punctuation:first}.portfolio-prose table{display:block;width:100%;overflow-x:auto;border-collapse:collapse;border-radius:1rem;border:1px solid var(--portfolio-border);background:color-mix(in oklab,var(--portfolio-surface-raised) 92%,#0000 8%)}.portfolio-prose td,.portfolio-prose th{padding:.86rem .92rem;border-bottom:1px solid var(--portfolio-border-soft);text-align:left;vertical-align:top}.portfolio-prose th{color:var(--portfolio-ink);font-size:.8rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;border-bottom:2px solid var(--portfolio-border)}.portfolio-prose thead th{position:sticky;top:0;background:color-mix(in oklab,var(--portfolio-surface-raised) 97%,var(--portfolio-bg-secondary) 3%);z-index:1}.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%,#0000 50%)}.portfolio-prose tbody tr{transition:background-color .12s ease}.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{font-weight:550;color:var(--portfolio-ink)}.portfolio-prose td[data-highlight],.portfolio-prose th[data-highlight]{background:color-mix(in oklab,var(--portfolio-accent) 5%,#0000 95%)}.dark .portfolio-prose td[data-highlight],.dark .portfolio-prose th[data-highlight]{background:color-mix(in oklab,var(--portfolio-accent) 8%,#0000 92%)}.portfolio-prose figcaption{font-size:.84rem;color:var(--portfolio-muted);line-height:1.5;font-style:italic}.portfolio-prose hr{border:none;height:1px;background:var(--portfolio-border);max-width:4rem;margin:2.5rem auto}.portfolio-note-row:hover .portfolio-display{color:var(--portfolio-accent-strong)}.portfolio-note-tag{display:inline-flex;align-items:center;padding:.28rem .55rem;border-radius:10px;border:1px solid var(--portfolio-border-soft);background:color-mix(in oklab,var(--portfolio-surface-raised) 82%,#0000 18%);color:var(--portfolio-muted);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.portfolio-meta-row{display:flex;flex-wrap:wrap;gap:.8rem 1.15rem}.portfolio-meta-item{display:inline-flex;align-items:center;gap:.45rem;color:var(--portfolio-muted);font-size:.84rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.portfolio-note-row{overflow:hidden}.portfolio-toc{border:1px solid var(--portfolio-border-soft);background:color-mix(in oklab,var(--portfolio-surface) 82%,#0000 18%);border-radius:18px;box-shadow:none}.portfolio-toc-link{display:block;padding:.42rem 0;color:var(--portfolio-muted);font-size:.95rem;line-height:1.45;transition:color .15s ease,transform .15s ease}.portfolio-toc-link:hover{color:var(--portfolio-accent-strong);transform:translateX(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 .gtitle text,.portfolio-plotly .legend text,.portfolio-plotly .legendtext,.portfolio-plotly .xtitle text,.portfolio-plotly .ytitle text{fill:var(--portfolio-ink)!important}.portfolio-plotly .gridlayer line,.portfolio-plotly .gridlayer path,.portfolio-plotly .zerolinelayer line,.portfolio-plotly .zerolinelayer path{stroke:color-mix(in oklab,var(--portfolio-border) 72%,#0000 28%)!important}.portfolio-plotly .xaxislayer-above line,.portfolio-plotly .xaxislayer-above path,.portfolio-plotly .yaxislayer-above line,.portfolio-plotly .yaxislayer-above path{stroke:color-mix(in oklab,var(--portfolio-border-strong) 58%,#0000 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{gap:.5rem;font-size:.68rem;letter-spacing:.14em}.portfolio-kicker:before{width:1.1rem}.portfolio-meta-row{gap:.6rem .85rem}.portfolio-meta-item{font-size:.78rem;letter-spacing:.06em}.portfolio-note-tag{font-size:.68rem;letter-spacing:.06em}.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{margin:2.05rem 0 1.55rem;gap:.7rem;font-size:.68rem;letter-spacing:.14em}.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 blockquote,.portfolio-prose figure,.portfolio-prose ol,.portfolio-prose p,.portfolio-prose pre,.portfolio-prose table,.portfolio-prose ul{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 ol,.portfolio-prose ul{padding-inline-start:1.2rem}}@media print{.portfolio-article-endcap,.portfolio-article-link-button,.portfolio-article-toc-sidebar,.portfolio-back-to-top,.portfolio-footer,.portfolio-header,.portfolio-reading-progress,.portfolio-sticky-header-border,[data-radix-popper-content-wrapper],button,nav:not([aria-label="Table of contents"]){display:none!important}.portfolio-page,.portfolio-theme,body{background:#fff!important;color:#000!important}.portfolio-prose{font-size:11pt;line-height:1.6;max-width:none;color:#000!important}.portfolio-prose a{color:#000!important;text-decoration:underline}.portfolio-prose a[href^=http]:after{content:" (" attr(href) ")"!important;font-size:.8em;color:#666;opacity:1;vertical-align:initial;line-height:inherit}.portfolio-prose pre{border:1px solid #ddd!important;background:#f9f9f9!important;page-break-inside:avoid;white-space:pre-wrap;word-wrap:break-word}.portfolio-prose img{max-width:100%!important;page-break-inside:avoid}h2,h3,h4{page-break-after:avoid;color:#000!important}.portfolio-article-figure{page-break-inside:avoid;border-color:#ddd!important;background:#fff!important}.portfolio-article-callout,.portfolio-article-checklist,.portfolio-article-keypoints{page-break-inside:avoid;background:#f9f9f9!important;border-color:#ddd!important}}.portfolio-floating-read-progress{position:fixed;inset-inline-end:1.25rem;bottom:1.25rem;width:44px;height:44px;z-index:60;display:flex;align-items:center;justify-content:center;border-radius:9999px;border:1px solid var(--portfolio-border);background:var(--portfolio-surface-raised);color:var(--portfolio-ink);box-shadow:0 2px 10px #0a142814;cursor:pointer;opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .18s ease,transform .18s ease,border-color .16s ease,box-shadow .16s ease}.portfolio-floating-read-progress.is-visible{opacity:1;transform:translateY(0);pointer-events:auto}.portfolio-floating-read-progress:focus-visible,.portfolio-floating-read-progress:hover{border-color:var(--portfolio-border-strong);box-shadow:0 4px 14px #0a14281f;outline:none}.portfolio-floating-read-progress svg{position:absolute;inset:2px;width:calc(100% - 4px);height:calc(100% - 4px)}.portfolio-floating-read-progress-value{position:relative;font-family:var(--font-mono,ui-monospace,monospace);font-size:10px;font-weight:600;color:var(--portfolio-ink);line-height:1;pointer-events:none}@media (prefers-reduced-motion:reduce){.portfolio-floating-read-progress{transition:opacity .12s ease;transform:none}}.portfolio-toc-sidebar{max-height:calc(100vh - 128px);overflow-y:auto;scrollbar-width:thin}.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 ease,border-color .15s ease,background-color .15s ease}.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);border-radius:14px;background:color-mix(in oklab,var(--portfolio-surface-raised) 90%,#0000 10%);padding:.75rem 1rem}.portfolio-toc-details[open]{padding-bottom:1rem}.portfolio-toc-details-summary{display:inline-flex;align-items:center;gap:.5rem;font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--portfolio-muted);cursor:pointer;list-style:none}.portfolio-toc-details-summary::-webkit-details-marker{display:none}.portfolio-toc-details-summary:before{content:"";display:inline-block;width:8px;height:8px;border-inline-end:1.5px solid currentColor;border-block-end:1.5px solid currentColor;transform:rotate(-45deg);transition:transform .18s ease;margin-inline-end:.2rem}.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 ease,border-color .14s ease,background-color .14s ease}.portfolio-note-tag-link:focus-visible,.portfolio-note-tag-link:hover{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{display:inline-flex;align-items:center;gap:.65rem;padding:.35rem .6rem .35rem .4rem;border-radius:999px;border:1px solid #0000;transition:border-color .14s ease,background-color .14s ease}.portfolio-article-endcap-author-link:focus-visible,.portfolio-article-endcap-author-link:hover{border-color:var(--portfolio-border-soft);background:color-mix(in oklab,var(--portfolio-surface-raised) 90%,#0000 10%);outline:none}.portfolio-article-endcap-author-meta{display:inline-flex;flex-direction:column;line-height:1.1;gap:.15rem}.portfolio-article-endcap-author-name{font-size:.85rem;font-weight:600;color:var(--portfolio-ink)}.portfolio-article-endcap-author-role{font-size:.72rem;color:var(--portfolio-muted);letter-spacing:.02em}.portfolio-tldr-toggle{display:inline-flex;align-items:stretch;padding:3px;border:1px solid var(--portfolio-border);border-radius:999px;background:color-mix(in oklab,var(--portfolio-surface) 92%,#0000 8%);gap:2px}.portfolio-tldr-toggle-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .8rem;border-radius:999px;font-size:.8rem;font-weight:600;color:var(--portfolio-muted);border:1px solid #0000;background:#0000;cursor:pointer;transition:color .14s ease,background-color .14s ease,border-color .14s ease}.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{font-weight:600;letter-spacing:.01em}.portfolio-tldr-toggle-chip-dot{color:var(--portfolio-border-strong)}.portfolio-tldr-toggle-chip-meta{font-family:var(--font-mono,ui-monospace,monospace);font-size:.72rem;font-weight:500;color:var(--portfolio-muted)}.portfolio-tldr-toggle-chip.is-active .portfolio-tldr-toggle-chip-meta{color:var(--portfolio-ink-soft,var(--portfolio-muted))}.portfolio-tldr-toggle-spin{animation:portfolio-tldr-spin .9s linear infinite}@keyframes portfolio-tldr-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.portfolio-tldr-toggle-spin{animation:none}}.portfolio-article-heading{position:relative}.portfolio-anchor-link{display:inline-flex;align-items:center;justify-content:center;width:1.4rem;height:1.4rem;margin-inline-start:.4rem;border-radius:6px;color:var(--portfolio-muted);opacity:0;transition:opacity .14s ease,color .14s ease,background-color .14s ease;vertical-align:middle;position:relative}.portfolio-anchor-link:focus-visible,.portfolio-article-heading:hover .portfolio-anchor-link{opacity:.7}.portfolio-anchor-link:focus-visible,.portfolio-anchor-link:hover{opacity:1;color:var(--portfolio-accent-strong);background:color-mix(in oklab,var(--portfolio-surface-raised) 85%,#0000 15%);outline:none}.portfolio-anchor-link-toast{position:absolute;inset-inline-start:100%;top:50%;transform:translateY(-50%);margin-inline-start:.5rem;padding:.2rem .55rem;border-radius:6px;font-size:.7rem;font-weight:600;color:var(--portfolio-accent-strong);background:color-mix(in oklab,var(--portfolio-accent) 8%,#0000 92%);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .16s ease}.portfolio-anchor-link-toast:not(:empty){opacity:1}