body{font-family:"Helvetica Neue",Arial,"Noto Sans SC","Noto Serif SC","Microsoft YaHei","WenQuanYi Micro Hei",SimSun,sans-serif;margin:0 auto;padding:0;max-width:1000px;width:90%}.has-jax{line-height:inherit!important;display:inline-block!important}.page-post{font-size:16px;line-height:2;word-break:break-all}.page-post .title{font-size:23px;font-weight:bold;color:#000}.page-post .subtitle{font-size:12px;color:#000}.page-post .post>*{margin:0}.page-post .post>iframe{margin:0;width:100%}.page-post .post p{font-family:"Noto Serif SC","Georgia",serif;color:#000;margin:5px 0}.page-post .post h1,.page-post .post h2,.page-post .post h3,.page-post .post h4,.page-post .post h5,.page-post .post h6{scroll-margin-top:80px}.page-post .post h1,.page-post .post h2{font-family:"Noto Serif SC","Georgia",serif;font-weight:normal;font-size:20px;position:relative;font-weight:bold;cursor:pointer;color:#000}.page-post .post h1::before,.page-post .post h2::before{content:'#';top:0;font-weight:bold;padding-right:6px;color:#000}.page-post .post h3{font-family:"Noto Serif SC","Georgia",serif;font-weight:normal;font-size:18px;position:relative;font-weight:bold;cursor:pointer;color:#000}.page-post h4,.page-post h5,.page-post h6{font-family:"Arial",sans-serif;font-size:15px;font-weight:bold}.page-post blockquote{border-left:3px solid #caddee;background-color:#f7f7f7;padding:0 0 0 15px}.page-post a{font-family:"Noto Serif SC";color:#36c;margin:0 2px;border-bottom:1px solid #fff;font-weight:bold}.page-post strong,.page-post b{color:#000}.page-post .post ul{margin:0;padding-left:20px;font-family:"Noto Serif SC",serif;list-style:disc}.page-post .post ol{margin:0;padding-left:20px;font-family:"Noto Serif SC",serif;list-style:decimal}.page-post .post ul>li,.page-post .post ol>li{margin:0 0 4px 0;padding:0;line-height:1.5}.page-post .post li>*{margin:5px 0;font-size:16px;font-family:inherit}.page-post .post ul .post p,.page-post .post ol .post p{font-size:16px;margin:5px 0;line-height:1.5}.page-post .post ol>li::marker{font-weight:bold}.page-post img{display:block;max-width:90%;margin:5px auto;height:auto;box-shadow:0 0 10px rgba(0,0,0,0.1);border-radius:8px}.page-post img[alt='line']{display:inline-block;vertical-align:middle;background-color:transparent;box-shadow:none;margin:0 4px;line-height:1}.page-post pre{font-size:0;padding:10px;overflow:auto;border-radius:2px;max-height:610px;-moz-tab-size:4;-o-tab-size:4;tab-size:4;line-height:1.6}.footnote-ref sup,.footnote-ref sup{color:blue!important}.page-post code{font-size:13px;background-color:#e7e7e7;word-break:break-all;padding:3px 5px;margin:0 4px;border-radius:5px;color:#4d4d4c;font-family:'JetBrains Mono',monospace}.page-post pre code{font-size:13px;background-color:transparent!important;word-break:keep-all;padding:0;margin:0;border-radius:unset;color:inherit}.page-post hr{border:0;height:3px;background-color:#eee}.page-post .table-container{overflow-x:auto;margin:20px 0;border-radius:12px;box-shadow:0 4px 12px rgba(0,0,0,0.08)}.page-post table{width:100%;border-collapse:collapse;border-radius:12px;overflow:hidden;min-width:600px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',sans-serif}.page-post th{background-color:#f5f5f5;color:#333;font-weight:600;font-size:14px;padding:12px 8px;text-align:center}.page-post td{background-color:#fff;color:#555;font-size:13px;padding:10px 8px;text-align:center;vertical-align:middle;word-break:break-word}.page-post tr{border-bottom:1px solid #e0e0e0}.page-post tr:nth-child(even) td{background-color:#f9f9f9}.page-post tr:hover td{background-color:#eef2f7;transition:background-color .3s ease}:root{--code-bg:#1e1e1e;--header-bg:#333131;--border-color:#333;--text-main:#d4d4d4;--accent:#569cd6}.code-fold-container{margin:2em 0;border-radius:12px;overflow:hidden;background:var(--code-bg);border:1px solid var(--border-color);box-shadow:var(--shadow);font-family:'Cascadia Code','Fira Code',ui-monospace,monospace}.code-fold-header{background:var(--header-bg);padding:12px 16px;color:#fff;display:flex;align-items:center;justify-content:space-between;cursor:pointer;user-select:none;border-bottom:1px solid var(--border-color)}.header-left{display:flex;align-items:center;gap:10px}.header-dots{display:flex;gap:6px;margin-right:4px}.dot{width:11px;height:11px;border-radius:50%}.dot-r{background:#ff5f56}.dot-y{background:#ffbd2e}.dot-g{background:#27c93f}.lang-label{font-size:12px;font-weight:600;color:#858585;text-transform:uppercase;letter-spacing:.8px}
.fold-arrow{width:14px;height:14px;transition:transform .3s ease;fill:#666}.is-collapsed .fold-arrow{transform:rotate(-90deg)}.code-fold-content{display:grid;grid-template-rows:1fr;transition:grid-template-rows .3s cubic-bezier(0.4,0,0.2,1)}.code-fold-content.is-collapsed{grid-template-rows:0fr}.code-fold-inner{overflow:hidden}pre.line-numbers{padding-left:3.8em!important;margin:0!important;background:transparent!important;font-size:14px!important;color:var(--text-main)!important}.line-numbers .line-numbers-rows{border-right:1px solid #333!important;padding:1em 0!important;background:rgba(255,255,255,0.02)}.copy-btn{background:#3c3c3c;color:#ccc;border:1px solid #444;padding:4px 12px;border-radius:4px;font-size:11px;font-weight:500;cursor:pointer;transition:all .2s ease}.copy-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.share-buttons{display:flex;justify-content:center;align-items:center;gap:10px;margin-top:20px}.share-button{background:0;border:0;padding:0;cursor:pointer;transition:transform .2s ease}.share-button:hover{transform:scale(1.1)}.share-button i{font-size:24px;color:#333}#gitalk-container{margin-top:40px;padding:10px;background-color:#f9f9f9;border-radius:8px}body,p,div,span,a{user-select:text!important;-webkit-user-select:text!important;-moz-user-select:text!important;-ms-user-select:text!important}.navigation-buttons{margin-top:20px;display:flex;justify-content:space-between}.nav-button{padding:10px 20px;text-decoration:none;color:#333;background-color:#f5f5f5;border-radius:5px;transition:background-color .3s;max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-bottom:#fff}.nav-button:hover:not(.disabled){background-color:#e0e0e0}.nav-button.disabled{opacity:.5;cursor:not-allowed}.nav-button i{margin:0 5px}.previous{text-align:left}.next{text-align:right}.breadcrumbs{font-family:"Noto Sans SC","Helvetica Neue",Arial,sans-serif;font-size:12.5px;color:#777;margin:12px 0 6px;display:flex;flex-wrap:wrap;align-items:center;gap:6px}.breadcrumbs a{color:#36c;text-decoration:none;border-bottom:0}.breadcrumbs a:hover{text-decoration:underline}.breadcrumbs .current{color:#555;max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.breadcrumbs span{color:#bbb}.read-progress{position:fixed;top:0;left:0;width:0;height:2px;background:linear-gradient(90deg,#36c,#5e8def);z-index:1001;transition:width .08s linear;pointer-events:none}.related-posts{margin:30px 0 10px;padding:14px 16px 16px;background:#f8fafc;border-radius:8px;border-left:3px solid #36c}.related-posts h3{font-size:14px;font-weight:700;margin:0 0 10px;color:#1f1f1f;display:flex;align-items:center;gap:6px}.related-posts ul{list-style:none;margin:0;padding:0}.related-posts li{padding:4px 0;font-size:13.5px;line-height:1.7}.related-posts li a{color:#36c;text-decoration:none;border-bottom:none!important;font-weight:normal!important}.related-posts li a:hover{text-decoration:underline}.related-posts li .date{color:#888;font-size:12px;margin-right:8px}.copy-toast{position:fixed;left:50%;bottom:64px;transform:translateX(-50%) translateY(20px);padding:8px 18px;background:rgba(40,40,40,0.92);color:#fff;font-size:13px;border-radius:6px;box-shadow:0 4px 14px rgba(0,0,0,0.2);opacity:0;transition:opacity .2s ease,transform .2s ease;z-index:1002;pointer-events:none}.copy-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.post-description-llm{font-family:'Noto Serif SC',serif;white-space:pre-wrap;font-size:1rem;padding:12px 14px 12px 16px;border-left:4px solid #4a90e2;background:#f8fafc;border-radius:8px;margin:20px 0;box-shadow:0 2px 4px rgba(0,0,0,0.08);line-height:1.6;color:#333;opacity:0;transition:opacity .5s ease-in,border-left-color .4s ease}.post-description-llm.is-ready{opacity:1}.post-description-llm.is-done{border-left-color:#2ecc71}#toc{--toc-bg:rgba(252,252,253,0.92);--toc-border:rgba(0,0,0,0.06);--toc-text:#4a4a4a;--toc-text-strong:#1f1f1f;--toc-accent:#36c;--toc-accent-bg:rgba(51,102,204,0.08);position:fixed;top:100px;left:20px;width:180px;max-height:calc(100vh - 140px);overflow-y:auto;background:var(--toc-bg);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--toc-border);padding:8px 6px 8px 10px;border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,0.05);font-family:"Noto Sans SC","Helvetica Neue",Arial,sans-serif;font-size:12.5px;line-height:1.55;z-index:10;transition:top .3s ease,transform .25s ease,opacity .25s ease}#toc::-webkit-scrollbar{width:4px}#toc::-webkit-scrollbar-thumb{background:rgba(0,0,0,0.15);border-radius:4px}#toc.collapsed{width:auto;padding:0;background:transparent;box-shadow:none;border:0;overflow:visible}#toc.collapsed .toc-header,#toc.collapsed .toc-title,#toc.collapsed .toc-list{display:none}.toc-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;padding-bottom:4px;border-bottom:1px solid var(--toc-border)}
.toc-title{font-size:12.5px;font-weight:700;color:var(--toc-text-strong);letter-spacing:.4px}.toc-toggle{background:0;border:0;cursor:pointer;color:var(--toc-text);padding:0;font-size:12.5px;line-height:1}.toc-toggle:hover{color:var(--toc-accent)}.toc-list a:focus-visible,.toc-toggle:focus-visible,.toc-toggle-floating:focus-visible,.share-button:focus-visible,.nav-button:focus-visible,.breadcrumbs a:focus-visible{outline:2px solid var(--toc-accent,#36c);outline-offset:2px;border-radius:3px}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.toc-list{list-style:none;padding:0;margin:0}.toc-list li{margin:0}.toc-list a{display:block;position:relative;padding:2px 6px 2px 10px;text-decoration:none;color:var(--toc-text);border-left:2px solid transparent;border-radius:0 3px 3px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .15s,background-color .15s,border-color .15s}.toc-list a:hover{color:var(--toc-accent);background:var(--toc-accent-bg)}.toc-list a.active{color:var(--toc-accent);font-weight:600;background:var(--toc-accent-bg);border-left-color:var(--toc-accent)}.toc-list ul{list-style:none;padding-left:10px;margin:0}.toc-list ul ul{padding-left:10px}.toc-list ul a{font-size:12px;color:#6a6a6a}.toc-list ul ul a{font-size:11.5px}.toc-toggle-floating{position:fixed;top:100px;left:20px;background:transparent;border:0;font-size:1.5em;cursor:pointer;padding:8px;z-index:1000;line-height:1}.toc-toggle-floating i{color:rgba(0,0,0,0.25);transition:color .2s}.toc-toggle-floating:hover i{color:var(--toc-accent)}.toc-mask{position:fixed;inset:0;background:rgba(0,0,0,0.35);z-index:998;opacity:0;transition:opacity .25s ease}.toc-mask.is-open{opacity:1}@media(max-width:768px){#toc{position:fixed;top:0;left:0;right:auto;bottom:0;width:78vw;max-width:320px;max-height:100vh;margin:0;border-radius:0 12px 12px 0;padding:18px 14px 18px 16px;transform:translateX(-100%);background:#fff;box-shadow:6px 0 24px rgba(0,0,0,0.12);z-index:999}body.toc-open #toc{transform:translateX(0)}#toc .toc-list a{white-space:normal}#toc.collapsed{background:#fff;padding:18px 14px 18px 16px;box-shadow:6px 0 24px rgba(0,0,0,0.12);border:1px solid var(--toc-border)}#toc.collapsed .toc-header,#toc.collapsed .toc-title,#toc.collapsed .toc-list{display:block}#toc.collapsed .toc-header{display:flex}.toc-toggle-floating{top:auto;right:auto;left:16px;bottom:16px;width:40px;height:40px;border-radius:50%;background:var(--toc-accent,#36c);box-shadow:0 6px 16px rgba(51,102,204,0.35);display:flex!important;align-items:center;justify-content:center;font-size:1em}.toc-toggle-floating i{color:#fff!important}}