:root{--mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Consolas,"Noto Sans TC",monospace;--bg:#fbf7ef;--pn:#fff;--ln:#e4d9c6;--ls:#f1ead9;--tx:#5a4f3e;--hd:#3a3226;--mu:#c2b39a;--m2:#7a6d58;--ac:#c26b3e;--ab:rgba(194,107,62,.1);--a2:#d9a06b;--qb:rgba(194,107,62,.06);--cb:#f4eee1;--ci:#efe7d4;--sy-cm:#736a59;--sy-kw:#8c5570;--sy-st:#5a6f40;--sy-nu:#8a6224;--sy-fn:#42697a;--rw:rgba(228,217,198,.25);--hl:#f6d36b88}[data-dark=true]{--bg:#1c1917;--pn:#262220;--ln:#38322d;--ls:#2a2622;--tx:#d9d2c7;--hd:#f2ece1;--mu:#8d8375;--m2:#a89c8a;--ac:#ec9566;--ab:rgba(236,149,102,.13);--a2:#b06a42;--qb:rgba(236,149,102,.07);--cb:#161311;--ci:#38322d;--sy-cm:#8d8375;--sy-kw:#c892a6;--sy-st:#9ab379;--sy-nu:#c8a569;--sy-fn:#7fa9b8;--rw:rgba(56,50,45,.35);--hl:rgba(246,211,107,.28)}*{box-sizing:border-box}body{margin:0;font-family:Noto Sans TC,system-ui,sans-serif}:focus-visible{outline:2px solid var(--ac);outline-offset:2px}.btn-reset{background:none;border:none;padding:0;margin:0;font:inherit;color:inherit;text-align:inherit;text-decoration:none;cursor:pointer;display:block}a{color:var(--ac)}a:hover{color:var(--a2)}.md-body{font-size:15.5px;line-height:2.05;color:var(--tx)}.md-body h1,.md-body h2,.md-body h3{font-family:"Noto Serif TC",serif;color:var(--hd)}.md-body h2{font-size:24px;font-weight:600;margin:34px 0 16px;padding-bottom:8px;border-bottom:1px solid var(--ln)}.md-body h3{font-size:18px;font-weight:600;margin:24px 0 12px}.md-body code{font-family:var(--mono);font-size:.88em;font-weight:400;font-style:normal;background:var(--ci);border-radius:4px;padding:1px 6px;color:var(--hd);overflow-wrap:anywhere}.md-body .code-block{margin:24px 0}.md-body .code-block pre{margin:0}.md-body .code-block[data-lang]{position:relative}.md-body .code-block[data-lang]:before{content:attr(data-lang);position:absolute;top:10px;right:16px;font:500 11px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--mu);pointer-events:none}.md-body .code-block[data-lang] pre{padding-top:34px}.md-body pre{background:var(--cb);border:1px solid var(--ln);border-radius:10px;padding:16px 18px;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--ln) transparent;-moz-tab-size:4;tab-size:4}.md-body pre code{background:none;padding:0;border-radius:0;font-family:var(--mono);font-size:13.5px;line-height:1.75;color:var(--tx);white-space:pre;overflow-wrap:normal;word-break:normal}.md-body .hljs-comment,.md-body .hljs-quote,.md-body .hljs-meta{color:var(--sy-cm)}.md-body .hljs-keyword,.md-body .hljs-selector-tag,.md-body .hljs-literal,.md-body .hljs-type,.md-body .hljs-operator,.md-body .hljs-doctag,.md-body .hljs-meta .hljs-keyword{color:var(--sy-kw)}.md-body .hljs-string,.md-body .hljs-regexp,.md-body .hljs-addition,.md-body .hljs-meta .hljs-string{color:var(--sy-st)}.md-body .hljs-number,.md-body .hljs-symbol,.md-body .hljs-bullet,.md-body .hljs-template-variable,.md-body .hljs-variable.constant_{color:var(--sy-nu)}.md-body .hljs-title,.md-body .hljs-title.function_,.md-body .hljs-title.class_,.md-body .hljs-built_in,.md-body .hljs-section,.md-body .hljs-name,.md-body .hljs-attr,.md-body .hljs-attribute,.md-body .hljs-selector-id,.md-body .hljs-selector-class{color:var(--sy-fn)}.md-body .hljs-emphasis{font-style:italic}.md-body .hljs-strong{font-weight:500}.md-body blockquote{border-left:3px solid var(--a2);background:var(--qb);border-radius:0 8px 8px 0;padding:14px 18px;margin:0 0 30px}.md-body blockquote p{margin:0}.md-body table{width:100%;border-collapse:collapse;font-size:14.5px;margin-bottom:34px}.md-body th{padding:9px 12px;border-bottom:2px solid var(--ln);font-weight:500;color:var(--hd);text-align:left}.md-body td{padding:9px 12px;border-bottom:1px solid var(--ls)}.md-body a.wikilink{color:var(--ac);text-decoration:underline;text-decoration-color:var(--a2);text-underline-offset:3px}.md-body .broken-link{color:var(--mu);text-decoration:line-through dotted;cursor:not-allowed}.md-body img{max-width:100%}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--ln);border-radius:5px}.menu-toggle{display:none;align-items:center;justify-content:center;width:44px;height:44px;border-radius:8px;border:1px solid var(--ln);background:var(--pn);cursor:pointer;color:var(--hd);font-size:16px;flex-shrink:0}.mobile-topbar{display:none}.page-pad-home{padding:64px 120px}.page-pad-md{padding:52px 80px}.article-pad{padding:34px 316px 60px 56px}.editor-pad{padding:28px 56px}.toc-panel{position:fixed;right:32px;top:34px;width:224px}.toc-inline{display:none}.search-grid{grid-template-columns:280px 1fr}@media (max-width: 1200px){.toc-panel{display:none}.article-pad{padding:34px 56px 60px}.toc-inline{display:block;background:var(--pn);border:1px solid var(--ln);border-radius:10px;margin-bottom:24px}.toc-inline summary{font:500 11px Noto Sans TC,sans-serif;letter-spacing:.12em;color:var(--m2);padding:12px 16px;cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px}.toc-inline summary:before{content:"▸";font-size:10px;color:var(--mu)}.toc-inline[open] summary:before{content:"▾"}.toc-inline nav{display:flex;flex-direction:column;gap:8px;font-size:13.5px;padding:0 16px 14px}}@media (max-width: 768px){.app-shell{grid-template-columns:1fr!important}.mobile-topbar{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--ln);background:var(--bg);position:sticky;top:0;z-index:40}.menu-toggle{display:flex}.tap-44{min-height:44px;display:inline-flex;align-items:center;justify-content:center}.sidebar{position:fixed;top:0;left:0;bottom:0;width:min(280px,82vw);z-index:70;background:var(--bg);transform:translate(-100%);transition:transform .25s ease;box-shadow:8px 0 24px #0003;padding-left:max(22px,env(safe-area-inset-left))!important}.sidebar.open{transform:translate(0)}@media (prefers-reduced-motion: reduce){.sidebar{transition:none}}.sidebar-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#14100a59;z-index:65}.toc-panel{display:none}.page-pad-home{padding:32px 20px}.page-pad-md{padding:28px 16px}.article-pad{padding:20px 16px 40px}.md-body .code-block{margin:20px 0}.md-body pre{padding:13px 14px;border-radius:8px}.md-body pre code{font-size:12.5px;line-height:1.7}.md-body .code-block[data-lang]:before{top:9px;right:12px}.md-body .code-block[data-lang] pre{padding-top:30px}.editor-pad{padding:16px}.search-grid{grid-template-columns:1fr}.search-preview{display:none}}
