@media (prefers-color-scheme: light) {
.bg { background-color: #f7f7f7; }
:root:not([data-theme="dark"]) .chroma { background-color: #f7f7f7; -webkit-text-size-adjust: none; }
:root:not([data-theme="dark"]) .chroma .err { color: #f6f8fa; background-color: #82071e }
:root:not([data-theme="dark"]) .chroma .lnlinks { outline: none; text-decoration: none; color: inherit }
:root:not([data-theme="dark"]) .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
:root:not([data-theme="dark"]) .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; }
:root:not([data-theme="dark"]) .chroma .hl { background-color: #dedede }
:root:not([data-theme="dark"]) .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
:root:not([data-theme="dark"]) .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
:root:not([data-theme="dark"]) .chroma .line { display: flex; }
:root:not([data-theme="dark"]) .chroma .k { color: #cf222e }
:root:not([data-theme="dark"]) .chroma .kc { color: #cf222e }
:root:not([data-theme="dark"]) .chroma .kd { color: #cf222e }
:root:not([data-theme="dark"]) .chroma .kn { color: #cf222e }
:root:not([data-theme="dark"]) .chroma .kp { color: #cf222e }
:root:not([data-theme="dark"]) .chroma .kr { color: #cf222e }
:root:not([data-theme="dark"]) .chroma .kt { color: #cf222e }
:root:not([data-theme="dark"]) .chroma .na { color: #1f2328 }
:root:not([data-theme="dark"]) .chroma .nc { color: #1f2328 }
:root:not([data-theme="dark"]) .chroma .no { color: #0550ae }
:root:not([data-theme="dark"]) .chroma .nd { color: #0550ae }
:root:not([data-theme="dark"]) .chroma .ni { color: #6639ba }
:root:not([data-theme="dark"]) .chroma .nl { color: #990000; font-weight: bold }
:root:not([data-theme="dark"]) .chroma .nn { color: #24292e }
:root:not([data-theme="dark"]) .chroma .nx { color: #1f2328 }
:root:not([data-theme="dark"]) .chroma .nt { color: #0550ae }
:root:not([data-theme="dark"]) .chroma .nb { color: #6639ba }
:root:not([data-theme="dark"]) .chroma .bp { color: #6a737d }
:root:not([data-theme="dark"]) .chroma .nv { color: #953800 }
:root:not([data-theme="dark"]) .chroma .vc { color: #953800 }
:root:not([data-theme="dark"]) .chroma .vg { color: #953800 }
:root:not([data-theme="dark"]) .chroma .vi { color: #953800 }
:root:not([data-theme="dark"]) .chroma .vm { color: #953800 }
:root:not([data-theme="dark"]) .chroma .nf { color: #6639ba }
:root:not([data-theme="dark"]) .chroma .fm { color: #6639ba }
:root:not([data-theme="dark"]) .chroma .s { color: #0a3069 }
:root:not([data-theme="dark"]) .chroma .sa { color: #0a3069 }
:root:not([data-theme="dark"]) .chroma .sb { color: #0a3069 }
:root:not([data-theme="dark"]) .chroma .sc { color: #0a3069 }
:root:not([data-theme="dark"]) .chroma .dl { color: #0a3069 }
:root:not([data-theme="dark"]) .chroma .sd { color: #0a3069 }
:root:not([data-theme="dark"]) .chroma .s2 { color: #0a3069 }
:root:not([data-theme="dark"]) .chroma .se { color: #0a3069 }
:root:not([data-theme="dark"]) .chroma .sh { color: #0a3069 }
:root:not([data-theme="dark"]) .chroma .si { color: #0a3069 }
:root:not([data-theme="dark"]) .chroma .sx { color: #0a3069 }
:root:not([data-theme="dark"]) .chroma .sr { color: #0a3069 }
:root:not([data-theme="dark"]) .chroma .s1 { color: #0a3069 }
:root:not([data-theme="dark"]) .chroma .ss { color: #032f62 }
:root:not([data-theme="dark"]) .chroma .m { color: #0550ae }
:root:not([data-theme="dark"]) .chroma .mb { color: #0550ae }
:root:not([data-theme="dark"]) .chroma .mf { color: #0550ae }
:root:not([data-theme="dark"]) .chroma .mh { color: #0550ae }
:root:not([data-theme="dark"]) .chroma .mi { color: #0550ae }
:root:not([data-theme="dark"]) .chroma .il { color: #0550ae }
:root:not([data-theme="dark"]) .chroma .mo { color: #0550ae }
:root:not([data-theme="dark"]) .chroma .o { color: #0550ae }
:root:not([data-theme="dark"]) .chroma .ow { color: #0550ae }
:root:not([data-theme="dark"]) .chroma .or { color: #0550ae }
:root:not([data-theme="dark"]) .chroma .p { color: #1f2328 }
:root:not([data-theme="dark"]) .chroma .c { color: #57606a }
:root:not([data-theme="dark"]) .chroma .ch { color: #57606a }
:root:not([data-theme="dark"]) .chroma .cm { color: #57606a }
:root:not([data-theme="dark"]) .chroma .c1 { color: #57606a }
:root:not([data-theme="dark"]) .chroma .cs { color: #57606a }
:root:not([data-theme="dark"]) .chroma .cp { color: #57606a }
:root:not([data-theme="dark"]) .chroma .cpf { color: #57606a }
:root:not([data-theme="dark"]) .chroma .gd { color: #82071e; background-color: #ffebe9 }
:root:not([data-theme="dark"]) .chroma .ge { color: #1f2328 }
:root:not([data-theme="dark"]) .chroma .gi { color: #116329; background-color: #dafbe1 }
:root:not([data-theme="dark"]) .chroma .go { color: #1f2328 }
:root:not([data-theme="dark"]) .chroma .gl { text-decoration: underline }
:root:not([data-theme="dark"]) .chroma .w { color: #ffffff }

}
.bg { background-color: #f7f7f7; }
:root[data-theme="light"] .chroma { background-color: #f7f7f7; -webkit-text-size-adjust: none; }
:root[data-theme="light"] .chroma .err { color: #f6f8fa; background-color: #82071e }
:root[data-theme="light"] .chroma .lnlinks { outline: none; text-decoration: none; color: inherit }
:root[data-theme="light"] .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
:root[data-theme="light"] .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; }
:root[data-theme="light"] .chroma .hl { background-color: #dedede }
:root[data-theme="light"] .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
:root[data-theme="light"] .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
:root[data-theme="light"] .chroma .line { display: flex; }
:root[data-theme="light"] .chroma .k { color: #cf222e }
:root[data-theme="light"] .chroma .kc { color: #cf222e }
:root[data-theme="light"] .chroma .kd { color: #cf222e }
:root[data-theme="light"] .chroma .kn { color: #cf222e }
:root[data-theme="light"] .chroma .kp { color: #cf222e }
:root[data-theme="light"] .chroma .kr { color: #cf222e }
:root[data-theme="light"] .chroma .kt { color: #cf222e }
:root[data-theme="light"] .chroma .na { color: #1f2328 }
:root[data-theme="light"] .chroma .nc { color: #1f2328 }
:root[data-theme="light"] .chroma .no { color: #0550ae }
:root[data-theme="light"] .chroma .nd { color: #0550ae }
:root[data-theme="light"] .chroma .ni { color: #6639ba }
:root[data-theme="light"] .chroma .nl { color: #990000; font-weight: bold }
:root[data-theme="light"] .chroma .nn { color: #24292e }
:root[data-theme="light"] .chroma .nx { color: #1f2328 }
:root[data-theme="light"] .chroma .nt { color: #0550ae }
:root[data-theme="light"] .chroma .nb { color: #6639ba }
:root[data-theme="light"] .chroma .bp { color: #6a737d }
:root[data-theme="light"] .chroma .nv { color: #953800 }
:root[data-theme="light"] .chroma .vc { color: #953800 }
:root[data-theme="light"] .chroma .vg { color: #953800 }
:root[data-theme="light"] .chroma .vi { color: #953800 }
:root[data-theme="light"] .chroma .vm { color: #953800 }
:root[data-theme="light"] .chroma .nf { color: #6639ba }
:root[data-theme="light"] .chroma .fm { color: #6639ba }
:root[data-theme="light"] .chroma .s { color: #0a3069 }
:root[data-theme="light"] .chroma .sa { color: #0a3069 }
:root[data-theme="light"] .chroma .sb { color: #0a3069 }
:root[data-theme="light"] .chroma .sc { color: #0a3069 }
:root[data-theme="light"] .chroma .dl { color: #0a3069 }
:root[data-theme="light"] .chroma .sd { color: #0a3069 }
:root[data-theme="light"] .chroma .s2 { color: #0a3069 }
:root[data-theme="light"] .chroma .se { color: #0a3069 }
:root[data-theme="light"] .chroma .sh { color: #0a3069 }
:root[data-theme="light"] .chroma .si { color: #0a3069 }
:root[data-theme="light"] .chroma .sx { color: #0a3069 }
:root[data-theme="light"] .chroma .sr { color: #0a3069 }
:root[data-theme="light"] .chroma .s1 { color: #0a3069 }
:root[data-theme="light"] .chroma .ss { color: #032f62 }
:root[data-theme="light"] .chroma .m { color: #0550ae }
:root[data-theme="light"] .chroma .mb { color: #0550ae }
:root[data-theme="light"] .chroma .mf { color: #0550ae }
:root[data-theme="light"] .chroma .mh { color: #0550ae }
:root[data-theme="light"] .chroma .mi { color: #0550ae }
:root[data-theme="light"] .chroma .il { color: #0550ae }
:root[data-theme="light"] .chroma .mo { color: #0550ae }
:root[data-theme="light"] .chroma .o { color: #0550ae }
:root[data-theme="light"] .chroma .ow { color: #0550ae }
:root[data-theme="light"] .chroma .or { color: #0550ae }
:root[data-theme="light"] .chroma .p { color: #1f2328 }
:root[data-theme="light"] .chroma .c { color: #57606a }
:root[data-theme="light"] .chroma .ch { color: #57606a }
:root[data-theme="light"] .chroma .cm { color: #57606a }
:root[data-theme="light"] .chroma .c1 { color: #57606a }
:root[data-theme="light"] .chroma .cs { color: #57606a }
:root[data-theme="light"] .chroma .cp { color: #57606a }
:root[data-theme="light"] .chroma .cpf { color: #57606a }
:root[data-theme="light"] .chroma .gd { color: #82071e; background-color: #ffebe9 }
:root[data-theme="light"] .chroma .ge { color: #1f2328 }
:root[data-theme="light"] .chroma .gi { color: #116329; background-color: #dafbe1 }
:root[data-theme="light"] .chroma .go { color: #1f2328 }
:root[data-theme="light"] .chroma .gl { text-decoration: underline }
:root[data-theme="light"] .chroma .w { color: #ffffff }

@media (prefers-color-scheme: dark) {
.bg { color: #e6edf3; background-color: #0d1117; }
:root:not([data-theme="light"]) .chroma { color: #e6edf3; background-color: #0d1117; -webkit-text-size-adjust: none; }
:root:not([data-theme="light"]) .chroma .err { color: #f85149 }
:root:not([data-theme="light"]) .chroma .lnlinks { outline: none; text-decoration: none; color: inherit }
:root:not([data-theme="light"]) .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
:root:not([data-theme="light"]) .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; }
:root:not([data-theme="light"]) .chroma .hl { background-color: #6e7681 }
:root:not([data-theme="light"]) .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #737679 }
:root:not([data-theme="light"]) .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #6e7681 }
:root:not([data-theme="light"]) .chroma .line { display: flex; }
:root:not([data-theme="light"]) .chroma .k { color: #ff7b72 }
:root:not([data-theme="light"]) .chroma .kc { color: #79c0ff }
:root:not([data-theme="light"]) .chroma .kd { color: #ff7b72 }
:root:not([data-theme="light"]) .chroma .kn { color: #ff7b72 }
:root:not([data-theme="light"]) .chroma .kp { color: #79c0ff }
:root:not([data-theme="light"]) .chroma .kr { color: #ff7b72 }
:root:not([data-theme="light"]) .chroma .kt { color: #ff7b72 }
:root:not([data-theme="light"]) .chroma .nc { color: #f0883e; font-weight: bold }
:root:not([data-theme="light"]) .chroma .no { color: #79c0ff; font-weight: bold }
:root:not([data-theme="light"]) .chroma .nd { color: #d2a8ff; font-weight: bold }
:root:not([data-theme="light"]) .chroma .ni { color: #ffa657 }
:root:not([data-theme="light"]) .chroma .ne { color: #f0883e; font-weight: bold }
:root:not([data-theme="light"]) .chroma .nl { color: #79c0ff; font-weight: bold }
:root:not([data-theme="light"]) .chroma .nn { color: #ff7b72 }
:root:not([data-theme="light"]) .chroma .py { color: #79c0ff }
:root:not([data-theme="light"]) .chroma .nt { color: #7ee787 }
:root:not([data-theme="light"]) .chroma .nv { color: #79c0ff }
:root:not([data-theme="light"]) .chroma .vc { color: #79c0ff }
:root:not([data-theme="light"]) .chroma .vg { color: #79c0ff }
:root:not([data-theme="light"]) .chroma .vi { color: #79c0ff }
:root:not([data-theme="light"]) .chroma .vm { color: #79c0ff }
:root:not([data-theme="light"]) .chroma .nf { color: #d2a8ff; font-weight: bold }
:root:not([data-theme="light"]) .chroma .fm { color: #d2a8ff; font-weight: bold }
:root:not([data-theme="light"]) .chroma .l { color: #a5d6ff }
:root:not([data-theme="light"]) .chroma .ld { color: #79c0ff }
:root:not([data-theme="light"]) .chroma .s { color: #a5d6ff }
:root:not([data-theme="light"]) .chroma .sa { color: #79c0ff }
:root:not([data-theme="light"]) .chroma .sb { color: #a5d6ff }
:root:not([data-theme="light"]) .chroma .sc { color: #a5d6ff }
:root:not([data-theme="light"]) .chroma .dl { color: #79c0ff }
:root:not([data-theme="light"]) .chroma .sd { color: #a5d6ff }
:root:not([data-theme="light"]) .chroma .s2 { color: #a5d6ff }
:root:not([data-theme="light"]) .chroma .se { color: #79c0ff }
:root:not([data-theme="light"]) .chroma .sh { color: #79c0ff }
:root:not([data-theme="light"]) .chroma .si { color: #a5d6ff }
:root:not([data-theme="light"]) .chroma .sx { color: #a5d6ff }
:root:not([data-theme="light"]) .chroma .sr { color: #79c0ff }
:root:not([data-theme="light"]) .chroma .s1 { color: #a5d6ff }
:root:not([data-theme="light"]) .chroma .ss { color: #a5d6ff }
:root:not([data-theme="light"]) .chroma .m { color: #a5d6ff }
:root:not([data-theme="light"]) .chroma .mb { color: #a5d6ff }
:root:not([data-theme="light"]) .chroma .mf { color: #a5d6ff }
:root:not([data-theme="light"]) .chroma .mh { color: #a5d6ff }
:root:not([data-theme="light"]) .chroma .mi { color: #a5d6ff }
:root:not([data-theme="light"]) .chroma .il { color: #a5d6ff }
:root:not([data-theme="light"]) .chroma .mo { color: #a5d6ff }
:root:not([data-theme="light"]) .chroma .o { color: #ff7b72; font-weight: bold }
:root:not([data-theme="light"]) .chroma .ow { color: #ff7b72; font-weight: bold }
:root:not([data-theme="light"]) .chroma .or { color: #ff7b72; font-weight: bold }
:root:not([data-theme="light"]) .chroma .c { color: #8b949e; font-style: italic }
:root:not([data-theme="light"]) .chroma .ch { color: #8b949e; font-style: italic }
:root:not([data-theme="light"]) .chroma .cm { color: #8b949e; font-style: italic }
:root:not([data-theme="light"]) .chroma .c1 { color: #8b949e; font-style: italic }
:root:not([data-theme="light"]) .chroma .cs { color: #8b949e; font-weight: bold; font-style: italic }
:root:not([data-theme="light"]) .chroma .cp { color: #8b949e; font-weight: bold; font-style: italic }
:root:not([data-theme="light"]) .chroma .cpf { color: #8b949e; font-weight: bold; font-style: italic }
:root:not([data-theme="light"]) .chroma .gd { color: #ffa198; background-color: #490202 }
:root:not([data-theme="light"]) .chroma .ge { font-style: italic }
:root:not([data-theme="light"]) .chroma .gr { color: #ffa198 }
:root:not([data-theme="light"]) .chroma .gh { color: #79c0ff; font-weight: bold }
:root:not([data-theme="light"]) .chroma .gi { color: #56d364; background-color: #0f5323 }
:root:not([data-theme="light"]) .chroma .go { color: #8b949e }
:root:not([data-theme="light"]) .chroma .gp { color: #8b949e }
:root:not([data-theme="light"]) .chroma .gs { font-weight: bold }
:root:not([data-theme="light"]) .chroma .gu { color: #79c0ff }
:root:not([data-theme="light"]) .chroma .gt { color: #ff7b72 }
:root:not([data-theme="light"]) .chroma .gl { text-decoration: underline }
:root:not([data-theme="light"]) .chroma .w { color: #6e7681 }

}
.bg { color: #e6edf3; background-color: #0d1117; }
:root[data-theme="dark"] .chroma { color: #e6edf3; background-color: #0d1117; -webkit-text-size-adjust: none; }
:root[data-theme="dark"] .chroma .err { color: #f85149 }
:root[data-theme="dark"] .chroma .lnlinks { outline: none; text-decoration: none; color: inherit }
:root[data-theme="dark"] .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
:root[data-theme="dark"] .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; }
:root[data-theme="dark"] .chroma .hl { background-color: #6e7681 }
:root[data-theme="dark"] .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #737679 }
:root[data-theme="dark"] .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #6e7681 }
:root[data-theme="dark"] .chroma .line { display: flex; }
:root[data-theme="dark"] .chroma .k { color: #ff7b72 }
:root[data-theme="dark"] .chroma .kc { color: #79c0ff }
:root[data-theme="dark"] .chroma .kd { color: #ff7b72 }
:root[data-theme="dark"] .chroma .kn { color: #ff7b72 }
:root[data-theme="dark"] .chroma .kp { color: #79c0ff }
:root[data-theme="dark"] .chroma .kr { color: #ff7b72 }
:root[data-theme="dark"] .chroma .kt { color: #ff7b72 }
:root[data-theme="dark"] .chroma .nc { color: #f0883e; font-weight: bold }
:root[data-theme="dark"] .chroma .no { color: #79c0ff; font-weight: bold }
:root[data-theme="dark"] .chroma .nd { color: #d2a8ff; font-weight: bold }
:root[data-theme="dark"] .chroma .ni { color: #ffa657 }
:root[data-theme="dark"] .chroma .ne { color: #f0883e; font-weight: bold }
:root[data-theme="dark"] .chroma .nl { color: #79c0ff; font-weight: bold }
:root[data-theme="dark"] .chroma .nn { color: #ff7b72 }
:root[data-theme="dark"] .chroma .py { color: #79c0ff }
:root[data-theme="dark"] .chroma .nt { color: #7ee787 }
:root[data-theme="dark"] .chroma .nv { color: #79c0ff }
:root[data-theme="dark"] .chroma .vc { color: #79c0ff }
:root[data-theme="dark"] .chroma .vg { color: #79c0ff }
:root[data-theme="dark"] .chroma .vi { color: #79c0ff }
:root[data-theme="dark"] .chroma .vm { color: #79c0ff }
:root[data-theme="dark"] .chroma .nf { color: #d2a8ff; font-weight: bold }
:root[data-theme="dark"] .chroma .fm { color: #d2a8ff; font-weight: bold }
:root[data-theme="dark"] .chroma .l { color: #a5d6ff }
:root[data-theme="dark"] .chroma .ld { color: #79c0ff }
:root[data-theme="dark"] .chroma .s { color: #a5d6ff }
:root[data-theme="dark"] .chroma .sa { color: #79c0ff }
:root[data-theme="dark"] .chroma .sb { color: #a5d6ff }
:root[data-theme="dark"] .chroma .sc { color: #a5d6ff }
:root[data-theme="dark"] .chroma .dl { color: #79c0ff }
:root[data-theme="dark"] .chroma .sd { color: #a5d6ff }
:root[data-theme="dark"] .chroma .s2 { color: #a5d6ff }
:root[data-theme="dark"] .chroma .se { color: #79c0ff }
:root[data-theme="dark"] .chroma .sh { color: #79c0ff }
:root[data-theme="dark"] .chroma .si { color: #a5d6ff }
:root[data-theme="dark"] .chroma .sx { color: #a5d6ff }
:root[data-theme="dark"] .chroma .sr { color: #79c0ff }
:root[data-theme="dark"] .chroma .s1 { color: #a5d6ff }
:root[data-theme="dark"] .chroma .ss { color: #a5d6ff }
:root[data-theme="dark"] .chroma .m { color: #a5d6ff }
:root[data-theme="dark"] .chroma .mb { color: #a5d6ff }
:root[data-theme="dark"] .chroma .mf { color: #a5d6ff }
:root[data-theme="dark"] .chroma .mh { color: #a5d6ff }
:root[data-theme="dark"] .chroma .mi { color: #a5d6ff }
:root[data-theme="dark"] .chroma .il { color: #a5d6ff }
:root[data-theme="dark"] .chroma .mo { color: #a5d6ff }
:root[data-theme="dark"] .chroma .o { color: #ff7b72; font-weight: bold }
:root[data-theme="dark"] .chroma .ow { color: #ff7b72; font-weight: bold }
:root[data-theme="dark"] .chroma .or { color: #ff7b72; font-weight: bold }
:root[data-theme="dark"] .chroma .c { color: #8b949e; font-style: italic }
:root[data-theme="dark"] .chroma .ch { color: #8b949e; font-style: italic }
:root[data-theme="dark"] .chroma .cm { color: #8b949e; font-style: italic }
:root[data-theme="dark"] .chroma .c1 { color: #8b949e; font-style: italic }
:root[data-theme="dark"] .chroma .cs { color: #8b949e; font-weight: bold; font-style: italic }
:root[data-theme="dark"] .chroma .cp { color: #8b949e; font-weight: bold; font-style: italic }
:root[data-theme="dark"] .chroma .cpf { color: #8b949e; font-weight: bold; font-style: italic }
:root[data-theme="dark"] .chroma .gd { color: #ffa198; background-color: #490202 }
:root[data-theme="dark"] .chroma .ge { font-style: italic }
:root[data-theme="dark"] .chroma .gr { color: #ffa198 }
:root[data-theme="dark"] .chroma .gh { color: #79c0ff; font-weight: bold }
:root[data-theme="dark"] .chroma .gi { color: #56d364; background-color: #0f5323 }
:root[data-theme="dark"] .chroma .go { color: #8b949e }
:root[data-theme="dark"] .chroma .gp { color: #8b949e }
:root[data-theme="dark"] .chroma .gs { font-weight: bold }
:root[data-theme="dark"] .chroma .gu { color: #79c0ff }
:root[data-theme="dark"] .chroma .gt { color: #ff7b72 }
:root[data-theme="dark"] .chroma .gl { text-decoration: underline }
:root[data-theme="dark"] .chroma .w { color: #6e7681 }

:root {
	color-scheme: light;

	--bg: #f7f7f5;
	--surface: #ffffff;
	--surface-2: #f1efe9;
	--text: #1f2933;
	--muted: #5f6b76;
	--border: #e0ddd5;
	--accent: #7c4ff0;
	--accent-strong: #6d3fe0;
	--accent-soft: #efe9ff;
	--code-bg: #f5f3ef;
	--shadow: 0 1px 2px rgb(20 14 40 / 6%);
	--topbar: rgb(247 247 245 / 88%);
}

@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) {
		color-scheme: dark;

		--bg: #121016;
		--surface: #1b1822;
		--surface-2: #24202e;
		--text: #ece9f4;
		--muted: #aaa2b8;
		--border: #332d40;
		--accent: #b49bff;
		--accent-strong: #8b5cf6;
		--accent-soft: #2b2340;
		--code-bg: #171420;
		--shadow: 0 1px 2px rgb(0 0 0 / 35%);
		--topbar: rgb(18 16 22 / 88%);
	}
}

:root[data-theme="dark"] {
	color-scheme: dark;

	--bg: #121016;
	--surface: #1b1822;
	--surface-2: #24202e;
	--text: #ece9f4;
	--muted: #aaa2b8;
	--border: #332d40;
	--accent: #b49bff;
	--accent-strong: #8b5cf6;
	--accent-soft: #2b2340;
	--code-bg: #171420;
	--shadow: 0 1px 2px rgb(0 0 0 / 35%);
	--topbar: rgb(18 16 22 / 88%);
}

* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--bg);
	color: var(--text);
	font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 16px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}

a {
	color: var(--accent);
	text-decoration: none;
}

a:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

button {
	font: inherit;
	color: inherit;
}

:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

.skip {
	position: absolute;
	top: -100px;
	left: 16px;
	z-index: 100;
	padding: 8px 14px;
	border-radius: 8px;
	background: var(--surface);
	box-shadow: var(--shadow);
}

.skip:focus {
	top: 12px;
}

/* Topbar */

.topbar {
	position: sticky;
	top: 0;
	z-index: 30;
	display: flex;
	align-items: center;
	gap: 16px;
	height: 64px;
	padding: 0 28px;
	border-bottom: 1px solid var(--border);
	background: var(--topbar);
	backdrop-filter: blur(12px);
}

.brand {
	display: flex;
	align-items: baseline;
	gap: 8px;
	color: var(--accent);
	text-decoration: none;
}

.brand:hover {
	text-decoration: none;
}

.brand-wordmark {
	display: block;
	width: 128px;
	height: auto;
	transform: translateY(3px);
}

.brand-suffix {
	font-size: 20px;
	font-weight: 700;
	letter-spacing: -0.03em;
}

.topbar-links {
	display: flex;
	align-items: center;
	gap: 18px;
	margin-left: auto;
	font-size: 14px;
}

.topbar-links a {
	color: var(--muted);
}

.topbar-links a:hover {
	color: var(--accent);
}

.theme {
	padding: 6px 12px;
	border: 1px solid var(--border);
	border-radius: 999px;
	background: var(--surface);
	color: var(--muted);
	cursor: pointer;
	font-size: 13px;
}

.theme:hover {
	color: var(--accent);
	border-color: var(--accent);
}

.nav-toggle {
	display: none;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 1px solid var(--border);
	border-radius: 10px;
	background: var(--surface);
	color: var(--text);
	cursor: pointer;
}

.nav-toggle svg {
	display: block;
	width: 20px;
	height: 20px;
}

/* Columns */

.columns {
	display: grid;
	grid-template-columns: 264px minmax(0, 1fr);
}

.sidebar {
	position: sticky;
	top: 64px;
	align-self: start;
	height: calc(100vh - 64px);
	overflow-y: auto;
	padding: 36px 18px 40px;
	border-right: 1px solid var(--border);
	background: var(--surface);
}

.nav ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.nav ul.nav-home {
	margin-bottom: 40px;
}

.nav-group {
	margin-bottom: 24px;
}

.nav-title {
	margin: 0 0 8px;
	padding: 0 10px;
	color: var(--muted);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.11em;
	text-transform: uppercase;
}

.nav-link {
	display: block;
	padding: 6px 10px;
	border-radius: 8px;
	color: var(--text);
	font-size: 14.5px;
	line-height: 1.4;
}

.nav-link:hover {
	background: var(--surface-2);
	text-decoration: none;
}

.nav-link.active {
	background: var(--accent-soft);
	color: var(--accent-strong);
	font-weight: 600;
}

.sidebar-foot {
	margin: 28px 10px 0;
	color: var(--muted);
	font-size: 12.5px;
}

/* Main */

.main {
	display: grid;
	grid-template-columns: minmax(0, 780px) 200px;
	justify-content: center;
	gap: 44px;
	padding: 44px 40px 96px;
	min-width: 0;
}

.page {
	min-width: 0;
}

.markdown {
	font-size: 16.5px;
}

.markdown > .block {
	display: contents;
}

.markdown > :first-child {
	margin-top: 0;
}

.markdown h1,
.markdown h2,
.markdown h3,
.markdown h4 {
	scroll-margin-top: 88px;
	line-height: 1.2;
	letter-spacing: -0.025em;
}

.markdown h1 {
	margin: 0 0 24px;
	font-size: clamp(2rem, 3.4vw, 2.65rem);
}

.markdown h2 {
	margin: 48px 0 16px;
	padding-bottom: 8px;
	border-bottom: 1px solid var(--border);
	font-size: 1.6rem;
}

.markdown h3 {
	margin: 34px 0 12px;
	font-size: 1.24rem;
}

.markdown h4 {
	margin: 28px 0 10px;
	font-size: 1.05rem;
}

.markdown p,
.markdown ul,
.markdown ol {
	margin: 0 0 18px;
}

.markdown li {
	margin: 6px 0;
}

.markdown li > p {
	margin: 0;
}

.markdown a {
	text-decoration: underline;
	text-decoration-color: color-mix(in srgb, var(--accent) 35%, transparent);
	text-underline-offset: 3px;
}

.markdown a:hover {
	text-decoration-color: var(--accent);
}

.markdown strong {
	font-weight: 650;
}

.markdown code {
	padding: 0.15em 0.36em;
	border: 1px solid var(--border);
	border-radius: 5px;
	background: var(--code-bg);
	font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
	font-size: 0.86em;
}

.markdown blockquote {
	margin: 22px 0;
	padding: 2px 0 2px 18px;
	border-left: 3px solid var(--accent);
	color: var(--muted);
}

.markdown blockquote p {
	margin: 0;
}

.markdown hr {
	margin: 40px 0;
	border: 0;
	border-top: 1px solid var(--border);
}

.markdown .hero {
	display: flex;
	justify-content: center;
	margin: 12px 0 32px;
}

.markdown .hero img {
	width: min(260px, 80%);
	height: auto;
}

.spans {
	display: inline;
}

.spans .s {
	display: inline;
}

/* Code blocks */

.code {
	margin: 0 0 20px;
	border: 1px solid var(--border);
	border-radius: 10px;
	background: var(--code-bg);
	overflow: hidden;
	box-shadow: var(--shadow);
}

.code-head {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 7px 12px 7px 14px;
	border-bottom: 1px solid var(--border);
	background: var(--surface-2);
}

.code-lang {
	color: var(--muted);
	font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
	font-size: 12px;
	letter-spacing: 0.02em;
}

.code-lang:empty {
	display: none;
}

.copy {
	margin-left: auto;
	padding: 2px 9px;
	border: 1px solid var(--border);
	border-radius: 6px;
	background: var(--surface);
	color: var(--muted);
	cursor: pointer;
	font-size: 12px;
}

.copy:hover {
	color: var(--accent);
	border-color: var(--accent);
}

.code pre {
	margin: 0;
	padding: 16px 18px;
	overflow-x: auto;
	font-size: 13.5px;
	line-height: 1.6;
}

.code pre code {
	padding: 0;
	border: 0;
	background: none;
	font-size: 1em;
	white-space: pre;
}

.code .chroma .err {
	color: inherit !important;
	background: transparent !important;
}

/* Tables */

.table-wrap {
	margin: 0 0 22px;
	overflow-x: auto;
	border: 1px solid var(--border);
	border-radius: 10px;
}

.markdown table {
	width: 100%;
	border-collapse: collapse;
	font-size: 15px;
}

.markdown th,
.markdown td {
	padding: 10px 14px;
	border-bottom: 1px solid var(--border);
	text-align: left;
	vertical-align: top;
}

.markdown th {
	background: var(--surface-2);
	font-size: 13px;
	font-weight: 650;
	letter-spacing: 0.02em;
}

.markdown tbody tr:last-child td {
	border-bottom: 0;
}

/* Pager */

.pager {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
	margin: 56px 0 0;
}

.pager-link {
	display: flex;
	flex-direction: column;
	gap: 3px;
	padding: 14px 16px;
	border: 1px solid var(--border);
	border-radius: 10px;
	background: var(--surface);
	color: var(--text);
	box-shadow: var(--shadow);
}

.pager-link:hover {
	border-color: var(--accent);
	text-decoration: none;
}

.pager-next {
	align-items: flex-end;
	text-align: right;
}

.pager-label {
	color: var(--muted);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.pager-link strong {
	font-size: 15px;
	font-weight: 600;
}

/* Page footer */

.page-foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: 48px;
	padding-top: 18px;
	border-top: 1px solid var(--border);
	color: var(--muted);
	font-size: 13px;
}

.page-foot a {
	color: var(--muted);
}

.page-foot a:hover {
	color: var(--accent);
}

/* On this page */

.toc {
	position: sticky;
	top: 64px;
	align-self: start;
	max-height: calc(100vh - 64px);
	overflow-y: auto;
	padding: 44px 0 40px;
	font-size: 13.5px;
}

.toc-title {
	margin: 0 0 10px;
	color: var(--muted);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.11em;
	text-transform: uppercase;
}

.toc ul {
	margin: 0;
	padding: 0;
	list-style: none;
	border-left: 1px solid var(--border);
}

.toc-item a {
	display: block;
	padding: 4px 0 4px 12px;
	color: var(--muted);
	line-height: 1.4;
}

.toc-item a:hover {
	color: var(--accent);
	text-decoration: none;
}

.toc-sub a {
	padding-left: 24px;
	font-size: 12.5px;
}

/* Narrow screens */

@media (max-width: 1180px) {
	.main {
		grid-template-columns: minmax(0, 780px);
	}

	.toc {
		display: none;
	}
}

@media (max-width: 900px) {
	.topbar {
		gap: 10px;
		padding: 0 14px;
	}

	.topbar-links {
		gap: 10px;
	}

	.nav-toggle {
		display: inline-flex;
	}

	.columns {
		display: block;
		padding: 0 20px;
	}

	.sidebar {
		position: fixed;
		top: 64px;
		left: 0;
		z-index: 25;
		width: min(320px, 86vw);
		height: calc(100vh - 64px);
		padding: 24px 18px 32px;
		border-right: 1px solid var(--border);
		background: var(--surface);
		transform: translateX(-105%);
		transition: transform 160ms ease;
	}

	body.nav-open .sidebar {
		transform: translateX(0);
	}

	body.nav-open::after {
		content: "";
		position: fixed;
		inset: 64px 0 0;
		z-index: 20;
		background: rgb(0 0 0 / 35%);
	}

	.main {
		padding: 28px 0 64px;
	}

	.brand-wordmark {
		width: 104px;
	}

	.pager {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 520px) {
	.brand-wordmark {
		width: 96px;
	}

	.brand-suffix {
		font-size: 17px;
	}

	.topbar-links a {
		display: none;
	}
}

@media print {
	.topbar,
	.sidebar,
	.toc,
	.pager,
	.page-foot {
		display: none;
	}

	.columns,
	.main {
		display: block;
		padding: 0;
	}
}
