#lightbox{z-index:9999999;cursor:pointer;background:#000000d9;width:100%;height:100%;line-height:0;display:none;position:fixed;top:0;left:0}#lightbox .img{position:absolute;inset:0;overflow:hidden}#lightbox .img img{pointer-events:none;position:absolute}#lightbox .img img[src$=\.svg]{background:var(--blog-bg);border-radius:12px}#lightbox span{display:none}#lightbox .videoWrapperContainer{-ms-transform:translate(-50%)translateY(-50%);max-width:900px;max-height:100%;position:relative;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}#lightbox .videoWrapperContainer .videoWrapper{background:#000;height:0;margin:0;padding:0 0 56.333%;line-height:0;position:relative}#lightbox .videoWrapper iframe{border:0;width:100%;height:100%;display:block;position:absolute;top:0;left:0}#lightbox #prev,#lightbox #next{cursor:pointer;z-index:99;color:#fff;height:50px;margin-top:-25px;padding:0 15px;font-size:60px;line-height:36px;text-decoration:none;display:none;position:fixed;top:50%}#lightbox.gallery #prev,#lightbox.gallery #next{display:block}#lightbox #prev{left:0}#lightbox #next{right:0}#lightbox #close{cursor:pointer;z-index:99;width:50px;height:50px;text-decoration:none;position:fixed;top:0;right:0}#lightbox #close:after,#lightbox #close:before{content:"";-webkit-transform-origin:50%;-moz-transform-origin:50%;-o-transform-origin:50%;transform-origin:50%;background:#fff;width:23px;height:3px;margin-top:22px;margin-left:14px;position:absolute;-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);-o-transform:rotate(-45deg)}#lightbox #close:after{-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg)}#lightbox,#lightbox *{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.bg{color:#e6edf3;background-color:#0d1117}.chroma{color:#e6edf3;-webkit-text-size-adjust:none;background-color:#0d1117}.chroma .err{color:#f85149}.chroma .lnlinks{color:inherit;outline:none;text-decoration:none}.chroma .lntd{vertical-align:top;border:0;margin:0;padding:0}.chroma .lntable{border-spacing:0;border:0;margin:0;padding:0}.chroma .hl{background-color:#6e7681}.chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;color:#737679;margin-right:.4em;padding:0 .4em}.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;color:#6e7681;margin-right:.4em;padding:0 .4em}.chroma .line{display:flex}.chroma .k{color:#ff7b72}.chroma .kc{color:#79c0ff}.chroma .kd,.chroma .kn{color:#ff7b72}.chroma .kp{color:#79c0ff}.chroma .kr,.chroma .kt{color:#ff7b72}.chroma .nc{color:#f0883e;font-weight:700}.chroma .no{color:#79c0ff;font-weight:700}.chroma .nd{color:#d2a8ff;font-weight:700}.chroma .ni{color:#ffa657}.chroma .ne{color:#f0883e;font-weight:700}.chroma .nl{color:#79c0ff;font-weight:700}.chroma .nn{color:#ff7b72}.chroma .py{color:#79c0ff}.chroma .nt{color:#7ee787}.chroma .nv,.chroma .vc,.chroma .vg,.chroma .vi,.chroma .vm{color:#79c0ff}.chroma .nf,.chroma .fm{color:#d2a8ff;font-weight:700}.chroma .l{color:#a5d6ff}.chroma .ld{color:#79c0ff}.chroma .s{color:#a5d6ff}.chroma .sa{color:#79c0ff}.chroma .sb,.chroma .sc{color:#a5d6ff}.chroma .dl{color:#79c0ff}.chroma .sd,.chroma .s2{color:#a5d6ff}.chroma .se,.chroma .sh{color:#79c0ff}.chroma .si,.chroma .sx{color:#a5d6ff}.chroma .sr{color:#79c0ff}.chroma .s1,.chroma .ss,.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .il,.chroma .mo{color:#a5d6ff}.chroma .o,.chroma .ow{color:#ff7b72;font-weight:700}.chroma .c,.chroma .ch,.chroma .cm,.chroma .c1{color:#8b949e;font-style:italic}.chroma .cs,.chroma .cp,.chroma .cpf{color:#8b949e;font-style:italic;font-weight:700}.chroma .gd{color:#ffa198;background-color:#490202}.chroma .ge{font-style:italic}.chroma .gr{color:#ffa198}.chroma .gh{color:#79c0ff;font-weight:700}.chroma .gi{color:#56d364;background-color:#0f5323}.chroma .go,.chroma .gp{color:#8b949e}.chroma .gs{font-weight:700}.chroma .gu{color:#79c0ff}.chroma .gt{color:#ff7b72}.chroma .gl{text-decoration:underline}.chroma .w{color:#6e7681}*,:before,:after{box-sizing:border-box;border:0 solid}html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5}body,h1,h2,h3,h4,h5,h6,p,blockquote,figure,pre,ol,ul,dl,dd{margin:0}h1,h2,h3,h4,h5,h6,b,strong{font-weight:600}ol,ul{padding:0;list-style:none}button,input,textarea,select{font:inherit}button{background:0 0;padding:0}img,svg,video,canvas,audio,iframe,embed,object{max-width:100%;display:block}img,video{height:auto}.blog-icon{fill:currentColor;vertical-align:-.125em;flex:none;width:1em;height:1em;display:inline-block}:root{color-scheme:light;--blog-bg:#fafafa;--blog-surface:#fff;--blog-surface-muted:#f4f4f5;--blog-surface-card:#fff;--blog-surface-card-hover:#f4f4f5;--blog-surface-footer:#f7f7f8;--blog-text:#18181b;--blog-text-soft:#3f3f46;--blog-muted:#71717a;--blog-border:#e4e4e7;--blog-border-strong:#d4d4d8;--blog-accent:#0369a1;--blog-accent-strong:#075985;--blog-accent-soft:#e0f2fe;--blog-focus-ring:0 0 0 3px color-mix(in srgb, var(--blog-accent) 18%, transparent);--blog-code-bg:#111827;--blog-code-text:#f9fafb;--blog-radius:14px;--blog-radius-sm:8px;--space-nav:4rem;--space-section:clamp(2rem, 5vw, 4rem);--space-article:2rem;--space-card:1rem;--blog-font-sans:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;--blog-font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;--blog-shell:1480px;--blog-shell-gutter:clamp(1.5rem, 4vw, 5rem);--blog-shell-gutter-mobile:.75rem;--blog-reading:76ch;--blog-reading-single:78ch;--blog-reading-header:78ch;--blog-sidebar-ad-width:18.75rem;--blog-sidebar-ad-height:15.625rem;--blog-sidebar-ad-pad-left:.82rem;--blog-aside:calc(var(--blog-sidebar-ad-width) + var(--blog-sidebar-ad-pad-left));--blog-aside-reserve:18rem;--blog-single-gap:clamp(1.5rem, 2.2vw, 1.75rem);--blog-single-columns:minmax(0, 1fr) minmax(0, var(--blog-reading-single)) minmax(calc(var(--blog-aside) + var(--blog-single-gap) * .08 - var(--blog-shell-gutter) + .75rem), 1fr);--blog-sticky-gap:1.25rem;--blog-sticky-top:calc(var(--space-nav) + var(--blog-sticky-gap));--blog-scroll-offset:calc(var(--space-nav) + 2rem);--blog-mobile-nav-offset:99px;--blog-text-meta-sm:.8rem;--blog-text-meta:.84rem;--blog-text-support:.92rem;--blog-text-summary:.94rem;--blog-text-toc-child:calc(var(--blog-text-summary) * .92);--blog-text-toc-deep:calc(var(--blog-text-summary) * .88);--blog-text-label:.76rem;--toc-root-indent:0;--toc-group-gap:.46rem;--toc-branch-offset:.26rem;--toc-branch-indent:.72rem;--toc-link-indent:.74rem;--toc-leaf-gap:.28rem;--toc-deep-offset:.16rem;--toc-deep-indent:.62rem;--blog-chrome-border:color-mix(in srgb, var(--blog-border) 68%, transparent);--blog-chrome-border-strong:color-mix(in srgb, var(--blog-border-strong) 48%, transparent);--blog-chrome-surface:color-mix(in srgb, var(--blog-surface-muted) 42%, var(--blog-surface));--blog-chrome-surface-strong:color-mix(in srgb, var(--blog-surface-muted) 70%, var(--blog-surface));--blog-accent-panel:color-mix(in srgb, var(--blog-accent-soft) 44%, var(--blog-surface));--blog-accent-line:color-mix(in srgb, var(--blog-accent) 48%, transparent)}html{scroll-behavior:smooth;background:var(--blog-bg)}body{background:var(--blog-bg);min-width:0;color:var(--blog-text);font-family:var(--blog-font-sans);letter-spacing:0;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-size:16px;font-weight:400;overflow-x:hidden}a{color:inherit;overflow-wrap:anywhere;text-decoration-color:color-mix(in srgb, var(--blog-accent) 55%, transparent);text-underline-offset:.18em;transition:color .2s,border-color .2s,background-color .2s,transform .2s,box-shadow .2s}a:hover{color:var(--blog-accent)}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--blog-accent);outline-offset:3px}ol,ul{padding-left:1.45rem}code,kbd,pre,samp{font-family:var(--blog-font-mono)}:where(p,li,td,th,blockquote,.home-summary,.blog-post-summary,.blog-category-summary,.blog-quick-summary,.blog-author-box-description) code{border:1px solid color-mix(in srgb, var(--blog-border) 72%, transparent);background:color-mix(in srgb, var(--blog-surface-muted) 68%, var(--blog-surface));color:color-mix(in srgb, var(--blog-text) 92%, var(--blog-text-soft));overflow-wrap:normal;word-break:normal;white-space:break-spaces;border-radius:6px;padding:.06rem .28rem;font-size:.88em}pre code{color:inherit;font-size:inherit;background:0 0;border:0;padding:0}blockquote{border:1px solid color-mix(in srgb, var(--blog-accent) 18%, var(--blog-border));border-left:3px solid var(--blog-accent);border-radius:var(--blog-radius-sm);background:color-mix(in srgb, var(--blog-accent-soft) 34%, var(--blog-surface));color:var(--blog-text-soft);margin:1.7rem 0;padding:1rem 1.15rem 1rem 1.2rem}blockquote p{margin-bottom:0;line-height:1.8}blockquote p+p{margin-top:.85rem}blockquote p:last-child{margin-bottom:0}p:has(img){color:var(--blog-muted);font-size:.92rem}p>img{max-width:100%;height:auto;margin-bottom:.7rem;margin-left:auto;margin-right:auto;display:block}.site-shell,.site-main{width:min(calc(100% - (var(--blog-shell-gutter) * 2)), var(--blog-shell));margin-inline:auto}.site-main{padding-top:1.35rem}.site-header{z-index:40;border-bottom:1px solid color-mix(in srgb, var(--blog-border) 58%, transparent);background:var(--blog-bg);position:sticky;top:0}.site-nav{min-height:var(--space-nav);padding:0}.site-nav-shell{flex-direction:column;display:flex}.blog-header{min-height:var(--space-nav);align-items:center;gap:1.05rem;display:flex;position:relative}.brand-lockup{flex:none;align-items:center;margin-right:0;padding:0;line-height:0;text-decoration:none;display:inline-flex}.brand-logo{width:auto;height:40px;display:block}.blog-search{width:min(260px,23vw);margin-left:auto;position:relative}.blog-search-desktop{display:block}.blog-search-input{border:1px solid var(--blog-border);border-radius:var(--blog-radius-sm);background:var(--blog-surface);width:100%;min-height:36px;color:var(--blog-text);-webkit-appearance:none;appearance:none;padding:0 36px 0 12px;font-size:.875rem;transition:border-color .15s cubic-bezier(.22,1,.36,1),box-shadow .15s cubic-bezier(.22,1,.36,1)}.blog-search-input::placeholder{color:var(--blog-muted)}.blog-search-input::-webkit-search-cancel-button{-webkit-appearance:none;display:none}.blog-search-input:focus{border-color:var(--blog-accent);box-shadow:var(--blog-focus-ring);outline:none}.blog-search-icon,.blog-search-clear{width:28px;height:28px;color:var(--blog-muted);justify-content:center;align-items:center;display:inline-flex;position:absolute;top:18px;right:4px;transform:translateY(-50%)}.blog-search-icon{pointer-events:none}.blog-search-clear{cursor:pointer;background:0 0;border:0;border-radius:6px;padding:0;transition:color .15s cubic-bezier(.22,1,.36,1),background-color .15s cubic-bezier(.22,1,.36,1)}.blog-search-clear:hover{background:var(--blog-surface-muted);color:var(--blog-text)}.blog-search-clear:focus-visible{box-shadow:var(--blog-focus-ring);outline:none}.blog-search-icon[hidden],.blog-search-clear[hidden]{display:none}.blog-search-icon .blog-icon,.blog-search-clear .blog-icon{width:14px;height:14px}.search-status{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:0;position:absolute;overflow:hidden}.search-panel{z-index:60;border:1px solid var(--blog-border);border-radius:var(--blog-radius);background:var(--blog-surface);width:min(560px,100vw - 32px);max-height:70vh;box-shadow:0 4px 16px color-mix(in srgb, var(--blog-text) 8%, transparent);contain:content;flex-direction:column;padding:6px;animation:.15s cubic-bezier(.22,1,.36,1) search-panel-in;display:flex;position:absolute;top:calc(100% + 8px);left:0}.search-panel[hidden],.search-panel [hidden]{display:none}@keyframes search-panel-in{0%{opacity:0;transform:translateY(-4px)}}.search-panel-scroll{overscroll-behavior:contain;min-height:0;overflow-y:auto}.search-results{gap:4px;display:grid}.search-result{border-radius:var(--blog-radius-sm);color:var(--blog-text);gap:4px;padding:16px 14px 14px;text-decoration:none;transition:background-color .15s cubic-bezier(.22,1,.36,1);display:grid}.search-result[aria-selected=true]{background:var(--blog-surface-muted)}.search-result:focus-visible{box-shadow:var(--blog-focus-ring);outline:none}.search-result-title{color:var(--blog-text);word-break:keep-all;overflow-wrap:break-word;font-size:1.0625rem;font-weight:500;line-height:1.4;transition:color .15s cubic-bezier(.22,1,.36,1)}.search-result[aria-selected=true] .search-result-title{color:var(--blog-accent-strong)}.search-result-excerpt{color:var(--blog-text-soft);font-size:var(--blog-text-summary);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin-top:4px;line-height:1.6;display:-webkit-box;overflow:hidden}.search-result mark{background:var(--blog-accent-soft);color:var(--blog-text);border-radius:2px;padding:0 1px}.search-result-meta{flex-wrap:wrap;align-items:baseline;gap:4px 8px;display:flex}.search-result-note{color:var(--blog-muted);font-size:.875rem}.search-result-date{color:var(--blog-muted);font-family:var(--blog-font-mono);font-variant-numeric:tabular-nums;font-size:.75rem}.search-end{height:1px}.search-more,.search-loading{color:var(--blog-muted);margin:0;padding:12px 14px;font-size:.875rem}.search-more{text-align:center}.search-message{justify-items:start;gap:8px;padding:18px;display:grid}.search-message-title{color:var(--blog-text);margin:0;font-size:1.0625rem;font-weight:500}.search-message-note{color:var(--blog-text-soft);font-size:var(--blog-text-summary);margin:0;line-height:1.6}.search-ai-button{border:1px solid var(--blog-border);border-radius:var(--blog-radius-sm);background:var(--blog-surface);min-height:36px;color:var(--blog-text);align-items:center;gap:8px;margin-top:8px;padding:0 14px;font-size:.875rem;font-weight:500;text-decoration:none;transition:color .15s cubic-bezier(.22,1,.36,1),border-color .15s cubic-bezier(.22,1,.36,1);display:inline-flex}.search-ai-button:hover{border-color:var(--blog-accent-line);color:var(--blog-accent-strong)}.search-panel-footer{border-top:1px solid var(--blog-border);min-height:48px;color:var(--blog-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 12px;margin:4px -6px -6px;padding:0 20px;font-size:.875rem;display:flex}.search-total{font-variant-numeric:tabular-nums}.search-ai{align-items:center;gap:4px;display:inline-flex}.search-ai-link{color:var(--blog-accent);align-items:center;gap:6px;text-decoration:none;display:inline-flex}.search-ai-link:hover{color:var(--blog-accent-strong);text-decoration:underline}.search-ai-link .blog-icon,.search-ai-button .blog-icon{width:14px;height:14px}.search-ai-link:focus-visible,.search-ai-button:focus-visible{box-shadow:var(--blog-focus-ring);border-radius:4px;outline:none}@media (prefers-reduced-motion:reduce){.search-panel{animation:none}}.blog-nav-search-panel{display:none}.blog-nav-collapse{flex-grow:0;justify-content:flex-end;display:none}[data-nav-state=open] .blog-nav-collapse{display:block}.blog-nav-overlay{display:none}.blog-main-menu{align-items:center;gap:.18rem;margin:0;padding-left:0;list-style:none;display:flex}.blog-menu{margin-left:0}.blog-menu-link{border-radius:var(--blog-radius-sm);min-height:36px;color:color-mix(in srgb, var(--blog-muted) 90%, var(--blog-text-soft));border:1px solid #0000;align-items:center;font-size:.9rem;font-weight:500;text-decoration:none;display:inline-flex;position:relative;padding:.42rem .64rem!important}.blog-menu-link:hover{color:var(--blog-text);background:0 0;border-color:#0000}.blog-menu-link[aria-current]:not([aria-current=false]){color:var(--blog-accent);background:0 0;border-color:#0000;font-weight:600}.blog-menu-link[aria-current]:not([aria-current=false]):after{background:var(--blog-accent);content:"";border-radius:999px;height:1px;position:absolute;bottom:.38rem;left:.68rem;right:.68rem}.blog-nav-toggle{border:1px solid color-mix(in srgb, var(--blog-border) 72%, transparent);border-radius:var(--blog-radius-sm);background:color-mix(in srgb, var(--blog-surface) 72%, transparent);width:40px;height:40px;color:var(--blog-text-soft);box-shadow:none;justify-content:center;align-items:center;padding:0;display:none}.blog-nav-toggle-icon{background-image:none;border-top:2px solid;border-bottom:2px solid;width:18px;height:12px;display:block;position:relative}.blog-nav-toggle-icon:before{content:"";background:currentColor;height:2px;position:absolute;top:3px;left:0;right:0}.lang-switch{border:1px solid color-mix(in srgb, var(--blog-border) 78%, transparent);background:var(--blog-surface);border-radius:10px;flex:none;align-items:center;gap:2px;padding:2px;display:inline-flex}.lang-switch-item{min-height:30px;color:var(--blog-muted);white-space:nowrap;border-radius:8px;align-items:center;padding:0 10px;font-size:.84rem;font-weight:500;line-height:1;text-decoration:none;transition:color .15s,background-color .15s;display:inline-flex}a.lang-switch-item:hover{background:color-mix(in srgb, var(--blog-surface-muted) 60%, transparent);color:var(--blog-text)}a.lang-switch-item:focus-visible{box-shadow:var(--blog-focus-ring);outline:none}.lang-switch-item[aria-current]{background:var(--blog-surface-muted);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--blog-border) 70%, transparent);color:var(--blog-text)}.section-heading,.blog-taxonomy-header{border-bottom:1px solid var(--blog-border)}.section-heading{padding:var(--space-section) 0 1.25rem}.section-heading-home{padding-top:1.05rem}.section-intro{padding:1.1rem 0 0}.blog-page-header,.section-intro-panel{border:1px solid var(--blog-border);border-radius:var(--blog-radius);background:var(--blog-surface);padding:1.25rem}.blog-page-header{width:min(100%, var(--blog-reading-single));border-inline:0;background:0 0;border-top:0;border-bottom:0;border-radius:0;margin-left:auto;margin-right:auto;padding:clamp(1rem,2vw,1.35rem) 0 1rem}.blog-page-header-home{padding-top:clamp(1rem,2vw,1.45rem);padding-bottom:clamp(1rem,1.6vw,1.2rem)}.blog-page-header-home .blog-page-header-main{max-width:var(--blog-reading-single)}.blog-page-header-home .blog-taxonomy-eyebrow{color:var(--blog-muted);font-size:var(--blog-text-meta);letter-spacing:.03em;text-transform:none;margin-bottom:.48rem}.blog-page-header-home .blog-category-title{max-width:16ch;font-size:clamp(2rem,3vw,2.48rem);line-height:1.16}.blog-page-header-home .blog-category-summary{max-width:42rem;margin-top:.76rem;font-size:clamp(.98rem,1.08vw,1.06rem);line-height:1.68}.blog-page-header-compact{padding-top:1rem;padding-bottom:.86rem}.blog-page-header-compact .blog-page-header-main{max-width:var(--blog-reading-single)}.blog-page-header-compact .blog-taxonomy-eyebrow{margin-bottom:.42rem}.blog-page-header-compact .blog-category-title{font-size:clamp(1.5rem,2.3vw,1.95rem);line-height:1.16}.blog-page-header-compact .blog-category-summary{max-width:42rem;margin-top:.5rem;font-size:.95rem;line-height:1.66}.blog-page-header-stream{padding-top:.92rem;padding-bottom:.72rem}.blog-page-header-stream .blog-page-header-main{max-width:var(--blog-reading-single)}.blog-page-header-stream .blog-category-summary{display:none}.blog-page-header-main{max-width:var(--blog-reading-single)}.blog-page-header-shell{display:block}.blog-page-header-shell.has-support{grid-template-columns:minmax(0,1fr) fit-content(22rem);align-items:end;gap:clamp(1rem,2vw,1.5rem);display:grid}.blog-page-header-home .blog-page-header-shell{grid-template-columns:minmax(0,1fr) fit-content(16rem);align-items:end;gap:clamp(1rem,2vw,1.45rem);display:grid}.blog-page-header-home .blog-page-header-support{max-width:16rem;padding-bottom:.14rem}.blog-page-header-home .blog-page-header-meta{justify-content:flex-start}.blog-page-header-support{flex-direction:column;justify-self:end;align-items:flex-end;gap:.82rem;min-width:0;max-width:22rem;padding-bottom:.12rem;display:flex}.blog-page-header-support-card{border:0;border-left:1px solid color-mix(in srgb, var(--blog-border-strong) 64%, transparent);width:100%;max-width:16rem;color:var(--blog-text);background:0 0;border-radius:0;flex-direction:column;gap:.2rem;padding:.55rem 0 0 .82rem;text-decoration:none;display:flex}.blog-page-header-support-card:hover{border-color:var(--blog-accent-line);color:var(--blog-text);background:0 0}.blog-page-header-support-card-label{color:var(--blog-accent);letter-spacing:0;text-transform:none;font-size:.74rem;font-weight:600}.blog-page-header-support-card-title{color:var(--blog-text);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:.9rem;font-weight:600;line-height:1.34;display:-webkit-box;overflow:hidden}.blog-page-header-support-card-summary{color:var(--blog-text-soft);font-size:.82rem;line-height:1.5;display:none}.blog-page-header-support-card-meta{color:var(--blog-muted);font-size:.76rem;font-weight:500}.section-intro-children{color:var(--blog-muted);flex-wrap:wrap;align-items:center;gap:.6rem .72rem;margin-top:1rem;font-size:.88rem;display:flex}.section-intro-children-label{color:var(--blog-text);font-weight:600}.section-intro-child-link{border:1px solid color-mix(in srgb, var(--blog-border) 92%, transparent);background:color-mix(in srgb, var(--blog-surface) 98%, transparent);min-height:32px;color:var(--blog-text-soft);border-radius:999px;align-items:center;gap:.42rem;padding:.28rem .68rem;text-decoration:none;display:inline-flex}.section-intro-child-link:hover{border-color:color-mix(in srgb, var(--blog-accent) 40%, var(--blog-border));background:color-mix(in srgb, var(--blog-accent-soft) 30%, var(--blog-surface));color:var(--blog-text)}.section-intro-child-title{font-weight:500}.section-intro-child-count{color:var(--blog-muted);font-variant-numeric:tabular-nums;font-size:.76rem}.blog-page-header-meta{justify-content:flex-end;gap:.34rem .64rem;margin-top:0}.blog-page-header-meta span+span{margin-left:.08rem;padding-left:.72rem;position:relative}.blog-page-header-meta span+span:before{background:color-mix(in srgb, var(--blog-border-strong) 68%, transparent);content:"";width:1px;height:.78rem;position:absolute;top:50%;left:0;transform:translateY(-50%)}.blog-page-header-children{justify-content:flex-end;margin-top:0}.home-topic-band{width:min(100%, var(--blog-reading-single));border-bottom:0;margin-left:auto;margin-right:auto;padding:.88rem 0 1rem}.home-rss-link:focus-visible{box-shadow:var(--blog-focus-ring);outline:none}.home-topic-navigation{justify-content:space-between;align-items:center;gap:.75rem 1rem;display:flex}.home-topic-navigation .topic-card,.home-rss-link{min-height:44px}.home-topic-navigation .topic-card{justify-content:center;align-items:center}.home-rss-link{color:var(--blog-muted);flex:none;align-items:center;padding:0 .2rem;font-size:.84rem;text-decoration:none;display:inline-flex}.home-rss-link:hover{color:var(--blog-accent-strong)}.topic-rail{flex-wrap:wrap;align-items:baseline;gap:.42rem .95rem;max-width:100%;margin-top:0;margin-right:auto;padding:0;display:flex}.topic-card{min-height:0}.taxonomy-breadcrumbs{width:min(100%, var(--blog-reading-single));margin-left:auto;margin-right:auto;padding-top:.4rem}.blog-breadcrumbs-nav{padding-top:.85rem}#breadcrumbs{flex-wrap:wrap;align-items:center;gap:.4rem;margin:0;padding-left:0;list-style:none;display:flex}.breadcrumbs-item,.breadcrumbs-separator{color:var(--blog-muted);font-size:var(--blog-text-meta);align-items:center;display:flex}#breadcrumbs .breadcrumbs-separator:last-child{display:none}.breadcrumbs-item a{color:inherit;text-decoration:none}.breadcrumbs-item:last-child a,.breadcrumbs-item[aria-current=page]{color:var(--blog-text-soft)}.blog-post-list{flex-direction:column;display:flex}.post-list-section{width:min(100%, var(--blog-reading-single));margin-left:auto;margin-right:auto;padding-top:.82rem}.post-list-section.is-home{padding-top:.92rem}.post-list-section.is-hub{padding-top:.72rem}.blog-list-intro{border-bottom:0;padding:0 0 .28rem;display:block}.blog-list-intro-title{color:var(--blog-text);margin:0;font-size:.92rem;font-weight:600;line-height:1.3}.blog-list-intro-summary{max-width:34rem;color:var(--blog-muted);margin:0;font-size:.86rem;line-height:1.46}.blog-post-card{border-top:1px solid color-mix(in srgb, var(--blog-border) 58%, transparent);padding:1rem 0 1.08rem}.blog-post-card:first-child{border-top:0}.blog-post-first{display:block}.blog-grid-thumbnail a,.blog-grid-thumbnail img{width:100%;height:100%;display:block}.blog-grid-thumbnail{aspect-ratio:8/5;border:1px solid color-mix(in srgb, var(--blog-border) 78%, transparent);background:var(--blog-surface-muted);border-radius:0;overflow:hidden}.blog-grid-thumbnail img{object-fit:cover;transition:opacity .2s}.blog-post-card-body{flex-direction:column;align-self:start;gap:.34rem;min-width:0;padding-top:0;display:flex}.blog-post-title,.blog-category-title{color:var(--blog-text);letter-spacing:0;text-wrap:balance;margin:0;font-size:clamp(1.6rem,3vw,2.45rem);font-weight:600;line-height:1.16}.blog-post-title{font-size:clamp(1.08rem,1.32vw,1.28rem);font-weight:600;line-height:1.28}.blog-section-title{color:var(--blog-text);text-wrap:balance;margin:0;font-size:clamp(1.85rem,3vw,2.45rem);font-weight:600;line-height:1.14}.blog-post-title>a,.blog-category-title>a{color:inherit;text-decoration:none}.blog-post-summary,.blog-category-summary{color:var(--blog-text-soft);margin:0;line-height:1.8}.blog-post-summary{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:.93rem;line-height:1.62;display:-webkit-box;overflow:hidden}.blog-post-meta{color:var(--blog-muted);gap:.26rem .56rem;margin-top:.02rem;padding-top:0;font-size:.8rem}.blog-post-meta i{font-size:var(--blog-text-meta-sm)}.blog-post-author{font-size:1rem;font-weight:600;line-height:1}.blog-post-author-avatar{background-color:var(--blog-surface-muted);background-size:cover;border-radius:40px;width:40px;height:40px}.blog-taxonomy-header{padding:clamp(1rem,2vw,1.45rem) 0 1.05rem}.blog-taxonomy-eyebrow{color:var(--blog-muted);font-size:var(--blog-text-label);letter-spacing:0;margin-bottom:.55rem;font-weight:500}.blog-featured-posts{width:min(100%, var(--blog-reading-single));border-bottom:0;margin-left:auto;margin-right:auto;padding:.96rem 0 1.02rem}.blog-featured-header{margin-bottom:.5rem;display:block}.blog-featured-grid,.blog-featured-grid.has-lead,.blog-featured-side{display:block}.blog-featured-heading{color:var(--blog-text);margin:0;font-size:.94rem;font-weight:600;line-height:1.3}.blog-featured-summary-intro{max-width:42rem;color:var(--blog-muted);margin:0;font-size:.86rem;line-height:1.46}.blog-featured-kicker{color:var(--blog-accent);letter-spacing:0;text-transform:none;font-size:.74rem;font-weight:500}.topic-card,.blog-featured-card,.blog-term-card{min-height:100%;color:var(--blog-text);background:0 0;border:0;border-radius:0;flex-direction:column;gap:.22rem;padding:.64rem 0 .68rem;text-decoration:none;display:flex}.topic-card:hover,.blog-featured-card:hover,.blog-term-card:hover{color:var(--blog-text);background:0 0;transform:none}.blog-featured-card.is-featured-lead{gap:.22rem;min-height:100%;padding:.64rem 0 .68rem}.blog-featured-thumb{aspect-ratio:16/9;border:1px solid var(--blog-border);background:var(--blog-surface-muted);border-radius:0;display:none;overflow:hidden}.blog-featured-thumb img{object-fit:cover;width:100%;height:100%;display:block}.blog-featured-card.is-featured-lead .blog-featured-title{-webkit-line-clamp:2;line-clamp:2;font-size:.94rem;line-height:1.3}.blog-featured-card.is-featured-lead .blog-featured-summary{-webkit-line-clamp:2;line-clamp:2;font-size:.8rem;line-height:1.48}.topic-card-title,.blog-featured-title,.blog-term-card-title{color:var(--blog-text);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:.96rem;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.topic-card-summary,.blog-featured-summary,.blog-term-card-summary{color:var(--blog-text-soft);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;flex:1;font-size:.78rem;line-height:1.46;display:-webkit-box;overflow:hidden}.topic-card-count,.blog-featured-meta,.blog-term-card-count{color:var(--blog-muted);font-size:var(--blog-text-meta-sm);margin-top:0;padding-top:0;font-weight:500;line-height:1.42}.topic-card{min-height:0;color:var(--blog-text-soft);border-top:0;padding:0;display:inline-flex}.topic-card:hover{color:var(--blog-accent-strong)}.topic-card .topic-card-title{-webkit-line-clamp:1;line-clamp:1;font-size:.92rem;font-weight:500;line-height:1.45}.blog-post-list.is-compact-list .blog-post-card{padding:1rem 0 1.08rem}.blog-post-list.is-compact-list .blog-post-first{display:block}.blog-post-list.is-compact-list .blog-grid-thumbnail{aspect-ratio:16/9;place-self:start;width:164px;min-width:0;max-width:100%}.blog-post-list.is-compact-list .blog-grid-thumbnail img{object-position:left center}.blog-post-list.is-compact-list .blog-post-title{font-size:clamp(1.08rem,1.32vw,1.28rem);font-weight:600;line-height:1.28}.blog-post-list.is-compact-list .blog-post-meta{font-size:.78rem}.blog-post-list.is-compact-list .blog-post-summary{-webkit-line-clamp:2;line-clamp:2;font-size:.93rem;line-height:1.62}.blog-post-list.is-hub-list .blog-post-card{padding:1rem 0 1.08rem}.blog-post-list.is-hub-list .blog-post-first{display:block}.blog-post-list.is-hub-list .blog-grid-thumbnail{aspect-ratio:4/3;justify-self:start;width:156px;max-width:100%}.blog-post-list.is-hub-list .blog-post-card-body{gap:.34rem}.blog-post-list.is-hub-list .blog-post-title{font-size:clamp(1.08rem,1.32vw,1.28rem);font-weight:600;line-height:1.28}.blog-post-list.is-hub-list .blog-post-meta{font-size:.77rem}.blog-post-list.is-hub-list .blog-post-summary{-webkit-line-clamp:2;line-clamp:2;font-size:.93rem;line-height:1.62}.blog-term-grid{width:min(100%, var(--blog-reading-single));grid-template-columns:repeat(5,minmax(0,1fr));gap:.62rem;margin-left:auto;margin-right:auto;display:grid}.blog-term-index{padding:var(--space-article) 0}.blog-term-card.is-compact{flex-direction:row;justify-content:space-between;align-items:center;gap:.62rem;min-height:0;padding:.66rem .78rem}.blog-term-card.is-compact .blog-term-card-title{-webkit-line-clamp:1;line-clamp:1;flex:1;font-size:.92rem;line-height:1.3}.blog-term-card.is-compact .blog-term-card-count{font-size:var(--blog-text-meta-sm);white-space:nowrap;flex:none;line-height:1.25}.single-header-wrap{border-bottom:1px solid var(--blog-chrome-border);position:relative}.single-header-wrap:after{background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--blog-border) 32%, transparent) 14%, color-mix(in srgb, var(--blog-border-strong) 28%, transparent) 50%, color-mix(in srgb, var(--blog-border) 32%, transparent) 86%, transparent);pointer-events:none;content:"";height:1px;position:absolute;bottom:-1px;left:0;right:0}.blog-single-post-header{grid-template-columns:var(--blog-single-columns);column-gap:var(--blog-single-gap);width:100%;padding:clamp(1.08rem,2.2vw,1.6rem) 0 1rem;display:grid}.single-header-inner{width:100%;max-width:min(100%, var(--blog-reading-header));grid-column:2;min-width:0;margin-inline:auto}.blog-single-post-title{max-width:min(100%, var(--blog-reading-header));min-width:0;color:var(--blog-text);letter-spacing:-.01em;text-wrap:wrap;margin:0 auto;padding-bottom:.7rem;font-size:clamp(1.92rem,2.9vw,2.68rem);font-weight:600;line-height:1.1}.blog-translation-note{color:color-mix(in srgb, var(--blog-muted) 92%, var(--blog-text-soft));margin:0 0 12px;font-size:.9rem;line-height:1.5}.blog-translation-note a{color:var(--blog-text-soft);text-decoration:underline;text-decoration-color:color-mix(in srgb, var(--blog-muted) 50%, transparent);text-underline-offset:3px}.blog-translation-note a:hover{color:var(--blog-accent);text-decoration-color:currentColor}.blog-meta-row,.blog-meta-row a{color:color-mix(in srgb, var(--blog-muted) 92%, var(--blog-text-soft));font-size:var(--blog-text-meta);font-weight:500;text-decoration:none}.blog-meta-row{flex-wrap:wrap;align-items:center;gap:.32rem .58rem;display:flex}.blog-meta-row>*{align-items:center;gap:.35rem;display:inline-flex}.blog-meta-row time{font-variant-numeric:tabular-nums}.blog-meta-row i{color:inherit;font-size:.78rem}.blog-single-meta,.blog-single-meta a{color:color-mix(in srgb, var(--blog-muted) 92%, var(--blog-text-soft));font-size:var(--blog-text-meta)}.blog-single-meta{flex-wrap:wrap;align-items:baseline;gap:.4rem 0;padding-bottom:.16rem;display:flex}.blog-single-meta-item{white-space:nowrap;align-items:baseline;gap:.26rem;display:inline-flex}.blog-single-meta-item+.blog-single-meta-item{margin-left:.72rem;padding-left:.72rem;position:relative}.blog-single-meta-item+.blog-single-meta-item:before{background:color-mix(in srgb, var(--blog-border-strong) 68%, transparent);content:"";width:1px;height:.72rem;position:absolute;top:50%;left:0;transform:translateY(-50%)}.blog-single-meta-prefix{color:inherit;font-size:var(--blog-text-meta-sm);font-weight:600}.blog-single-meta-item time{font-variant-numeric:tabular-nums}.blog-single-meta a{text-decoration:none}.blog-single-meta-item-category a{color:inherit;font-weight:500}.blog-single-meta-item-category a:hover{color:var(--blog-accent)}.blog-single-meta-item-updated{color:inherit}.blog-terms{flex-wrap:wrap;align-items:center;gap:.36rem .44rem;margin-top:.38rem;display:flex}.blog-terms-label{color:color-mix(in srgb, var(--blog-muted) 92%, var(--blog-text-soft));font-size:var(--blog-text-meta-sm);font-weight:600}.blog-terms-list{flex-wrap:wrap;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.blog-terms-list a{border:1px solid var(--blog-chrome-border);background:color-mix(in srgb, var(--blog-surface) 92%, var(--blog-surface-muted));min-height:30px;color:color-mix(in srgb, var(--blog-muted) 92%, var(--blog-text-soft));font-size:var(--blog-text-meta-sm);border-radius:999px;align-items:center;padding:.18rem .7rem;font-weight:500;text-decoration:none;display:inline-flex}.blog-terms-list a:hover{border-color:var(--blog-accent-line);background:var(--blog-accent-panel);color:var(--blog-accent-strong)}.blog-quick-summary.in-single-header{max-width:min(100%, var(--blog-reading-header));margin:.82rem auto 0}.single-layout{grid-template-columns:var(--blog-single-columns);column-gap:var(--blog-single-gap);align-items:start;row-gap:1.36rem;width:100%;padding-top:1.54rem;display:grid}.blog-single-post-content{width:100%;max-width:var(--blog-reading-single);grid-column:2;justify-self:center;min-width:0}.blog-single-post-content p{color:color-mix(in srgb, var(--blog-text-soft) 94%, var(--blog-text));font-size:var(--blog-text-summary);text-align:start;margin-bottom:1.02rem;line-height:1.72}.blog-single-post-related li,.blog-single-post-content li{color:color-mix(in srgb, var(--blog-text-soft) 94%, var(--blog-text));text-align:start;margin-bottom:.75rem;line-height:1.72}.blog-single-post-content li{font-size:var(--blog-text-summary)}.blog-single-post-content p+div{margin-bottom:1.25rem}.blog-single-post-content a,.blog-quick-summary.in-single-header a{color:var(--blog-accent);text-decoration:underline}.blog-single-post-content a:hover,.blog-quick-summary.in-single-header a:hover{color:var(--blog-text)}.rss-copy-panel{border:1px solid var(--blog-chrome-border);background:color-mix(in srgb, var(--blog-surface) 94%, var(--blog-surface-muted));border-radius:12px;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:.7rem;margin:1rem 0 1.35rem;padding:.72rem;display:grid}.rss-copy-content{gap:.24rem;min-width:0;display:grid}.rss-copy-label{color:var(--blog-muted);font-size:var(--blog-text-label);font-weight:600;line-height:1.35}.blog-single-post-content .rss-copy-input{width:100%;min-width:0;height:2.45rem;color:var(--blog-text);font-family:var(--blog-font-mono);text-overflow:ellipsis;background:0 0;border:0;padding:0;font-size:.95rem;line-height:1.4}.rss-copy-input:focus{outline:none}.rss-copy-button{border:1px solid var(--blog-accent-line);background:var(--blog-accent-panel);min-width:6.4rem;height:2.45rem;color:var(--blog-accent-strong);font:inherit;cursor:pointer;border-radius:10px;justify-content:center;align-self:center;align-items:center;padding:0 .92rem;font-size:.9rem;font-weight:600;line-height:1;transition:color .2s,border-color .2s,background-color .2s,transform .2s;display:inline-flex}.rss-copy-button:hover,.rss-copy-button:focus-visible{border-color:color-mix(in srgb, var(--blog-accent) 74%, transparent);background:color-mix(in srgb, var(--blog-accent-soft) 70%, var(--blog-surface));color:var(--blog-text)}.rss-copy-button:focus-visible{box-shadow:var(--blog-focus-ring);outline:none}.rss-copy-button:active{transform:translateY(1px)}.blog-single-post-content ol,.blog-single-post-content ul{margin-top:.94rem;margin-bottom:1.18rem;padding-left:1.5rem}.blog-single-post-content ul{list-style:square}.blog-single-post-content ol{list-style:decimal}.blog-single-post-content h2{border-bottom:1px solid var(--blog-border);color:var(--blog-text);margin-top:2.5rem;margin-bottom:.88rem;padding-bottom:.56rem;font-size:clamp(1.6rem,2.25vw,1.82rem);font-weight:600;line-height:1.24}.blog-task-next-steps{margin-top:48px}.blog-single-post-content .blog-task-next-steps h2,.blog-single-post-content .blog-end-heading{color:var(--blog-text);letter-spacing:0;border:0;margin:0 0 16px;padding:0;font-size:1.28rem;font-weight:600;line-height:1.3}.blog-single-post-content .blog-task-next-steps ul{gap:4px;margin:0 -12px;padding:0;list-style:none;display:grid}.blog-single-post-content .blog-task-next-steps li{margin:0}.blog-single-post-content .blog-task-next-steps .next-step{color:var(--blog-text);border-radius:12px;grid-template-columns:128px minmax(0,1fr);align-items:center;gap:20px;padding:12px;text-decoration:none;transition:background-color .15s cubic-bezier(.22,1,.36,1);display:grid}.blog-single-post-content .blog-task-next-steps .next-step:hover{background:var(--blog-surface-muted)}.blog-single-post-content .blog-task-next-steps .next-step:focus-visible{box-shadow:var(--blog-focus-ring);outline:none}.next-step-thumb{aspect-ratio:16/9;border:1px solid var(--blog-border);border-radius:var(--blog-radius-sm);background:var(--blog-surface-muted);display:block;overflow:hidden}.blog-single-post-content .next-step-thumb img{object-fit:cover;border:0;border-radius:0;width:100%;height:100%;margin:0;display:block}.next-step-thumb-empty{height:100%;color:var(--blog-muted);justify-content:center;align-items:center;font-size:.75rem;display:flex}.next-step-body{gap:4px;min-width:0;display:grid}.next-step-date{color:var(--blog-muted);font-family:var(--blog-font-mono);font-variant-numeric:tabular-nums;font-size:.75rem;line-height:1.5}.next-step-title{color:var(--blog-text);font-size:1.0625rem;font-weight:500;line-height:1.45;transition:color .15s cubic-bezier(.22,1,.36,1)}.next-step:hover .next-step-title{color:var(--blog-accent-strong)}.next-step-summary{color:var(--blog-text-soft);font-size:var(--blog-text-summary);text-overflow:ellipsis;white-space:nowrap;line-height:1.6;overflow:hidden}@media (width<=767px){.blog-single-post-content .blog-task-next-steps ul{margin:0 -8px}.blog-single-post-content .blog-task-next-steps .next-step{grid-template-columns:96px minmax(0,1fr);align-items:start;gap:16px;padding:12px 8px}.next-step-summary{display:none}}.blog-single-post-content h3{color:var(--blog-text);margin-top:2rem;margin-bottom:.68rem;font-size:1.28rem;font-weight:600;line-height:1.3}.blog-single-post-content h4{color:var(--blog-text);margin-top:1.72rem;margin-bottom:.56rem;font-size:1.04rem;font-weight:600;line-height:1.32}.blog-single-post-content h2[id],.blog-single-post-content h3[id],.blog-single-post-content h4[id]{scroll-margin-top:var(--blog-scroll-offset)}.blog-figure,.blog-single-inline-thumb{margin:1.75rem 0 2rem}.blog-single-inline-thumb{margin-top:0}.blog-figure{display:block}.blog-figure img,.blog-single-inline-thumb img{max-width:100%;margin-inline:auto;display:block}.blog-figure-caption{max-width:44rem;color:color-mix(in srgb, var(--blog-muted) 94%, var(--blog-text-soft));font-size:var(--blog-text-meta);text-align:center;text-wrap:pretty;margin:.66rem auto 0;line-height:1.58}.blog-figure-caption p{margin:0}.blog-figure-caption a{color:inherit;text-decoration-color:color-mix(in srgb, var(--blog-muted) 65%, transparent)}.blog-figure-caption a:hover{color:var(--blog-accent)}.blog-single-post-content p>strong{color:var(--blog-text);font-weight:600}.blog-table-wrap{border:1px solid color-mix(in srgb, var(--blog-border-strong) 32%, var(--blog-border));background:color-mix(in srgb, var(--blog-surface-muted) 42%, var(--blog-surface));-webkit-overflow-scrolling:touch;scrollbar-width:thin;border-radius:0;width:100%;margin:1.2rem 0 1.32rem;position:relative;overflow:auto hidden}.blog-table-wrap:before,.blog-table-wrap:after{z-index:2;pointer-events:none;opacity:0;content:"";width:1.6rem;transition:opacity .2s;position:absolute;top:0;bottom:0}.blog-table-wrap:before{background:linear-gradient(to right, color-mix(in srgb, var(--blog-surface) 96%, transparent), transparent);left:0}.blog-table-wrap:after{background:linear-gradient(to left, color-mix(in srgb, var(--blog-surface) 96%, transparent), transparent);right:0}.blog-table-wrap.is-overflowing:not(.is-at-start):before,.blog-table-wrap.is-overflowing:not(.is-at-end):after{opacity:1}.blog-table-wrap>table,.blog-single-post-content>table{border-collapse:collapse;table-layout:auto;background:var(--blog-surface);word-break:normal;width:max(100%,34rem);margin:0}.blog-table-wrap[data-cols="2"]{width:min(100%,60rem);margin-left:auto;margin-right:auto}.blog-table-wrap[data-cols="2"]>table{width:100%}.blog-content-table[data-cols="2"]:not(.is-reference-table){table-layout:fixed;width:100%}.blog-content-table[data-cols="2"]:not(.is-reference-table) th,.blog-content-table[data-cols="2"]:not(.is-reference-table) td{width:50%}.blog-content-table[data-cols="3"]:not(.is-reference-table){width:max(100%,36rem)}.blog-content-table th.is-fit,.blog-content-table td.is-fit{white-space:nowrap}.blog-content-table.is-reference-table{table-layout:auto;width:max(100%,44rem)}.blog-content-table.is-reference-table th:first-child,.blog-content-table.is-reference-table td:first-child{white-space:nowrap}.blog-content-table[data-cols="2"]:not(.is-reference-table) td code,.blog-content-table[data-cols="2"]:not(.is-reference-table) th code{white-space:normal;overflow-wrap:anywhere;word-break:break-word}.blog-single-post-content th,.blog-single-post-content td{border:1px solid var(--blog-border);vertical-align:top;font-size:var(--blog-text-summary);font-variant-numeric:tabular-nums;overflow-wrap:break-word;word-break:normal;padding:.68rem .82rem;line-height:1.52}.blog-single-post-content th{color:var(--blog-text);background-color:color-mix(in srgb, var(--blog-surface-muted) 92%, var(--blog-surface));font-weight:600}.blog-single-post-content tbody tr:nth-child(2n) td{background:color-mix(in srgb, var(--blog-surface-muted) 72%, var(--blog-surface))}.blog-single-post-content tbody tr:hover td{background:color-mix(in srgb, var(--blog-accent-soft) 16%, var(--blog-surface))}.blog-figure img,.blog-single-inline-thumb img,.blog-single-post-content table img{max-width:min(100%, calc(600px * var(--img-ratio,100)));border:1px solid var(--blog-border);max-height:600px;box-shadow:none;cursor:pointer;border-radius:10px;transition:border-color .2s,opacity .2s}.blog-figure img:hover,.blog-single-inline-thumb img:hover,.blog-single-post-content table img:hover{border-color:color-mix(in srgb, var(--blog-accent) 55%, var(--blog-border));opacity:.94}.blog-figure img[src$=\.svg],.blog-figure img[src$=\.svg]:hover{opacity:1;border-color:#0000;border-radius:0}.blog-content-table.is-reference-table td code{white-space:nowrap;overflow-wrap:normal;word-break:normal}.blog-single-post-content :where(p,li,td,th) code{border-color:color-mix(in srgb, var(--blog-border) 58%, transparent);background:color-mix(in srgb, var(--blog-surface-muted) 58%, var(--blog-surface));padding:.05rem .28rem;font-size:.86em;line-height:1.45}.blog-single-post-content :where(p,li) code{overflow-wrap:anywhere}.blog-single-post-content .highlight{border:1px solid color-mix(in srgb, var(--blog-border-strong) 24%, var(--blog-border));background:var(--blog-code-bg);-webkit-overflow-scrolling:touch;scrollbar-width:thin;border-radius:12px;max-width:100%;margin:1.2rem 0 1.32rem;position:relative;overflow:auto hidden}.blog-single-post-content .highlight:before,.blog-single-post-content .highlight:after{z-index:2;pointer-events:none;opacity:0;content:"";transition:opacity .2s;position:absolute}.blog-single-post-content .highlight:before{background:linear-gradient(to left, color-mix(in srgb, var(--blog-code-bg) 96%, transparent), transparent);width:1.75rem;top:0;bottom:0;right:0}.blog-single-post-content .highlight.is-overflowing:not(.is-at-end):before{opacity:1}.blog-single-post-content .highlight>pre,.blog-single-post-content .highlight .chroma{min-width:max-content;color:var(--blog-code-text);tab-size:4;margin:0;padding:.92rem 1.04rem;font-size:.875rem;line-height:1.58;overflow:visible;background:0 0!important}.blog-single-post-content .highlight .line{min-width:max-content}.blog-single-post-content .highlight .ln{color:#7d8590;border-right:1px solid #c9d1d92e;min-width:2.15rem;margin-right:.72rem;padding-right:.62rem}.blog-single-post-content .highlight .cl{min-width:0}.blog-single-post-content .highlight code{color:inherit;font-size:inherit;line-height:inherit;white-space:inherit;background:0 0;border:0;border-radius:0;padding:0}.blog-quick-summary{border:1px solid var(--blog-chrome-border);background:color-mix(in srgb, var(--blog-surface) 96%, var(--blog-surface-muted));box-shadow:none;border-radius:12px;grid-template-columns:1fr;align-items:start;gap:.24rem;margin-bottom:.72rem;padding:.72rem .86rem .76rem;display:grid}.blog-quick-summary>.blog-quick-summary-label{color:color-mix(in srgb, var(--blog-muted) 92%, var(--blog-text-soft));font-size:var(--blog-text-meta-sm);letter-spacing:.02em;text-transform:none;margin-bottom:0;font-weight:600;line-height:1.4}.blog-quick-summary p:last-child{margin-bottom:0}.blog-quick-summary p{color:color-mix(in srgb, var(--blog-text-soft) 94%, var(--blog-text));font-size:var(--blog-text-summary);line-height:1.62}.blog-quick-summary code{white-space:normal;overflow-wrap:anywhere;word-break:break-word}.blog-post-prev-next{border-block:1px solid var(--blog-border);margin-top:48px;padding:16px 0}.blog-post-prev-next-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid;position:relative}.blog-post-prev-next-grid:has(>:nth-child(2)):before{content:"";background:var(--blog-border);width:1px;position:absolute;inset:8px auto 8px 50%}.blog-single-post-content .blog-post-prev-next-card{color:var(--blog-text);border-radius:12px;flex-direction:column;gap:4px;padding:12px;text-decoration:none;transition:background-color .15s cubic-bezier(.22,1,.36,1);display:flex}.blog-single-post-content .blog-post-prev-next-card:hover{background:var(--blog-surface-muted);color:var(--blog-text);text-decoration:none}.blog-single-post-content .blog-post-prev-next-card:focus-visible{box-shadow:var(--blog-focus-ring);outline:none}.blog-post-prev-next-card-next:only-child{grid-column:2}.blog-post-prev-next-card-next{text-align:right;align-items:flex-end}.blog-post-prev-next-label{color:var(--blog-muted);align-items:center;gap:6px;font-size:.875rem;font-weight:400;line-height:1.5;display:inline-flex}.blog-post-prev-next-label .blog-icon{width:14px;height:14px}.blog-post-prev-next-title{color:var(--blog-text);text-wrap:pretty;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:1.0625rem;font-weight:500;line-height:1.5;transition:color .15s cubic-bezier(.22,1,.36,1);display:-webkit-box;overflow:hidden}.blog-post-prev-next-card:hover .blog-post-prev-next-title{color:var(--blog-accent-strong)}.blog-author-box{color:var(--blog-text-soft);grid-template-columns:56px minmax(0,1fr);align-items:start;gap:20px;margin-top:32px;display:grid}.blog-author-box-avatar{border:1px solid var(--blog-border);object-fit:cover;border-radius:999px;width:56px;max-width:56px;height:56px;display:block}.blog-author-box-content{min-width:0}.blog-single-post-content .blog-author-box-name{color:var(--blog-text);border:0;margin:0;padding:0;font-size:1.0625rem;font-weight:500;line-height:1.4}.blog-single-post-content .blog-author-box-description{color:var(--blog-text-soft);font-size:var(--blog-text-summary);margin:4px 0 12px;line-height:1.6}.blog-author-links{flex-wrap:wrap;gap:8px;display:flex}.blog-author-links a{border:1px solid var(--blog-border);border-radius:var(--blog-radius-sm);background:var(--blog-surface);width:32px;height:32px;color:var(--blog-muted);justify-content:center;align-items:center;text-decoration:none;transition:color .15s cubic-bezier(.22,1,.36,1),border-color .15s cubic-bezier(.22,1,.36,1);display:inline-flex}.blog-author-links a .blog-icon{width:16px;height:16px}.blog-author-links a:hover{border-color:var(--blog-accent-line);color:var(--blog-accent-strong)}.blog-author-links a:focus-visible{box-shadow:var(--blog-focus-ring);outline:none}.blog-single-disqus{margin-top:48px}@media (width<=767px){.blog-post-prev-next{padding:0}.blog-post-prev-next-grid{grid-template-columns:1fr;gap:0}.blog-post-prev-next-grid:before{display:none}.blog-single-post-content .blog-post-prev-next-card{border-radius:0;padding:16px 0}.blog-single-post-content .blog-post-prev-next-card+.blog-post-prev-next-card{border-top:1px solid var(--blog-border)}.blog-post-prev-next-card-next:only-child{grid-column:auto}.blog-post-prev-next-card-next{text-align:left;align-items:flex-start}.blog-author-box{grid-template-columns:48px minmax(0,1fr);gap:16px}.blog-author-box-avatar{width:48px;max-width:48px;height:48px}.blog-single-disqus{margin-top:40px}}.blog-single-disqus .giscus,.blog-single-disqus iframe.giscus-frame{width:100%}.blog-post-title,.blog-category-title,.blog-single-post-title,.next-step-title,.blog-post-prev-next-title{word-break:keep-all;overflow-wrap:break-word}.title-part{text-wrap:balance;max-width:100%;display:inline-block}.blog-ad{width:100%;color:var(--blog-muted)}.blog-ad-label{color:var(--blog-muted);text-align:center;margin-bottom:8px;font-size:.875rem;font-weight:400;line-height:1.5;display:block}.blog-ad-sidebar{min-height:var(--blog-sidebar-ad-height);padding:.56rem 0 .72rem var(--blog-sidebar-ad-pad-left);border-left:1px solid color-mix(in srgb, var(--blog-chrome-border) 56%, transparent);overflow:hidden}.blog-ad-sidebar .adsbygoogle{width:var(--blog-sidebar-ad-width);min-height:var(--blog-sidebar-ad-height);max-height:none}.blog-ad-after-content{margin-top:48px}.blog-ad-after-content:has(.adsbygoogle[data-ad-status=unfilled]){display:none}.blog-ad-after-content .adsbygoogle{min-height:180px}.blog-aside{top:var(--blog-sticky-top);max-width:var(--blog-aside);margin-left:calc(var(--blog-single-gap) * .08);box-sizing:border-box;color:color-mix(in srgb, var(--blog-muted) 92%, var(--blog-text-soft));font-size:var(--blog-text-support);flex-direction:column;grid-column:3;place-self:start;gap:.72rem;padding-top:.36rem;display:flex;position:sticky;width:var(--blog-aside)!important}.blog-aside-panel{border:0;border-left:1px solid var(--blog-chrome-border);background:0 0;border-radius:0;width:100%;padding:.56rem 0 .56rem .82rem}.blog-single-toc.blog-aside-panel{border-color:color-mix(in srgb, var(--blog-chrome-border) 56%, transparent);background:0 0}.blog-single-toc-desktop .blog-single-toc-body{max-height:min(22rem, calc(100dvh - var(--blog-sticky-top) - 4rem))}.blog-single-toc{flex-direction:column;min-height:0;display:flex;overflow:hidden}.blog-single-toc-body{min-height:0;max-height:calc(100dvh - var(--blog-sticky-top) - var(--blog-aside-reserve));overscroll-behavior:contain;scrollbar-width:thin;padding-top:.46rem;padding-right:.14rem;overflow-y:auto}.blog-aside-title{color:color-mix(in srgb, var(--blog-muted) 84%, var(--blog-text-soft));font-size:var(--blog-text-summary);letter-spacing:0;align-items:center;gap:.44rem;font-weight:600;display:inline-flex}.blog-aside-title-icon,.blog-inline-toc-summary-icon{width:1.25rem;height:1.25rem;color:color-mix(in srgb, var(--blog-muted) 82%, var(--blog-text-soft));box-shadow:none;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.blog-aside-title-icon .blog-icon,.blog-inline-toc-summary-icon .blog-icon{width:.76rem;height:.76rem}.blog-toc-nav{min-width:0}.blog-toc-nav>ul{padding-bottom:.12rem}.blog-toc-nav ul,.blog-toc-nav li{color:inherit;line-height:inherit;margin-bottom:0;padding-left:0;list-style:none!important}.blog-toc-nav a{color:color-mix(in srgb, var(--blog-muted) 92%, var(--blog-text-soft));font-size:var(--blog-text-meta);text-wrap:pretty;border-radius:8px;padding:.23rem .38rem;line-height:1.48;text-decoration:none;display:block}.blog-toc-nav>ul>li{padding-top:var(--toc-group-gap);padding-left:var(--toc-root-indent);border-left:2px solid #0000}.blog-toc-nav>ul>li:first-child{padding-top:0}.blog-toc-nav>ul>li>a{color:color-mix(in srgb, var(--blog-muted) 86%, var(--blog-text-soft));font-size:var(--blog-text-meta);padding-top:.24rem;padding-bottom:.24rem;padding-left:.36rem;font-weight:500;line-height:1.42}.blog-toc-nav ul ul{border-left:1px solid color-mix(in srgb, var(--blog-chrome-border-strong) 62%, transparent);margin-top:.34rem;margin-left:.24rem;padding-left:.92rem}.blog-toc-nav ul ul li{margin-top:var(--toc-leaf-gap);border-left:0;padding-left:0}.blog-toc-nav ul ul a{color:color-mix(in srgb, var(--blog-muted) 90%, var(--blog-text-soft));font-size:var(--blog-text-toc-child);padding-top:.18rem;padding-bottom:.18rem;padding-left:1rem;font-weight:500;line-height:1.48;position:relative}.blog-toc-nav ul ul ul{margin-left:.12rem;padding-left:.78rem}.blog-toc-nav ul ul ul a{font-size:var(--blog-text-toc-deep);padding-left:.92rem}.blog-toc-nav ul ul a:before{background:color-mix(in srgb, var(--blog-chrome-border-strong) 62%, transparent);content:"";width:.42rem;height:1px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.blog-toc-nav ul ul .blog-toc-active:before{background:var(--blog-accent-line);width:.58rem}.blog-toc-nav a:hover{background:color-mix(in srgb, var(--blog-accent-soft) 24%, transparent);color:var(--blog-accent-strong)}.blog-toc-nav .blog-toc-active{background:color-mix(in srgb, var(--blog-accent-soft) 24%, transparent);color:var(--blog-accent-strong);font-weight:500}.blog-toc-nav{margin-top:0}.blog-inline-toc{border:1px solid var(--blog-chrome-border);background:var(--blog-chrome-surface);border-radius:16px;margin-bottom:1.35rem;display:none}.blog-inline-toc[open]{background:linear-gradient(180deg, color-mix(in srgb, var(--blog-accent-soft) 18%, var(--blog-surface)) 0%, var(--blog-chrome-surface) 100%)}.blog-inline-toc-summary{color:var(--blog-text);cursor:pointer;user-select:none;justify-content:space-between;align-items:center;gap:.75rem;padding:.7rem .82rem;list-style:none;display:flex}.blog-inline-toc-summary::-webkit-details-marker{display:none}.blog-inline-toc-summary-label{font-size:var(--blog-text-summary);align-items:center;gap:.56rem;font-weight:600;line-height:1.35;display:inline-flex}.blog-inline-toc-summary-caret{color:var(--blog-accent-strong);flex:none;align-items:center;font-size:.9rem;line-height:1;transition:transform .2s;display:inline-flex}.blog-inline-toc[open] .blog-inline-toc-summary-caret{transform:rotate(180deg)}.blog-inline-toc-body{border-top:1px solid var(--blog-chrome-border);overscroll-behavior:contain;scrollbar-width:thin;max-height:min(15rem,38vh);padding:0 .82rem .78rem;overflow-y:auto}.blog-inline-toc-body nav{padding-top:.62rem}.pagination{flex-wrap:wrap;justify-content:center;gap:.22rem;margin-top:1.55rem;margin-bottom:0;padding-left:0;list-style:none;display:flex}.blog-pagination{border-top:1px solid color-mix(in srgb, var(--blog-border) 84%, transparent);justify-content:center;margin-top:.34rem;padding-top:.82rem;display:flex}.page-item{flex:none}.page-item-status .page-link,.page-item-status .page-link:hover{color:var(--blog-muted);box-shadow:none;cursor:default;background:0 0;border-color:#0000}.page-item .page-link{border:1px solid color-mix(in srgb, var(--blog-border) 84%, transparent);background:color-mix(in srgb, var(--blog-surface-card) 98%, transparent);min-width:40px;min-height:40px;color:var(--blog-muted);border-radius:12px;justify-content:center;align-items:center;gap:.32rem;padding:0 .74rem;font-size:.9rem;font-weight:500;text-decoration:none;display:inline-flex}.page-item .page-link span{line-height:1}.page-item-nav .page-link{min-width:0;padding:0 .82rem;font-weight:600}.page-item-status{display:none}.page-item-status .page-link{min-width:0;color:var(--blog-text);padding:0 .82rem;font-weight:600}.page-link-icon{font-size:.78rem}.page-link-label{white-space:nowrap}.page-link-label-short{display:none}.page-item-ellipsis .page-link{background:0 0;border-color:#0000;min-width:2rem;padding:0 .2rem}.page-item .page-link:hover{border-color:var(--blog-border-strong);background:var(--blog-surface);color:var(--blog-text);transform:translateY(-1px)}.page-item.active .page-link{border-color:var(--blog-accent);background:var(--blog-accent);color:var(--blog-bg)}.page-item.disabled .page-link{color:color-mix(in srgb, var(--blog-muted) 88%, var(--blog-border-strong));pointer-events:none;opacity:.72;border-color:#0000}.site-footer{border-top:1px solid color-mix(in srgb, var(--blog-chrome-border) 72%, transparent);background:color-mix(in srgb, var(--blog-surface-footer) 82%, var(--blog-bg));color:var(--blog-muted);margin-top:clamp(1.35rem,2.6vw,2.1rem)}.not-found-page{padding:var(--space-section) 0}.footer-main{flex-wrap:wrap;align-items:center;gap:16px 40px;padding-top:32px;padding-bottom:24px;display:flex}.footer-logo{margin-bottom:0}.footer-nav{flex:auto}.footer-nav ul,.footer-site-links{flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.footer-nav ul{gap:4px 24px}.footer-nav a{min-height:32px;color:var(--blog-text-soft);align-items:center;font-size:.875rem;font-weight:400;text-decoration:none;transition:color .15s cubic-bezier(.22,1,.36,1);display:inline-flex}.footer-rss{border:1px solid var(--blog-border);border-radius:var(--blog-radius-sm);background:var(--blog-surface);height:32px;color:var(--blog-text);align-items:center;gap:8px;padding:0 12px;font-size:.875rem;font-weight:500;text-decoration:none;transition:background-color .15s cubic-bezier(.22,1,.36,1),border-color .15s cubic-bezier(.22,1,.36,1);display:inline-flex}.footer-rss .blog-icon{color:var(--blog-muted)}.footer-rss:hover{border-color:var(--blog-border-strong);background:var(--blog-surface-muted)}.footer-bottom{border-top:1px solid var(--blog-border);color:var(--blog-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 24px;padding-top:16px;padding-bottom:24px;font-size:.875rem;display:flex}.footer-site-links{gap:4px 16px}.footer-legal{flex-wrap:wrap;gap:4px 12px;margin:0;display:flex}.footer-bottom a{color:var(--blog-muted);text-decoration:none;transition:color .15s cubic-bezier(.22,1,.36,1)}.footer-nav a:hover,.footer-bottom a:hover{color:var(--blog-accent-strong)}.footer-count{font-variant-numeric:tabular-nums}.footer-nav a:focus-visible,.footer-rss:focus-visible,.footer-bottom a:focus-visible{box-shadow:var(--blog-focus-ring);border-radius:4px;outline:none}.highlight{isolation:isolate;max-width:100%}.st-btn{cursor:pointer}@media (width<=1180px){.topic-rail{grid-template-columns:repeat(3,minmax(0,1fr))}.blog-featured-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.blog-term-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.blog-featured-grid,.blog-term-grid{gap:.72rem}.blog-post-first{grid-template-columns:minmax(220px,.82fr) minmax(0,1fr)}.blog-single-post-header,.single-layout{grid-template-columns:minmax(0,1fr)}.single-header-inner,.blog-single-post-content{grid-column:1}.blog-aside{display:none}.blog-inline-toc{display:block}}@media (width>=992px){.blog-nav-collapse{display:flex!important}}@media (width<=991.98px){body.blog-nav-open{overflow:hidden}.blog-header{flex-wrap:nowrap;gap:8px;min-height:56px;padding-block:6px}.blog-search-desktop{display:none}.lang-switch{order:1;margin-left:auto}.blog-nav-toggle{border-radius:10px;flex:0 0 44px;order:2;width:44px;height:44px;margin-left:0;display:inline-flex;position:static}.blog-nav-collapse{top:calc(var(--blog-mobile-nav-offset) + .24rem);z-index:70;width:auto;max-height:calc(100dvh - var(--blog-mobile-nav-offset) - .85rem);border:1px solid color-mix(in srgb, var(--blog-chrome-border) 84%, transparent);background:var(--blog-surface);overscroll-behavior:contain;box-shadow:0 14px 30px color-mix(in srgb, var(--blog-text) 8%, transparent);border-radius:12px;margin-left:0;padding:.42rem;display:none;position:fixed;left:.75rem;right:.75rem;overflow-y:auto}[data-nav-state=open] .blog-nav-collapse{display:block}.blog-nav-overlay{top:var(--blog-mobile-nav-offset);z-index:50;background:color-mix(in srgb, var(--blog-bg) 74%, transparent);opacity:0;pointer-events:none;border:0;width:auto;height:auto;padding:0;transition:opacity .2s;display:block;position:fixed;bottom:0;left:0;right:0;transform:none}[data-nav-state=open] .blog-nav-overlay{opacity:1;pointer-events:auto}.blog-main-menu{flex-direction:column;align-items:stretch;gap:.1rem;padding:0}.blog-nav-search-panel{border-bottom:1px solid color-mix(in srgb, var(--blog-chrome-border) 78%, transparent);flex-direction:column;gap:.24rem;margin-bottom:.32rem;padding:.18rem .2rem .44rem;display:flex}.blog-search-drawer{width:100%;margin-left:0}.blog-search-drawer .blog-search-input{min-height:44px;padding-left:14px;font-size:1rem}.blog-search-drawer .blog-search-icon,.blog-search-drawer .blog-search-clear{top:22px;right:8px}.blog-search-drawer .blog-search-icon .blog-icon,.blog-search-drawer .blog-search-clear .blog-icon{width:16px;height:16px}.blog-search-drawer .search-panel{width:auto;max-height:none;box-shadow:none;contain:none;border:0;margin-top:8px;padding:0;animation:none;position:static}.blog-search-drawer .search-panel-scroll{overflow:visible}.blog-search-drawer .search-results{gap:0}.blog-search-drawer .search-result{border-radius:0;padding:16px 12px}.blog-search-drawer .search-result+.search-result{border-top:1px solid var(--blog-border)}.blog-search-drawer .search-ai-hint{display:none}.blog-search-drawer .search-panel-footer{margin:0;padding:0 12px}.blog-nav-search-panel:has([data-search][data-open])+.blog-main-menu{display:none}.blog-menu-link{border-radius:10px;justify-content:flex-start;width:100%;min-height:42px;font-size:.9rem;padding-left:.82rem!important;padding-right:.82rem!important}.blog-menu-link[aria-current]:not([aria-current=false]):after{width:2px;height:auto;inset:.65rem auto .65rem .35rem}.topic-rail{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=768px){.home-topic-navigation{flex-direction:column;align-items:flex-start;gap:.15rem}.home-rss-link{padding:0}:root{--space-section:2rem;--space-article:1.5rem;--space-card:1rem;--blog-text-summary:.9rem}.taxonomy-breadcrumbs{padding-top:.12rem}.blog-breadcrumbs-nav{padding-top:.42rem}.breadcrumbs-item,.breadcrumbs-separator{font-size:.82rem}.blog-breadcrumbs-nav-article .breadcrumbs-item[aria-current=page],.blog-breadcrumbs-nav-article .breadcrumbs-item[aria-current=page]+.breadcrumbs-separator,.blog-breadcrumbs-nav-article .breadcrumbs-separator:has(+.breadcrumbs-item[aria-current=page]){display:none}.site-shell,.site-main{width:calc(100% - (var(--blog-shell-gutter-mobile) * 2));max-width:var(--blog-shell)}.site-main{padding-top:.9rem}.blog-page-header-home{padding-top:.72rem;padding-bottom:.78rem}.blog-page-header-home .blog-page-header-shell{grid-template-columns:1fr;gap:.44rem}.blog-page-header-home .blog-page-header-support{max-width:none;padding-bottom:0}.blog-page-header-support-card{border-left:0;border-top:1px solid color-mix(in srgb, var(--blog-border) 88%, transparent);max-width:none;padding:.5rem 0 0}.blog-page-header-home .blog-category-title{max-width:22rem;font-size:clamp(1.5rem,6.9vw,2.12rem);line-height:1.14}.blog-page-header-home .blog-category-summary{margin-top:.56rem;font-size:.89rem;line-height:1.5}.home-topic-band{padding-top:.72rem;padding-bottom:.78rem}.topic-rail{align-items:baseline;gap:.46rem .58rem;margin-top:0}.topic-card{border-top:0;gap:.24rem;min-height:0;padding:0}.topic-card-title,.blog-featured-title,.blog-term-card-title{font-size:.92rem}.topic-card-summary,.blog-featured-summary,.blog-term-card-summary{-webkit-line-clamp:1;line-clamp:1;flex:none;font-size:.8rem}.topic-card-count,.blog-featured-meta,.blog-term-card-count{font-size:var(--blog-text-meta-sm);margin-top:0;padding-top:0}.blog-post-first{grid-template-columns:1fr;gap:.85rem}.blog-post-card{padding:.98rem 0}.post-list-section.is-home .blog-grid-thumbnail{aspect-ratio:16/8}.blog-post-title{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:clamp(1rem,4.5vw,1.24rem);line-height:1.16;display:-webkit-box;overflow:hidden}.blog-post-summary{-webkit-line-clamp:2;line-clamp:2;font-size:.89rem;line-height:1.58}.blog-post-meta{padding-top:0;font-size:.77rem}.post-list-section{padding-top:.64rem}.post-list-section.is-home{padding-top:.76rem}.blog-list-intro{gap:.24rem;padding-bottom:.46rem}.blog-list-intro-title{font-size:.94rem}.blog-list-intro-summary{font-size:.84rem;line-height:1.48}.blog-featured-posts{padding-top:.56rem;padding-bottom:.68rem}.blog-featured-header{margin-bottom:.42rem;display:block}.blog-featured-heading{font-size:.98rem}.blog-featured-summary-intro{margin-top:.3rem;font-size:.84rem;line-height:1.48}.blog-taxonomy-header,.blog-page-header{padding:.66rem 0 .74rem}.blog-page-header-shell.has-support{grid-template-columns:1fr;gap:.36rem}.blog-page-header-support{align-items:flex-start;gap:.5rem;padding-bottom:0}.blog-category-title{font-size:clamp(1.48rem,6.6vw,1.94rem);line-height:1.14}.blog-category-summary{font-size:.88rem;line-height:1.5}.section-intro-children{gap:.5rem .56rem;font-size:.84rem}.section-intro-child-link{min-height:30px;padding:.24rem .58rem}.section-intro-child-count{font-size:.72rem}.blog-featured-grid,.blog-term-grid{gap:.62rem}.blog-featured-grid{grid-template-columns:1fr;gap:.42rem}.blog-featured-grid.has-lead{grid-template-columns:1fr}.blog-featured-side{gap:.42rem}.blog-featured-card{gap:.24rem;padding:.54rem 0 0}.blog-featured-card.is-featured-lead{grid-row:auto;gap:.24rem;padding:.54rem 0 0}.blog-featured-title{font-size:.92rem}.blog-featured-summary{-webkit-line-clamp:2;line-clamp:2;font-size:.79rem;line-height:1.46;display:-webkit-box}.blog-featured-meta{font-size:.73rem}.blog-term-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.blog-inline-toc{background:color-mix(in srgb, var(--blog-surface) 98%, transparent);margin-top:.04rem;margin-bottom:1rem}.blog-post-list.is-compact-list .blog-post-first{grid-template-columns:76px minmax(0,1fr);gap:.62rem}.blog-post-list.is-compact-list .blog-grid-thumbnail{aspect-ratio:4/3}.blog-post-list.is-compact-list .blog-post-card{padding:1rem 0 1.08rem}.blog-post-list.is-compact-list .blog-post-card-body{gap:.32rem}.blog-post-list.is-compact-list .blog-post-title{-webkit-line-clamp:3;line-clamp:3;font-size:clamp(1rem,4.5vw,1.24rem);line-height:1.24}.blog-post-list.is-compact-list .blog-post-meta{gap:.14rem .34rem;font-size:.74rem}.blog-post-list.is-compact-list .blog-post-meta i{font-size:.72rem}.blog-post-list.is-compact-list .blog-post-summary{-webkit-line-clamp:2;line-clamp:2;font-size:.89rem;line-height:1.58}.blog-inline-toc-summary{padding:.64rem .74rem}.blog-inline-toc-body{padding-left:.74rem;padding-right:.74rem}.blog-page-header-meta{justify-content:flex-start;gap:.24rem .48rem}.blog-page-header-meta span+span{margin-left:0;padding-left:.42rem}.blog-page-header-meta span+span:before{height:.68rem}.blog-page-header-children{justify-content:flex-start}.pagination{flex-wrap:wrap;justify-content:center;gap:.22rem}.page-item-status{display:block}.pagination .page-item:not(.page-item-nav):not(.page-item-status){display:none}.page-item .page-link{border-radius:10px;min-width:2.5rem;min-height:2.5rem;padding:0 .5rem;font-size:.84rem}.page-item-nav .page-link{min-width:2.5rem;padding:0 .56rem}.page-item-status .page-link{min-width:auto;padding:0 .78rem;font-size:.82rem}.page-link-label-long{display:none}.page-link-label-short{font-size:.76rem;display:inline}.blog-single-post-title{padding-bottom:.62rem;font-size:clamp(1.42rem,5.8vw,1.72rem);line-height:1.12}.blog-single-post-header{padding:.94rem 0 .9rem}.blog-single-meta,.blog-single-meta a{font-size:.8rem}.blog-single-meta{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:.42rem .8rem;display:grid}.blog-single-meta-item{white-space:normal;flex-direction:column;align-items:flex-start;gap:.08rem;min-width:0}.blog-single-meta-item+.blog-single-meta-item{margin-left:0;padding-left:0}.blog-single-meta-item+.blog-single-meta-item:before{display:none}.blog-single-meta-item-category a{font-size:.8rem;font-weight:500}.blog-single-meta-item-author,.blog-single-meta-item-updated{display:none}.blog-single-meta-prefix{font-size:.78rem}.blog-single-meta-item-updated{width:auto}.blog-terms{gap:.28rem .36rem;margin-top:.18rem}.blog-terms-label{display:none}.blog-terms-list{gap:.35rem}.blog-terms-list a{min-height:32px;padding:.16rem .62rem;font-size:.8rem}.blog-single-post-content{width:100%;min-width:0;max-width:100%;padding-top:1.2rem}.single-header-inner,.blog-single-post-header,.single-layout,.blog-quick-summary{box-sizing:border-box;width:100%;min-width:0;max-width:100%}.blog-single-post-content p,.blog-single-post-content li,.blog-quick-summary{overflow-wrap:anywhere}.blog-single-post-title{overflow-wrap:break-word;text-wrap:wrap;min-width:0;max-width:100%}.blog-single-post-content p code,.blog-single-post-content li code,.blog-single-post-content td code,.blog-single-post-content th code,.blog-quick-summary code{border-color:color-mix(in srgb, var(--blog-border) 42%, transparent);background:color-mix(in srgb, var(--blog-surface-muted) 58%, var(--blog-surface));border-radius:4px;padding:.04rem .22rem;font-size:.86em}.blog-quick-summary p{line-height:1.56}.blog-quick-summary>.blog-quick-summary-label{padding-top:0;font-size:.78rem}.blog-quick-summary.in-single-header{border-radius:14px;gap:.24rem;margin-top:.76rem;margin-bottom:0;padding:.72rem .8rem .76rem;display:grid}.blog-figure-caption{text-align:left;max-width:none;font-size:.82rem}.footer-main{grid-template-columns:minmax(0,1fr) auto;gap:16px;padding-top:24px;padding-bottom:16px;display:grid}.footer-rss{grid-area:1/2;justify-content:center;width:36px;height:36px;padding:0}.footer-rss-label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.footer-nav{grid-column:1/-1}.footer-nav ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;display:grid}.footer-nav li{border-bottom:1px solid var(--blog-border)}.footer-nav li:nth-last-child(-n+2):nth-child(odd),.footer-nav li:last-child{border-bottom:0}.footer-nav a{min-height:40px;display:flex}.footer-bottom{flex-direction:column;align-items:flex-start;gap:4px;padding-top:12px}.blog-table-wrap:before,.blog-table-wrap:after{width:1.6rem}.blog-table-wrap:before{background:linear-gradient(to right, color-mix(in srgb, var(--blog-surface) 96%, transparent), transparent);left:0;right:auto}.blog-single-post-content th,.blog-single-post-content td{padding:.56rem .64rem;line-height:1.48}.blog-single-post-content .highlight>pre,.blog-single-post-content .highlight .chroma{padding:.78rem .82rem;font-size:.82rem;line-height:1.56}.blog-single-post-content .highlight .ln{display:none}.blog-table-wrap>table,.blog-single-post-content>table{width:max(100%,30rem)}.blog-content-table th.is-wrap,.blog-content-table td.is-wrap{min-width:14em}.blog-table-wrap[data-cols="2"]>table,.blog-content-table[data-cols="2"]:not(.is-reference-table){table-layout:auto;width:max(100%,34rem);min-width:max-content}.blog-content-table[data-cols="2"]:not(.is-reference-table) th,.blog-content-table[data-cols="2"]:not(.is-reference-table) td{width:auto}.blog-content-table[data-cols="2"]:not(.is-reference-table) td:first-child,.blog-content-table[data-cols="2"]:not(.is-reference-table) th:first-child{min-width:16rem}.blog-content-table[data-cols="2"]:not(.is-reference-table) td:last-child,.blog-content-table[data-cols="2"]:not(.is-reference-table) th:last-child{min-width:9.5rem}.blog-content-table[data-cols="2"]:not(.is-reference-table) td code,.blog-content-table[data-cols="2"]:not(.is-reference-table) th code{white-space:nowrap;overflow-wrap:normal;word-break:normal;font-size:.88em;line-height:1.42;display:inline-block}.blog-content-table.is-reference-table{width:max(100%,34rem)}.blog-table-wrap[data-cols="2"]>.blog-content-table.is-reference-table{table-layout:auto;width:max(100%,34rem);min-width:max-content}.blog-content-table.is-reference-table[data-cols="2"] th,.blog-content-table.is-reference-table[data-cols="2"] td{width:auto}.blog-content-table.is-reference-table[data-cols="2"] td:first-child,.blog-content-table.is-reference-table[data-cols="2"] th:first-child{white-space:nowrap;min-width:16rem}.blog-content-table.is-reference-table[data-cols="2"] td:last-child,.blog-content-table.is-reference-table[data-cols="2"] th:last-child{min-width:9.5rem}.blog-content-table.is-reference-table[data-cols="2"] td code,.blog-content-table.is-reference-table[data-cols="2"] th code{white-space:nowrap;overflow-wrap:normal;word-break:normal;font-size:.88em;line-height:1.42;display:inline-block}}@media (width<=640px){.site-nav,.blog-header{min-height:56px}.blog-nav-toggle{width:44px;height:44px}.blog-nav-toggle-icon{width:16px;height:11px}.blog-category-title{font-size:1.56rem;line-height:1.14}.blog-section-title{font-size:1.68rem;line-height:1.14}.blog-category-summary{font-size:.96rem;line-height:1.72}.rss-copy-panel{grid-template-columns:1fr;gap:.58rem;padding:.68rem}.rss-copy-button{width:100%}}
