:root{--ink: #0E0B14;--ink-2: #2A2533;--mute: #6B6677;--rule: #E8E5EE;--paper: #FFFFFF;--soft: #FAF8F4;--purple: #9B6DFF;--purple-deep: #6B4DB8;--purple-light: #EDE6FF;--purple-soft: #F5F0FF;--sans: "Inter", system-ui, sans-serif;--serif: "Source Serif 4", Georgia, serif;--serif-weight: 600;--mono: "JetBrains Mono", ui-monospace, monospace}.v1-nav-links a.active{color:var(--purple);font-weight:500}.b-col{max-width:760px}.b-serif{font-family:var(--serif);font-weight:var(--serif-weight);font-style:normal;font-synthesis:none}.b-hero{padding:64px 0 8px}.b-hero h1{font-family:var(--serif);font-weight:var(--serif-weight);font-synthesis:none;font-size:clamp(44px,7vw,68px);line-height:1.02;margin:0 0 14px;letter-spacing:-.01em}.b-hero p{color:var(--mute);font-size:19px;margin:0;max-width:620px}.b-list{list-style:none;margin:44px 0 88px;padding:0}.b-item{border-bottom:1px solid var(--rule)}.b-item:first-child{border-top:1px solid var(--rule)}.b-item-link{display:flex;gap:28px;align-items:center;padding:30px 4px;text-decoration:none;color:inherit;border-radius:12px;transition:background .15s ease}.b-item-link:hover{background:var(--purple-soft)}.b-item-body{flex:1 1 auto;min-width:0}.b-item h2{font-family:var(--serif);font-weight:var(--serif-weight);font-synthesis:none;font-size:30px;line-height:1.12;margin:0 0 8px;transition:color .15s ease}.b-item-link:hover h2{color:var(--purple-deep)}.b-item p{color:var(--mute);margin:0 0 12px}.b-item-thumb{flex:0 0 auto;width:168px;height:116px;border-radius:12px;overflow:hidden;border:1px solid var(--rule);background:var(--soft)}.b-item-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease}.b-item-link:hover .b-item-thumb img{transform:scale(1.04)}@media(max-width:560px){.b-item-link{gap:16px;padding:22px 4px}.b-item-thumb{width:96px;height:72px}.b-item h2{font-size:24px}.b-content table{font-size:14.5px}.b-content th,.b-content td{padding:9px 12px}}.b-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:13px;color:var(--mute);font-family:var(--mono)}.b-dot{width:3px;height:3px;border-radius:50%;background:var(--rule)}.b-tags{display:flex;flex-wrap:wrap;gap:8px}.b-tag{font-family:var(--mono);font-size:12px;color:var(--purple-deep);background:var(--purple-soft);border:1px solid var(--purple-light);border-radius:999px;padding:3px 10px}.b-article{padding:56px 0 96px}.b-article-grid{display:flex;flex-direction:column}.b-article-head{max-width:760px}.b-toc{max-width:760px;margin:0 0 34px;padding:14px 18px;background:var(--soft);border:1px solid var(--rule);border-radius:10px}.b-toc-summary{display:flex;justify-content:space-between;gap:12px;cursor:pointer;list-style:none;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--purple-deep)}.b-toc-summary::-webkit-details-marker{display:none}.b-toc-summary:after{content:"+";font-family:var(--mono)}.b-toc[open] .b-toc-summary:after{content:"–"}.b-toc-nav ol{list-style:none;margin:14px 0 0;padding:0}.b-toc-nav li{margin:0}.b-toc-nav a{display:block;font-size:14.5px;line-height:1.4;color:var(--ink-2);text-decoration:none;border-left:2px solid transparent;padding:6px 0 6px 12px;margin-left:-14px;transition:color .15s ease,border-color .15s ease}.b-toc-nav a:hover{color:var(--purple-deep)}.b-toc-nav a.active{color:var(--purple-deep);font-weight:600;border-left-color:var(--purple)}@media(min-width:1080px){.b-article-grid{display:grid;grid-template-columns:minmax(0,760px) 236px;column-gap:48px;align-items:start}.b-article-head{grid-column:1;grid-row:1}.b-article-grid>.b-col{grid-column:1;grid-row:2}.b-toc{grid-column:2;grid-row:1 / span 2}.b-toc{position:sticky;top:96px;max-width:none;margin:0;padding:2px 0 2px 16px;background:none;border:none;border-left:1px solid var(--rule);max-height:calc(100vh - 140px);overflow-y:auto}.b-toc-summary{pointer-events:none;margin-bottom:4px}.b-toc-summary:after{content:none}.b-toc-nav ol{margin-top:10px}.b-toc-nav a{margin-left:-18px;padding-left:16px}}.b-back{font-family:var(--mono);font-size:13px;color:var(--mute);text-decoration:none}.b-back:hover{color:var(--purple-deep)}.b-article h1{font-family:var(--serif);font-weight:var(--serif-weight);font-synthesis:none;font-size:clamp(38px,6vw,56px);line-height:1.06;letter-spacing:-.01em;margin:20px 0 16px}.b-article-meta{margin-bottom:36px}.b-content{font-size:18px;line-height:1.7;color:var(--ink-2)}.b-content h2{font-family:var(--serif);font-weight:var(--serif-weight);font-synthesis:none;font-size:32px;line-height:1.18;color:var(--ink);margin:46px 0 12px;scroll-margin-top:96px}.b-content h3{font-weight:600;font-size:21px;color:var(--ink);margin:34px 0 10px}.b-content p{margin:0 0 20px}.b-content a:not(.b-cta-btn){color:var(--purple-deep);text-decoration:underline;text-underline-offset:2px}.b-content ul,.b-content ol{margin:0 0 20px;padding-left:24px}.b-content li{margin:6px 0}.b-content img{max-width:100%;height:auto;border-radius:10px;border:1px solid var(--rule)}.b-content blockquote{margin:24px 0;padding:4px 20px;border-left:3px solid var(--purple);color:var(--ink-2);background:var(--purple-soft);border-radius:0 8px 8px 0}.b-content code{font-family:var(--mono);font-size:.9em;background:var(--soft);border:1px solid var(--rule);border-radius:5px;padding:1px 6px}.b-content pre{font-family:var(--mono);background:var(--ink);color:#fff;padding:18px 20px;border-radius:10px;overflow-x:auto;font-size:14px;line-height:1.6}.b-content pre code{background:none;border:none;padding:0;color:inherit}.b-table-wrap{margin:28px 0;overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--rule);border-radius:10px}.b-content table{width:100%;border-collapse:collapse;font-size:15.5px;line-height:1.55}.b-content th,.b-content td{padding:11px 16px;text-align:left;vertical-align:top;border-bottom:1px solid var(--rule)}.b-content th+th,.b-content td+td{border-left:1px solid var(--rule)}.b-content tbody tr:last-child td{border-bottom:none}.b-content thead th{background:var(--soft);color:var(--ink);font-weight:600;white-space:nowrap}.b-content tbody td:first-child{color:var(--ink)}.b-content tbody tr:hover td{background:var(--purple-soft)}.b-hr{border:none;border-top:1px solid var(--rule);margin:40px 0}.b-cta{margin:36px 0;padding:24px 26px;border:1px solid var(--purple-light);border-left:4px solid var(--purple);border-radius:12px;background:var(--purple-soft)}.b-cta-kicker{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--purple-deep);margin-bottom:8px}.b-cta-title{font-family:var(--serif);font-weight:var(--serif-weight);font-synthesis:none;font-size:24px;line-height:1.15;color:var(--ink);margin-bottom:6px}.b-cta-body{color:var(--ink-2);font-size:15px;margin:0 0 16px}.b-cta-btn{display:inline-flex;align-items:center;gap:6px;font-weight:500;font-size:15px;color:#fff;background:var(--ink);padding:10px 20px;border:none;border-radius:999px;text-decoration:none;transition:background .15s ease}.b-cta-btn:hover{background:var(--purple-deep);color:#fff}.b-faq{margin:48px 0 0}.b-faq h2{font-family:var(--serif);font-synthesis:none;font-weight:var(--serif-weight);font-size:30px;margin:0 0 16px;scroll-margin-top:96px}.b-faq details{border-bottom:1px solid var(--rule);padding:16px 0}.b-faq summary{font-weight:600;font-size:17px;color:var(--ink);cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px}.b-faq summary::-webkit-details-marker{display:none}.b-faq summary:after{content:"+";color:var(--purple-deep);font-family:var(--mono)}.b-faq details[open] summary:after{content:"–"}.b-faq details p{color:var(--ink-2);margin:12px 0 0;font-size:16px}.b-byline{display:inline-flex;align-items:center;gap:7px;color:var(--ink-2);text-decoration:none;font-weight:500}.b-byline:hover{color:var(--purple-deep)}.b-byline-pic{width:26px;height:26px;border-radius:50%;object-fit:cover;border:1px solid var(--rule)}.b-author{display:flex;gap:18px;margin:48px 0 0;padding:24px;background:var(--soft);border:1px solid var(--rule);border-radius:12px}.b-author-pic{flex:0 0 auto;width:72px;height:72px;border-radius:50%;object-fit:cover;border:1px solid var(--rule)}.b-author-body{min-width:0}.b-author-kicker{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);margin:0 0 4px}.b-author-name{font-family:var(--serif);font-weight:var(--serif-weight);font-synthesis:none;font-size:22px;line-height:1.2;color:var(--ink);text-decoration:none}.b-author-name:hover{color:var(--purple-deep)}.b-author-title{color:var(--purple-deep);font-size:14px;margin:3px 0 0}.b-author-bio{color:var(--ink-2);font-size:15px;line-height:1.6;margin:10px 0 0}.b-author-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.b-author-links a{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:12px;color:var(--ink-2);text-decoration:none;padding:6px 13px;background:var(--paper);border:1px solid var(--rule);border-radius:999px;transition:color .15s ease,border-color .15s ease}.b-author-links a:hover{color:var(--purple-deep);border-color:var(--purple)}.b-author-icon{flex:0 0 auto;display:block}@media(max-width:560px){.b-author{flex-direction:column;gap:14px;padding:20px}}.b-foot{border-top:1px solid var(--rule);margin-top:24px;padding:28px 0 60px;color:var(--mute);font-size:14px;font-family:var(--mono)}.b-foot a{color:var(--purple-deep);text-decoration:none}@media(max-width:768px){.v1-nav-links a:not(.v1-nav-cta){display:none}.v1-nav-links a[href="/blog"]{display:inline-flex}}
