@import "https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap";@import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,100..800;1,100..800&display=swap";:root{--color-bg:#fafafa;--color-bg-alt:#fff;--color-text:#1a1a2e;--color-text-muted:#64748b;--color-primary:#2563eb;--color-primary-hover:#1d4ed8;--color-border:#e2e8f0;--color-border-hover:#cbd5e1;--color-code-bg:#f1f5f9;--color-code-text:#1e293b;--color-blockquote-border:#2563eb;--color-blockquote-bg:#eff6ff;--color-footer-bg:#1e293b;--color-footer-text:#f1f5f9;--color-link:#2563eb;--color-link-hover:#1d4ed8;--color-link-visited:#7c3aed;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--transition-fast:.15s ease;--transition-normal:.25s ease;--max-width-prose:720px;--max-width-page:960px;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace}@media (prefers-color-scheme:dark){:root{--color-bg:#0f172a;--color-bg-alt:#1e293b;--color-text:#f1f5f9;--color-text-muted:#94a3b8;--color-primary:#3b82f6;--color-primary-hover:#60a5fa;--color-border:#334155;--color-border-hover:#475569;--color-code-bg:#1e293b;--color-code-text:#e2e8f0;--color-blockquote-border:#3b82f6;--color-blockquote-bg:#1e3a5f;--color-footer-bg:#0f172a;--color-footer-text:#f1f5f9;--color-link:#60a5fa;--color-link-hover:#93c5fd;--color-link-visited:#c4b5fd}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-bg);flex-direction:column;min-height:100vh;font-size:1rem;line-height:1.7;display:flex}a{color:var(--color-link);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-link-hover);text-decoration:underline}a:visited{color:var(--color-link-visited)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:2px}::selection{background-color:var(--color-primary);color:#fff}#center{width:100%;max-width:var(--max-width-page);flex-direction:column;flex:1;align-items:center;margin:0 auto;padding:2rem 1.5rem 100px;display:flex}.page-header{text-align:center;border-bottom:1px solid var(--color-border);width:100%;margin-bottom:3rem;padding-bottom:1.5rem}.page-header h1{color:var(--color-text);letter-spacing:-.02em;margin-bottom:.5rem;font-size:clamp(2rem,5vw,3rem);font-weight:800;line-height:1.2}.page-header .subtitle{color:var(--color-text-muted);max-width:600px;margin:0 auto;font-size:1.125rem;font-weight:400}.blog-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem;width:100%;margin-bottom:2rem;display:grid}@media (width<=640px){.blog-grid{grid-template-columns:1fr}}.blog-card{background:var(--color-bg-alt);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:all var(--transition-normal);box-shadow:var(--shadow-sm);flex-direction:column;height:100%;padding:1.5rem;display:flex}.blog-card:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.blog-card h2{color:var(--color-text);margin-bottom:.5rem;font-size:1.25rem;font-weight:700;line-height:1.3}.blog-card h2 a{color:inherit;transition:color var(--transition-fast);text-decoration:none}.blog-card h2 a:hover{color:var(--color-primary);text-decoration:none}.blog-card .blog-meta{color:var(--color-text-muted);font-size:.875rem;font-family:var(--font-mono);margin-bottom:.75rem}.blog-card .blog-excerpt{color:var(--color-text-muted);flex:1;margin-bottom:1rem;font-size:.9375rem;line-height:1.6}.blog-card .read-more{color:var(--color-primary);transition:gap var(--transition-fast);align-items:center;gap:.375rem;font-size:.875rem;font-weight:600;display:inline-flex}.blog-card .read-more:hover{gap:.625rem;text-decoration:none}.blog-post{width:100%;max-width:var(--max-width-prose)}.blog-post header{border-bottom:1px solid var(--color-border);margin-bottom:2.5rem;padding-bottom:1.5rem}.blog-post h1{color:var(--color-text);letter-spacing:-.02em;margin-bottom:1rem;font-size:clamp(1.75rem,4vw,2.5rem);font-weight:800;line-height:1.25}.blog-post .post-meta{color:var(--color-text-muted);font-size:.875rem;font-family:var(--font-mono);flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.blog-post .post-meta time{white-space:nowrap}.blog-post .post-meta .author{font-family:var(--font-sans);color:var(--color-text);font-weight:500}.blog-post .post-meta .separator{color:var(--color-border)}.blog-post .post-content{font-size:1.0625rem;line-height:1.8}.blog-post .post-content>*+*{margin-top:1.5rem}.blog-post h2,.blog-post h3,.blog-post h4,.blog-post h5,.blog-post h6{color:var(--color-text);font-weight:700;line-height:1.3;margin-top:2.5rem!important;margin-bottom:1rem!important}.blog-post h2{border-bottom:1px solid var(--color-border);padding-bottom:.5rem;font-size:1.5rem}.blog-post h3{font-size:1.25rem}.blog-post h4{font-size:1.125rem}.blog-post h5,.blog-post h6{font-size:1rem;font-style:italic}.blog-post p{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.blog-post p:first-child{margin-top:0!important}.blog-post strong{color:var(--color-text);font-weight:600}.blog-post em{font-style:italic}.blog-post mark{color:#1a1a2e;background-color:#fef08a;border-radius:2px;padding:.125em .25em}@media (prefers-color-scheme:dark){.blog-post mark{color:#fef9c3;background-color:#a16207}}.blog-post a{text-underline-offset:2px;text-decoration:underline 1px;text-decoration-color:var(--color-border);transition:all var(--transition-fast)}.blog-post a:hover{text-decoration-color:var(--color-primary)}.blog-post ul,.blog-post ol{padding-left:1.5rem;margin-top:1.5rem!important;margin-bottom:1.5rem!important}.blog-post ul{list-style-type:disc}.blog-post ol{list-style-type:decimal}.blog-post li{margin-top:.5rem;margin-bottom:.5rem;line-height:1.7}.blog-post li>ul,.blog-post li>ol{margin-top:.5rem!important;margin-bottom:.5rem!important}.blog-post ul ul{list-style-type:circle}.blog-post ul ul ul{list-style-type:square}.blog-post blockquote{border-left:4px solid var(--color-blockquote-border);background-color:var(--color-blockquote-bg);border-radius:0 var(--radius-md) var(--radius-md) 0;color:var(--color-text);padding:1rem 1.5rem;font-style:italic;margin-top:1.5rem!important;margin-bottom:1.5rem!important}.blog-post blockquote p{margin-top:0!important;margin-bottom:0!important}.blog-post blockquote p+p{margin-top:1rem!important}.blog-post blockquote footer{color:var(--color-text-muted);font-size:.875rem;font-style:normal;font-family:var(--font-mono);margin-top:.75rem}.blog-post blockquote footer:before{content:"— "}.blog-post code{font-family:var(--font-mono);background-color:var(--color-code-bg);color:var(--color-code-text);border-radius:var(--radius-sm);word-break:break-word;padding:.125em .375em;font-size:.9em}.blog-post pre{background-color:var(--color-code-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1.25rem;overflow-x:auto;margin-top:1.5rem!important;margin-bottom:1.5rem!important}.blog-post pre code{color:inherit;word-break:normal;white-space:pre;background-color:#0000;padding:0;font-size:.875rem;line-height:1.7}.blog-post pre::-webkit-scrollbar{height:8px}.blog-post pre::-webkit-scrollbar-track{background:0 0}.blog-post pre::-webkit-scrollbar-thumb{background:var(--color-border-hover);border-radius:4px}.blog-post table{border-collapse:collapse;width:100%;font-size:.875rem;display:block;overflow-x:auto;margin-top:1.5rem!important;margin-bottom:1.5rem!important}.blog-post th,.blog-post td{border:1px solid var(--color-border);text-align:left;padding:.625rem .875rem}.blog-post th{background-color:var(--color-code-bg);color:var(--color-text);white-space:nowrap;font-weight:600}.blog-post td{color:var(--color-text)}.blog-post tr:nth-child(2n) td{background-color:var(--color-code-bg)}.blog-post caption{color:var(--color-text-muted);margin-bottom:.75rem;font-size:.875rem;font-weight:600}.blog-post img{border-radius:var(--radius-md);max-width:100%;height:auto;box-shadow:var(--shadow-md);margin-top:1.5rem!important;margin-bottom:1.5rem!important}.blog-post figure{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.blog-post figcaption{color:var(--color-text-muted);text-align:center;margin-top:.75rem;font-size:.875rem;font-style:italic}.blog-post hr{border:none;border-top:1px solid var(--color-border);margin-top:3rem!important;margin-bottom:3rem!important}.blog-post .footnotes{border-top:1px solid var(--color-border);color:var(--color-text-muted);padding-top:1.5rem;font-size:.875rem;margin-top:3rem!important}.blog-post .footnotes ol{padding-left:1.25rem}.blog-post .footnote-ref{font-family:var(--font-mono);vertical-align:super;font-size:.75rem}.blog-post .footnote-backref{margin-left:.25rem;text-decoration:none}.blog-post ul.contains-task-list{padding-left:0;list-style:none}.blog-post ul.contains-task-list li{align-items:flex-start;gap:.75rem;padding-left:0;display:flex}.blog-post ul.contains-task-list input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--color-primary);flex-shrink:0;margin-top:.25rem}.blog-post #TOC{background-color:var(--color-bg-alt);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1.25rem;margin-top:1.5rem!important;margin-bottom:2rem!important}.blog-post #TOC summary{cursor:pointer;margin-bottom:.75rem;font-weight:600}.blog-post #TOC ul{padding-left:0;list-style:none;margin:0!important}.blog-post #TOC li{margin:.25rem 0!important}.blog-post #TOC a{color:var(--color-text-muted);font-size:.9375rem;text-decoration:none}.blog-post #TOC a:hover{color:var(--color-primary);text-decoration:underline}.blog-post #TOC ul ul{border-left:1px solid var(--color-border);padding-left:1.25rem;margin-top:.5rem!important}@media print{.blog-card:hover{box-shadow:var(--shadow-sm);transform:none}a{text-decoration:underline}.blog-post a:after{content:" (" attr(href) ")";color:var(--color-text-muted);font-size:.875em;font-family:var(--font-mono)}.blog-post a[href^=\#]:after,.blog-post a[href^=javascript\:]:after{content:""}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (prefers-contrast:high){:root{--color-border:currentColor;--color-border-hover:currentColor;--shadow-sm:none;--shadow-md:none;--shadow-lg:none;--shadow-xl:none}.blog-card{border-width:2px}.blog-post h2{border-bottom-width:2px}.blog-post blockquote{border-left-width:4px}.blog-post pre,.blog-post table{border-width:2px}}
