.blog-hero{padding:40px 0 4px}.blog-hero .p-lead{margin-top:2px}.s.blog-main{padding-top:30px}.blog-search{position:relative;max-width:440px;margin:0 0 8px}.blog-search svg{position:absolute;left:15px;top:50%;transform:translateY(-50%);width:16px;height:16px;stroke:var(--text-caption);fill:none;stroke-width:2;pointer-events:none}.blog-search input{width:100%;padding:12px 15px 12px 42px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-4);color:var(--text-primary);font-family:var(--font-display);font-size:var(--type-body);transition:border-color var(--dur-1) var(--ease-out),background var(--dur-1) var(--ease-out),box-shadow var(--dur-1) var(--ease-out)}.blog-search input::placeholder{color:var(--text-caption)}.blog-search input:hover{border-color:var(--border-hi)}.blog-search input:focus-visible{outline:none;border-color:var(--accent-border);background:var(--glass-bg-hi);box-shadow:0 0 0 3px var(--accent-soft)}.blog-count{font-family:var(--font-mono);font-size:var(--type-mono-sm);color:var(--text-caption);letter-spacing:.3px;margin:0 0 22px}.blog-list{display:flex;flex-direction:column;gap:var(--space-4)}.s a.blog-card{position:relative;display:block;padding:var(--space-5) var(--space-6);color:inherit;font-weight:400;overflow:hidden;transition:border-color var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out)}.blog-card:before{content:"";position:absolute;top:0;left:26px;right:26px;height:2px;background:linear-gradient(90deg,var(--accent),transparent 70%);opacity:.55;transition:opacity var(--dur-2) var(--ease-out)}.s a.blog-card:focus-visible,.s a.blog-card:hover{border-color:var(--accent-border);background:var(--glass-bg-hi);color:inherit}.s a.blog-card:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.s a.blog-card:focus-visible:before,.s a.blog-card:hover:before{opacity:1}.blog-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-4);font-family:var(--font-mono);font-size:var(--type-mono-sm);color:var(--text-caption);margin-bottom:14px}.blog-card-cat{color:var(--accent-text);background:var(--accent-soft);border:1px solid var(--accent-border);padding:2px 9px;border-radius:var(--radius-1);font-weight:600;letter-spacing:.6px;text-transform:uppercase}.blog-card h3{font-size:var(--type-mkt-card-h);font-weight:700;color:var(--text-primary);letter-spacing:-.02em;line-height:1.2;margin:0 0 10px;transition:color var(--dur-2) var(--ease-out)}.s a.blog-card:focus-visible h3,.s a.blog-card:hover h3{color:var(--accent-text)}.blog-card-dek{font-size:var(--type-mkt-body);color:var(--text-muted);line-height:1.65;max-width:64ch;margin:0 0 14px}.blog-card-more{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:var(--type-body-xs);color:var(--text-secondary)}.blog-card-more .arr{color:var(--accent-text);font-weight:700;transition:transform var(--dur-2) var(--ease-out)}.s a.blog-card:focus-visible .blog-card-more .arr,.s a.blog-card:hover .blog-card-more .arr{transform:translateX(3px)}.blog-empty{padding:var(--space-7) 4px;font-size:var(--type-body);color:var(--text-muted)}.blog-pager{display:flex;align-items:center;flex-wrap:wrap;row-gap:16px;column-gap:var(--space-2);margin:34px 0 4px}.blog-pager button{position:relative;min-width:38px;height:38px;padding:0 12px;border-radius:var(--radius-3);border:1px solid var(--glass-border);background:var(--glass-bg);color:var(--text-secondary);font-family:var(--font-mono);font-size:var(--type-body-xs);cursor:pointer;transition:border-color var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out),background var(--dur-1) var(--ease-out)}.blog-pager button:after{content:"";position:absolute;top:-6px;bottom:-6px;left:-5px;right:-5px}.blog-pager button:hover:not(:disabled){border-color:var(--accent-border);color:var(--text-primary)}.blog-pager button:focus-visible{outline:none;border-color:var(--accent-border);box-shadow:0 0 0 3px var(--accent-soft)}.blog-pager button.is-current{background:var(--accent-fill);border-color:var(--accent);color:#fff;font-weight:600}.blog-pager button:disabled{opacity:.4;cursor:default}.blog-pager .pg-arrow{font-size:15px}.art-head{padding:var(--space-8) 0 var(--space-1)}.art-head .mkt-wrap{z-index:2}.art-head-inner{max-width:830px;margin:0 auto;text-align:center;padding:0 32px}.art-head-inner .p-eyebrow{justify-content:center}.art-head-inner h1{font-size:var(--type-mkt-article);font-weight:700;letter-spacing:-.04em;line-height:1.05;color:var(--text-primary);max-width:20ch;margin:0 auto 18px;text-wrap:balance}.art-preview{font-size:var(--type-mkt-lede);color:var(--text-muted);line-height:1.6;max-width:54ch;margin:0 auto;text-wrap:pretty}.art-preview strong{color:var(--text-secondary);font-weight:600}.art-byline{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--space-3) var(--space-4);margin-top:26px}.byline-author{display:inline-flex;align-items:center;gap:10px;font-size:var(--type-body);font-weight:600;color:var(--text-primary);transition:color var(--dur-2) var(--ease-out)}.byline-author:hover{color:var(--accent-text)}.byline-author:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-soft);border-radius:var(--radius-2)}.byline-av{width:32px;height:32px;border-radius:50%;object-fit:cover;border:1.5px solid var(--accent-border);transition:border-color var(--dur-2) var(--ease-out)}.byline-author:hover .byline-av{border-color:var(--accent)}.byline-meta{display:inline-flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);font-family:var(--font-mono);font-size:var(--type-body-xs);color:var(--text-caption)}.byline-meta span+span:before{content:"·";margin-right:var(--space-3);color:var(--text-caption)}.byline-meta b{color:var(--text-secondary);font-weight:600}.ai-ask{display:flex;justify-content:center;margin-top:26px}.ai-ask-group{align-items:stretch;gap:6px}.ai-ask-group,.ai-btn{position:relative;display:inline-flex}.ai-btn{align-items:center;justify-content:center;gap:9px;padding:11px 18px;border-radius:11px;background:var(--glass-bg);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);color:var(--text-primary);font-family:var(--font-display);font-size:var(--type-body);font-weight:600;cursor:pointer;transition:border-color var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out)}.ai-btn:after{content:"";position:absolute;top:-4px;bottom:-4px;left:0;right:0}.ai-btn-main{min-width:196px}.ai-btn-toggle{padding:0 13px}.ai-btn-toggle:after{left:-3px;right:-3px}.ai-btn:hover{border-color:var(--accent-border);background:var(--glass-bg-hi);transform:translateY(-1px)}.ai-btn:focus-visible{outline:none;border-color:var(--accent-border);box-shadow:0 0 0 3px var(--accent-soft);z-index:1}.ai-icn{width:17px;height:17px;flex-shrink:0}.ai-btn-toggle svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform var(--dur-3) var(--ease-out)}.ai-ask-group.is-open .ai-btn-toggle svg{transform:rotate(180deg)}.ai-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:200px;padding:6px;background:var(--glass-bg-hi);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-4);box-shadow:var(--elev-2);opacity:0;transform:translateY(-6px);pointer-events:none;transition:opacity var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out);z-index:20}.ai-ask-group.is-open .ai-menu{opacity:1;transform:translateY(0);pointer-events:auto}.ai-menu-item{display:flex;align-items:center;gap:9px;padding:9px 12px;border-radius:var(--radius-3);color:var(--text-secondary);font-size:var(--type-body);transition:background var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out)}.ai-menu-item:hover{background:var(--hover);color:var(--text-primary)}.ai-menu-item:focus-visible{outline:none;box-shadow:0 0 0 2px var(--accent-soft);color:var(--text-primary)}.article-grid{display:grid;grid-template-columns:minmax(0,1fr) var(--space-article-rail);grid-gap:56px;gap:56px;align-items:start}.art-main{max-width:var(--space-article-main);min-width:0}.art-side{position:-webkit-sticky;position:sticky;top:var(--space-toc-offset);display:flex;flex-direction:column;gap:var(--space-4)}.side-card{padding:var(--space-4) var(--space-5)}.side-h{display:block;font-family:var(--font-mono);font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--text-caption);font-weight:600;margin-bottom:14px}.wb-row{display:flex;align-items:center;gap:12px;color:inherit}.wb-row:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-soft);border-radius:var(--radius-3)}.wb-av{width:44px;height:44px;border-radius:50%;object-fit:cover;border:1.5px solid var(--accent-border);flex-shrink:0;transition:border-color var(--dur-2) var(--ease-out)}.wb-row:hover .wb-av{border-color:var(--accent)}.wb-name{font-size:var(--type-h3);font-weight:700;color:var(--text-primary);letter-spacing:-.01em}.wb-role{display:flex;align-items:center;gap:6px;font-size:var(--type-body-xs);color:var(--text-muted);margin-top:3px}.wb-li{width:13px;height:13px;border-radius:2px;opacity:.7;flex-shrink:0}.toc-list{list-style:none;margin:0;padding:0}.toc-link{display:block;padding:7px 0 7px 13px;border-left:2px solid var(--border-hi);font-size:var(--type-body-sm);color:var(--text-muted);line-height:1.45;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color var(--dur-1) var(--ease-out),border-color var(--dur-1) var(--ease-out)}.toc-link:hover{color:var(--text-primary);border-left-color:var(--text-caption)}.toc-link:focus-visible{outline:none;box-shadow:0 0 0 2px var(--accent-soft);color:var(--text-primary)}.toc-link.is-active{color:var(--accent-text);border-left-color:var(--accent);font-weight:600}.art-foot{display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-5);margin-top:var(--space-8);padding-top:var(--space-5);border-top:1px solid var(--border);font-family:var(--font-mono);font-size:var(--type-body-xs);color:var(--text-caption)}.art-foot a{color:var(--accent-text)}.blog-h1{font-size:var(--type-mkt-article);font-weight:700;letter-spacing:-.03em;color:var(--text-primary);margin:0 0 18px}.blog-h2{font-size:var(--type-mkt-h2-article);letter-spacing:-.02em;line-height:1.2;margin:var(--space-7) 0 var(--space-3)}.blog-h2,.blog-h3{font-weight:700;color:var(--text-primary);scroll-margin-top:var(--space-heading-offset)}.blog-h3{font-size:calc(var(--type-h3) + 2px);letter-spacing:-.015em;margin:var(--space-5) 0 10px}.blog-p{font-size:var(--type-mkt-prose);line-height:1.78;color:var(--text-muted);margin:0 0 18px}.blog-lede{font-size:18px;color:var(--text-secondary);line-height:1.7;margin-bottom:26px}.blog-lede strong,.blog-li strong,.blog-p strong{color:var(--text-secondary);font-weight:600}.blog-a{color:var(--accent-text);font-weight:500;border-bottom:1px solid var(--accent-border);transition:color var(--dur-1) var(--ease-out),border-color var(--dur-1) var(--ease-out)}.blog-a:hover{color:var(--accent-text-hi);border-bottom-color:var(--accent-hi)}.blog-a:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-soft);border-radius:var(--radius-1)}.blog-ol,.blog-ul{list-style:none;padding-left:0;margin:0 0 18px}.blog-li{position:relative;padding-left:22px;margin-bottom:9px;font-size:var(--type-mkt-prose);color:var(--text-muted);line-height:1.7}.blog-ul .blog-li:before{content:"";position:absolute;left:0;top:.65em;width:6px;height:6px;background:var(--accent);border-radius:50%}.blog-ol{counter-reset:blog-ol}.blog-ol .blog-li{counter-increment:blog-ol;padding-left:30px}.blog-ol .blog-li:before{content:counter(blog-ol,decimal-leading-zero);position:absolute;left:0;top:.15em;font-family:var(--font-mono);font-size:var(--type-body-xs);font-weight:600;letter-spacing:1px;color:var(--accent-text)}.blog-quote{margin:22px 0;padding-left:var(--space-5);border-left:2px solid var(--accent-border)}.blog-quote p{font-size:calc(var(--type-body) + 1px);color:var(--text-secondary);line-height:1.7;margin:0}.blog-quote-src{display:block;margin-top:8px;font-family:var(--font-mono);font-size:var(--type-mono-sm);color:var(--text-caption)}.blog-quote-src a{color:var(--text-caption);border-bottom:1px solid var(--border-hi)}.blog-hr{border:none;border-top:1px solid var(--border);margin:var(--space-6) 0}.blog-img{max-width:100%;height:auto;border-radius:var(--radius-4);margin:22px 0}.blog-tscroll:focus-visible{outline:none;border-color:var(--accent-border);box-shadow:0 0 0 3px var(--accent-soft)}.blog-table{margin:8px 0}.blog-code-inline{font-family:var(--font-mono);font-size:13px;color:var(--text-secondary);background:var(--tier-core-bg);border:1px solid var(--border);padding:1.5px 6px;border-radius:var(--radius-1)}.blog-pre{overflow-x:auto;margin:20px 0}.blog-vs{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--space-3);gap:var(--space-3);margin:var(--space-5) 0}.blog-vs-col{border:1px solid var(--glass-border);border-radius:var(--radius-4);background:var(--glass-bg);overflow:hidden}.blog-vs-col.is-win{border-color:var(--accent-border)}.blog-vs-h{padding:12px 18px;border-bottom:1px solid var(--border);font-family:var(--font-mono);font-size:var(--type-eyebrow);letter-spacing:1.5px;text-transform:uppercase;font-weight:600;color:var(--text-caption)}.blog-vs-col.is-win .blog-vs-h{color:var(--accent-text)}.blog-vs-col ul{list-style:none;margin:0;padding:8px 0}.blog-vs-col li{padding:9px 18px;font-family:var(--font-mono);font-size:12px;color:var(--text-muted);line-height:1.5;border-bottom:1px solid var(--border)}.blog-vs-col li:last-child{border-bottom:0}.blog-vs-col.is-win li{color:var(--text-secondary)}.blog-vs-col li:before{content:none;display:none}.blog-code-card{background:var(--code-surface);border:1px solid var(--code-border);border-radius:var(--radius-4);margin:20px 0;box-shadow:var(--elev-2)}.blog-code-bar{display:flex;align-items:center;gap:8px;padding:8px 10px 8px 16px;background:var(--code-bar);border-bottom:1px solid var(--code-border);border-top-left-radius:var(--radius-4);border-top-right-radius:var(--radius-4)}.blog-code-bar .lbl{flex:1 1;font-family:var(--font-mono);font-size:var(--type-mono-sm);font-weight:600;color:var(--code-fg-dim);letter-spacing:.5px}.blog-code-card pre{margin:0;padding:17px 20px;font-family:var(--font-mono);font-size:13px;line-height:1.66;color:var(--code-fg);overflow-x:auto;border-bottom-left-radius:var(--radius-4);border-bottom-right-radius:var(--radius-4)}.blog-code-card code{font-family:inherit;font-size:inherit;background:none;border:0;padding:0;color:inherit}.blog-code-bar .copy-btn{position:relative;display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-2);border:1px solid var(--code-border);background:var(--code-bar);color:var(--code-fg-dim);font-family:var(--font-mono);font-size:var(--type-body-xs);cursor:pointer;transition:color var(--dur-1) var(--ease-out),border-color var(--dur-1) var(--ease-out);flex-shrink:0}.blog-code-bar .copy-btn:after{content:"";position:absolute;top:-13px;bottom:-13px;left:-2px;right:-2px}.blog-code-bar .copy-btn:hover{color:var(--code-fg);border-color:var(--code-fg-dim)}.blog-code-bar .copy-btn:focus-visible{outline:none;box-shadow:0 0 0 2px var(--accent-soft)}.blog-code-bar .copy-btn svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2}@media (max-width:960px){.article-grid{grid-template-columns:1fr}.art-side{display:none}.art-main{max-width:760px}}@media (max-width:768px){.blog-search{max-width:none}.s a.blog-card{padding:var(--space-4) var(--space-5)}.art-head{padding:var(--space-7) 0 var(--space-1)}}@media (max-width:640px){.blog-vs{grid-template-columns:1fr}.blog-vs-col.is-win{order:2}.blog-li,.blog-p{font-size:15px}}@media (max-width:380px){.blog-card-meta{gap:var(--space-2) var(--space-3)}.art-foot{flex-direction:column}}:root[data-theme=light] .blog-card:before{opacity:.45}:root[data-theme=light] .s a.blog-card:focus-visible,:root[data-theme=light] .s a.blog-card:hover{border-color:var(--accent-border)}