:root{color-scheme:dark;--bg: #0d0906;--bg-secondary: #1a120a;--text: #f5e6d3;--text-muted: #b39980;--accent: #ff9933;--accent-text: #ff9933;--border: #4d3319;--link: #ff9933;--link-hover: #ffb366;--code-bg: var(--bg-secondary);--code-text: #f5e6d3;--code-line-number: #7c6853;--code-attribute: #e5c07b;--code-comment: #a08a72;--code-keyword: #ff9933;--code-function: #ffd166;--code-type: #f4a988;--code-string: #c9c47e;--code-number: #ff7b5c;--code-token-8: #ef5a45;--code-constant: #ff7b5c;--code-escape: #e5c07b;--code-punctuation: #c9b29b;--code-hl: #2a1f14;--code-bg1: #4a2020;--code-bg2: #4a3810}:root[data-theme=light]{color-scheme:light;--bg: #fff5e6;--bg-secondary: #ffe8cc;--text: #2a1a00;--text-muted: #664400;--accent: #c75d00;--accent-text: #a34d00;--border: #e6c499;--link: #994400;--link-hover: #662200;--code-bg: var(--bg-secondary);--code-text: #2a1a00;--code-line-number: #8c7865;--code-attribute: #995a26;--code-comment: #75593d;--code-keyword: #b34700;--code-function: #715a00;--code-type: #7d2e1c;--code-string: #5c5800;--code-number: #b0261a;--code-token-8: #b3141c;--code-constant: #b0261a;--code-escape: #995a26;--code-punctuation: #4a3018;--code-hl: #f7deb8;--code-bg1: #ffd6d6;--code-bg2: #ffebc2}@media (prefers-color-scheme: light){:root:not([data-theme=dark]){color-scheme:light;--bg: #fff5e6;--bg-secondary: #ffe8cc;--text: #2a1a00;--text-muted: #664400;--accent: #c75d00;--accent-text: #a34d00;--border: #e6c499;--link: #994400;--link-hover: #662200;--code-bg: var(--bg-secondary);--code-text: #2a1a00;--code-line-number: #8c7865;--code-attribute: #995a26;--code-comment: #75593d;--code-keyword: #b34700;--code-function: #715a00;--code-type: #7d2e1c;--code-string: #5c5800;--code-number: #b0261a;--code-token-8: #b3141c;--code-constant: #b0261a;--code-escape: #995a26;--code-punctuation: #4a3018;--code-hl: #f7deb8;--code-bg1: #ffd6d6;--code-bg2: #ffebc2}}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{min-height:100%}body{min-height:100%;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:100%;background-color:var(--bg);color:var(--text);line-height:1.6;transition:background-color .2s,color .2s}a{color:var(--link);text-decoration:none;transition:color .15s}a:hover{color:var(--link-hover)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}[hidden]{display:none !important}.skip-link{position:fixed;top:.75rem;left:.75rem;z-index:100;padding:.5rem .75rem;color:var(--bg);background:var(--accent-text);transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}hr{border:none;border-top:1px solid var(--border);margin:1rem 0}.single-page{width:100%;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;max-width:760px;margin:0 auto;padding:2rem 1.5rem}.header{text-align:left;padding-bottom:1rem;border-bottom:1px solid var(--border);flex-shrink:0;margin-bottom:1rem}.header-content{position:relative;padding-right:3rem}.name{font-size:1.5rem;font-weight:700;color:var(--text);letter-spacing:-.02em;margin-bottom:.25rem}.role{font-size:.875rem;color:var(--accent-text);font-weight:500}.theme-toggle{position:absolute;top:0;right:0;background:rgba(0,0,0,0);border:1px solid var(--border);color:var(--text-muted);width:2.25rem;height:2.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .15s,color .15s;font:inherit}.theme-toggle:hover{border-color:var(--accent);color:var(--accent-text)}:root:not([data-theme]) .theme-toggle{display:none}.theme-icon::before{content:"[L]";font-size:.8rem}:root[data-theme=light] .theme-icon::before{content:"[D]"}.footer-mini{text-align:left;padding-top:1rem;border-top:1px solid var(--border);flex-shrink:0;font-size:.8rem;color:var(--text-muted)}.footer-mini a{color:var(--text-muted)}.footer-mini a:hover{color:var(--accent-text)}@media (prefers-reduced-motion: reduce){*,*::before,*::after{scroll-behavior:auto !important;transition-duration:.01ms !important;animation-duration:.01ms !important;animation-iteration-count:1 !important}}@media (max-width: 640px){.single-page{padding:1rem}}.focus{font-size:.875rem;color:var(--text-muted);margin-top:.25rem}.quote-container{width:100%;padding:.75rem 0;background:rgba(0,0,0,0);color:inherit;font:inherit;text-align:left;border:0;border-bottom:1px solid var(--border);cursor:pointer;min-height:5rem;display:flex;flex-direction:column;justify-content:center}.quote-text{font-size:.875rem;font-style:italic;color:var(--text-muted);line-height:1.5;transition:opacity .3s ease}.quote-author{font-size:.8rem;color:var(--accent-text);margin-top:.25rem;transition:opacity .3s ease}.tabs{display:flex;align-items:center;gap:.25rem;padding:.75rem 0;border-bottom:1px solid var(--border);flex-shrink:0}.tabs [role=tablist]{display:flex;align-items:center;flex-wrap:wrap;gap:.25rem}.tab{background:rgba(0,0,0,0);border:none;color:var(--text-muted);padding:.25rem;cursor:pointer;font-size:.875rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;transition:color .15s;text-transform:lowercase;line-height:1}.tab:hover{color:var(--text)}.tab.active{color:var(--accent-text)}.tab.active::before{content:"> "/""}.tabs-separator{color:var(--border);font-size:.875rem;line-height:1}.tab-content{flex:1;padding:1rem 0}.exp-main,.edu-main,.pub-main{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem;flex:1;min-width:0}.exp-title,.edu-degree,.pub-title{font-weight:600;color:var(--text);font-size:1rem}.edu-institution,.pub-venue{color:var(--accent-text);font-size:.875rem}.exp-projects,.edu-thesis,.edu-advisor{font-size:.875rem;color:var(--text-muted);padding-left:.5rem;border-left:1px solid var(--border)}.exp-item{position:relative;isolation:isolate;border-bottom:1px solid var(--border)}.exp-item::before{content:"";position:absolute;inset:0 -.5rem;z-index:-1;border-left:2px solid rgba(0,0,0,0);transition:border-color .15s,background-color .15s}.exp-item:last-child{border-bottom:none}.exp-item:hover::before,.exp-item.expanded::before{border-left-color:var(--accent)}.exp-item.expanded::before{background-color:var(--bg-secondary)}.exp-trigger{width:100%;color:inherit;background:rgba(0,0,0,0);border:0;font:inherit;text-align:left;cursor:pointer}.exp-header{display:flex;padding:.75rem 0}.exp-item.expanded .exp-header{padding-bottom:.5rem}.exp-loc{color:var(--text-muted);font-size:.875rem}.exp-loc::before{content:"@ "/"at ";color:var(--accent-text)}.exp-skills{display:none;font-size:.8rem;color:var(--accent-text);flex-basis:100%;font-style:italic}.exp-item.expanded .exp-skills{display:block}.exp-details{padding:0 0 .75rem 0}.exp-details ul{list-style:none;padding-left:0}.exp-details ul li{font-size:.875rem;color:var(--text-muted);padding:.25rem 0 .25rem 1.5rem;position:relative}.exp-details ul li::before{content:"-"/"";position:absolute;left:.5rem;color:var(--accent-text)}.exp-projects{margin-bottom:.5rem}.edu-item,.pub-item{padding:.75rem 0;border-bottom:1px solid var(--border)}.edu-item:last-of-type,.pub-item:last-of-type{border-bottom:none}.edu-dept{color:var(--text-muted);font-size:.8rem;flex-basis:100%}.edu-gpa{color:var(--text-muted);font-size:.8rem}.edu-thesis{margin-top:.5rem}.edu-advisor{margin-top:.25rem;border-left-color:var(--accent)}.pub-authors{font-size:.875rem;color:var(--text-muted);font-style:italic;margin-top:.25rem}.section-label{font-size:.8rem;font-weight:600;color:var(--accent-text);text-transform:uppercase;letter-spacing:.1em;margin-top:1.5rem;margin-bottom:.5rem}.section-label::before{content:"# "/""}.section-label:first-child{margin-top:0}@media (max-width: 640px){.focus{padding-right:3rem}.exp-loc::before{content:""}}.blog-list{flex:1}.dispatch-search{margin-bottom:.75rem;font-size:.875rem}.dispatch-search summary{width:fit-content;padding:.25rem 0;color:var(--accent-text);cursor:pointer}.dispatch-search label{display:block;margin:.5rem 0;color:var(--text-muted)}.dispatch-search input{width:100%;padding:.5rem;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:.25rem}.dispatch-search-status{color:var(--text-muted);margin-top:.5rem}.blog-item{border-bottom:1px solid var(--border);padding:1rem 0}.blog-item:last-child{border-bottom:none}.blog-item:hover .blog-title{color:var(--accent-text)}.dispatch-list .blog-item{padding:.25rem 0}.blog-title-link{color:inherit}.blog-title{font-size:1rem;font-weight:600;color:var(--text);transition:color .15s}.dispatch-list .blog-title{line-height:1.4}.blog-desc{font-size:.875rem;color:var(--text-muted);margin-top:.25rem}.no-posts{color:var(--text-muted);padding:1rem 0}.blog-post{max-width:1040px;overflow-wrap:anywhere}.blog-post .header{border-bottom:none;padding-bottom:0}.blog-back{font-size:.8rem;margin-bottom:1rem}.blog-back a{color:var(--text-muted)}.blog-back a:hover{color:var(--accent-text)}.post-english-title{color:var(--accent-text);font-size:.8rem;line-height:1.5;margin-bottom:.25rem}.post-title{font-size:1.5rem;font-weight:700;color:var(--text);line-height:1.3}.post-content{flex:1;padding:1.5rem 0;border-top:1px solid var(--border);margin-top:1rem}.post-content>p,.post-content>ul,.post-content>ol,.post-content>blockquote{max-width:44rem}.post-content h1,.post-content h2,.post-content h3,.post-content h4,.post-content h5,.post-content h6{scroll-margin-top:1rem}.post-content .heading-anchor{display:inline-block;padding:.125rem .25rem;margin-left:.25rem;color:var(--accent-text);font-size:.85em;font-weight:400;text-decoration:none}.post-content .heading-anchor:hover{text-decoration:underline}.post-content h2{font-size:1.25rem;font-weight:600;color:var(--text);margin-top:1.5rem;margin-bottom:.75rem}.post-content h2::before{content:"## "/"";color:var(--accent-text)}.post-content h3{font-size:1.125rem;font-weight:600;color:var(--text);margin-top:1rem;margin-bottom:.5rem}.post-content h3::before{content:"### "/"";color:var(--accent-text)}.post-content p{font-size:1rem;color:var(--text-muted);margin-bottom:1rem;line-height:1.7}.post-content strong{color:var(--text);font-weight:600}.post-content em{color:var(--text);font-style:italic}.post-content code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:.875rem;background:var(--bg-secondary);padding:.125rem .25rem;border-radius:2px}.post-content pre{background:var(--code-bg);color:var(--code-text);border:1px solid var(--border);padding:1rem;margin:1rem 0;overflow-x:auto;overflow-wrap:normal;font-size:.875rem;line-height:1.5}.post-content pre code{background:none;color:inherit;padding:0}.post-content ul,.post-content ol{margin:1rem 0;padding-left:1.5rem}.post-content ul li,.post-content ol li{font-size:1rem;color:var(--text-muted);margin-bottom:.5rem;line-height:1.6}.post-content table{display:block;overflow-x:auto;width:100%;border-collapse:collapse;margin:1rem 0;font-size:.875rem}.post-content table th,.post-content table td{border:1px solid var(--border);padding:.5rem;text-align:left}.post-content table th{background:var(--bg-secondary);color:var(--text);font-weight:600}.post-content table td{color:var(--text-muted)}.post-content blockquote{border-left:2px solid var(--accent);padding-left:1rem;margin:1rem 0;font-style:italic;color:var(--text-muted)}.post-content img{display:block;max-width:100%;height:auto;margin:1rem auto}.post-content a{text-decoration:underline;text-underline-offset:.2em}.article-diagram{max-width:40rem;margin:1.5rem auto}.article-diagram figcaption{font-size:.875rem;line-height:1.6;color:var(--text-muted);text-align:center}.build-diagram{margin:1.5rem auto}.build-diagram .diagram-light,.build-diagram .diagram-dark{display:block;overflow-x:auto}.build-diagram .diagram-light{display:none}.build-diagram img{min-width:46rem}.build-diagram figcaption{font-size:.8rem;color:var(--text-muted);text-align:center}:root[data-theme=light] .build-diagram .diagram-light{display:block}:root[data-theme=light] .build-diagram .diagram-dark{display:none}@media (prefers-color-scheme: light){:root:not([data-theme=dark]) .build-diagram .diagram-light{display:block}:root:not([data-theme=dark]) .build-diagram .diagram-dark{display:none}}.build-diagram-compact{max-width:24rem}.build-diagram-compact img{min-width:0}pre.z-code,.z-code{color:var(--code-text);background-color:var(--code-bg)}pre.z-code code,.z-code code{color:inherit}pre.z-code .z-hl,.z-code .z-hl{background-color:var(--code-hl)}pre.z-code .giallo-ln,.z-code .giallo-ln{display:inline-block;min-width:3ch;margin-right:.4em;padding-right:.4em;color:var(--code-line-number);text-align:right;user-select:none;opacity:.8}pre.z-code .z-1,.z-code .z-1{color:var(--code-attribute)}pre.z-code .z-2,.z-code .z-2{color:var(--code-comment)}pre.z-code .z-3,.z-code .z-3{color:var(--code-keyword)}pre.z-code .z-4,.z-code .z-4{color:var(--code-function)}pre.z-code .z-5,.z-code .z-5{color:var(--code-type)}pre.z-code .z-6,.z-code .z-6{color:var(--code-string)}pre.z-code .z-7,.z-code .z-7{color:var(--code-number)}pre.z-code .z-8,.z-code .z-8{color:var(--code-token-8)}pre.z-code .z-9,.z-code .z-9{color:var(--code-constant)}pre.z-code .z-10,.z-code .z-10{color:var(--code-escape)}pre.z-code .z-11,.z-code .z-11{color:var(--code-punctuation)}pre.z-code .z-bg1,.z-code .z-bg1{background-color:var(--code-bg1)}pre.z-code .z-bg2,.z-code .z-bg2{background-color:var(--code-bg2)}pre.z-code .z-b,.z-code .z-b{font-weight:bold}pre.z-code .z-i,.z-code .z-i{font-style:italic}pre.z-code .z-u,.z-code .z-u{text-decoration:underline}pre.z-code .z-s,.z-code .z-s{text-decoration:line-through}pre.z-code .z-us,.z-code .z-us{text-decoration:underline line-through}.not-found{justify-content:center}.not-found .eyebrow{color:var(--accent-text);font-weight:700}.not-found h1{margin:.25rem 0 .75rem}.not-found p{color:var(--text-muted);margin-bottom:1rem}.support-page{max-width:40rem}.support-page .header-content{min-height:2.5rem}.support-content{padding:2.5rem 0;text-align:center}.support-content h1{font-size:clamp(1.5rem, 5vw, 2rem);margin-bottom:1.5rem}.support-content>p{margin:1rem 0}.support-content .support-small{font-size:.8rem;color:var(--text-muted)}.support-content .support-thanks{margin-top:2rem}.support-card{margin:2rem 0 1rem;padding:1.5rem;border:1px solid var(--border);border-radius:12px;background:var(--bg-secondary)}.support-card h2{font-size:1rem}.support-card .support-tokens{display:flex;justify-content:center;gap:.75rem;margin:1rem 0}.support-card .support-tokens span{padding:.25rem .75rem;border:1px solid var(--border);border-radius:999px;font-size:.875rem}.support-card .support-unavailable{margin:1.5rem 0;color:var(--text-muted);font-size:.875rem}.support-card button{padding:.75rem 1rem;font:inherit;font-size:.875rem;color:var(--text-muted);background:var(--bg);border:1px solid var(--border);border-radius:6px;cursor:default}.support-card .support-small{margin-top:.75rem}