﻿:root{--bg-primary: #fafaf8;--bg-secondary: #f2f0ed;--bg-card: #ffffff;--bg-code: #f0f0ec;--bg-header: rgba(250, 250, 248, 0.92);--text-primary: #1c1f23;--text-secondary: #4a5058;--text-muted: #767d87;--text-code: #24292f;--border-color: #dde0e6;--border-subtle: #eceae6;--accent-green: #2a9d5c;--accent-green-dim: #1d7a45;--accent-blue: #0c6fba;--accent-tag: #5a6370;--accent-tag-bg: #eceae6;--syntax-bg: #f6f5f0;--syntax-text: #24292f;--syntax-keyword: #d73a49;--syntax-string: #032f62;--syntax-comment: #6a737d;--syntax-number: #005cc5;--syntax-function: #6f42c1;--syntax-operator: #d73a49;--syntax-class: #e36209;--syntax-variable: #24292f;--shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);--shadow-md: 0 4px 6px rgba(0, 0, 0, 0.07), 0 2px 4px rgba(0, 0, 0, 0.05);--shadow-lg: 0 10px 25px rgba(0, 0, 0, 0.08), 0 4px 10px rgba(0, 0, 0, 0.05);--focus-ring: 0 0 0 3px rgba(42, 157, 92, 0.3)}[data-theme=dark]{--bg-primary: #13151a;--bg-secondary: #1a1d24;--bg-card: #1f2229;--bg-code: #161920;--bg-header: rgba(19, 21, 26, 0.92);--text-primary: #e2e4e9;--text-secondary: #9099a6;--text-muted: #616975;--text-code: #cdd9e5;--border-color: #2c3040;--border-subtle: #22252e;--accent-green: #3fb950;--accent-green-dim: #2ea043;--accent-blue: #58a6ff;--accent-tag: #8b949e;--accent-tag-bg: #2c3040;--syntax-bg: #161920;--syntax-text: #cdd9e5;--syntax-keyword: #f47067;--syntax-string: #96d0ff;--syntax-comment: #6b7985;--syntax-number: #6cb6ff;--syntax-function: #dcbdfb;--syntax-operator: #f47067;--syntax-class: #f69d50;--syntax-variable: #cdd9e5;--shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.3), 0 1px 2px rgba(0, 0, 0, 0.2);--shadow-md: 0 4px 6px rgba(0, 0, 0, 0.35), 0 2px 4px rgba(0, 0, 0, 0.2);--shadow-lg: 0 10px 25px rgba(0, 0, 0, 0.4), 0 4px 10px rgba(0, 0, 0, 0.25);--focus-ring: 0 0 0 3px rgba(63, 185, 80, 0.35)}*,*::before,*::after{box-sizing:border-box}html{font-size:18px;-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:1rem;line-height:1.75;color:var(--text-primary);background-color:var(--bg-primary);transition:color .3s ease,background-color .3s ease,border-color .3s ease;margin:0;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-weight:700;line-height:1.3;color:var(--text-primary);margin-top:2rem;margin-bottom:1rem}h1{font-size:2.25rem;letter-spacing:-0.02em}h2{font-size:1.6rem;letter-spacing:-0.015em}h3{font-size:1.25rem;letter-spacing:-0.01em}h4{font-size:1.1rem}h5{font-size:1rem}h6{font-size:.9rem;color:var(--text-secondary)}p{margin:0 0 1.5rem}a{color:var(--accent-green);text-decoration:none;transition:color .15s ease,opacity .15s ease}a:hover{color:var(--accent-green-dim);text-decoration:underline}a:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:3px}strong,b{font-weight:600}em,i{font-style:italic}ul,ol{margin:0 0 1.5rem;padding-left:2rem}li{margin-bottom:.5rem;line-height:1.75}li>ul,li>ol{margin-top:.5rem;margin-bottom:.5rem}blockquote{margin:2rem 0;padding:1rem 1.5rem;border-left:3px solid var(--accent-green);background:var(--bg-secondary);border-radius:0 6px 6px 0;color:var(--text-secondary);font-size:.95rem}blockquote p:last-child{margin-bottom:0}blockquote cite{display:block;margin-top:.75rem;font-size:.85rem;color:var(--text-muted);font-style:normal}blockquote cite::before{content:"— "}hr{border:none;border-top:1px solid var(--border-color);margin:2.5rem 0}.table-wrapper{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:1.5rem}table{width:100%;border-collapse:collapse;font-size:.9rem}table th,table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--border-color)}table th{font-weight:600;color:var(--text-primary);background:var(--bg-secondary);white-space:nowrap}table tr:last-child td{border-bottom:none}table tr:hover td{background:var(--bg-secondary)}img{max-width:100%;height:auto;display:block;border-radius:6px}figure{margin:2rem 0}figure img{width:100%}figure figcaption{margin-top:.75rem;font-size:.85rem;color:var(--text-muted);text-align:center;font-style:italic}code{font-family:"JetBrains Mono","Fira Code","Consolas",monospace;font-size:.85em;background:var(--bg-code);color:var(--accent-green);padding:.15em .4em;border-radius:4px;border:1px solid var(--border-subtle)}.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}body.menu-open{overflow:hidden}.skip-link{position:absolute;top:-100%;left:1rem;z-index:9999;background:var(--accent-green);color:#fff;padding:.5rem 1rem;border-radius:0 0 6px 6px;font-size:.9rem;font-weight:600}.skip-link:focus{top:0}.site-main{min-height:calc(100vh - 64px - 80px);padding-top:calc(64px + 2rem)}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 1.5rem}@media(max-width: 640px){.container{padding:0 1rem}}.home-wrapper{max-width:880px;margin:0 auto;padding:0 1.5rem 4rem}@media(max-width: 640px){.home-wrapper{padding:0 1rem 2.5rem}}.home-header{margin-bottom:2.5rem;padding-bottom:2rem;border-bottom:1px solid var(--border-color)}.home-header h1{font-size:1.4rem;font-weight:600;color:var(--text-secondary);margin:0;letter-spacing:0}.home-header h1 span{color:var(--accent-green);font-family:"JetBrains Mono","Fira Code","Consolas",monospace;font-size:1rem}.home-header-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.posts-per-page{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.posts-per-page-label{font-size:.75rem;font-family:"JetBrains Mono","Fira Code","Consolas",monospace;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}.ppp-btn{padding:.25rem .75rem;font-size:.8rem;font-family:"JetBrains Mono","Fira Code","Consolas",monospace;font-weight:500;color:var(--text-muted);background:none;border:1px solid var(--border-color);border-radius:5px;cursor:pointer;transition:color .15s ease,border-color .15s ease,background .15s ease}.ppp-btn:hover{color:var(--text-primary);border-color:var(--text-muted);background:var(--bg-secondary)}.ppp-btn.is-active{color:var(--accent-green);border-color:var(--accent-green);background:var(--bg-secondary)}.post-list{list-style:none;padding:0;margin:0}.post-card{margin-bottom:.5rem;border-bottom:1px solid var(--border-subtle);transition:border-color .15s ease}.post-card:last-child{border-bottom:none}.post-card-inner{padding:2rem 0;transition:.2s ease}.post-card-thumb{display:block;width:70%;margin:1rem auto}.post-card-thumb img{display:block;width:100%;height:auto;border:1px solid var(--border-subtle);border-radius:6px;box-shadow:var(--shadow-sm);transition:opacity .15s ease}.post-card-thumb:hover img{opacity:.85}@media(max-width: 640px){.post-card-thumb{width:100%}}.post-card-meta{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem;font-size:.8rem;color:var(--text-muted);font-family:"JetBrains Mono","Fira Code","Consolas",monospace}.post-card-date{color:var(--text-muted)}.post-card-category{color:var(--accent-green);font-weight:500;text-transform:uppercase;letter-spacing:.05em;font-size:.7rem}.post-card-title{font-size:1.4rem;font-weight:700;line-height:1.3;margin:0 0 .75rem;letter-spacing:-0.01em}.post-card-title-link{color:var(--text-primary);text-decoration:none}.post-card-title-link:hover{color:var(--accent-green);text-decoration:none}.post-card-excerpt{color:var(--text-secondary);font-size:.95rem;line-height:1.7;margin:0 0 1rem;text-align:justify}.post-card-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.post-card-tags{display:flex;flex-wrap:wrap;gap:.5rem}.post-card-actions{display:flex;align-items:center;gap:1.25rem;margin-left:auto}.post-card-reading-time{display:flex;align-items:center;gap:.25rem;font-size:.8rem;color:var(--text-muted);font-family:"JetBrains Mono","Fira Code","Consolas",monospace;white-space:nowrap}.post-card-more{font-size:.85rem;font-weight:500;color:var(--accent-green);white-space:nowrap}.post-card-more:hover{color:var(--accent-green-dim);text-decoration:none}.post-tag{display:inline-flex;align-items:center;padding:.2em .65em;font-size:.72rem;font-family:"JetBrains Mono","Fira Code","Consolas",monospace;font-weight:500;color:var(--accent-tag);background:var(--accent-tag-bg);border-radius:4px;text-decoration:none;transition:color .15s ease,background .15s ease}.post-tag:before{content:"#";margin-right:1px}.post-tag:hover{color:var(--accent-green);background:var(--bg-secondary);text-decoration:none}.pagination{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:3rem;padding-top:2rem;border-top:1px solid var(--border-color)}.pagination-link{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.9rem;font-weight:500;color:var(--text-secondary);border:1px solid var(--border-color);border-radius:6px;text-decoration:none;transition:color .15s ease,border-color .15s ease,background .15s ease}.pagination-link:hover{color:var(--accent-green);border-color:var(--accent-green);background:var(--bg-secondary);text-decoration:none}.pagination-info{font-size:.85rem;color:var(--text-muted);font-family:"JetBrains Mono","Fira Code","Consolas",monospace}.page-wrapper{max-width:720px;margin:0 auto;padding:0 1.5rem 4rem}@media(max-width: 640px){.page-wrapper{padding:0 1rem 2.5rem}}.page-header{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border-color)}.page-title{font-size:2rem;font-weight:700;margin:0;letter-spacing:-0.02em}.page-subtitle{margin-top:.75rem;color:var(--text-secondary);font-size:1rem}.page-content table{display:block;overflow-x:auto}.site-header{position:fixed;top:0;left:0;right:0;z-index:100;height:64px;background:var(--bg-header);border-bottom:1px solid rgba(0,0,0,0);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:border-color .2s ease,box-shadow .2s ease,height .2s ease,background color .3s ease,background-color .3s ease,border-color .3s ease}.site-header.is-scrolled{border-bottom-color:var(--border-subtle);box-shadow:var(--shadow-sm);height:56px}.site-header.is-scrolled .header-inner{height:56px}.header-inner{display:flex;align-items:center;max-width:1200px;margin:0 auto;padding:0 1.5rem;height:64px;gap:1.5rem;transition:height .2s ease}@media(max-width: 640px){.header-inner{padding:0 1rem;gap:1rem}}.site-logo{flex-shrink:0;font-family:"JetBrains Mono","Fira Code","Consolas",monospace;font-size:1.05rem;font-weight:500;color:var(--text-primary);text-decoration:none;letter-spacing:-0.02em;transition:color .15s ease}.site-logo:hover{color:var(--accent-green);text-decoration:none}.logo-bracket{color:var(--accent-green);font-weight:400}.logo-name{font-weight:600}.nav-desktop{flex:1;display:flex;justify-content:flex-end}@media(max-width: 768px){.nav-desktop{display:none}}.nav-list{display:flex;align-items:center;list-style:none;margin:0;padding:0;gap:.5rem}.nav-item{position:relative}.nav-link{display:flex;align-items:center;gap:.25rem;padding:.5rem .75rem;font-size:.9rem;font-weight:500;color:var(--text-secondary);text-decoration:none;border-radius:6px;transition:color .15s ease,background .15s ease;white-space:nowrap}.nav-link:hover{color:var(--text-primary);background:var(--bg-secondary);text-decoration:none}.nav-link[aria-current=page]{color:var(--accent-green)}.nav-chevron{transition:transform .15s ease}.nav-dropdown{position:absolute;top:calc(100% + 0.5rem);right:0;min-width:160px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--shadow-md);list-style:none;padding:.5rem;margin:0;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .2s ease,transform .2s ease,visibility .2s ease;pointer-events:none}.nav-dropdown-link{display:block;padding:.5rem .75rem;font-size:.875rem;font-weight:400;color:var(--text-secondary);text-decoration:none;border-radius:6px;transition:color .15s ease,background .15s ease;white-space:nowrap}.nav-dropdown-link:hover{color:var(--text-primary);background:var(--bg-secondary);text-decoration:none}.nav-item--dropdown.is-open .nav-dropdown{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}.nav-item--dropdown.is-open .nav-chevron{transform:rotate(180deg)}.header-actions{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.search-widget{position:relative}@media(max-width: 768px){.search-widget{display:none}}.search-input-wrapper{position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:.75rem;color:var(--text-muted);pointer-events:none}.search-input{width:200px;padding:.5rem .75rem .5rem 2.2rem;font-size:.85rem;font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text-primary);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;outline:none;transition:width .2s ease,border-color .15s ease,box-shadow .15s ease,background color .3s ease,background-color .3s ease,border-color .3s ease}.search-input::placeholder{color:var(--text-muted)}.search-input:focus{width:260px;border-color:var(--accent-green);box-shadow:var(--focus-ring)}.search-results{position:absolute;top:calc(100% + 0.5rem);right:0;width:360px;max-height:420px;overflow-y:auto;background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--shadow-lg);z-index:200}.search-results[hidden]{display:none}.search-result-count{padding:.5rem 1rem;font-size:.75rem;color:var(--text-muted);border-bottom:1px solid var(--border-subtle)}.search-result-item{display:block;padding:.75rem 1rem;text-decoration:none;border-bottom:1px solid var(--border-subtle);transition:background .15s ease;outline:none}.search-result-item:last-child{border-bottom:none}.search-result-item:hover,.search-result-item:focus{background:var(--bg-secondary);text-decoration:none}.search-result-item .result-title{font-size:.9rem;font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.search-result-item .result-excerpt{font-size:.8rem;color:var(--text-secondary);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.search-result-item .result-date{font-size:.75rem;color:var(--text-muted);font-family:"JetBrains Mono","Fira Code","Consolas",monospace;margin-top:.25rem}.search-result-item mark{background:rgba(63,185,80,.2);color:inherit;border-radius:2px;padding:0 2px}.search-no-results,.search-loading{padding:1.5rem 1rem;text-align:center;font-size:.9rem;color:var(--text-muted)}.theme-toggle{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:none;border:1px solid var(--border-color);border-radius:8px;color:var(--text-secondary);cursor:pointer;transition:color .15s ease,border-color .15s ease,background .15s ease;flex-shrink:0}.theme-toggle:hover{color:var(--text-primary);border-color:var(--text-muted);background:var(--bg-secondary)}.theme-toggle:focus-visible{outline:none;box-shadow:var(--focus-ring)}.icon-sun{display:none}.icon-moon{display:block}[data-theme=dark] .icon-sun{display:block}[data-theme=dark] .icon-moon{display:none}.hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;width:36px;height:36px;padding:8px;background:none;border:1px solid var(--border-color);border-radius:8px;cursor:pointer;transition:border-color .15s ease,background .15s ease}.hamburger:hover{border-color:var(--text-muted);background:var(--bg-secondary)}.hamburger:focus-visible{outline:none;box-shadow:var(--focus-ring)}@media(max-width: 768px){.hamburger{display:flex}}.hamburger-bar{display:block;width:18px;height:1.5px;background:var(--text-secondary);border-radius:2px;transition:background .15s ease}.mobile-nav-overlay{position:fixed;inset:0;z-index:110;background:rgba(0,0,0,.4);opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease}.mobile-nav-overlay.is-visible{opacity:1;visibility:visible}.mobile-nav{position:fixed;top:0;right:0;bottom:0;z-index:120;width:min(320px,85vw);background:var(--bg-card);border-left:1px solid var(--border-color);display:flex;flex-direction:column;transform:translateX(100%);transition:transform .28s cubic-bezier(0.4, 0, 0.2, 1);overflow-y:auto}.mobile-nav.is-open{transform:translateX(0)}.mobile-nav-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color);flex-shrink:0}.mobile-nav-title{font-size:.85rem;font-weight:600;font-family:"JetBrains Mono","Fira Code","Consolas",monospace;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em}.mobile-nav-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:none;border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:color .15s ease,background .15s ease}.mobile-nav-close:hover{color:var(--text-primary);background:var(--bg-secondary)}.mobile-search{padding:1rem 1.25rem;border-bottom:1px solid var(--border-subtle);position:relative;flex-shrink:0}.mobile-search .search-input{width:100%}.mobile-search .search-input:focus{width:100%}.mobile-search .search-results{width:100%;right:auto;left:0}.mobile-nav-list{list-style:none;padding:1rem 0;margin:0;flex:1}.mobile-nav-item--section{padding:.75rem 1.25rem .5rem;font-size:.7rem;font-weight:600;font-family:"JetBrains Mono","Fira Code","Consolas",monospace;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em}.mobile-nav-item--divider{border-top:1px solid var(--border-subtle);margin:.75rem 1.25rem}.mobile-nav-link{display:block;padding:.75rem 1.25rem;font-size:1rem;font-weight:500;color:var(--text-primary);text-decoration:none;transition:color .15s ease,background .15s ease}.mobile-nav-link:hover{color:var(--accent-green);background:var(--bg-secondary);text-decoration:none}.post{padding-bottom:4rem}.post-header{background:var(--bg-primary);padding-bottom:2rem;margin-bottom:0}.post-header-inner{max-width:1200px;margin:0 auto;padding:0 1.5rem}@media(max-width: 640px){.post-header-inner{padding:0 1rem}}.post-meta-top{margin-bottom:.75rem}.post-category{font-size:.75rem;font-weight:600;font-family:"JetBrains Mono","Fira Code","Consolas",monospace;color:var(--accent-green);text-transform:uppercase;letter-spacing:.08em;text-decoration:none}.post-category:hover{color:var(--accent-green-dim);text-decoration:none}.post-title{font-size:clamp(1.75rem,4vw,2.5rem);font-weight:800;line-height:1.2;letter-spacing:-0.025em;color:var(--text-primary);margin:0 0 1.25rem}.post-subtitle{font-size:1.1rem;color:var(--text-secondary);line-height:1.6;margin-top:1rem;margin-bottom:0}.post-meta{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;font-size:.85rem;color:var(--text-muted);font-family:"JetBrains Mono","Fira Code","Consolas",monospace}.post-date{color:var(--text-muted)}.post-meta-sep{color:var(--border-color)}.reading-time{display:inline-flex;align-items:center;gap:.25rem}.post-tags-inline{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.post-body{max-width:1200px;margin:0 auto;padding:2rem 1.5rem 0}@media(max-width: 640px){.post-body{padding:1.5rem 1rem 0}}.post-content-wrapper{display:grid;grid-template-columns:1fr;gap:0;align-items:start;max-width:100%}@media(min-width: 1024px){.post-content-wrapper{grid-template-columns:1fr 220px;gap:2.5rem}}.post-content{min-width:0}.post-content>*:first-child{margin-top:0}.post-content h2,.post-content h3{scroll-margin-top:calc(64px + 1rem);position:relative}.post-content h2 .anchor-link,.post-content h3 .anchor-link{position:absolute;left:-1.4em;top:50%;transform:translateY(-50%);opacity:0;color:var(--text-muted);font-size:.8em;text-decoration:none;transition:opacity .15s ease}.post-content h2 .anchor-link:hover,.post-content h3 .anchor-link:hover{color:var(--accent-green)}.post-content h2:hover .anchor-link,.post-content h3:hover .anchor-link{opacity:1}.post-content h2{font-size:1.5rem;margin-top:3rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-subtle)}.post-content h3{font-size:1.2rem;margin-top:2rem}.post-content img{display:block;margin:2rem auto;max-width:100%;border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm)}.post-content img.no-border{border:none;box-shadow:none}.post-content img.center-image{display:block;margin:2rem auto;max-width:100%;border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm)}.post-content figure.image.centered{display:flex;flex-direction:column;align-items:center;margin:2rem 0;gap:.5rem}.post-content figure.image.centered img{margin:0}.post-content figure.image.centered figcaption{font-size:.8rem;color:var(--text-muted);font-style:italic;text-align:center}.post-content .text-with-image{display:flex;align-items:flex-start;gap:1.5rem}.post-content .text-with-image p{flex:1;margin:0}.post-content .text-with-image img{flex-shrink:0;margin:0;border:none;box-shadow:none}@media(max-width: 640px){.post-content .text-with-image{flex-direction:column}.post-content .text-with-image img{max-width:40%}}.post-content img.img-20{display:block;max-width:20%;margin:0;border:none;box-shadow:none;flex-shrink:0}@media(max-width: 640px){.post-content img.img-20{max-width:40%}}.post-content table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;font-size:.9rem;margin:1.5rem 0}.toc-sidebar{display:none}@media(min-width: 1024px){.toc-sidebar{display:block}}.toc-sidebar-inner{position:sticky;top:calc(64px + 1.5rem);max-height:calc(100vh - 64px - 3rem);overflow-y:auto;padding-right:.5rem;scrollbar-width:thin;scrollbar-color:var(--border-color) rgba(0,0,0,0)}.toc-sidebar-inner::-webkit-scrollbar{width:4px}.toc-sidebar-inner::-webkit-scrollbar-track{background:rgba(0,0,0,0)}.toc-sidebar-inner::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}.toc-title{font-size:.7rem;font-weight:600;font-family:"JetBrains Mono","Fira Code","Consolas",monospace;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;margin:0 0 .75rem}.toc-list{list-style:none;padding:0;margin:0}.toc-item{margin-bottom:1px}.toc-item.toc-item--h3{padding-left:.75rem}.toc-link{display:block;padding:3px .5rem;font-size:.8rem;line-height:1.5;color:var(--text-muted);text-decoration:none;border-left:2px solid rgba(0,0,0,0);border-radius:0 4px 4px 0;transition:color .15s ease,border-color .15s ease,background .15s ease;word-break:break-word}.toc-link:hover{color:var(--text-primary);background:var(--bg-secondary);text-decoration:none}.toc-link.is-active{color:var(--accent-green);border-left-color:var(--accent-green);background:var(--bg-secondary);font-weight:500}.toc-mobile{margin-bottom:1.5rem;border:1px solid var(--border-color);border-radius:8px;overflow:hidden}@media(min-width: 1024px){.toc-mobile{display:none}}.toc-mobile-toggle{display:flex;align-items:center;gap:.5rem;width:100%;padding:.75rem 1rem;font-size:.85rem;font-weight:500;color:var(--text-secondary);background:var(--bg-secondary);border:none;cursor:pointer;transition:color .15s ease,background .15s ease;text-align:left}.toc-mobile-toggle:hover{color:var(--text-primary);background:var(--bg-card)}.toc-mobile-toggle .toc-chevron{margin-left:auto;transition:transform .15s ease}.toc-mobile-toggle[aria-expanded=true] .toc-chevron{transform:rotate(180deg)}.toc-mobile-content{max-height:0;overflow:hidden;transition:max-height .3s ease}.toc-mobile-content.is-open{max-height:400px;overflow-y:auto}.toc-mobile-content .toc-list{padding:.5rem .75rem}.toc-mobile-content .toc-link{font-size:.9rem;padding:.5rem .75rem}.post-footer{max-width:1200px;margin:3rem auto 0;padding:2rem 1.5rem 0;border-top:1px solid var(--border-color)}@media(max-width: 640px){.post-footer{padding:1.5rem 1rem 0}}.post-tags-footer{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem;font-size:.85rem}.post-tags-label{color:var(--text-muted);font-weight:500;margin-right:.5rem}.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:2rem}@media(max-width: 640px){.post-nav{grid-template-columns:1fr;gap:1rem}}.post-nav-prev,.post-nav-next{min-width:0}.post-nav-next{text-align:right}@media(max-width: 640px){.post-nav-next{text-align:left}}.post-nav-link{display:flex;flex-direction:column;gap:.25rem;text-decoration:none;padding:1rem;border:1px solid var(--border-color);border-radius:8px;transition:border-color .15s ease,background .15s ease}.post-nav-link:hover{border-color:var(--accent-green);background:var(--bg-secondary);text-decoration:none}.post-nav-label{font-size:.75rem;font-family:"JetBrains Mono","Fira Code","Consolas",monospace;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.post-nav-title{font-size:.9rem;font-weight:600;color:var(--text-primary);line-height:1.4}#reading-progress-bar{position:fixed;top:0;left:0;width:100%;height:3px;background:var(--accent-green);transform:scaleX(0);transform-origin:left center;z-index:150;pointer-events:none}.related-posts{max-width:1200px;margin:3rem auto 0;padding:2rem 1.5rem 0;border-top:1px solid var(--border-color)}@media(max-width: 640px){.related-posts{padding:1.5rem 1rem 0}}.related-posts-title{font-size:1rem;font-family:"JetBrains Mono","Fira Code","Consolas",monospace;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0 0 1.5rem}.related-posts-grid{display:grid;grid-template-columns:repeat(3, 1fr);gap:1rem}@media(max-width: 768px){.related-posts-grid{grid-template-columns:repeat(2, 1fr)}}@media(max-width: 640px){.related-posts-grid{grid-template-columns:1fr}}.related-post-card{display:flex;flex-direction:column;gap:.5rem;padding:1rem;border:1px solid var(--border-color);border-radius:8px;text-decoration:none;transition:border-color .15s ease,background .15s ease}.related-post-card:hover{border-color:var(--accent-green);background:var(--bg-secondary);text-decoration:none}.related-post-title{font-size:.9rem;font-weight:600;color:var(--text-primary);line-height:1.4}.related-post-meta{display:flex;flex-direction:column;gap:.5rem;margin-top:auto}.related-post-meta time{font-size:.75rem;font-family:"JetBrains Mono","Fira Code","Consolas",monospace;color:var(--text-muted)}.related-post-tags{display:flex;flex-wrap:wrap;gap:.25rem}.post-social{display:flex;flex-direction:column;align-items:center;gap:1.25rem;max-width:1200px;margin:3rem auto 0;padding:2rem 1.5rem;border-top:1px solid var(--border-subtle)}@media(max-width: 640px){.post-social{padding:1.5rem 1rem}}.tags-page{max-width:920px;margin:0 auto;padding:0 1.5rem 4rem}@media(max-width: 640px){.tags-page{padding:0 1rem 2.5rem}}.tag-group{margin-bottom:2.5rem}.tag-group:last-child{margin-bottom:0}.tag-group-heading{font-size:.75rem;font-weight:600;font-family:"JetBrains Mono","Fira Code","Consolas",monospace;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;margin:0 0 1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-subtle)}.tag-cloud{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem}.tag-cloud-item{display:inline-flex;align-items:center;gap:.25rem;padding:.5rem 1rem;font-size:.85rem;font-family:"JetBrains Mono","Fira Code","Consolas",monospace;font-weight:500;color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:20px;text-decoration:none;transition:color .15s ease,border-color .15s ease,background .15s ease}.tag-cloud-item:hover{color:var(--accent-green);border-color:var(--accent-green);background:var(--bg-card);text-decoration:none}.tag-cloud-item.is-active{color:var(--accent-green);border-color:var(--accent-green);background:rgba(63,185,80,.08)}.tag-cloud-item .tag-count{font-size:.75rem;color:var(--text-muted);background:var(--bg-card);padding:1px 6px;border-radius:10px}.tag-posts .post-card{display:none}.tag-posts .post-card.is-visible{display:block}.series-nav{max-width:1200px;margin:0 auto 2.5rem;padding:1.25rem 1.5rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-left:3px solid var(--accent-green);border-radius:8px;transition:background color .3s ease,background-color .3s ease,border-color .3s ease,border-color color .3s ease,background-color .3s ease,border-color .3s ease}@media(max-width: 640px){.series-nav{padding:1rem;margin-bottom:2rem}}.series-nav-header{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.series-nav-icon{color:var(--accent-green);flex-shrink:0}.series-nav-label{font-size:.8rem;font-weight:600;font-family:"JetBrains Mono","Fira Code","Consolas",monospace;color:var(--accent-green);text-transform:uppercase;letter-spacing:.06em}.series-nav-count{margin-left:auto;font-size:.75rem;font-family:"JetBrains Mono","Fira Code","Consolas",monospace;color:var(--text-muted)}.series-nav-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem;counter-reset:series-counter}.series-nav-item{display:flex}.series-nav-link{display:flex;align-items:baseline;gap:.5rem;font-size:.9rem;color:var(--text-secondary);text-decoration:none;line-height:1.4;transition:color .15s ease}.series-nav-link:hover{color:var(--accent-green);text-decoration:none}.series-nav-link.is-current{color:var(--text-primary);font-weight:600;cursor:default}.series-part-num{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 .25rem;font-size:.7rem;font-family:"JetBrains Mono","Fira Code","Consolas",monospace;font-weight:700;background:var(--bg-card);border:1px solid var(--border-color);border-radius:4px;color:var(--text-muted);flex-shrink:0}.is-current .series-part-num{background:var(--accent-green);border-color:var(--accent-green);color:#fff}.highlight,div.highlight{position:relative;margin:1.5rem 0;background:var(--syntax-bg);border:1px solid var(--border-subtle);border-radius:8px;overflow:hidden}.highlight[data-lang]::before,div.highlight[data-lang]::before{content:attr(data-lang);position:absolute;top:0;left:0;padding:2px .75rem;font-size:.65rem;font-family:"JetBrains Mono","Fira Code","Consolas",monospace;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;background:var(--bg-secondary);border-right:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);border-radius:8px 0 4px 0;line-height:1.8}.highlight pre,div.highlight pre{margin:0;padding:1.25rem;overflow-x:auto;-webkit-overflow-scrolling:touch;background:rgba(0,0,0,0);font-family:"JetBrains Mono","Fira Code","Consolas",monospace;font-size:.875rem;line-height:1.65;color:var(--syntax-text);border:none}.highlight pre.has-lang-label,div.highlight pre.has-lang-label{padding-top:2rem}.highlight pre,div.highlight pre{scrollbar-width:thin;scrollbar-color:var(--border-color) rgba(0,0,0,0)}.highlight pre::-webkit-scrollbar,div.highlight pre::-webkit-scrollbar{height:4px}.highlight pre::-webkit-scrollbar-track,div.highlight pre::-webkit-scrollbar-track{background:rgba(0,0,0,0)}.highlight pre::-webkit-scrollbar-thumb,div.highlight pre::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}.highlight code,div.highlight code{font-family:"JetBrains Mono","Fira Code","Consolas",monospace;font-size:inherit;background:none;border:none;padding:0;color:var(--syntax-text);border-radius:0}.code-copy-btn{position:absolute;top:.75rem;right:.75rem;display:flex;align-items:center;gap:.25rem;padding:3px .75rem;font-size:.72rem;font-family:"JetBrains Mono","Fira Code","Consolas",monospace;font-weight:500;color:var(--text-muted);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:5px;cursor:pointer;opacity:0;transition:opacity .15s ease,color .15s ease,background .15s ease,border-color .15s ease;z-index:10;line-height:1.6}.code-copy-btn:hover{color:var(--text-primary);border-color:var(--text-muted);background:var(--bg-card)}.code-copy-btn.is-copied{color:var(--accent-green);border-color:var(--accent-green);background:rgba(63,185,80,.08);opacity:1 !important}.highlight:hover .code-copy-btn,div.highlight:hover .code-copy-btn{opacity:1}.highlight .hll{background-color:rgba(255,255,200,.15)}.highlight .c,.highlight .cd,.highlight .cm,.highlight .cp,.highlight .c1,.highlight .cs{color:var(--syntax-comment);font-style:italic}.highlight .err{color:#e55}.highlight .k,.highlight .kc,.highlight .kd,.highlight .kn,.highlight .kp,.highlight .kr,.highlight .kt{color:var(--syntax-keyword);font-weight:500}.highlight .m,.highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo{color:var(--syntax-number)}.highlight .s,.highlight .sb,.highlight .sc,.highlight .sd,.highlight .s2,.highlight .se,.highlight .sh,.highlight .si,.highlight .sx,.highlight .sr,.highlight .s1,.highlight .ss{color:var(--syntax-string)}.highlight .na{color:var(--syntax-variable)}.highlight .nb{color:var(--syntax-function)}.highlight .nc{color:var(--syntax-class);font-weight:600}.highlight .no{color:var(--syntax-number)}.highlight .nd{color:var(--syntax-keyword)}.highlight .ni{color:var(--syntax-variable)}.highlight .ne{color:var(--syntax-class)}.highlight .nf{color:var(--syntax-function)}.highlight .nl{color:var(--syntax-variable)}.highlight .nn{color:var(--syntax-class)}.highlight .nt{color:var(--syntax-keyword)}.highlight .nv{color:var(--syntax-variable)}.highlight .o,.highlight .ow{color:var(--syntax-operator)}.highlight .p{color:var(--syntax-text)}.highlight .gd{color:#e55}.highlight .ge{font-style:italic}.highlight .gi{color:var(--accent-green)}.highlight .gp{color:var(--text-muted);font-weight:500}.highlight .gs{font-weight:700}.highlight .gt{color:#e55}.post-content pre code{background:none;border:none;padding:0;font-size:inherit;color:inherit;border-radius:0}html{color-scheme:light dark}body,.site-header,.mobile-nav,.post-card,.post-tag,.post-nav-link,.search-results,.search-result-item,.highlight,div.highlight,blockquote,table th,table tr,.toc-link,.tag-cloud-item,.nav-dropdown,.footer-link{transition:color .3s ease,background-color .3s ease,border-color .3s ease}[data-theme=dark]{color-scheme:dark;scrollbar-color:#2c3040 rgba(0,0,0,0)}[data-theme=dark] ::selection{background:rgba(63,185,80,.25);color:#e2e4e9}[data-theme=light] ::selection{background:rgba(42,157,92,.2);color:#1c1f23}[data-theme=dark] img:not([src*=".svg"]){opacity:.92;transition:opacity .15s ease}[data-theme=dark] img:not([src*=".svg"]):hover{opacity:1}[data-theme=dark] hr{border-color:var(--border-subtle)}[data-theme=dark] .highlight,[data-theme=dark] div.highlight{border-color:var(--border-color)}:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:4px}.site-footer{border-top:1px solid var(--border-color);padding:1.5rem 0;margin-top:4rem;transition:color .3s ease,background-color .3s ease,border-color .3s ease}.footer-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;max-width:1200px;margin:0 auto;padding:0 1.5rem}@media(max-width: 640px){.footer-inner{flex-direction:column;align-items:flex-start;padding:0 1rem;gap:.75rem}}.footer-left{display:flex;align-items:center;gap:.5rem;font-size:.85rem}.footer-brand{font-weight:600;font-family:"JetBrains Mono","Fira Code","Consolas",monospace;color:var(--text-primary)}.footer-sep{color:var(--border-color)}.footer-tagline{color:var(--text-muted)}.footer-nav{display:flex;align-items:center;gap:.25rem;flex-wrap:wrap}.footer-link{font-size:.85rem;color:var(--text-muted);text-decoration:none;padding:.25rem .5rem;border-radius:4px;transition:color .15s ease,background .15s ease}.footer-link:hover{color:var(--text-primary);background:var(--bg-secondary);text-decoration:none}.footer-right{font-size:.8rem;color:var(--text-muted);font-family:"JetBrains Mono","Fira Code","Consolas",monospace}.search-page{max-width:720px;margin:0 auto;padding:0 1.5rem 4rem}@media(max-width: 640px){.search-page{padding:0 1rem 2.5rem}}.search-page-bar{display:flex;align-items:center;gap:.75rem;margin-bottom:2rem}.search-page-bar .search-input-wrapper{flex:1}.search-page-bar .search-input{width:100%}.search-page-bar .search-input:focus{width:100%}.search-page-results .search-page-result{padding:1.5rem 0;border-bottom:1px solid var(--border-subtle)}.search-page-results .search-page-result:last-child{border-bottom:none}.search-page-results .search-page-result h3{font-size:1.1rem;margin:0 0 .5rem}.search-page-results .search-page-result h3 a{color:var(--text-primary);text-decoration:none}.search-page-results .search-page-result h3 a:hover{color:var(--accent-green)}.search-page-results .search-page-result p{font-size:.9rem;color:var(--text-secondary);margin:0 0 .5rem;line-height:1.6}.search-page-results .search-page-result .result-meta{font-size:.8rem;color:var(--text-muted);font-family:"JetBrains Mono","Fira Code","Consolas",monospace}.search-page-results .search-page-result mark{background:rgba(63,185,80,.2);color:inherit;border-radius:2px;padding:0 2px}.search-page-results .search-page-empty{padding:3rem 0;text-align:center;color:var(--text-muted)}.search-page-results .search-page-empty p:last-child{margin-bottom:0}.search-page-results .search-page-count{font-size:.85rem;color:var(--text-muted);font-family:"JetBrains Mono","Fira Code","Consolas",monospace;margin-bottom:1.5rem}.manuals-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));gap:1.5rem;margin-top:1.5rem}.manual-card{display:flex;flex-direction:column;padding:1.5rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.manual-card:hover{border-color:var(--accent-green);box-shadow:var(--shadow-md);transform:translateY(-2px)}.manual-icon{width:40px;height:40px;margin-bottom:1rem;color:var(--accent-green)}.manual-title{font-size:1rem;font-weight:700;color:var(--text-primary);margin:0 0 .5rem}.manual-description{font-size:.875rem;color:var(--text-secondary);line-height:1.6;margin:0 0 1rem;flex:1}.manual-meta{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.manual-size{font-size:.75rem;font-family:"JetBrains Mono","Fira Code","Consolas",monospace;color:var(--text-muted)}.manual-download{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.85rem;font-weight:600;color:var(--accent-green);border:1.5px solid var(--accent-green);border-radius:6px;text-decoration:none;transition:color .15s ease,background .15s ease;width:100%;justify-content:center}.manual-download:hover{color:#fff;background:var(--accent-green);text-decoration:none}.manuals-filter{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem;flex-wrap:wrap}.manuals-filter-label{font-size:.85rem;color:var(--text-muted);font-weight:500}.manuals-filter-input{flex:1;min-width:200px;max-width:360px;padding:.5rem 1rem;font-size:.9rem;font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text-primary);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.manuals-filter-input::placeholder{color:var(--text-muted)}.manuals-filter-input:focus{border-color:var(--accent-green);box-shadow:var(--focus-ring)}.resources-section{margin-bottom:2.5rem}.resources-section:last-child{margin-bottom:0}.resources-section-title{font-size:.75rem;font-weight:700;font-family:"JetBrains Mono","Fira Code","Consolas",monospace;color:var(--text-muted);text-transform:uppercase;letter-spacing:.12em;margin:0 0 1.25rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-subtle)}.resource-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1rem}.resource-item{display:flex;flex-direction:column;gap:.25rem;padding:1rem 1.25rem;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;transition:border-color .15s ease}.resource-item:hover{border-color:var(--border-color)}.resource-link{font-size:.95rem;font-weight:600;color:var(--accent-green);text-decoration:none}.resource-link:hover{text-decoration:underline}.resource-desc{font-size:.875rem;color:var(--text-secondary);margin:0;line-height:1.5}.resource-url{font-size:.75rem;font-family:"JetBrains Mono","Fira Code","Consolas",monospace;color:var(--text-muted)}.page-404{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:4rem 1.5rem;min-height:60vh}.page-404-code{font-size:6rem;font-family:"JetBrains Mono","Fira Code","Consolas",monospace;font-weight:700;color:var(--accent-green);line-height:1;margin-bottom:1rem;opacity:.3}.page-404-title{font-size:1.5rem;font-weight:700;margin:0 0 .75rem}.page-404-desc{color:var(--text-secondary);margin-bottom:2rem;max-width:400px}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:.9rem;font-weight:600;border-radius:8px;text-decoration:none;transition:.2s ease;cursor:pointer;border:none}.btn--primary{color:#fff;background:var(--accent-green)}.btn--primary:hover{background:var(--accent-green-dim);color:#fff;text-decoration:none}.btn--secondary{color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border-color)}.btn--secondary:hover{color:var(--text-primary);background:var(--bg-card);text-decoration:none}.hero-page{display:flex;flex-direction:column;min-height:calc(100vh - 64px)}.hero{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center;width:100%;max-width:1200px;margin:0 auto;padding:3rem 2.5rem}@media(max-width: 1024px){.hero{grid-template-columns:1fr;padding:2rem 1.5rem;gap:2rem;text-align:center}}@media(max-width: 640px){.hero{padding:1.5rem 1rem;gap:1.5rem}}.hero-text{display:flex;flex-direction:column;align-items:flex-start;gap:2rem}@media(max-width: 1024px){.hero-text{align-items:center}}.hero-headline{font-size:clamp(1.6rem,3.2vw,2.6rem);font-weight:800;line-height:1.2;letter-spacing:-0.03em;color:var(--text-primary);margin:0}.hero-cta{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 2rem;font-size:.95rem;font-weight:600;color:var(--accent-green);border:1.5px solid var(--accent-green);border-radius:8px;text-decoration:none;transition:color .15s ease,background .15s ease}.hero-cta:hover{color:#fff;background:var(--accent-green);text-decoration:none}.hero-terminal-wrap{width:100%}.terminal-window{width:100%;background:#0d1117;border-radius:8px;box-shadow:0 0 0 1px hsla(0,0%,100%,.07),0 24px 64px rgba(0,0,0,.55),0 8px 24px rgba(0,0,0,.35);overflow:hidden;font-family:"JetBrains Mono","Fira Code","Consolas",monospace}.terminal-titlebar{display:flex;align-items:stretch;justify-content:space-between;background:#1c1f26;border-bottom:1px solid hsla(0,0%,100%,.06);user-select:none;height:34px}.terminal-ps-tab{display:flex;align-items:center;gap:.5rem;padding:0 1rem;border-bottom:2px solid #569cd6}.terminal-ps-badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;background:#012456;border-radius:3px;font-size:.6rem;font-weight:700;color:#fff;letter-spacing:-0.03em;line-height:1;flex-shrink:0}.terminal-title{font-size:.72rem;color:hsla(0,0%,100%,.65);letter-spacing:.01em;white-space:nowrap}.terminal-winctrl{display:flex;align-items:stretch;margin-left:auto}.wc{display:flex;align-items:center;justify-content:center;width:42px;font-size:.7rem;color:hsla(0,0%,100%,.45);cursor:default;transition:background .15s ease,color .15s ease}.wc--min:hover,.wc--max:hover{background:hsla(0,0%,100%,.1);color:hsla(0,0%,100%,.9)}.wc--close:hover{background:#e81123;color:#fff}.terminal-body{padding:1.25rem 1.5rem 1.5rem;min-height:160px;font-size:.875rem;line-height:1.7;color:#cdd9e5}@media(max-width: 640px){.terminal-body{padding:1rem;font-size:.8rem}}.tl{display:block;min-height:1.7em;white-space:pre-wrap;word-break:break-word}.tc{display:flex;align-items:baseline;flex-wrap:nowrap}.to{color:rgba(205,217,229,.72)}.tp-ps{color:#569cd6;font-weight:600;flex-shrink:0}.tp-path{color:#e6c07b;flex-shrink:0}.tp-gt{color:rgba(205,217,229,.9);flex-shrink:0;margin-right:2px}.tk{color:#cdd9e5;animation:blink 1.1s step-start infinite}@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}.hero-slogans{display:flex;flex-direction:column;align-items:center;text-align:center;gap:2.5rem;padding:4rem 2.5rem;background:var(--bg-secondary);border-top:1px solid var(--border-subtle);transition:background color .3s ease,background-color .3s ease,border-color .3s ease,border-color color .3s ease,background-color .3s ease,border-color .3s ease}@media(max-width: 640px){.hero-slogans{padding:2.5rem 1rem;gap:2rem}}.hero-slogan{font-style:normal;line-height:1.2;margin:0;width:100%}.hero-slogan--1{font-size:clamp(1.6rem,4vw,3rem);font-weight:700;color:var(--text-primary);letter-spacing:-0.025em}.hero-slogan--2{font-size:clamp(1.8rem,4.5vw,3.5rem);font-weight:800;color:var(--text-primary);letter-spacing:-0.03em}.slogan-sub{display:block;margin-top:1rem;font-size:clamp(.95rem,2vw,1.15rem);font-weight:400;color:var(--text-secondary);letter-spacing:0;line-height:1.6}.slogan-red{color:#e04040;font-style:normal}.slogan-blue{color:#1d6fe8;font-style:normal}[data-theme=dark] .slogan-red{color:#ff6b6b}[data-theme=dark] .slogan-blue{color:#60a5fa}.slogan-image{width:615px;height:615px;object-fit:contain;border:none;box-shadow:none;border-radius:0}@media(max-width: 640px){.slogan-image{width:130px;height:130px}}.slogan-divider{width:60px;border:none;border-top:2px solid var(--border-color);margin:0}.hero-social{display:flex;flex-direction:column;align-items:center;gap:1.25rem;padding:2.5rem 1.5rem;border-top:1px solid var(--border-subtle);transition:border-color color .3s ease,background-color .3s ease,border-color .3s ease}.hero-social-label{font-size:.7rem;font-weight:600;font-family:"JetBrains Mono","Fira Code","Consolas",monospace;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);margin:0}.hero-social-links{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;justify-content:center}.social-link{display:flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:500;color:var(--text-muted);text-decoration:none;transition:color .15s ease}.social-link svg{width:20px;height:20px;flex-shrink:0;transition:color .15s ease}.social-link span{font-family:"JetBrains Mono","Fira Code","Consolas",monospace;font-size:.8rem}.social-link--x:hover{color:#e2e8f0}.social-link--github:hover{color:var(--text-primary)}.social-link--linkedin:hover{color:#0a66c2}@media(max-width: 640px){.social-link span{display:none}}[data-theme=light] .social-link--x:hover{color:#0f172a}@media print{@page{margin:2cm}#reading-progress-bar,.site-header,.site-footer,.toc-mobile,.toc-sidebar,.post-nav,.post-tags-footer,.related-posts,.post-social,.code-copy-btn,.series-nav{display:none !important}*,*::before,*::after{background:rgba(0,0,0,0) !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}body{font-size:12pt;line-height:1.6}.site-main{padding:0 !important;margin:0 !important}.post{max-width:100% !important}.post-header,.post-header-inner{max-width:100% !important;padding:0 0 .5cm !important;border-bottom:1pt solid #aaa;margin-bottom:.5cm}.post-body{margin:0 !important}.post-content-wrapper{display:block !important}#post-content{max-width:100% !important;padding:0 !important}.post-title{font-size:22pt !important;line-height:1.2 !important}h2{font-size:16pt !important}h3{font-size:13pt !important}h4{font-size:11pt !important}h2,h3,h4{page-break-after:avoid}#post-content a[href]:not([href^="#"])::after{content:" (" attr(href) ")";font-size:.8em;color:#555 !important}pre,code{border:1pt solid #ccc !important;white-space:pre-wrap !important;word-break:break-word !important}pre{padding:.4cm !important;page-break-inside:avoid}[data-lang]::before{content:none !important}img{max-width:100% !important;page-break-inside:avoid}blockquote{page-break-inside:avoid;border-left:3pt solid #aaa !important}p,li{orphans:3;widows:3}}.hp-eyebrow,.manpage-eyebrow span:first-child{font-size:15px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);display:inline-flex;align-items:center;gap:10px}.hp-eyebrow::before{content:"";width:18px;height:1px;background:var(--border-color)}.hp-red{color:#c0303a}.hp-blue{color:var(--accent-blue)}[data-theme=dark] .hp-red{color:#e5484d}.home-v2{font-family:"JetBrains Mono","Fira Code",ui-monospace,monospace;background:var(--bg-primary);background-image:radial-gradient(circle, rgba(0, 0, 0, 0.05) 1px, transparent 1px);background-size:16px 16px}[data-theme=dark] .home-v2{background-image:radial-gradient(circle, rgba(255, 255, 255, 0.045) 1px, transparent 1px)}.hp-hero{padding:40px 32px 24px;max-width:1100px;margin:0 auto}.hp-hero-headline{font-family:inherit;font-size:clamp(1.4rem,3vw,2rem);font-weight:700;letter-spacing:-0.02em;color:var(--text-primary);margin:0 0 48px;line-height:1.2}.hp-terminal{border:1px solid var(--border-color);background:var(--bg-card);box-shadow:var(--shadow-lg)}.hp-titlebar{display:flex;align-items:stretch;justify-content:space-between;border-bottom:1px solid var(--border-color);background:var(--bg-secondary);height:32px}.hp-tab{display:flex;align-items:center;gap:8px;padding:0 14px;border-right:1px solid var(--border-color);font-size:11px;color:var(--text-secondary);background:var(--bg-card)}.hp-ps-badge{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:9px;font-weight:700;background:#012456;color:#fff}.hp-winctrl{display:flex}.hp-wc{width:44px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:11px;cursor:default}.hp-wc:hover{background:var(--bg-secondary)}.hp-wc--close:hover{background:#c0303a;color:#fff}.hp-body{padding:24px 28px 28px;font-size:14px;line-height:1.7;min-height:360px;color:var(--text-primary)}.hp-line{white-space:pre-wrap}.hp-line.cmd{display:flex;flex-wrap:wrap}.hp-prompt{color:#2a9d5c}[data-theme=dark] .hp-prompt{color:#3fb950}.hp-path{color:var(--accent-blue)}.hp-gt{color:var(--text-secondary);margin:0 6px 0 4px}.hp-out{color:var(--text-primary);white-space:pre-wrap}.hp-out .hp-k{color:var(--accent-blue)}.hp-out .hp-s{color:#2a9d5c}.hp-out .hp-n{color:#d4a04a}.hp-out .hp-c{color:var(--text-muted)}.hp-out .hp-r{color:#c0303a}.hp-out .hp-m{color:#8b3eaa}[data-theme=dark] .hp-out .hp-s{color:#3fb950}[data-theme=dark] .hp-out .hp-r{color:#e5484d}[data-theme=dark] .hp-out .hp-m{color:#c678dd}.hp-cursor{display:inline-block;width:8px;height:16px;background:var(--text-primary);vertical-align:text-bottom;margin-left:2px;animation:hp-blink 1.05s steps(1) infinite}@keyframes hp-blink{50%{opacity:0}}.hp-why{padding:56px 32px 24px;max-width:1100px;margin:0 auto}.hp-why-headline{font-size:17px;line-height:1.7;font-weight:400;letter-spacing:0;font-style:italic;text-align:justify;margin:16px 0 28px;max-width:100%;color:var(--text-secondary)}.hp-why-grid{display:grid;grid-template-columns:repeat(3, 1fr);border:1px solid var(--border-color);border-right:0;border-bottom:0}.hp-cred{border-right:1px solid var(--border-color);border-bottom:1px solid var(--border-color);padding:24px;display:flex;flex-direction:column;gap:12px;background:var(--bg-card)}.hp-cred-key{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);display:flex;align-items:center;gap:8px}.hp-cred-key::before{content:"0x";color:#c0303a}[data-theme=dark] .hp-cred-key::before{color:#e5484d}.hp-cred-val{font-size:18px;color:var(--text-primary);line-height:1.3}.hp-cred-det{font-size:12px;color:var(--text-secondary);line-height:1.6;margin:0}.hp-cred-det a{color:inherit;text-decoration:underline;text-decoration-color:var(--border-color)}@media(max-width: 900px){.hp-why-grid{grid-template-columns:repeat(2, 1fr)}}@media(max-width: 600px){.hp-why-grid{grid-template-columns:1fr}}.hp-slogans{border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);padding:56px 32px;margin:48px 0 0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:40px;max-width:1100px;margin-left:auto;margin-right:auto}.hp-slogan{font-size:22px;line-height:1.4;letter-spacing:-0.005em;color:var(--text-primary)}.hp-slogan--right{text-align:right}.hp-slogan-sub{color:var(--text-muted);font-size:13px}.hp-slogan em{font-style:normal}.hp-slogan-mid{width:80px;height:80px;border:1px solid var(--border-color);background:var(--bg-card);position:relative}.hp-slogan-mid::before,.hp-slogan-mid::after{content:"";position:absolute;inset:0}.hp-slogan-mid::before{background:#c0303a;clip-path:polygon(0 0, 100% 0, 0 100%);opacity:.85}.hp-slogan-mid::after{background:var(--accent-blue);clip-path:polygon(100% 100%, 100% 0, 0 100%);opacity:.85}.hp-recent{padding:56px 32px;max-width:1100px;margin:0 auto}.hp-recent-list{margin-top:24px}.hp-post-row{display:grid;grid-template-columns:110px 1fr auto;gap:24px;align-items:baseline;padding:20px 0;border-bottom:1px solid var(--border-color);text-decoration:none;transition:120ms ease;color:inherit}.hp-post-row:hover{padding-left:8px;border-bottom-color:var(--text-muted)}.hp-post-row:hover .hp-post-title{color:#c0303a}[data-theme=dark] .hp-post-row:hover .hp-post-title{color:#e5484d}.hp-post-date{font-size:12px;color:var(--text-muted)}.hp-post-title{font-size:18px;color:var(--text-primary);transition:120ms ease}.hp-post-tags{display:flex;gap:6px;font-size:11px;color:var(--text-muted);flex-wrap:wrap;justify-content:flex-end}.hp-post-tags span{border:1px solid var(--border-color);padding:2px 7px}.hp-social{padding:40px 32px 64px;max-width:1100px;margin:0 auto;display:flex;align-items:center;gap:20px;font-size:12px}.hp-social-label{color:var(--text-muted);letter-spacing:.12em;text-transform:uppercase;margin:0}.hp-social-links{display:flex;gap:16px}.hp-social-link{color:var(--text-secondary);text-decoration:none}.hp-social-link:hover{color:var(--text-primary)}.manpage{font-family:"JetBrains Mono","Fira Code",ui-monospace,monospace;font-size:14px;background:var(--bg-primary);background-image:radial-gradient(circle, rgba(0, 0, 0, 0.05) 1px, transparent 1px);background-size:16px 16px;margin:0;padding:0}[data-theme=dark] .manpage{background-image:radial-gradient(circle, rgba(255, 255, 255, 0.045) 1px, transparent 1px)}.manpage-eyebrow{display:flex;justify-content:space-between;align-items:baseline;padding:36px 32px 16px;border-bottom:1px solid var(--border-color);margin-bottom:24px;max-width:1100px;margin-left:auto;margin-right:auto}.manpage-stamp{font-size:11px;color:var(--text-muted);letter-spacing:.1em}.manpage-grid{display:grid;grid-template-columns:200px 1fr;gap:48px;padding:12px 32px 64px;max-width:1100px;margin:0 auto}@media(max-width: 800px){.manpage-grid{grid-template-columns:1fr;gap:24px}}.manpage-side{font-size:11px;color:var(--text-muted);position:sticky;top:24px;align-self:start}.manpage-side h4{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--text-secondary);margin:0 0 12px;font-weight:600}.manpage-side ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.manpage-side li::before{content:"·  ";color:var(--border-color)}.manpage-side li a{color:var(--text-muted);text-decoration:none;transition:color 120ms ease}.manpage-side li a:hover{color:var(--text-primary)}.manpage-meta{margin:28px 0 0;padding-top:16px;border-top:1px dashed var(--border-color);display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:11px}.manpage-meta dt{color:var(--text-muted)}.manpage-meta dd{color:var(--text-primary);margin:0;font-weight:500}.manpage-body{display:flex;flex-direction:column;gap:36px}.manpage-section h2{font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--text-primary);margin:0 0 14px;padding-bottom:8px;border-bottom:1px solid var(--border-color);display:flex;align-items:baseline;gap:12px;font-weight:600}.manpage-section h2 .num{color:#c0303a;font-weight:400}[data-theme=dark] .manpage-section h2 .num{color:#e5484d}.manpage-section p{font-size:14px;line-height:1.75;color:var(--text-primary);max-width:64ch;margin:0 0 12px}.manpage-section p.lead{font-size:16px}.manpage-deflist{display:grid;grid-template-columns:200px 1fr;gap:14px 24px;font-size:13px;margin:0}.manpage-deflist dt{color:var(--text-muted);letter-spacing:.06em;margin:0}.manpage-deflist dd{color:var(--text-primary);margin:0;line-height:1.6}.manpage-deflist dd .meta{color:var(--text-muted);font-size:12px}@media(max-width: 700px){.manpage-deflist{grid-template-columns:1fr;gap:4px 0}.manpage-deflist dt{margin-top:12px}}.manpage-talks{display:flex;flex-direction:column}.manpage-talkrow{display:grid;grid-template-columns:90px 1fr 120px;gap:24px;padding:12px 0;border-bottom:1px dashed var(--border-color);font-size:13px}.manpage-talkrow:last-child{border-bottom:0}.manpage-talkrow .yr{color:var(--text-muted)}.manpage-talkrow .ven{color:var(--text-muted);text-align:right}/*# sourceMappingURL=main.css.map */