/*!normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css*/img,legend{border:0}legend,td,th{padding:0}html{font-family:serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:initial}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,optgroup,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre,textarea{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}table{border-collapse:collapse;border-spacing:0}:root{--accent-color:#3700ff;--accent-hover:#2a00cc;--text-color:#333;--text-muted:#6e7781;--bg-primary:#ffffff;--bg-secondary:#f6f8fa;--border-color:#e1e4e8;--accent-bg:rgba(55, 0, 255, 0.08);--accent-border:rgba(55, 0, 255, 0.20);--color-primary:var(--text-color);--color-text-secondary:var(--text-muted);--color-bg-secondary:var(--bg-secondary);--color-border:var(--border-color);--color-accent:var(--accent-color);--color-accent-light:rgba(55, 0, 255, 0.12);--color-accent-dark:var(--accent-hover)}body{font-family:inter,sans-serif;font-weight:400;color:var(--text-color);line-height:1.8em;font-size:17px}a{color:var(--accent-color);text-decoration:none;word-break:break-word}a:hover{border-bottom:2px solid var(--accent-color)}html,button,input,select,textarea{color:var(--text-color)}::-moz-selection{background:var(--accent-color);text-shadow:none;color:#fff}::selection{background:var(--accent-color);text-shadow:none;color:#fff}hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1rem 0;padding:0}img{margin:10px auto;max-width:100%;display:block}a img{border:none}figure{margin:0;text-align:center}fieldset{border:0;margin:0;padding:0}table{-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-overflow-scrolling:touch;background-color:initial;margin-bottom:1rem;overflow-x:auto;width:100%}table th,table td{border-bottom:1px solid #dee2e6;padding:.75rem;vertical-align:top}.related-content{margin:3rem 0 2rem;padding:1.5rem;background:var(--bg-secondary);border-left:4px solid var(--accent-color);border-radius:4px}.related-content h3{margin-top:0;margin-bottom:1rem;color:var(--text-color);font-size:1.3rem}.related-content ul{list-style:none;margin:0;padding:0}.related-content li{margin-bottom:1.25rem;padding-bottom:1.25rem;border-bottom:1px solid var(--border-color)}.related-content li:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.related-content a{font-weight:600;font-size:1.05rem;display:block;margin-bottom:.3rem}.related-content .related-description{margin:.3rem 0;color:var(--text-muted);font-size:.9rem;line-height:1.5}.related-content .related-date{display:block;font-size:.85rem;color:var(--text-muted);margin-top:.3rem}.post-header .meta .lastmod{margin-top:.5rem;font-size:.85rem;color:var(--text-muted);font-style:italic}.post-header .meta .lastmod-label{font-weight:600}.reading-time{display:inline-flex;align-items:center;gap:.35rem;font-size:.9rem;color:var(--text-muted)}.reading-time i{width:16px;height:16px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}table thead th{border-bottom:2px solid #dee2e6;vertical-align:bottom}table tbody+tbody{border-top:2px solid #dee2e6}table th{background-color:#212529;border-color:#32383e;color:#fff}textarea{resize:vertical}blockquote{margin-left:1rem;font-style:italic;font-size:1.1rem;font-family:Georgia,bitstream charter,serif;border-left:3px solid;border-color:var(--accent-color);padding-left:15px}blockquote cite{font-size:70%;opacity:.8}blockquote em{font-weight:600}blockquote code{font-size:.8rem}h1,h2,h3,h4,h5,h6{color:var(--text-color);font-weight:500;line-height:1.3em;margin:30px 0 20px}h1{font-size:2.75rem}h2{font-size:2rem}h3{font-size:1.6rem}h4{font-size:1.2rem}h5{font-size:1rem}h6{font-size:.9rem}.align-center{text-align:center}.align-left{text-align:left}.align-right{text-align:right}ul{padding-left:15px}ul.flat{margin:0;padding:0}ul.flat li{display:block;list-style:none;margin-left:0}.prevent-collapse{min-height:.1rem}.smaller{font-size:70%}ul{list-style:disc inside}.post{max-width:90%}.post ul li{margin-bottom:10px}.post ul li p{display:inline}.highlight pre{margin-bottom:0;margin-top:0;padding:5px}.highlight{font-size:.8em;max-width:90%;overflow-x:auto}.wrapper{max-width:90%;margin:0 auto}.container{max-width:90%;margin-top:40px}.container-wide{max-width:90%;margin-top:30px}.header{text-align:left!important}.header .avatar{float:left;margin:-25px 20px 0 0}.header .avatar img{width:64px;height:64px;overflow:hidden;border-radius:100%}.header .site-title{font-size:3rem!important;margin:.5rem 0!important;text-align:left!important}.site-title a{color:var(--text-color);text-decoration:none!important}.site-title a:hover{border-bottom-width:3px}.header .site-description{display:flex;justify-content:space-between;text-align:left!important}.header nav{text-align:left!important}.header nav ul,.header nav li{text-align:left!important;justify-content:flex-start!important}.header nav li{display:inline-block;list-style:none;margin:0 30px 0 0}.header nav li a:hover{color:var(--accent-color)}.header nav.social a{color:var(--text-color);display:inline-block;margin:0 .6rem;padding:4px;border:1px solid transparent;border-radius:4px;text-decoration:none;transition:all .2s ease}.header nav.social a:hover{color:var(--accent-color);background-color:var(--bg-secondary);border-bottom:none}.header nav.social svg{width:18px;height:18px;vertical-align:middle}.header .site-description nav{margin:0;padding:0;border:none;min-width:50px;margin-left:15px}.header .site-description nav ul svg{max-height:15px}.header .site-description .scheme-toggle{height:100%}.header .site-description .scheme-toggle a{display:inline-block;padding:4px 6px;border:1px solid var(--border-color);border-radius:4px;background-color:var(--bg-secondary);color:var(--text-color);text-decoration:none;transition:all .2s ease}.header .site-description .scheme-toggle a:hover{background-color:var(--accent-color);color:#fff;border-bottom:none}.header .site-description .scheme-toggle a svg{max-height:15px;width:15px;height:15px;fill:currentColor;vertical-align:middle}.section .section-header{font-size:.75rem;font-weight:600;text-transform:uppercase;color:#999;margin-bottom:20px;letter-spacing:1px}.recent-posts .posts .post{margin-bottom:45px}.post-header{display:flex}.post-header .meta .date{margin-right:25px;width:64px;text-align:center}.post-header .meta .date .day{font-family:playfair display,serif;font-weight:700;line-height:.45em;font-size:3em;display:block;margin-bottom:20px}.post-header .meta .date .rest{display:block;font-size:.75em}.post-header h1.title{margin:-10px 0 0}.post .title.small{margin:0 0 10px}.post .post-header{margin-bottom:30px}.post .draft-label{color:#7a0000;text-decoration:none;padding:2px 4px;border-radius:4px;margin-left:6px;background-color:#ffe3e3}.post .updated-badge{font-size:.75em;color:#06c;background-color:#e6f2ff;padding:2px 6px;border-radius:4px;margin-left:6px;font-weight:500;cursor:help;display:inline-block;vertical-align:middle}.post .pinned-icon{font-size:.9em;display:inline-block;vertical-align:middle;margin-right:4px;opacity:.8}.post .tags a{display:inline-block;border:1px solid var(--accent-color);border-radius:3px;padding:6px 10px;color:var(--accent-color);line-height:1.1;min-height:44px;min-width:44px;font-size:.85em;text-decoration:none;margin:4px 8px 4px 0}.list .posts .post-header .meta{margin-bottom:0;margin-left:5px}.footer{text-align:right;font-size:.75em;color:#767676;border-top:1px solid #f4f4f4;margin-top:40px;padding:15px 0}.footer a{color:#666}.footer a:hover{color:var(--accent-color)}.section-nav{position:sticky;top:80px;max-height:calc(100vh - 120px);overflow:auto;padding-left:10px;border-left:2px solid #eee}.section-nav::-webkit-scrollbar{width:8px}.section-nav::-webkit-scrollbar-thumb{background:#ddd;border-radius:4px}.section-nav::-webkit-scrollbar-thumb:hover{background:#ccc}.section-nav .toc-progress{position:absolute;left:0;top:0;width:2px;height:0;background:var(--accent-color);border-radius:2px;transition:height .2s ease}@media(max-width:768px){.section-nav .toc-progress{display:none}}h1[id],h2[id],h3[id],h4[id],h5[id],h6[id]{scroll-margin-top:80px}.tag-cloud{margin-top:15px}.tag-cloud a{margin-right:15px}.pagination{margin:0;padding:0;text-align:left;display:flex;justify-content:center}.pagination li{list-style:none;display:inline-block;margin:0;padding:0}.pagination .page-prev{margin-right:20px;padding-right:20px}.pagination .page-item.page-prev{text-align:left}.pagination .page-item.page-next{text-align:right}@media(max-width:900px){body{padding:20px}h1{font-size:1.8rem}h2{font-size:1.6rem}h3{font-size:1.2rem}h4{font-size:1rem}.container{margin-top:10px}.header .nav.social li{margin:0}.header .nav li{margin:0 10px 0 0;font-size:14px}table{-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-overflow-scrolling:touch;display:block;overflow-x:auto;width:100%}}.tag-li{display:inline!important}.back{padding-top:1em;font-size:1em}.inline-img{margin:0!important;max-width:100%;display:inline-block!important}.figcaption-img{margin-bottom:0}figcaption{font-size:.9rem;display:block;text-align:center;color:gray}code:not(pre *){font-family:monospace;font-size:1em;background-color:#eff1f3;font-size:95%;white-space:normal}code{font-size:.8rem;white-space:pre}.footer-separator{border-top:.1em dashed #d3d3d3}.toc{line-height:normal}.show-on-mobile{display:none!important}@media screen and (max-width:1100px){.hide-on-mobile{display:none!important}.show-on-mobile{display:block!important}.container-wide{max-width:1100px}}@media only screen and (min-width:1100px){.article-nav{display:grid;grid-template-columns:minmax(0,1fr)15em;max-width:100%;width:100%;gap:2rem}.article-nav .post{min-width:0;overflow:visible}}nav{position:sticky;top:2rem;align-self:start}.section-nav li.active>a{font-weight:600;color:#000}.section-nav{font-size:smaller;padding-left:0;border-left:2px solid #efefef}.section-nav a{text-decoration:none;display:block;color:var(--accent-color);transition:all 50ms ease-in-out}.section-nav li::marker{color:var(--accent-color)}.section-nav a:hover,.section-nav a:focus{border:none;font-weight:600}.depth-nested{display:none}.toc a{text-decoration:none;display:block;color:var(--accent-color);transition:all 50ms ease-in-out}.toc li::marker{color:var(--accent-color)}.toc a:hover,.toc a:focus{border:none;font-weight:600}.notice{width:85%}.series-article-tags{display:flex;gap:.375rem;margin-top:.5rem;flex-wrap:wrap}.series-article-tags .tag{display:inline-block;padding:.125rem .5rem;font-size:.75rem;font-weight:500;color:var(--accent-color,#0969da);background-color:var(--accent-bg,rgba(9,105,218,.1));border:1px solid var(--accent-border,rgba(9,105,218,.2));border-radius:12px;text-decoration:none;transition:all .2s ease}.series-article-tags .tag:hover{background-color:var(--accent-color,#0969da);color:#fff;border-color:var(--accent-color,#0969da)}.markdown-body{--base-size-4:0.25rem;--base-size-8:0.5rem;--base-size-16:1rem;--base-size-24:1.5rem;--base-size-40:2.5rem;--base-text-weight-normal:400;--base-text-weight-medium:500;--base-text-weight-semibold:600;--fontStack-monospace:ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;--fgColor-accent:Highlight}@media(prefers-color-scheme:dark){.markdown-body,[data-theme=dark]{color-scheme:dark;--focus-outlineColor:#1f6feb;--fgColor-default:#f0f6fc;--fgColor-muted:#9198a1;--fgColor-accent:#4493f8;--fgColor-success:#3fb950;--fgColor-attention:#d29922;--fgColor-danger:#f85149;--fgColor-done:#ab7df8;--bgColor-default:#0d1117;--bgColor-muted:#151b23;--bgColor-neutral-muted:#656c7633;--bgColor-attention-muted:#bb800926;--borderColor-default:#3d444d;--borderColor-muted:#3d444db3;--borderColor-neutral-muted:#3d444db3;--borderColor-accent-emphasis:#1f6feb;--borderColor-success-emphasis:#238636;--borderColor-attention-emphasis:#9e6a03;--borderColor-danger-emphasis:#da3633;--borderColor-done-emphasis:#8957e5;--color-prettylights-syntax-comment:#9198a1;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-constant-other-reference-link:#a5d6ff;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-storage-modifier-import:#f0f6fc;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-variable:#ffa657;--color-prettylights-syntax-brackethighlighter-unmatched:#f85149;--color-prettylights-syntax-brackethighlighter-angle:#9198a1;--color-prettylights-syntax-invalid-illegal-text:#f0f6fc;--color-prettylights-syntax-invalid-illegal-bg:#8e1519;--color-prettylights-syntax-carriage-return-text:#f0f6fc;--color-prettylights-syntax-carriage-return-bg:#b62324;--color-prettylights-syntax-string-regexp:#7ee787;--color-prettylights-syntax-markup-list:#f2cc60;--color-prettylights-syntax-markup-heading:#1f6feb;--color-prettylights-syntax-markup-italic:#f0f6fc;--color-prettylights-syntax-markup-bold:#f0f6fc;--color-prettylights-syntax-markup-deleted-text:#ffdcd7;--color-prettylights-syntax-markup-deleted-bg:#67060c;--color-prettylights-syntax-markup-inserted-text:#aff5b4;--color-prettylights-syntax-markup-inserted-bg:#033a16;--color-prettylights-syntax-markup-changed-text:#ffdfb6;--color-prettylights-syntax-markup-changed-bg:#5a1e02;--color-prettylights-syntax-markup-ignored-text:#f0f6fc;--color-prettylights-syntax-markup-ignored-bg:#1158c7;--color-prettylights-syntax-meta-diff-range:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#3d444d}}@media(prefers-color-scheme:light){.markdown-body,[data-theme=light]{color-scheme:light;--focus-outlineColor:#0969da;--fgColor-default:#1f2328;--fgColor-muted:#59636e;--fgColor-accent:#0969da;--fgColor-success:#1a7f37;--fgColor-attention:#9a6700;--fgColor-danger:#d1242f;--fgColor-done:#8250df;--bgColor-default:#ffffff;--bgColor-muted:#f6f8fa;--bgColor-neutral-muted:#818b981f;--bgColor-attention-muted:#fff8c5;--borderColor-default:#d1d9e0;--borderColor-muted:#d1d9e0b3;--borderColor-neutral-muted:#d1d9e0b3;--borderColor-accent-emphasis:#0969da;--borderColor-success-emphasis:#1a7f37;--borderColor-attention-emphasis:#9a6700;--borderColor-danger-emphasis:#cf222e;--borderColor-done-emphasis:#8250df;--color-prettylights-syntax-comment:#59636e;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-constant-other-reference-link:#0a3069;--color-prettylights-syntax-entity:#6639ba;--color-prettylights-syntax-storage-modifier-import:#1f2328;--color-prettylights-syntax-entity-tag:#0550ae;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-variable:#953800;--color-prettylights-syntax-brackethighlighter-unmatched:#82071e;--color-prettylights-syntax-brackethighlighter-angle:#59636e;--color-prettylights-syntax-invalid-illegal-text:#f6f8fa;--color-prettylights-syntax-invalid-illegal-bg:#82071e;--color-prettylights-syntax-carriage-return-text:#f6f8fa;--color-prettylights-syntax-carriage-return-bg:#cf222e;--color-prettylights-syntax-string-regexp:#116329;--color-prettylights-syntax-markup-list:#3b2300;--color-prettylights-syntax-markup-heading:#0550ae;--color-prettylights-syntax-markup-italic:#1f2328;--color-prettylights-syntax-markup-bold:#1f2328;--color-prettylights-syntax-markup-deleted-text:#82071e;--color-prettylights-syntax-markup-deleted-bg:#ffebe9;--color-prettylights-syntax-markup-inserted-text:#116329;--color-prettylights-syntax-markup-inserted-bg:#dafbe1;--color-prettylights-syntax-markup-changed-text:#953800;--color-prettylights-syntax-markup-changed-bg:#ffd8b5;--color-prettylights-syntax-markup-ignored-text:#d1d9e0;--color-prettylights-syntax-markup-ignored-bg:#0550ae;--color-prettylights-syntax-meta-diff-range:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#818b98}}.markdown-body{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;margin:0;color:var(--fgColor-default);background-color:var(--bgColor-default);font-family:-apple-system,BlinkMacSystemFont,segoe ui,noto sans,Helvetica,Arial,sans-serif,apple color emoji,segoe ui emoji;font-size:16px;line-height:1.5;word-wrap:break-word}.markdown-body .octicon{display:inline-block;fill:currentColor;vertical-align:text-bottom}.markdown-body h1:hover .anchor .octicon-link:before,.markdown-body h2:hover .anchor .octicon-link:before,.markdown-body h3:hover .anchor .octicon-link:before,.markdown-body h4:hover .anchor .octicon-link:before,.markdown-body h5:hover .anchor .octicon-link:before,.markdown-body h6:hover .anchor .octicon-link:before{width:16px;height:16px;content:' ';display:inline-block;background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' aria-hidden='true'><path fill-rule='evenodd' d='M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z'></path></svg>");mask-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' aria-hidden='true'><path fill-rule='evenodd' d='M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z'></path></svg>")}.markdown-body details,.markdown-body figcaption,.markdown-body figure{display:block}.markdown-body summary{display:list-item}.markdown-body [hidden]{display:none!important}.markdown-body a{background-color:initial;color:var(--fgColor-accent);text-decoration:none}.markdown-body abbr[title]{border-bottom:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.markdown-body b,.markdown-body strong{font-weight:var(--base-text-weight-semibold,600)}.markdown-body dfn{font-style:italic}.markdown-body h1{margin:.67em 0;font-weight:var(--base-text-weight-semibold,600);padding-bottom:.3em;font-size:2em;border-bottom:1px solid var(--borderColor-muted)}.markdown-body mark{background-color:var(--bgColor-attention-muted);color:var(--fgColor-default)}.markdown-body small{font-size:90%}.markdown-body sub,.markdown-body sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.markdown-body sub{bottom:-.25em}.markdown-body sup{top:-.5em}.markdown-body img{border-style:none;max-width:100%;box-sizing:content-box}.markdown-body code,.markdown-body kbd,.markdown-body pre,.markdown-body samp{font-family:monospace;font-size:1em}.markdown-body figure{margin:1em var(--base-size-40)}.markdown-body hr{box-sizing:content-box;overflow:hidden;background:0 0;border-bottom:1px solid var(--borderColor-muted);height:.25em;padding:0;margin:var(--base-size-24)0;background-color:var(--borderColor-default);border:0}.markdown-body input{font:inherit;margin:0;overflow:visible;font-family:inherit;font-size:inherit;line-height:inherit}.markdown-body [type=button],.markdown-body [type=reset],.markdown-body [type=submit]{-webkit-appearance:button;appearance:button}.markdown-body [type=checkbox],.markdown-body [type=radio]{box-sizing:border-box;padding:0}.markdown-body [type=number]::-webkit-inner-spin-button,.markdown-body [type=number]::-webkit-outer-spin-button{height:auto}.markdown-body [type=search]::-webkit-search-cancel-button,.markdown-body [type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.markdown-body ::-webkit-input-placeholder{color:inherit;opacity:.54}.markdown-body ::-webkit-file-upload-button{-webkit-appearance:button;appearance:button;font:inherit}.markdown-body a:hover{text-decoration:underline}.markdown-body ::placeholder{color:var(--fgColor-muted);opacity:1}.markdown-body hr::before{display:table;content:""}.markdown-body hr::after{display:table;clear:both;content:""}.markdown-body table{border-spacing:0;border-collapse:collapse;display:block;width:max-content;max-width:100%;overflow:auto;font-variant:tabular-nums}.markdown-body td,.markdown-body th{padding:0}.markdown-body details summary{cursor:pointer}.markdown-body a:focus,.markdown-body [role=button]:focus,.markdown-body input[type=radio]:focus,.markdown-body input[type=checkbox]:focus{outline:2px solid var(--focus-outlineColor);outline-offset:-2px;box-shadow:none}.markdown-body a:focus:not(:focus-visible),.markdown-body [role=button]:focus:not(:focus-visible),.markdown-body input[type=radio]:focus:not(:focus-visible),.markdown-body input[type=checkbox]:focus:not(:focus-visible){outline:solid 1px transparent}.markdown-body a:focus-visible,.markdown-body [role=button]:focus-visible,.markdown-body input[type=radio]:focus-visible,.markdown-body input[type=checkbox]:focus-visible{outline:2px solid var(--focus-outlineColor);outline-offset:-2px;box-shadow:none}.markdown-body a:not([class]):focus,.markdown-body a:not([class]):focus-visible,.markdown-body input[type=radio]:focus,.markdown-body input[type=radio]:focus-visible,.markdown-body input[type=checkbox]:focus,.markdown-body input[type=checkbox]:focus-visible{outline-offset:0}.markdown-body kbd{display:inline-block;padding:var(--base-size-4);font:11px var(--fontStack-monospace,ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace);line-height:10px;color:var(--fgColor-default);vertical-align:middle;background-color:var(--bgColor-muted);border:solid 1px var(--borderColor-neutral-muted);border-bottom-color:var(--borderColor-neutral-muted);border-radius:6px;box-shadow:inset 0 -1px 0 var(--borderColor-neutral-muted)}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:var(--base-size-24);margin-bottom:var(--base-size-16);font-weight:var(--base-text-weight-semibold,600);line-height:1.25}.markdown-body h2{font-weight:var(--base-text-weight-semibold,600);padding-bottom:.3em;font-size:1.5em;border-bottom:1px solid var(--borderColor-muted)}.markdown-body h3{font-weight:var(--base-text-weight-semibold,600);font-size:1.25em}.markdown-body h4{font-weight:var(--base-text-weight-semibold,600);font-size:1em}.markdown-body h5{font-weight:var(--base-text-weight-semibold,600);font-size:.875em}.markdown-body h6{font-weight:var(--base-text-weight-semibold,600);font-size:.85em;color:var(--fgColor-muted)}.markdown-body p{margin-top:0;margin-bottom:10px}.markdown-body blockquote{margin:0;padding:0 1em;color:var(--fgColor-muted);border-left:.25em solid var(--borderColor-default)}.markdown-body ul,.markdown-body ol{margin-top:0;margin-bottom:0;padding-left:2em}.markdown-body ol ol,.markdown-body ul ol{list-style-type:lower-roman}.markdown-body ul ul ol,.markdown-body ul ol ol,.markdown-body ol ul ol,.markdown-body ol ol ol{list-style-type:lower-alpha}.markdown-body dd{margin-left:0}.markdown-body tt,.markdown-body code,.markdown-body samp{font-family:var(--fontStack-monospace,ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace);font-size:12px}.markdown-body pre{margin-top:0;margin-bottom:0;font-family:var(--fontStack-monospace,ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace);font-size:12px;word-wrap:normal}.markdown-body .octicon{display:inline-block;overflow:visible!important;vertical-align:text-bottom;fill:currentColor}.markdown-body input::-webkit-outer-spin-button,.markdown-body input::-webkit-inner-spin-button{margin:0;appearance:none}.markdown-body .mr-2{margin-right:var(--base-size-8,8px)!important}.markdown-body::before{display:table;content:""}.markdown-body::after{display:table;clear:both;content:""}.markdown-body>*:first-child{margin-top:0!important}.markdown-body>*:last-child{margin-bottom:0!important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body .absent{color:var(--fgColor-danger)}.markdown-body .anchor{float:left;padding-right:var(--base-size-4);margin-left:-20px;line-height:1}.markdown-body .anchor:focus{outline:none}.markdown-body p,.markdown-body blockquote,.markdown-body ul,.markdown-body ol,.markdown-body dl,.markdown-body table,.markdown-body pre,.markdown-body details{margin-top:0;margin-bottom:var(--base-size-16)}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{color:var(--fgColor-default);vertical-align:middle;visibility:hidden}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{visibility:visible}.markdown-body h1 tt,.markdown-body h1 code,.markdown-body h2 tt,.markdown-body h2 code,.markdown-body h3 tt,.markdown-body h3 code,.markdown-body h4 tt,.markdown-body h4 code,.markdown-body h5 tt,.markdown-body h5 code,.markdown-body h6 tt,.markdown-body h6 code{padding:0 .2em;font-size:inherit}.markdown-body summary h1,.markdown-body summary h2,.markdown-body summary h3,.markdown-body summary h4,.markdown-body summary h5,.markdown-body summary h6{display:inline-block}.markdown-body summary h1 .anchor,.markdown-body summary h2 .anchor,.markdown-body summary h3 .anchor,.markdown-body summary h4 .anchor,.markdown-body summary h5 .anchor,.markdown-body summary h6 .anchor{margin-left:-40px}.markdown-body summary h1,.markdown-body summary h2{padding-bottom:0;border-bottom:0}.markdown-body ul.no-list,.markdown-body ol.no-list{padding:0;list-style-type:none}.markdown-body ol[type="a s"]{list-style-type:lower-alpha}.markdown-body ol[type="A s"]{list-style-type:upper-alpha}.markdown-body ol[type="i s"]{list-style-type:lower-roman}.markdown-body ol[type="I s"]{list-style-type:upper-roman}.markdown-body ol[type="1"]{list-style-type:decimal}.markdown-body div>ol:not([type]){list-style-type:decimal}.markdown-body ul ul,.markdown-body ul ol,.markdown-body ol ol,.markdown-body ol ul{margin-top:0;margin-bottom:0}.markdown-body li>p{margin-top:var(--base-size-16)}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{padding:0;margin-top:var(--base-size-16);font-size:1em;font-style:italic;font-weight:var(--base-text-weight-semibold,600)}.markdown-body dl dd{padding:0 var(--base-size-16);margin-bottom:var(--base-size-16)}.markdown-body table th{font-weight:var(--base-text-weight-semibold,600)}.markdown-body table th,.markdown-body table td{padding:6px 13px;border:1px solid var(--borderColor-default)}.markdown-body table td>:last-child{margin-bottom:0}.markdown-body table tr{background-color:var(--bgColor-default);border-top:1px solid var(--borderColor-muted)}.markdown-body table tr:nth-child(2n){background-color:var(--bgColor-muted)}.markdown-body table img{background-color:initial}.markdown-body img[align=right]{padding-left:20px}.markdown-body img[align=left]{padding-right:20px}.markdown-body .emoji{max-width:none;vertical-align:text-top;background-color:initial}.markdown-body span.frame{display:block;overflow:hidden}.markdown-body span.frame>span{display:block;float:left;width:auto;padding:7px;margin:13px 0 0;overflow:hidden;border:1px solid var(--borderColor-default)}.markdown-body span.frame span img{display:block;float:left}.markdown-body span.frame span span{display:block;padding:5px 0 0;clear:both;color:var(--fgColor-default)}.markdown-body span.align-center{display:block;overflow:hidden;clear:both}.markdown-body span.align-center>span{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.markdown-body span.align-center span img{margin:0 auto;text-align:center}.markdown-body span.align-right{display:block;overflow:hidden;clear:both}.markdown-body span.align-right>span{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.markdown-body span.align-right span img{margin:0;text-align:right}.markdown-body span.float-left{display:block;float:left;margin-right:13px;overflow:hidden}.markdown-body span.float-left span{margin:13px 0 0}.markdown-body span.float-right{display:block;float:right;margin-left:13px;overflow:hidden}.markdown-body span.float-right>span{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.markdown-body code,.markdown-body tt{padding:.2em .4em;margin:0;font-size:85%;white-space:break-spaces;background-color:var(--bgColor-neutral-muted);border-radius:6px}.markdown-body code br,.markdown-body tt br{display:none}.markdown-body del code{text-decoration:inherit}.markdown-body samp{font-size:85%}.markdown-body pre code{font-size:100%}.markdown-body pre>code{padding:0;margin:0;word-break:normal;white-space:pre;background:0 0;border:0}.markdown-body .highlight{margin-bottom:var(--base-size-16)}.markdown-body .highlight pre{margin-bottom:0;word-break:normal}.markdown-body .highlight pre,.markdown-body pre{padding:var(--base-size-16);overflow:auto;font-size:85%;line-height:1.45;color:var(--fgColor-default);background-color:var(--bgColor-muted);border-radius:6px}.markdown-body pre code,.markdown-body pre tt{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:initial;border:0}.markdown-body .csv-data td,.markdown-body .csv-data th{padding:5px;overflow:hidden;font-size:12px;line-height:1;text-align:left;white-space:nowrap}.markdown-body .csv-data .blob-num{padding:10px var(--base-size-8)9px;text-align:right;background:var(--bgColor-default);border:0}.markdown-body .csv-data tr{border-top:0}.markdown-body .csv-data th{font-weight:var(--base-text-weight-semibold,600);background:var(--bgColor-muted);border-top:0}.markdown-body [data-footnote-ref]::before{content:"["}.markdown-body [data-footnote-ref]::after{content:"]"}.markdown-body .footnotes{font-size:12px;color:var(--fgColor-muted);border-top:1px solid var(--borderColor-default)}.markdown-body .footnotes ol{padding-left:var(--base-size-16)}.markdown-body .footnotes ol ul{display:inline-block;padding-left:var(--base-size-16);margin-top:var(--base-size-16)}.markdown-body .footnotes li{position:relative}.markdown-body .footnotes li:target::before{position:absolute;top:calc(var(--base-size-8)*-1);right:calc(var(--base-size-8)*-1);bottom:calc(var(--base-size-8)*-1);left:calc(var(--base-size-24)*-1);pointer-events:none;content:"";border:2px solid var(--borderColor-accent-emphasis);border-radius:6px}.markdown-body .footnotes li:target{color:var(--fgColor-default)}.markdown-body .footnotes .data-footnote-backref g-emoji{font-family:monospace}.markdown-body body:has(:modal){padding-right:var(--dialog-scrollgutter)!important}.markdown-body .pl-c{color:var(--color-prettylights-syntax-comment)}.markdown-body .pl-c1,.markdown-body .pl-s .pl-v{color:var(--color-prettylights-syntax-constant)}.markdown-body .pl-e,.markdown-body .pl-en{color:var(--color-prettylights-syntax-entity)}.markdown-body .pl-smi,.markdown-body .pl-s .pl-s1{color:var(--color-prettylights-syntax-storage-modifier-import)}.markdown-body .pl-ent{color:var(--color-prettylights-syntax-entity-tag)}.markdown-body .pl-k{color:var(--color-prettylights-syntax-keyword)}.markdown-body .pl-s,.markdown-body .pl-pds,.markdown-body .pl-s .pl-pse .pl-s1,.markdown-body .pl-sr,.markdown-body .pl-sr .pl-cce,.markdown-body .pl-sr .pl-sre,.markdown-body .pl-sr .pl-sra{color:var(--color-prettylights-syntax-string)}.markdown-body .pl-v,.markdown-body .pl-smw{color:var(--color-prettylights-syntax-variable)}.markdown-body .pl-bu{color:var(--color-prettylights-syntax-brackethighlighter-unmatched)}.markdown-body .pl-ii{color:var(--color-prettylights-syntax-invalid-illegal-text);background-color:var(--color-prettylights-syntax-invalid-illegal-bg)}.markdown-body .pl-c2{color:var(--color-prettylights-syntax-carriage-return-text);background-color:var(--color-prettylights-syntax-carriage-return-bg)}.markdown-body .pl-sr .pl-cce{font-weight:700;color:var(--color-prettylights-syntax-string-regexp)}.markdown-body .pl-ml{color:var(--color-prettylights-syntax-markup-list)}.markdown-body .pl-mh,.markdown-body .pl-mh .pl-en,.markdown-body .pl-ms{font-weight:700;color:var(--color-prettylights-syntax-markup-heading)}.markdown-body .pl-mi{font-style:italic;color:var(--color-prettylights-syntax-markup-italic)}.markdown-body .pl-mb{font-weight:700;color:var(--color-prettylights-syntax-markup-bold)}.markdown-body .pl-md{color:var(--color-prettylights-syntax-markup-deleted-text);background-color:var(--color-prettylights-syntax-markup-deleted-bg)}.markdown-body .pl-mi1{color:var(--color-prettylights-syntax-markup-inserted-text);background-color:var(--color-prettylights-syntax-markup-inserted-bg)}.markdown-body .pl-mc{color:var(--color-prettylights-syntax-markup-changed-text);background-color:var(--color-prettylights-syntax-markup-changed-bg)}.markdown-body .pl-mi2{color:var(--color-prettylights-syntax-markup-ignored-text);background-color:var(--color-prettylights-syntax-markup-ignored-bg)}.markdown-body .pl-mdr{font-weight:700;color:var(--color-prettylights-syntax-meta-diff-range)}.markdown-body .pl-ba{color:var(--color-prettylights-syntax-brackethighlighter-angle)}.markdown-body .pl-sg{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.markdown-body .pl-corl{text-decoration:underline;color:var(--color-prettylights-syntax-constant-other-reference-link)}.markdown-body [role=button]:focus:not(:focus-visible),.markdown-body [role=tabpanel][tabindex="0"]:focus:not(:focus-visible),.markdown-body button:focus:not(:focus-visible),.markdown-body summary:focus:not(:focus-visible),.markdown-body a:focus:not(:focus-visible){outline:none;box-shadow:none}.markdown-body [tabindex="0"]:focus:not(:focus-visible),.markdown-body details-dialog:focus:not(:focus-visible){outline:none}.markdown-body g-emoji{display:inline-block;min-width:1ch;font-family:apple color emoji,segoe ui emoji,segoe ui symbol;font-size:1em;font-style:normal!important;font-weight:var(--base-text-weight-normal,400);line-height:1;vertical-align:-.075em}.markdown-body g-emoji img{width:1em;height:1em}.markdown-body .task-list-item{list-style-type:none}.markdown-body .task-list-item label{font-weight:var(--base-text-weight-normal,400)}.markdown-body .task-list-item.enabled label{cursor:pointer}.markdown-body .task-list-item+.task-list-item{margin-top:var(--base-size-4)}.markdown-body .task-list-item .handle{display:none}.markdown-body .task-list-item-checkbox{margin:0 .2em .25em -1.4em;vertical-align:middle}.markdown-body ul:dir(rtl) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}.markdown-body ol:dir(rtl) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}.markdown-body .contains-task-list:hover .task-list-item-convert-container,.markdown-body .contains-task-list:focus-within .task-list-item-convert-container{display:block;width:auto;height:24px;overflow:visible;clip:auto}.markdown-body ::-webkit-calendar-picker-indicator{filter:invert(50%)}.markdown-body .markdown-alert{padding:var(--base-size-8)var(--base-size-16);margin-bottom:var(--base-size-16);color:inherit;border-left:.25em solid var(--borderColor-default)}.markdown-body .markdown-alert>:first-child{margin-top:0}.markdown-body .markdown-alert>:last-child{margin-bottom:0}.markdown-body .markdown-alert .markdown-alert-title{display:flex;font-weight:var(--base-text-weight-medium,500);align-items:center;line-height:1}.markdown-body .markdown-alert.markdown-alert-note{border-left-color:var(--borderColor-accent-emphasis)}.markdown-body .markdown-alert.markdown-alert-note .markdown-alert-title{color:var(--fgColor-accent)}.markdown-body .markdown-alert.markdown-alert-important{border-left-color:var(--borderColor-done-emphasis)}.markdown-body .markdown-alert.markdown-alert-important .markdown-alert-title{color:var(--fgColor-done)}.markdown-body .markdown-alert.markdown-alert-warning{border-left-color:var(--borderColor-attention-emphasis)}.markdown-body .markdown-alert.markdown-alert-warning .markdown-alert-title{color:var(--fgColor-attention)}.markdown-body .markdown-alert.markdown-alert-tip{border-left-color:var(--borderColor-success-emphasis)}.markdown-body .markdown-alert.markdown-alert-tip .markdown-alert-title{color:var(--fgColor-success)}.markdown-body .markdown-alert.markdown-alert-caution{border-left-color:var(--borderColor-danger-emphasis)}.markdown-body .markdown-alert.markdown-alert-caution .markdown-alert-title{color:var(--fgColor-danger)}.markdown-body>*:first-child>.heading-element:first-child{margin-top:0!important}.markdown-body .highlight pre:has(+.zeroclipboard-container){min-height:52px}.highlight{margin:1.5rem 0;border:1px solid var(--border-color);border-radius:6px;background-color:var(--bg-primary);overflow-x:auto;overflow-y:hidden;font-family:ui-monospace,SFMono-Regular,sf mono,Consolas,liberation mono,Menlo,monospace;font-size:14px;line-height:1.45;position:relative;max-width:100%}html:not(.dark) .highlight{background-color:var(--accent-bg);border-color:var(--accent-border)}.highlight{position:relative}.highlight .code-tools{position:absolute;top:8px;left:8px;right:8px;z-index:1}.highlight .code-lang{position:absolute;left:0;top:0;font:12px/1 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,apple color emoji,segoe ui emoji;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;background:0 0;padding:2px 6px;border-radius:6px;border:1px solid var(--border-color)}.highlight .copy-button{position:absolute;top:0;right:0;padding:4px 8px;font:12px/1 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,apple color emoji,segoe ui emoji;color:#57606a;border:1px solid #d1d9e0;border-radius:6px;background:0 0;cursor:pointer}.highlight .copy-button:hover{background-color:#f3f4f6}.highlight .copy-button:active{background-color:#eaeef2}.highlight .copy-button:disabled{opacity:.7;cursor:default}html.dark .highlight .code-lang{color:#7d8590;border-color:#30363d}.highlight .chroma pre{font-family:ui-monospace,SFMono-Regular,sf mono,Consolas,liberation mono,Menlo,monospace;font-size:14.5px;line-height:1.6;padding:16px;margin:0;background:0 0}.highlight .chroma .lntable .lntd:last-child pre{padding:16px}.highlight .chroma pre{padding-top:34px}.highlight .chroma .lntable .lntd:last-child pre{padding-top:34px}.highlight .chroma .lnt,.highlight .chroma .ln{color:var(--text-muted);user-select:none;margin-right:16px;padding-right:16px;text-align:right;border-right:1px solid var(--border-color);min-width:42px;font-size:12px}.highlight .chroma .lntable{border-spacing:0;padding:0;margin:0;border:0;width:100%}.highlight .chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.highlight .chroma .lntd:first-child{width:50px}.highlight .chroma .lntd:last-child{width:100%}.highlight .chroma .k{color:#cf222e}.highlight .chroma .kc{color:#0550ae}.highlight .chroma .kd{color:#cf222e}.highlight .chroma .kn{color:#cf222e}.highlight .chroma .kp{color:#cf222e}.highlight .chroma .kr{color:#cf222e}.highlight .chroma .kt{color:#cf222e}.highlight .chroma .n{color:#24292f}.highlight .chroma .na{color:#24292f}.highlight .chroma .nc{color:#953800}.highlight .chroma .no{color:#0550ae}.highlight .chroma .nd{color:#8250df}.highlight .chroma .ne{color:#953800}.highlight .chroma .nf{color:#8250df}.highlight .chroma .nn{color:#24292f}.highlight .chroma .nt{color:#116329}.highlight .chroma .nv{color:#953800}.highlight .chroma .s{color:#0a3069}.highlight .chroma .s1{color:#0a3069}.highlight .chroma .s2{color:#0a3069}.highlight .chroma .sb{color:#0a3069}.highlight .chroma .sc{color:#0a3069}.highlight .chroma .sd{color:#0a3069}.highlight .chroma .se{color:#0a3069}.highlight .chroma .sh{color:#0a3069}.highlight .chroma .si{color:#0a3069}.highlight .chroma .sr{color:#0a3069}.highlight .chroma .ss{color:#0a3069}.highlight .chroma .m{color:#0550ae}.highlight .chroma .mi{color:#0550ae}.highlight .chroma .mf{color:#0550ae}.highlight .chroma .mh{color:#0550ae}.highlight .chroma .mo{color:#0550ae}.highlight .chroma .o{color:#cf222e}.highlight .chroma .ow{color:#cf222e}.highlight .chroma .p{color:#24292f}.highlight .chroma .c{color:#6e7781;font-style:italic}.highlight .chroma .c1{color:#6e7781;font-style:italic}.highlight .chroma .cm{color:#6e7781;font-style:italic}.highlight .chroma .cp{color:#6e7781;font-style:italic}.highlight .chroma .cs{color:#6e7781;font-style:italic}html.dark .highlight{background-color:#0d1117;border-color:#30363d}html.dark .code-header{background-color:#161b22;border-bottom-color:#30363d}html.dark .code-lang{color:#7d8590}html.dark .copy-button{color:#7d8590}html.dark .copy-button:hover{background-color:#21262d;color:#f0f6fc}html.dark .copy-button:active{background-color:#30363d}html.dark .github-code-block{color:#f0f6fc}html.dark .highlight .chroma .lnt,html.dark .highlight .chroma .ln{color:#7d8590;border-right-color:#30363d}html.dark .highlight .chroma .k{color:#ff7b72}html.dark .highlight .chroma .kc{color:#79c0ff}html.dark .highlight .chroma .kd{color:#ff7b72}html.dark .highlight .chroma .kn{color:#ff7b72}html.dark .highlight .chroma .kp{color:#ff7b72}html.dark .highlight .chroma .kr{color:#ff7b72}html.dark .highlight .chroma .kt{color:#ff7b72}html.dark .highlight .chroma .n{color:#f0f6fc}html.dark .highlight .chroma .na{color:#f0f6fc}html.dark .highlight .chroma .nc{color:#ffa657}html.dark .highlight .chroma .no{color:#79c0ff}html.dark .highlight .chroma .nd{color:#d2a8ff}html.dark .highlight .chroma .ne{color:#ffa657}html.dark .highlight .chroma .nf{color:#d2a8ff}html.dark .highlight .chroma .nn{color:#f0f6fc}html.dark .highlight .chroma .nt{color:#7ee787}html.dark .highlight .chroma .nv{color:#ffa657}html.dark .highlight .chroma .s{color:#a5d6ff}html.dark .highlight .chroma .s1{color:#a5d6ff}html.dark .highlight .chroma .s2{color:#a5d6ff}html.dark .highlight .chroma .sb{color:#a5d6ff}html.dark .highlight .chroma .sc{color:#a5d6ff}html.dark .highlight .chroma .sd{color:#a5d6ff}html.dark .highlight .chroma .se{color:#79c0ff}html.dark .highlight .chroma .sh{color:#a5d6ff}html.dark .highlight .chroma .si{color:#a5d6ff}html.dark .highlight .chroma .sr{color:#a5d6ff}html.dark .highlight .chroma .ss{color:#a5d6ff}html.dark .highlight .chroma .m{color:#a5d6ff}html.dark .highlight .chroma .mi{color:#a5d6ff}html.dark .highlight .chroma .mf{color:#a5d6ff}html.dark .highlight .chroma .mh{color:#a5d6ff}html.dark .highlight .chroma .mo{color:#a5d6ff}html.dark .highlight .chroma .o{color:#ff7b72}html.dark .highlight .chroma .ow{color:#ff7b72}html.dark .highlight .chroma .p{color:#f0f6fc}html.dark .highlight .chroma .c{color:#8b949e;font-style:italic}html.dark .highlight .chroma .c1{color:#8b949e;font-style:italic}html.dark .highlight .chroma .cm{color:#8b949e;font-style:italic}html.dark .highlight .chroma .cp{color:#8b949e;font-style:italic}html.dark .highlight .chroma .cs{color:#8b949e;font-style:italic}@media(max-width:768px){.highlight{margin:1rem 0;border-radius:6px}.code-header{padding:6px 12px}.github-code-block{padding:12px;font-size:13px}.highlight .chroma .lnt,.highlight .chroma .ln{margin-right:12px;padding-right:12px;min-width:36px;font-size:11px}}.highlight.highlight-text,.highlight.highlight-bash,.highlight.highlight-javascript,.highlight.highlight-python,.highlight.highlight-go,.highlight.highlight-rust,.highlight.highlight-scala,.highlight.highlight-java,.highlight.highlight-typescript,.highlight.highlight-css,.highlight.highlight-html,.highlight.highlight-json,.highlight.highlight-yaml,.highlight.highlight-toml,.highlight.highlight-markdown{font-size:14px;max-width:100%}.highlight.highlight-text pre,.highlight.highlight-bash pre,.highlight.highlight-javascript pre,.highlight.highlight-python pre,.highlight.highlight-go pre,.highlight.highlight-rust pre,.highlight.highlight-scala pre,.highlight.highlight-java pre,.highlight.highlight-typescript pre,.highlight.highlight-css pre,.highlight.highlight-html pre,.highlight.highlight-json pre,.highlight.highlight-yaml pre,.highlight.highlight-toml pre,.highlight.highlight-markdown pre{padding:16px}.social-share{margin:3rem 0 2rem;padding:2rem;background:var(--bg-secondary);border-radius:8px;border-top:3px solid var(--accent-color)}.social-share h3{margin-top:0;margin-bottom:1.5rem;font-size:1.3rem;color:var(--text-color);font-weight:600}.social-share-buttons{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}.share-button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.25rem;border-radius:6px;font-weight:600;font-size:.9rem;transition:all .2s ease;border:none;cursor:pointer;text-decoration:none;line-height:1;white-space:nowrap}.share-button:hover{text-decoration:none;border-bottom:none}.share-button svg{width:20px;height:20px;flex-shrink:0}.share-button span{font-weight:600}.share-twitter{background:0 0;color:#1da1f2;border:2px solid #1da1f2}.share-twitter:hover{background:rgba(29,161,242,.1);color:#1a8cd8;border-color:#1a8cd8;transform:translateY(-2px);box-shadow:0 4px 12px rgba(29,161,242,.2)}.share-linkedin{background:0 0;color:#0077b5;border:2px solid #0077b5}.share-linkedin:hover{background:rgba(0,119,181,.1);color:#006399;border-color:#006399;transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,119,181,.2)}.share-facebook{background:0 0;color:#1877f2;border:2px solid #1877f2}.share-facebook:hover{background:rgba(24,119,242,.1);color:#1464d4;border-color:#1464d4;transform:translateY(-2px);box-shadow:0 4px 12px rgba(24,119,242,.2)}.share-reddit{background:0 0;color:#ff4500;border:2px solid #ff4500}.share-reddit:hover{background:rgba(255,69,0,.1);color:#e03d00;border-color:#e03d00;transform:translateY(-2px);box-shadow:0 4px 12px rgba(255,69,0,.2)}.share-reddit-scala{background:0 0;color:#ff4500;border:2px solid #ff4500}.share-reddit-scala:hover{background:rgba(255,69,0,.1);color:#e03d00;border-color:#e03d00;transform:translateY(-2px);box-shadow:0 4px 12px rgba(255,69,0,.2)}.share-copy{background:0 0;color:var(--accent-color);border:2px solid var(--accent-color)}.share-copy:hover{background:var(--accent-bg);color:var(--accent-hover);border-color:var(--accent-hover);transform:translateY(-2px);box-shadow:0 4px 12px rgba(147,117,253,.18)}@media(max-width:768px){.social-share{padding:1.5rem}.social-share h3{font-size:1.1rem;margin-bottom:1rem}.social-share-buttons{flex-direction:column;gap:.75rem}.share-button{width:100%;justify-content:center;padding:.875rem 1rem}}.dark .social-share{background:rgba(255,255,255,5%);border-top-color:var(--accent-color)}.dark .social-share h3{color:var(--text-color)}.share-button:focus{outline:3px solid var(--accent-color);outline-offset:2px}@media print{.social-share{display:none}}.author-bio{margin:3rem 0 2rem;padding:2rem;background:var(--bg-secondary);border-radius:8px;border-left:4px solid var(--accent-color)}.author-bio-header{display:flex;gap:1.5rem;align-items:flex-start;margin-bottom:1rem}.author-avatar{width:80px;height:80px;border-radius:50%;object-fit:cover;flex-shrink:0;border:3px solid var(--accent-color)}.author-bio-info{flex:1}.author-name{margin:0 0 .5rem;font-size:1.4rem;font-weight:700;color:var(--text-color)}.author-position{margin:0 0 .5rem;font-size:1rem;color:var(--text-muted);font-weight:500}.author-location{display:flex;align-items:center;gap:.5rem;margin:0;font-size:.9rem;color:var(--text-muted)}.author-location i{width:16px;height:16px}.author-bio-text{margin:1rem 0;font-size:1rem;line-height:1.6;color:var(--text-color)}.author-social-links{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1.5rem}.author-social-link{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:6px;background:var(--accent-bg);color:var(--accent-color);text-decoration:none;font-size:.9rem;font-weight:600;transition:all .2s ease;border:1px solid var(--accent-border)}.author-social-link:hover{background:var(--accent-color);color:#fff;border-bottom:none;transform:translateY(-2px);box-shadow:0 4px 8px rgba(0,0,0,.1)}.author-social-link i{width:18px;height:18px}.author-expertise{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border-color)}.author-expertise h5{margin:0 0 .75rem;font-size:1rem;font-weight:600;color:var(--text-color)}.expertise-tags{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:0;padding:0}.expertise-tag{display:inline-block;padding:.35rem .75rem;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:4px;font-size:.85rem;color:var(--text-color);font-weight:500}@media(max-width:640px){.author-bio{padding:1.5rem}.author-bio-header{flex-direction:column;align-items:center;text-align:center;gap:1rem}.author-bio-info{width:100%}.author-avatar{width:100px;height:100px}.author-social-links{justify-content:center}}.dark .author-bio{background:rgba(255,255,255,5%)}.dark .expertise-tag{background:rgba(255,255,255,5%);border-color:rgba(255,255,255,.1)}@media print{.author-social-links{display:none}}.related-content-advanced{margin:3rem 0 2rem;padding:2rem;background:var(--bg-secondary);border-left:4px solid var(--accent-color);border-radius:4px}.related-content-advanced h3{margin-top:0;margin-bottom:1.5rem;color:var(--text-color);font-size:1.4rem;font-weight:700}.related-articles-list{list-style:none;margin:0;padding:0}.related-article-item{margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border-color)}.related-article-item:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.related-article{position:relative}.related-article-title{margin:0 0 .5rem;font-size:1.15rem;font-weight:600;line-height:1.4}.related-article-title a{color:var(--text-color);text-decoration:none;transition:color .2s ease}.related-article-title a:hover{color:var(--accent-color);border-bottom:2px solid var(--accent-color)}.related-article-description{margin:.5rem 0;color:var(--text-muted);font-size:.95rem;line-height:1.6}.related-article-meta{display:flex;align-items:center;gap:1rem;margin:.75rem 0;font-size:.85rem;color:var(--text-muted)}.related-article-date{display:inline-flex;align-items:center}.match-strength{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .65rem;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.match-high{background:#dcfce7;color:#166534;border:1px solid #86efac}.match-high svg{width:14px;height:14px}.match-medium{background:#fef3c7;color:#92400e;border:1px solid #fde047}.match-low{background:#f3f4f6;color:#6b7280;border:1px solid #e5e7eb}.dark .match-high{background:rgba(34,197,94,.2);color:#86efac;border-color:rgba(134,239,172,.3)}.dark .match-medium{background:rgba(245,158,11,.2);color:#fbbf24;border-color:rgba(251,191,36,.3)}.dark .match-low{background:rgba(156,163,175,.2);color:#d1d5db;border-color:rgba(209,213,219,.3)}.related-article-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.related-tag{display:inline-block;padding:.25rem .65rem;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:4px;font-size:.8rem;color:var(--text-muted);font-weight:500}.related-note{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border-color);font-size:.9rem;color:var(--text-muted);font-style:italic}.related-note a{color:var(--accent-color);font-weight:600}@media(max-width:768px){.related-content-advanced{padding:1.5rem}.related-content-advanced h3{font-size:1.2rem}.related-article-title{font-size:1.05rem}.related-article-meta{flex-wrap:wrap;gap:.5rem}}.dark .related-content-advanced{background:rgba(255,255,255,5%)}.dark .related-tag{background:rgba(255,255,255,5%);border-color:rgba(255,255,255,.1)}@media print{.match-strength{border:1px solid #ccc;background:#fff!important;color:#000!important}}.post>.breadcrumb{margin:1rem 0 2rem;padding:6px 10px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;position:sticky;top:12px;z-index:2;box-shadow:0 2px 10px rgba(0,0,0,4%)}.breadcrumb-list{display:flex;flex-wrap:wrap;align-items:center;list-style:none;margin:0;padding:0;font-size:.9rem}.breadcrumb-item{display:inline-flex;align-items:center}.breadcrumb-item:not(:last-child)::after{content:'›';margin:0 .5rem;color:var(--text-muted);font-weight:300;font-size:1.2em}.breadcrumb-item a{color:var(--accent-color);text-decoration:none;transition:color .2s ease}.breadcrumb-item a:hover{color:var(--accent-hover);border-bottom:1px solid var(--accent-color)}.breadcrumb-item.active span{color:var(--text-muted);font-weight:500}@media(max-width:640px){.breadcrumb{margin:.75rem 0 1.5rem;padding:6px 8px}.breadcrumb-list{font-size:.85rem}.breadcrumb-item:not(:last-child)::after{margin:0 .35rem}}.dark .breadcrumb-item.active span{color:var(--text-muted)}@media print{.breadcrumb{display:none}}.skip-link{position:absolute;top:-40px;left:0;background:var(--color-accent,#007acc);color:#fff;padding:8px 16px;text-decoration:none;font-weight:600;z-index:10000;border-radius:0 0 4px 0;transition:top .2s ease}.skip-link:focus{top:0;outline:3px solid #fff;outline-offset:2px}html.dark .skip-link{color:#fff;background:#1f6feb}a:focus,button:focus,input:focus,textarea:focus,select:focus,[tabindex]:focus{outline:2px solid var(--color-accent,#007acc);outline-offset:2px;border-radius:2px}.nav a:focus,.menu a:focus{background:var(--color-accent-light,rgba(0,122,204,.1));outline:2px solid var(--color-accent,#007acc);outline-offset:2px}.series-card-link:focus,.topic-card-link:focus,.read-more:focus,.back-to-series:focus,.view-all-link:focus,.browse-posts:focus,.related-link:focus{outline:2px solid var(--color-accent,#007acc);outline-offset:2px;box-shadow:0 0 0 4px rgba(0,122,204,.2)}input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,input[type=search]:focus,textarea:focus{border-color:var(--color-accent,#007acc);box-shadow:0 0 0 3px rgba(0,122,204,.2)}.search-form{position:relative}.search-input{width:100%;padding:12px 16px;border:2px solid var(--color-border,#e1e5e9);border-radius:8px;font-size:1rem;transition:all .2s ease}.search-input:focus{border-color:var(--color-accent,#007acc);outline:none;box-shadow:0 0 0 3px rgba(0,122,204,.2)}.search-label{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.post-title a:focus,.article-title a:focus,.series-article-title a:focus,.topic-card-title a:focus{background:var(--color-accent-light,rgba(0,122,204,.1));outline:2px solid var(--color-accent,#007acc);outline-offset:2px;border-radius:4px;padding:2px 4px;margin:-2px -4px}.footnote-ref{font-size:.8em;vertical-align:super;text-decoration:none;color:var(--color-accent,#007acc);font-weight:600;padding:2px 4px;border-radius:3px;transition:all .2s ease}.footnote-ref:hover,.footnote-ref:focus{background:var(--color-accent-light,rgba(0,122,204,.1));outline:1px solid var(--color-accent,#007acc);outline-offset:1px}.footnote-backref{font-size:.9em;text-decoration:none;color:var(--color-accent,#007acc);margin-left:.5em;padding:2px 6px;border-radius:3px;transition:all .2s ease}.footnote-backref:hover,.footnote-backref:focus{background:var(--color-accent-light,rgba(0,122,204,.1));outline:1px solid var(--color-accent,#007acc);outline-offset:1px}.footnotes{margin-top:3rem;padding-top:2rem;border-top:2px solid var(--color-border,#e1e5e9);font-size:.9em}.footnotes h2,.footnotes .footnotes-title{font-size:1.2em;margin-bottom:1rem;color:var(--color-primary,#333)}.footnotes ol{padding-left:1.5rem}.footnotes li{margin-bottom:.75rem;line-height:1.6}.footnotes p{margin:0}.sr-only,.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-contrast:high){a:focus,button:focus,input:focus,textarea:focus,select:focus,[tabindex]:focus{outline:3px solid;outline-offset:2px}.footnote-ref,.footnote-backref{border:1px solid}}@media(prefers-reduced-motion:reduce){.footnote-ref,.footnote-backref,.search-input,a,button{transition:none}.series-card:hover,.topic-card:hover,.article-card:hover{transform:none}}@media(prefers-color-scheme:dark){a:focus,button:focus,input:focus,textarea:focus,select:focus,[tabindex]:focus{outline-color:var(--color-accent,#4dabf7)}.nav a:focus,.menu a:focus,.post-title a:focus,.article-title a:focus,.series-article-title a:focus,.topic-card-title a:focus{background:var(--color-accent-light,rgba(77,171,247,.2));outline-color:var(--color-accent,#4dabf7)}.footnote-ref:hover,.footnote-ref:focus,.footnote-backref:hover,.footnote-backref:focus{background:var(--color-accent-light,rgba(77,171,247,.2));outline-color:var(--color-accent,#4dabf7)}}.focus-trap{outline:none}.series-card:focus-within,.topic-card:focus-within,.article-card:focus-within{outline:2px solid var(--color-accent,#007acc);outline-offset:2px}.series-article-meta:focus-within,.article-meta:focus-within,.topic-card-meta:focus-within{color:var(--color-primary,#333)}.tag:focus,.series-article-tags .tag:focus,.article-tags .tag:focus,.topic-tag:focus{outline:2px solid var(--color-accent,#007acc);outline-offset:1px;box-shadow:0 0 0 3px rgba(0,122,204,.2)}.form-error{color:#d32f2f;font-size:.875rem;margin-top:.25rem}.form-field.error input,.form-field.error textarea{border-color:#d32f2f;box-shadow:0 0 0 3px rgba(211,47,47,.2)}.status-message{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}::selection{background:var(--color-accent-light,rgba(0,122,204,.3));color:var(--color-primary,#333)}::-moz-selection{background:var(--color-accent-light,rgba(0,122,204,.3));color:var(--color-primary,#333)}@media(max-width:768px){.nav a,.menu a,.series-card-link,.topic-card-link,.read-more,button{min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center}}@media print{.footnote-ref::after{content:" (footnote " attr(href)")"}.footnote-backref{display:none}}.about-page .about-container{max-width:clamp(1024px,92vw,1320px);margin:0 auto;padding:0 2vw}.about-page .about-main{display:flex;flex-direction:column;gap:3rem}.about-page .about-intro{background:var(--color-bg,#fff);border-radius:12px;padding:clamp(2rem,3vw,3rem);box-shadow:0 20px 45px -28px rgba(15,23,42,.45)}.about-page .about-intro__header h1{font-size:clamp(2.4rem,3vw,3rem);margin-bottom:.75rem}.about-page .about-intro__summary{font-size:clamp(1.1rem,2.2vw,1.3rem);color:var(--color-text-muted,#4b5563)}.about-page .about-intro__content{margin-top:1.5rem;font-size:1.02rem;line-height:1.78}.about-page .projects-showcase,.about-page .open-source-projects,.about-page .technical-skills,.about-page .author-eeat{max-width:clamp(1024px,92vw,1320px);margin:0 auto;padding:clamp(2rem,3vw,3rem);border-radius:16px;background:var(--color-bg,#fff);box-shadow:0 18px 36px -30px rgba(15,23,42,.55)}.about-page .projects-showcase h2,.about-page .open-source-projects h2,.about-page .technical-skills h2{text-align:left;margin-bottom:1.5rem;font-size:clamp(2rem,2.4vw,2.4rem)}.about-page .showcase-subtitle,.about-page .projects-intro,.about-page .skills-intro{font-size:1.1rem;margin-bottom:2rem;color:var(--color-text-muted,#4b5563)}.about-page .project-featured{display:grid;grid-template-columns:minmax(220px,320px)minmax(0,1fr);gap:clamp(1.5rem,4vw,2.5rem)}.about-page .project-featured .project-info{display:flex;flex-direction:column;gap:1rem}.about-page .project-links{display:flex;flex-wrap:wrap;gap:.75rem}.about-page .project-link{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.6rem 1.2rem;border-radius:999px;text-decoration:none;font-weight:600;transition:transform .2s ease,box-shadow .2s ease}.about-page .project-link.primary{background:var(--color-accent,#007acc);color:#fff}.about-page .project-link.secondary{border:1px solid rgba(0,122,204,.25);color:var(--color-accent,#007acc)}.about-page .project-link:hover{transform:translateY(-1px);box-shadow:0 10px 18px -12px rgba(0,0,0,.35)}.about-page .projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:clamp(1.5rem,3vw,2.5rem)}.about-page .project-card{padding:clamp(1.3rem,2.4vw,1.9rem)clamp(1.2rem,2.2vw,1.8rem)}.about-page .project-header h4,.about-page .project-header h3{font-size:1.2rem}.about-page .project-description p,.about-page .project-card p{line-height:1.7}.about-page .projects-footer,.about-page .github-stats,.about-page .tech-philosophy{margin-top:clamp(2rem,3vw,3rem)}.about-page .skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:clamp(1.5rem,3vw,2.5rem)}.about-page .skill-category{padding:clamp(1.4rem,2.5vw,2rem)}.about-page .skill-tags{display:flex;flex-wrap:wrap;gap:.65rem}.about-page .skill-tag{padding:.35rem .8rem;border-radius:999px;background:rgba(15,118,191,8%)}.about-page .skill-tag.primary{background:var(--color-accent,#007acc);color:#fff}.about-page .author-eeat{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:clamp(2rem,3vw,3rem)}.about-page .author-credentials,.about-page .author-title{text-align:left}.about-page .author-title h2{font-size:clamp(2.1rem,2.6vw,2.6rem)}.about-page .author-expertise,.about-page .philosophy-grid,.about-page .connect-grid,.about-page .talks-grid{gap:clamp(1rem,2vw,1.5rem)}.about-page .connect-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.about-page .talks-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.about-page .projects-showcase,.about-page .open-source-projects,.about-page .technical-skills,.about-page .author-eeat{background:radial-gradient(circle at top left,rgba(0,122,204,8%),transparent)}@media(max-width:900px){.about-page .about-container{padding:0 1.25rem}.about-page .project-featured{grid-template-columns:1fr}.about-page .projects-showcase,.about-page .open-source-projects,.about-page .technical-skills,.about-page .author-eeat{padding:1.5rem}}.series-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;margin-bottom:3rem}@media(min-width:1400px){.series-content{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}}table{display:table!important}.table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}@media(max-width:900px){.table-wrap>table{width:max-content;min-width:100%}}.payment-options{display:inline-flex;flex-wrap:wrap;gap:.5rem;align-items:center}.payment-btn{display:inline-block;padding:.5rem 1rem;border-radius:6px;text-decoration:none;font-weight:500;font-size:.9rem;transition:all .2s ease;border:2px solid transparent}.payment-btn:hover{text-decoration:none;transform:translateY(-1px);box-shadow:0 2px 8px rgba(0,0,0,.15)}.payment-btn-domestic{background:var(--color-accent,#007acc);color:#fff;border:2px solid var(--color-accent,#007acc)}.payment-btn-domestic:hover{background:var(--color-accent-dark,#005fa3);border-color:var(--color-accent-dark,#005fa3);color:#fff}.payment-btn-international{background:0 0;color:var(--color-accent,#007acc);border:2px solid var(--color-accent,#007acc)}.payment-btn-international:hover{background:var(--color-accent,#007acc);color:#fff;border-color:var(--color-accent,#007acc)}.payment-btn:not(.payment-btn-domestic):not(.payment-btn-international){background:var(--color-primary,#333);color:#fff}.payment-btn:not(.payment-btn-domestic):not(.payment-btn-international):hover{background:var(--color-accent-dark,#005fa3)}.payment-unavailable{color:#9ca3af;font-style:italic;font-size:.9rem}.payment-gateways-info{margin:1.5rem 0;padding:1rem;background:var(--bg-secondary,#f9fafb);border-radius:8px;border-left:4px solid var(--color-accent,#007acc)}.payment-form{margin:1.5rem 0;padding:1rem;background:var(--bg-secondary,#f9fafb);border-radius:8px;border:1px solid var(--border-color,#e5e7eb)}.payment-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.payment-field label{display:block;font-weight:600;margin-bottom:.35rem}.payment-field input{width:100%;padding:.6rem .75rem;border-radius:6px;border:1px solid var(--border-color,#d1d5db);background:var(--bg,#fff);color:var(--text,#111827)}.payment-turnstile{margin-top:1rem}.payment-note{margin-top:.5rem;font-size:.9rem;color:var(--text-muted,#6b7280)}.payment-status{margin-top:.75rem;font-size:.95rem}.payment-status.is-loading::after{content:"";display:inline-block;width:.9rem;height:.9rem;margin-left:.5rem;border-radius:50%;border:2px solid var(--color-accent-light,rgba(0,122,204,.25));border-top-color:var(--color-accent,#007acc);animation:payment-spin .8s linear infinite}.payment-status.is-error{color:var(--color-accent-dark,#005fa3)}.payment-status.is-success{color:var(--color-accent,#007acc)}.payment-status.is-info{color:var(--color-accent,#007acc)}.payment-error{padding:.6rem .75rem;border-radius:6px;background:var(--color-accent-light,rgba(0,122,204,.12));color:var(--color-accent-dark,#005fa3);border:1px solid var(--color-accent,#007acc)}.payment-selection{margin-top:.75rem;font-size:.95rem;color:var(--text-muted,#6b7280)}.payment-timer{margin-top:.5rem;font-size:.9rem;color:var(--text-muted,#6b7280)}.payment-timer.is-expired{color:var(--color-accent-dark,#005fa3)}.payment-details{margin-top:.75rem;white-space:pre-line;font-size:.95rem;color:var(--text-muted,#6b7280)}@media(prefers-color-scheme:dark){.payment-gateways-info{background:var(--bg-secondary,#1f2937)}.payment-unavailable{color:#6b7280}.payment-form{background:var(--bg-secondary,#1f2937);border-color:#374151}.payment-field input{background:#111827;border-color:#374151;color:#f9fafb}.payment-error{background:#7f1d1d;color:#fecaca}}@media(max-width:600px){.payment-options{flex-direction:column;align-items:stretch}.payment-btn{text-align:center;width:100%}.payment-form-grid{grid-template-columns:1fr}}@keyframes payment-spin{to{transform:rotate(360deg)}}html.dark .mermaid svg{--mermaid-edge-stroke:#cbd5e1;--mermaid-edge-label-text:#e5e7eb;--mermaid-edge-label-text-on-light:#111827;--mermaid-edge-label-bg:#f8fafc;--mermaid-edge-label-border:#94a3b8}html.dark .mermaid svg path[marker-end],html.dark .mermaid svg path[marker-start],html.dark .mermaid svg line[marker-end],html.dark .mermaid svg line[marker-start],html.dark .mermaid svg polyline[marker-end],html.dark .mermaid svg polyline[marker-start]{stroke:var(--mermaid-edge-stroke)!important;stroke-opacity:1!important;opacity:1!important}html.dark .mermaid svg .edgePath path,html.dark .mermaid svg .edgePath line,html.dark .mermaid svg .edgePath polyline,html.dark .mermaid svg .edgePath .path,html.dark .mermaid svg .edgePaths path,html.dark .mermaid svg g.edgePaths path,html.dark .mermaid svg .edgePaths .edgePath path,html.dark .mermaid svg path.flowchart-link{stroke:var(--mermaid-edge-stroke)!important;stroke-opacity:1!important;opacity:1!important}html.dark .mermaid svg .relation line,html.dark .mermaid svg .relation path{stroke:var(--mermaid-edge-stroke)!important;stroke-opacity:1!important;opacity:1!important}html.dark .mermaid svg .transition path,html.dark .mermaid svg .transition line{stroke:var(--mermaid-edge-stroke)!important;stroke-opacity:1!important;opacity:1!important}html.dark .mermaid svg .messageLine0,html.dark .mermaid svg .messageLine1,html.dark .mermaid svg .actor-line,html.dark .mermaid svg .loopLine,html.dark .mermaid svg .note-line{stroke:var(--mermaid-edge-stroke)!important;stroke-opacity:1!important;opacity:1!important}html.dark .mermaid svg marker path,html.dark .mermaid svg .arrowheadPath{fill:var(--mermaid-edge-stroke)!important;stroke:var(--mermaid-edge-stroke)!important}html.dark .mermaid svg .edgeLabel text,html.dark .mermaid svg .edgeLabel tspan,html.dark .mermaid svg .edgeLabel .label text,html.dark .mermaid svg .edgeLabel .label tspan,html.dark .mermaid svg .relationLabel text,html.dark .mermaid svg .relationLabel tspan,html.dark .mermaid svg .transitionLabel text,html.dark .mermaid svg .transitionLabel tspan,html.dark .mermaid svg .messageText,html.dark .mermaid svg .loopText,html.dark .mermaid svg .noteText{fill:var(--mermaid-edge-label-text)!important}html.dark .mermaid svg .edgeLabel foreignobject,html.dark .mermaid svg .edgeLabel foreignobject *,html.dark .mermaid svg .relationLabel foreignobject,html.dark .mermaid svg .relationLabel foreignobject *,html.dark .mermaid svg .transitionLabel foreignobject,html.dark .mermaid svg .transitionLabel foreignobject *{color:var(--mermaid-edge-label-text)!important}html.dark .mermaid svg .edgeLabel rect,html.dark .mermaid svg .edgeLabel .label rect,html.dark .mermaid svg .edgeLabel .labelBkg,html.dark .mermaid svg .edgeLabel rect.labelBkg,html.dark .mermaid svg .labelBkg,html.dark .mermaid svg rect.labelBkg,html.dark .mermaid svg .relationLabel rect,html.dark .mermaid svg .transitionLabel rect{fill:var(--mermaid-edge-label-bg)!important;stroke:var(--mermaid-edge-label-border)!important}html.dark .mermaid svg rect.labelBkg~text,html.dark .mermaid svg rect.labelBkg~g text,html.dark .mermaid svg .edgeLabel rect~text,html.dark .mermaid svg .edgeLabel rect~g text,html.dark .mermaid svg .edgeLabel rect.labelBkg~text,html.dark .mermaid svg .edgeLabel rect.labelBkg~g text,html.dark .mermaid svg .relationLabel rect~text,html.dark .mermaid svg .transitionLabel rect~text,html.dark .mermaid svg .relationLabel rect.labelBkg~text,html.dark .mermaid svg .transitionLabel rect.labelBkg~text{fill:var(--mermaid-edge-label-text-on-light)!important}html.dark .mermaid svg rect.labelBkg~foreignobject,html.dark .mermaid svg rect.labelBkg~foreignobject *{color:var(--mermaid-edge-label-text-on-light)!important}html.dark .mermaid svg .edgeLabel rect~foreignobject,html.dark .mermaid svg .edgeLabel rect~foreignobject *,html.dark .mermaid svg .relationLabel rect~foreignobject,html.dark .mermaid svg .relationLabel rect~foreignobject *,html.dark .mermaid svg .transitionLabel rect~foreignobject,html.dark .mermaid svg .transitionLabel rect~foreignobject *{color:var(--mermaid-edge-label-text-on-light)!important}html.dark .mermaid svg .nodeLabel,html.dark .mermaid svg .nodeLabel text,html.dark .mermaid svg .nodeLabel tspan,html.dark .mermaid svg .label text,html.dark .mermaid svg .label tspan{fill:#000!important}html.dark .mermaid svg .nodeLabel foreignobject,html.dark .mermaid svg .nodeLabel foreignobject *,html.dark .mermaid svg .label foreignobject,html.dark .mermaid svg .label foreignobject *{color:#000!important}html.dark{--accent-color:#9375fd;--accent-hover:#7d63f3;--text-color:#ddd;--text-muted:#9aa0a6;--bg-primary:#0d1117;--bg-secondary:#161b22;--border-color:#30363d;--accent-bg:rgba(147, 117, 253, 0.18);--accent-border:rgba(147, 117, 253, 0.40)}html.dark body{color:var(--text-color);background-color:#000}html.dark ::selection,html.dark ::-moz-selection{background:var(--accent-color);color:#fff;text-shadow:none}html.dark hr,html.dark .header nav,html.dark .footer{border-color:#333}html.dark .footer{color:#c9d1d9}html.dark .footer a{color:#c9d1d9}html.dark blockquote{border-color:var(--text-color)}html.dark h1,html.dark h2,html.dark h3,html.dark h4,html.dark h5,html.dark h6{color:var(--text-color)}html.dark a,html.dark a:hover{color:var(--accent-color);text-decoration:none}html.dark a:hover{opacity:.8;border-bottom:2px solid var(--accent-color)}html.dark table tbody tr:nth-of-type(even){background-color:rgba(255,255,255,.15)}html.dark .site-description a,html.dark .site-description a:hover{color:var(--text-color);text-decoration:underline}html.dark .post-tags .tags a,html.dark .post .tags a{border:1px solid var(--accent-color);color:var(--accent-color)}html.dark .post .draft-label{color:#fff;background-color:#7a0000}html.dark .site-title a{color:var(--text-color);text-decoration:none!important}html.dark .highlight{background-color:var(--bg-primary);border-color:var(--border-color)}html.dark .chroma,html.dark pre.chroma{background-color:var(--bg-primary);color:#f0f6fc}html.dark .header .site-description .scheme-toggle a svg{fill:#f8e04f!important;color:#f8e04f!important}html.dark code:not(pre *){color:var(--text-color);background-color:#333}html.dark .section-nav li.active>a{font-weight:600;color:var(--text-color)}html.dark .post .updated-badge{color:#66b3ff;background-color:#1a3d5c}.search-container{max-width:100%;margin:0 auto}.search-input-wrapper{position:relative;margin-bottom:2rem}.search-input{width:100%;padding:12px 16px;font-size:16px;font-family:inherit;border:1px solid #d1d9e0;border-radius:6px;background-color:#fff;color:#24292f;box-sizing:border-box;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.search-input:focus{outline:0;border-color:#0969da;box-shadow:0 0 0 3px rgba(9,105,218,.3)}.search-loading{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:#656d76;font-size:14px}.search-loading::after{content:"";display:inline-block;width:12px;height:12px;margin-left:8px;border:2px solid #f3f3f3;border-top:2px solid #0969da;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.search-message{padding:1rem;text-align:center;color:#656d76;font-style:italic}.search-results-list{border:1px solid #d1d9e0;border-radius:6px;background-color:#fff;overflow:hidden}.search-results-header{padding:12px 16px;background-color:#f6f8fa;border-bottom:1px solid #d1d9e0;font-size:14px;font-weight:600;color:#24292f}.search-result-item{padding:16px;border-bottom:1px solid #f6f8fa}.search-result-item:last-child{border-bottom:none}.search-result-item:hover{background-color:#f6f8fa}.search-result-title{margin:0 0 8px;font-size:18px;font-weight:600;line-height:1.3}.search-result-title a{color:#0969da;text-decoration:none}.search-result-title a:hover{text-decoration:underline}.search-result-excerpt{margin:0 0 8px;color:#656d76;line-height:1.5;font-size:14px}.search-result-excerpt mark{background-color:#fff8c5;color:#24292f;padding:1px 2px;border-radius:2px}.search-result-url{font-size:12px;color:#8b949e;font-family:ui-monospace,SFMono-Regular,sf mono,Consolas,liberation mono,Menlo,monospace}.search-no-results,.search-error{padding:2rem;text-align:center;color:#656d76;background-color:#f6f8fa;border:1px solid #d1d9e0;border-radius:6px}.search-error{background-color:#ffeaea;border-color:#ff6b6b;color:#d1242f}.search-disabled{padding:2rem;text-align:center;background-color:#fff8c5;border:1px solid #d29922;border-radius:6px;color:#953800}.search-disabled code{background-color:#ffd8b5;padding:2px 4px;border-radius:3px;font-family:ui-monospace,SFMono-Regular,sf mono,Consolas,liberation mono,Menlo,monospace}html.dark .search-input{background-color:#0d1117;border-color:#30363d;color:#f0f6fc}html.dark .search-input:focus{border-color:#1f6feb;box-shadow:0 0 0 3px rgba(31,111,235,.3)}html.dark .search-loading{color:#7d8590}html.dark .search-loading::after{border-color:#21262d;border-top-color:#1f6feb}html.dark .search-message{color:#7d8590}html.dark .search-results-list{background-color:#0d1117;border-color:#30363d}html.dark .search-results-header{background-color:#161b22;border-bottom-color:#30363d;color:#f0f6fc}html.dark .search-result-item{border-bottom-color:#21262d}html.dark .search-result-item:hover{background-color:#161b22}html.dark .search-result-title a{color:#4493f8}html.dark .search-result-excerpt{color:#7d8590}html.dark .search-result-excerpt mark{background-color:#bb800926;color:#f0f6fc}html.dark .search-result-url{color:#7d8590}html.dark .search-no-results,html.dark .search-error{background-color:#161b22;border-color:#30363d;color:#7d8590}html.dark .search-error{background-color:#2d1117;border-color:#f85149;color:#f85149}html.dark .search-disabled{background-color:#bb800926;border-color:#d29922;color:#ffa657}html.dark .search-disabled code{background-color:#ffa657;color:#0d1117}@media(max-width:768px){.search-input{font-size:16px}.search-result-title{font-size:16px}.search-result-item{padding:12px}}:root{--font-size-xs:0.8rem;--font-size-sm:1rem;--font-size-base:1.125rem;--font-size-lg:1.25rem;--font-size-xl:1.563rem;--font-size-2xl:1.953rem;--font-size-3xl:2.441rem;--font-size-4xl:3.052rem;--line-height-tight:1.25;--line-height-snug:1.375;--line-height-normal:1.5;--line-height-relaxed:1.625;--line-height-loose:2;--color-primary:#3700ff;--color-primary-light:#5f4fff;--color-primary-dark:#2800cc;--color-accent:#007acc;--color-accent-light:#1a8cd8;--color-text:#333;--color-text-muted:#666;--color-text-light:#888;--color-bg:#ffffff;--color-bg-secondary:#f8f9fa;--color-bg-tertiary:#e9ecef;--color-border:#dee2e6;--color-border-light:#f1f3f4;--color-dark-primary:#9375fd;--color-dark-primary-light:#a388fe;--color-dark-primary-dark:#7f62fc;--color-dark-accent:#4dabf7;--color-dark-text:#e9ecef;--color-dark-text-muted:#adb5bd;--color-dark-text-light:#6c757d;--color-dark-bg:#0d1117;--color-dark-bg-secondary:#161b22;--color-dark-bg-tertiary:#21262d;--color-dark-border:#30363d;--color-dark-border-light:#21262d}body{font-size:var(--font-size-base);line-height:var(--line-height-relaxed);color:var(--color-text);background-color:var(--color-bg)}h1{font-size:var(--font-size-4xl);line-height:var(--line-height-tight);font-weight:700;letter-spacing:-.025em;margin-bottom:1rem}h2{font-size:var(--font-size-3xl);line-height:var(--line-height-snug);font-weight:600;letter-spacing:-.02em;margin-bottom:.875rem}h3{font-size:var(--font-size-2xl);line-height:var(--line-height-snug);font-weight:600;letter-spacing:-.015em;margin-bottom:.75rem}h4{font-size:var(--font-size-xl);line-height:var(--line-height-normal);font-weight:600;letter-spacing:-.01em;margin-bottom:.625rem}h5{font-size:var(--font-size-lg);line-height:var(--line-height-normal);font-weight:600;margin-bottom:.5rem}h6{font-size:var(--font-size-base);line-height:var(--line-height-normal);font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem}p{margin-bottom:1.25rem;line-height:var(--line-height-relaxed)}.admonition,.markdown-alert{margin:1.5rem 0;padding:1rem 1.25rem;border-radius:8px;border-left:4px solid;background:var(--color-bg-secondary);position:relative;box-shadow:0 1px 3px rgba(0,0,0,.1)}.admonition-title,.markdown-alert-title{font-weight:600;font-size:var(--font-size-lg);margin:0 0 .75rem;display:flex;align-items:center;gap:.5rem}.admonition-title::before,.markdown-alert-title::before{font-size:1.25em;line-height:1}.admonition.note,.admonition.info,.markdown-alert-note{border-left-color:#3b82f6;background:#eff6ff}.admonition.note .admonition-title,.admonition.info .admonition-title,.markdown-alert-note .markdown-alert-title{color:#1d4ed8}.admonition.note .admonition-title::before,.admonition.info .admonition-title::before,.markdown-alert-note .markdown-alert-title::before{content:"ℹ️"}.admonition.warning,.admonition.caution,.markdown-alert-warning{border-left-color:#f59e0b;background:#fffbeb}.admonition.warning .admonition-title,.admonition.caution .admonition-title,.markdown-alert-warning .markdown-alert-title{color:#d97706}.admonition.warning .admonition-title::before,.admonition.caution .admonition-title::before,.markdown-alert-warning .markdown-alert-title::before{content:"⚠️"}.admonition.tip,.admonition.hint,.markdown-alert-tip{border-left-color:#10b981;background:#f0fdf4}.admonition.tip .admonition-title,.admonition.hint .admonition-title,.markdown-alert-tip .markdown-alert-title{color:#059669}.admonition.tip .admonition-title::before,.admonition.hint .admonition-title::before,.markdown-alert-tip .markdown-alert-title::before{content:"💡"}.admonition.danger,.admonition.error{border-left-color:#ef4444;background:#fef2f2}.admonition.danger .admonition-title,.admonition.error .admonition-title{color:#dc2626}.admonition.danger .admonition-title::before,.admonition.error .admonition-title::before{content:"🚨"}.admonition.success{border-left-color:#22c55e;background:#f0fdf4}.admonition.success .admonition-title{color:#16a34a}.admonition.success .admonition-title::before{content:"✅"}html.dark{color-scheme:dark}html.dark body{color:var(--color-dark-text);background-color:var(--color-dark-bg)}html.dark h1,html.dark h2,html.dark h3,html.dark h4,html.dark h5,html.dark h6{color:var(--color-dark-text)}html.dark a{color:var(--color-dark-primary)}html.dark a:hover{color:var(--color-dark-primary-light);border-bottom-color:var(--color-dark-primary-light)}html.dark .admonition,html.dark .markdown-alert{background:var(--color-dark-bg-secondary);box-shadow:0 1px 3px rgba(0,0,0,.3)}html.dark .admonition.note,html.dark .admonition.info,html.dark .markdown-alert-note{background:rgba(59,130,246,.1);border-left-color:#60a5fa}html.dark .admonition.note .admonition-title,html.dark .admonition.info .admonition-title,html.dark .markdown-alert-note .markdown-alert-title{color:#93c5fd}html.dark .admonition.warning,html.dark .admonition.caution,html.dark .markdown-alert-warning{background:rgba(245,158,11,.1);border-left-color:#fbbf24}html.dark .admonition.warning .admonition-title,html.dark .admonition.caution .admonition-title,html.dark .markdown-alert-warning .markdown-alert-title{color:#fde047}html.dark .admonition.tip,html.dark .admonition.hint,html.dark .markdown-alert-tip{background:rgba(16,185,129,.1);border-left-color:#34d399}html.dark .admonition.tip .admonition-title,html.dark .admonition.hint .admonition-title,html.dark .markdown-alert-tip .markdown-alert-title{color:#6ee7b7}html.dark .admonition.danger,html.dark .admonition.error{background:rgba(239,68,68,.1);border-left-color:#f87171}html.dark .admonition.danger .admonition-title,html.dark .admonition.error .admonition-title{color:#fca5a5}html.dark .admonition.success{background:rgba(34,197,94,.1);border-left-color:#4ade80}html.dark .admonition.success .admonition-title{color:#86efac}blockquote{border-left:4px solid var(--color-primary);background:var(--color-bg-secondary);padding:1rem 1.25rem;margin:1.5rem 0;border-radius:0 8px 8px 0;font-style:italic;position:relative}blockquote::before{content:""";
 font-size:3rem;color:var(--color-primary);position:absolute;left:-.5rem;top:-.5rem;font-family:Georgia,serif;opacity:.3}html.dark blockquote{border-left-color:var(--color-dark-primary);background:var(--color-dark-bg-secondary)}html.dark blockquote::before{color:var(--color-dark-primary)}@media(max-width:768px){:root{--font-size-base:1rem;--font-size-4xl:2.25rem;--font-size-3xl:1.875rem;--font-size-2xl:1.5rem;--font-size-xl:1.25rem}body{font-size:var(--font-size-base)}.admonition,.markdown-alert{padding:.875rem 1rem;margin:1.25rem 0}}pre,code{font-family:sf mono,monaco,inconsolata,roboto mono,consolas,monospace}:not(pre)>code{background:var(--color-bg-tertiary);color:var(--color-primary-dark);padding:.125rem .375rem;border-radius:4px;font-size:.875em;font-weight:500}html.dark :not(pre)>code{background:var(--color-dark-bg-tertiary);color:var(--color-dark-primary-light)}table{border-collapse:collapse;margin:1.5rem 0;width:100%;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.1)}table th{background:var(--color-primary);color:#fff;padding:.875rem 1rem;font-weight:600;text-align:left}table td{padding:.75rem 1rem;border-bottom:1px solid var(--color-border-light)}table tbody tr:hover{background:var(--color-bg-secondary)}html.dark table th{background:var(--color-dark-primary)}html.dark table td{border-bottom-color:var(--color-dark-border)}html.dark table tbody tr:hover{background:var(--color-dark-bg-secondary)}