@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono/JetBrainsMono-Regular.woff2) format("woff2");font-style:normal;font-weight:400;font-display:optional}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono/JetBrainsMono-SemiBold.woff2) format("woff2");font-style:normal;font-weight:600;font-display:optional}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono/JetBrainsMono-Bold.woff2) format("woff2");font-style:normal;font-weight:700;font-display:optional}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono/JetBrainsMono-Italic.woff2) format("woff2");font-style:italic;font-weight:400;font-display:optional}:root{font-size-adjust:ch-width .6;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", SFMono-Regular, "IBM Plex Mono", Menlo, Consolas, "Liberation Mono", monospace}:root{--theme-bg: #000;--theme-surface: #181818;--theme-text: #fff;--theme-muted: #b9b9b9;--theme-faint: #8f8f8f;--theme-rule: #292929;--theme-rule-strong: #424242;--theme-highlight: #dcdcdc;--theme-highlight-text: #000;--theme-code-bg: #181818;--theme-red: #ff6b6b;--theme-green: #6be0a0;--theme-blue: #6b9bff;--theme-diagram-halo: #000;color-scheme:dark;background:var(--theme-bg)}:root[data-theme=light]{--theme-bg: #fff;--theme-surface: #f3f3f3;--theme-text: #0d0d0d;--theme-muted: #5d5d5d;--theme-faint: #737373;--theme-rule: #e8e8e8;--theme-rule-strong: #d8d8d8;--theme-highlight: #282828;--theme-highlight-text: #fff;--theme-code-bg: #f3f3f3;--theme-red: #c9363b;--theme-green: #218653;--theme-blue: #3e63dd;--theme-diagram-halo: #8a8a80;color-scheme:light}:root ::selection{background:var(--theme-highlight);color:var(--theme-highlight-text)}:root :focus-visible{outline:2px solid var(--theme-highlight);outline-offset:3px}:root{--paper: var(--theme-bg);--paper-sunk: var(--theme-surface);--ink: var(--theme-text);--ink-muted: var(--theme-muted);--ink-faint: var(--theme-faint);--rule: var(--theme-rule);--rule-strong: var(--theme-rule-strong);--mark: var(--theme-highlight);--mark-ink: var(--theme-highlight-text);--code-bg: var(--theme-code-bg);--measure: 68ch;--sidebar: 15rem;font-synthesis:none;text-rendering:optimizeLegibility}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:6rem;-webkit-text-size-adjust:100%;background:var(--paper)}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{display:flex;flex-direction:column;min-width:320px;min-height:100svh;margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-mono);font-size:.95rem;line-height:1.75;letter-spacing:-.01em;font-variant-ligatures:none;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none;border-bottom:1px solid var(--rule-strong)}a:hover{background:var(--mark);color:var(--mark-ink);border-bottom-color:transparent}mark{background:var(--mark);color:var(--mark-ink);padding:.05em .28em}.skip{position:absolute;left:-9999px}.skip:focus{left:1rem;top:1rem;z-index:10;background:var(--mark);color:var(--mark-ink);padding:.5rem .75rem}.page{flex:1 0 auto;width:auto;margin:0;padding:0;overflow-x:clip}.shell{display:grid;grid-template-columns:minmax(0,1fr) var(--layout-nav-width);gap:var(--layout-gap);width:100%;max-width:var(--layout-width);margin:0 auto;padding:var(--layout-top) var(--layout-gutter) var(--layout-bottom)}.shell>main{grid-column:1;grid-row:2;max-width:none;padding-top:var(--layout-content-offset)}.shell-solo{grid-template-columns:minmax(0,1fr)}.shell-solo>main{grid-row:1}.sidebar{grid-column:1;grid-row:1;justify-self:start;min-width:0;width:100%;position:static;align-self:start;padding-top:.25rem}main{min-width:0;max-width:var(--measure);margin-inline:auto;width:100%}.parts{position:relative;padding:.75rem 0 .5rem;border-top:1px solid var(--rule-strong)}.parts-rail{display:none;position:absolute;top:0;bottom:0;left:0;width:1px;background:var(--rule-strong);pointer-events:none}.parts-window{position:absolute;left:-1px;width:3px;height:1px;background:var(--ink-muted);transform-origin:top;transform:scaleY(0);transition:transform .22s cubic-bezier(.16,1,.3,1)}.parts-summary{margin-bottom:.75rem}.parts .parts-title{padding:0;color:var(--ink);font-size:.8rem;line-height:1.4;font-weight:600}.parts ol{list-style:none;margin:0;padding:0}.parts li{margin:0}.parts li+li{margin-top:.5rem}.parts a{display:block;padding:0;border-bottom:none;color:var(--ink-muted);text-decoration:none;transition:color .15s ease-out;overflow-wrap:anywhere}.parts a:hover{background:none;color:var(--ink)}.part-title{display:block;padding-left:calc(var(--toc-depth, 0) * .75rem);font-size:.8rem;font-weight:400;letter-spacing:normal;line-height:1.4;text-transform:none}.parts a[aria-current=location]{color:var(--ink)}.post-layout{max-width:none}.post-body{display:grid;grid-template-columns:13rem minmax(0,1fr);gap:3rem;align-items:start}.post-body>.sidebar{position:sticky;top:6rem;max-height:calc(100svh - 7rem);overflow-y:auto;scrollbar-width:thin;padding:0}@media(width<64rem){.post-body{display:block}.post-body>.sidebar{position:static;max-height:none;margin-bottom:2.5rem}.post-body>.sidebar .parts{border-top:0;padding-top:0}}@media(prefers-reduced-motion:reduce){.parts *{transition:none}}.prose{--prose-space: clamp(1rem, 1.6vw, 1.25rem);--prose-block-space: clamp(1.5rem, 2.8vw, 2rem);--prose-section-space: clamp(2.25rem, 4vw, 3rem)}:where(.prose) p{margin:0}.prose p{color:var(--ink)}.doc-head{text-align:center;margin:0 0 var(--prose-block-space, 2rem)}.doc-head h1{font-size:clamp(1.35rem,3.4vw,2.1rem);line-height:1.3;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin:0;color:var(--ink)}.doc-meta{margin:.75rem 0 0;font-size:.68rem;letter-spacing:.16em;color:var(--ink-faint)}.post-head{margin:0 0 3rem;padding-bottom:2.5rem;border-bottom:1px solid var(--rule)}.post-crumbs{font-size:.8rem;color:var(--ink-muted)}.post-head h1{margin:2rem 0 0;font-size:clamp(1.8rem,5vw,3rem);line-height:1.12;font-weight:700;letter-spacing:-.03em;color:var(--ink)}.post-lede{margin:1.25rem 0 0;font-size:1rem;color:var(--ink-muted)}.post-facts{display:flex;flex-wrap:wrap;gap:.5rem 1.75rem;margin:1.5rem 0 0;font-size:.8rem}.post-facts div{display:flex;gap:.5ch}.post-facts dt{color:var(--ink-faint)}.post-facts dd{margin:0;color:var(--ink)}.prose>:where(p,ul,ol,table){margin-block:var(--prose-space)}.prose>.employer-disclaimer{position:relative;margin-block:0 var(--prose-block-space);padding:1rem 1.25rem 1rem 3rem;border:1px solid var(--rule-strong);border-radius:.75rem;background:var(--paper-sunk);font-size:.875rem;line-height:1.7}.prose>.employer-disclaimer:before{content:"";position:absolute;top:1.25rem;left:1rem;width:1rem;height:1rem;background:currentColor;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='6.25' fill='none' stroke='black' stroke-width='1.5'/%3E%3Cpath d='M8 7v4m0-6h.01' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat}.prose :where(blockquote,li,figcaption)>p+p{margin-top:var(--prose-space)}.prose h2,.prose h3,.prose h4{color:var(--ink)}.prose h3,.prose h4{font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);margin:var(--prose-block-space) 0 .75rem}.prose ul,.prose ol{padding-left:1.4rem}.prose li{margin:.375rem 0}.prose li::marker{color:var(--ink-faint)}.prose blockquote{margin:var(--prose-block-space) 0;padding:.25rem 0 .25rem 1.25rem;border-left:2px solid var(--rule-strong);color:var(--ink-muted)}.prose strong{font-weight:700}.prose hr{border:none;border-top:1px solid var(--rule)}.rule-dotted{border:none!important;border-top:1px dashed var(--rule-strong)!important;margin:0 0 var(--prose-space, 1rem)}.part{margin:var(--prose-section-space, 3rem) 0 .75rem}.part h2{text-align:center;margin:0;font-size:.95rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.part-heading{padding:.05em .28em;background:transparent;color:inherit}.part h2:is(:hover,:focus-within) .part-heading{background:var(--mark);color:var(--mark-ink)}.prose pre{position:relative;margin:var(--prose-block-space) 0;background:var(--code-bg);border:1px solid var(--rule);padding:1.1rem 1.2rem;overflow-x:auto}.prose pre code{font-size:.82rem;line-height:1.7;letter-spacing:0;background:none;border:none;padding:0}.prose :not(pre)>code{background:var(--code-bg);border:1px solid var(--rule);padding:.05em .35em;font-size:.85em}.diagram,.prose>figure{margin:var(--prose-block-space, 2rem) 0;padding:1.25rem;border:1px solid var(--rule);background:var(--paper-sunk);text-align:center;overflow-x:auto}.diagram img,.diagram svg,.prose>figure img,.prose>figure svg{width:auto;max-width:100%;height:auto;display:block;margin-inline:auto}.diagram figcaption,.prose>figure figcaption{margin-top:.75rem;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint)}.prose>.excalidraw-figure{padding:0;border:none;background:none}.diagram-scroll{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}.diagram-scroll img,.diagram-scroll svg{display:block;width:100%;max-width:100%;min-width:0;height:auto;margin-inline:auto}.prose>.excalidraw-figure img,.prose>.excalidraw-figure svg{width:100%;min-width:0;max-width:100%}.prose :where(pre,table){max-width:100%;overflow-x:auto}.prose table{display:block;width:100%;border-collapse:collapse;font-size:.85rem;line-height:1.6}.prose :where(th,td){min-width:10rem;padding:.85rem 1rem;border-bottom:1px solid var(--rule);text-align:left;vertical-align:top}.prose th{background:color-mix(in srgb,var(--ink) 5%,var(--paper));color:var(--ink);font-weight:700}.prose :where(th,td):first-child{min-width:7rem;font-weight:600}.prose tbody tr:last-child td{border-bottom:none}.prose>.excalidraw-figure figcaption{font-size:.8rem;letter-spacing:normal;text-transform:none;color:var(--ink-muted)}.prose>.responsive-diagram{overflow:visible}.responsive-diagram picture{display:block;max-width:100%;margin-inline:auto}.prose>.responsive-diagram img{min-width:0;max-width:100%}.prose .post-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}.prose .post-list>li{margin:0;border-bottom:1px solid var(--rule)}.post-list>li>a{display:block;padding:1.35rem .5rem;border-bottom:none}.post-list>li>a{padding-inline:0}.post-list>li>a:hover{background:var(--paper-sunk);color:inherit}.post-list>li>a:hover .post-title{background:var(--mark);color:var(--mark-ink)}.post-date{display:block;font-size:.64rem;letter-spacing:.16em;color:var(--ink-faint)}.post-title{display:inline-block;margin-top:.3rem;font-size:.92rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.post-desc{display:block;margin-top:.35rem;font-size:.8rem;color:var(--ink-muted)}.tag-list{display:flex;flex-wrap:wrap;gap:.45rem;list-style:none;margin:.75rem 0 0;padding:0}.post-list>li:has(>.tag-list)>a{padding-bottom:.75rem}.prose .post-list>li>.tag-list{margin:0;padding:0 0 1.35rem}.doc-head>.tag-list{justify-content:center;padding:0}.tag-list>.tag{margin:0}.tag{display:inline-flex;align-items:center;justify-content:center;min-height:1.65rem;padding:.12rem .55rem;border:1px solid var(--rule-strong);border-radius:.18rem;background:transparent;color:var(--ink-muted);font-size:.68rem;font-weight:700;letter-spacing:.08em;line-height:1;text-transform:uppercase;transition:border-color .15s ease,color .15s ease,background-color .15s ease}.tag-link{display:inline-flex;align-items:center;min-height:1.65rem;border-bottom:0}.tag-link:hover{background:none;color:inherit}.tag-dot{display:none}.tag:hover{border-color:var(--ink-muted);background:var(--paper-sunk);color:var(--ink)}.doc-end{font-size:.7rem;letter-spacing:.16em;text-align:center}.site-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;width:100%;flex-shrink:0;max-width:var(--layout-width);margin:0 auto;padding:1.25rem var(--layout-gutter) var(--layout-bottom);border-top:1px solid var(--rule);font-size:.66rem;letter-spacing:.14em;color:var(--ink-faint)}.footer-links{display:flex;gap:1.25rem}.site-footer a{border-bottom:none}@media(max-width:60rem){.sidebar:empty{display:none}.shell:has(>.sidebar){grid-template-columns:minmax(0,1fr);row-gap:1.25rem}.shell:has(>.sidebar)>main{grid-row:2;padding-top:0}.sidebar .parts a{min-height:44px;padding-block:.65rem}.responsive-diagram picture{width:min(100%,30rem)}@media(max-width:600px){.shell{grid-template-columns:minmax(0,1fr)}}.part h2{font-size:.82rem}}@media(max-width:28rem){body{font-size:.9rem}.shell,.writing-index{padding-block:1.5rem 2rem}.diagram,.prose>figure{padding:.75rem}.site-footer{align-items:flex-start;flex-direction:column;gap:.75rem}.footer-links{flex-wrap:wrap;gap:.75rem 1rem}}@media print{.site-header,.sidebar,.site-footer,.skip{display:none}.shell{display:block}}
