/*! normalize.css 2012-02-07T12:37 UTC - https://github.com/necolas/normalize.css */article,aside,details,figcaption,figure,footer,header,hgroup,nav,section,summary{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}[hidden]{display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}html,button,input,select,textarea{font-family:sans-serif}body{margin:0}a:focus{outline:thin dotted}a:hover,a:active{outline:0}h1{font-size:2em;margin:0.67em 0}h2{font-size:1.5em;margin:0.83em 0}h3{font-size:1.17em;margin:1em 0}h4{font-size:1em;margin:1.33em 0}h5{font-size:0.83em;margin:1.67em 0}h6{font-size:0.75em;margin:2.33em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}blockquote{margin:1em 40px}dfn{font-style:italic}mark{background:#ff0;color:#000}p,pre{margin:1em 0}pre,code,kbd,samp{font-family:monospace, serif;_font-family:'courier new', monospace;font-size:1em}q{quotes:none}q:before,q:after{content:'';content:none}small{font-size:75%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}dl,menu,ol,ul{margin:1em 0}dd{margin:0 0 0 40px}menu,ol,ul{padding:0 0 0 40px}nav ul,nav ol{list-style:none;list-style-image:none}img{border:0;-ms-interpolation-mode:bicubic}svg:not(:root){overflow:hidden}figure{margin:0}form{margin:0}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0;white-space:normal;*margin-left:-7px}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button;*overflow:visible}button[disabled],input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0;*height:13px;*width:13px}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}@font-face{font-family:'OpenSansLight';src:url("../fonts/OpenSans-Light-webfont.eot");src:url("../fonts/OpenSans-Light-webfont.eot?#iefix") format("embedded-opentype"),url("../fonts/OpenSans-Light-webfont.woff") format("woff"),url("../fonts/OpenSans-Light-webfont.ttf") format("truetype"),url("../fonts/OpenSans-Light-webfont.svg#OpenSansLight") format("svg");font-weight:normal;font-style:normal}@font-face{font-family:'OpenSansLightItalic';src:url("../fonts/OpenSans-LightItalic-webfont.eot");src:url("../fonts/OpenSans-LightItalic-webfont.eot?#iefix") format("embedded-opentype"),url("../fonts/OpenSans-LightItalic-webfont.woff") format("woff"),url("../fonts/OpenSans-LightItalic-webfont.ttf") format("truetype"),url("../fonts/OpenSans-LightItalic-webfont.svg#OpenSansLightItalic") format("svg");font-weight:normal;font-style:normal}@font-face{font-family:'OpenSansRegular';src:url("../fonts/OpenSans-Regular-webfont.eot");src:url("../fonts/OpenSans-Regular-webfont.eot?#iefix") format("embedded-opentype"),url("../fonts/OpenSans-Regular-webfont.woff") format("woff"),url("../fonts/OpenSans-Regular-webfont.ttf") format("truetype"),url("../fonts/OpenSans-Regular-webfont.svg#OpenSansRegular") format("svg");font-weight:normal;font-style:normal;-webkit-font-smoothing:antialiased}@font-face{font-family:'OpenSansItalic';src:url("../fonts/OpenSans-Italic-webfont.eot");src:url("../fonts/OpenSans-Italic-webfont.eot?#iefix") format("embedded-opentype"),url("../fonts/OpenSans-Italic-webfont.woff") format("woff"),url("../fonts/OpenSans-Italic-webfont.ttf") format("truetype"),url("../fonts/OpenSans-Italic-webfont.svg#OpenSansItalic") format("svg");font-weight:normal;font-style:normal;-webkit-font-smoothing:antialiased}@font-face{font-family:'OpenSansSemibold';src:url("../fonts/OpenSans-Semibold-webfont.eot");src:url("../fonts/OpenSans-Semibold-webfont.eot?#iefix") format("embedded-opentype"),url("../fonts/OpenSans-Semibold-webfont.woff") format("woff"),url("../fonts/OpenSans-Semibold-webfont.ttf") format("truetype"),url("../fonts/OpenSans-Semibold-webfont.svg#OpenSansSemibold") format("svg");font-weight:normal;font-style:normal;-webkit-font-smoothing:antialiased}@font-face{font-family:'OpenSansSemiboldItalic';src:url("../fonts/OpenSans-SemiboldItalic-webfont.eot");src:url("../fonts/OpenSans-SemiboldItalic-webfont.eot?#iefix") format("embedded-opentype"),url("../fonts/OpenSans-SemiboldItalic-webfont.woff") format("woff"),url("../fonts/OpenSans-SemiboldItalic-webfont.ttf") format("truetype"),url("../fonts/OpenSans-SemiboldItalic-webfont.svg#OpenSansSemiboldItalic") format("svg");font-weight:normal;font-style:normal;-webkit-font-smoothing:antialiased}@font-face{font-family:'OpenSansBold';src:url("../fonts/OpenSans-Bold-webfont.eot");src:url("../fonts/OpenSans-Bold-webfont.eot?#iefix") format("embedded-opentype"),url("../fonts/OpenSans-Bold-webfont.woff") format("woff"),url("../fonts/OpenSans-Bold-webfont.ttf") format("truetype"),url("../fonts/OpenSans-Bold-webfont.svg#OpenSansBold") format("svg");font-weight:normal;font-style:normal;-webkit-font-smoothing:antialiased}@font-face{font-family:'OpenSansBoldItalic';src:url("../fonts/OpenSans-BoldItalic-webfont.eot");src:url("../fonts/OpenSans-BoldItalic-webfont.eot?#iefix") format("embedded-opentype"),url("../fonts/OpenSans-BoldItalic-webfont.woff") format("woff"),url("../fonts/OpenSans-BoldItalic-webfont.ttf") format("truetype"),url("../fonts/OpenSans-BoldItalic-webfont.svg#OpenSansBoldItalic") format("svg");font-weight:normal;font-style:normal;-webkit-font-smoothing:antialiased}.highlight table td{padding:5px}.highlight table pre{margin:0}.highlight,.highlight .w{color:#d0d0d0}.highlight .err{color:#151515;background-color:#ac4142}.highlight .c,.highlight .cd,.highlight .cm,.highlight .c1,.highlight .cs{color:#888}.highlight .cp{color:#f4bf75}.highlight .nt{color:#f4bf75}.highlight .o,.highlight .ow{color:#d0d0d0}.highlight .p,.highlight .pi{color:#d0d0d0}.highlight .gi{color:#90a959}.highlight .gd{color:#ac4142}.highlight .gh{color:#6a9fb5;font-weight:bold}.highlight .k,.highlight .kn,.highlight .kp,.highlight .kr,.highlight .kv{color:#aa759f}.highlight .kc{color:#d28445}.highlight .kt{color:#d28445}.highlight .kd{color:#d28445}.highlight .s,.highlight .sb,.highlight .sc,.highlight .sd,.highlight .s2,.highlight .sh,.highlight .sx,.highlight .s1{color:#90a959}.highlight .sr{color:#75b5aa}.highlight .si{color:#8f5536}.highlight .se{color:#8f5536}.highlight .nn{color:#f4bf75}.highlight .nc{color:#f4bf75}.highlight .no{color:#f4bf75}.highlight .na{color:#6a9fb5}.highlight .m,.highlight .mf,.highlight .mh,.highlight .mi,.highlight .il,.highlight .mo,.highlight .mb,.highlight .mx{color:#90a959}.highlight .ss{color:#90a959}body{padding:0px 0 20px 0px;margin:0px;font:14px/1.5 "OpenSansRegular", "Helvetica Neue", Helvetica, Arial, sans-serif;color:#f0e7d5;font-weight:normal;background:#252525;background-attachment:fixed !important;background:linear-gradient(#2a2a29, #1c1c1c)}h1,h2,h3,h4,h5,h6{color:#e8e8e8;margin:0 0 10px;font-family:'OpenSansRegular', "Helvetica Neue", Helvetica, Arial, sans-serif;font-weight:normal}p,ul,ol,table,pre,dl{margin:0 0 20px}h1,h2,h3{line-height:1.1}h1{font-size:28px}h2{font-size:24px}h4,h5,h6{color:#e8e8e8}h3{font-size:18px;line-height:24px;font-family:'OpenSansRegular', "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:normal;color:#b6b6b6}a{color:#ffcc00;font-weight:400;text-decoration:none}a:hover{color:#ffeb9b}a small{font-size:11px;color:#666;margin-top:-0.6em;display:block}ul{list-style-image:url("../images/bullet.png")}strong{font-family:'OpenSansBold', "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:normal}.wrapper{max-width:650px;margin:0 auto;position:relative;padding:0 20px}section img{max-width:100%}blockquote{border-left:3px solid #ffcc00;margin:0;padding:0 0 0 20px;font-style:italic}code{font-family:Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal, monospace;color:#efefef;font-size:13px;margin:0 4px;padding:4px 6px;border-radius:2px}pre{padding:8px 15px;background:#191919;border-radius:2px;border:1px solid #121212;box-shadow:inset 0 1px 3px rgba(0,0,0,0.3);overflow:auto;overflow-y:hidden}pre code{color:#efefef;text-shadow:0px 1px 0px #000;margin:0;padding:0}table{width:100%;border-collapse:collapse}th{text-align:left;padding:5px 10px;border-bottom:1px solid #434343;color:#b6b6b6;font-family:'OpenSansSemibold', "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:normal}td{text-align:left;padding:5px 10px;border-bottom:1px solid #434343}hr{border:0;outline:none;height:3px;background:transparent url("../images/hr.gif") center center repeat-x;margin:0 0 20px}dt{color:#F0E7D5;font-family:'OpenSansSemibold', "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:normal}#header{z-index:100;left:0;top:0px;height:60px;width:100%;position:fixed;background:url(../images/nav-bg.gif) #353535;border-bottom:4px solid #434343;box-shadow:0px 1px 3px rgba(0,0,0,0.25)}#header nav{max-width:650px;margin:0 auto;padding:0 10px;background:blue;margin:6px auto}#header nav ul{list-style-type:none;margin:0;padding:0}#header nav ul li{font-family:'OpenSansLight', "Helvetica Neue", Helvetica, Arial, sans-serif;font-weight:normal;list-style:none;display:inline;color:white;line-height:50px;text-shadow:0px 1px 0px rgba(0,0,0,0.2);font-size:14px}#header nav ul li a{color:white;border:1px solid #5d910b;background:linear-gradient(#93bd20, #659e10);border-radius:2px;box-shadow:inset 0px 1px 0px rgba(255,255,255,0.3),0px 3px 7px rgba(0,0,0,0.7);background-color:#93bd20;padding:10px 12px;margin-top:6px;line-height:14px;font-size:14px;display:inline-block;text-align:center}#header nav ul li a:hover{background:linear-gradient(#749619, #527f0e);background-color:#659e10;border:1px solid #527f0e;box-shadow:inset 0px 1px 1px rgba(0,0,0,0.2),0px 1px 0px transparent}#header nav ul li.fork{float:left;margin-left:0px}#header nav ul li.downloads{float:right;margin-left:6px}#header nav ul li.title{float:right;margin-right:10px;font-size:11px}section{max-width:650px;padding:30px 0px 50px 0px;margin:20px 0;margin-top:70px}section #title{border:0;outline:none;margin:0 0 50px 0;padding:0 0 5px 0}section #title h1{font-family:'OpenSansLight', "Helvetica Neue", Helvetica, Arial, sans-serif;font-weight:normal;font-size:40px;text-align:center;line-height:36px}section #title p{color:#d7cfbe;font-family:'OpenSansLight', "Helvetica Neue", Helvetica, Arial, sans-serif;font-weight:normal;font-size:18px;text-align:center}section #title .credits{font-size:11px;font-family:'OpenSansRegular', "Helvetica Neue", Helvetica, Arial, sans-serif;font-weight:normal;color:#696969;margin-top:-10px}section #title .credits.left{float:left}section #title .credits.right{float:right}@media print, screen and (max-width: 720px){#title .credits{display:block;width:100%;line-height:30px;text-align:center}#title .credits .left{float:none;display:block}#title .credits .right{float:none;display:block}}@media print, screen and (max-width: 480px){#header{margin-top:-20px}section{margin-top:40px}nav{display:none}}.outer,.inner{background:transparent !important;background-image:none !important}:root{--color-bg-primary: #09090b;--color-bg-secondary: #18181b;--color-bg-tertiary: #27272a;--color-bg-elevated: #27272a;--color-bg-hover: #3f3f46;--color-border: #27272a;--color-border-hover: #3f3f46;--color-border-focus: #6366f1;--color-text-primary: #fafafa;--color-text-secondary: #a1a1aa;--color-text-tertiary: #71717a;--color-text-muted: #52525b;--color-accent: #8b5cf6;--color-accent-hover: #a78bfa;--color-accent-muted: rgba(139, 92, 246, 0.1);--color-success: #22c55e;--color-warning: #f59e0b;--color-error: #ef4444;--font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;--font-mono: 'JetBrains Mono', 'Fira Code', 'SF Mono', Consolas, monospace;--space-xs: 0.25rem;--space-sm: 0.5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--radius-sm: 0.375rem;--radius-md: 0.5rem;--radius-lg: 0.75rem;--radius-xl: 1rem;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1);--shadow-glow: 0 0 20px rgba(139, 92, 246, 0.15);--toc-width: 240px;--search-modal-width: 600px;--header-height: 56px}*{box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background:var(--color-bg-primary);color:var(--color-text-primary);line-height:1.7;letter-spacing:-0.01em;margin:0;padding:0}#header{background:var(--color-bg-secondary) !important;background-image:none !important;border-bottom:1px solid var(--color-border);box-shadow:none;padding:0;margin:0;height:auto;position:fixed;top:0;left:0;right:0;z-index:100}#header nav{max-width:1400px;margin:0 auto;padding:var(--space-sm) var(--space-xl);background:transparent !important;display:flex;align-items:center;justify-content:flex-end;min-height:48px}#header nav ul{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-md);margin:0;padding:0;list-style:none;list-style-image:none}#header nav ul li{margin:0;padding:0;background:none;border:none;line-height:normal;display:flex;align-items:center}#header nav ul li.fork a{display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:0.875rem;font-weight:500;text-decoration:none;transition:all 0.15s ease;box-shadow:none}#header nav ul li.fork a:hover{background:var(--color-bg-hover);border-color:var(--color-border-hover);color:var(--color-text-primary)}#header nav ul li.downloads,#header nav ul li.title{display:none}.wrapper-with-sidebar{display:flex;max-width:1400px;margin:0 auto;padding-top:var(--header-height);min-height:100vh}.wrapper{max-width:800px}.sidebar-toggle{display:none;position:fixed;top:76px;left:var(--space-md);z-index:1001;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm);cursor:pointer;transition:all 0.15s ease}.sidebar-toggle:hover{background:var(--color-bg-hover);border-color:var(--color-border-hover)}.sidebar-toggle span{display:block;width:20px;height:2px;background:var(--color-text-secondary);margin:4px 0;border-radius:2px;transition:0.2s ease}.sidebar{width:280px;min-width:280px;background:var(--color-bg-secondary);border-right:1px solid var(--color-border);padding:var(--space-lg) 0;position:sticky;top:var(--header-height);height:calc(100vh - var(--header-height));overflow-y:auto;overflow-x:hidden}.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-track{background:transparent}.sidebar::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}.sidebar::-webkit-scrollbar-thumb:hover{background:var(--color-border-hover)}.sidebar-header{padding:0 var(--space-lg) var(--space-lg);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-md)}.sidebar-title{display:flex;align-items:center;gap:var(--space-sm);font-size:1.25rem;font-weight:700;color:var(--color-text-primary);text-decoration:none;letter-spacing:-0.02em}.sidebar-title:hover{color:var(--color-accent)}.sidebar-title::before{content:'';display:inline-block;width:24px;height:24px;background:linear-gradient(135deg, var(--color-accent) 0%, #7c3aed 100%);border-radius:var(--radius-sm)}.sidebar-nav{padding:0 var(--space-md)}.nav-list{list-style:none;margin:0;padding:0}.nav-icon{width:18px;height:18px;flex-shrink:0;color:var(--color-text-tertiary);transition:color 0.15s ease}.nav-link{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);color:var(--color-text-secondary);text-decoration:none;font-size:0.875rem;font-weight:500;border-radius:var(--radius-md);transition:all 0.15s ease}.nav-link:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.nav-link:hover .nav-icon{color:var(--color-text-primary)}.nav-item{margin:2px 0}.nav-item.active>.nav-link{background:var(--color-accent-muted);color:var(--color-accent)}.nav-item.active>.nav-link .nav-icon{color:var(--color-accent)}.nav-group{margin:var(--space-xs) 0}.nav-group-toggle{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);background:transparent;border:none;color:var(--color-text-secondary);font-size:0.875rem;font-weight:500;font-family:inherit;text-align:left;cursor:pointer;border-radius:var(--radius-md);transition:all 0.15s ease}.nav-group-toggle:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.nav-group-toggle:hover .nav-icon{color:var(--color-text-primary)}.nav-group-toggle span{flex:1}.nav-chevron{width:16px;height:16px;color:var(--color-text-muted);transition:transform 0.2s ease;flex-shrink:0}.nav-group .nav-children{display:none;list-style:none;margin:0;padding:var(--space-xs) 0 var(--space-xs) 0;overflow:hidden}.nav-group.open .nav-chevron{transform:rotate(180deg)}.nav-group.open .nav-children{display:block}.nav-group.open>.nav-group-toggle{color:var(--color-text-primary)}.nav-group.open>.nav-group-toggle .nav-icon{color:var(--color-accent)}.nav-children .nav-item{margin:1px 0}.nav-children .nav-link{padding:6px var(--space-md) 6px 44px;font-size:0.8125rem;color:var(--color-text-tertiary);position:relative}.nav-children .nav-link::before{content:'';position:absolute;left:26px;top:50%;transform:translateY(-50%);width:4px;height:4px;border-radius:50%;background:var(--color-text-muted);transition:all 0.15s ease}.nav-children .nav-link:hover{color:var(--color-text-primary);background:var(--color-bg-hover)}.nav-children .nav-link:hover::before{background:var(--color-text-secondary)}.nav-children .nav-item.active .nav-link{color:var(--color-accent);background:var(--color-accent-muted)}.nav-children .nav-item.active .nav-link::before{background:var(--color-accent);width:6px;height:6px}.nav-nested{margin:0}.nav-nested .nav-group-toggle{padding-left:44px;font-size:0.8125rem}.nav-nested .nav-group-toggle::before{content:'';position:absolute;left:26px;top:50%;transform:translateY(-50%);width:4px;height:4px;border-radius:50%;background:var(--color-text-muted)}.nav-nested .nav-children .nav-link{padding-left:60px}.nav-nested .nav-children .nav-link::before{left:44px}.main-content{flex:1;min-width:0;padding:var(--space-2xl) var(--space-3xl);max-width:900px}.main-content #title{margin-bottom:var(--space-2xl)}.main-content #title .title-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.main-content #title h1{margin:0 0 var(--space-md) 0;font-size:2.5rem;font-weight:700;letter-spacing:-0.03em;line-height:1.2;background:linear-gradient(135deg, var(--color-text-primary) 0%, var(--color-text-secondary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.main-content #title .title-row h1{margin-bottom:0}.main-content #title p{font-size:1.125rem;color:var(--color-text-secondary);margin:0;line-height:1.6}.main-content #title hr{margin-top:var(--space-xl);border:none;height:1px;background:linear-gradient(90deg, var(--color-border) 0%, transparent 100%)}.main-content .copy-page-button{padding:var(--space-sm) var(--space-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;transition:all 0.15s ease;flex-shrink:0;display:flex;align-items:center;gap:var(--space-sm);font-size:0.875rem;font-weight:500;font-family:var(--font-sans)}.main-content .copy-page-button:hover{background:var(--color-bg-hover);color:var(--color-text-primary);border-color:var(--color-border-hover)}.main-content .copy-page-button.copied{color:var(--color-success);border-color:var(--color-success)}.main-content .copy-page-button svg{display:block;flex-shrink:0}@media (max-width: 639px){.main-content .copy-page-button{padding:var(--space-sm)}.main-content .copy-page-button span{display:none}}.main-content footer{margin-top:var(--space-3xl);padding-top:var(--space-xl);border-top:1px solid var(--color-border);font-size:0.8125rem;color:var(--color-text-muted)}.main-content footer .credits{display:block;margin:var(--space-xs) 0}.main-content footer .credits.left,.main-content footer .credits.right{float:none}.main-content footer .credits a{color:var(--color-text-tertiary)}.main-content footer .credits a:hover{color:var(--color-accent)}h1,h2,h3,h4,h5,h6{font-weight:600;letter-spacing:-0.02em;line-height:1.3;color:var(--color-text-primary);margin-top:var(--space-2xl);margin-bottom:var(--space-md)}h1{font-size:2rem}h2{font-size:1.5rem;padding-bottom:var(--space-sm);border-bottom:1px solid var(--color-border-hover)}h3{font-size:1.25rem}h4{font-size:1.125rem}h5{font-size:1rem}h6{font-size:0.875rem;color:var(--color-text-secondary)}p{margin:0 0 var(--space-md) 0;color:var(--color-text-secondary)}strong{font-weight:600;color:var(--color-text-primary)}a{color:var(--color-accent);text-decoration:none;transition:color 0.15s ease}a:hover{color:var(--color-accent-hover)}ul,ol{margin:0 0 var(--space-md) 0;padding-left:var(--space-xl);color:var(--color-text-secondary)}ul li,ol li{margin-bottom:var(--space-xs);line-height:1.6}blockquote{margin:var(--space-lg) 0;padding:var(--space-md) var(--space-lg);background:var(--color-bg-tertiary);border-left:2px solid var(--color-border);border-radius:0 var(--radius-md) var(--radius-md) 0;color:var(--color-text-secondary);font-style:normal}blockquote p:last-child{margin-bottom:0}hr{border:none;height:1px;background:var(--color-border);margin:var(--space-xl) 0}code{font-family:var(--font-mono);font-size:0.875em}:not(pre)>code{padding:2px 6px;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:0.8125em}pre{margin:var(--space-lg) 0;padding:var(--space-lg);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow-x:auto}pre code{padding:0;background:none;border:none;border-radius:0;color:var(--color-text-secondary);font-size:0.8125rem;line-height:1.7}.highlight{background:var(--color-bg-secondary);border-radius:var(--radius-lg)}.highlight pre{margin:0;border:none}.highlight .c,.highlight .c1,.highlight .cm{color:var(--color-text-muted)}.highlight .k,.highlight .kd,.highlight .kn{color:#c792ea}.highlight .s,.highlight .s1,.highlight .s2{color:#c3e88d}.highlight .n,.highlight .na,.highlight .nb{color:#82aaff}.highlight .nf{color:#82aaff}.highlight .o{color:#89ddff}.highlight .m,.highlight .mi,.highlight .mf{color:#f78c6c}.highlight .p{color:var(--color-text-secondary)}.code-block-wrapper{position:relative;margin:var(--space-lg) 0}.code-block-wrapper pre{margin:0}.copy-button{position:absolute;top:var(--space-sm);right:var(--space-sm);padding:var(--space-xs) var(--space-sm);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;opacity:0;transition:all 0.15s ease;display:flex;align-items:center;justify-content:center;z-index:10}.copy-button:hover{background:var(--color-bg-hover);color:var(--color-text-secondary);border-color:var(--color-border-hover)}.copy-button.copied{color:var(--color-success);border-color:var(--color-success)}.copy-button svg{display:block}.code-block-wrapper:hover .copy-button{opacity:1}.toc-sidebar{width:var(--toc-width);min-width:var(--toc-width);position:sticky;top:calc(var(--header-height) + var(--space-lg));height:fit-content;max-height:calc(100vh - var(--header-height) - var(--space-3xl));overflow-y:auto;padding:var(--space-lg);display:none}.toc-sidebar::-webkit-scrollbar{width:4px}.toc-sidebar::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:2px}.toc-header{margin-bottom:var(--space-md)}.toc-title{font-size:0.75rem;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;color:var(--color-text-muted)}.toc-list{list-style:none;margin:0;padding:0}.toc-sublist{list-style:none;margin:0;padding:0;margin-left:var(--space-md)}.toc-item{margin:2px 0}.toc-link{display:block;padding:var(--space-xs) 0;padding-left:var(--space-sm);margin-left:calc(-1 * var(--space-sm));font-size:0.8125rem;color:var(--color-text-tertiary);text-decoration:none;border-left:2px solid transparent;transition:all 0.15s ease}.toc-link:hover{color:var(--color-text-secondary)}.toc-link.active{color:var(--color-accent);border-left-color:var(--color-accent)}.toc-item--h3 .toc-link{font-size:0.75rem}@media screen and (min-width: 1400px){.toc-sidebar{display:block}.wrapper-with-sidebar{max-width:1680px}}.search-trigger{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:0.875rem;font-family:var(--font-sans);cursor:pointer;transition:all 0.15s ease}.search-trigger:hover{background:var(--color-bg-hover);border-color:var(--color-border-hover);color:var(--color-text-secondary)}.search-trigger kbd{padding:2px 6px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:0.75rem;font-family:var(--font-mono)}.search-trigger svg{flex-shrink:0}.search-modal{position:fixed;inset:0;z-index:9999;display:none;align-items:flex-start;justify-content:center;padding-top:15vh}.search-modal.open{display:flex}.search-backdrop{position:absolute;inset:0;background:rgba(0,0,0,0.8);backdrop-filter:blur(4px)}.search-container{position:relative;width:100%;max-width:var(--search-modal-width);margin:0 var(--space-md);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}.search-header{border-bottom:1px solid var(--color-border)}.search-input-wrapper{display:flex;align-items:center;padding:var(--space-md);gap:var(--space-sm)}.search-icon{color:var(--color-text-muted);flex-shrink:0}.search-input{flex:1;background:transparent;border:none;outline:none;font-size:1rem;color:var(--color-text-primary);font-family:var(--font-sans)}.search-input::placeholder{color:var(--color-text-muted)}.search-kbd{padding:2px 8px;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:0.75rem;font-family:var(--font-mono);color:var(--color-text-muted)}.search-results{max-height:400px;overflow-y:auto}.search-empty{padding:var(--space-xl);text-align:center;color:var(--color-text-muted);font-size:0.875rem}.search-result{display:block;padding:var(--space-md);text-decoration:none;border-bottom:1px solid var(--color-border);transition:background 0.1s ease}.search-result:last-child{border-bottom:none}.search-result:hover,.search-result.selected{background:var(--color-bg-tertiary)}.search-result.selected{border-left:2px solid var(--color-accent)}.search-result-title{font-weight:500;color:var(--color-text-primary);margin-bottom:var(--space-xs)}.search-result-url{font-size:0.75rem;color:var(--color-text-muted);font-family:var(--font-mono)}.search-footer{padding:var(--space-sm) var(--space-md);border-top:1px solid var(--color-border);background:var(--color-bg-tertiary)}.search-hint{font-size:0.75rem;color:var(--color-text-muted)}.search-hint kbd{display:inline-block;padding:2px 6px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:var(--font-mono);margin:0 2px}table{width:100%;border-collapse:collapse;margin:var(--space-lg) 0;font-size:0.875rem;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}table th,table td{padding:var(--space-sm) var(--space-md);text-align:left;border-bottom:1px solid var(--color-border)}table th{background:var(--color-bg-tertiary);font-weight:500;color:var(--color-text-secondary);font-size:0.8125rem}table td{color:var(--color-text-secondary)}table tr:last-child td{border-bottom:none}table tr:hover td{background:var(--color-bg-tertiary)}.card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg);margin:var(--space-lg) 0;transition:all 0.2s ease}.card:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-md)}.card h3,.card h4{margin-top:0}.card p:last-child{margin-bottom:0}.card--info{border-left:3px solid var(--color-accent)}.card--success{border-left:3px solid var(--color-success)}.card--warning{border-left:3px solid var(--color-warning)}.card--error{border-left:3px solid var(--color-error)}.card-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));gap:var(--space-lg);margin:var(--space-lg) 0}.mermaid{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg);margin:var(--space-lg) 0;text-align:center;overflow-x:auto}.badge{display:inline-flex;align-items:center;padding:2px 8px;font-size:0.75rem;font-weight:500;border-radius:9999px;background:var(--color-accent-muted);color:var(--color-accent)}.badge--success{background:rgba(52,211,153,0.15);color:var(--color-success)}.badge--warning{background:rgba(251,191,36,0.15);color:var(--color-warning)}.badge--error{background:rgba(248,113,113,0.15);color:var(--color-error)}@media screen and (max-width: 1200px){.main-content{padding:var(--space-xl) var(--space-2xl)}}@media screen and (max-width: 992px){.sidebar-toggle{display:block}.sidebar{position:fixed;left:-300px;top:0;z-index:1000;transition:left 0.3s ease;padding-top:60px;box-shadow:none}.sidebar.open{left:0;box-shadow:var(--shadow-lg)}.wrapper-with-sidebar{display:block}.main-content{padding:var(--space-xl);padding-left:60px;max-width:none}}@media screen and (max-width: 640px){.main-content{padding:var(--space-lg);padding-left:50px}.main-content #title h1{font-size:1.75rem}.sidebar{width:280px;min-width:280px}h1{font-size:1.5rem}h2{font-size:1.25rem}h3{font-size:1.125rem}table{font-size:0.8125rem}table th,table td{padding:var(--space-sm)}pre{padding:var(--space-md);font-size:0.75rem}}.gradient-bg{position:relative}.gradient-bg::before{content:'';position:absolute;top:0;left:0;right:0;height:400px;background:radial-gradient(ellipse 80% 50% at 50% -20%, rgba(139,92,246,0.12), transparent);pointer-events:none;z-index:-1}.glow{box-shadow:var(--shadow-glow)}@media print{.sidebar,.sidebar-toggle,#header{display:none}.main-content{padding:0;max-width:none}body{background:white;color:black}a{color:inherit}}
