@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-sans-3-cyrillic-ext-wght-normal-DzyfIafT.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-sans-3-cyrillic-wght-normal-BMDVbyM7.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-sans-3-greek-ext-wght-normal-BWSLJLk6.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-sans-3-greek-wght-normal-C9H9m1vD.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-sans-3-vietnamese-wght-normal-C1uRvKPU.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-sans-3-latin-ext-wght-normal-C8iNium2.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-sans-3-latin-wght-normal-BqRLTx4X.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Helvetica Neue,Helvetica,Arial,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.pointer-events-none{pointer-events:none}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.-bottom-5{bottom:-1.25rem}.-right-5{right:-1.25rem}.bottom-0{bottom:0}.left-0{left:0}.left-4{left:1rem}.left-\[calc\(50\%-1px\)\]{left:calc(50% - 1px)}.right-0{right:0}.right-5{right:1.25rem}.top-0{top:0}.top-20{top:5rem}.top-3{top:.75rem}.top-5{top:1.25rem}.-z-10{z-index:-10}.z-40{z-index:40}.z-50{z-index:50}.z-\[60\]{z-index:60}.mx-auto{margin-left:auto;margin-right:auto}.mb-3{margin-bottom:.75rem}.mb-7{margin-bottom:1.75rem}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-14{margin-top:3.5rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-7{margin-top:1.75rem}.mt-8{margin-top:2rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-\[389\/500\]{aspect-ratio:389/500}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-20{height:5rem}.h-3{height:.75rem}.h-36{height:9rem}.h-\[2px\]{height:2px}.h-full{height:100%}.min-h-10{min-height:2.5rem}.min-h-12{min-height:3rem}.min-h-5{min-height:1.25rem}.min-h-\[calc\(100vh-5rem\)\]{min-height:calc(100vh - 5rem)}.min-h-screen{min-height:100vh}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-3{width:.75rem}.w-36{width:9rem}.w-8{width:2rem}.w-\[min\(20rem\,86vw\)\]{width:min(20rem,86vw)}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0px}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-7xl{max-width:80rem}.max-w-\[19rem\]{max-width:19rem}.max-w-\[43rem\]{max-width:43rem}.max-w-\[60rem\]{max-width:60rem}.max-w-lg{max-width:32rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.origin-left{transform-origin:left}.-translate-y-20{--tw-translate-y: -5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.list-none{list-style-type:none}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-10{gap:2.5rem}.gap-14{gap:3.5rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-7{gap:1.75rem}.gap-8{gap:2rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-2{row-gap:.5rem}.gap-y-3{row-gap:.75rem}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.whitespace-nowrap{white-space:nowrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-\[1\.4rem\]{border-radius:1.4rem}.rounded-\[2\.5rem\]{border-radius:2.5rem}.rounded-\[2rem\]{border-radius:2rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-\[var\(--accent\)\]{border-color:var(--accent)}.border-\[var\(--ink\)\]{border-color:var(--ink)}.border-\[var\(--line\)\]{border-color:var(--line)}.border-\[var\(--line-soft\)\]{border-color:var(--line-soft)}.bg-\[\#1f2d33\]{--tw-bg-opacity: 1;background-color:rgb(31 45 51 / var(--tw-bg-opacity))}.bg-\[var\(--accent\)\]{background-color:var(--accent)}.bg-\[var\(--canvas\)\]{background-color:var(--canvas)}.bg-\[var\(--clay\)\]{background-color:var(--clay)}.bg-\[var\(--hero\)\]{background-color:var(--hero)}.bg-\[var\(--ink\)\]{background-color:var(--ink)}.bg-\[var\(--line-soft\)\]{background-color:var(--line-soft)}.bg-\[var\(--overlay\)\]{background-color:var(--overlay)}.bg-\[var\(--paper\)\]{background-color:var(--paper)}.bg-\[var\(--playground\)\]{background-color:var(--playground)}.bg-\[var\(--projects\)\]{background-color:var(--projects)}.object-cover{-o-object-fit:cover;object-fit:cover}.object-top{-o-object-position:top;object-position:top}.p-3{padding:.75rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-24{padding-top:6rem;padding-bottom:6rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-7{padding-top:1.75rem;padding-bottom:1.75rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-1{padding-bottom:.25rem}.pb-12{padding-bottom:3rem}.pb-14{padding-bottom:3.5rem}.pb-20{padding-bottom:5rem}.pb-8{padding-bottom:2rem}.pt-10{padding-top:2.5rem}.pt-12{padding-top:3rem}.pt-20{padding-top:5rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-\[0\.8125rem\]{font-size:.8125rem}.text-\[0\.9375rem\]{font-size:.9375rem}.text-\[1\.0625rem\]{font-size:1.0625rem}.text-\[2\.65rem\]{font-size:2.65rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-\[650\]{font-weight:650}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-7{line-height:1.75rem}.leading-8{line-height:2rem}.leading-\[1\.04\]{line-height:1.04}.leading-\[1\.08\]{line-height:1.08}.leading-\[1\.2\]{line-height:1.2}.leading-\[1\.45\]{line-height:1.45}.leading-\[1\.4\]{line-height:1.4}.leading-none{line-height:1}.leading-tight{line-height:1.25}.tracking-\[-0\.005em\]{letter-spacing:-.005em}.tracking-\[-0\.015em\]{letter-spacing:-.015em}.tracking-\[-0\.018em\]{letter-spacing:-.018em}.tracking-\[-0\.01em\]{letter-spacing:-.01em}.tracking-\[-0\.025em\]{letter-spacing:-.025em}.tracking-\[-0\.03em\]{letter-spacing:-.03em}.tracking-\[0\.01em\]{letter-spacing:.01em}.tracking-\[0\.02em\]{letter-spacing:.02em}.tracking-\[0\.1em\]{letter-spacing:.1em}.tracking-wider{letter-spacing:.05em}.text-\[var\(--accent\)\]{color:var(--accent)}.text-\[var\(--accent-contrast\)\]{color:var(--accent-contrast)}.text-\[var\(--canvas\)\]{color:var(--canvas)}.text-\[var\(--ink\)\]{color:var(--ink)}.text-\[var\(--muted\)\]{color:var(--muted)}.text-\[var\(--muted-strong\)\]{color:var(--muted-strong)}.text-\[var\(--paper\)\]{color:var(--paper)}.underline{text-decoration-line:underline}.decoration-\[var\(--line\)\]{text-decoration-color:var(--line)}.underline-offset-4{text-underline-offset:4px}.underline-offset-8{text-underline-offset:8px}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow{--tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / .1)) drop-shadow(0 1px 1px rgb(0 0 0 / .06));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}:root{color:var(--ink);background:var(--canvas);font-family:"Source Sans 3 Variable",-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}html{min-width:320px;scroll-behavior:smooth;scroll-padding-top:5rem;background:var(--canvas)}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden;background:var(--canvas)}.article-reading-page{--paper: #e8e4dc;--canvas: #dcd7ce;--ink: #1c2223;--muted: #566063;--muted-strong: #343d3f;--accent: #654c2c;--accent-hover: #4e391f;--accent-contrast: #f7f3eb;--line: rgb(28 34 35 / 27%);--line-soft: rgb(28 34 35 / 14%);--code-bg: #202627;--code-ink: #f4efe6;--article-object: #f7f4ee;--article-object-soft: #efebe3}html[data-theme=evening] .article-reading-page{--paper: #222526;--canvas: #1b1e1f;--ink: #eee9df;--muted: #b8b8b1;--muted-strong: #d4d1c9;--accent: #ddc28d;--accent-hover: #ead5ac;--accent-contrast: #1b1e1f;--line: rgb(238 233 223 / 22%);--line-soft: rgb(238 233 223 / 12%);--code-bg: #151819;--code-ink: #f2ede4;--article-object: #2b2f30;--article-object-soft: #25292a}@media(prefers-color-scheme:dark){html:not([data-theme]) .article-reading-page{--paper: #222526;--canvas: #1b1e1f;--ink: #eee9df;--muted: #b8b8b1;--muted-strong: #d4d1c9;--accent: #ddc28d;--accent-hover: #ead5ac;--accent-contrast: #1b1e1f;--line: rgb(238 233 223 / 22%);--line-soft: rgb(238 233 223 / 12%);--code-bg: #151819;--code-ink: #f2ede4;--article-object: #2b2f30;--article-object-soft: #25292a}}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}::-moz-selection{color:var(--accent-contrast);background:var(--accent)}::selection{color:var(--accent-contrast);background:var(--accent)}.section-kicker{font-size:.9375rem;line-height:1.35;font-weight:600;letter-spacing:.01em;color:var(--accent)}.display-serif{font-family:inherit;font-weight:620}.hero-identity{color:var(--accent);font-size:1.125rem;font-weight:600;letter-spacing:-.005em;line-height:1.3}.text-balance{text-wrap:balance}.article-body-layout{max-width:60rem}.article-main-column{min-width:0}.article-toc{display:none}.article-prose{color:var(--muted-strong);font-size:1.0875rem;line-height:1.72;margin-inline:auto;max-width:47rem}.article-prose>p:first-child{color:var(--ink);font-size:1.2rem;line-height:1.62}.article-prose>*+*{margin-top:1.5rem}.article-prose>p+p{margin-top:1.15rem}.article-prose h2,.article-prose h3{color:var(--ink);font-family:inherit;font-weight:700;letter-spacing:-.025em;line-height:1.12;scroll-margin-top:6rem}.article-prose h2{margin-top:3.75rem;font-size:clamp(1.85rem,4vw,2.4rem)}.article-prose h3{margin-top:2.75rem;font-size:1.55rem}.article-prose a{color:var(--accent);overflow-wrap:anywhere;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:.2em}.article-prose a:hover{text-decoration-color:var(--accent)}.article-prose .source-ref{font-size:.7em;line-height:0;margin-left:.16em;vertical-align:super}.article-prose .source-ref a{color:var(--muted);font-weight:650;overflow-wrap:normal;text-decoration:none}.article-prose .source-ref a:hover{color:var(--accent)}.article-prose .article-sources li{scroll-margin-top:6rem}.article-prose strong{color:var(--ink);font-weight:650}.article-prose ul,.article-prose ol{padding-left:1.35rem}.article-prose ul{list-style:square}.article-prose ol{list-style:decimal}.article-prose li+li{margin-top:.65rem}.article-prose blockquote{border-left:3px solid var(--accent);color:var(--muted-strong);font-size:1.15rem;margin-left:0;padding-left:1.35rem}.article-prose code{background:var(--line-soft);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.88em;padding:.15em .35em}.article-prose pre{background:var(--code-bg);border:1px solid var(--line-soft);border-radius:.75rem;color:var(--code-ink);line-height:1.55;overflow-x:auto;padding:1.25rem}.article-prose pre code{background:transparent;padding:0}.article-prose table{background:var(--article-object);border:1px solid var(--line);border-radius:.75rem;border-collapse:collapse;display:block;font-size:.92rem;overflow-x:auto;width:100%}.article-prose>pre,.article-prose>table,.article-prose>figure,.article-prose>.article-wide-object,.article-prose>.article-scroll-region{margin-inline:0;max-width:100%;width:100%}.article-scroll-region{overscroll-behavior-x:contain;overflow-x:auto;scrollbar-color:var(--accent) var(--line-soft);scrollbar-width:thin}.article-scroll-table>thead,.article-scroll-table>tbody{display:table;min-width:38rem;table-layout:fixed;width:100%}.article-prose :is(pre,table,.article-scroll-region):focus-visible{outline:2px solid var(--accent);outline-offset:3px}.article-prose th,.article-prose td{border-bottom:1px solid var(--line);padding:.85rem 1rem;text-align:left;vertical-align:top}.article-prose th{background:var(--article-object-soft);color:var(--ink);font-weight:650}.article-prose tbody tr:nth-child(2n){background:var(--article-object-soft)}.article-prose tbody tr:last-child td{border-bottom:0}.article-prose hr{border:0;border-top:1px solid var(--line);margin:3.5rem 0}.article-prose img{display:block;height:auto;max-width:100%}.throughput-diagram-pdf{background:#fff;border:1px solid rgb(19 49 72 / 18%);border-radius:1rem;margin:2.75rem 0;overflow:hidden}.throughput-diagram-pdf img{display:block;height:auto;max-width:100%;width:100%}.throughput-chart{background:var(--article-object);border:1px solid var(--line);border-radius:1rem;margin:2.75rem 0;padding:clamp(1rem,3vw,1.75rem)}.throughput-chart__title{color:var(--ink);font-size:clamp(1.2rem,2.5vw,1.55rem);font-weight:650;line-height:1.25;margin:0 0 .75rem}.throughput-chart img{display:block;height:auto;width:100%}.throughput-chart figcaption{border-top:1px solid var(--line-soft);color:var(--muted);font-size:.9rem;line-height:1.5;margin-top:.75rem;padding-top:.9rem}.throughput-diagram{background:#f7f6f1;border:1px solid rgb(19 49 72 / 18%);border-radius:1.1rem;box-shadow:0 1.5rem 4rem #0410121f;color:#17324a;margin:2.75rem 0;padding:clamp(1.35rem,3.5vw,2.4rem)}.throughput-diagram__header{margin-bottom:clamp(1.5rem,3vw,2.35rem);max-width:46rem}.throughput-diagram__kicker,.throughput-diagram__label{color:#087f84;font-size:.7rem;font-weight:750;letter-spacing:.09em;text-transform:uppercase}.throughput-diagram__title{color:#17324a;font-size:clamp(1.45rem,3.4vw,2.35rem);font-weight:730;letter-spacing:-.035em;line-height:1.04;margin:.45rem 0 0}.throughput-diagram__deck{color:#66727d;font-size:clamp(.95rem,1.8vw,1.08rem);line-height:1.45;margin:.75rem 0 0}.throughput-diagram__flow{align-items:center;display:grid;gap:clamp(.4rem,1vw,.75rem);grid-template-columns:minmax(6.5rem,.95fr) auto minmax(7rem,.9fr) auto minmax(10rem,1.3fr) auto minmax(5.5rem,.65fr)}.throughput-diagram__sessions,.throughput-diagram__weights,.throughput-diagram__operation,.throughput-diagram__outputs{border:1px solid rgb(19 49 72 / 24%);border-radius:.75rem;min-height:13.25rem;padding:.9rem}.throughput-diagram__sessions{background:#eef7f6;border-color:#168a8e;display:grid;gap:.45rem}.throughput-diagram__session{align-items:center;background:#fffefb;border:1px solid rgb(8 127 132 / 30%);border-radius:.45rem;color:#425464;display:flex;font-size:.75rem;justify-content:space-between;padding:.45rem .55rem}.throughput-diagram__session code,.throughput-diagram__outputs code{background:transparent;border:0;color:#17324a;font-size:.8rem;padding:0}.throughput-diagram__weights,.throughput-diagram__operation,.throughput-diagram__outputs{align-items:center;display:flex;flex-direction:column;gap:.75rem;justify-content:center;text-align:center}.throughput-diagram__weights{background:#e9eff3;color:#17324a}.throughput-diagram__operation{background:#fff8ef;border-color:#c67428}.throughput-diagram__outputs{background:#eef7f6;border-color:#168a8e;display:grid;gap:.45rem;grid-template-columns:repeat(2,minmax(0,1fr))}.throughput-diagram__arrow{color:#31536b;font-size:1.35rem;font-weight:750}.throughput-diagram__weights strong,.throughput-diagram__operation strong{color:#17324a;font-size:.88rem;line-height:1.3}.throughput-diagram__weights small,.throughput-diagram__operation small{color:#66727d;font-size:.7rem;line-height:1.35}.throughput-diagram__operation code{background:#fffdf8;border:1px solid rgb(198 116 40 / 35%);border-radius:.5rem;color:#17324a;font-size:clamp(.7rem,1.35vw,.84rem);padding:.55rem .65rem;white-space:nowrap}.throughput-diagram__outputs .throughput-diagram__label{grid-column:1 / -1}.throughput-diagram__outputs code{align-items:center;background:#fffefb;border:1px solid rgb(8 127 132 / 30%);border-radius:.45rem;display:flex;justify-content:center;min-height:2.25rem}.throughput-diagram__payoff{background:#e7f2f1;border-left:.25rem solid #168a8e;color:#29475c;font-size:.86rem;line-height:1.45;margin:1.35rem 0 0;padding:.75rem .9rem}.throughput-diagram__payoff strong{color:#17324a}.throughput-diagram figcaption{color:#66727d;font-size:.76rem;line-height:1.45;margin-top:.75rem}@media(max-width:760px){.throughput-diagram__flow{grid-template-columns:minmax(0,1fr)}.throughput-diagram__arrow{justify-self:center;line-height:1;transform:rotate(90deg)}.throughput-diagram__sessions,.throughput-diagram__weights,.throughput-diagram__operation,.throughput-diagram__outputs{min-height:auto}.throughput-diagram__outputs{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1280px){.article-body-layout{align-items:start;display:grid;gap:3rem;grid-template-columns:minmax(0,60rem) 12rem;max-width:75rem}.article-main-column{grid-column:1;grid-row:1}.article-toc{border-left:1px solid var(--line-soft);display:block;grid-column:2;grid-row:1;max-height:calc(100vh - 8rem);overflow-y:auto;padding-left:1rem;position:sticky;top:7rem}.article-toc>p{color:var(--ink);font-size:.75rem;font-weight:700;letter-spacing:.08em;margin:0;text-transform:uppercase}.article-toc ol{list-style:none;margin:1rem 0 0;padding:0}.article-toc li+li{margin-top:.7rem}.article-toc a{color:var(--muted);display:block;font-size:.8125rem;line-height:1.35;text-decoration:none}.article-toc a:hover,.article-toc a:focus-visible{color:var(--accent)}.article-toc a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}}@media(max-width:639px){.article-prose{font-size:1rem;line-height:1.78}.article-prose>p:first-child{font-size:1.12rem}.article-prose h2{margin-top:3.25rem}.article-prose pre{border-radius:.5rem;font-size:.8rem;padding:1rem}.article-prose table{font-size:.82rem}}@media print{.article-reading-page{background:#fff;color:#111}.article-reading-page>header,.article-reading-page>footer,.article-progress,.article-toc,.article-reading-page a[href="/writing/"]{display:none!important}.article-reading-page main>article>header{background:transparent;color:#111;padding-top:0}.article-prose{color:#222;font-size:10.5pt}.article-prose h2,.article-prose h3,.article-prose strong{color:#111}.article-prose a{color:inherit}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.hover\:border-\[var\(--accent\)\]:hover{border-color:var(--accent)}.hover\:bg-\[var\(--accent-hover\)\]:hover{background-color:var(--accent-hover)}.hover\:bg-\[var\(--paper\)\]:hover{background-color:var(--paper)}.hover\:text-\[var\(--accent\)\]:hover{color:var(--accent)}.hover\:underline:hover{text-decoration-line:underline}.focus\:translate-y-0:focus{--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-inset:focus-visible{--tw-ring-inset: inset}.focus-visible\:ring-\[var\(--accent\)\]:focus-visible{--tw-ring-color: var(--accent)}.focus-visible\:ring-\[var\(--ink\)\]:focus-visible{--tw-ring-color: var(--ink)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.focus-visible\:ring-offset-4:focus-visible{--tw-ring-offset-width: 4px}.focus-visible\:ring-offset-\[var\(--canvas\)\]:focus-visible{--tw-ring-offset-color: var(--canvas)}.focus-visible\:ring-offset-\[var\(--hero\)\]:focus-visible{--tw-ring-offset-color: var(--hero)}.focus-visible\:ring-offset-\[var\(--playground\)\]:focus-visible{--tw-ring-offset-color: var(--playground)}.group\/projects[open] .group-open\/projects\:rotate-180,.group[open] .group-open\:rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-125{--tw-scale-x: 1.25;--tw-scale-y: 1.25;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:text-\[var\(--accent\)\]{color:var(--accent)}@media(min-width:640px){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-\[1fr_auto\]{grid-template-columns:1fr auto}.sm\:grid-cols-\[3rem_minmax\(0\,0\.8fr\)_minmax\(0\,1fr\)_1\.5rem\]{grid-template-columns:3rem minmax(0,.8fr) minmax(0,1fr) 1.5rem}.sm\:grid-cols-\[5rem_0\.7fr_1fr\]{grid-template-columns:5rem .7fr 1fr}.sm\:flex-row{flex-direction:row}.sm\:items-start{align-items:flex-start}.sm\:items-baseline{align-items:baseline}.sm\:gap-3{gap:.75rem}.sm\:gap-5{gap:1.25rem}.sm\:gap-8{gap:2rem}.sm\:py-12{padding-top:3rem;padding-bottom:3rem}.sm\:py-16{padding-top:4rem;padding-bottom:4rem}.sm\:py-20{padding-top:5rem;padding-bottom:5rem}.sm\:py-24{padding-top:6rem;padding-bottom:6rem}.sm\:py-28{padding-top:7rem;padding-bottom:7rem}.sm\:pb-20{padding-bottom:5rem}.sm\:pb-28{padding-bottom:7rem}.sm\:pt-20{padding-top:5rem}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-5xl{font-size:3rem;line-height:1}.sm\:text-6xl{font-size:3.75rem;line-height:1}.sm\:text-7xl{font-size:4.5rem;line-height:1}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}.sm\:leading-8{line-height:2rem}.sm\:leading-9{line-height:2.25rem}}@media(min-width:768px){.md\:flex{display:flex}.md\:hidden{display:none}}@media(min-width:1024px){.lg\:mx-0{margin-left:0;margin-right:0}.lg\:block{display:block}.lg\:grid-cols-\[0\.42fr_1fr\]{grid-template-columns:.42fr 1fr}.lg\:grid-cols-\[0\.45fr_1fr\]{grid-template-columns:.45fr 1fr}.lg\:grid-cols-\[1\.25fr_0\.75fr\]{grid-template-columns:1.25fr .75fr}.lg\:gap-16{gap:4rem}.lg\:gap-20{gap:5rem}.lg\:justify-self-end{justify-self:end}.lg\:py-24{padding-top:6rem;padding-bottom:6rem}.lg\:text-\[4\.75rem\]{font-size:4.75rem}}@media(min-width:1280px){.xl\:inline{display:inline}.xl\:w-auto{width:auto}.xl\:flex-row{flex-direction:row}}.\[\&\:\:-webkit-details-marker\]\:hidden::-webkit-details-marker{display:none}
