@font-face{font-display:swap;font-family:'JetBrains Mono';font-style:normal;font-weight:400;src:url('../fonts/jetbrains-mono-v20-latin-regular.woff2') format('woff2')}@font-face{font-display:swap;font-family:'JetBrains Mono';font-style:normal;font-weight:700;src:url('../fonts/jetbrains-mono-v20-latin-700.woff2') format('woff2')}@font-face{font-display:swap;font-family:'JetBrains Mono';font-style:normal;font-weight:800;src:url('../fonts/jetbrains-mono-v20-latin-800.woff2') format('woff2')}:root{--color-text:#333;--color-text-light:#666;--color-background:#fff;--color-background-light:#f8f8f8;--color-border:#000;--color-border-light:#eee;--color-accent:#373737;--space-xs:5px;--space-sm:8px;--space-md:15px;--space-lg:20px;--space-xl:30px;--space-xxl:40px;--font-mono:'JetBrains Mono',monospace;--font-size-sm:0.9em;--font-size-base:1em;--font-size-md:1.1em;--font-size-lg:1.5em;--font-size-xl:2em;--line-height-base:1.6;--line-height-content:1.8;--border-radius:5px;--border-width:2px;--border-width-thick:3px}.blog-container{max-width:1100px;margin:0 auto;padding:var(--space-lg);color:var(--color-text);line-height:var(--line-height-base)}.blog-layout{display:flex;flex-direction:row;gap:var(--space-xl)}.blog-toc{flex:0 0 250px;position:sticky;top:var(--space-md);align-self:flex-start;max-height:calc(100vh - var(--space-md) * 2);overflow-y:auto}.mobile-toc-dropdown{display:none;margin-bottom:var(--space-lg)}.toc-checkbox{display:none}.toc-toggle-label{display:block;background-color:var(--color-background-light);padding:var(--space-sm) var(--space-md);cursor:pointer;border-left:var(--border-width-thick) solid var(--color-accent);user-select:none;font-weight:bold}.mobile-toc-content{max-height:0;overflow:hidden;transition:max-height 0.2s ease-out;background-color:var(--color-background-light);border-left:var(--border-width-thick) solid var(--color-accent);padding:0 var(--space-md);padding-bottom:0}.toc-checkbox:checked+.toc-toggle-label{border-bottom:1px solid var(--color-border-light)}.toc-checkbox:checked+.toc-toggle-label+.mobile-toc-content{max-height:500px;padding-bottom:var(--space-md)}.mobile-toc-content ul{list-style-type:none;padding:0;margin:var(--space-sm) 0 0 0}.mobile-toc-content li{margin-bottom:var(--space-sm)}.mobile-toc-content a{text-decoration:none;color:var(--color-text-light);font-size:var(--font-size-sm)}.mobile-toc-content a:hover{color:var(--color-text)}.toc-container{padding:var(--space-md)}.toc-container h3{margin-top:0;margin-bottom:var(--space-md);font-size:var(--font-size-md)}.toc-container ul{list-style-type:none;padding:0;margin:0}.toc-container li{margin-bottom:var(--space-sm)}.toc-container a{text-decoration:none;color:var(--color-text-light);font-size:var(--font-size-sm)}.toc-container a:hover{color:var(--color-text)}.blog-article{flex:1;margin-bottom:var(--space-xxl)}.blog-article-header{margin-bottom:var(--space-lg);border-bottom:1px solid var(--color-border-light);padding-bottom:var(--space-sm)}.blog-article-header h1{font-size:var(--font-size-xl);margin-bottom:var(--space-sm)}.blog-article-meta{font-size:var(--font-size-sm);color:var(--color-text-light);display:flex;gap:var(--space-md)}.blog-content{line-height:var(--line-height-content);font-size:var(--font-size-md)}.blog-content p{margin-bottom:1.5em}.blog-content h2,.blog-content h3{margin-top:1.5em;margin-bottom:0.8em}.blog-content a{word-wrap:break-word;overflow-wrap:break-word;word-break:break-word;hyphens:auto;max-width:100%;display:inline-block}.blog-content img{max-width:100%;height:auto;display:block;margin:1.5em 0;border-radius:var(--border-radius)}.blog-media-image{cursor:pointer;transition:opacity 0.2s ease}.blog-media-image:hover{opacity:0.9}.blog-content table{width:100%;border-collapse:collapse;margin:1.5em 0;border:var(--border-width-thick) solid var(--color-border);font-size:0.85em}.blog-content th,.blog-content td{border:var(--border-width) solid var(--color-border);padding:var(--space-sm);text-align:left}.blog-content th{font-weight:bold;background-color:var(--color-background-light)}.blog-content pre{background-color:var(--color-background-light);border-radius:var(--border-radius);padding:1em;margin:1.5em 0;overflow-x:auto;border-left:4px solid var(--color-accent);font-family:var(--font-mono);font-size:var(--font-size-sm);line-height:var(--line-height-base)}.blog-content code{font-family:var(--font-mono);font-size:var(--font-size-sm);background-color:var(--color-background-light);padding:0.2em 0.4em;border-radius:3px}.blog-content pre code{background-color:transparent;padding:0;border-radius:0;color:var(--color-text)}.blog-footer{margin-top:var(--space-xxl);padding-top:var(--space-lg);border-top:1px solid var(--color-border-light);text-align:center;font-size:var(--font-size-sm);color:var(--color-text-light)}table.blogpost-header{width:100%;border-collapse:collapse;margin-bottom:2em;font-family:var(--font-mono);font-size:0.85em}table.blogpost-header th,table.blogpost-header td{border:var(--border-width) solid var(--color-border);padding:var(--space-sm) var(--space-md)}table.blogpost-header th{text-align:left;font-weight:bold}table.blogpost-header time{white-space:pre}table.blogpost-header .width-min{white-space:nowrap}table.blogpost-header .width-auto{width:auto}table.blogpost-header h1.title{margin:0;font-size:var(--font-size-lg);font-weight:800;text-transform:uppercase}@media (max-width:840px){.blog-layout{flex-direction:column}.desktop-toc{display:none}.mobile-toc-dropdown{display:block}table.blogpost-header{font-size:0.85em}table.blogpost-header th,table.blogpost-header td{padding:var(--space-xs) var(--space-sm)}}@media (max-width:600px){.blog-container{padding:var(--space-sm) 12px}.blog-article-header h1{font-size:1.6em}.blog-article-meta{flex-direction:column;gap:var(--space-xs)}.blog-content{font-size:var(--font-size-base)}table.blogpost-header{font-size:0.85em}table.blogpost-header th,table.blogpost-header td{padding:4px 6px}table.blogpost-header h1.title{font-size:1.3em}}