body,h1,h2,h3,h4,h5,h6,p,blockquote,pre,hr,dl,dd,ol,ul,figure{margin:0;padding:0}body{font:400 16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";color:#111;background-color:#fdfdfd;-webkit-text-size-adjust:100%;-webkit-font-feature-settings:"kern" 1;-moz-font-feature-settings:"kern" 1;-o-font-feature-settings:"kern" 1;font-feature-settings:"kern" 1;font-kerning:normal;display:flex;min-height:100vh;flex-direction:column}h1,h2,h3,h4,h5,h6,p,blockquote,pre,ul,ol,dl,figure,.highlight{margin-bottom:15px}main{display:block}img{max-width:100%;vertical-align:middle}figure>img{display:block}figcaption{font-size:14px}ul,ol{margin-left:30px}li>ul,li>ol{margin-bottom:0}h1,h2,h3,h4,h5,h6{font-weight:400}a{color:#2a7ae2;text-decoration:none}a:visited{color:#1756a9}a:hover{color:#111;text-decoration:underline}.social-media-list a:hover{text-decoration:none}.social-media-list a:hover .username{text-decoration:underline}blockquote{color:#828282;border-left:4px solid #e8e8e8;padding-left:15px;font-size:18px;letter-spacing:-1px;font-style:italic}blockquote>:last-child{margin-bottom:0}pre,code{font-size:15px;border:1px solid #e8e8e8;border-radius:3px;background-color:#eef}code{padding:1px 5px}pre{padding:8px 12px;overflow-x:auto}pre>code{border:0;padding-right:0;padding-left:0}.wrapper{max-width:-webkit-calc(800px - (30px * 2));max-width:calc(800px - (30px * 2));margin-right:auto;margin-left:auto;padding-right:30px;padding-left:30px}@media screen and (max-width: 800px){.wrapper{max-width:-webkit-calc(800px - (30px));max-width:calc(800px - (30px));padding-right:15px;padding-left:15px}}.wrapper:after,.footer-col-wrapper:after{content:"";display:table;clear:both}.svg-icon{width:16px;height:16px;display:inline-block;fill:#828282;padding-right:5px;vertical-align:text-top}.social-media-list li+li{padding-top:5px}table{margin-bottom:30px;width:100%;text-align:left;color:#3f3f3f;border-collapse:collapse;border:1px solid #e8e8e8}table tr:nth-child(even){background-color:#f7f7f7}table th,table td{padding:10px 15px}table th{background-color:#f0f0f0;border:1px solid #dedede;border-bottom-color:#c9c9c9}table td{border:1px solid #e8e8e8}.site-header{border-top:5px solid #424242;border-bottom:1px solid #e8e8e8;min-height:55.95px;position:relative}.site-title{font-size:26px;font-weight:300;line-height:54px;letter-spacing:-1px;margin-bottom:0;float:left}.site-title,.site-title:visited{color:#424242}.site-nav{float:right;line-height:54px}.site-nav .nav-trigger{display:none}.site-nav .menu-icon{display:none}.site-nav .page-link{color:#111;line-height:1.5}.site-nav .page-link:not(:last-child){margin-right:20px}@media screen and (max-width: 600px){.site-nav{position:absolute;top:9px;right:15px;background-color:#fdfdfd;border:1px solid #e8e8e8;border-radius:5px;text-align:right}.site-nav label[for="nav-trigger"]{display:block;float:right;width:36px;height:36px;z-index:2;cursor:pointer}.site-nav .menu-icon{display:block;float:right;width:36px;height:26px;line-height:0;padding-top:10px;text-align:center}.site-nav .menu-icon>svg{fill:#424242}.site-nav input ~ .trigger{clear:both;display:none}.site-nav input:checked ~ .trigger{display:block;padding-bottom:5px}.site-nav .page-link{display:block;padding:5px 10px;margin-left:20px}.site-nav .page-link:not(:last-child){margin-right:0}}.site-footer{border-top:1px solid #e8e8e8;padding:30px 0}.footer-heading{font-size:18px;margin-bottom:15px}.contact-list,.social-media-list{list-style:none;margin-left:0}.footer-col-wrapper{font-size:15px;color:#828282;margin-left:-15px}.footer-col{float:left;margin-bottom:15px;padding-left:15px}.footer-col-1{width:-webkit-calc(35% - (30px / 2));width:calc(35% - (30px / 2))}.footer-col-2{width:-webkit-calc(20% - (30px / 2));width:calc(20% - (30px / 2))}.footer-col-3{width:-webkit-calc(45% - (30px / 2));width:calc(45% - (30px / 2))}@media screen and (max-width: 800px){.footer-col-1,.footer-col-2{width:-webkit-calc(50% - (30px / 2));width:calc(50% - (30px / 2))}.footer-col-3{width:-webkit-calc(100% - (30px / 2));width:calc(100% - (30px / 2))}}@media screen and (max-width: 600px){.footer-col{float:none;width:-webkit-calc(100% - (30px / 2));width:calc(100% - (30px / 2))}}.page-content{padding:30px 0;flex:1}.page-heading{font-size:32px}.post-list-heading{font-size:28px}.post-list{margin-left:0;list-style:none}.post-list>li{margin-bottom:30px}.post-meta{font-size:14px;color:#828282}.post-link{display:block;font-size:24px}.post-header{margin-bottom:30px}.post-title{font-size:42px;letter-spacing:-1px;line-height:1}@media screen and (max-width: 800px){.post-title{font-size:36px}}.post-content{margin-bottom:30px}.post-content h2{font-size:32px}@media screen and (max-width: 800px){.post-content h2{font-size:28px}}.post-content h3{font-size:26px}@media screen and (max-width: 800px){.post-content h3{font-size:22px}}.post-content h4{font-size:20px}@media screen and (max-width: 800px){.post-content h4{font-size:18px}}.highlight{background:#fff}.highlighter-rouge .highlight{background:#eef}.highlight .c{color:#998;font-style:italic}.highlight .err{color:#a61717;background-color:#e3d2d2}.highlight .k{font-weight:bold}.highlight .o{font-weight:bold}.highlight .cm{color:#998;font-style:italic}.highlight .cp{color:#999;font-weight:bold}.highlight .c1{color:#998;font-style:italic}.highlight .cs{color:#999;font-weight:bold;font-style:italic}.highlight .gd{color:#000;background-color:#fdd}.highlight .gd .x{color:#000;background-color:#faa}.highlight .ge{font-style:italic}.highlight .gr{color:#a00}.highlight .gh{color:#999}.highlight .gi{color:#000;background-color:#dfd}.highlight .gi .x{color:#000;background-color:#afa}.highlight .go{color:#888}.highlight .gp{color:#555}.highlight .gs{font-weight:bold}.highlight .gu{color:#aaa}.highlight .gt{color:#a00}.highlight .kc{font-weight:bold}.highlight .kd{font-weight:bold}.highlight .kp{font-weight:bold}.highlight .kr{font-weight:bold}.highlight .kt{color:#458;font-weight:bold}.highlight .m{color:#099}.highlight .s{color:#d14}.highlight .na{color:teal}.highlight .nb{color:#0086B3}.highlight .nc{color:#458;font-weight:bold}.highlight .no{color:teal}.highlight .ni{color:purple}.highlight .ne{color:#900;font-weight:bold}.highlight .nf{color:#900;font-weight:bold}.highlight .nn{color:#555}.highlight .nt{color:navy}.highlight .nv{color:teal}.highlight .ow{font-weight:bold}.highlight .w{color:#bbb}.highlight .mf{color:#099}.highlight .mh{color:#099}.highlight .mi{color:#099}.highlight .mo{color:#099}.highlight .sb{color:#d14}.highlight .sc{color:#d14}.highlight .sd{color:#d14}.highlight .s2{color:#d14}.highlight .se{color:#d14}.highlight .sh{color:#d14}.highlight .si{color:#d14}.highlight .sx{color:#d14}.highlight .sr{color:#009926}.highlight .s1{color:#d14}.highlight .ss{color:#990073}.highlight .bp{color:#999}.highlight .vc{color:teal}.highlight .vg{color:teal}.highlight .vi{color:teal}.highlight .il{color:#099}:root{--bg-color: #0d1117;--bg-secondary: #161b22;--bg-tertiary: #21262d;--text-color: #e6edf3;--text-secondary: #7d8590;--text-muted: #656d76;--border-color: #30363d;--border-muted: #21262d;--link-color: #58a6ff;--link-hover: #79c0ff;--code-bg: #161b22;--code-border: #30363d;--header-bg: #161b22;--sidebar-bg: #0d1117;--button-bg: #21262d;--button-hover: #30363d;--success-color: #238636;--warning-color: #d29922;--danger-color: #da3633;--info-color: #1f6feb;--shadow-color: rgba(1, 4, 9, 0.8);--shadow-highlight: rgba(240, 246, 252, 0.1)}:root[data-theme="light"]{--bg-color: #ffffff;--bg-secondary: #f6f8fa;--bg-tertiary: #f1f3f4;--text-color: #24292f;--text-secondary: #586069;--text-muted: #6a737d;--border-color: #d0d7de;--border-muted: #d1d9e0;--link-color: #0969da;--link-hover: #0550ae;--code-bg: #f6f8fa;--code-border: #d0d7de;--header-bg: #f6f8fa;--sidebar-bg: #ffffff;--button-bg: #f1f3f4;--button-hover: #e1e4e8;--success-color: #1a7f37;--warning-color: #bf8700;--danger-color: #d1242f;--info-color: #0969da;--shadow-color: rgba(31, 35, 40, 0.04);--shadow-highlight: rgba(255, 255, 255, 0.25)}.page-content{padding:0;margin:0}.page-layout{display:flex;min-height:calc(100vh - 60px)}body{background-color:var(--bg-color);color:var(--text-color);transition:background-color 0.3s ease, color 0.3s ease;margin:0;padding:0}.site-header{background-color:var(--header-bg);border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:1000;box-shadow:0 1px 3px var(--shadow-color)}.site-header .header-wrapper{max-width:100%;padding:0 1rem;display:flex;align-items:center;justify-content:space-between;height:60px}.site-header .site-title{color:var(--text-color);display:flex;align-items:center;text-decoration:none;font-weight:600;font-size:1.2rem;transition:color 0.3s ease}.site-header .site-title:hover{color:var(--link-color)}.site-header .site-logo{margin-right:0.5rem;font-size:1.5rem}.site-header .header-actions{display:flex;align-items:center;gap:1rem}.theme-toggle{background:none;border:1px solid var(--border-color);border-radius:6px;padding:8px;cursor:pointer;color:var(--text-color);transition:all 0.2s ease;display:flex;align-items:center;justify-content:center}.theme-toggle:hover{background-color:var(--bg-tertiary);border-color:var(--border-muted)}.theme-icon{width:20px;height:20px}.github-link{display:flex;align-items:center;padding:8px 12px;background-color:var(--bg-tertiary);color:var(--text-color);text-decoration:none;border-radius:6px;border:1px solid var(--border-color);transition:all 0.2s ease;font-size:0.9rem}.github-link:hover{background-color:var(--button-hover);color:var(--link-color);transform:translateY(-1px)}.github-icon{width:20px;height:20px}.mobile-menu-toggle{display:none;flex-direction:column;justify-content:space-around;width:30px;height:30px;background:none;border:none;cursor:pointer;padding:0}.mobile-menu-toggle span{width:25px;height:3px;background-color:var(--text-color);border-radius:1px;transition:0.3s}.sidebar{width:220px;background-color:var(--sidebar-bg);border-right:1px solid var(--border-color);overflow-y:auto;position:sticky;top:60px;height:calc(100vh - 60px);flex-shrink:0}.sidebar-content{padding:0.5rem 0}.sidebar-nav{list-style:none;margin:0;padding:0}.nav-item{margin:0}.nav-link{display:flex;align-items:center;padding:0.6rem 1rem;color:var(--text-secondary);text-decoration:none;transition:all 0.2s ease;border-left:3px solid transparent;font-size:0.9rem}.nav-link:hover{background-color:var(--bg-tertiary);color:var(--text-color);border-left-color:var(--link-color)}.nav-link.active{background-color:var(--bg-tertiary);color:var(--link-color);border-left-color:var(--link-color);font-weight:500}.nav-icon{width:16px;height:16px;margin-right:0.75rem;opacity:0.7}.nav-link.active .nav-icon{opacity:1}.nav-section{margin:1rem 0 0.3rem}.section-title{display:block;padding:0 1rem;color:var(--text-muted);font-size:0.7rem;font-weight:600;text-transform:uppercase;letter-spacing:0.05em}.sidebar-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,0.5);z-index:999}.sidebar-overlay.open{display:block}.main-content{flex:1;padding:1rem 1.5rem;max-width:calc(100% - 220px);overflow-x:auto}.wrapper{max-width:1000px;margin:0;padding:0}.page-content{background-color:var(--bg-color)}.wrapper{max-width:calc(800px - (30px * 2));margin-right:auto;margin-left:auto;padding-right:30px;padding-left:30px}h1,h2,h3,h4,h5,h6{color:var(--text-color);font-weight:600}h1{border-bottom:1px solid var(--border-color);padding-bottom:0.3em}h2{border-bottom:1px solid var(--border-muted);padding-bottom:0.3em}p,li,td{color:var(--text-color)}a{color:var(--link-color)}a:hover{color:var(--link-hover);text-decoration:underline}a:visited{color:var(--link-color)}code,pre,.highlight,.highlighter-rouge{background-color:var(--code-bg) !important;color:var(--text-color) !important;border-radius:8px !important;font-family:'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;border:none !important;box-shadow:none !important}pre,.highlight,.highlighter-rouge .highlight,div.highlight{padding:16px !important;overflow:auto !important;line-height:1.45 !important;border-left:4px solid var(--link-color) !important;margin:1rem 0 !important;background-color:var(--code-bg) !important;border-radius:8px !important}pre code,.highlight code,.highlighter-rouge .highlight code,div.highlight code{background-color:transparent !important;border:none !important;padding:0 !important;border-radius:0 !important;font-size:inherit !important}pre div,.highlight div,.highlighter-rouge .highlight div,div.highlight div{background-color:transparent !important;border:none !important;padding:0 !important;margin:0 !important}.highlighter-rouge{background-color:transparent !important;border:none !important;margin:0 !important;padding:0 !important;border-radius:0 !important}code{padding:0.2em 0.4em !important;font-size:85% !important;background-color:var(--bg-tertiary) !important;border:none !important}p code,li code,td code,h1 code,h2 code,h3 code,h4 code,h5 code,h6 code{background-color:var(--bg-tertiary) !important;color:var(--text-color) !important;border-radius:4px !important;padding:0.2em 0.4em !important;font-size:85% !important;border:none !important}table{background-color:var(--bg-color);border-collapse:collapse}table th,table td{border:1px solid var(--border-color);padding:6px 13px}table th{background-color:var(--bg-secondary);color:var(--text-color);font-weight:600}table tr:nth-child(2n){background-color:var(--bg-secondary)}blockquote{background-color:var(--bg-secondary);border-left:4px solid var(--border-color);color:var(--text-secondary);padding:0 15px}blockquote p{color:var(--text-secondary)}.site-footer{background-color:var(--bg-secondary);border-top:1px solid var(--border-color);color:var(--text-secondary)}.site-footer .footer-heading{color:var(--text-color)}.site-footer .contact-list,.site-footer .social-media-list{list-style:none;margin-left:0}.site-footer a{color:var(--link-color)}.site-footer a:hover{color:var(--link-hover)}.post-nav{display:flex;justify-content:space-between;margin:2rem 0;padding:1rem 0;border-top:1px solid var(--border-color)}.post-nav a{padding:0.5rem 1rem;background-color:var(--button-bg);border:1px solid var(--border-color);border-radius:6px;text-decoration:none}.post-nav a:hover{background-color:var(--button-hover)}button,.btn{background-color:var(--button-bg);color:var(--text-color);border:1px solid var(--border-color);border-radius:6px;padding:0.5rem 1rem;cursor:pointer}button:hover,.btn:hover{background-color:var(--button-hover)}.alert{padding:1rem;margin:1rem 0;border-radius:6px;border-left:4px solid}.alert.info{background-color:rgba(31,111,235,0.1);border-left-color:var(--info-color);color:var(--text-color)}.alert.success{background-color:rgba(35,134,54,0.1);border-left-color:var(--success-color);color:var(--text-color)}.alert.warning{background-color:rgba(210,153,34,0.1);border-left-color:var(--warning-color);color:var(--text-color)}.alert.danger{background-color:rgba(218,54,51,0.1);border-left-color:var(--danger-color);color:var(--text-color)}.highlight{background-color:var(--code-bg);border-radius:6px}.highlight .c{color:#7d8590}.highlight .k{color:#ff7b72}.highlight .kd{color:#ff7b72}.highlight .s{color:#a5d6ff}.highlight .s1{color:#a5d6ff}.highlight .s2{color:#a5d6ff}.highlight .n{color:#e6edf3}.highlight .nf{color:#d2a8ff}.highlight .nc{color:#ffa657}.highlight .o{color:#ff7b72}.highlight .p{color:#e6edf3}.highlight .m{color:#79c0ff}.highlight .mi{color:#79c0ff}.highlight .mf{color:#79c0ff}.highlight .nb{color:#ffa657}.highlight .bp{color:#79c0ff}.home .post-list .post-meta{color:var(--text-secondary)}.home .post-list .post-link{color:var(--text-color);font-size:1.2em}.home .post-list .post-link:hover{color:var(--link-hover)}@media screen and (max-width: 600px){.wrapper{padding-right:15px;padding-left:15px}.site-nav .trigger{background-color:var(--bg-secondary)}}.architecture-diagram{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;padding:1rem;margin:1rem 0;font-family:monospace;overflow-x:auto}.api-table th{background-color:var(--bg-tertiary)}.api-table tr:hover{background-color:var(--bg-tertiary)}.back-to-top{position:fixed;bottom:2rem;right:2rem;background-color:var(--button-bg);color:var(--text-color);border:1px solid var(--border-color);border-radius:50%;width:3rem;height:3rem;display:none;align-items:center;justify-content:center;text-decoration:none;transition:all 0.3s ease;cursor:pointer;z-index:1000}.back-to-top:hover{background-color:var(--button-hover);transform:translateY(-2px)}.back-to-top.visible{display:flex}@media (max-width: 1200px){.main-content{padding:1rem}.wrapper{max-width:100%}}@media (max-width: 768px){.mobile-menu-toggle{display:flex}.sidebar{position:fixed;top:60px;left:-220px;z-index:1000;transition:left 0.3s ease;box-shadow:2px 0 8px var(--shadow-color);width:220px}.sidebar.open{left:0}.main-content{padding:1rem;width:100%;max-width:100%}.site-header .header-wrapper{padding:0 1rem}.header-actions{gap:0.5rem}.github-link{padding:8px}.github-icon{width:18px;height:18px}.page-layout{display:block}}@media (max-width: 480px){.site-title{font-size:1rem}.site-logo{font-size:1.2rem}.main-content{padding:0.75rem}.nav-link{padding:0.6rem 0.75rem;font-size:0.85rem}.section-title{padding:0 0.75rem}}.highlight,.highlighter-rouge .highlight,div.highlight{background-color:var(--code-bg) !important;border-radius:8px !important;padding:1rem !important;overflow-x:auto !important;border-left:4px solid var(--link-color) !important;margin:1rem 0 !important;border:none !important;box-shadow:none !important}.highlight .lineno,.highlighter-rouge .highlight .lineno,div.highlight .lineno{color:var(--text-muted) !important;user-select:none;border-right:1px solid rgba(255,255,255,0.1) !important;padding-right:0.5rem !important;margin-right:0.5rem !important}.highlight .c,.highlighter-rouge .highlight .c,div.highlight .c{color:#8b949e;font-style:italic}.highlight .err,.highlighter-rouge .highlight .err,div.highlight .err{color:#f85149}.highlight .g,.highlighter-rouge .highlight .g,div.highlight .g{color:#e6edf3}.highlight .k,.highlighter-rouge .highlight .k,div.highlight .k{color:#ff7b72}.highlight .l,.highlighter-rouge .highlight .l,div.highlight .l{color:#e6edf3}.highlight .n,.highlighter-rouge .highlight .n,div.highlight .n{color:#e6edf3}.highlight .o,.highlighter-rouge .highlight .o,div.highlight .o{color:#ff7b72}.highlight .x,.highlighter-rouge .highlight .x,div.highlight .x{color:#e6edf3}.highlight .p,.highlighter-rouge .highlight .p,div.highlight .p{color:#e6edf3}.highlight .cm,.highlighter-rouge .highlight .cm,div.highlight .cm{color:#8b949e;font-style:italic}.highlight .cp,.highlighter-rouge .highlight .cp,div.highlight .cp{color:#8b949e;font-weight:bold}.highlight .c1,.highlighter-rouge .highlight .c1,div.highlight .c1{color:#8b949e;font-style:italic}.highlight .cs,.highlighter-rouge .highlight .cs,div.highlight .cs{color:#8b949e;font-weight:bold;font-style:italic}.highlight .gd,.highlighter-rouge .highlight .gd,div.highlight .gd{color:#ffa198;background-color:#490202}.highlight .ge,.highlighter-rouge .highlight .ge,div.highlight .ge{color:#e6edf3;font-style:italic}.highlight .gr,.highlighter-rouge .highlight .gr,div.highlight .gr{color:#f85149}.highlight .gh,.highlighter-rouge .highlight .gh,div.highlight .gh{color:#79c0ff;font-weight:bold}.highlight .gi,.highlighter-rouge .highlight .gi,div.highlight .gi{color:#56d364;background-color:#0d4721}.highlight .go,.highlighter-rouge .highlight .go,div.highlight .go{color:#8b949e}.highlight .gp,.highlighter-rouge .highlight .gp,div.highlight .gp{color:#8b949e}.highlight .gs,.highlighter-rouge .highlight .gs,div.highlight .gs{color:#e6edf3;font-weight:bold}.highlight .gu,.highlighter-rouge .highlight .gu,div.highlight .gu{color:#79c0ff;font-weight:bold}.highlight .gt,.highlighter-rouge .highlight .gt,div.highlight .gt{color:#f85149}.highlight .kc,.highlighter-rouge .highlight .kc,div.highlight .kc{color:#79c0ff}.highlight .kd,.highlighter-rouge .highlight .kd,div.highlight .kd{color:#ff7b72}.highlight .kn,.highlighter-rouge .highlight .kn,div.highlight .kn{color:#ff7b72}.highlight .kp,.highlighter-rouge .highlight .kp,div.highlight .kp{color:#ff7b72}.highlight .kr,.highlighter-rouge .highlight .kr,div.highlight .kr{color:#ff7b72}.highlight .kt,.highlighter-rouge .highlight .kt,div.highlight .kt{color:#ff7b72}.highlight .ld,.highlighter-rouge .highlight .ld,div.highlight .ld{color:#a5d6ff}.highlight .m,.highlighter-rouge .highlight .m,div.highlight .m{color:#79c0ff}.highlight .s,.highlighter-rouge .highlight .s,div.highlight .s{color:#a5d6ff}.highlight .na,.highlighter-rouge .highlight .na,div.highlight .na{color:#e6edf3}.highlight .nb,.highlighter-rouge .highlight .nb,div.highlight .nb{color:#ffa657}.highlight .nc,.highlighter-rouge .highlight .nc,div.highlight .nc{color:#ffa657}.highlight .no,.highlighter-rouge .highlight .no,div.highlight .no{color:#79c0ff}.highlight .nd,.highlighter-rouge .highlight .nd,div.highlight .nd{color:#d2a8ff}.highlight .ni,.highlighter-rouge .highlight .ni,div.highlight .ni{color:#ffa657}.highlight .ne,.highlighter-rouge .highlight .ne,div.highlight .ne{color:#ffa657}.highlight .nf,.highlighter-rouge .highlight .nf,div.highlight .nf{color:#d2a8ff}.highlight .nl,.highlighter-rouge .highlight .nl,div.highlight .nl{color:#ffa657}.highlight .nn,.highlighter-rouge .highlight .nn,div.highlight .nn{color:#ffa657}.highlight .nx,.highlighter-rouge .highlight .nx,div.highlight .nx{color:#e6edf3}.highlight .py,.highlighter-rouge .highlight .py,div.highlight .py{color:#ffa657}.highlight .nt,.highlighter-rouge .highlight .nt,div.highlight .nt{color:#7ee787}.highlight .nv,.highlighter-rouge .highlight .nv,div.highlight .nv{color:#ffa657}.highlight .ow,.highlighter-rouge .highlight .ow,div.highlight .ow{color:#ff7b72}.highlight .w,.highlighter-rouge .highlight .w,div.highlight .w{color:#e6edf3}.highlight .mf,.highlighter-rouge .highlight .mf,div.highlight .mf{color:#79c0ff}.highlight .mh,.highlighter-rouge .highlight .mh,div.highlight .mh{color:#79c0ff}.highlight .mi,.highlighter-rouge .highlight .mi,div.highlight .mi{color:#79c0ff}.highlight .mo,.highlighter-rouge .highlight .mo,div.highlight .mo{color:#79c0ff}.highlight .sb,.highlighter-rouge .highlight .sb,div.highlight .sb{color:#a5d6ff}.highlight .sc,.highlighter-rouge .highlight .sc,div.highlight .sc{color:#a5d6ff}.highlight .sd,.highlighter-rouge .highlight .sd,div.highlight .sd{color:#a5d6ff}.highlight .s2,.highlighter-rouge .highlight .s2,div.highlight .s2{color:#a5d6ff}.highlight .se,.highlighter-rouge .highlight .se,div.highlight .se{color:#a5d6ff}.highlight .sh,.highlighter-rouge .highlight .sh,div.highlight .sh{color:#a5d6ff}.highlight .si,.highlighter-rouge .highlight .si,div.highlight .si{color:#a5d6ff}.highlight .sx,.highlighter-rouge .highlight .sx,div.highlight .sx{color:#a5d6ff}.highlight .sr,.highlighter-rouge .highlight .sr,div.highlight .sr{color:#7ee787}.highlight .s1,.highlighter-rouge .highlight .s1,div.highlight .s1{color:#a5d6ff}.highlight .ss,.highlighter-rouge .highlight .ss,div.highlight .ss{color:#a5d6ff}.highlight .bp,.highlighter-rouge .highlight .bp,div.highlight .bp{color:#79c0ff}.highlight .vc,.highlighter-rouge .highlight .vc,div.highlight .vc{color:#ffa657}.highlight .vg,.highlighter-rouge .highlight .vg,div.highlight .vg{color:#ffa657}.highlight .vi,.highlighter-rouge .highlight .vi,div.highlight .vi{color:#ffa657}.highlight .il,.highlighter-rouge .highlight .il,div.highlight .il{color:#79c0ff}.site-footer{background-color:var(--bg-secondary);border-top:1px solid var(--border-color);padding:3rem 0 1rem 0;margin-top:3rem}.footer-content{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:2rem;margin-bottom:2rem}.footer-section h3,.footer-section h4{color:var(--text-color);margin-bottom:1rem;font-weight:600}.footer-section h3{font-size:1.3rem}.footer-section h4{font-size:1rem}.footer-description{color:var(--text-secondary);margin-bottom:1.5rem;line-height:1.6}.social-links{display:flex;gap:1rem}.social-link{display:flex;align-items:center;gap:0.5rem;padding:0.5rem 1rem;background-color:var(--button-bg);color:var(--text-color);text-decoration:none;border-radius:6px;border:1px solid var(--border-color);transition:all 0.2s ease;font-size:0.9rem}.social-link:hover{background-color:var(--button-hover);border-color:var(--link-color);color:var(--link-color)}.footer-links{list-style:none;margin:0;padding:0}.footer-links li{margin-bottom:0.5rem}.footer-links a{color:var(--text-secondary);text-decoration:none;transition:color 0.2s ease}.footer-links a:hover{color:var(--link-color)}.tech-stack{display:flex;flex-wrap:wrap;gap:0.5rem;margin-bottom:1.5rem}.tech-badge{background-color:var(--bg-tertiary);color:var(--text-color);padding:0.25rem 0.5rem;border-radius:4px;font-size:0.8rem;border:1px solid var(--border-color)}.footer-meta{color:var(--text-muted);font-size:0.9rem}.footer-meta p{margin:0.5rem 0;color:var(--text-muted)}.build-info{border-top:1px solid var(--border-muted);padding-top:1rem;margin-top:1rem}.build-info small{color:var(--text-muted);font-size:0.8rem}@media (max-width: 768px){.footer-content{grid-template-columns:1fr;gap:2rem}.social-links{flex-direction:column}.tech-stack{justify-content:flex-start}}@media (max-width: 1024px){.footer-content{grid-template-columns:1fr 1fr}}.toc{position:fixed;top:120px;right:20px;width:220px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:15px;max-height:calc(100vh - 140px);overflow-y:auto;font-size:0.9rem}.toc ul{list-style:none;padding:0;margin:0}.toc li{margin-bottom:8px}.toc a{text-decoration:none;color:var(--text-color);display:block;padding:4px 8px;border-radius:4px}.toc a:hover{color:var(--link-color);background-color:var(--bg-tertiary)}@media (max-width: 1300px){.toc{display:none}.page-content{width:100%}}.page-content{width:calc(100% - 260px)}div[class*="highlighter-rouge"]{background:var(--code-bg) !important;border:none !important;border-left:4px solid var(--link-color) !important;border-radius:8px !important;margin:1rem 0 !important;padding:16px !important;overflow:auto !important}div[class*="highlighter-rouge"] *{background:transparent !important;border:none !important;margin:0 !important}div[class*="highlighter-rouge"] .highlight,div[class*="highlighter-rouge"] pre,div[class*="highlighter-rouge"] code,div[class*="highlighter-rouge"] table,div[class*="highlighter-rouge"] tbody,div[class*="highlighter-rouge"] tr,div[class*="highlighter-rouge"] td{background:transparent !important;border:none !important;padding:0 !important;margin:0 !important}div[class*="highlighter-rouge"] .rouge-gutter{padding-right:8px !important;border-right:1px solid rgba(255,255,255,0.1) !important}div[class*="highlighter-rouge"] .rouge-code{padding-left:8px !important}code.highlighter-rouge{background:var(--bg-tertiary) !important;border:none !important;padding:0.2em 0.4em !important;border-radius:4px !important;margin:0 !important}.wrapper{max-width:calc(100% - 20px);padding-left:10px;padding-right:10px}@media (min-width: 1600px){.wrapper{max-width:1500px}}.wrapper{max-width:95%}
