.footer{position:fixed;bottom:0;left:0;right:0;background-color:var(--bg-secondary, #f5f5f5);border-top:1px solid var(--border-color, #e0e0e0);padding:.75rem 1rem;text-align:center;font-size:.875rem;color:var(--text-secondary, #666666);z-index:100}.footer p{margin:0}.footer-link{color:var(--text-primary, #000000);text-decoration:none;font-weight:600;transition:color .2s}.footer-link:hover{color:var(--text-secondary, #666666);text-decoration:underline}.home{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;background-color:var(--bg-primary, #ffffff)}.home-container{max-width:800px;width:100%;background-color:var(--bg-primary, #ffffff);border:1px solid var(--border-color, #e0e0e0);border-radius:8px;padding:2rem}.home-header{display:flex;flex-direction:column;align-items:center;gap:1rem;margin-bottom:1rem}.home-logo{max-height:100px;width:auto;height:auto;object-fit:contain}.home-title{font-size:2.5rem;font-weight:700;text-align:center;margin:0;color:var(--text-primary, #000000)}@media (max-width: 640px){.home-logo{max-height:80px}.home-title{font-size:2rem}}.access-content-button{width:100%;padding:1.25rem 2rem;background-color:var(--bg-primary, #ffffff);border:2px solid var(--primary-color, #000000);border-radius:4px;color:var(--text-primary, #000000);font-size:1.125rem;font-weight:600;cursor:pointer;transition:all .2s;margin-top:2rem}.access-content-button:hover{background-color:var(--primary-color, #000000);color:var(--bg-primary, #ffffff)}.access-content-button:active{transform:scale(.98)}.repo-badge{padding:1rem;background-color:var(--bg-secondary, #f5f5f5);border-bottom:1px solid var(--border-color, #e0e0e0)}.repo-link{display:flex;align-items:center;gap:.25rem;text-decoration:none;color:var(--text-primary, #000000);font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.875rem;transition:opacity .2s}.repo-link:hover{opacity:.7}.repo-owner{font-weight:600}.repo-separator{color:var(--text-secondary, #666666)}.repo-name{font-weight:500}.repo-branch{color:var(--text-secondary, #666666);font-size:.75rem;margin-left:.25rem}.toc{padding:1rem 1rem 2rem;position:sticky;top:0;max-height:100vh;overflow-y:auto}.toc-title{font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary, #666666);margin:0 0 .75rem}.toc-list{list-style:none;padding:0;margin:0}.toc-item{margin:.25rem 0}.toc-item-depth-1{margin-left:0;font-weight:600}.toc-item-depth-2{margin-left:.75rem}.toc-item-depth-3{margin-left:1.5rem}.toc-item-depth-4{margin-left:2.25rem}.toc-item-depth-5{margin-left:3rem}.toc-item-depth-6{margin-left:3.75rem}.toc-link{display:block;color:var(--text-secondary, #666666);text-decoration:none;font-size:.875rem;line-height:1.5;transition:color .2s;word-break:break-word}.toc-link:hover{color:var(--primary-color, #000000)}.toc-item-active .toc-link,.toc-link-active{color:var(--primary-color, #000000);font-weight:600;position:relative}.toc-item-active .toc-link:before{content:"";position:absolute;left:-.75rem;top:50%;transform:translateY(-50%);width:3px;height:1.2em;background-color:var(--primary-color, #000000);border-radius:2px}.toc-modules-section{margin-bottom:1.5rem}.toc-headings-section{margin-top:1.5rem}.toc-section-title{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary, #666666);margin:0 0 .5rem;padding-top:.5rem;border-top:1px solid var(--border-color, #e0e0e0)}.toc-modules-section .toc-section-title{border-top:none;padding-top:0}.toc-modules-list{list-style:none;padding:0;margin:0}.toc-module-item{margin:.375rem 0}.toc-module-link{display:flex;align-items:flex-start;color:var(--text-secondary, #666666);text-decoration:none;font-size:.875rem;line-height:1.5;transition:color .2s;word-break:break-word;padding:.25rem 0}.toc-module-link:hover{color:var(--primary-color, #000000)}.toc-module-active .toc-module-link{color:var(--primary-color, #000000);font-weight:600}.toc-module-number{display:inline-block;min-width:1.5rem;margin-right:.5rem;font-weight:600;color:var(--text-secondary, #666666)}.toc-module-active .toc-module-number{color:var(--primary-color, #000000)}.toc-module-name{flex:1}.font-controls{display:flex;gap:.25rem;align-items:center}.font-control-btn{background:transparent;border:1px solid var(--border-color, #e0e0e0);color:var(--text-primary, #000000);padding:.375rem .5rem;font-size:.875rem;font-weight:600;cursor:pointer;border-radius:3px;transition:all .2s;min-width:2rem}.font-control-btn:hover:not(:disabled){background-color:var(--bg-hover, #e8e8e8);border-color:var(--primary-color, #000000)}.font-control-btn:disabled{opacity:.4;cursor:not-allowed}.font-control-btn:active:not(:disabled){transform:scale(.95)}.breadcrumbs{margin-bottom:1rem}.breadcrumbs-list{display:flex;flex-wrap:wrap;align-items:center;list-style:none;padding:0;margin:0;font-size:.875rem;color:var(--text-secondary, #666666)}.breadcrumbs-item{display:flex;align-items:center}.breadcrumbs-link{color:var(--text-secondary, #666666);text-decoration:none;transition:color .2s}.breadcrumbs-link:hover{color:var(--primary-color, #000000);text-decoration:underline}.breadcrumbs-separator{color:var(--text-secondary, #666666);margin:0 .25rem}.breadcrumbs-current{color:var(--text-primary, #000000);font-weight:500}.share-button{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background-color:var(--bg-primary, #ffffff);border:1px solid var(--border-color, #e0e0e0);border-radius:4px;color:var(--text-primary, #000000);font-size:.875rem;cursor:pointer;transition:all .2s;white-space:nowrap}.share-button:hover{background-color:var(--bg-hover, #e8e8e8);border-color:var(--primary-color, #000000)}.share-button:active{transform:scale(.98)}.share-button-copied{background-color:var(--primary-color, #000000);color:#fff;border-color:var(--primary-color, #000000)}.share-icon{font-size:1rem;line-height:1}.share-text{font-weight:500}.layout{display:flex;min-height:100vh;padding-bottom:60px}.sidebar{width:280px;min-width:280px;background-color:var(--bg-secondary, #f5f5f5);border-right:1px solid var(--border-color, #e0e0e0);overflow-y:auto;position:fixed;left:0;top:0;bottom:60px;z-index:10}.sidebar-logo-container{padding:1rem;display:flex;justify-content:center;align-items:center;border-bottom:1px solid var(--border-color, #e0e0e0)}.sidebar-logo{max-height:70px;width:auto;height:auto;object-fit:contain}.main-content{flex:1;margin-left:280px;padding:2rem;max-width:calc(100vw - 280px);overflow-x:hidden}.content-header{margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color, #e0e0e0)}.content-header-top{display:flex;justify-content:space-between;align-items:center;gap:1rem}.content-header-actions{display:flex;align-items:center;gap:.75rem}.file-title{margin:0;font-size:1.5rem;font-weight:600;color:var(--text-primary, #000000);word-break:break-word}.github-button{padding:.5rem 1rem;background-color:var(--primary-color, #000000);color:#fff;text-decoration:none;border-radius:4px;font-size:.875rem;transition:background-color .2s;white-space:nowrap}.github-button:hover{background-color:var(--primary-hover, #333333)}.content-body{max-width:900px}@media (max-width: 768px){.sidebar{width:240px;min-width:240px}.main-content{margin-left:240px;padding:1rem}}@media (max-width: 640px){.layout{flex-direction:column}.sidebar{position:relative;width:100%;min-width:100%;max-height:300px;bottom:auto}.main-content{margin-left:0;padding:1rem}.content-header{flex-direction:column;align-items:flex-start;gap:1rem}}.lazy-image-container{position:relative;display:inline-block;width:100%;max-width:100%;min-height:200px}.lazy-image-placeholder{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background-color:var(--bg-secondary, #f5f5f5);border-radius:4px;min-height:200px;z-index:1}.lazy-image-skeleton{width:100%;height:100%;background:linear-gradient(90deg,var(--bg-secondary, #f5f5f5) 0%,var(--bg-hover, #e8e8e8) 50%,var(--bg-secondary, #f5f5f5) 100%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite;border-radius:4px}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.lazy-image-spinner{width:40px;height:40px;border:3px solid var(--border-color, #e0e0e0);border-top-color:var(--primary-color, #000000);border-radius:50%;animation:spin .8s linear infinite}.lazy-image{max-width:100%;height:auto;border-radius:4px;margin:1em 0;transition:opacity .3s ease-in-out;position:relative;z-index:2;display:block;width:100%}.lazy-image-loaded{opacity:1}.lazy-image-loading{opacity:0}.lazy-image-error{padding:2rem;text-align:center;color:var(--text-secondary, #666666);background-color:var(--bg-secondary, #f5f5f5);border:1px dashed var(--border-color, #e0e0e0);border-radius:4px;font-size:.875rem}.module-navigation{display:flex;justify-content:space-between;gap:1rem;margin-top:3rem;padding-top:2rem;border-top:1px solid var(--border-color, #e0e0e0)}.module-nav-button{flex:1;display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;background-color:var(--bg-primary, #ffffff);border:1px solid var(--border-color, #e0e0e0);border-radius:4px;color:var(--text-primary, #000000);text-align:left;cursor:pointer;transition:all .2s;text-decoration:none;max-width:45%}.module-nav-button:hover{background-color:var(--bg-hover, #e8e8e8);border-color:var(--primary-color, #000000);transform:translateY(-2px);box-shadow:0 2px 8px #0000001a}.module-nav-button:active{transform:translateY(0)}.module-nav-prev{text-align:left}.module-nav-next{text-align:right;flex-direction:row-reverse}.module-nav-arrow{font-size:1.5rem;font-weight:600;color:var(--text-secondary, #666666);flex-shrink:0}.module-nav-button:hover .module-nav-arrow{color:var(--primary-color, #000000)}.module-nav-content{display:flex;flex-direction:column;gap:.25rem;flex:1;min-width:0}.module-nav-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary, #666666);font-weight:600}.module-nav-name{font-size:.875rem;font-weight:500;color:var(--text-primary, #000000);word-break:break-word}.module-nav-spacer{flex:1;max-width:45%}@media (max-width: 640px){.module-navigation{flex-direction:column}.module-nav-button{max-width:100%}.module-nav-next{flex-direction:row}.module-nav-spacer{display:none}}.markdown-view{max-width:100%;line-height:1.8;color:var(--text-primary, #000000);font-size:var(--font-size-computed)}.markdown-view>*:first-child{margin-top:0}.markdown-view>*:last-child{margin-bottom:0}.markdown-view h1,.markdown-view h2,.markdown-view h3,.markdown-view h4,.markdown-view h5,.markdown-view h6{margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.25;scroll-margin-top:80px}.markdown-view h1{font-size:2em;border-bottom:1px solid var(--border-color, #e0e0e0);padding-bottom:.3em}.markdown-view h2{font-size:1.5em;border-bottom:1px solid var(--border-color, #e0e0e0);padding-bottom:.3em}.markdown-view h3{font-size:1.25em}.markdown-view h4{font-size:1em}.markdown-view h5{font-size:.875em}.markdown-view h6{font-size:.85em;color:var(--text-secondary, #666666)}.markdown-view p{margin:1em 0}.markdown-view a{color:var(--primary-color, #000000);text-decoration:underline}.markdown-view a:hover{text-decoration:none}.markdown-view .markdown-link{color:var(--primary-color, #000000)}.markdown-view ul,.markdown-view ol{margin:1em 0;padding-left:2em}.markdown-view li{margin:.5em 0}.markdown-view li>p{margin:.5em 0}.markdown-view pre{background-color:var(--code-bg, #f5f5f5);border:1px solid var(--border-color, #e0e0e0);border-radius:6px;padding:1em;overflow-x:auto;margin:1em 0}.markdown-view pre code{background:transparent;padding:0;border:none;font-size:.875em}.markdown-view code{background-color:var(--code-bg, #f5f5f5);padding:.2em .4em;border-radius:3px;font-size:.9em;font-family:Monaco,Menlo,Ubuntu Mono,monospace;border:1px solid var(--border-color, #e0e0e0)}.markdown-view blockquote{margin:1em 0;padding-left:1em;border-left:4px solid var(--border-color, #e0e0e0);color:var(--text-secondary, #666666)}.markdown-view table{border-collapse:collapse;margin:1em 0;width:100%;overflow-x:auto;display:block}.markdown-view table thead{background-color:var(--bg-secondary, #f5f5f5)}.markdown-view table th,.markdown-view table td{border:1px solid var(--border-color, #e0e0e0);padding:.5em 1em;text-align:left}.markdown-view table th{font-weight:600}.markdown-view img{max-width:100%;height:auto;border-radius:4px;margin:1em 0}.markdown-view hr{border:none;border-top:1px solid var(--border-color, #e0e0e0);margin:2em 0}.markdown-view input[type=checkbox]{margin-right:.5em}/*!
  Theme: Default
  Description: Original highlight.js style
  Author: (c) Ivan Sagalaev <maniac@softwaremaniacs.org>
  Maintainer: @highlightjs/core-team
  Website: https://highlightjs.org/
  License: see project LICENSE
  Touched: 2021
*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#f3f3f3;color:#444}.hljs-comment{color:#697070}.hljs-tag,.hljs-punctuation{color:#444a}.hljs-tag .hljs-name,.hljs-tag .hljs-attr{color:#444}.hljs-keyword,.hljs-attribute,.hljs-selector-tag,.hljs-meta .hljs-keyword,.hljs-doctag,.hljs-name{font-weight:700}.hljs-type,.hljs-string,.hljs-number,.hljs-selector-id,.hljs-selector-class,.hljs-quote,.hljs-template-tag,.hljs-deletion{color:#800}.hljs-title,.hljs-section{color:#800;font-weight:700}.hljs-regexp,.hljs-symbol,.hljs-variable,.hljs-template-variable,.hljs-link,.hljs-selector-attr,.hljs-operator,.hljs-selector-pseudo{color:#ab5656}.hljs-literal{color:#695}.hljs-built_in,.hljs-bullet,.hljs-code,.hljs-addition{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#38a}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;padding:2rem}.loading-spinner{width:48px;height:48px;border:4px solid var(--border-color, #e0e0e0);border-top-color:var(--primary-color, #000000);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}@keyframes spin{to{transform:rotate(360deg)}}.loading-state p{color:var(--text-secondary, #666666);margin:0}.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;padding:2rem;text-align:center}.error-icon{font-size:4rem;margin-bottom:1rem}.error-state h2{margin:0 0 .5rem;color:var(--error-color, #cc0000)}.error-state p{margin:0 0 1.5rem;color:var(--text-secondary, #666666)}.error-retry{padding:.75rem 1.5rem;background-color:var(--primary-color, #000000);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1rem;transition:background-color .2s}.error-retry:hover{background-color:var(--primary-hover, #333333)}.error-retry:active{transform:scale(.98)}.error-boundary{display:flex;align-items:center;justify-content:center;min-height:100vh;width:100%;padding:2rem;box-sizing:border-box;background-color:var(--bg-primary, #ffffff)}.error-boundary-content{text-align:center;max-width:500px}.error-boundary-content h2{color:var(--error-color, #cc0000);margin-bottom:1rem}.error-boundary-content p{color:var(--text-secondary, #666666);margin-bottom:2rem}.error-boundary-button{padding:.75rem 1.5rem;background-color:var(--primary-color, #000000);color:#fff;border:none;border-radius:4px;font-size:1rem;cursor:pointer;transition:background-color .2s}.error-boundary-button:hover{background-color:var(--primary-hover, #333333)}:root{--bg-primary: #ffffff;--bg-secondary: #f5f5f5;--bg-hover: #e8e8e8;--text-primary: #000000;--text-secondary: #666666;--border-color: #e0e0e0;--primary-color: #000000;--primary-hover: #333333;--error-color: #cc0000;--code-bg: #f5f5f5;--font-size-base: 16px;--font-size-scale: 1;--font-size-computed: calc(var(--font-size-base) * var(--font-size-scale));--font-family-serif: "Georgia", "Times New Roman", serif;--font-family-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;padding:0;font-family:var(--font-family-sans);font-size:var(--font-size-computed);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.7;letter-spacing:.01em}code{font-family:Monaco,Menlo,Ubuntu Mono,monospace}#root{min-height:100vh;width:100%;display:block;position:relative}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}::selection{background-color:var(--primary-color);color:#fff}
