:root{color-scheme:light;--bg: #ffffff;--surface: #f5f5f4;--surface-hover: #efefee;--border: #ebebe9;--border-strong: #dededb;--text: #1a1a18;--text-secondary: #6b6b66;--text-muted: #9a9a93;--text-dim: var(--text-secondary);--muted: var(--text-muted);--accent: #1a1a18;--accent-dim: var(--text-muted);--radius: 12px;--radius-sm: 8px;--radius-pill: 999px;--f-sans: "InterVariable", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--f-serif: var(--f-sans);--f-mono: ui-monospace, "SF Mono", "DM Mono", Menlo, Consolas, monospace;--content-width: 600px;--col-meta: 96px}@media (max-width: 640px){:root{--col-meta: 84px}}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}*{scrollbar-width:none;-ms-overflow-style:none}*::-webkit-scrollbar{display:none}::selection{background-color:#1a1a18;color:#fff}html,body{min-height:100vh;width:100%}img{max-width:100%;height:auto}body{background-color:var(--bg);color:var(--text);font-family:var(--f-sans);font-feature-settings:"liga" 1,"calt" 1;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}a{color:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.layout{display:flex;flex-direction:column;min-height:100vh;width:100%;max-width:var(--content-width);margin:0 auto;padding:4rem 1.5rem 3rem}@media (max-width: 640px){.layout{padding:2.5rem 1.25rem}}.back-link{font-size:.875rem;font-weight:500;color:var(--text-secondary);text-decoration:none;transition:color .15s ease;align-self:flex-start}.back-link:hover{color:var(--text)}.blog-header{display:block;margin:2.5rem 0}.blog-header h1{font-family:var(--f-sans);font-style:normal;font-weight:600;font-size:2rem;letter-spacing:-.02em;color:var(--text);margin-bottom:.5rem}.blog-header p{font-size:1rem;line-height:1.65;color:var(--text-secondary);margin:0}.post-list{list-style:none;display:flex;flex-direction:column;gap:0;padding:0;margin:0}.post-list li{display:block;border-top:1px solid var(--border)}.post-list li:first-child{border-top:none}.post-list li a{display:block;padding:1.5rem 1rem;margin:0 -1rem;border-radius:var(--radius);text-decoration:none;color:inherit;transition:background-color .18s ease}.post-list li a:hover{background-color:var(--surface)}.post-list h2{font-family:var(--f-sans);font-style:normal;font-size:1.25rem;font-weight:600;letter-spacing:-.01em;color:var(--text);border:none;padding:0;margin:.4rem 0}.post-meta{font-size:.8125rem;color:var(--text-muted);display:flex;gap:.5rem;align-items:center;margin:0}.post-excerpt{font-size:.9375rem;line-height:1.6;color:var(--text-secondary);margin:.5rem 0 .75rem}.post-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin:0}.tag{font-size:.75rem;font-weight:500;color:var(--text-secondary);background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius-pill);padding:.2rem .65rem}.post-header{display:block;margin:2.5rem 0}.post-header h1{font-family:var(--f-sans);font-style:normal;font-weight:600;font-size:2.25rem;line-height:1.15;letter-spacing:-.025em;color:var(--text);margin:.75rem 0}.post-subtitle{font-family:var(--f-sans);font-style:normal;font-size:1.125rem;line-height:1.5;color:var(--text-secondary);margin:0 0 1.5rem}.post-facts{display:flex;flex-direction:column;gap:.4rem;margin:0;padding:0 0 1.25rem;border-bottom:1px solid var(--border)}.post-facts div{display:flex;gap:.75rem}.post-facts dt{font-size:.8125rem;font-weight:500;color:var(--text-muted);min-width:5.5rem}.post-facts dd{font-size:.8125rem;color:var(--text-secondary);margin:0}.post p,.post li{font-size:1rem;line-height:1.75;color:var(--text-secondary)}.post h2{font-family:var(--f-sans);font-style:normal;font-size:1.5rem;font-weight:600;letter-spacing:-.02em;color:var(--text);border:none;padding:0;margin:2.75rem 0 1rem}.post h3{font-family:var(--f-sans);font-size:1.1875rem;font-weight:600;letter-spacing:-.01em;color:var(--text);margin:2rem 0 .75rem}.post ul,.post ol{padding-left:1.25rem;margin:1rem 0}.post ul li,.post ol li{list-style:disc;display:list-item;border:none;padding:0;margin:.4rem 0}.post strong{color:var(--text);font-weight:600}.post a{color:var(--text);text-decoration:underline;text-decoration-color:var(--border-strong);text-underline-offset:2px;transition:text-decoration-color .15s ease}.post a:hover{text-decoration-color:var(--text)}.post code{font-family:var(--f-mono);font-size:.85em;background-color:var(--surface);border:1px solid var(--border);border-radius:6px;padding:.1rem .35rem;color:var(--text);overflow-wrap:anywhere}.post pre{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem;overflow-x:auto;margin:1.25rem 0}.post pre code{background:none;border:none;padding:0;font-size:.8125rem;line-height:1.6;color:var(--text)}.post img,.blog-image{display:block;max-width:100%;border-radius:var(--radius);border:1px solid var(--border);margin:1.75rem auto}.placeholder{font-family:var(--f-mono);font-size:.8125rem;line-height:1.6;color:var(--text-muted);background-color:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius);padding:1.5rem;margin:1.75rem 0;text-align:center}.post-signoff{margin-top:2.5rem;padding:1.5rem 0;border-top:1px solid var(--border)}@media (max-width: 640px){.blog-header h1{font-size:1.75rem}.post-header h1{font-size:1.875rem}}.entry{display:grid;grid-template-columns:var(--col-meta) 1fr;column-gap:1rem;align-items:baseline}.meta{font-size:.875rem;color:var(--text-muted);white-space:nowrap}.contact{display:flex;flex-direction:column;gap:.55rem}.value{display:inline;font-size:.9375rem;color:var(--text);text-decoration:none}.value svg{color:var(--text-muted);vertical-align:baseline}a.value:hover{text-decoration:underline;text-underline-offset:2px}.content{min-width:0;display:flex;flex-direction:column;gap:.15rem}.title{display:inline;font-size:.9375rem;font-weight:500;color:var(--text);text-decoration:none}.title svg{color:var(--text-muted);vertical-align:baseline}a.title:hover{text-decoration:underline;text-underline-offset:2px}.sub{font-size:.875rem;color:var(--text-muted);margin:0}
