:root{--md-code-bg-light:241 245 249;--md-table-th-light:#f8fafc;--md-table-td-light:transparent;--md-code-bg-dark:51 65 85;--md-table-th-dark:#1e293b;--md-table-td-dark:transparent}.znc{line-height:1.9;font-size:clamp(.95rem,.9rem + .25vw,1.0625rem);max-width:44rem}.znc h2+*,.znc h3+*,.znc h4+*,.znc h5+*{margin-top:0}.znc h2{font-size:1.75rem;font-weight:800;margin-top:3.5rem;margin-bottom:1.5rem;padding-top:.2rem;letter-spacing:-.02em}.znc .heading-anchor{margin-left:.35em;color:#cbd5e1;font-weight:400;text-decoration:none;opacity:0;transition:opacity .2s}.dark .znc .heading-anchor{color:#475569}.znc .heading-anchor:focus-visible,.znc .heading-anchor:hover,.znc h2:hover .heading-anchor,.znc h3:hover .heading-anchor,.znc h4:hover .heading-anchor{opacity:1}.znc .heading-anchor:hover{color:#64748b}@media (hover:none){.znc .heading-anchor{opacity:.45}}.znc h3{font-weight:700;font-size:1.5rem;margin-top:3rem;margin-bottom:1.25rem;padding-bottom:.4rem;border-left:none;border-bottom:1px solid #e2e8f0}.dark .znc h3{border-bottom-color:#334155}.znc h4{font-weight:700;font-size:1.15rem;margin-top:2rem;margin-bottom:.75rem}.znc h5{font-weight:700;font-size:1rem;margin-top:1.5rem;margin-bottom:.5rem}.znc ol,.znc ul{margin:1.25em 0;padding-left:1.5em}.znc ul{list-style-type:disc}.znc ul ul{list-style-type:circle}.znc ul ul ul{list-style-type:square}.znc ol{list-style-type:decimal}.znc li{margin-bottom:.5em}.znc li::marker{color:#94a3b8;font-variant-numeric:tabular-nums}.znc li>ol,.znc li>ul{margin:.5em 0}.znc a{color:#2563eb;text-decoration:none;transition:color .2s}.dark .znc a{color:#60a5fa}.znc a{text-decoration:underline;text-decoration-color:rgba(37,99,235,.35);text-decoration-thickness:1px;text-underline-offset:.25em;transition:text-decoration-color .2s,text-decoration-thickness .2s,color .2s}.znc a:hover{color:#1d4ed8;text-decoration-color:currentColor;text-decoration-thickness:2px}.dark .znc a{text-decoration-color:rgba(96,165,250,.4)}.dark .znc a:hover{color:#93bbfd}.znc a[href^=http]:not([href*="kt-tech.blog"]):after{content:"↗";display:inline-block;margin-left:.15em;font-size:.8em;opacity:.6;vertical-align:super}.znc .link-card a:after{content:none}.znc code,.znc pre code{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,Noto Sans Mono CJK JP,monospace;font-size:.9em;font-variant-ligatures:none}.znc code{background-color:rgb(var(--md-code-bg-light));padding:.2rem .4rem;border-radius:4px;color:hsl(var(--foreground))}.dark .znc code{background-color:rgb(var(--md-code-bg-dark))}.znc .code-block{position:relative;margin:1.5rem 0;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;background:#f8fafc}.dark .znc .code-block{border-color:#334155;background:#0b1220}.znc .code-block__bar{display:flex;align-items:center;gap:.5rem;padding:.375rem .5rem .375rem .875rem;border-bottom:1px solid #e2e8f0;background:#f1f5f9;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.75rem;line-height:1.6;color:#64748b}.dark .znc .code-block__bar{border-bottom-color:#1e293b;background:#111c2f;color:#94a3b8}.znc .code-block__name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;color:#334155}.dark .znc .code-block__name{color:#cbd5e1}.znc .code-block__lang{flex:0 0 auto;letter-spacing:.04em}.znc .code-block__btn{flex:0 0 auto;padding:2px 10px;font:inherit;color:#475569;background:#fff;border:1px solid #cbd5e1;border-radius:6px;cursor:pointer;transition:background .2s,color .2s}.dark .znc .code-block__btn{color:#cbd5e1;background:#1e293b;border-color:#475569}.znc .code-block__btn:hover{background:#e2e8f0}.dark .znc .code-block__btn:hover{background:#334155}.znc .code-block__btn.is-copied{color:#16a34a;border-color:#86efac}.dark .znc .code-block__btn.is-copied{color:#4ade80;border-color:#166534}.znc .code-block pre{margin:0;border:0;border-radius:0;overflow-x:auto;max-height:40rem}.znc .code-block pre code{line-height:1.65}.znc .code-block pre>code{background-color:#f8fafc!important}.dark .znc .code-block pre>code{background-color:#0b1220!important}.znc .code-block pre:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}.znc .code-block.is-collapsed pre{max-height:15rem;overflow-y:hidden}.znc .code-block.is-collapsed:after{content:"";position:absolute;inset:auto 0 calc(2.25rem + 1px) 0;height:4rem;pointer-events:none;background:linear-gradient(rgba(248,250,252,0),#f8fafc)}.dark .znc .code-block.is-collapsed:after{background:linear-gradient(rgba(11,18,32,0),#0b1220)}.znc .code-block__expand{display:block;width:100%;padding:.375rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.75rem;line-height:1.5rem;color:#475569;background:#f1f5f9;border:0;border-top:1px solid #e2e8f0;cursor:pointer}.dark .znc .code-block__expand{color:#cbd5e1;background:#111c2f;border-top-color:#1e293b}.znc .code-block__expand:hover{background:#e2e8f0}.dark .znc .code-block__expand:hover{background:#1e293b}.znc code.has-code-lines{display:block;min-width:-moz-max-content;min-width:max-content;padding-left:0;padding-right:0}.znc .code-line{display:inline-block;min-width:100%;padding:0 1em}.znc .code-line--added{background:rgba(34,197,94,.14);box-shadow:inset 3px 0 0 #22c55e}.znc .code-line--removed{background:rgba(239,68,68,.14);box-shadow:inset 3px 0 0 #ef4444}.znc .code-line--marked{background:rgba(59,130,246,.12);box-shadow:inset 3px 0 0 #3b82f6}.znc code.has-diff .code-line{position:relative;padding-left:2em}.znc code.has-diff .code-line:before{position:absolute;left:.75em;-webkit-user-select:none;-moz-user-select:none;user-select:none}.znc .code-line--added:before{content:"+";color:#16a34a}.znc .code-line--removed:before{content:"-";color:#dc2626}.dark .znc .code-line--added:before{color:#4ade80}.dark .znc .code-line--removed:before{color:#f87171}.znc .mermaid-block{margin:1.5rem 0}.znc .mermaid-block__figure{display:none}.znc .mermaid-block.is-rendered .mermaid-block__figure{display:block;overflow-x:auto;padding:1rem;text-align:center;border:1px solid #e2e8f0;border-radius:8px;background:#fff}.dark .znc .mermaid-block.is-rendered .mermaid-block__figure{border-color:#334155;background:#0b1220}.znc .mermaid-block__figure svg{max-width:100%;height:auto}.znc .mermaid-block.is-rendered .mermaid-block__source{display:none}.znc .mermaid-block__source{border:1px solid #e2e8f0;border-radius:8px;overflow-x:auto}.dark .znc .mermaid-block__source{border-color:#334155}.znc .mermaid-block__source>code{background-color:#f8fafc!important}.dark .znc .mermaid-block__source>code{background-color:#0b1220!important}.znc blockquote{border-left:3px solid #cbd5e1;padding:.875rem 1.25rem;margin:1.75rem 0;background:#f1f5f9;border-radius:0 6px 6px 0;font-style:normal;color:#475569}.dark .znc blockquote{border-left-color:#475569;background:rgba(30,41,59,.6);color:#cbd5e1}.znc blockquote>:first-child{margin-top:0}.znc blockquote>:last-child{margin-bottom:0}.znc blockquote cite{display:block;margin-top:.5rem;font-size:.875em;font-style:normal;color:#64748b}.dark .znc blockquote cite{color:#94a3b8}.znc blockquote cite:before{content:"— "}.znc details{border:1px solid #e2e8f0;border-radius:8px;padding:.75rem 1rem;margin:1.5rem 0}.dark .znc details{border-color:#334155}.znc summary{cursor:pointer;font-weight:600;list-style:none}.znc summary::-webkit-details-marker{display:none}.znc summary:before{content:"▸";display:inline-block;margin-right:.5em;color:#94a3b8;transition:transform .2s}.znc details[open]>summary:before{transform:rotate(90deg)}.znc details[open]>summary{margin-bottom:.75rem}.znc li.task-list-item{list-style:none;margin-left:-1.5em}.znc li.task-list-item input[type=checkbox]{margin-right:.4em;accent-color:#3b82f6;pointer-events:none}.znc mark{background:rgba(250,204,21,.35);color:inherit;padding:.1em .2em;border-radius:3px}.dark .znc mark{background:rgba(250,204,21,.25)}.znc mark.mark-blue{background:rgba(59,130,246,.25)}.znc mark.mark-green{background:rgba(34,197,94,.25)}.znc mark.mark-red{background:rgba(239,68,68,.25)}.znc mark.mark-purple{background:rgba(168,85,247,.25)}.znc mark.mark-pink{background:rgba(236,72,153,.25)}.znc mark.mark-orange{background:rgba(249,115,22,.25)}.znc mark.mark-brown,.znc mark.mark-gray{background:rgba(148,163,184,.3)}.znc hr{border:none;border-top:1px solid #e2e8f0;margin:3rem 0}.dark .znc hr{border-top-color:#334155}.znc img{max-width:100%;height:auto;display:block;margin:2rem auto;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.1);cursor:zoom-in;transition:opacity .2s}.znc img:hover{opacity:.9}.dark .znc img{box-shadow:0 2px 8px rgba(0,0,0,.4)}.znc figure{margin:2rem 0}.znc figure img{margin-bottom:.5rem}.znc figcaption{text-align:center;font-size:.85em;color:#64748b;line-height:1.6}.dark .znc figcaption{color:#94a3b8}.znc p{margin:0 0 1.75em;line-height:1.9}.index_img{width:100%;aspect-ratio:16/9;-o-object-fit:cover;object-fit:cover;box-shadow:0 3px 6px rgba(0,0,0,.1)}.znc .table-scroll{--table-scroll-bg:#fff;overflow-x:auto;margin:1.75rem 0;background:linear-gradient(90deg,var(--table-scroll-bg) 30%,hsla(0,0%,100%,0)) 0 /40px 100% no-repeat,linear-gradient(270deg,var(--table-scroll-bg) 30%,hsla(0,0%,100%,0)) 100% /40px 100% no-repeat,radial-gradient(farthest-side at 0 50%,rgba(15,23,42,.12),rgba(15,23,42,0)) 0 /14px 100% no-repeat,radial-gradient(farthest-side at 100% 50%,rgba(15,23,42,.12),rgba(15,23,42,0)) 100% /14px 100% no-repeat;background-attachment:local,local,scroll,scroll}.dark .znc .table-scroll{--table-scroll-bg:#0f172a;background:linear-gradient(90deg,var(--table-scroll-bg) 30%,rgba(15,23,42,0)) 0 /40px 100% no-repeat,linear-gradient(270deg,var(--table-scroll-bg) 30%,rgba(15,23,42,0)) 100% /40px 100% no-repeat,radial-gradient(farthest-side at 0 50%,rgba(0,0,0,.4),transparent) 0 /14px 100% no-repeat,radial-gradient(farthest-side at 100% 50%,rgba(0,0,0,.4),transparent) 100% /14px 100% no-repeat;background-attachment:local,local,scroll,scroll}.znc .table-scroll>table{margin:0}.znc table{width:100%;min-width:-moz-max-content;min-width:max-content;border-collapse:collapse;margin:1.75rem 0;font-size:.925em;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.dark .znc table{border-color:#334155}.znc th{background:var(--md-table-th-light);color:hsl(var(--foreground));padding:.625rem .875rem;text-align:left;font-weight:600;border-bottom:1px solid #e2e8f0}.dark .znc th{background:var(--md-table-th-dark);border-bottom-color:#334155}.znc td{padding:.625rem .875rem;background:var(--md-table-td-light);color:hsl(var(--foreground));border-bottom:1px solid #f1f5f9}.dark .znc td{background:var(--md-table-td-dark);border-bottom-color:#1e293b}.znc tbody tr:last-child td{border-bottom:none}.znc tbody tr:nth-child(2n) td{background:#f8fafc}.dark .znc tbody tr:nth-child(2n) td{background:rgba(30,41,59,.5)}.znc tbody tr:hover td{background:#f1f5f9}.dark .znc tbody tr:hover td{background:rgba(51,65,85,.6)}.znc td[align=right],.znc th[align=right]{text-align:right;font-variant-numeric:tabular-nums}.znc td[align=center],.znc th[align=center]{text-align:center}.znc li>.link-card{margin:.5rem 0}.znc li:has(>.link-card){list-style:none}@supports not selector(:has(*)){.znc li>.link-card{margin-left:-.5em}}.znc p:empty{display:none}@media (max-width:768px){.znc h2{font-size:1.3rem!important;margin-top:2rem!important;margin-bottom:1rem!important}.znc h3{font-size:1.2rem}.znc h4{font-size:1.1rem}.znc h5{font-size:1rem}.znc ol,.znc ul{padding-left:1.25em}.znc pre{-webkit-overflow-scrolling:touch}.znc pre::-webkit-scrollbar{height:6px}.znc pre::-webkit-scrollbar-thumb{background:#94a3b8;border-radius:3px}.index_img{width:100%;aspect-ratio:16/9;-o-object-fit:cover;object-fit:cover;box-shadow:0 3px 6px rgba(0,0,0,.1)}}.znc .callout{margin:1.5rem 0;padding:.875rem 1.125rem;border-radius:8px;border:1px solid;border-left:4px solid;font-size:inherit;line-height:1.85}.znc .callout__label{display:flex;align-items:center;gap:.4em;font-weight:700;font-size:.875em;margin-bottom:.4rem;letter-spacing:.02em}.znc .callout__icon{font-size:1.05em;line-height:1;flex-shrink:0}.znc .callout__body>:first-child{margin-top:0}.znc .callout__body>:last-child{margin-bottom:0}.znc .callout__body p{margin:0 0 .75em;padding:0}.znc .callout__body ol,.znc .callout__body ul{margin:.5em 0}.znc .callout__body code{font-size:.9em}.znc .callout--note{background:#f8fafc;border-color:#e2e8f0 #e2e8f0 #e2e8f0 #94a3b8}.znc .callout--note .callout__label{color:#475569}.dark .znc .callout--note{background:#1a2436;border-color:#2b3a52 #2b3a52 #2b3a52 #94a3b8}.dark .znc .callout--note .callout__label{color:#cbd5e1}.znc .callout--tip{background:#f0fdf4;border-color:#bbf7d0 #bbf7d0 #bbf7d0 #16a34a}.znc .callout--tip .callout__label{color:#15803d}.dark .znc .callout--tip{background:#10291b;border-color:#1a4030 #1a4030 #1a4030 #4ade80}.dark .znc .callout--tip .callout__label{color:#86efac}.znc .callout--important{background:#eff6ff;border-color:#bfdbfe #bfdbfe #bfdbfe #2563eb}.znc .callout--important .callout__label{color:#1d4ed8}.dark .znc .callout--important{background:#16273f;border-color:#1e3a5f #1e3a5f #1e3a5f #60a5fa}.dark .znc .callout--important .callout__label{color:#93c5fd}.znc .callout--warning{background:#fffbeb;border-color:#fde68a #fde68a #fde68a #d97706}.znc .callout--warning .callout__label{color:#b45309}.dark .znc .callout--warning{background:#2e2410;border-color:#4a3a15 #4a3a15 #4a3a15 #facc15}.dark .znc .callout--warning .callout__label{color:#fcd34d}.znc .callout--caution{background:#fef2f2;border-color:#fecaca #fecaca #fecaca #dc2626}.znc .callout--caution .callout__label{color:#b91c1c}.dark .znc .callout--caution{background:#2e1618;border-color:#4a2226 #4a2226 #4a2226 #f87171}.dark .znc .callout--caution .callout__label{color:#fca5a5}.table-contents{min-width:20%}.table-contents>h1{font-size:1.5rem;font-weight:700;margin-bottom:2rem;padding-left:.5rem;padding-top:.2rem;border-bottom:1px solid rgba(92,147,187,.17)}@media (max-width:768px){.table-contents>h1{font-size:1.3rem!important}}.znc .footnotes{margin-top:3rem;padding-top:1.5rem;border-top:1px solid #e2e8f0;font-size:.9em;color:#475569}.dark .znc .footnotes{border-top-color:#334155;color:#cbd5e1}.znc .footnotes-sep{display:none}.znc .footnotes ol{margin:0}.znc .footnote-ref a{text-decoration:none;font-size:.8em;vertical-align:super}.znc .footnote-backref{text-decoration:none;margin-left:.3em}.znc .footnotes li:target{background:#eff6ff;border-radius:4px}.dark .znc .footnotes li:target{background:rgba(30,58,138,.35)}.znc .embed{position:relative;margin:1.5rem 0;width:100%;overflow:hidden;border-radius:8px;background:#0f172a}.znc .embed iframe,.znc .embed__play{position:absolute;inset:0;width:100%;height:100%;border:0}.znc .embed__play{display:block;padding:0;background:none;cursor:pointer}.znc .embed__play img{margin:0;border-radius:0;box-shadow:none;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;cursor:inherit}.znc .embed__play-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:68px;height:48px;border-radius:12px;background:rgba(15,23,42,.75);transition:background .2s}.znc .embed__play-icon:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-40%,-50%);border-color:transparent transparent transparent #fff;border-style:solid;border-width:9px 0 9px 15px}.znc .embed__play:focus-visible .embed__play-icon,.znc .embed__play:hover .embed__play-icon{background:#dc2626}.znc .embed noscript a{position:absolute;bottom:.5rem;left:.5rem;color:#fff}.znc .katex-display{margin:1.75rem 0;overflow-x:auto;overflow-y:hidden;padding-bottom:.5rem}.znc .katex{font-size:1.05em}.znc .katex-error{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#24292e;background:#f6f8fa}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#005cc5}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-code,.hljs-comment,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}.dark .hljs{color:#adbac7;background:#22272e}.dark .hljs-doctag,.dark .hljs-keyword,.dark .hljs-meta .hljs-keyword,.dark .hljs-template-tag,.dark .hljs-template-variable,.dark .hljs-type,.dark .hljs-variable.language_{color:#f47067}.dark .hljs-title,.dark .hljs-title.class_,.dark .hljs-title.class_.inherited__,.dark .hljs-title.function_{color:#dcbdfb}.dark .hljs-attr,.dark .hljs-attribute,.dark .hljs-literal,.dark .hljs-meta,.dark .hljs-number,.dark .hljs-operator,.dark .hljs-selector-attr,.dark .hljs-selector-class,.dark .hljs-selector-id,.dark .hljs-variable{color:#6cb6ff}.dark .hljs-meta .hljs-string,.dark .hljs-regexp,.dark .hljs-string{color:#96d0ff}.dark .hljs-built_in,.dark .hljs-symbol{color:#f69d50}.dark .hljs-code,.dark .hljs-comment,.dark .hljs-formula{color:#768390}.dark .hljs-name,.dark .hljs-quote,.dark .hljs-selector-pseudo,.dark .hljs-selector-tag{color:#8ddb8c}.dark .hljs-subst{color:#adbac7}.dark .hljs-section{color:#316dca;font-weight:700}.dark .hljs-bullet{color:#eac55f}.dark .hljs-emphasis{color:#adbac7;font-style:italic}.dark .hljs-strong{color:#adbac7;font-weight:700}.dark .hljs-addition{color:#b4f1b4;background-color:#1b4721}.dark .hljs-deletion{color:#ffd8d3;background-color:#78191b}