.article-page,.blog-page{--brand:var(--primary);--ink:var(--foreground);--ink-2:var(--muted-foreground);--bg:var(--background);--line:var(--border);--stock:var(--success);--pill:999px;--radius-sm:0.5rem;--radius:0.875rem;--radius-lg:1.125rem;--shadow-sm:0 1px 2px rgba(20,24,29,0.04),0 1px 3px rgba(20,24,29,0.05);--shadow:0 4px 14px -6px rgba(20,24,29,0.12),0 2px 6px -3px rgba(20,24,29,0.08);--shadow-lg:0 18px 40px -18px rgba(20,40,90,0.22),0 8px 18px -12px rgba(20,24,29,0.12);--shadow-brand:0 12px 26px -10px rgba(38,103,255,0.45)}@keyframes ex-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.animate-up{animation:ex-up .5s cubic-bezier(.16,1,.3,1) both}.crumb{display:flex;flex-wrap:wrap;align-items:center;gap:7px;font-size:13px;margin:4px 0 2px}.crumb,.crumb a{color:var(--ink-3)}.crumb a{transition:color .14s ease}.crumb a:hover{color:var(--brand-ink)}.crumb b{color:var(--ink-2);font-weight:600}.crumb svg{color:var(--ink-3);opacity:.7;flex:none}.blog-main-wrap{padding-top:4px}.blog-head{padding:6px 0 4px}.blog-head .eyebrow{font-family:var(--font-display);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--brand);margin-bottom:8px}.blog-head h1{font-size:34px;font-weight:800;letter-spacing:-.02em}.blog-head p{color:var(--ink-2);margin-top:10px;max-width:580px;font-size:15.5px;line-height:1.55}.bchips{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 6px}.bchip{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:var(--pill);font-family:var(--font-display);font-weight:600;font-size:13.5px;background:var(--brand-soft);color:var(--brand-ink);transition:background .15s ease,color .15s ease,box-shadow .15s ease,transform .12s ease}.bchip:hover{background:var(--brand-soft-2)}.bchip:active{transform:translateY(1px)}.bchip.on{background:var(--brand);color:#fff;box-shadow:var(--shadow-brand)}.bchip .n{font-size:12px;font-weight:700;opacity:.62}.bchip.on .n{opacity:.85}.bcat-menu{display:none;margin:18px 0 6px;position:relative}.bcat-menu summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:8px 16px;cursor:pointer;list-style:none;border:1px solid var(--line-2);border-radius:var(--radius);background:var(--surface);color:var(--ink)}.bcat-menu summary::-webkit-details-marker{display:none}.bcat-menu-label{display:flex;flex-direction:column;min-width:0;line-height:1.25}.bcat-menu-label small{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.bcat-menu-label b{font-family:var(--font-display);font-size:15px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bcat-menu summary svg{flex:none;color:var(--ink-3);transition:transform .15s ease}.bcat-menu[open] summary{border-color:var(--brand)}.bcat-menu[open] summary svg{transform:rotate(180deg);color:var(--brand)}.bcat-menu-panel{display:flex;flex-direction:column;margin-top:6px;padding:4px;max-height:min(60vh,420px);overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--line-2);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.bcat-menu-panel a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:8px 12px;border-radius:var(--radius-sm);font-family:var(--font-display);font-weight:600;font-size:14.5px;color:var(--ink-2)}.bcat-menu-panel a.on,.bcat-menu-panel a:hover{background:var(--brand-soft);color:var(--brand-ink)}.bcat-menu-panel a .n{font-family:var(--font-mono);font-size:12px;opacity:.7}@media (max-width:760px){.bchips--desktop{display:none}.bcat-menu{display:block}}.cat-pill{display:inline-flex;align-items:center;align-self:flex-start;gap:5px;padding:5px 11px;border-radius:var(--pill);background:var(--brand-soft);color:var(--brand-ink);font-family:var(--font-display);font-weight:700;font-size:11.5px;letter-spacing:.02em;transition:background .15s ease;cursor:pointer}a.cat-pill:hover{background:var(--brand-soft-2)}.byline{gap:9px;color:var(--ink-3);flex-wrap:wrap}.byline,.byline .av{display:flex;align-items:center;font-size:13px}.byline .av{width:34px;height:34px;border-radius:50%;flex:none;background:var(--brand-soft);color:var(--brand-ink);justify-content:center;font-weight:700;font-family:var(--font-display);overflow:hidden}.byline b{color:var(--ink);font-weight:600}.dot{color:var(--ink-3)}.feat{display:grid;grid-template-columns:1.15fr 1fr;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow);margin:18px 0 40px}.feat-media{position:relative;min-height:360px;background:var(--brand-soft)}.feat-flag{position:absolute;top:18px;left:18px;z-index:2}.feat-body{padding:44px 46px;display:flex;flex-direction:column;justify-content:center}.feat-body h2{font-size:33px;font-weight:800;line-height:1.08;letter-spacing:-.02em;margin:16px 0 0;transition:color .15s ease}.feat-body h2 a{color:inherit}.feat-body h2 a:hover{color:var(--brand-ink)}.feat-ex{color:var(--ink-2);font-size:16px;line-height:1.6;max-width:470px;margin-top:14px}.feat-foot{margin-top:28px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}.badge-best{gap:6px;font-size:12px;padding:6px 12px}.badge-best,.ex-cta{display:inline-flex;align-items:center;background:var(--brand);color:#fff;box-shadow:var(--shadow-brand);font-family:var(--font-display);font-weight:700;border-radius:var(--pill)}.ex-cta{gap:8px;font-size:14px;padding:11px 20px;transition:filter .15s ease,transform .12s ease}.ex-cta:hover{filter:brightness(1.06)}.ex-cta:active{transform:translateY(1px)}.ex-outline{display:inline-flex;align-items:center;gap:8px;background:var(--surface);color:var(--ink);border:1px solid var(--line);font-family:var(--font-display);font-weight:700;font-size:14px;padding:12px 22px;border-radius:var(--pill);transition:border-color .15s ease,color .15s ease}.ex-outline:hover{border-color:var(--brand);color:var(--brand-ink)}.blog-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:36px;align-items:start;padding-bottom:64px}.blog-page.no-side .blog-layout{grid-template-columns:minmax(0,1fr)}.blog-main{min-width:0}.blog-sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:20px}.blog-sec-head h3{font-size:22px;font-weight:700}.blog-sec-head .count{color:var(--ink-3);font-size:13.5px;white-space:nowrap}.blog-grid{display:grid;gap:20px}.blog-grid,.blog-page.no-side .blog-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}.blog-grid.is-horizontal{grid-template-columns:1fr}.bcard{position:relative;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.bcard:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--brand-soft-2)}.bcard-media{position:relative;aspect-ratio:16/10;background:var(--brand-soft);display:block}.bcard-media-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--brand-soft),var(--brand-soft-2))}.bcard-media-fallback span{font-family:var(--font-display);font-weight:800;font-size:40px;color:rgba(27,79,214,.32)}.read-pill{position:absolute;bottom:10px;right:10px;z-index:2;background:rgba(15,19,32,.74);color:#fff;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);font-size:11px;font-weight:600;padding:4px 10px;border-radius:var(--pill)}.bcard-body{display:flex;flex-direction:column;gap:9px;padding:18px;flex:1}.bcard-title{font-family:var(--font-display);font-size:16.5px;font-weight:700;line-height:1.28;color:var(--ink);transition:color .15s ease;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.bcard-title a{color:inherit}.bcard:hover .bcard-title{color:var(--brand-ink)}.bcard-ex{font-size:13.5px;color:var(--ink-2);line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.bcard-meta{margin-top:auto;padding-top:6px;display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-3);flex-wrap:wrap}.bcard-meta b{color:var(--ink-2);font-weight:600}.blog-more{margin-top:30px;display:flex;justify-content:center}.blog-empty{text-align:center;padding:56px 24px;color:var(--ink-3);border:1px dashed var(--line);border-radius:var(--radius);background:var(--surface-2)}.blog-empty .ic{width:60px;height:60px;border-radius:50%;background:var(--bg);display:flex;align-items:center;justify-content:center;margin:0 auto 14px}.blog-side{position:sticky;top:140px;display:flex;flex-direction:column;gap:20px}.bmod{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.bmod-head{padding:17px 18px 0}.bmod-head h4{font-family:var(--font-display);font-size:15px;font-weight:700;display:flex;align-items:center;gap:8px}.bmod-head h4 svg{color:var(--brand)}.bmod-body{padding:12px 18px 16px}.catlist{display:flex;flex-direction:column}.catlist li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 2px;font-size:14px;color:var(--ink-2);border-bottom:1px solid var(--line-2);transition:color .12s ease}.catlist li:last-child{border-bottom:none}.catlist a.catlist-row{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;color:inherit}.catlist li:hover{color:var(--brand-ink)}.catlist .n,.catlist li.on{color:var(--brand-ink);font-weight:700}.catlist .n{background:var(--brand-soft);font-size:11.5px;padding:2px 9px;border-radius:var(--pill)}.catlist li.on .n{background:var(--brand);color:#fff}.pop{display:flex;flex-direction:column}.pop-item{display:flex;gap:14px;padding:12px 2px;border-bottom:1px solid var(--line-2)}.pop-item:last-child{border-bottom:none}.pop-n{font-family:var(--font-display);font-weight:800;font-size:21px;color:var(--brand-soft-2);line-height:1;width:22px;flex:none;transition:color .12s ease}.pop-item:hover .pop-n{color:var(--brand)}.pop-title{font-size:13.5px;font-weight:600;color:var(--ink);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.pop-item:hover .pop-title{color:var(--brand-ink)}.pop-meta{margin-top:5px;font-size:12px;color:var(--ink-3)}.sb-note{font-size:12.5px;color:var(--ink-3);margin:0 0 8px}.sb{display:flex;flex-direction:column;gap:4px}.sb-item{display:flex;align-items:center;gap:12px;padding:9px;margin:0 -9px;border-radius:12px;transition:background .12s ease}.sb-item:hover,.sb-thumb{background:var(--bg)}.sb-thumb{position:relative;width:54px;height:54px;border-radius:10px;flex:none;overflow:hidden;border:1px solid var(--line-2)}.sb-info{flex:1;min-width:0}.sb-name{font-size:12.5px;font-weight:600;color:var(--ink);line-height:1.32;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.sb-add{width:36px;height:36px;border-radius:10px;flex:none;background:var(--brand-soft);color:var(--brand);display:flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease}.sb-add:hover{background:var(--brand);color:#fff}.sb-add:disabled{opacity:.6;cursor:default}.blog-page.compact .feat-body{padding:30px 32px}.blog-page.compact .feat-media{min-height:290px}.blog-page.compact .feat-body h2{font-size:28px}.blog-page.compact .feat{margin-bottom:28px}.blog-page.compact .blog-layout{gap:26px}.blog-page.compact .blog-grid{gap:14px}.blog-page.compact .bcard-body{padding:14px;gap:7px}.article-wrap{padding-top:4px}.article-page .article-wrap>.container{display:flex;flex-direction:column;align-items:center}.article-page .art-head,.article-page .art-hero,.article-page .art-related,.article-page .crumb,.article-page .prose-rich{width:100%}.article-page .crumb{max-width:1100px}.article-page .art-head{margin-inline:auto}.article-page .art-hero{max-width:740px}.article-page .prose-rich{margin-inline:auto}.article-page .art-related{max-width:880px}.article-body-layout{display:grid;grid-template-columns:190px minmax(0,740px);align-items:start;gap:32px;width:100%;max-width:962px;margin-inline:auto}.article-body-layout--no-toc{grid-template-columns:minmax(0,740px);justify-content:center}.article-toc{position:sticky;top:112px;max-height:calc(100vh - 136px);overflow-y:auto;padding:4px 0 8px;scrollbar-width:thin}.article-toc-title{margin:0 0 12px;color:var(--ink-3);font-family:var(--font-mono);font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.article-toc ol{display:flex;flex-direction:column;gap:4px;list-style:none}.article-toc li,.article-toc ol{margin:0;padding:0}.article-toc a{display:block;border-left:2px solid transparent;padding:5px 10px;color:var(--ink-3);font-size:12.5px;line-height:1.4;text-decoration:none;overflow-wrap:anywhere;transition:border-color .15s ease,color .15s ease,background .15s ease}.article-toc a.is-active,.article-toc a:hover{border-left-color:var(--brand);color:var(--brand-ink);background:var(--brand-soft)}.article-toc .article-toc-sub a{padding-left:20px;font-size:12px}.article-toc-mobile{display:none;margin:4px 0 22px}.article-toc-mobile summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:8px 16px;cursor:pointer;list-style:none;border:1px solid var(--line-2);border-radius:var(--radius);background:var(--surface-2);color:var(--ink)}.article-toc-mobile summary::-webkit-details-marker{display:none}.article-toc-mobile-label{display:flex;flex-direction:column;min-width:0;line-height:1.25}.article-toc-mobile-label small{font-family:var(--font-mono);font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.article-toc-mobile-label b{font-family:var(--font-display);font-size:14.5px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.article-toc-mobile summary svg{flex:none;color:var(--ink-3);transition:transform .15s ease}.article-toc-mobile[open] summary{border-color:var(--brand)}.article-toc-mobile[open] summary svg{transform:rotate(180deg);color:var(--brand)}.article-toc-mobile nav{margin-top:6px;padding:6px;max-height:min(60vh,420px);overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--line-2);border-radius:var(--radius);background:var(--surface)}.article-toc-mobile ol{display:flex;flex-direction:column;gap:2px;margin:0;padding:0;list-style:none}.article-toc-mobile li{margin:0;padding:0}.article-toc-mobile a{display:flex;align-items:center;min-height:44px;padding:8px 12px;border-left:2px solid transparent;border-radius:var(--radius-sm);color:var(--ink-2);font-size:14px;line-height:1.35;text-decoration:none;overflow-wrap:anywhere}.article-toc-mobile a.is-active,.article-toc-mobile a:hover{border-left-color:var(--brand);color:var(--brand-ink);background:var(--brand-soft)}.article-toc-mobile .article-toc-sub a{padding-left:26px;font-size:13px}.art-head{max-width:820px;padding:8px 0 4px}.art-head h1{font-size:40px;font-weight:800;line-height:1.08;letter-spacing:-.025em;margin:14px 0 0;text-wrap:balance;overflow-wrap:anywhere}.art-sub{color:var(--ink-2);font-size:18px;line-height:1.55;margin-top:16px;max-width:680px}.art-byline{margin-top:22px}.art-hero{position:relative;margin:28px 0 8px;border:1px solid var(--line-2);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);aspect-ratio:2.4/1;background:var(--brand-soft)}.art-hero-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--brand-soft),var(--brand-soft-2))}.art-hero-fallback span{font-family:var(--font-display);font-weight:800;font-size:64px;color:rgba(27,79,214,.3)}.prose-rich{max-width:740px;width:100%;min-width:0;color:var(--ink-2);font-size:16.5px;line-height:1.72}.article-page.width-wide .prose-rich{max-width:880px}.prose-rich>*{scroll-margin-top:132px}@media (min-width:640px) and (max-width:999px){.prose-rich>*{scroll-margin-top:186px}}@media (min-width:1000px){.prose-rich>*{scroll-margin-top:150px}}.prose-rich h2{font-family:var(--font-display);font-size:25px;font-weight:700;color:var(--ink);letter-spacing:-.02em;line-height:1.2;margin:44px 0 14px;padding-top:4px}.prose-rich h2:first-child{margin-top:8px}.prose-rich h3{font-family:var(--font-display);font-size:19px;font-weight:700;color:var(--ink);margin:30px 0 10px}.prose-rich p{margin:0 0 18px}.prose-rich ol,.prose-rich ul{margin:0 0 20px;padding-left:4px;display:flex;flex-direction:column;gap:10px}.prose-rich li{position:relative;padding-left:28px}.prose-rich ul li:before{content:"";position:absolute;left:6px;top:11px;width:7px;height:7px;border-radius:50%;background:var(--brand)}.prose-rich ol{counter-reset:li}.prose-rich ol li{counter-increment:li}.prose-rich ol li:before{content:counter(li);position:absolute;left:0;top:1px;width:22px;height:22px;border-radius:50%;background:var(--brand-soft);color:var(--brand-ink);font-family:var(--font-display);font-weight:700;font-size:12px;display:flex;align-items:center;justify-content:center}.prose-rich strong{color:var(--ink);font-weight:700}.prose-rich em{font-style:italic}.prose-link,.prose-rich a{color:var(--brand-ink);font-weight:600;text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1.5px;text-decoration-color:var(--brand-soft-2);overflow-wrap:anywhere}.prose-link:hover,.prose-rich a:hover{text-decoration-color:var(--brand)}.prose-rich :not(pre)>code{font-family:var(--font-mono);font-size:14px;background:var(--brand-soft);color:var(--brand-ink);padding:2px 7px;border-radius:6px;font-weight:500;overflow-wrap:anywhere}.prose-rich blockquote{border-left:3px solid var(--brand-soft-2);padding:2px 0 2px 20px;margin:24px 0;font-style:italic;color:var(--ink-2)}.prose-rich img{max-width:100%;height:auto;border-radius:var(--radius);margin:24px 0}.prose-rich figure{margin:26px 0}.prose-rich figcaption{margin-top:10px;font-size:13px;color:var(--ink-3);text-align:center}.art-table-wrap{margin:24px 0;overflow-x:auto;border:1px solid var(--line-2);border-radius:var(--radius-sm);background-color:var(--surface);background-image:linear-gradient(to right,var(--surface) 40%,rgba(20,24,29,0)),linear-gradient(to left,var(--surface) 40%,rgba(20,24,29,0)),linear-gradient(to right,rgba(20,24,29,.14),rgba(20,24,29,0)),linear-gradient(to left,rgba(20,24,29,.14),rgba(20,24,29,0));background-position:0,100%,0,100%;background-repeat:no-repeat;background-size:24px 100%,24px 100%,10px 100%,10px 100%;background-attachment:local,local,scroll,scroll;-webkit-overflow-scrolling:touch}.art-table-wrap table{width:100%;border-collapse:collapse;font-size:14.5px}.art-table-wrap--wide table{min-width:calc(var(--cols, 4) * 7.5rem)}.art-table-wrap th{background:var(--brand-soft);color:var(--brand-ink);font-family:var(--font-display);font-weight:700;text-align:left}.art-table-wrap td,.art-table-wrap th{padding:12px 16px;overflow-wrap:break-word}.art-table-wrap td{border-top:1px solid var(--line-2);color:var(--ink-2)}.art-table-wrap td:first-child{font-weight:600;color:var(--ink);white-space:nowrap}@media (max-width:760px){.art-table-wrap table{font-size:13px}.art-table-wrap td,.art-table-wrap th{padding:8px 10px}.art-table-wrap td:first-child{white-space:normal}.art-table-wrap--wide td:first-child,.art-table-wrap--wide th:first-child{position:sticky;left:0;z-index:1;min-width:6rem;max-width:9.5rem;background:linear-gradient(var(--surface),var(--surface)),var(--surface);box-shadow:1px 0 0 var(--line-2)}.art-table-wrap--wide th:first-child{background:linear-gradient(var(--brand-soft),var(--brand-soft)),var(--surface)}.art-table-wrap--tall{max-height:70vh;overflow-y:auto}.art-table-wrap--tall th{position:sticky;top:0;z-index:2;background:linear-gradient(var(--brand-soft),var(--brand-soft)),var(--surface)}.art-table-wrap--tall.art-table-wrap--wide th:first-child{z-index:3}}.callout{display:flex;gap:14px;padding:16px 18px;border-radius:var(--radius);margin:24px 0;border:1px solid var(--line-2);background:var(--surface-2)}.callout-ic{width:36px;height:36px;border-radius:10px;flex:none;display:flex;align-items:center;justify-content:center}.callout-body b{display:block;font-family:var(--font-display);font-size:13px;font-weight:700;margin-bottom:3px;letter-spacing:.01em}.callout-body p{margin:0!important;font-size:15px;line-height:1.6;color:var(--ink-2)}.callout--note{background:var(--brand-soft);border-color:var(--brand-soft-2)}.callout--note .callout-ic{background:#fff;color:var(--brand)}.callout--note .callout-body b{color:var(--brand-ink)}.callout--tip{background:var(--stock-soft);border-color:#cdeede}.callout--tip .callout-ic{background:#fff;color:var(--stock)}.callout--tip .callout-body b{color:var(--stock)}.callout--warn{background:#fff7e8;border-color:#ffe6b8}.callout--warn .callout-ic{background:#fff;color:#c2730a}.callout--warn .callout-body b{color:#c2730a}.codeblock{margin:24px 0;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);border:1px solid #0b0e18}.cb-head{display:flex;align-items:center;gap:12px;padding:11px 14px;background:#151a2b;border-bottom:1px solid #232a40}.cb-dots{display:flex;gap:6px;flex:none}.cb-dots i{width:11px;height:11px;border-radius:50%;background:#2e3650}.cb-file{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono);font-size:12.5px;color:#8b95ad;font-weight:500}.cb-copy{margin-left:auto;flex:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-family:var(--font-display);font-size:12px;font-weight:600;color:#aeb8d0;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);padding:6px 11px;border-radius:var(--pill);transition:background .14s ease,color .14s ease}.cb-copy:hover{background:rgba(255,255,255,.12);color:#fff}.cb-copy.done{color:#6fe39a}.cb-pre{margin:0;padding:16px 0;overflow:auto;max-height:420px;-webkit-overflow-scrolling:touch;background-color:#0f1320;background-image:linear-gradient(#0f1320 30%,rgba(15,19,32,0)),linear-gradient(rgba(15,19,32,0),#0f1320 70%),radial-gradient(farthest-side at 50% 0,rgba(255,255,255,.14),rgba(255,255,255,0)),radial-gradient(farthest-side at 50% 100%,rgba(255,255,255,.14),rgba(255,255,255,0));background-position:top,bottom,top,bottom;background-repeat:no-repeat;background-size:100% 28px,100% 28px,100% 10px,100% 10px;background-attachment:local,local,scroll,scroll}.cb-pre:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}@media (min-width:1000px){.cb-pre{max-height:520px}}.cb-pre code{font-family:var(--font-mono);font-size:13.5px;line-height:1.7;display:block;min-width:max-content}.cb-line{display:flex;padding:0}.cb-line:hover{background:rgba(255,255,255,.03)}.cb-ln{flex:none;position:sticky;left:0;z-index:1;width:48px;text-align:right;padding:0 18px 0 0;background:#0f1320;color:#444d68;-webkit-user-select:none;user-select:none}.cb-line:hover .cb-ln{background:#141827}.cb-code{white-space:pre;color:#c7cedd;padding-right:18px}.cb-code .hljs-comment,.cb-code .hljs-quote{color:#5d6a85;font-style:italic}.cb-code .hljs-meta,.cb-code .hljs-meta-keyword{color:#d98fb0}.cb-code .hljs-meta .hljs-string,.cb-code .hljs-regexp,.cb-code .hljs-string,.cb-code .hljs-symbol{color:#9be3a8}.cb-code .hljs-literal-number,.cb-code .hljs-number{color:#ffcf8f}.cb-code .hljs-keyword,.cb-code .hljs-name,.cb-code .hljs-selector-tag,.cb-code .hljs-tag,.cb-code .hljs-type{color:#7aa2ff}.cb-code .hljs-section,.cb-code .hljs-title,.cb-code .hljs-title.function_{color:#b59cff}.cb-code .hljs-attr,.cb-code .hljs-attribute,.cb-code .hljs-built_in,.cb-code .hljs-literal,.cb-code .hljs-variable.constant_{color:#5fd0e6}.cb-code .hljs-params,.cb-code .hljs-property,.cb-code .hljs-variable{color:#c7cedd}.cb-code .hljs-deletion{color:#ff9aa2}.cb-code .hljs-addition{color:#9be3a8}.art-tags{display:flex;flex-wrap:wrap;gap:8px;margin:34px 0 0;padding-top:26px;border-top:1px solid var(--line)}.art-tag{background:var(--bg);color:var(--ink-2);border:1px solid var(--line-2);font-size:12.5px;font-weight:600;padding:6px 12px;border-radius:var(--pill)}.art-related{margin:56px 0 8px}.art-related>h2{font-size:24px;font-weight:800;margin-bottom:22px}.art-related .blog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.article-page.compact .art-head h1{font-size:34px}.article-page.compact .prose-rich{font-size:15.5px;line-height:1.66}.article-page.compact .prose-rich h2{margin-top:34px;font-size:22px}@media (max-width:1100px){.blog-layout,.blog-page.no-side .blog-layout{grid-template-columns:minmax(0,1fr)}.article-body-layout,.article-body-layout--no-toc{grid-template-columns:minmax(0,720px);justify-content:center}.article-toc{display:none}.article-toc-mobile{display:block}.article-page .art-hero{max-width:720px}}@media (max-width:1000px){.prose-rich{max-width:720px;margin:0 auto}}@media (max-width:760px){.feat{grid-template-columns:1fr}.feat-media{min-height:220px}.feat-body{padding:28px 24px}.feat-body h2{font-size:25px}.blog-head h1{font-size:27px}.art-head h1{font-size:30px}.art-sub{font-size:16px}.art-hero{aspect-ratio:16/10}.prose-rich{font-size:16px}.art-related .blog-grid{grid-template-columns:minmax(0,1fr)}}@media (max-width:560px){.feat-body{padding:24px 20px}.art-head h1{font-size:26px}}.art-meta{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:18px;list-style:none}.art-meta,.art-meta li{align-items:center;padding:0}.art-meta li{display:inline-flex;gap:7px;font-size:13.5px;color:var(--ink-2)}.art-meta li:before{display:none}.art-meta svg{color:var(--brand);flex:none}.art-meta a{color:var(--brand-ink);font-weight:600}.art-meta--feat{margin-top:16px;gap:6px 14px;font-size:13px}.art-axes{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.art-axes--foot{margin:34px 0 0;padding-top:26px;border-top:1px solid var(--line)}.cat-pill--ghost{background:transparent;border:1px solid var(--line);color:var(--ink-2)}a.cat-pill--ghost:hover{background:transparent}a.art-tag:hover,a.cat-pill--ghost:hover{border-color:var(--brand);color:var(--brand-ink)}.hub-sec{margin:52px 0 0}.hub-sec--last{padding-bottom:8px}.hub-sec-head{margin-bottom:20px}.hub-sec-head h2{font-family:var(--font-display);font-size:23px;font-weight:800;letter-spacing:-.015em}.hub-sec-head p{margin-top:7px;font-size:14.5px;color:var(--ink-2);max-width:620px}.hub-sec-head--row{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap}.start-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.start-card{position:relative;display:flex;flex-direction:column;gap:6px;padding:22px 24px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line-2);box-shadow:var(--shadow-sm);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.start-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--brand-soft-2)}.start-card b{font-family:var(--font-display);font-size:17px;font-weight:700;color:var(--ink)}.start-card span{font-size:13.5px;color:var(--ink-2);line-height:1.5}.start-card svg{position:absolute;top:22px;right:22px;color:var(--brand);opacity:.5}.tools-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.tool-chip{display:flex;align-items:center;gap:12px;padding:15px 16px;border-radius:var(--radius);border:1px solid var(--line-2);background:var(--surface);transition:border-color .15s ease,transform .15s ease}.tool-chip:hover{border-color:var(--brand);transform:translateY(-2px)}.tool-chip-ic{width:40px;height:40px;flex:none;border-radius:11px;display:flex;align-items:center;justify-content:center;background:var(--brand-soft);color:var(--brand)}.tool-chip b{display:block;font-family:var(--font-display);font-size:14px;font-weight:700;color:var(--ink)}.tool-chip em{display:block;margin-top:2px;font-style:normal;font-size:12.5px;color:var(--ink-3);line-height:1.4}.hub-cta{gap:18px;flex-wrap:wrap;margin:56px 0 64px;padding:24px 26px;border-radius:var(--radius-lg);background:var(--surface-2);border:1px solid var(--line-2)}.hub-cta,.hub-cta-ic{display:flex;align-items:center}.hub-cta-ic{width:46px;height:46px;flex:none;border-radius:13px;justify-content:center;background:var(--brand);color:#fff;box-shadow:var(--shadow-brand)}.hub-cta div{flex:1;min-width:220px}.hub-cta b{font-family:var(--font-display);font-size:16.5px;font-weight:700;color:var(--ink)}.hub-cta p{margin-top:4px;font-size:14px;color:var(--ink-2);line-height:1.5}.bcard-fact{display:inline-flex;align-items:center;gap:5px}.bcard-fact svg{color:var(--brand);opacity:.75}.bcard-date{margin-left:auto}.blog-grid--compact{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr))}.bcard--compact .bcard-body{padding:16px}@media (max-width:1100px){.start-grid,.tools-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.start-grid,.tools-strip{grid-template-columns:minmax(0,1fr)}.hub-cta{padding:20px;gap:14px;margin:40px 0 48px}.hub-cta-ic{width:40px;height:40px}.hub-cta div{min-width:0}}@media (max-width:999px){.bchip,.cat-pill,.cb-copy,.sb-add{min-height:44px}}.bcard--text .bcard-body{padding:20px;gap:10px}.bcard--text .bcard-title{font-size:17.5px;-webkit-line-clamp:3}.bcard--text .bcard-ex{-webkit-line-clamp:3}.blog-product-cta{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:24px 0;padding:18px;border:1px solid var(--line-2);border-radius:var(--radius);background:var(--surface-2)}.blog-product-cta>div:first-child{display:grid;gap:3px}.blog-product-cta b{font-family:var(--font-display);color:var(--ink)}.blog-product-cta span{color:var(--ink-2);font-family:var(--font-mono);font-size:13px}.blog-product-cta-actions{display:flex;flex-wrap:wrap;gap:9px}.blog-product-cta .ex-cta,.blog-product-cta .ex-outline{padding:9px 13px;font-size:12.5px}.prose-rich .blog-product-cta-actions a.ex-cta,.prose-rich .blog-product-cta-actions a.ex-cta:hover{color:#fff;text-decoration:none}.prose-rich .blog-product-cta-actions a.ex-outline{color:var(--ink);text-decoration:none}.prose-rich .blog-product-cta-actions a.ex-outline:hover{color:var(--brand-ink);text-decoration:none}.blog-parts{display:grid;gap:10px;margin:24px 0}.blog-parts .blog-product-cta{margin:0}.affiliate-disclosure{display:flex;align-items:flex-start;gap:10px;margin:0 0 26px;padding:12px 14px;border:1px solid var(--line-2);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--ink-2);font-size:13.5px;line-height:1.55}.affiliate-disclosure svg{flex:none;margin-top:3px;color:var(--ink-3)}.affiliate-disclosure p{margin:0}.blog-embed{margin:28px 0}.blog-embed-frame{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;border-radius:var(--radius);background:#0e1116;box-shadow:var(--shadow-sm)}.blog-embed-frame iframe,.blog-embed-frame img{position:absolute;inset:0;width:100%;height:100%;border:0}.blog-embed-frame img{object-fit:cover;margin:0;border-radius:0}.blog-embed-play{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:pointer;color:#fff}.blog-embed-icon{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(14,17,22,.72);color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,.85);transition:transform .15s ease,background .15s ease}.blog-embed-icon svg{margin-left:3px}.blog-embed-play:hover .blog-embed-icon{background:var(--brand);transform:translate(-50%,-50%) scale(1.06)}.blog-embed-play:focus-visible{outline:3px solid var(--brand);outline-offset:3px;border-radius:var(--radius)}.blog-embed-caption{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 16px;margin:10px 0 0;font-size:13px;line-height:1.45;color:var(--ink-3)}.blog-embed-link,.prose-rich .blog-embed-caption a{display:inline-flex;align-items:center;gap:4px;flex:none;font-size:13px;font-weight:600;color:var(--brand-ink);text-decoration:none}.prose-rich .blog-embed-caption a:hover{text-decoration:underline}.blog-embed--short .blog-embed-frame{aspect-ratio:9/16;width:min(100%,320px,calc(70vh * 9 / 16));margin-inline:auto}.blog-embed--short .blog-embed-caption{width:min(100%,320px);margin-inline:auto}.blog-embed--instagram .blog-embed-card{display:block;width:min(100%,360px);margin-inline:auto;text-decoration:none}.blog-embed--instagram .blog-embed-frame{aspect-ratio:4/5;border:1px solid var(--line-2)}.blog-embed--instagram .blog-embed-card:hover .blog-embed-frame{box-shadow:var(--shadow)}.blog-embed--instagram .blog-embed-card:focus-visible{outline:3px solid var(--brand);outline-offset:3px;border-radius:var(--radius)}.blog-embed-placeholder{position:absolute;inset:0;background:linear-gradient(135deg,var(--brand-soft),var(--brand-soft-2))}@media (prefers-reduced-motion:reduce){.blog-embed-icon{transition:none}.blog-embed-play:hover .blog-embed-icon{transform:translate(-50%,-50%)}}@media (max-width:640px){.blog-product-cta{align-items:stretch;flex-direction:column}.blog-product-cta-actions>*{flex:1;justify-content:center}}@font-face{font-family:Lexend;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/630e0b819503bca7-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Lexend;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/6eed223b32d97b82-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Lexend;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/793968fa3513f5d6-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Lexend Fallback;src:local("Arial");ascent-override:90.98%;descent-override:22.74%;line-gap-override:0.00%;size-adjust:109.91%}.__className_9d0602{font-family:Lexend,Lexend Fallback;font-style:normal}.__variable_9d0602{--font-display:"Lexend","Lexend Fallback"}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Plus Jakarta Sans Fallback;src:local("Arial");ascent-override:98.88%;descent-override:21.15%;line-gap-override:0.00%;size-adjust:104.98%}.__className_532bb9{font-family:Plus Jakarta Sans,Plus Jakarta Sans Fallback;font-style:normal}.__variable_532bb9{--font-sans:"Plus Jakarta Sans","Plus Jakarta Sans Fallback"}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/886030b0b59bc5a7-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/0aa834ed78bf6d07-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/67957d42bae0796d-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/f911b923c6adde36-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/939c4f875ee75fbb-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/bb3ef058b751a6ad-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono Fallback;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_4dc837{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.__variable_4dc837{--font-mono:"JetBrains Mono","JetBrains Mono Fallback"}