*,*::before,*::after{box-sizing:border-box}:root{--bg:#111;--bg-secondary:#1a1a1a;--text:#c9c9c9;--text-secondary:#777;--accent:#7ee787;--accent-hover:#56d364;--border:#2a2a2a;--code-bg:#1a1a1a;--max-width:720px;--mono:"JetBrains Mono", "Fira Code", "SF Mono", "Cascadia Code", "Consolas", monospace;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;--radius:3px}[data-theme=light]{--bg:#ffffff;--bg-secondary:#f5f5f5;--text:#222;--text-secondary:#666;--accent:#2a7d2e;--accent-hover:#1a6b1e;--border:#ddd;--code-bg:#f5f5f5}html{font-size:16px;line-height:1.6;scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--sans);color:var(--text);background-color:var(--bg);margin:0;padding:0;min-height:100vh;display:flex;flex-direction:column;transition:background-color .2s,color .2s}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover);text-decoration:underline}img{max-width:100%;height:auto}h1,h2,h3,h4,h5,h6{font-family:var(--mono);font-weight:600;line-height:1.3;color:var(--text);margin-top:1.5em;margin-bottom:.5em}h1{font-size:1.75rem}h2{font-size:1.4rem}h3{font-size:1.15rem}h4{font-size:1rem}.container{max-width:var(--max-width);width:100%;margin:0 auto;padding:0 1.25rem}.content{flex:1}.header{border-bottom:1px solid var(--border);padding:1rem 0;margin-bottom:2rem}.header-inner{display:flex;justify-content:space-between;align-items:center}.logo{font-family:var(--mono);font-size:1rem;font-weight:600;color:var(--text);text-decoration:none}.logo:hover{color:var(--accent);text-decoration:none}.logo-prompt{color:var(--accent)}.menu{display:flex;align-items:center;gap:1.25rem;list-style:none;margin:0;padding:0}.menu a{font-family:var(--mono);font-size:.85rem;color:var(--text-secondary);text-decoration:none}.menu a:hover{color:var(--accent)}.menu-toggle{display:none;background:0 0;border:none;color:var(--text);cursor:pointer;font-size:1.25rem;padding:.25rem}.theme-toggle{background:0 0;border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;padding:.25rem .5rem;font-size:.8rem;font-family:var(--mono);border-radius:var(--radius);line-height:1}.theme-toggle:hover{color:var(--accent);border-color:var(--accent)}.footer{border-top:1px solid var(--border);padding:1.5rem 0;margin-top:3rem;font-size:.8rem;color:var(--text-secondary)}.footer-inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem}.footer-links{display:flex;gap:1rem;align-items:center}.footer-links a{color:var(--text-secondary)}.footer-links a:hover{color:var(--accent)}.footer-links svg{width:16px;height:16px;fill:currentColor}.posts-list{list-style:none;padding:0;margin:0}.posts-year{font-family:var(--mono);font-size:1.1rem;font-weight:600;color:var(--text-secondary);margin-top:2rem;margin-bottom:.75rem;padding-bottom:.25rem;border-bottom:1px solid var(--border)}.post-item{display:flex;justify-content:space-between;align-items:baseline;padding:.4rem 0;gap:1rem}.post-item a{color:var(--text);font-weight:500}.post-item a:hover{color:var(--accent);text-decoration:none}.post-date{font-family:var(--mono);font-size:.8rem;color:var(--text-secondary);white-space:nowrap}.post-header{margin-bottom:2rem}.post-title{font-family:var(--mono);font-size:1.75rem;font-weight:700;margin:0 0 .5rem;line-height:1.3}.post-meta{font-family:var(--mono);font-size:.8rem;color:var(--text-secondary);display:flex;gap:1rem;flex-wrap:wrap}.post-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.75rem}.post-tags a{font-family:var(--mono);font-size:.75rem;color:var(--accent);border:1px solid var(--border);padding:.15rem .5rem;border-radius:var(--radius);text-decoration:none}.post-tags a:hover{border-color:var(--accent);background:var(--accent);color:var(--bg);text-decoration:none}.toc{margin-bottom:2rem;padding:1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-secondary)}.toc-title{font-family:var(--mono);font-size:.85rem;font-weight:600;margin:0 0 .5rem;color:var(--text-secondary)}.toc nav ul{padding-left:1rem;margin:0;list-style:none}.toc nav li{font-size:.85rem;margin:.25rem 0}.toc nav a{color:var(--text-secondary)}.toc nav a:hover{color:var(--accent)}.post-content{line-height:1.7}.post-content p{margin:0 0 1rem}.post-content ul,.post-content ol{padding-left:1.5rem;margin:0 0 1rem}.post-content li{margin:.25rem 0}.post-content blockquote{margin:0 0 1rem;padding:.5rem 1rem;border-left:3px solid var(--accent);background:var(--bg-secondary);color:var(--text-secondary)}.post-content blockquote p:last-child{margin-bottom:0}.post-content hr{border:none;border-top:1px solid var(--border);margin:2rem 0}.post-content table{width:100%;border-collapse:collapse;margin:0 0 1rem;font-size:.9rem}.post-content th,.post-content td{border:1px solid var(--border);padding:.5rem .75rem;text-align:left}.post-content th{background:var(--bg-secondary);font-family:var(--mono);font-weight:600;font-size:.85rem}.post-content img{border-radius:var(--radius)}.post-content code{font-family:var(--mono);font-size:.85em;background:var(--code-bg);padding:.15em .35em;border-radius:var(--radius)}.post-content pre{background:var(--code-bg);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;overflow-x:auto;margin:0 0 1.25rem;line-height:1.5}.post-content pre code{background:0 0;padding:0;font-size:.85rem;border-radius:0}.pagination{display:flex;justify-content:space-between;margin-top:2rem;padding-top:1rem;border-top:1px solid var(--border);font-family:var(--mono);font-size:.85rem}.pagination a{color:var(--text-secondary)}.pagination a:hover{color:var(--accent)}.not-found{text-align:center;padding:4rem 0}.not-found h1{font-family:var(--mono);font-size:4rem;margin:0;color:var(--accent)}.not-found p{color:var(--text-secondary);margin:1rem 0}.not-found a{font-family:var(--mono);font-size:.85rem}@media(max-width:684px){.post-item{flex-direction:column;gap:0}.post-date{font-size:.75rem}.post-title{font-size:1.4rem}.menu{display:none;position:absolute;top:100%;right:0;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;padding:.75rem 1rem;gap:.75rem;z-index:100}.menu.active{display:flex}.menu-toggle{display:block}.header{position:relative}.footer-inner{flex-direction:column;text-align:center}.toc{padding:.75rem}}.figure-center{text-align:center}.figure-center figcaption{font-size:.8rem;color:var(--text-secondary);margin-top:.5rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}