:root,:root[data-theme=dark]{--bg: #1a1917;--text: #a8a29e;--prose: #c9c5c1;--heading: #f5f5f4;--link: #bdb8b2;--date: #57534e;--desc: #8a847e;--byline: #8a847e;--toggle: #6b6660;--rule: #2e2b28}:root[data-theme=light]{--bg: #f4f3f1;--text: #57534e;--prose: #292524;--heading: #1c1917;--link: #44403c;--date: #a8a29e;--desc: #78716c;--byline: #78716c;--toggle: #78716c;--rule: #e4e2df}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif;word-spacing:.045em;font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background .2s ease,color .2s ease}main{max-width:640px;margin:0 auto;padding:80px 32px}a{color:var(--link);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}a:hover{opacity:.7}hr{border:none;border-top:1px solid var(--rule);margin:28px 0}.theme-toggle{position:absolute;top:0;right:0;background:none;border:none;padding:0;cursor:pointer;font-family:inherit;font-size:.78rem;color:var(--toggle);letter-spacing:.02em}.theme-toggle:hover{opacity:.7}#root:has(>.home-layout){display:grid;align-items:center;min-height:100svh}.home-layout{width:100%;max-width:740px;padding:32px}.home-layout hr{margin:18px 0}.home-layout .section-label{margin-bottom:12px}.home-layout .site-header h1{margin-bottom:6px}.home-layout .role-timeline{margin-top:10px}.home-layout .role-entry{padding-bottom:10px}.home-layout .role-entry:last-child{padding-bottom:0}.home-layout .role-project{margin-top:2px}.home-layout .writing-item:last-child{margin-bottom:0}.home-layout .project-image{min-height:140px}.home-layout .project-copy{padding:16px 20px}.site-header{position:relative}.site-header h1{font-size:1.2rem;font-weight:400;color:var(--heading);margin:0 0 12px}.social{color:var(--desc);font-size:.95rem;margin:0}.social a{color:var(--link)}.currently-list{list-style:none;margin:0;padding:0}.currently-item{display:flex;align-items:center;gap:10px;margin-bottom:12px;font-size:.95rem;color:var(--desc)}.currently-item:last-child{margin-bottom:0}.currently-item .logo{width:20px;height:20px;border-radius:5px;object-fit:contain;flex:0 0 auto;display:block}.currently-item .org{color:var(--heading)}.currently-item.has-timeline{align-items:flex-start}.has-timeline .logo{margin-top:3px}.currently-details{min-width:0}.role-timeline{list-style:none;margin:16px 0 0;padding:0}.role-entry{position:relative;padding:0 0 20px 22px}.role-entry:last-child{padding-bottom:0}.role-entry:before{content:"";position:absolute;left:0;top:9px;width:6px;height:6px;border-radius:50%;background:var(--text)}.role-entry:not(:last-child):after{content:"";position:absolute;left:2.5px;top:19px;bottom:-5px;width:1px;background:var(--rule)}.role-title{color:var(--heading)}.role-status{font-size:.8rem;color:var(--text)}.role-project{margin:6px 0 0;color:var(--text);overflow-wrap:anywhere}.section-label{font-size:.95rem;font-weight:400;color:var(--heading);margin:0 0 24px}.writing-list{list-style:none;margin:0;padding:0}.writing-item{margin-bottom:28px}.writing-item .row{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px}.writing-item a.post-link{font-size:.95rem;color:var(--link)}.writing-item .date{font-size:.78rem;color:var(--date);white-space:nowrap}.writing-item .desc{font-size:.95rem;color:var(--desc);margin:4px 0 0}.projects-list{list-style:none;margin:0;padding:0}.project-card{display:grid;grid-template-columns:42% minmax(0,1fr);overflow:hidden;border:1px solid var(--rule);border-radius:4px;text-decoration:none;color:var(--text)}.project-card:hover{opacity:1;border-color:var(--text)}.project-card:focus-visible{outline:2px solid var(--heading);outline-offset:4px}.project-image{display:block;width:100%;height:100%;min-height:172px;object-fit:cover}.project-copy{padding:20px;align-self:center}.project-copy h3{display:flex;justify-content:space-between;gap:16px;margin:0;color:var(--heading);font-size:1rem;font-weight:400}.project-copy p{margin:8px 0 0;font-size:.95rem}@media (max-width: 480px){.project-card{grid-template-columns:1fr}.project-image{height:auto;min-height:0;aspect-ratio:16 / 9}}.back{display:inline-block;font-size:.95rem;margin-bottom:40px}article h1{font-size:1.4rem;font-weight:400;color:var(--heading);margin:0 0 8px;line-height:1.3}.byline{color:var(--byline);font-size:.95rem;margin:0}.toc{margin:0 0 8px;padding:0;list-style:none}.toc li{margin:2px 0}.toc a{color:var(--desc);text-decoration:none;font-size:.95rem}.toc a:hover{color:var(--link);text-decoration:underline}.prose{color:var(--prose)}.prose p{font-size:.95rem;line-height:1.9;margin:0 0 24px}.prose h2{font-size:.95rem;font-weight:400;color:var(--heading);margin:40px 0 12px}.prose h3{font-size:.95rem;font-weight:400;color:var(--heading);margin:28px 0 8px}.prose ul,.prose ol{font-size:.95rem;line-height:1.9;padding-left:22px;margin:0 0 24px}.prose li{margin-bottom:4px}.prose img{max-width:100%;height:auto;display:block;margin:24px auto}.prose figure{margin:24px 0}.prose figcaption{font-size:.82rem;color:var(--desc);text-align:center;margin-top:8px}.prose blockquote{margin:24px 0;padding-left:16px;border-left:2px solid var(--rule);color:var(--desc)}.prose pre{background:var(--rule);padding:16px;border-radius:4px;overflow-x:auto;font-size:.85rem;line-height:1.5}.prose code{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.85em}.prose :not(pre)>code{background:var(--rule);padding:1px 5px;border-radius:3px}.prose a{color:var(--link)}.article-table-scroll{max-width:100%;overflow-x:auto;margin:0 0 24px}.article-table-scroll:focus-visible{outline:2px solid var(--link);outline-offset:4px}.prose table{width:100%;border-collapse:collapse;font-size:.88rem;line-height:1.65}.prose caption{text-align:left;color:var(--heading);margin-bottom:12px}.prose th,.prose td{padding:12px;text-align:left;vertical-align:top;border-bottom:1px solid var(--rule)}.prose th{color:var(--heading);font-weight:400}.prose td{min-width:130px}.prose th[scope=row]{min-width:140px}.references{font-size:.85rem;color:var(--desc)}.references ol{padding-left:22px}.references li{margin-bottom:6px}.site-footer{margin-top:48px;display:flex;gap:18px;align-items:center}.site-footer a{color:var(--desc);display:inline-flex}.site-footer a:hover{color:var(--link)}.site-footer svg{width:18px;height:18px;fill:currentColor}@media (max-width: 640px){main{padding:56px 22px}}.benchmark-article p,.benchmark-article ul{font-size:1rem}.benchmark-article h2{font-size:1.18rem;font-weight:600;margin:48px 0 16px;line-height:1.4}.benchmark-article h3{font-size:1rem;font-weight:600;margin:32px 0 16px;line-height:1.5}.benchmark-results strong{color:var(--heading)}.benchmark-results .benchmark-note{font-size:.9rem;line-height:1.7}.benchmark-wide-block{margin:36px 0 28px}.benchmark-wide-block>h3{margin:0 0 16px}.benchmark-wide-block>.benchmark-table-scroll{margin-bottom:0}.benchmark-table{font-variant-numeric:tabular-nums}.benchmark-table-wide{min-width:1000px}.benchmark-table-narrow{min-width:560px}.benchmark-caption-text{display:block;max-width:calc(100vw - 44px)}.benchmark-article .benchmark-table th,.benchmark-article .benchmark-table td{padding:18px 24px;vertical-align:middle}.benchmark-results .benchmark-table td{min-width:0;text-align:right;white-space:nowrap}.benchmark-table thead th{text-align:right;white-space:nowrap}.benchmark-table thead th:first-child,.benchmark-table th[scope=row],.benchmark-results .benchmark-table .benchmark-text-cell{text-align:left}.benchmark-table th[scope=row]{min-width:175px;max-width:210px}.benchmark-table caption{font-size:.9rem;line-height:1.6;margin-bottom:20px;color:var(--prose)}.benchmark-accuracy-value{display:block;color:var(--heading)}.benchmark-accuracy-count{display:block;margin-top:4px;font-size:.82rem;line-height:1.5}.benchmark-results .benchmark-table .benchmark-cost-result{white-space:normal}.benchmark-row-note{display:block;max-width:150px;margin-top:6px;font-size:.82rem;line-height:1.5;white-space:normal;color:var(--prose)}.benchmark-equation{margin:24px 0 28px;padding:20px 8px;overflow-x:auto;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.benchmark-equation math{font-family:"Cambria Math","STIX Two Math",serif;font-size:1rem;color:var(--heading)}.benchmark-article .benchmark-figure{margin-top:32px;margin-bottom:32px}.benchmark-figure-scroll{overflow-x:auto}.benchmark-figure-scroll img{width:100%;max-width:none;margin:0;border:1px solid var(--rule);background:#f4f3f1}.benchmark-results .benchmark-figure figcaption{text-align:left;color:var(--prose);font-size:.9rem;line-height:1.7;margin-top:16px}.benchmark-figure-link{display:inline-block;padding:6px 0}.benchmark-downloads li{margin-bottom:12px}.benchmark-downloads a{display:inline-block;padding:4px 0}.benchmark-article a:focus-visible,.benchmark-figure-scroll:focus-visible,.benchmark-equation:focus-visible,.benchmark-details summary:focus-visible{outline:2px solid var(--heading);outline-offset:4px}.benchmark-scroll-hint{display:block;font-size:.82rem;font-weight:400;line-height:1.5;margin-top:8px;color:var(--prose)}.benchmark-chart-hint,.benchmark-narrow-hint{display:none}.benchmark-details{margin:24px 0 32px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.benchmark-details summary{cursor:pointer;color:var(--heading);font-size:1rem;line-height:1.6;padding:16px 0}.benchmark-details[open] summary{margin-bottom:8px}@media (max-width: 640px){.benchmark-article .benchmark-table th,.benchmark-article .benchmark-table td{padding:16px 18px}.benchmark-equation math{font-size:.8rem}.benchmark-figure-scroll img{min-width:760px}.benchmark-chart-hint,.benchmark-narrow-hint{display:block}}@media (min-width: 1000px){.benchmark-results .benchmark-wide-block,.benchmark-results .benchmark-details .benchmark-table-scroll,.benchmark-results .benchmark-figure{width:min(1040px,calc(100vw - 64px));max-width:none;margin-left:calc(50% - min(520px,50vw - 32px))}}@media (min-width: 1100px){.benchmark-wide-block .benchmark-scroll-hint,.benchmark-details:not(:has(.benchmark-table-extra-wide)) .benchmark-scroll-hint{display:none}}@media (min-width: 1000px){.benchmark-results .benchmark-details .benchmark-table-scroll:has(.benchmark-table-extra-wide){width:min(1136px,calc(100vw - 64px));margin-left:calc(50% - min(568px,50vw - 32px))}}@media (min-width: 1200px){.benchmark-details:has(.benchmark-table-extra-wide) .benchmark-scroll-hint{display:none}}article:has(.benchmark-article) .byline{color:var(--text)}
