*,*:before,*:after{box-sizing:border-box}*{margin:0}html{text-size-adjust:100%}body{min-height:100vh}img,picture,svg{display:block;max-width:100%}button,input,textarea,select{font:inherit}:root{--bg: #fff;--text: #111;--body: #333;--muted: #999;--quiet: #aaa;--line: #e5e5e5;--line2: #e8e8e8;--code-bg: #f6f6f6;--code-text: #444}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--body);font-family:IBM Plex Sans,sans-serif;font-size:15px;line-height:1.7;overflow-x:hidden}a{color:inherit;text-underline-offset:.16em}code,pre{font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}::selection{background:#e8e8e8;color:var(--text)}.skip-link{position:absolute;top:8px;left:8px;z-index:1200;padding:8px 12px;border:1px solid var(--gold3);border-radius:4px;background:var(--bg);color:var(--text);text-decoration:none;transform:translateY(-140%);transition:transform .2s ease}.skip-link:focus-visible{transform:translateY(0)}a:focus-visible,button:focus-visible,[tabindex]:not([tabindex="-1"]):focus-visible{outline:2px solid var(--text);outline-offset:3px}.brand{display:inline-flex;align-items:center;color:var(--text);font-size:15px;font-weight:500;line-height:1;text-decoration:none}.brand__text{letter-spacing:0}.back-link,.pill-link{display:inline-flex;align-items:center;color:var(--muted);font-size:13px;text-decoration:none}.back-link{justify-self:start}.back-link:before{content:"<";margin-right:4px}.copy-btn{display:none}.post-grid{display:grid;gap:2rem}.post-card{padding-top:1.5rem;border-top:1px solid var(--line)}.post-card__body{display:grid;gap:.55rem}.post-card__body h3{color:var(--text);font-size:18px;font-weight:500;line-height:1.35;letter-spacing:0}.post-card__body h3 a{text-decoration:none}.post-card__body p:last-child{margin-bottom:0}.post-meta{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:12px;color:var(--quiet);letter-spacing:0}.code-block{margin:1.25rem 0}.code-block pre{overflow-x:auto;padding:1.25rem;border:1px solid var(--line2);border-radius:4px;background:var(--code-bg);color:var(--code-text);font-size:13px;line-height:1.6}.site-header{border-bottom:1px solid var(--line)}.site-nav{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:1.5rem 2rem}.site-nav__links{display:flex;align-items:center;gap:2rem;color:var(--muted);font-size:14px}.site-nav__links a{text-decoration:none}.site-nav__links a:hover{color:var(--body)}@media(max-width:640px){.site-nav{align-items:flex-start;flex-direction:column;gap:1rem;padding:1.25rem 1.5rem}.site-nav__links{gap:1.25rem}}.site-footer{border-top:1px solid var(--line)}.site-footer__inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;max-width:680px;margin:0 auto;padding:1.5rem 2rem;color:var(--quiet);font-size:13px}.home-shell{max-width:680px;margin:4rem auto;padding:0 2rem}.blog-hero{margin-bottom:4rem}.post-index{margin-top:4rem}.blog-hero h1,.post-index h2{color:var(--text);font-size:28px;font-weight:500;line-height:1.3;margin-bottom:2rem}.post-index h2{font-size:17px;margin-bottom:.75rem}.article-shell{max-width:680px;margin:4rem auto;padding:0 2rem}.article{width:100%}.article-hero{display:grid;gap:0;margin-bottom:0}.article-hero .back-link{margin-bottom:1rem}.article-hero h1{color:var(--text);font-size:28px;font-weight:500;line-height:1.3;letter-spacing:0;margin-bottom:2rem}.article-hero__lede{color:var(--body);font-size:15px;line-height:1.7;margin-bottom:1.25rem}.article-hero figure{display:none}.article-content{display:flow-root}.article-content h2{margin:2.5rem 0 .75rem;color:#222;font-size:17px;font-weight:500;line-height:1.35;letter-spacing:0}.article-content h3{margin:1.75rem 0 .5rem;color:#222;font-size:15px;font-weight:500;line-height:1.4}.article-content p,.article-content ul{margin:0 0 1.25rem}.article-content ul{padding-left:24px}.article-content li+li{margin-top:7px}.article-content a{color:inherit}.article-content :not(pre)>code{padding:1px 5px;border-radius:3px;background:var(--code-bg);color:var(--code-text);font-size:13px}@media(max-width:640px){.home-shell,.article-shell{margin:3rem auto;padding:0 1.5rem}}
