:root{--bg:#ffffff;--text:#0f172a;--muted:#64748b;--border:#e5e7eb;--accent:#2563eb;--font:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;--max-width:700px;--font-size:17px;--heading-font:inherit;--code-font:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--line-height:1.7;--heading-weight:700;--border-radius:6px;--container-padding:40px 20px;--sidebar-width:260px;--sidebar-gap:32px;--nav-gap:18px;--header-size:42px;--tag-radius:12px;--tag-bg:color-mix(in srgb, var(--text) 7%, var(--bg));--tag-text:var(--text);--tag-hover-bg:color-mix(in srgb, var(--accent) 20%, var(--tag-bg));--tag-hover-text:var(--accent);--link-decoration:underline;--card-bg:var(--bg);--card-border:var(--border);--card-radius:8px;--card-padding:20px;--accent-hover:var(--accent);--header-border-width:1px;--footer-border-width:1px;--content-width:var(--max-width);--card-hover-shadow:0 2px 12px color-mix(in srgb, var(--text) 6%, transparent);--card-hover-lift:translateY(-1px);}[data-theme="dark"]{--bg:#0b0f14;--text:#e5e7eb;--muted:#94a3b8;--border:#1f2937;--accent:#60a5fa;}*{margin:0px;padding:0px;box-sizing:border-box;}body{background:var(--bg);color:var(--text);font-family:var(--font);line-height:var(--line-height);font-size:var(--font-size);overflow-x:hidden;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh;display:flex;flex-direction:column;}body,header,footer,.post-card,.tag,.theme-toggle,.sidebar{transition:background-color 0.25s, color 0.25s, border-color 0.25s;}::selection{background:var(--accent);color:var(--bg);}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}a{transition:color 0.15s;}.container{max-width:var(--content-width);margin-inline:auto;padding:var(--container-padding);width:100%;}.has-sidebar .container{max-width:960px;}header{border-bottom:var(--header-border-width) solid var(--border);}.header-bar{display:flex;justify-content:space-between;align-items:center;}.header-centered .header-bar{flex-direction:column;text-align:center;gap:8px;}.header-minimal header{border-bottom:none;}.header-left{display:flex;flex-direction:column;}.header-centered .header-left{align-items:center;}header h1{font-size:var(--header-size);font-weight:var(--heading-weight);font-family:var(--heading-font);}header h1 a{text-decoration:none;color:inherit;}.site-description{color:var(--muted);font-size:15px;margin-top:4px;}nav{margin-top:10px;}nav ul{list-style:none;display:flex;gap:var(--nav-gap);}.header-centered nav ul{justify-content:center;}nav a{text-decoration:none;color:var(--muted);font-weight:500;}nav a:hover{color:var(--accent-hover);}h2{margin-top:24px;margin-bottom:14px;font-size:20px;font-family:var(--heading-font);font-weight:var(--heading-weight);}html{scroll-behavior:smooth;}.post-listing{display:block;padding:16px 0px;border-bottom:1px solid var(--border);transition:background 0.15s;}.post-listing:hover{background:color-mix(in srgb, var(--text) 2%, var(--bg));}.post-listing > a{color:var(--text);text-decoration:none;font-weight:600;font-size:1.05em;display:block;line-height:1.35;}.post-listing > a:hover{color:var(--accent-hover);}.post-listing-meta{display:flex;gap:4px;margin-top:4px;font-size:13px;color:var(--muted);}.post-listing .reading-time::before{content:'\00B7';margin-right:4px;}.post-listing .post-tags{margin-top:6px;}.post-listing .tag{color:var(--tag-text);text-decoration:none;}.post-listing .tag:hover{color:var(--tag-hover-text);}.post-listing .excerpt{margin-top:4px;}.post-cards{display:grid;grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));gap:20px;}.post-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--card-radius);padding:var(--card-padding);transition:border-color 0.2s, box-shadow 0.2s, transform 0.2s;}.post-card:hover{border-color:var(--accent);box-shadow:var(--card-hover-shadow);transform:var(--card-hover-lift);}.post-card a{color:var(--text);text-decoration:none;font-weight:600;font-size:1.05em;}.post-card a:hover{color:var(--accent-hover);}.post-card .date{display:block;margin-top:8px;font-size:13px;color:var(--muted);}.post-card .reading-time{display:block;font-size:13px;color:var(--muted);}.post-card .post-tags{margin-top:10px;}.post-card .tag{color:var(--tag-text);text-decoration:none;}.post-card .tag:hover{color:var(--tag-hover-text);}.post-full{padding:0px;}.post-full h1{font-size:1.8em;margin-bottom:8px;font-family:var(--heading-font);font-weight:var(--heading-weight);}.post-meta{margin-bottom:12px;font-size:14px;color:var(--muted);}.post-meta .reading-time::before{content:'\00B7 ';}.post-full .post-tags{margin-bottom:20px;}.post-content,.page-content{margin-top:20px;line-height:1.8;}.post-content h1,.page-content h1{font-size:1.8em;margin-top:36px;margin-bottom:12px;font-weight:var(--heading-weight);font-family:var(--heading-font);}.post-content h2,.page-content h2{font-size:1.5em;margin-top:28px;margin-bottom:10px;font-family:var(--heading-font);}.post-content h3,.page-content h3{font-size:1.25em;margin-top:22px;margin-bottom:8px;font-family:var(--heading-font);}.post-content h4,.page-content h4{font-size:1.1em;margin-top:18px;margin-bottom:6px;}.post-content h5,.page-content h5{font-size:1em;margin-top:16px;margin-bottom:6px;}.post-content h6,.page-content h6{font-size:0.9em;margin-top:14px;margin-bottom:4px;color:var(--muted);}.post-content h1,.post-content h2,.post-content h3,.post-content h4,.post-content h5,.post-content h6,.page-content h1,.page-content h2,.page-content h3,.page-content h4,.page-content h5,.page-content h6{position:relative;scroll-margin-top:24px;}.heading-anchor{opacity:0;text-decoration:none;padding-right:0.4em;margin-left:-1.2em;font-weight:400;color:var(--muted);transition:opacity 0.15s;}h1:hover>.heading-anchor,h2:hover>.heading-anchor,h3:hover>.heading-anchor,h4:hover>.heading-anchor,h5:hover>.heading-anchor,h6:hover>.heading-anchor{opacity:0.5;}.heading-anchor:hover{opacity:1 !important;color:var(--accent);}.post-content p,.page-content p{margin-bottom:14px;}.post-content ul,.page-content ul{margin-left:24px;margin-bottom:14px;}.post-content ul ul,.post-content ul ol,.post-content ol ul,.post-content ol ol,.page-content ul ul,.page-content ul ol,.page-content ol ul,.page-content ol ol{margin-bottom:0px;}.post-content li,.page-content li{margin-bottom:2px;}.post-content ol,.page-content ol{margin-left:24px;margin-bottom:14px;}.post-content pre,.page-content pre{background:color-mix(in srgb, var(--text) 7%, var(--bg));color:var(--text);padding:14px;border-radius:var(--border-radius);overflow-x:auto;margin-bottom:14px;font-size:13px;line-height:1.5;}.post-content code,.page-content code{font-family:var(--code-font);}.post-content pre code,.page-content pre code{color:inherit;}.post-content :not(pre)>code,.page-content :not(pre)>code{background:color-mix(in srgb, var(--accent) 10%, var(--bg));color:var(--accent);padding:2px 6px;border-radius:calc(var(--border-radius) * 0.67);font-size:0.9em;}.post-content hr,.page-content hr{border:none;border-top:1px solid var(--border);margin:28px 0;}.post-content dl,.page-content dl{margin-bottom:14px;}.post-content dt,.page-content dt{font-weight:600;margin-top:10px;}.post-content dd,.page-content dd{margin-left:24px;margin-bottom:6px;}.post-content a,.page-content a{color:var(--accent);text-decoration:var(--link-decoration);}.post-content table,.page-content table{border-collapse:collapse;margin-bottom:14px;width:100%;}.post-content th,.page-content th{background:color-mix(in srgb, var(--text) 7%, var(--bg));font-weight:600;}.post-content th,.post-content td,.page-content th,.page-content td{border:1px solid var(--border);padding:8px 12px;text-align:left;}.post-content blockquote,.page-content blockquote{border-left:4px solid var(--accent);margin:0 0 14px 0;padding:8px 16px;color:var(--muted);}.post-content blockquote p,.page-content blockquote p{margin-bottom:4px;}.post-content img,.page-content img{max-width:100%;height:auto;border-radius:var(--border-radius);display:block;margin-bottom:14px;}.post-content del,.page-content del{color:var(--muted);}.post-content .footnotes{font-size:14px;color:var(--muted);}.post-content li:has(input[type="checkbox"]),.page-content li:has(input[type="checkbox"]){list-style:none;margin-left:-20px;}.post-content input[type="checkbox"]{margin-right:6px;}time{color:var(--muted);font-size:14px;}.date{color:var(--muted);font-size:14px;font-family:var(--code-font);font-variant-numeric:tabular-nums;}footer{margin-top:auto;padding-top:40px;padding-bottom:24px;border-top:var(--footer-border-width) solid var(--border);font-size:14px;color:var(--muted);}.footer-links{margin-top:8px;display:flex;gap:16px;}.footer-links a{color:var(--muted);text-decoration:none;}.footer-links a:hover{color:var(--accent-hover);}.post-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}.tag{display:inline-block;background:var(--tag-bg);color:var(--tag-text);padding:2px 10px;border-radius:var(--tag-radius);font-size:13px;text-decoration:none;font-weight:500;}.tag:hover{background:var(--tag-hover-bg);color:var(--tag-hover-text);}.with-sidebar{display:grid;grid-template-columns:1fr var(--sidebar-width);gap:var(--sidebar-gap);}.sidebar-left .with-sidebar{grid-template-columns:var(--sidebar-width) 1fr;}.sidebar-left .with-sidebar>aside{order:-1;}.with-sidebar>main{min-width:0;overflow-wrap:break-word;word-break:break-word;}.sidebar{font-size:14px;border-left:1px solid var(--border);padding-left:32px;padding-top:8px;}.sidebar-left .sidebar{border-left:none;border-right:1px solid var(--border);padding-left:0px;padding-right:32px;}.widget{margin-bottom:24px;}.widget h3{font-size:13px;font-weight:600;margin-bottom:10px;text-transform:uppercase;letter-spacing:0.8px;color:var(--muted);border-bottom:1px solid var(--border);padding-bottom:6px;}.widget ul{list-style:none;}.widget li{margin-bottom:8px;line-height:1.4;}.sidebar .post-tags{gap:5px;}.sidebar .tag{font-size:12px;padding:1px 7px;}.widget li a{color:var(--text);text-decoration:none;font-size:14px;}.widget li a:hover{color:var(--accent-hover);}.widget .date{display:block;font-size:12px;}.widget p{color:var(--muted);line-height:1.6;font-size:14px;}.widget p a{color:var(--accent);text-decoration:none;}.widget p a:hover{color:var(--accent-hover);text-decoration:underline;}.widget .post-tags{margin-top:0px;}.theme-toggle{cursor:pointer;border:1px solid var(--border);background:none;color:var(--text);padding:6px 12px;border-radius:var(--border-radius);font-size:14px;transition:background 0.2s ease;}.theme-toggle:hover{background:var(--border);}.reading-time{color:var(--muted);font-size:13px;}.excerpt{color:var(--muted);font-size:14px;line-height:1.5;margin-top:6px;margin-bottom:0px;}.post-card .excerpt{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}.post-nav{display:flex;justify-content:space-between;gap:20px;margin-top:48px;padding-top:20px;border-top:1px solid var(--border);}.post-nav a{color:var(--muted);text-decoration:none;font-size:14px;max-width:45%;line-height:1.4;transition:color 0.15s;}.post-nav a:hover{color:var(--accent);}.post-nav-next{text-align:right;margin-left:auto;}.related-posts{margin-top:32px;padding-top:20px;border-top:1px solid var(--border);}.related-posts h2{font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:0.5px;color:var(--muted);margin-top:0px;margin-bottom:12px;}.related-posts ul{list-style:none;}.related-posts li{margin-bottom:8px;line-height:1.4;}.related-posts li a{color:var(--text);text-decoration:none;font-weight:500;}.related-posts li a:hover{color:var(--accent);}.related-posts .date{font-size:12px;margin-left:8px;}.series-nav{margin:24px 0;padding:16px 20px;border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--border-radius);font-size:14px;background:color-mix(in srgb, var(--accent) 3%, var(--bg));}.series-label{font-size:13px;color:var(--muted);cursor:pointer;user-select:none;}.series-nav[open] .series-label{margin-bottom:10px;}.series-list{margin-left:20px;margin-bottom:0px;}.series-list li{margin-bottom:4px;}.series-list a{color:var(--accent);text-decoration:none;}.series-list a:hover{text-decoration:underline;}.series-current{font-weight:600;color:var(--text);}.archive-year{margin-top:24px;}.series-card{margin-bottom:20px;padding:16px;border:1px solid var(--border);border-radius:var(--border-radius);}.series-card h3{margin-top:0px;margin-bottom:6px;font-size:18px;font-family:var(--heading-font);}.series-card h3 a{color:var(--text);text-decoration:none;}.series-card h3 a:hover{color:var(--accent);}.series-meta{font-size:13px;color:var(--muted);display:flex;gap:12px;}.series-latest{font-size:14px;margin-top:6px;color:var(--muted);}.series-count{color:var(--muted);font-size:12px;}nav.breadcrumb{font-size:0.85rem;color:var(--muted);margin-bottom:20px;}nav.breadcrumb ol{list-style:none;padding:0px;margin:0px;display:flex;flex-wrap:wrap;gap:4px;align-items:center;}nav.breadcrumb li+li::before{content:"\203A";margin-right:4px;color:var(--muted);}nav.breadcrumb a{color:var(--muted);text-decoration:none;}nav.breadcrumb a:hover{color:var(--accent);text-decoration:underline;}nav.breadcrumb li:last-child{color:var(--text);}.featured-posts{margin-bottom:32px;padding-bottom:24px;border-bottom:2px solid var(--accent);}.featured-posts h2{font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:0.8px;color:var(--accent);margin-top:0px;margin-bottom:16px;}.featured-posts .post-card{border-left:3px solid var(--accent);}.tag-cloud{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;}.tag-cloud .tag{transition:font-size 0.2s, color 0.15s;}.sidebar .tag-cloud{max-height:200px;overflow-y:auto;padding-right:4px;}.pagination{display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap;margin-top:32px;padding-top:20px;border-top:1px solid var(--border);}.page-numbers{display:flex;gap:4px;}.page-num{display:inline-flex;justify-content:center;align-items:center;min-width:36px;height:36px;border-radius:var(--border-radius);font-size:14px;text-decoration:none;color:var(--text);transition:background 0.15s, color 0.15s;}.page-num:hover{background:var(--tag-bg);}.page-num.current{background:var(--accent);color:var(--bg);font-weight:600;}.page-prev,.page-next{color:var(--muted);text-decoration:none;font-size:14px;transition:color 0.15s;}.page-prev:hover,.page-next:hover{color:var(--accent);}.page-info{color:var(--muted);font-size:12px;display:block;width:100%;text-align:center;margin-top:8px;}.search-box{margin-bottom:24px;}#searchInput{width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:var(--border-radius);background:var(--bg);color:var(--text);font-size:16px;font-family:var(--font);transition:border-color 0.2s;outline:none;}#searchInput:focus{border-color:var(--accent);}.search-empty{color:var(--muted);font-style:italic;}.toc{margin:16px 0 24px;padding:12px 16px;border:1px solid var(--border);border-radius:var(--border-radius);background:color-mix(in srgb, var(--text) 2%, var(--bg));}.toc-title{font-size:13px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:0.5px;cursor:pointer;user-select:none;}.toc[open] .toc-title{margin-bottom:8px;}.toc-list{list-style:none;padding-left:0px;margin:0px;}.toc-list li{margin-bottom:4px;line-height:1.4;}.toc-list a{color:var(--text);text-decoration:none;font-size:14px;}.toc-list a:hover{color:var(--accent);}.toc-h3{padding-left:16px;}.toc-h3 a{font-size:13px;color:var(--muted);}.toc-h3 a:hover{color:var(--accent);}.reading-progress-bar{position:fixed;top:0px;left:0px;width:100%;height:3px;z-index:9998;background:transparent;}.reading-progress-fill{height:100%;width:0%;background:var(--accent);transition:width 0.1s linear;}.back-to-top{position:fixed;bottom:24px;right:24px;width:40px;height:40px;border-radius:50%;background:var(--accent);color:var(--bg);display:flex;justify-content:center;align-items:center;text-decoration:none;font-size:18px;opacity:0;pointer-events:none;transition:opacity 0.25s, transform 0.25s;transform:translateY(10px);z-index:100;}.back-to-top.visible{opacity:0.8;pointer-events:auto;transform:translateY(0);}.back-to-top:hover{opacity:1;}.nav-search{font-size:18px;opacity:0.5;text-decoration:none;line-height:1;}.nav-search:hover{opacity:1;}.sidenote-toggle{cursor:pointer;color:var(--accent);}.sidenote-checkbox{display:none;}.sidenote{display:none;font-size:13px;line-height:1.5;color:var(--muted);vertical-align:baseline;}.code-block{position:relative;margin-bottom:14px;}.code-title{font-size:12px;font-weight:600;font-family:var(--code-font);color:var(--muted);padding:6px 14px;background:color-mix(in srgb, var(--text) 10%, var(--bg));border-radius:var(--border-radius) var(--border-radius) 0 0;border-bottom:1px solid var(--border);}.code-block pre{margin-bottom:0px;}.code-block .code-title+pre{border-radius:0 0 var(--border-radius) var(--border-radius);}.code-copy{position:absolute;top:6px;right:6px;padding:2px 10px;font-size:11px;background:color-mix(in srgb, var(--text) 10%, var(--bg));color:var(--muted);border:1px solid var(--border);border-radius:4px;cursor:pointer;opacity:0;transition:opacity 0.15s;font-family:var(--font);}.code-block:hover .code-copy{opacity:1;}.code-copy:hover{background:var(--accent);color:var(--bg);border-color:var(--accent);}.code-block:has(.code-title) .code-copy{top:calc(6px + 1em + 12px);}.cmd-palette-overlay{position:fixed;inset:0px;background:rgba(0,0,0,0.4);z-index:10000;display:flex;justify-content:center;padding-top:min(20vh, 150px);align-items:flex-start;opacity:0;pointer-events:none;transition:opacity 0.15s;}.cmd-palette-overlay.visible{opacity:1;pointer-events:auto;}.cmd-palette{width:min(540px, 90vw);max-height:400px;background:var(--bg);border:1px solid var(--border);border-radius:12px;box-shadow:0 16px 70px rgba(0,0,0,0.35);overflow:hidden;transform:translateY(-8px) scale(0.98);transition:transform 0.15s;}.cmd-palette-overlay.visible .cmd-palette{transform:translateY(0) scale(1);}.cmd-input{width:100%;padding:14px 18px;border:none;border-bottom:1px solid var(--border);background:transparent;color:var(--text);font-size:16px;outline:none;font-family:var(--font);}.cmd-results{max-height:320px;overflow-y:auto;padding:4px 0;}.cmd-item{display:block;padding:10px 18px;text-decoration:none;color:var(--text);transition:background 0.1s;}.cmd-item.active,.cmd-item:hover{background:color-mix(in srgb, var(--accent) 10%, var(--bg));}.cmd-title{display:block;font-weight:500;}.cmd-tags{display:block;font-size:12px;color:var(--muted);margin-top:2px;}.cmd-empty{padding:20px 18px;color:var(--muted);font-size:14px;}.img-zoom-overlay{position:fixed;inset:0px;background:rgba(0,0,0,0.85);z-index:10001;display:flex;justify-content:center;align-items:center;opacity:0;transition:opacity 0.2s;cursor:zoom-out;}.img-zoom-overlay.visible{opacity:1;}.img-zoom-full{max-width:92vw;max-height:92vh;object-fit:contain;border-radius:4px;}.staleness-notice{padding:10px 16px;margin-bottom:20px;font-size:13px;color:var(--muted);background:color-mix(in srgb, var(--accent) 6%, var(--bg));border-left:3px solid var(--accent);border-radius:0 var(--border-radius) var(--border-radius) 0;line-height:1.5;}.toc-list a.toc-active{color:var(--accent);font-weight:600;}.post-listing.kb-focus,.post-card.kb-focus{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--border-radius);}.reading-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 20px rgba(0,0,0,0.15);padding:10px 20px;font-size:14px;z-index:9999;opacity:0;transition:opacity 0.3s, transform 0.3s;pointer-events:none;}.reading-toast.visible{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0);}.reading-toast a{color:var(--accent);text-decoration:none;font-weight:600;margin-left:8px;}.reading-toast a:hover{text-decoration:underline;}.post-graph-section{margin-bottom:32px;}.post-graph-section h3{font-size:13px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px;}#post-graph-container{width:100%;height:260px;border-radius:var(--border-radius);border:1px solid var(--border);overflow:hidden;touch-action:none;position:relative;}#post-graph-container.expanded{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:9999;background:var(--bg);border-radius:0;border:0px solid transparent;}.post-graph{width:100%;height:100%;display:block;}.post-graph line{transition:stroke-opacity 0.12s, stroke-width 0.12s;}.post-graph-hint{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);font-size:12px;color:var(--muted);padding:4px 14px;border-radius:20px;background:color-mix(in srgb, var(--text) 8%, var(--bg));pointer-events:none;}.post-graph-tip{position:absolute;background:var(--bg);border:1px solid var(--border);border-radius:var(--border-radius);padding:6px 10px;font-size:13px;color:var(--text);pointer-events:none;z-index:10001;max-width:min(400px, 60vw);overflow:hidden;text-overflow:ellipsis;box-shadow:0 2px 8px color-mix(in srgb, var(--text) 10%, transparent);}.post-graph-tip strong{display:block;color:var(--accent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.post-graph-tip-conn{font-size:11px;color:var(--muted);display:block;margin-top:2px;}.post-graph-close{position:absolute;top:16px;right:16px;z-index:10002;width:36px;height:36px;border-radius:50%;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0px;line-height:1;}.callout{margin-top:16px;margin-bottom:16px;padding:16px;border-left:4px solid var(--accent);border-radius:var(--radius, 4px);background:var(--card-bg, var(--bg));}.callout-title{font-weight:700;margin-bottom:8px;font-size:14px;text-transform:uppercase;letter-spacing:0.5px;}.callout-content p:last-child{margin-bottom:0px;}.callout-note{border-left-color:#2563eb;background:rgba(37,99,235,0.06);}.callout-note .callout-title{color:#2563eb;}.callout-tip{border-left-color:#16a34a;background:rgba(22,163,74,0.06);}.callout-tip .callout-title{color:#16a34a;}.callout-warning{border-left-color:#d97706;background:rgba(217,119,6,0.06);}.callout-warning .callout-title{color:#d97706;}.callout-danger{border-left-color:#dc2626;background:rgba(220,38,38,0.06);}.callout-danger .callout-title{color:#dc2626;}.callout-info{border-left-color:#0891b2;background:rgba(8,145,178,0.06);}.callout-info .callout-title{color:#0891b2;}.doc-sidebar{position:sticky;top:80px;max-height:calc(100vh - 100px);overflow-y:auto;font-size:14px;padding:16px;}.doc-tree-list{list-style:none;padding:0px;margin:0px;}.doc-tree-list .doc-tree-list{padding-left:16px;}.doc-tree-item{margin-bottom:4px;}.doc-tree-item a{color:var(--muted);text-decoration:none;display:block;padding:4px 8px;border-radius:var(--radius, 4px);transition:color 0.15s, background 0.15s;}.doc-tree-item a:hover{color:var(--text);}.doc-tree-item a.active, .doc-tree-item.active > a{color:var(--accent);font-weight:600;background:rgba(37,99,235,0.08);}.doc-tree-section{display:block;font-weight:600;color:var(--text);padding:4px 8px;margin-top:8px;font-size:13px;text-transform:uppercase;letter-spacing:0.5px;}.doc-tree-branch > .doc-tree-list{display:none;}.doc-tree-branch.open > .doc-tree-list{display:block;}.doc-nav{display:flex;justify-content:space-between;gap:20px;margin-top:48px;padding-top:24px;border-top:1px solid var(--border);}.doc-nav a{color:var(--text);text-decoration:none;padding:16px;border:1px solid var(--border);border-radius:var(--radius, 4px);flex:1;transition:border-color 0.15s;}.doc-nav a:hover{border-color:var(--accent);}.doc-nav-prev{text-align:left;}.doc-nav-next{text-align:right;margin-left:auto;}.doc-nav-label{display:block;font-size:12px;color:var(--muted);margin-bottom:4px;}.doc-nav-title{font-weight:600;}.badge{display:inline-block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:0.5px;padding:2px 8px;border-radius:var(--radius, 4px);vertical-align:middle;margin-left:8px;}.badge-stable{color:#16a34a;background:rgba(22,163,74,0.1);}.badge-beta{color:#d97706;background:rgba(217,119,6,0.1);}.badge-deprecated{color:#dc2626;background:rgba(220,38,38,0.1);}.line-highlight{background:rgba(37,99,235,0.08);display:inline-block;width:100%;margin:0 -16px;padding:0 16px;}.doc-page .page-header{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:8px;}.doc-updated{font-size:13px;color:var(--muted);width:100%;margin-top:4px;}@media((min-width: 1100px)){.post-content,.page-content{position:relative;}.sidenote{display:block;position:absolute;right:-240px;width:200px;margin-top:-1.4em;padding-left:16px;border-left:2px solid var(--border);font-size:12px;}.sidenote-toggle{cursor:default;}}@media(max-width:1099px){.sidenote-checkbox:checked+.sidenote{display:block;padding:8px 12px;margin:8px 0;background:color-mix(in srgb, var(--accent) 5%, var(--bg));border-radius:var(--border-radius);border-left:3px solid var(--accent);}}@media(max-width:768px){:root{--container-padding:24px 16px;--font-size:15px;--header-size:36px;--line-height:1.65;}nav ul{flex-wrap:wrap;gap:10px 14px;}.with-sidebar{grid-template-columns:1fr;}.sidebar-left .with-sidebar{grid-template-columns:1fr;}.sidebar-left .with-sidebar>aside{order:initial;}.sidebar{border-left:none;border-top:1px solid var(--border);padding-left:0px;padding-top:24px;}.sidebar-left .sidebar{border-right:none;border-top:1px solid var(--border);padding-right:0px;padding-top:24px;}.has-sidebar .container{max-width:var(--content-width);}.post-full h1{font-size:1.5em;}.post-content h1,.page-content h1{font-size:1.5em;margin-top:28px;}.post-content h2,.page-content h2{font-size:1.3em;margin-top:22px;}.post-content h3,.page-content h3{font-size:1.15em;margin-top:18px;}.post-content pre,.page-content pre{padding:12px;font-size:13px;border-radius:0px;margin-left:-16px;margin-right:-16px;}.post-content table,.page-content table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;}.post-content,.page-content{font-size:14.5px;line-height:1.7;}.post-content blockquote,.page-content blockquote{margin-left:0px;margin-right:0px;padding:6px 12px;}.post-cards{grid-template-columns:1fr;gap:14px;}.footer-links{flex-wrap:wrap;gap:10px 16px;}}@media(max-width:480px){:root{--container-padding:20px 12px;--font-size:14.5px;--header-size:30px;}.post-content,.page-content{font-size:13.5px;}.post-full h1{font-size:1.35em;}.post-content pre,.page-content pre{margin-left:-12px;margin-right:-12px;font-size:12px;padding:10px;}.post-content th,.post-content td,.page-content th,.page-content td{padding:6px 8px;font-size:14px;}.tag{font-size:12px;padding:2px 8px;}}@media(print){body{font-size:12pt;color:#000;background:#fff;display:block;}header,footer,.theme-toggle,.sidebar,.post-nav,.breadcrumb,.related-posts,.post-tags{display:none;}.container{max-width:100%;padding:0px;}a{color:#000;text-decoration:underline;}.post-content pre,.page-content pre{border:1px solid #ccc;page-break-inside:avoid;}.post-content img,.page-content img{max-width:100%;page-break-inside:avoid;}.post-full h1{font-size:24pt;margin-bottom:8pt;}.post-meta{color:#666;margin-bottom:16pt;}}:root{--bg:#0d1117;--text:#e6edf3;--muted:#8b949e;--border:#30363d;--accent:#58a6ff;--font:-apple-system,BlinkMacSystemFont,'Segoe UI','Noto Sans',Helvetica,Arial,sans-serif;--font-size:16px;--max-width:840px;--code-font:'SFMono-Regular',Consolas,'Liberation Mono',Menlo,monospace;--line-height:1.6;--heading-weight:600;--header-size:24px;}[data-theme="dark"]{--bg:#0d1117;--text:#e6edf3;--muted:#8b949e;--border:#30363d;--accent:#58a6ff;}:root{--header-border-width:0;--footer-border-width:0;}.sidebar{border-left-width:0;}.sidebar-left .sidebar{border-right-width:0;}.post-card{border-width:0;}nav a{font-size:13px;letter-spacing:0.5px;text-transform:uppercase;}:root{--nav-gap:14px;}:root{--link-decoration:none;}:root{--card-hover-shadow:none;--card-hover-lift:none;}.post-card:hover{border-color:var(--card-border);}.sidebar{border-left:none;padding-left:0;}.sidebar-left .sidebar{border-right:none;padding-right:0;}*{scrollbar-width:thin;scrollbar-color:var(--border) var(--bg);}::-webkit-scrollbar{width:6px;height:6px;}::-webkit-scrollbar-track{background:var(--bg);}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px;}::-webkit-scrollbar-thumb:hover{background:var(--muted);}/*
 * mohasite theme — site-local CSS, additive on top of loom base styles.
 * Edits hot-reload via inotify; no rebuild needed.
 *
 * The C++ moha theme (include/loom/render/theme/builtin/moha.hpp) keeps only
 * the structural component overrides (custom Header, Footer, page_layout) —
 * those cannot hot-reload because they emit HTML from C++ lambdas.
 */

.theme-toggle{display:none;}body{background:#0d1117;color:#e6edf3;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;}a{color:#58a6ff;transition:color 0.15s ease;}a:hover{color:#79c0ff;text-decoration:underline;}::selection{background:rgba(88,166,255,0.3);}img{max-width:100%;height:auto;}.is-homepage .page-header{display:none;}.is-homepage .reading-progress-bar{display:none;}.is-homepage nav.breadcrumb{display:none;}.is-homepage .back-to-top{display:none;}.is-homepage .toc{display:none;}.is-homepage .container{max-width:960px;padding:0 24px;}.is-homepage .page-content{color:#8b949e;}.is-homepage .page-content h2{font-size:20px;font-weight:600;color:#e6edf3;text-transform:none;letter-spacing:-0.01em;border-bottom:none;padding-bottom:0px;margin-top:48px;margin-bottom:24px;}.is-homepage .page-content hr{display:none;}.hero{padding:96px 0 8px;text-align:center;position:relative;background:radial-gradient(ellipse 80% 60% at 50% 0%, rgba(88,166,255,0.10), transparent 70%),radial-gradient(ellipse 50% 40% at 50% 0%, rgba(210,168,255,0.08), transparent 70%);}.hero-eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:'SFMono-Regular',Consolas,'Liberation Mono',Menlo,monospace;font-size:11px;font-weight:600;color:#656d76;text-transform:uppercase;letter-spacing:0.12em;padding:6px 12px;border-radius:999px;border:1px solid #30363d;background:rgba(22,27,34,0.6);margin-bottom:32px;}.eb-dot{width:6px;height:6px;border-radius:50%;background:#3fb950;box-shadow:0 0 8px rgba(63,185,80,0.6);display:inline-block;}.hero-title{font-size:56px;font-weight:800;color:#e6edf3;line-height:1.05;margin-bottom:24px;margin-top:0px;letter-spacing:-0.04em;max-width:760px;margin-inline:auto;border:none;padding:0px;text-transform:none;}.hero-sub{font-size:19px;color:#8b949e;line-height:1.6;max-width:560px;margin-inline:auto;margin-bottom:40px;}.hero-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}.btn-arrow{display:inline-block;transition:transform 0.2s ease;font-weight:500;}.btn-primary:hover .btn-arrow,.btn-ghost:hover .btn-arrow{transform:translateX(3px);}.btn-primary{background:#2f81f7;color:#ffffff;padding:12px 28px;border-radius:8px;font-weight:600;font-size:15px;text-decoration:none;border:none;display:inline-flex;align-items:center;gap:6px;transition:all 0.2s ease;box-shadow:0 1px 3px rgba(0,0,0,0.3), 0 0 24px rgba(47,129,247,0.2);}.btn-primary:hover{background:#388bfd;color:#ffffff;text-decoration:none;box-shadow:0 2px 8px rgba(0,0,0,0.4), 0 0 32px rgba(47,129,247,0.35);transform:translateY(-1px);}.btn-ghost{background:rgba(240,246,252,0.04);color:#e6edf3;padding:12px 28px;border-radius:8px;font-weight:500;font-size:15px;border:1px solid #484f58;text-decoration:none;display:inline-flex;align-items:center;gap:6px;transition:all 0.2s ease;}.btn-ghost:hover{color:#ffffff;border-color:#6e7681;text-decoration:none;background:rgba(240,246,252,0.08);transform:translateY(-1px);}.terminal-demo{border:1px solid #30363d;border-radius:12px;overflow:hidden;margin:48px auto 0;max-width:840px;font-family:'SFMono-Regular',Consolas,'Liberation Mono',Menlo,monospace;font-size:13px;line-height:1.5;background:#0d1117;position:relative;z-index:1;box-shadow:0 24px 80px -16px rgba(0,0,0,0.6), 0 8px 24px -8px rgba(0,0,0,0.4), 0 0 0 1px rgba(88,166,255,0.08), 0 0 64px -16px rgba(88,166,255,0.15);}.terminal-body{padding:24px 28px;min-height:320px;white-space:pre-wrap;}.m-welcome{text-align:center;padding:16px 0px;}.m-wordmark{color:#d2a8ff;font-size:16px;line-height:1.15;white-space:pre;margin-bottom:8px;}.m-tagline{color:#656d76;font-style:italic;margin-bottom:16px;}.m-badges{margin-bottom:20px;display:flex;justify-content:center;gap:12px;align-items:center;}.m-badge-model{color:#58a6ff;font-weight:600;}.m-badge-profile{color:#d2a8ff;font-weight:600;}.m-try{border:1px solid #30363d;border-radius:6px;padding:12px 20px;text-align:left;display:inline-block;margin-bottom:16px;max-width:320px;width:100%;}.m-try-title{color:#656d76;font-size:11px;font-weight:600;letter-spacing:0.1em;margin-bottom:8px;}.m-try-items{color:#8b949e;white-space:pre-line;line-height:1.7;}.m-hints{color:#656d76;font-size:12px;}.m-composer{border-top:1px solid #30363d;padding:10px 20px;}.m-composer-input{color:#e6edf3;margin-bottom:4px;}.m-prompt{color:#56d4dd;font-weight:700;}.m-placeholder{color:#656d76;font-style:italic;}.m-composer-meta{display:flex;justify-content:space-between;align-items:center;font-size:11px;}.m-composer-hints{color:#656d76;}.terminal-status{background:#161b22;border-top:1px solid #30363d;display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#656d76;padding:4px 16px;}.t-status-left{display:flex;align-items:center;gap:4px;}.t-status-right{color:#656d76;}.m-status-edge{width:3px;height:16px;background:#d2a8ff;border-radius:2px;margin-right:8px;display:inline-block;}.m-status-model{color:#58a6ff;}.m-status-spark{color:#56d4dd;}.m-phase-stream{color:#56d4dd;}.m-shortcuts{background:#161b22;padding:4px 16px;font-size:11px;color:#656d76;display:flex;gap:4px;flex-wrap:wrap;}.m-key{color:#56d4dd;font-weight:600;}.m-key-danger{color:#f85149;font-weight:600;}.m-conv{text-align:left;}.m-turn-user{white-space:pre-wrap;margin-bottom:12px;}.m-turn-sep{margin-bottom:12px;}.m-turn-ai{white-space:pre-wrap;}.m-turn-head{display:flex;justify-content:space-between;margin-bottom:6px;}.m-turn-meta{color:#656d76;font-size:12px;}.t-dim{color:#656d76;}.t-white{color:#e6edf3;}.t-you{color:#56d4dd;font-weight:700;}.t-claude{color:#d2a8ff;font-weight:700;}.t-done{color:#3fb950;}.m-timeline-head{color:#656d76;font-size:11px;letter-spacing:0.08em;margin:12px 0 4px;}.m-tl-row{white-space:pre;line-height:1.8;}.m-act-inspect{color:#58a6ff;}.m-act-mutate{color:#d2a8ff;}.m-act-execute{color:#3fb950;}.stats-bar{display:grid;grid-template-columns:repeat(4,1fr);margin:64px auto 0;max-width:840px;background:#161b22;border:1px solid #30363d;border-radius:12px;overflow:hidden;color:#656d76;font-size:12px;}.stats-bar .stat{text-align:center;padding:24px 8px;display:flex;flex-direction:column;align-items:center;gap:6px;border-left:1px solid #30363d;}.stats-bar .stat:first-child{border-left:none;}.stats-bar strong{color:#e6edf3;font-weight:700;font-size:28px;display:block;line-height:1;font-family:'SFMono-Regular',Consolas,'Liberation Mono',Menlo,monospace;letter-spacing:-0.02em;}.stats-bar .stat span{text-transform:uppercase;letter-spacing:0.08em;font-size:11px;font-weight:500;}.section{padding:96px 0px;position:relative;}.section + .section{padding-top:0px;}.section-label{display:inline-block;font-family:'SFMono-Regular',Consolas,'Liberation Mono',Menlo,monospace;font-size:11px;font-weight:600;color:#d2a8ff;text-transform:uppercase;letter-spacing:0.14em;margin-bottom:16px;padding-left:20px;position:relative;}.section-label::before{content:'';position:absolute;left:0px;top:50%;width:12px;height:1px;background:#d2a8ff;transform:translateY(-50%);}.section-title{font-size:36px;font-weight:700;color:#e6edf3;line-height:1.15;letter-spacing:-0.025em;margin-top:0px;margin-bottom:48px;max-width:680px;border:none;padding:0px;text-transform:none;}.install-section{text-align:center;}.install-section .section-label{margin-inline:auto;display:inline-block;}.install-section .section-title{margin-inline:auto;margin-bottom:32px;}.install-cmd{display:inline-flex;flex-direction:column;align-items:flex-start;background:#161b22;border:1px solid #30363d;border-radius:12px;padding:20px 28px;text-align:left;box-shadow:0 8px 24px -8px rgba(0,0,0,0.4), 0 0 0 1px rgba(88,166,255,0.06);}.install-cmd code{font-family:'SFMono-Regular',Consolas,'Liberation Mono',Menlo,monospace;font-size:15px;color:#e6edf3;background:transparent;padding:0px;user-select:all;display:block;}.install-label{display:block;font-size:11px;font-weight:600;color:#656d76;text-transform:uppercase;letter-spacing:0.12em;margin-bottom:10px;}.install-alt{color:#656d76;font-size:14px;margin-top:20px;}.install-alt a{color:#58a6ff;}.features-section .section-title{margin-bottom:48px;}.feature-list{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:0px;background:transparent;border:none;border-radius:0px;overflow:visible;}.feature-item{padding:28px;background:#161b22;border:1px solid #30363d;border-radius:12px;position:relative;transition:border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;}.feature-item:hover{border-color:rgba(88,166,255,0.4);transform:translateY(-2px);box-shadow:0 12px 32px -12px rgba(0,0,0,0.5), 0 0 0 1px rgba(88,166,255,0.15);}.feature-num{font-family:'SFMono-Regular',Consolas,'Liberation Mono',Menlo,monospace;font-size:11px;font-weight:600;color:#d2a8ff;letter-spacing:0.1em;margin-bottom:16px;}.feature-item h3{font-size:15px;font-weight:600;color:#e6edf3;margin-bottom:10px;margin-top:0px;border:none;padding:0px;text-transform:none;letter-spacing:-0.01em;}.feature-item p{font-size:13px;color:#8b949e;margin:0px;line-height:1.65;}.cta-section{text-align:center;padding:80px 32px;margin:0 auto;max-width:840px;background:linear-gradient(180deg, rgba(22,27,34,0.4), rgba(22,27,34,0.8));border:1px solid #30363d;border-radius:16px;position:relative;overflow:hidden;}.cta-section::before{content:'';position:absolute;top:0px;left:0px;right:0px;height:1px;background:linear-gradient(90deg, transparent, rgba(88,166,255,0.5), transparent);}.cta-title{font-size:32px;font-weight:700;color:#e6edf3;line-height:1.15;letter-spacing:-0.025em;margin-top:0px;margin-bottom:12px;border:none;padding:0px;text-transform:none;}.cta-sub{font-size:15px;color:#8b949e;margin-bottom:32px;}.cta-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}.footer-nav{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:48px;margin-top:96px;padding:48px 0px;border-top:1px solid #30363d;}.footer-brand{padding-right:32px;}.footer-brand .brand-mark{font-family:'SFMono-Regular',Consolas,'Liberation Mono',Menlo,monospace;font-weight:700;font-size:18px;color:#e6edf3;letter-spacing:-0.02em;margin-bottom:12px;}.footer-brand p{color:#8b949e;font-size:13px;line-height:1.6;margin:0px;max-width:260px;}.footer-nav-col h3{font-size:11px;font-weight:600;color:#656d76;margin-bottom:16px;margin-top:0px;border:none;padding:0px;text-transform:uppercase;letter-spacing:0.12em;}.footer-nav-col ul{list-style:none;padding:0px;margin:0px;}.footer-nav-col li{margin-bottom:10px;}.footer-nav-col a{color:#8b949e;font-size:14px;text-decoration:none;transition:color 0.15s;}.footer-nav-col a:hover{color:#58a6ff;text-decoration:none;}header{border-bottom:1px solid #30363d;padding-bottom:0px;margin-bottom:0px;position:sticky;top:0px;z-index:100;backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);background:rgba(13,17,23,0.85);}.header-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 0px;max-width:960px;margin-inline:auto;padding-left:24px;padding-right:24px;}.header-left{display:flex;align-items:center;gap:32px;width:100%;}header h1{font-size:17px;font-weight:700;margin-bottom:0px;margin-top:0px;line-height:1;white-space:nowrap;flex-shrink:0;}header h1 a{color:#e6edf3;text-decoration:none;display:flex;align-items:center;gap:10px;}header h1 a:hover{color:#e6edf3;text-decoration:none;}header h1 a:hover .h-wordmark{color:#58a6ff;}.h-wordmark{font-family:'SFMono-Regular',Consolas,'Liberation Mono',Menlo,monospace;font-size:8px;line-height:1.05;color:#d2a8ff;display:inline-block;white-space:pre;flex-shrink:0;transition:color 0.2s;}.h-name{font-family:'SFMono-Regular',Consolas,'Liberation Mono',Menlo,monospace;font-weight:700;font-size:17px;letter-spacing:-0.02em;}.site-description{display:none;}header nav{margin-top:0px;margin-left:auto;}header nav ul{display:flex;gap:2px;align-items:center;margin:0px;padding:0px;}header nav li{list-style:none;}header nav a{color:#656d76;font-size:13px;font-weight:500;padding:6px 12px;text-decoration:none;text-transform:none;letter-spacing:0;border-radius:6px;transition:color 0.15s, background 0.15s;}header nav a:hover{color:#e6edf3;text-decoration:none;background:#1c2128;}#mobile-menu-toggle{display:none;}.hamburger{display:none;flex-shrink:0;background:transparent;border:none;color:#8b949e;padding:8px;margin-left:auto;cursor:pointer;border-radius:6px;transition:color 0.15s;}.hamburger:hover{color:#e6edf3;}.hamburger svg{display:block;}.mobile-nav-overlay{display:none;}.header-cta{display:none;flex-shrink:0;}.header-cta a{background:#2f81f7;color:#ffffff;font-size:12px;font-weight:600;padding:6px 14px;border-radius:6px;text-decoration:none;transition:background 0.15s;}.header-cta a:hover{background:#388bfd;text-decoration:none;color:#ffffff;}.page-header h1{font-size:28px;font-weight:600;color:#e6edf3;line-height:1.3;margin-bottom:8px;border:none;padding:0px;}h2{font-size:13px;font-weight:600;color:#656d76;letter-spacing:0.05em;text-transform:uppercase;border-bottom:1px solid #30363d;padding-bottom:8px;margin-top:0px;margin-bottom:16px;}.post-content,.page-content{color:#8b949e;line-height:1.6;}.post-content a,.page-content a{color:#58a6ff;text-decoration:none;}.post-content a:hover,.page-content a:hover{text-decoration:underline;}.post-content h2,.page-content h2{font-size:24px;font-weight:600;color:#e6edf3;margin-top:48px;margin-bottom:16px;padding-top:16px;border-top:1px solid #30363d;border-bottom:none;text-transform:none;letter-spacing:0;}.post-content h3,.page-content h3{font-size:18px;font-weight:600;color:#e6edf3;margin-top:32px;margin-bottom:8px;}.post-content h4,.page-content h4{font-size:16px;font-weight:600;color:#8b949e;}.post-content strong,.page-content strong{color:#e6edf3;font-weight:600;}.post-content p,.page-content p{margin-bottom:16px;}.post-content hr,.page-content hr{border:none;border-top:1px solid #30363d;margin:32px 0;}.post-content pre,.page-content pre{background:#161b22;border:1px solid #30363d;border-radius:6px;padding:16px;margin:16px 0;font-size:13px;line-height:1.5;overflow-x:auto;}.post-content pre code,.page-content pre code{color:#8b949e;}.post-content :not(pre)>code,.page-content :not(pre)>code{background:rgba(110,118,129,0.2);color:#e6edf3;padding:0.2em 0.4em;border-radius:3px;font-size:85%;}.post-content blockquote,.page-content blockquote{border-left:3px solid #30363d;padding:0px 16px;margin:16px 0;color:#8b949e;}.post-content blockquote p:last-child,.page-content blockquote p:last-child{margin-bottom:0px;}.post-content table,.page-content table{width:100%;border-collapse:collapse;font-size:14px;margin:16px 0;}.post-content table th,.page-content table th{text-align:left;padding:8px 12px;font-weight:600;color:#e6edf3;border-bottom:2px solid #30363d;}.post-content table td,.page-content table td{padding:8px 12px;border-bottom:1px solid #30363d;color:#8b949e;}.post-content table th,table td,.page-content table th,table td{border-color:#30363d;}.post-content ul,ol,.page-content ul,ol{padding-left:24px;}.post-content li,.page-content li{margin-bottom:4px;}.post-content li::marker,.page-content li::marker{color:#656d76;}.heading-anchor{color:#58a6ff;opacity:0;transition:opacity 0.15s;}h2:hover .heading-anchor,h3:hover .heading-anchor{opacity:0.3;}.doc-sidebar{background:transparent;border-right:1px solid #30363d;padding-right:20px;}.doc-sidebar ul{padding-left:12px;margin-left:0px;border-left:1px solid #30363d;}.doc-sidebar li{margin-bottom:1px;}.doc-sidebar a{color:#8b949e;font-size:14px;padding:4px 8px;border-radius:4px;display:block;text-decoration:none;}.doc-sidebar a:hover{color:#e6edf3;background:#1c2128;}.doc-sidebar a.active{color:#58a6ff;font-weight:600;background:rgba(88,166,255,0.08);}.doc-sidebar .doc-section,.doc-sidebar .doc-tree-section{color:#656d76;font-size:11px;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;padding:6px 8px;margin-top:12px;}.doc-nav{border-top:1px solid #30363d;margin-top:32px;padding-top:16px;}.doc-nav a{border:1px solid #30363d;border-radius:6px;padding:12px 16px;color:#8b949e;text-decoration:none;}.doc-nav a:hover{border-color:#58a6ff;color:#58a6ff;}.post-nav{border-top:1px solid #30363d;margin-top:32px;padding-top:16px;}.post-nav a{color:#8b949e;}.post-nav a:hover{color:#58a6ff;}.callout{background:#161b22;border-radius:6px;border:1px solid #30363d;}.callout-title{font-weight:600;font-size:14px;}.callout-note{border-left-color:#58a6ff;}.callout-tip{border-left-color:#3fb950;}.callout-warning{border-left-color:#d29922;}.callout-danger{border-left-color:#f85149;}.callout-info{border-left-color:#39d2f5;}.badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;}.badge-stable{background:rgba(63,185,80,0.15);color:#3fb950;border:1px solid rgba(63,185,80,0.3);}.code-title{background:#1c2128;color:#656d76;font-size:12px;font-weight:600;padding:6px 16px;border:1px solid #30363d;border-bottom:none;border-radius:6px 6px 0 0;}.code-title + pre{border-radius:0 0 6px 6px;margin-top:0px;}footer{border-top:1px solid #30363d;color:#656d76;font-size:13px;margin-top:48px;}.footer-links a{color:#656d76;}.footer-links a:hover{color:#58a6ff;}nav.breadcrumb{color:#656d76;font-size:13px;}nav.breadcrumb a{color:#656d76;text-decoration:none;}nav.breadcrumb a:hover{color:#58a6ff;}#searchInput{background:#161b22;color:#e6edf3;border:1px solid #30363d;border-radius:6px;font-size:14px;padding:8px 12px;font-family:inherit;}#searchInput:focus{border-color:#58a6ff;outline:none;box-shadow:0 0 0 3px rgba(88,166,255,0.15);}#searchInput::placeholder{color:#656d76;}.pagination{border-top:1px solid #30363d;margin-top:24px;padding-top:12px;}.page-num{color:#8b949e;font-size:14px;min-width:28px;height:28px;border-radius:4px;}.page-num:hover{background:#1c2128;color:#e6edf3;}.page-num.current{background:rgba(88,166,255,0.15);color:#58a6ff;font-weight:600;}.toc{background:#161b22;border:1px solid #30363d;border-radius:6px;}.toc-title{color:#656d76;font-size:12px;font-weight:600;}.toc-list a{color:#8b949e;font-size:14px;}.toc-list a:hover{color:#58a6ff;}.post-listing{padding:12px 0px;border-bottom:1px solid #30363d;}.post-listing > a{color:#e6edf3;font-weight:500;}.post-listing > a:hover{color:#58a6ff;}.post-listing-meta{color:#656d76;font-size:13px;}.post-card{background:#161b22;border:1px solid #30363d;border-radius:6px;padding:20px;}.post-card:hover{border-color:#484f58;}:root{--tag-bg:rgba(88,166,255,0.1);--tag-text:#58a6ff;--tag-radius:10px;}.back-to-top{background:#161b22;color:#8b949e;border:1px solid #30363d;border-radius:6px;}.back-to-top:hover{border-color:#58a6ff;color:#58a6ff;}.reading-progress-fill{background:#58a6ff;}.nav-search{color:#656d76;opacity:0.5;}.nav-search:hover{color:#58a6ff;opacity:1;}.line-highlight{background:rgba(88,166,255,0.06);}.page-info{color:#656d76;font-size:13px;}.doc-updated{color:#656d76;font-size:13px;}.series-nav{background:#161b22;border:1px solid #30363d;border-radius:6px;}@keyframes blink{0%,50%{opacity:1;}50.01%,100%{opacity:0;}}@media(max-width:768px){.hamburger{display:block;}header nav{display:none;}.header-cta{display:block;}#mobile-menu-toggle:checked ~ .mobile-nav-overlay{display:block;position:fixed;top:0px;left:0px;width:100%;height:100%;background:rgba(0,0,0,0.5);z-index:199;animation:fadeIn 0.2s ease;}#mobile-menu-toggle:checked ~ .mobile-nav{transform:translateX(0);}.mobile-nav{position:fixed;top:0px;right:0px;width:280px;height:100%;background:#0d1117;border-left:1px solid #30363d;z-index:200;padding:72px 24px 24px;transform:translateX(100%);transition:transform 0.3s cubic-bezier(0.16,1,0.3,1);overflow-y:auto;box-sizing:border-box;}.mobile-nav a{display:block;color:#8b949e;font-size:16px;font-weight:500;padding:12px 16px;text-decoration:none;border-radius:8px;transition:color 0.15s, background 0.15s;}.mobile-nav a:hover{color:#e6edf3;background:#1c2128;text-decoration:none;}.mobile-nav-close{position:absolute;top:16px;right:16px;background:transparent;border:none;color:#8b949e;padding:8px;cursor:pointer;border-radius:6px;}.mobile-nav-close:hover{color:#e6edf3;}.mobile-nav-close svg{display:block;}.hero{padding:64px 0 0;}.hero-eyebrow{font-size:10px;margin-bottom:24px;}.hero-title{font-size:40px;}.hero-sub{font-size:16px;margin-bottom:32px;}.btn-primary,.btn-ghost{padding:10px 22px;font-size:14px;}.section{padding:64px 0px;}.section-title{font-size:28px;margin-bottom:36px;}.feature-list{grid-template-columns:repeat(2,1fr);gap:12px;}.feature-item{padding:22px;}.footer-nav{grid-template-columns:repeat(3,1fr);gap:24px;margin-top:64px;padding:40px 0px;}.footer-brand{grid-column:1 / -1;padding-right:0px;padding-bottom:16px;border-bottom:1px solid #30363d;margin-bottom:16px;}.footer-brand p{max-width:100%;}.stats-bar{margin-top:48px;}.stats-bar .stat{padding:20px 8px;}.stats-bar strong{font-size:22px;}.stats-bar .stat span{font-size:10px;}.install-cmd{padding:16px 22px;}.install-cmd code{font-size:13px;}.cta-section{padding:64px 24px;margin-top:64px;}.cta-title{font-size:26px;}.terminal-demo{margin:32px -16px 0;border-radius:0px;box-shadow:0 4px 16px rgba(0,0,0,0.2);}.terminal-body{padding:16px 14px;min-height:280px;}.terminal-status{font-size:10px;}.t-status-right{display:none;}.m-shortcuts{display:none;}.m-composer-meta{font-size:10px;}.header-bar{padding-left:16px;padding-right:16px;}.h-wordmark{font-size:7px;}.is-homepage .container{padding:0 16px;}.is-homepage .page-content h2{font-size:18px;margin-top:36px;margin-bottom:16px;}.doc-sidebar{display:none;}}@media(max-width:480px){.hero{padding:48px 0 0;}.hero-eyebrow{font-size:9px;padding:5px 10px;margin-bottom:20px;}.hero-title{font-size:32px;letter-spacing:-0.03em;}.hero-sub{font-size:15px;margin-bottom:24px;}.hero-actions{flex-direction:column;align-items:stretch;}.btn-primary,.btn-ghost{justify-content:center;width:100%;padding:12px 20px;}.section{padding:48px 0px;}.section-title{font-size:24px;margin-bottom:28px;}.section-label{font-size:10px;}.stats-bar{grid-template-columns:repeat(2,1fr);margin-top:40px;}.stats-bar .stat{padding:18px 8px;border-left:none;}.stats-bar .stat:nth-child(odd){border-right:1px solid #30363d;}.stats-bar .stat:nth-child(1),.stats-bar .stat:nth-child(2){border-bottom:1px solid #30363d;}.stats-bar strong{font-size:22px;}.feature-list{grid-template-columns:1fr;gap:12px;}.feature-item{padding:20px 18px;}.feature-item h3{font-size:15px;}.install-cmd{width:100%;box-sizing:border-box;border-radius:10px;padding:16px 18px;}.install-cmd code{font-size:12px;word-break:break-all;}.cta-section{padding:48px 18px;border-radius:12px;margin-top:48px;}.cta-title{font-size:22px;}.cta-sub{font-size:14px;}.cta-actions{flex-direction:column;align-items:stretch;}.footer-nav{grid-template-columns:1fr;gap:28px;margin-top:48px;padding:32px 0px;}.footer-brand{grid-column:1 / -1;padding-bottom:20px;margin-bottom:8px;}.is-homepage .page-content h2{font-size:17px;}.h-wordmark{display:none;}.h-name{font-size:16px;}.terminal-demo{margin:1.5rem -16px 0;}.terminal-body{padding:12px 10px;min-height:240px;font-size:11px;}.m-wordmark{font-size:13px;}.m-try{max-width:100%;}.m-composer{padding:8px 12px;}.m-composer-input{font-size:12px;}.page-header h1{font-size:22px;}.container{padding:0 16px;}}@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}

/* ─── BUG FIXES ────────────────────────────────────────────────────
 * These override rules above with higher specificity to fix:
 *  1. Mobile slide-out nav rendering inline on desktop
 *  2. .is-homepage .page-content h2 (specificity 0,2,1) clobbering
 *     our hero/section/cta titles (specificity 0,1,0)
 *  3. .page-content a (specificity 0,1,1) clobbering .btn-primary
 *     and .btn-ghost colors (specificity 0,1,0)
 * ────────────────────────────────────────────────────────────────── */

/* (1) Hide mobile nav by default; only show inside @media(max-width:768px) */
.mobile-nav { display: none; }

/* (2) Restore homepage title sizes — beat .is-homepage .page-content h2 */
.is-homepage .page-content .hero-title {
    font-size: 56px; font-weight: 800; color: #e6edf3;
    line-height: 1.05; letter-spacing: -0.04em;
    max-width: 760px; margin: 0 auto 24px;
    border: none; padding: 0; text-transform: none;
}
.is-homepage .page-content .section-title {
    font-size: 36px; font-weight: 700; color: #e6edf3;
    line-height: 1.15; letter-spacing: -0.025em;
    max-width: 680px; margin-top: 0; margin-bottom: 48px;
    border: none; padding: 0; text-transform: none;
}
.is-homepage .page-content .install-section .section-title,
.is-homepage .page-content .cta-section .section-title {
    margin-inline: auto;
}
.is-homepage .page-content .install-section .section-title { margin-bottom: 32px; }
.is-homepage .page-content .cta-title {
    font-size: 32px; font-weight: 700; color: #e6edf3;
    line-height: 1.15; letter-spacing: -0.025em;
    margin-top: 0; margin-bottom: 12px;
    border: none; padding: 0; text-transform: none;
}

/* (3) Restore button colors inside content area */
.page-content a.btn-primary,
.page-content a.btn-primary:hover { color: #ffffff; }
.page-content a.btn-ghost { color: #e6edf3; }
.page-content a.btn-ghost:hover { color: #ffffff; }

/* Tablet (≤768px) — show mobile nav, scale titles down */
@media (max-width: 768px) {
    .mobile-nav { display: block; }
    .is-homepage .page-content .hero-title { font-size: 40px; }
    .is-homepage .page-content .section-title { font-size: 28px; margin-bottom: 36px; }
    .is-homepage .page-content .cta-title { font-size: 26px; }
}

/* Phone (≤480px) */
@media (max-width: 480px) {
    .is-homepage .page-content .hero-title { font-size: 32px; letter-spacing: -0.03em; }
    .is-homepage .page-content .section-title { font-size: 24px; margin-bottom: 28px; }
    .is-homepage .page-content .cta-title { font-size: 22px; }
}

/* ─── HERO POLISH ──────────────────────────────────────────────────
 * Fix the empty area between header and eyebrow:
 *  - Tighten top padding (was 96px, that left a dead zone)
 *  - Beef up the gradient glow (was 10% / 8%, almost invisible)
 *  - Add a subtle grid pattern for depth
 * ────────────────────────────────────────────────────────────────── */

.is-homepage .page-content .hero {
    padding: 56px 0 8px;
    background:
        /* Faint dot grid for depth */
        radial-gradient(circle at 1px 1px, rgba(139,148,158,0.08) 1px, transparent 0) 0 0 / 24px 24px,
        /* Bright blue glow at top-center */
        radial-gradient(ellipse 70% 50% at 50% -10%, rgba(88,166,255,0.22), transparent 65%),
        /* Purple accent glow, slightly offset */
        radial-gradient(ellipse 50% 40% at 50% 0%, rgba(210,168,255,0.16), transparent 70%);
    /* Mask the dot grid so it fades to invisible at the edges and bottom */
    -webkit-mask-image: linear-gradient(180deg, black 0%, black 70%, transparent 100%);
            mask-image: linear-gradient(180deg, black 0%, black 70%, transparent 100%);
}

/* Prevent the mask from also clipping the hero text — wrap by re-asserting opacity on children */
.is-homepage .page-content .hero > * {
    -webkit-mask-image: none;
            mask-image: none;
}

/* The mask trick on parent breaks child rendering. Use ::before pseudo for the background instead. */
.is-homepage .page-content .hero {
    background: none;
    -webkit-mask-image: none;
            mask-image: none;
    isolation: isolate;
}
.is-homepage .page-content .hero::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background:
        radial-gradient(circle at 1px 1px, rgba(139,148,158,0.10) 1px, transparent 0) 0 0 / 28px 28px,
        radial-gradient(ellipse 70% 60% at 50% 0%, rgba(88,166,255,0.22), transparent 65%),
        radial-gradient(ellipse 50% 45% at 50% 0%, rgba(210,168,255,0.16), transparent 70%);
    -webkit-mask-image: linear-gradient(180deg, black 0%, black 65%, transparent 100%);
            mask-image: linear-gradient(180deg, black 0%, black 65%, transparent 100%);
}

/* Make the eyebrow feel intentional as the first element */
.is-homepage .page-content .hero-eyebrow { margin-bottom: 28px; }

@media (max-width: 768px) {
    .is-homepage .page-content .hero { padding: 40px 0 0; }
}
@media (max-width: 480px) {
    .is-homepage .page-content .hero { padding: 32px 0 0; }
}

/* ─── HEADER POLISH ────────────────────────────────────────────────
 * The ASCII-box wordmark feels noisy. Replace with a clean glowing
 * gradient orb + the "moha" wordmark. Tighten layout.
 * ────────────────────────────────────────────────────────────────── */

/* Hide the box-character wordmark */
.h-wordmark { display: none !important; }

/* Tighten header bar height and refine the divider */
header {
    border-bottom-color: rgba(48, 54, 61, 0.6);
}
.header-bar {
    padding: 14px 24px;
}

/* Brand mark: gradient orb + monospace wordtext */
header h1 a {
    gap: 0;
}
header h1 a::before {
    content: '';
    display: inline-block;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: linear-gradient(135deg, #58a6ff 0%, #d2a8ff 100%);
    box-shadow: 0 0 12px rgba(88, 166, 255, 0.5),
                0 0 0 1px rgba(255, 255, 255, 0.06);
    margin-right: 11px;
    flex-shrink: 0;
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}
header h1 a:hover::before {
    box-shadow: 0 0 16px rgba(88, 166, 255, 0.75),
                0 0 0 1px rgba(255, 255, 255, 0.1);
    transform: scale(1.1);
}

.h-name {
    font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: -0.01em;
    color: #e6edf3;
}

/* Nav link refinement — slightly bigger gap between items */
header nav ul { gap: 4px; }
header nav a {
    padding: 7px 13px;
    font-size: 13px;
}

/* Search icon a touch more visible */
.nav-search {
    margin-left: 4px;
    font-size: 16px !important;
    opacity: 0.6;
}

@media (max-width: 768px) {
    .header-bar { padding: 12px 16px; }
    header h1 a::before { width: 8px; height: 8px; margin-right: 9px; }
    .h-name { font-size: 15px; }
}

/* ─── HERO TIGHTER (post-eyebrow removal) ──────────────────────────
 * Eyebrow removed — drop the empty space above the title and the
 * decorative backdrop so the title sits right under the header.
 * ────────────────────────────────────────────────────────────────── */

.is-homepage .page-content .hero {
    padding: 24px 0 8px;
}
.is-homepage .page-content .hero::before {
    display: none;
}

@media (max-width: 768px) {
    .is-homepage .page-content .hero { padding: 16px 0 0; }
}
@media (max-width: 480px) {
    .is-homepage .page-content .hero { padding: 12px 0 0; }
}

/* ─── HEADER REVERT — restore ASCII MOHA logo, drop the orb ────────
 * Bring back the box-drawing wordmark, hide the gradient orb I added,
 * and lock the layout to: logo on the LEFT, nav on the RIGHT, one row.
 * ────────────────────────────────────────────────────────────────── */

/* Restore the ASCII wordmark */
.h-wordmark {
    display: inline-block !important;
    font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
    font-size: 9px;
    line-height: 1.1;
    color: #d2a8ff;
    white-space: pre;
    flex-shrink: 0;
    transition: color 0.2s ease;
}

/* Kill the gradient orb pseudo */
header h1 a::before {
    content: none !important;
    display: none !important;
}

/* Lock the header bar to a single row, logo left, nav right */
.header-bar {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: nowrap !important;
    padding: 12px 24px;
    max-width: 960px;
    margin-inline: auto;
}

/* .header-left holds the h1 only (nav becomes a direct sibling) */
.header-left {
    display: flex;
    align-items: center;
    gap: 18px;
    flex-shrink: 0;
    width: auto;
    margin-right: auto;
}

/* h1: wordmark + name in one row, anchored left */
header h1 {
    margin: 0;
    line-height: 1;
    flex-shrink: 0;
}
header h1 a {
    display: inline-flex !important;
    align-items: center;
    gap: 10px;
    color: #e6edf3;
    text-decoration: none;
}
header h1 a:hover .h-wordmark { color: #58a6ff; }

.h-name {
    font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: -0.01em;
    color: #e6edf3;
    line-height: 1;
}

/* Nav lives in .header-left next to the h1, not separately positioned */
header nav { margin-left: 0; }
header nav ul {
    display: flex;
    align-items: center;
    gap: 4px;
    margin: 0;
    padding: 0;
    list-style: none;
    flex-wrap: nowrap;
}

@media (max-width: 768px) {
    .header-bar { padding: 12px 16px; }
    .h-wordmark { font-size: 8px; }
    .h-name { font-size: 15px; }
}

/* ─── HEADER LAYOUT FIX ─────────────────────────────────────────────
 * The base loom CSS sets `.header-left { flex-direction: column }`,
 * which makes the h1 and nav stack vertically. Force them onto one
 * row, with the logo at the left and nav pushed to the right.
 * ────────────────────────────────────────────────────────────────── */

.header-left {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 18px;
    width: 100% !important;
    flex-wrap: nowrap !important;
}

/* Push the nav to the right edge of the header bar */
header nav {
    margin-left: auto !important;
    margin-top: 0 !important;
}

/* hot-reload ping 1777584038 */

/* ─── HERO 2-COLUMN LAYOUT (aider-style) ──────────────────────────
 * Text on the left, terminal demo on the right, vertically centered.
 * Stacks to one column on tablet/mobile.
 * ────────────────────────────────────────────────────────────────── */

.is-homepage .container { max-width: 1140px; }

.hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
    gap: 64px;
    align-items: center;
    padding: 64px 0 32px;
}

/* Hero text column — left-aligned, no centering */
.is-homepage .page-content .hero {
    padding: 0 !important;
    text-align: left !important;
    background: none;
}
.is-homepage .page-content .hero::before { display: none !important; }

.is-homepage .page-content .hero-title {
    text-align: left !important;
    margin: 0 0 20px 0 !important;
    max-width: none !important;
    font-size: 48px !important;
    line-height: 1.08;
    letter-spacing: -0.035em;
}
.is-homepage .page-content .hero-sub {
    text-align: left !important;
    margin: 0 0 32px 0 !important;
    max-width: 480px !important;
    font-size: 17px;
    line-height: 1.6;
}
.hero-actions {
    justify-content: flex-start !important;
}

/* Terminal demo as right column */
.hero-grid .terminal-demo {
    margin: 0 !important;
    max-width: 100% !important;
    width: 100%;
}

/* ─── STATS AS PILL BADGES ────────────────────────────────────────
 * Small inline pills, label + colored value chip — aider-style.
 * ────────────────────────────────────────────────────────────────── */

.stats-bar {
    display: flex !important;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin: 0 auto !important;
    max-width: none !important;
    padding: 32px 0 16px !important;
    background: none !important;
    border: none !important;
    border-radius: 0 !important;
    overflow: visible !important;
    grid-template-columns: none !important;
}

.stat-pill {
    display: inline-flex;
    align-items: center;
    gap: 0;
    padding: 5px 5px 5px 14px;
    background: #161b22;
    border: 1px solid #30363d;
    border-radius: 999px;
    font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
    font-size: 11px;
    transition: border-color 0.2s ease, transform 0.2s ease;
}
.stat-pill:hover {
    border-color: rgba(88, 166, 255, 0.4);
    transform: translateY(-1px);
}
.stat-label {
    color: #8b949e;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 600;
    margin-right: 10px;
}
.stat-value {
    padding: 3px 10px;
    border-radius: 999px;
    font-weight: 700;
    font-size: 11px;
    color: #0d1117;
    line-height: 1;
}
.sv-blue   { background: #58a6ff; }
.sv-green  { background: #3fb950; }
.sv-yellow { background: #d29922; }
.sv-purple { background: #d2a8ff; }

/* ─── RESPONSIVE: stack hero on tablet/mobile ─────────────────────── */

@media (max-width: 900px) {
    .hero-grid {
        grid-template-columns: 1fr;
        gap: 40px;
        padding: 40px 0 24px;
    }
    .is-homepage .page-content .hero { text-align: center !important; }
    .is-homepage .page-content .hero-title {
        text-align: center !important;
        font-size: 38px !important;
    }
    .is-homepage .page-content .hero-sub {
        text-align: center !important;
        margin: 0 auto 28px !important;
    }
    .hero-actions { justify-content: center !important; }
}

@media (max-width: 480px) {
    .is-homepage .page-content .hero-title { font-size: 30px !important; }
    .is-homepage .page-content .hero-sub { font-size: 15px; }
    .stat-pill { font-size: 10px; padding: 4px 4px 4px 12px; }
    .stat-value { font-size: 10px; padding: 3px 8px; }
}

/* ─── STATS PILLS: bigger, bolder, prominent ──────────────────────── */

.stats-bar {
    gap: 14px !important;
    padding: 24px 0 !important;
    margin: 16px auto 32px !important;
    border-top: 1px solid rgba(48, 54, 61, 0.5) !important;
    border-bottom: 1px solid rgba(48, 54, 61, 0.5) !important;
}

.stat-pill {
    padding: 8px 8px 8px 18px !important;
    font-size: 13px !important;
    background: #161b22 !important;
    border: 1px solid #30363d !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3),
                inset 0 1px 0 rgba(255, 255, 255, 0.03);
}
.stat-pill:hover {
    border-color: rgba(88, 166, 255, 0.5) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 16px -4px rgba(0, 0, 0, 0.5),
                0 0 0 1px rgba(88, 166, 255, 0.2),
                inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.stat-label {
    font-size: 11px !important;
    letter-spacing: 0.1em !important;
    margin-right: 12px !important;
    color: #8b949e !important;
    font-weight: 600 !important;
}

.stat-value {
    padding: 5px 12px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: -0.01em;
    color: #0d1117 !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2),
                inset 0 -1px 0 rgba(0, 0, 0, 0.15);
}

/* Slightly stronger color stops on the value chips */
.sv-blue   { background: linear-gradient(180deg, #79c0ff 0%, #58a6ff 100%) !important; }
.sv-green  { background: linear-gradient(180deg, #56d364 0%, #3fb950 100%) !important; }
.sv-yellow { background: linear-gradient(180deg, #e3b341 0%, #d29922 100%) !important; }
.sv-purple { background: linear-gradient(180deg, #d2a8ff 0%, #bc8cff 100%) !important; }

@media (max-width: 480px) {
    .stat-pill { font-size: 11px !important; padding: 6px 6px 6px 14px !important; }
    .stat-label { margin-right: 8px !important; font-size: 10px !important; }
    .stat-value { font-size: 11px !important; padding: 4px 10px !important; }
}

/* ─── INSTALL BLOCK INSIDE HERO COLUMN ────────────────────────────
 * Compact install command + "see all options" link, sized for the
 * narrow hero text column (no longer a standalone full-width section).
 * ────────────────────────────────────────────────────────────────── */

.hero-install {
    margin-top: 28px;
    max-width: 480px;
    text-align: left;
}

/* Override the install-cmd to fit a narrower column and feel inline */
.hero-install .install-cmd {
    display: flex !important;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
    box-sizing: border-box;
    padding: 14px 18px !important;
    border-radius: 10px !important;
}
.hero-install .install-label {
    font-size: 10px !important;
    margin-bottom: 6px !important;
}
.hero-install .install-cmd code {
    font-size: 13px !important;
    word-break: break-all;
}
.hero-install .install-alt {
    margin-top: 12px !important;
    font-size: 13px;
    color: #656d76;
    text-align: left;
}

/* Mobile: when hero stacks, center the install block too */
@media (max-width: 900px) {
    .hero-install {
        margin: 28px auto 0;
        text-align: center;
    }
    .hero-install .install-alt { text-align: center; }
}

/* ─── HERO LEFT COLUMN: TIGHTER VERTICAL RHYTHM ───────────────────
 * Compact the title, sub, button row, and install block so the left
 * column doesn't stretch vertically next to the terminal demo.
 * ────────────────────────────────────────────────────────────────── */

.is-homepage .page-content .hero-title {
    font-size: 42px !important;
    line-height: 1.05 !important;
    margin: 0 0 14px 0 !important;
    letter-spacing: -0.035em;
}

.is-homepage .page-content .hero-sub {
    margin: 0 0 22px 0 !important;
    font-size: 16px !important;
    line-height: 1.55 !important;
    max-width: 460px !important;
}

.hero-actions {
    margin-bottom: 0 !important;
}
.hero-actions .btn-primary,
.hero-actions .btn-ghost {
    padding: 10px 22px !important;
    font-size: 14px !important;
}

.hero-install {
    margin-top: 18px !important;
}
.hero-install .install-cmd {
    padding: 12px 16px !important;
}
.hero-install .install-label {
    margin-bottom: 4px !important;
}
.hero-install .install-cmd code {
    font-size: 12.5px !important;
}
.hero-install .install-alt {
    margin-top: 10px !important;
    font-size: 12.5px !important;
}

@media (max-width: 900px) {
    .is-homepage .page-content .hero-title { font-size: 34px !important; }
}

/* ─── TERMINAL DEMO: FIXED SIZE ──────────────────────────────────
 * Lock the demo's body height so the layout doesn't reflow as the
 * JS animation cycles between welcome screen / conversation / reset.
 * Soft fade at the bottom hides any clipped content gracefully.
 * ────────────────────────────────────────────────────────────────── */

.hero-grid .terminal-demo {
    align-self: start;
    height: auto;
}

.hero-grid .terminal-demo .terminal-body {
    height: 380px !important;
    min-height: 380px !important;
    max-height: 380px !important;
    overflow: hidden;
    position: relative;
    -webkit-mask-image: linear-gradient(180deg, black 0%, black 88%, transparent 100%);
            mask-image: linear-gradient(180deg, black 0%, black 88%, transparent 100%);
}

@media (max-width: 900px) {
    .hero-grid .terminal-demo .terminal-body {
        height: 320px !important;
        min-height: 320px !important;
        max-height: 320px !important;
    }
}
@media (max-width: 480px) {
    .hero-grid .terminal-demo .terminal-body {
        height: 280px !important;
        min-height: 280px !important;
        max-height: 280px !important;
    }
}

/* ─── TERMINAL DEMO: REAL TERMINAL WINDOW ─────────────────────────
 * macOS-style title bar with traffic lights, gradient frame,
 * realistic shadow — looks like a real terminal window.
 * ────────────────────────────────────────────────────────────────── */

.hero-grid .terminal-demo {
    padding-top: 36px;  /* room for the title bar */
    background: #0d1117;
    border: 1px solid #2a3038 !important;
    border-radius: 10px !important;
    box-shadow:
        0 32px 80px -20px rgba(0, 0, 0, 0.7),
        0 12px 32px -8px rgba(0, 0, 0, 0.5),
        0 0 0 1px rgba(0, 0, 0, 0.5),
        inset 0 1px 0 rgba(255, 255, 255, 0.04) !important;
}

/* Title bar — darker gradient, subtle bottom divider */
.hero-grid .terminal-demo::before {
    content: 'moha — bash';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 36px;
    line-height: 36px;
    background: linear-gradient(180deg, #2a2f36 0%, #1a1f25 100%);
    color: #8b949e;
    font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', sans-serif;
    font-size: 12.5px;
    font-weight: 500;
    letter-spacing: 0.01em;
    text-align: center;
    border-bottom: 1px solid rgba(0, 0, 0, 0.4);
    z-index: 2;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

/* Three traffic lights in the top-left of the title bar */
.hero-grid .terminal-demo::after {
    content: '';
    position: absolute;
    top: 12px;
    left: 14px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #ff5f57;
    box-shadow:
        0 0 0 0.5px rgba(0, 0, 0, 0.25),
        20px 0 0 0 #febc2e,
        20px 0 0 0.5px rgba(0, 0, 0, 0.25),
        40px 0 0 0 #28c840,
        40px 0 0 0.5px rgba(0, 0, 0, 0.25);
    z-index: 3;
}

/* Re-tune the body so it sits cleanly under the title bar */
.hero-grid .terminal-demo .terminal-body {
    background: #0d1117;
    border-top: 1px solid rgba(255, 255, 255, 0.02);
}

/* ─── DOC SIDEBAR: PREMIUM REDESIGN ──────────────────────────────────
 * Left-positioned doc navigation with refined panel styling, smooth
 * animations, sticky scroll, and always-expanded tree branches.
 * ───────────────────────────────────────────────────────────────────── */

body.has-sidebar .with-sidebar {
    grid-template-columns: 240px 1fr;
    gap: 48px;
}
body.has-sidebar .with-sidebar .doc-sidebar {
    order: -1;
}

/* ── CRITICAL: Force all tree branches open ── */
/* Base styles hide children of collapsed branches; we want everything visible */
.doc-sidebar .doc-tree-branch > .doc-tree-list {
    display: block !important;
}

/* ── Sidebar container ── */
.doc-sidebar {
    position: sticky !important;
    top: 80px;
    max-height: calc(100vh - 100px);
    overflow-y: auto;
    padding: 20px 4px 32px 0 !important;
    border-right: 1px solid rgba(48, 54, 61, 0.5) !important;
    background: transparent !important;
    /* Custom thin scrollbar */
    scrollbar-width: thin;
    scrollbar-color: rgba(88, 166, 255, 0.12) transparent;
}
.doc-sidebar::-webkit-scrollbar { width: 3px; }
.doc-sidebar::-webkit-scrollbar-track { background: transparent; }
.doc-sidebar::-webkit-scrollbar-thumb {
    background: rgba(88, 166, 255, 0.12);
    border-radius: 3px;
}
.doc-sidebar::-webkit-scrollbar-thumb:hover {
    background: rgba(88, 166, 255, 0.25);
}

/* ── Lists — clean flat structure ── */
.doc-sidebar ul {
    padding-left: 0 !important;
    margin-left: 0 !important;
    border-left: none !important;
    list-style: none !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}
/* Nested lists under section branches get indent + subtle left guide */
.doc-sidebar .doc-tree-branch > .doc-tree-list {
    padding-left: 4px !important;
    margin-left: 12px !important;
    border-left: 1px solid rgba(48, 54, 61, 0.4) !important;
    margin-top: 2px;
    margin-bottom: 6px;
}

/* ── Items ── */
.doc-sidebar li {
    margin-bottom: 0 !important;
}
.doc-sidebar .doc-tree-item {
    margin-bottom: 1px !important;
}

/* ── Links: left-accent indicator, smooth transitions ── */
.doc-sidebar a {
    color: #8b949e !important;
    font-size: 13px !important;
    font-weight: 450 !important;
    padding: 6px 10px 6px 12px !important;
    border-radius: 5px !important;
    display: block !important;
    text-decoration: none !important;
    position: relative;
    transition: color 0.18s ease,
                background 0.18s ease,
                transform 0.18s ease,
                border-color 0.18s ease !important;
    border-left: 2px solid transparent;
    margin-right: 12px;
    line-height: 1.5;
    letter-spacing: 0.005em;
}
.doc-sidebar a:hover {
    color: #c9d1d9 !important;
    background: rgba(177, 186, 196, 0.06) !important;
    border-left-color: rgba(139, 148, 158, 0.25);
    transform: translateX(1px);
    text-decoration: none !important;
}

/* ── Active link: accent glow ── */
.doc-sidebar a.active {
    color: #58a6ff !important;
    font-weight: 600 !important;
    background: rgba(88, 166, 255, 0.07) !important;
    border-left-color: #58a6ff !important;
    box-shadow: -1px 0 10px -3px rgba(88, 166, 255, 0.3);
    transform: translateX(1px);
}
.doc-sidebar a.active:hover {
    background: rgba(88, 166, 255, 0.11) !important;
    color: #79c0ff !important;
}

/* ── Section headers: uppercase labels with fading line ── */
.doc-sidebar .doc-section,
.doc-sidebar .doc-tree-section {
    color: #565d65 !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    padding: 18px 10px 5px 14px !important;
    margin-top: 4px !important;
    margin-bottom: 3px;
    display: flex !important;
    align-items: center;
    gap: 10px;
    position: relative;
    border: none !important;
    background: none !important;
    border-radius: 0 !important;
}
.doc-sidebar .doc-tree-section::after {
    content: '';
    flex: 1;
    height: 1px;
    background: linear-gradient(90deg, rgba(48, 54, 61, 0.5), transparent 80%);
    margin-right: 12px;
}

/* First section — tighter top */
.doc-sidebar > ul > li:first-child > .doc-tree-section,
.doc-sidebar > ul > li:first-child > .doc-section {
    margin-top: 0 !important;
    padding-top: 2px !important;
}

/* ── Top-level leaf links (not inside a branch) — slightly bolder ── */
.doc-sidebar > .doc-tree-list > .doc-tree-item:not(.doc-tree-branch) > a {
    font-weight: 500 !important;
    color: #b1bac4 !important;
    font-size: 13.5px !important;
}
.doc-sidebar > .doc-tree-list > .doc-tree-item:not(.doc-tree-branch) > a:hover {
    color: #e6edf3 !important;
}
.doc-sidebar > .doc-tree-list > .doc-tree-item:not(.doc-tree-branch) > a.active {
    color: #58a6ff !important;
    font-weight: 600 !important;
}

/* ── Collapse sidebar below 900px ── */
@media (max-width: 900px) {
    body.has-sidebar .with-sidebar {
        grid-template-columns: 1fr;
    }
    body.has-sidebar .with-sidebar .doc-sidebar {
        display: none;
    }
}

/* ─── COMPARISON TABLE (homepage) ───────────────────────────────────── */

.compare-section {
    padding: 64px 0;
}
.compare-section .section-title {
    margin-bottom: 32px;
}
.compare-table-wrap {
    overflow-x: auto;
    border-radius: 10px;
    border: 1px solid #30363d;
}
.compare-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
    margin: 0 !important;
    border: none !important;
}
.compare-table th,
.compare-table td {
    padding: 12px 20px;
    border-bottom: 1px solid #30363d;
    border-color: #30363d !important;
}
.compare-table thead tr {
    background: #161b22;
}
.compare-table th {
    font-size: 12px;
    font-weight: 600;
    color: #8b949e;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    border-bottom: 2px solid #30363d !important;
}
.compare-table th:first-child { width: 40%; }
.compare-table tbody tr:last-child td { border-bottom: none; }
.compare-table tbody tr:nth-child(even) { background: rgba(22, 27, 34, 0.6); }
.compare-table td:first-child { color: #8b949e; font-size: 13px; }
.cv-good { color: #3fb950; font-weight: 500; }
.cv-bad  { color: #8b949e; }
.compare-note {
    font-size: 13px;
    color: #656d76;
    margin-top: 16px;
}
.compare-note a { color: #58a6ff; }

/* Override .is-homepage .page-content table rules for compare-table */
.is-homepage .page-content .compare-table th {
    color: #8b949e;
    border-bottom: 2px solid #30363d;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}
.is-homepage .page-content .compare-table td { color: #8b949e; }
.is-homepage .page-content .compare-table .cv-good { color: #3fb950; }

@media (max-width: 600px) {
    .compare-table th, .compare-table td { padding: 10px 14px; font-size: 13px; }
}

/* ═══════════════════════════════════════════════════════════════════════
   HOMEPAGE POLISH — premium, professional, state-of-the-art
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Animated gradient mesh backdrop ── */
.is-homepage .page-content .hero-grid {
    position: relative;
}
.is-homepage .page-content .hero-grid::before {
    content: '';
    position: absolute;
    top: -60px;
    left: -120px;
    right: -120px;
    bottom: -40px;
    z-index: -1;
    pointer-events: none;
    background:
        radial-gradient(ellipse 60% 50% at 20% 30%, rgba(88, 166, 255, 0.08), transparent 60%),
        radial-gradient(ellipse 50% 40% at 80% 20%, rgba(210, 168, 255, 0.06), transparent 55%),
        radial-gradient(ellipse 40% 30% at 50% 80%, rgba(63, 185, 80, 0.03), transparent 50%);
    animation: meshFloat 12s ease-in-out infinite alternate;
}
@keyframes meshFloat {
    0%   { opacity: 1; transform: scale(1) translateY(0); }
    100% { opacity: 0.7; transform: scale(1.05) translateY(-8px); }
}

/* ── Hero title: stronger hierarchy ── */
.is-homepage .page-content .hero-title {
    background: linear-gradient(135deg, #e6edf3 0%, #c9d1d9 50%, #e6edf3 100%) !important;
    -webkit-background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    background-clip: text !important;
}

/* ── Feature card icons ── */
.feature-icon {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    border-radius: 10px;
    background: rgba(88, 166, 255, 0.06);
    border: 1px solid rgba(88, 166, 255, 0.1);
    margin-bottom: 16px;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.feature-item:hover .feature-icon {
    transform: scale(1.08) translateY(-1px);
    box-shadow: 0 4px 12px -4px rgba(88, 166, 255, 0.2);
}

/* Override feature-num with icon when present */
.feature-item .feature-num {
    display: none;
}

/* Feature cards: enhanced hover with subtle glow */
.is-homepage .page-content .feature-item {
    transition: border-color 0.25s ease,
                transform 0.25s ease,
                box-shadow 0.3s ease !important;
}
.is-homepage .page-content .feature-item:hover {
    border-color: rgba(88, 166, 255, 0.3) !important;
    transform: translateY(-3px) !important;
    box-shadow:
        0 16px 40px -12px rgba(0, 0, 0, 0.5),
        0 0 0 1px rgba(88, 166, 255, 0.12),
        0 0 32px -8px rgba(88, 166, 255, 0.08) !important;
}

/* ── Horizontal rules as subtle gradient lines ── */
.is-homepage .page-content hr {
    display: block !important;
    border: none !important;
    height: 1px !important;
    margin: 48px 0 !important;
    background: linear-gradient(90deg,
        transparent 0%,
        rgba(48, 54, 61, 0.6) 20%,
        rgba(88, 166, 255, 0.12) 50%,
        rgba(48, 54, 61, 0.6) 80%,
        transparent 100%) !important;
}

/* ── CTA section: enhanced glow ── */
.is-homepage .page-content .cta-section {
    background: linear-gradient(180deg,
        rgba(22, 27, 34, 0.3) 0%,
        rgba(22, 27, 34, 0.7) 100%) !important;
    border: 1px solid rgba(48, 54, 61, 0.5);
    box-shadow:
        0 24px 64px -16px rgba(0, 0, 0, 0.4),
        inset 0 1px 0 rgba(255, 255, 255, 0.03);
}
.is-homepage .page-content .cta-section::before {
    height: 1px;
    background: linear-gradient(90deg,
        transparent,
        rgba(88, 166, 255, 0.4) 30%,
        rgba(210, 168, 255, 0.4) 70%,
        transparent) !important;
}

/* ── CTA sub: code styling ── */
.is-homepage .page-content .cta-sub code {
    background: rgba(110, 118, 129, 0.2);
    color: #e6edf3;
    padding: 0.2em 0.5em;
    border-radius: 4px;
    font-size: 15px;
    font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
}

/* ── Section labels: subtle purple accent line ── */
.is-homepage .page-content .section-label {
    color: #d2a8ff !important;
}
.is-homepage .page-content .section-label::before {
    background: linear-gradient(90deg, #d2a8ff 0%, rgba(210, 168, 255, 0.3) 100%) !important;
}

/* ── Section titles: gradient text ── */
.is-homepage .page-content .section-title {
    background: linear-gradient(135deg, #e6edf3 0%, #b1bac4 100%) !important;
    -webkit-background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    background-clip: text !important;
}

/* ── Comparison table: subtle row hover ── */
.compare-table tbody tr {
    transition: background 0.15s ease;
}
.compare-table tbody tr:hover {
    background: rgba(88, 166, 255, 0.03) !important;
}

/* ── Architecture section ── */
.arch-section {
    padding: 64px 0 !important;
}
.arch-details {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}
.arch-item {
    padding: 24px 24px 24px 28px;
    background: #161b22;
    border: 1px solid #30363d;
    border-radius: 10px;
    border-left: 3px solid rgba(210, 168, 255, 0.3);
    transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}
.arch-item:hover {
    border-left-color: #d2a8ff;
    transform: translateY(-2px);
    box-shadow: 0 12px 32px -12px rgba(0, 0, 0, 0.5),
                0 0 0 1px rgba(210, 168, 255, 0.1);
}
.arch-item h3 {
    font-size: 15px;
    font-weight: 600;
    color: #e6edf3;
    margin: 0 0 10px 0;
    border: none;
    padding: 0;
    text-transform: none;
    letter-spacing: -0.01em;
}
.arch-item p {
    font-size: 13px;
    color: #8b949e;
    margin: 0;
    line-height: 1.65;
}
.arch-item code {
    background: rgba(110, 118, 129, 0.2);
    color: #e6edf3;
    padding: 0.15em 0.35em;
    border-radius: 3px;
    font-size: 85%;
}
.arch-item a {
    color: #58a6ff;
    text-decoration: none;
}
.arch-item a:hover {
    text-decoration: underline;
}

/* ── Stats bar: subtle entrance feel ── */
.stats-bar {
    position: relative;
}

/* ── Install command: subtle glow on hover ── */
.hero-install .install-cmd {
    transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}
.hero-install .install-cmd:hover {
    border-color: rgba(88, 166, 255, 0.25) !important;
    box-shadow: 0 4px 16px -4px rgba(88, 166, 255, 0.12),
                0 0 0 1px rgba(88, 166, 255, 0.08) !important;
}

/* ── Footer nav: subtle top glow ── */
.is-homepage .page-content .footer-nav {
    border-top-color: rgba(48, 54, 61, 0.5);
    position: relative;
}
.is-homepage .page-content .footer-nav::before {
    content: '';
    position: absolute;
    top: -1px;
    left: 20%;
    right: 20%;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(88, 166, 255, 0.15), transparent);
}

/* ── Brand mark in footer: subtle gradient ── */
.footer-brand .brand-mark {
    background: linear-gradient(135deg, #e6edf3 0%, #8b949e 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* ── Mobile refinements ── */
@media (max-width: 900px) {
    .is-homepage .page-content .hero-grid::before { display: none; }
    .arch-details { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
    .feature-icon { width: 36px; height: 36px; font-size: 18px; }
    .is-homepage .page-content hr { margin: 36px 0 !important; }
    .arch-item { padding: 20px 18px 20px 22px; }
}

/* ── Terminal demo: missing classes from moha palette ── */
.m-key-success { color: #3fb950; font-weight: 600; }
.m-turn { white-space: pre-wrap; }
