@layer reset,base,layout,components;@layer reset{*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body,h1,h2,h3,p,figure,blockquote,ul,ol{margin:0}ul,ol{padding:0}img,svg{display:block;max-width:100%}button,input,textarea,select{font:inherit}}@layer base{:root{--background: #ffffff;--surface: #fafafa;--text: #111111;--muted: #686868;--faint: #999999;--border: #dddddd;--border-strong: #b9b9b9;--link: #135dd8;--code: #f5f5f5;--selection: #dfe9ff;--sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono: "SFMono-Regular", "Cascadia Code", "Roboto Mono", Consolas, monospace;color-scheme:light}:root[data-theme=dark]{--background: #101010;--surface: #171717;--text: #f1f1f1;--muted: #a3a3a3;--faint: #747474;--border: #303030;--border-strong: #4a4a4a;--link: #8ab4ff;--code: #151515;--selection: #2c436d;color-scheme:dark}html{min-width:320px;background:var(--background);font-family:var(--sans);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}body{min-height:100vh;overflow-x:hidden;background:var(--background);color:var(--text);line-height:1.55}a{color:inherit;text-decoration:none}button{color:inherit}::selection{background:var(--selection)}:focus-visible{outline:2px solid var(--text);outline-offset:3px}}@layer layout{.site-frame{display:grid;width:min(1600px,100%);min-height:100vh;margin-inline:auto;grid-template-columns:minmax(340px,32%) minmax(0,1fr)}.site-sidebar{position:sticky;top:0;display:flex;height:100vh;flex-direction:column;overflow-y:auto;padding:clamp(72px,7vw,104px) clamp(52px,7vw,100px) 48px;border-right:1px solid var(--border)}.content-column{min-width:0}.content-section{padding:clamp(78px,7vw,106px) clamp(56px,7vw,104px)}.content-section+.content-section{border-top:1px solid var(--border)}.site-footer{display:flex;min-height:86px;align-items:center;justify-content:space-between;gap:24px;padding:24px clamp(56px,7vw,104px);border-top:1px solid var(--border);color:var(--faint);font-size:.72rem}.site-footer div{display:flex;align-items:center;gap:9px}.site-footer a:hover{color:var(--text)}.mobile-nav{display:none}}@layer components{.skip-link{position:fixed;top:12px;left:12px;z-index:100;padding:8px 12px;translate:0 -160%;border:1px solid var(--border-strong);background:var(--background);font-size:.75rem;font-weight:700;transition:translate .14s ease}.skip-link:focus{translate:0}.sidebar-label,.section-kicker,.section-heading,.row-number,.post-meta,.article-info,.article-tags>span{text-transform:uppercase}.sidebar-label,.section-kicker{color:var(--faint);font-size:.68rem;font-weight:750;letter-spacing:.15em}.sidebar-name{display:block;width:fit-content;margin-top:22px;font-size:clamp(2rem,3vw,2.7rem);font-weight:730;letter-spacing:-.05em;line-height:1}.sidebar-role{margin-top:15px;color:var(--muted);font-size:1.02rem}.sidebar-bio{display:grid;max-width:340px;gap:18px;margin-top:44px;font-size:.93rem}.sidebar-bio p:last-child{color:var(--muted);line-height:1.65}.sidebar-section{margin-top:58px}.social-list,.page-list{display:grid;margin-top:24px}.social-list{gap:13px}.social-list a{display:grid;max-width:360px;grid-template-columns:92px minmax(0,1fr) 18px;align-items:baseline;gap:8px;color:var(--muted);font-size:.86rem}.social-list strong{overflow:hidden;color:var(--text);font-weight:500;text-overflow:ellipsis;white-space:nowrap}.social-list a>span:last-child{color:var(--faint)}.social-list a:hover strong,.social-list a:hover>span:last-child{color:var(--link)}.sidebar-pages{margin-top:auto;padding-top:58px}.page-list{gap:10px}.page-list a,.page-list button{display:grid;width:fit-content;min-height:28px;grid-template-columns:20px auto;align-items:center;padding:0;border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:.86rem}.page-list a[aria-current=page]{color:var(--text);font-weight:700}.page-list a:hover,.page-list button:hover{color:var(--text)}.section-heading{display:flex;min-height:30px;align-items:start;justify-content:space-between;gap:24px;padding-bottom:24px;font-size:.77rem;font-weight:760;letter-spacing:.13em}.section-heading-with-link>a,.section-heading-with-link>span{color:var(--faint);font-size:.68rem;font-weight:650;letter-spacing:.04em;text-transform:none}.section-heading-with-link>a:hover{color:var(--text)}.numbered-list,.work-list{list-style:none}.numbered-list>li,.work-row,.post-row-link{display:grid;grid-template-columns:58px minmax(0,1fr) 20px;gap:24px;padding-block:31px;border-top:1px solid var(--border)}.numbered-list>li:last-child,.work-row:last-child,.post-row:last-child{border-bottom:1px solid var(--border)}.row-number{padding-top:4px;color:var(--faint);font-size:.75rem;font-weight:650}.row-content{min-width:0}.row-title-line{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}.row-title-line h2{font-size:clamp(1.05rem,1.8vw,1.25rem);font-weight:720;letter-spacing:-.025em;line-height:1.25}.outline-pill{display:inline-flex;min-height:26px;align-items:center;padding:2px 10px;border:1px solid currentColor;border-radius:999px;color:var(--text);font-size:.68rem;line-height:1;white-space:nowrap}.focus-list .row-content>p,.work-row .row-content>p,.post-row .row-content>p{max-width:760px;margin-top:13px;color:var(--muted);font-size:.91rem;line-height:1.6}.writing-preview{padding-top:clamp(70px,7vw,98px)}.work-row{border-top:1px solid var(--border)}.work-year{margin-left:auto;color:var(--faint);font-size:.72rem;font-weight:550}.work-repository{display:inline-flex;gap:5px;margin-top:9px;color:var(--link);font-size:.76rem}.external-arrow{color:var(--faint);font-weight:400}.row-title-line a:hover{color:var(--link)}.list-empty{padding:34px 0;border-block:1px solid var(--border);color:var(--muted);font-size:.9rem}.list-empty code{font-family:var(--mono);font-size:.78rem}.compact-page-intro{padding-bottom:clamp(54px,7vw,82px)}.post-list{border-top:1px solid var(--border)}.post-row{border-bottom:1px solid var(--border)}.post-row-link{border-top:0;transition:opacity .14s ease}.post-row-link:hover{opacity:.66}.row-arrow{padding-top:1px;color:var(--faint);font-size:1rem}.post-meta{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px;color:var(--faint);font-size:.64rem;letter-spacing:.04em}.tag-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:17px;list-style:none}.tag-list li{padding:3px 8px;border:1px solid var(--border-strong);border-radius:999px;color:var(--muted);font-size:.65rem}.empty-state{display:grid;min-height:190px;grid-template-columns:58px minmax(0,1fr);align-items:center;gap:24px;padding-block:34px;border-block:1px solid var(--border)}.empty-state h2{font-size:1.1rem}.empty-state p{max-width:620px;margin-top:10px;color:var(--muted);font-size:.9rem}.empty-state-compact{min-height:150px}.page-intro{max-width:730px;padding-bottom:clamp(64px,8vw,104px)}.page-intro h1,.article-header h1,.not-found h1{margin-top:18px;font-size:clamp(2.3rem,5vw,4.2rem);font-weight:730;letter-spacing:-.06em;line-height:1.02}.page-intro>p:last-child,.article-deck,.not-found>p{max-width:650px;margin-top:22px;color:var(--muted);font-size:1rem;line-height:1.65}.blog-list-heading{border-bottom:1px solid var(--border)}.back-link{display:inline-flex;min-height:40px;align-items:center;gap:9px;color:var(--muted);font-size:.78rem}.back-link:hover{color:var(--text)}.article-header{max-width:860px;padding:clamp(54px,7vw,86px) 0 clamp(42px,6vw,66px);border-bottom:1px solid var(--border)}.article-header h1{max-width:840px}.article-info{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:30px;color:var(--faint);font-size:.67rem;letter-spacing:.04em}.article-cover{max-width:900px;margin-block:46px 54px}.article-cover img{width:100%;height:auto;border:1px solid var(--border)}.article-body{max-width:740px;padding-block:52px 78px;color:var(--muted);font-size:1rem;line-height:1.8}.article-body>*+*{margin-top:1.5em}.article-body h2,.article-body h3{color:var(--text);font-weight:720;letter-spacing:-.035em;line-height:1.25}.article-body h2{margin-top:2.6em;font-size:1.65rem}.article-body h3{margin-top:2.2em;font-size:1.25rem}.article-body strong{color:var(--text)}.article-body a{color:var(--link);text-decoration:underline;text-underline-offset:3px}.article-body ul,.article-body ol{padding-left:1.4em}.article-body li+li{margin-top:.45em}.article-body blockquote{margin-block:2em;padding-left:22px;border-left:2px solid var(--text);color:var(--text);font-size:1.18rem;line-height:1.65}.article-figure,.code-block{width:min(840px,calc(100vw - 48px));max-width:calc(100vw - 48px);margin-block:42px}.article-figure img{width:100%;height:auto;border:1px solid var(--border)}.article-figure figcaption{margin-top:9px;color:var(--faint);font-size:.7rem}.code-block{overflow:hidden;border:1px solid var(--border);background:var(--code)}.code-block figcaption{display:flex;min-height:40px;align-items:center;justify-content:space-between;padding-inline:14px;border-bottom:1px solid var(--border);color:var(--faint);font:.65rem/1 var(--mono)}.code-block .shiki{overflow-x:auto;margin:0;padding:20px;background:transparent!important;font:.82rem/1.7 var(--mono);tab-size:2}:root[data-theme=light] .shiki,:root[data-theme=light] .shiki span{color:var(--shiki-light, inherit)!important}:root[data-theme=dark] .shiki,:root[data-theme=dark] .shiki span{color:var(--shiki-dark, inherit)!important}.article-tags{display:flex;max-width:740px;align-items:center;gap:20px;padding-block:25px;border-top:1px solid var(--border)}.article-tags>span{flex:0 0 auto;color:var(--faint);font-size:.65rem;letter-spacing:.08em}.article-tags .tag-list{margin-top:0}.article-pagination{display:grid;max-width:900px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:54px;border-block:1px solid var(--border)}.article-pagination>a,.article-pagination>span{min-height:132px;padding:28px 0}.article-pagination>:first-child{padding-right:34px;border-right:1px solid var(--border)}.article-pagination>:last-child{padding-left:34px}.article-pagination a>span{color:var(--faint);font-size:.7rem;text-transform:uppercase}.article-pagination strong{display:block;margin-top:10px;font-size:.94rem;line-height:1.45}.article-pagination a:hover strong{color:var(--link)}.not-found{min-height:calc(100vh - 87px);padding-top:clamp(100px,13vw,180px)}.not-found .back-link{margin-top:28px}}@media(min-width:941px)and (max-height:780px){.site-sidebar{padding-top:36px;padding-bottom:24px}.sidebar-bio{gap:12px;margin-top:26px}.sidebar-section{margin-top:30px}.social-list{gap:9px;margin-top:17px}.sidebar-pages{padding-top:30px}.page-list{margin-top:17px}}@media(max-width:940px){.site-frame{display:block}.site-sidebar{position:static;display:block;width:100%;height:auto;overflow:visible;padding:28px 16px 42px;border-right:0}.sidebar-name{margin-top:17px;font-size:1.9rem}.sidebar-role{margin-top:9px;font-size:.95rem}.sidebar-bio{max-width:620px;gap:13px;margin-top:34px;font-size:.88rem}.sidebar-section{margin-top:31px}.social-list{display:flex;width:calc(100vw - 16px);gap:24px;overflow-x:auto;padding:3px 16px 8px 0;scrollbar-width:none}.social-list::-webkit-scrollbar{display:none}.social-list a{display:flex;flex:0 0 auto;gap:7px;white-space:nowrap}.social-list a>span:first-child{display:none}.social-list strong{overflow:visible}.sidebar-pages{display:none}.content-section{padding:48px 16px 68px;border-top:1px solid var(--border)}.content-section+.content-section{border-top:1px solid var(--border)}.mobile-nav{position:fixed;right:10px;bottom:10px;left:10px;z-index:50;display:grid;min-height:58px;grid-template-columns:repeat(4,1fr);gap:4px;padding:5px;border:1px solid var(--border);border-radius:16px;background:color-mix(in srgb,var(--background) 92%,transparent);box-shadow:0 8px 28px #0000001a;backdrop-filter:blur(14px)}.mobile-nav a,.mobile-nav button{display:grid;min-width:0;place-items:center;padding:0 8px;border:0;border-radius:11px;background:transparent;color:var(--muted);cursor:pointer;font-size:.69rem;font-weight:700}.mobile-nav a[aria-current=page]{background:var(--text);color:var(--background)}.site-footer{padding:28px 16px 94px}.article-figure,.code-block{width:calc(100vw - 32px);max-width:calc(100vw - 32px)}}@media(max-width:620px){.section-heading{padding-bottom:19px;font-size:.73rem}.numbered-list>li,.work-row,.post-row-link{grid-template-columns:28px minmax(0,1fr) 15px;gap:10px;padding-block:23px}.row-number{font-size:.69rem}.row-title-line h2{font-size:1rem}.outline-pill{min-height:22px;padding-inline:8px;font-size:.6rem}.focus-list .row-content>p,.work-row .row-content>p,.post-row .row-content>p{margin-top:10px;font-size:.83rem}.post-meta{font-size:.59rem}.tag-list{margin-top:13px}.page-intro{padding-bottom:58px}.page-intro h1,.article-header h1,.not-found h1{font-size:clamp(2.1rem,11vw,3rem)}.article-header{padding-top:42px}.article-body{font-size:.96rem}.article-pagination{grid-template-columns:1fr}.article-pagination>a,.article-pagination>span{min-height:102px;padding:22px 0}.article-pagination>:first-child{padding-right:0;border-right:0;border-bottom:1px solid var(--border)}.article-pagination>:last-child{padding-left:0}.site-footer{align-items:flex-start;flex-direction:column;gap:10px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.001ms!important}}
