.article-page{padding-top:134px;padding-bottom:88px}.article-header{border-bottom:1px dashed var(--line);text-align:center;margin-bottom:56px;padding-bottom:46px}.article-header .topic-list{justify-content:center;margin:0 0 22px}.article-header h1{max-width:960px;color:var(--accent);letter-spacing:-.025em;overflow-wrap:anywhere;margin:0 auto 24px;font-size:clamp(32px,4vw,48px);font-weight:600;line-height:1.5}.article-header .metadata{justify-content:center;gap:10px 22px;font-size:14px}.article-header time,.reading-time{align-items:center;gap:7px;display:inline-flex}.article-layout{grid-template-columns:200px minmax(0,1fr);align-items:start;gap:clamp(48px,7vw,112px);display:grid}.article-content{min-width:0}.article-cover-wrap{margin:0 0 38px}.article-cover{object-fit:cover;border-radius:16px;width:100%;max-height:480px}.toc{min-width:0;position:sticky;top:112px}.toc summary{cursor:pointer;border-bottom:1px dashed var(--line);color:var(--accent);justify-content:space-between;align-items:center;gap:12px;padding-bottom:17px;font-size:18px;font-weight:600;list-style:none;display:flex}.toc summary::-webkit-details-marker{display:none}.toc summary>span{align-items:center;gap:9px;display:inline-flex}.toc-chevron{color:var(--muted);flex-shrink:0;transition:transform .18s}.toc details:not([open]) .toc-chevron{transform:rotate(-90deg)}.toc nav{flex-direction:column;gap:5px;max-height:calc(100svh - 250px);margin-top:18px;display:flex;overflow-y:auto}.toc nav a{color:var(--muted);overflow-wrap:anywhere;border-left:2px solid #0000;padding:5px 0 5px 13px;font-size:15px;line-height:1.8;transition:color .18s,border-color .18s}.toc nav a:hover,.toc nav a:focus-visible{color:var(--accent);border-left-color:var(--accent)}.toc nav a.sub{padding-left:26px;font-size:14px}.toc-empty{color:var(--muted);margin:0;font-size:14px}.toc>.back-link{color:var(--muted);align-items:center;gap:8px;margin-top:30px;font-size:13px;display:inline-flex}.toc>.back-link:hover{color:var(--accent)}.prose{min-width:0;color:var(--text);overflow-wrap:anywhere;font-size:16px;line-height:1.95}.prose>:first-child{margin-top:0}.prose>:last-child{margin-bottom:0}.prose p{margin:1.25em 0}.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{color:var(--accent);scroll-margin-top:106px;font-weight:600;line-height:1.6}.prose h1,.prose h2{border-bottom:1px dashed var(--line);letter-spacing:-.025em;margin:1.9em 0 .85em;padding-bottom:10px;font-size:30px}.prose h3{margin:1.7em 0 .7em;font-size:24px}.prose h4,.prose h5,.prose h6{margin:1.5em 0 .6em;font-size:19px}.prose a{color:var(--accent);text-decoration:underline;text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);text-underline-offset:4px}.prose a:hover{text-decoration-color:currentColor}.prose ul,.prose ol{padding-left:1.6em}.prose li+li{margin-top:.35em}.prose li::marker{color:var(--accent)}.prose hr{border:0;border-top:1px dashed var(--line);margin:2.5em 0}.prose img{border-radius:12px;max-width:100%;height:auto;margin-inline:auto}.prose figure{margin:30px 0}.prose figcaption{text-align:center;color:var(--muted);padding-top:10px;font-size:13px;line-height:1.8}.prose blockquote{border-left:3px solid var(--accent);background:var(--soft);border-radius:0 10px 10px 0;margin:28px 0;padding:17px 22px;font-style:normal}.prose blockquote p{margin:0 0 .5em}.prose blockquote>:first-child{margin-top:0}.prose blockquote>:last-child{margin-bottom:0}.prose pre{border:1px solid var(--line);background:var(--surface);overflow-wrap:normal;border-radius:10px;max-width:100%;padding:20px;font-size:13px;line-height:1.85;overflow-x:auto}.prose code{font-family:Cascadia Code,Consolas,SFMono-Regular,monospace;font-size:.88em}.prose pre code{font-size:inherit}.prose :not(pre)>code{background:var(--soft);color:var(--accent);-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:4px;padding:2px 6px}.prose table{border-collapse:collapse;width:max-content;max-width:100%;margin:26px 0;font-size:14px;line-height:1.8;display:block;overflow-x:auto}.prose td,.prose th{border:1px solid var(--line);text-align:left;min-width:90px;padding:10px 16px}.prose th{background:var(--soft);font-weight:600}.prose :is(th,td)>p{margin:0}.prose tbody tr:nth-child(2n){background:color-mix(in srgb, var(--surface) 55%, transparent)}.prose audio,.prose video,.prose iframe{max-width:100%}.prose video{border-radius:12px}.prose .kg-gallery-container,.prose .kg-gallery-row{flex-wrap:wrap;gap:10px;display:flex}.prose .kg-gallery-image{flex:1;min-width:min(120px,100%)}.prose mark{color:var(--accent);-webkit-box-decoration-break:clone;box-decoration-break:clone;background:0 0;border:1px solid;border-radius:999px;padding:1px 8px}.prose [data-callout]{border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:12px;margin:1.5rem 0;padding:18px 22px;font-size:15px;line-height:1.9}.prose [data-callout=tip]{background:var(--soft);border-color:color-mix(in srgb, var(--accent) 20%, var(--line))}.prose [data-callout=tip]>.callout-title{color:var(--accent)}.prose [data-callout=warning]{color:#69562e;background:#fbf5e7;border-color:#ece0bd}.prose [data-callout=danger]{color:#8b4641;background:#fbefee;border-color:#efd5d1}.prose [data-callout]>.callout-title{margin:0 0 .6rem;font-weight:600}.prose .callout-content>:first-child{margin-top:0}.prose .callout-content>:last-child{margin-bottom:0}.prose li[data-checked]{padding-left:1.65rem;list-style:none;position:relative}.prose li[data-checked]>input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--accent);cursor:pointer;margin:0;position:absolute;top:.5em;left:0}.prose li[data-checked]>p{margin:.25rem 0}:root[data-theme=dark] .prose [data-callout=warning]{color:#e4cea3;background:#383325;border-color:#514832}:root[data-theme=dark] .prose [data-callout=danger]{color:#efb8af;background:#392927;border-color:#583b38}.article-end{border-top:1px dashed var(--line);text-align:center;margin-top:56px;padding-top:36px}.article-end p{color:var(--muted);margin:10px 0 26px;font-size:14px}.article-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.article-unavailable{min-height:380px}.article-unavailable h1{color:var(--accent);font-size:clamp(26px,3vw,38px)}@media (width<=1000px){.article-layout{grid-template-columns:170px minmax(0,1fr);gap:40px}.toc nav a{font-size:14px}}@media (width<=800px){.article-page{padding-top:120px}.article-header{margin-bottom:32px;padding-bottom:32px}.article-layout{display:block}.toc{margin-bottom:30px;position:static}.toc-panel{border:1px dashed var(--line);border-radius:12px;padding:17px 20px}.toc summary{border:0;padding:0;font-size:16px}.toc nav{border-top:1px dashed var(--line);max-height:240px;padding-top:14px}.toc>.back-link{display:none}}@media (width<=600px){.article-page{padding-top:112px;padding-bottom:56px}.article-header h1{margin-bottom:18px;font-size:30px}.article-header .metadata{gap:8px 14px;font-size:12px}.article-cover-wrap{margin-bottom:26px}.article-cover{border-radius:12px;max-height:360px}.prose{font-size:16px;line-height:1.9}.prose h1,.prose h2{font-size:25px}.prose h3{font-size:21px}.prose pre{padding:16px 12px;font-size:12px}.prose blockquote,.prose [data-callout]{padding:14px 17px}.article-end{margin-top:40px}}@media (prefers-reduced-motion:reduce){.toc-chevron,.toc nav a{transition:none}}.prose [data-code-group],.prose [data-code-block]{--code-background:#f6f7fa;--code-border:#e1e5ec;--code-muted:#64748b;background:var(--code-background);color:#334155;font-family:var(--sans);border:1px solid #e7e9ee;border-radius:8px;margin:24px 0;font-style:normal;font-weight:400;line-height:1.6;overflow:hidden}:root[data-theme=dark] .prose :is([data-code-group],[data-code-block]){--code-background:var(--soft);--code-border:var(--line);--code-muted:var(--muted);border-color:var(--line);color:var(--text)}.code-group-tabs{border-bottom:1px solid var(--code-border);gap:18px;min-width:0;padding:0 18px;display:flex;overflow-x:auto}.code-group-tabs button{min-height:44px;color:var(--code-muted);font-family:var(--sans);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;flex-shrink:0;padding:0 4px;font-size:12px}.code-group-tabs button[aria-selected=true]{border-bottom-color:var(--accent);color:var(--accent);font-weight:600}.code-group-tabs button:focus-visible,.code-group-toolbar button:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}.code-group-toolbar{min-height:40px;color:var(--code-muted);user-select:none;align-items:center;gap:10px;padding:5px 14px;display:flex}.code-group-dots{flex-shrink:0;gap:6px;display:inline-flex}.code-group-dots i{background:#ff655b;border-radius:50%;width:10px;height:10px}.code-group-dots i:nth-child(2){background:#ffbd2e}.code-group-dots i:nth-child(3){background:#28c840}.code-group-language{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--sans);letter-spacing:.05em;color:var(--code-muted);flex:1;font-size:12px;font-weight:600;overflow:hidden}.code-group-toolbar>button{width:30px;height:30px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.code-group-toolbar>button:hover{background:var(--surface);color:var(--accent)}.code-group-toolbar [aria-expanded] svg{transition:transform .18s}.code-group-toolbar [aria-expanded=false] svg{transform:rotate(90deg)}.prose :is([data-code-group],[data-code-block]) pre{tab-size:2;border:0;border-radius:0;margin:0;padding:0 0 12px;font-size:14px;line-height:1.7;background:var(--code-background)!important}.prose :is([data-code-group],[data-code-block]) pre[hidden]{display:none}.prose .shiki code{counter-reset:code-line;width:max-content;min-width:100%;display:block}.prose .shiki .line{min-width:100%;padding-right:20px;display:inline-block;position:relative}.prose .shiki .line:before{counter-increment:code-line;content:counter(code-line);z-index:1;box-sizing:content-box;border-right:1px solid var(--code-border,var(--line));background:var(--code-background,var(--surface));text-align:right;min-width:3.5ch;color:var(--code-muted,var(--muted));user-select:none;margin-right:20px;padding-inline:12px;display:inline-block;position:sticky;left:0}:root[data-theme=dark] .prose .shiki,:root[data-theme=dark] .prose .shiki span{color:var(--shiki-dark)!important}.prose .shiki .line.highlighted{background-color:color-mix(in srgb, var(--code-muted,var(--muted)) 12%, transparent)!important}.prose .shiki .line.highlighted span{background-color:#0000!important}.prose .shiki .line.diff.add{background-color:#10b98124!important}.prose .shiki .line.diff.remove,.prose .shiki .line.highlighted.error{background-color:#f43f5e1f!important}.prose .shiki .line.highlighted.warning{background-color:#eab30829!important}.prose .shiki .line[data-diff]:after{content:attr(data-diff);color:#18794e;user-select:none;font-weight:600;position:absolute;top:0;left:calc(3.5ch + 30px)}.prose .shiki .line[data-diff=\-]:after{color:#b8272c}:root[data-theme=dark] .prose .shiki .line[data-diff=\+]:after{color:#3dd68c}:root[data-theme=dark] .prose .shiki .line[data-diff=\-]:after{color:#ff808b}.prose .shiki.has-focused .line:not(.focused){filter:blur(2px);opacity:.5;transition:filter .2s,opacity .2s}.prose :is([data-code-group],[data-code-block]):is(:hover,:focus-within) .shiki.has-focused .line:not(.focused){filter:none;opacity:1}@media (width<=600px){.code-group-tabs{gap:14px;padding-inline:12px}.code-group-toolbar{padding-inline:12px}.prose :is([data-code-group],[data-code-block]) pre{font-size:13px}}@media (prefers-reduced-motion:reduce){.code-group-toolbar [aria-expanded] svg,.prose .shiki.has-focused .line:not(.focused){transition:none}}
