:root{--bg:#fff;--surface:#f6f6f6;--fg:#1d1d1f;--muted:#6b6b70;--accent:#1f6feb;--accent-fg:#fff;--border:#e3e3e6;--code-bg:#f2f2f4;--code-fg:#b3261e;--link:var(--accent);--font-body:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--font-head:var(--font-body);--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--measure:44rem;--radius:8px}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:5rem}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-body);line-height:1.65;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}img,svg,video{max-width:100%;height:auto}a{color:var(--link)}h1,h2,h3,h4,h5,h6{font-family:var(--font-head);line-height:1.2;text-wrap:balance}p,li{text-wrap:pretty}code,pre,kbd,samp{font-family:var(--font-mono)}.skip-link{position:absolute;left:-9999px;top:.5rem;z-index:10000;padding:.5rem .9rem;background:var(--accent);color:var(--accent-fg)}.skip-link:focus{left:.5rem}.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.social{list-style:none;margin:0;padding:0;display:flex;gap:.35rem;flex-wrap:wrap}.social a{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;color:inherit}.social-icon{width:1.15rem;height:1.15rem}.prose{font-size:1.075rem;overflow-wrap:break-word}.prose>*+*{margin-top:1.15em}.prose>:first-child{margin-top:0}.prose p,.prose ul,.prose ol,.prose blockquote,.prose pre,.prose table,.prose figure{margin-bottom:0}.prose h2{font-size:1.55em;margin:2.2em 0 0}.prose h3{font-size:1.25em;margin:1.8em 0 0}.prose h4{font-size:1.05em;margin:1.5em 0 0}.prose h2+*,.prose h3+*,.prose h4+*{margin-top:.6em}.prose a{text-decoration-thickness:1px;text-underline-offset:.18em}.prose a:hover{text-decoration-thickness:2px}.prose ul,.prose ol{padding-left:1.35em}.prose li+li{margin-top:.35em}.prose li>ul,.prose li>ol{margin-top:.35em}.prose strong{font-weight:700}.prose hr{border:0;border-top:1px solid var(--border);margin:2.5em 0}.prose img{display:block;margin:0 auto;border-radius:var(--radius)}.prose blockquote{margin-left:0;margin-right:0;padding:.1em 0 .1em 1.1em;border-left:3px solid var(--accent);color:var(--muted)}.prose blockquote>*+*{margin-top:.6em}.prose blockquote p{margin:0}.prose :not(pre)>code{font-size:.86em;padding:.12em .36em;border-radius:4px;background:var(--code-bg);color:var(--code-fg);overflow-wrap:anywhere}.prose pre{padding:1rem 1.15rem;border-radius:var(--radius);overflow-x:auto;font-size:.86rem;line-height:1.55;background:#272822;color:#f8f8f2;-webkit-overflow-scrolling:touch}.prose pre code{background:0 0;color:inherit;padding:0;font-size:inherit}.prose .highlight{margin-top:1.15em}.prose .highlight pre{margin:0}.prose table{width:100%;border-collapse:collapse;font-size:.92em;display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}@media(min-width:48em){.prose table{display:table}}.prose th,.prose td{padding:.55em .75em;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}.prose th{font-weight:700;border-bottom-width:2px;white-space:nowrap}.prose tbody tr:hover td{background:var(--surface)}.mermaid{margin:1.75em 0 0;padding:1rem;text-align:center;overflow-x:auto;background:#fafafa;border:1px solid var(--border);border-radius:var(--radius)}.mermaid svg{max-width:100%;height:auto;display:inline-block}.mermaid foreignobject div,.mermaid foreignobject span,.mermaid .nodeLabel,.mermaid .edgeLabel{word-break:normal!important;overflow-wrap:normal!important;hyphens:none!important}.error-page{max-width:44rem;margin:1rem auto 3rem;text-align:center}.error-page-code{font-family:var(--font-mono);font-size:clamp(4rem,14vw,7.5rem);font-weight:800;line-height:1;letter-spacing:-.04em;color:var(--accent);margin:0}.error-page-title{font-size:1.7rem;margin:.6rem 0 1rem}.error-page-lead{color:var(--muted);margin:0 auto 1.5rem;max-width:36rem}.error-page-figure{margin:0 auto 1.5rem;max-width:480px}.error-page-figure img{width:100%;display:block;border-radius:var(--radius)}.error-page-terminal{background:#16181d;color:#d4d4d4;text-align:left;padding:.9rem 1.1rem;border-radius:var(--radius);margin:0 auto 1.5rem;max-width:36rem;font-size:.82rem;line-height:1.55;overflow-x:auto}.error-page-terminal code{background:0 0;color:inherit;padding:0}.error-page-terminal .blink{display:inline-block;width:.55em;background:#d4d4d4;color:#16181d;animation:blink 1s steps(2,jump-none)infinite}@keyframes blink{50%{opacity:0}}.error-page-actions{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}.error-page-button{display:inline-block;padding:.6rem 1.15rem;border-radius:var(--radius);background:var(--accent);color:var(--accent-fg);border:1px solid var(--accent);text-decoration:none;font-weight:600;font-size:.92rem}.error-page-button-ghost{background:0 0;color:var(--accent)}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.cookie-consent-banner{position:fixed;left:50%;bottom:1.25rem;transform:translateX(-50%);z-index:9999;width:min(560px,calc(100vw - 2rem));margin:0;padding:1rem 1.15rem 1.1rem;background:var(--surface);color:var(--fg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 18px 40px -18px rgba(0,0,0,.45);font-family:var(--font-ui,var(--font-body));font-size:.95rem}.cookie-consent-close{position:absolute;top:.4rem;right:.5rem;border:0;background:0 0;color:var(--muted);font-size:1.35rem;line-height:1;cursor:pointer;padding:.2rem .4rem}.cookie-consent-content p{margin:0;padding-right:1.5rem;line-height:1.5}.cookie-consent-actions{margin-top:.85rem;display:flex;gap:.6rem;flex-wrap:wrap}.cookie-consent-actions button{border-radius:var(--radius);padding:.5rem 1.1rem;cursor:pointer;font:600 .85rem/1 var(--font-ui,var(--font-body))}#cookie-consent-accept{background:var(--accent);color:var(--accent-fg);border:1px solid var(--accent)}#cookie-consent-reject{background:0 0;color:var(--fg);border:1px solid var(--border)}@media(max-width:40em){.cookie-consent-banner{bottom:.75rem}.cookie-consent-actions button{flex:1}}:root{--bg:#faf7f2;--surface:#f1ece3;--card:#fffdf9;--fg:#1d2433;--muted:#657084;--accent:#e07a3a;--accent-fg:#fff;--link:#c4602a;--border:#e6dfd3;--code-bg:#efe8dc;--code-fg:#a8461a;--side:#13233a;--side-fg:#e9eef6;--side-muted:#9fb0c8;--font-body:"DM Sans", -apple-system, "Segoe UI", Roboto, sans-serif;--font-head:"DM Serif Display", Georgia, serif;--font-ui:var(--font-body);--font-mono:"JetBrains Mono", ui-monospace, Menlo, monospace;--radius:8px;--gutter:clamp(1.25rem, 3.5vw, 4rem)}body{font-size:17px}a{color:inherit;text-decoration:none}::selection{background:#fbd7bd}.shell{display:grid;grid-template-columns:20rem minmax(0,1fr);min-height:100vh}.sidebar{background:var(--side);color:var(--side-fg);background-image:radial-gradient(500px 300px at 0% 0%,rgba(224,122,58,.18),transparent 70%)}.sidebar-inner{position:sticky;top:0;min-height:100vh;display:flex;flex-direction:column;align-items:center;text-align:center;padding:3rem 2.25rem 2rem}.me{display:flex;flex-direction:column;align-items:center;gap:1.1rem}.me img{width:120px;height:120px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 4px var(--side),0 0 0 6px var(--accent)}.me-name{font:2rem/1.1 var(--font-head);color:#fff}.me-role{margin:.45rem 0 0;font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.me-bio{margin:1rem 0 0;color:var(--side-muted);font-size:.97rem;line-height:1.6}.sidebar nav{align-self:stretch}.sidebar nav ul{list-style:none;margin:2rem 0 0;padding:0;border-top:1px solid rgba(255,255,255,.1)}.sidebar nav li{border-bottom:1px solid rgba(255,255,255,.1)}.sidebar nav a{display:block;padding:.72rem 0;font-weight:500;color:var(--side-fg);transition:color .15s,background .15s}.sidebar nav a:hover{color:#fff;background:rgba(255,255,255,5%)}.sidebar nav a[aria-current]{color:var(--accent);font-weight:700}.me-social{margin:1.6rem 0 0;justify-content:center;color:var(--side-muted)}.me-social a:hover{color:var(--accent)}.me-small{margin:auto 0 0;padding-top:2rem;font-size:.78rem;color:var(--side-muted)}.content{padding:3.5rem var(--gutter)4rem;width:100%}.mob-foot{display:none}.kicker{margin:0 0 .9rem;font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.entry-meta{display:flex;flex-wrap:wrap;gap:.4rem 1rem;align-items:center;margin:0 0 .6rem;font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.entry-meta span{color:var(--accent)}.entry-meta time+span::before{content:"•";color:var(--border);margin-right:1rem}.entry-meta .badge{padding:.2rem .55rem;border-radius:999px;background:var(--accent);color:#fff;letter-spacing:.1em}.entry-sum{margin:.75rem 0 0;color:var(--muted);line-height:1.65}.entry-more{display:inline-block;margin-top:.9rem;font-weight:700;font-size:.9rem;color:var(--link)}.entry-more:hover{text-decoration:underline}.entry h2 a,.featured h2 a{background:linear-gradient(var(--accent),var(--accent))0 100%/0 2px no-repeat;transition:background-size .25s}.entry h2 a:hover,.featured h2 a:hover{background-size:100% 2px}.cloud{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}.cloud a{display:inline-flex;gap:.5rem;padding:.42rem .9rem;border-radius:999px;background:var(--surface);font-weight:600;font-size:.9rem}.cloud a:hover{background:var(--side);color:#fff}.cloud span{color:var(--accent);font-size:.8rem}.cloud-sm a{font-size:.82rem;padding:.3rem .8rem}.home{max-width:92rem;margin:0 auto}.intro{padding-bottom:2.5rem;margin-bottom:2.5rem;border-bottom:1px solid var(--border)}.intro h1{font:clamp(2.3rem,4.6vw,4.1rem)/1.06 var(--font-head);letter-spacing:-.01em;margin:0}.intro h1 em{color:var(--accent)}.intro-lede,.intro>p:last-child{margin:1.1rem 0 0;font-size:1.15rem;color:var(--muted);max-width:42rem}.intro-home{display:grid;grid-template-columns:minmax(0,1fr)auto;gap:3rem;align-items:end}.stats{display:grid;grid-template-columns:repeat(3,auto);gap:0;margin:0;border:1px solid var(--border);border-radius:14px;background:var(--card)}.stats div{padding:1rem 1.4rem}.stats div+div{border-left:1px solid var(--border)}.stats dt{font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.stats dd{margin:.2rem 0 0;font:2rem/1 var(--font-head);color:var(--fg);white-space:nowrap}.featured{position:relative;padding:clamp(1.75rem,3vw,2.75rem);border-radius:18px;background:var(--side);color:var(--side-fg);background-image:radial-gradient(700px 320px at 100% 0%,rgba(224,122,58,.28),transparent 70%)}.featured h2{font:clamp(1.9rem,3.4vw,3rem)/1.1 var(--font-head);margin:.4rem 0 0;color:#fff;max-width:52rem}.featured .entry-meta{color:var(--side-muted)}.featured .entry-sum{color:var(--side-muted);font-size:1.08rem;max-width:60rem}.featured .entry-more{color:var(--accent)}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;margin-top:1.25rem}.entry{display:flex;flex-direction:column;padding:1.6rem 1.7rem 1.5rem;background:var(--card);border:1px solid var(--border);border-radius:16px;transition:border-color .15s,box-shadow .15s,transform .15s}.entry:hover{border-color:#e9c9b0;box-shadow:0 18px 36px -24px rgba(29,36,51,.35);transform:translateY(-2px)}.entry h2{font:clamp(1.4rem,1.9vw,1.7rem)/1.2 var(--font-head);margin:0}.entry .entry-sum{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:.97rem}.entry .entry-more{margin-top:auto;padding-top:.9rem}.all{margin:1.75rem 0 0;text-align:center}.all a{display:inline-block;padding:.85rem 1.6rem;background:var(--side);color:#fff;border-radius:999px;font-weight:700;font-size:.92rem}.all a:hover{background:var(--accent)}.home-bottom{display:grid;grid-template-columns:minmax(0,1.5fr)minmax(0,1fr);gap:1.25rem;margin-top:3.5rem;align-items:start}.about-full,.topics{padding:2.25rem;background:var(--surface);border-radius:18px}.about-full h2,.topics h2{font:2rem var(--font-head);margin:0 0 1rem}.about-full .prose{font-size:1rem}.about-full .prose h3{font-family:var(--font-body);font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.topics .cloud a{background:var(--card)}.topics .cloud a:hover{background:var(--side)}.topics .entry-more{margin-top:1.25rem}.intro-sm,.month,.cloud-page{max-width:64rem;margin-left:auto;margin-right:auto}.kind-taxonomy .cloud,.kind-section .content>.cloud{max-width:64rem;margin:0 auto}.month{display:grid;grid-template-columns:11rem minmax(0,1fr);gap:1.5rem;padding:1.75rem 0;border-bottom:1px solid var(--border)}.month h2{font:1.45rem/1.2 var(--font-head);margin:0}.month ul{list-style:none;margin:0;padding:0}.month li{display:grid;grid-template-columns:2rem minmax(0,1fr)auto;gap:1rem;align-items:baseline;padding:.45rem 0}.month time{font:600 .85rem var(--font-mono);color:var(--accent)}.month li a{font-weight:600;line-height:1.4}.month li a:hover{color:var(--link);text-decoration:underline}.month li span{font-size:.8rem;color:var(--muted);white-space:nowrap}.post-layout{display:grid;grid-template-columns:minmax(0,46rem);justify-content:center;gap:4.5rem}.post-layout.has-rail{grid-template-columns:minmax(0,46rem)17rem}.post-head{margin-bottom:2.5rem}.post-head h1{font:clamp(2.3rem,4.4vw,3.6rem)/1.08 var(--font-head);margin:0}.lede{margin:1.25rem 0 0;font-size:1.22rem;line-height:1.6;color:var(--muted);padding-left:1.1rem;border-left:3px solid var(--accent)}.prose{font-size:1.1rem;line-height:1.8}.prose h2{font:1.85rem/1.2 var(--font-head)}.prose h3{font-size:1.2rem;font-weight:700}.prose a{color:var(--link)}.prose blockquote{font:italic 1.35rem/1.5 var(--font-head);color:var(--fg);border-left-color:var(--accent)}.post-foot{margin-top:3rem;display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem;flex-wrap:wrap}.sign{font:italic 1.6rem var(--font-head);color:var(--accent);margin:0}.rail-inner{position:sticky;top:2rem;max-height:calc(100vh - 4rem);overflow-y:auto;padding:1.25rem 1.3rem;border-left:2px solid var(--border)}.rail-title{margin:0 0 .75rem;font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.rail nav ul{list-style:none;margin:0;padding:0}.rail nav ul ul{padding-left:.85rem}.rail nav a{display:block;padding:.3rem 0;font-size:.88rem;line-height:1.4;color:var(--muted)}.rail nav a:hover{color:var(--fg)}.rail-top{display:inline-block;margin-top:1rem;font-size:.82rem;font-weight:700;color:var(--link)}.post-after{max-width:80rem;margin:0 auto}.pager{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin:3.5rem 0}.pager a{display:block;padding:1.3rem 1.4rem;background:var(--surface);border-radius:14px;font:1.25rem/1.3 var(--font-head)}.pager a:hover{background:var(--side);color:#fff}.pager span{display:block;font:700 .72rem var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:.4rem}.pager .next{grid-column:2;text-align:right}.related>h2{font:1.8rem var(--font-head);margin:0}@media(min-width:110em){.grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:80em){.post-layout.has-rail{grid-template-columns:minmax(0,46rem)}.rail{display:none}.intro-home{grid-template-columns:1fr;gap:1.75rem}.stats{justify-self:start}}@media(max-width:75em){.home-bottom{grid-template-columns:1fr}}@media(max-width:62em){.shell{grid-template-columns:minmax(0,1fr)}.sidebar-inner{position:static;min-height:0;padding:.9rem 1rem .6rem}.me{flex-direction:row;gap:.7rem}.me img{width:44px;height:44px;box-shadow:0 0 0 2px var(--side),0 0 0 3px var(--accent)}.me-name{font-size:1.3rem}.me-role,.me-bio,.me-social,.me-small{display:none}.sidebar nav ul{display:flex;justify-content:center;flex-wrap:wrap;gap:0 1.1rem;margin-top:.5rem;border:0}.sidebar nav li{border:0}.sidebar nav a{padding:.35rem 0;font-size:.95rem}.sidebar nav a:hover{background:0 0}.content{padding-top:2rem}.mob-foot{display:block;margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--border);text-align:center;color:var(--muted);font-size:.85rem}.mob-foot .social{justify-content:center}.mob-foot p{margin:.5rem 0 0}}@media(max-width:48em){.grid{grid-template-columns:1fr}.pager{grid-template-columns:1fr}.pager .next{grid-column:auto}}@media(max-width:40em){body{font-size:16.5px}.content{padding:1.5rem 1.1rem 2.5rem}.intro{padding-bottom:1.75rem;margin-bottom:1.5rem}.intro-lede{font-size:1.05rem}.stats{width:100%;grid-template-columns:repeat(3,minmax(0,1fr))}.stats div{padding:.75rem .8rem}.stats dd{font-size:1.5rem}.featured{padding:1.4rem;border-radius:14px}.entry{padding:1.25rem;border-radius:14px}.about-full,.topics{padding:1.4rem;border-radius:14px}.month{grid-template-columns:1fr;gap:.5rem}.month li{grid-template-columns:2rem minmax(0,1fr)}.month li span{display:none}.prose{font-size:1.05rem}}