:root { color-scheme: light; --line: color-mix(in srgb, var(--ink) 20%, var(--paper)); --paper: #fbf1c7; --ink: #654735; --surface: #f4e8be; --code: #f4e8be; --accent: #6c782e; --muted: #928374; }
:root code .hl-attribute { color: #945e80; }
:root code .hl-attribute-builtin { color: #b47109; }
:root code .hl-boolean { color: #945e80; }
:root code .hl-character { color: #4c7a5d; }
:root code .hl-character-special { color: #b47109; }
:root code .hl-comment { color: #928374; font-style: italic; }
:root code .hl-comment-documentation { color: #928374; font-style: italic; }
:root code .hl-comment-error { color: #fbf1c7; background-color: #c14a4a; font-weight: bold; }
:root code .hl-comment-hint { color: #928374; font-style: italic; }
:root code .hl-comment-note { color: #fbf1c7; background-color: #6c782e; font-weight: bold; }
:root code .hl-comment-todo { color: #fbf1c7; background-color: #45707a; font-weight: bold; }
:root code .hl-comment-warning { color: #fbf1c7; background-color: #b47109; font-weight: bold; }
:root code .hl-constant { color: #654735; }
:root code .hl-constant-builtin { color: #945e80; }
:root code .hl-constant-builtin-go { color: #4c7a5d; }
:root code .hl-constant-macro { color: #945e80; }
:root code .hl-constructor { color: #6c782e; }
:root code .hl-constructor-lua { color: #654735; }
:root code .hl-constructor-tsx { color: #b47109; }
:root code .hl-diff-delta { color: #45707a; }
:root code .hl-diff-minus { color: #c14a4a; }
:root code .hl-diff-plus { color: #6c782e; }
:root code .hl-error { color: #c14a4a; }
:root code .hl-function { color: #6c782e; }
:root code .hl-function-builtin { color: #6c782e; }
:root code .hl-function-call { color: #6c782e; }
:root code .hl-function-macro { color: #6c782e; }
:root code .hl-function-method { color: #6c782e; }
:root code .hl-function-method-call { color: #6c782e; }
:root code .hl-highlighted { background-color: #f4e8be; }
:root code .hl-keyword { color: #c14a4a; }
:root code .hl-keyword-conditional { color: #c14a4a; }
:root code .hl-keyword-conditional-ternary { color: #c14a4a; }
:root code .hl-keyword-coroutine { color: #c14a4a; }
:root code .hl-keyword-debug { color: #c35e0a; }
:root code .hl-keyword-directive { color: #945e80; }
:root code .hl-keyword-directive-define { color: #945e80; }
:root code .hl-keyword-exception { color: #c14a4a; }
:root code .hl-keyword-export { color: #c14a4a; }
:root code .hl-keyword-function { color: #c14a4a; }
:root code .hl-keyword-import { color: #c14a4a; }
:root code .hl-keyword-modifier { color: #c14a4a; }
:root code .hl-keyword-operator { color: #c35e0a; }
:root code .hl-keyword-repeat { color: #c14a4a; }
:root code .hl-keyword-return { color: #c14a4a; }
:root code .hl-keyword-type { color: #c14a4a; }
:root code .hl-label { color: #c35e0a; }
:root code .hl-markup { color: #b47109; }
:root code .hl-markup-environment { color: #4c7a5d; }
:root code .hl-markup-environment-name { color: #b47109; }
:root code .hl-markup-heading { color: #c35e0a; font-weight: bold; }
:root code .hl-markup-heading-1 { color: #c35e0a; font-weight: bold; }
:root code .hl-markup-heading-1-markdown { color: #c14a4a; font-weight: bold; }
:root code .hl-markup-heading-2 { color: #c35e0a; font-weight: bold; }
:root code .hl-markup-heading-3 { color: #c35e0a; font-weight: bold; }
:root code .hl-markup-heading-3-markdown { color: #b47109; font-weight: bold; }
:root code .hl-markup-heading-4 { color: #c35e0a; font-weight: bold; }
:root code .hl-markup-heading-4-markdown { color: #6c782e; font-weight: bold; }
:root code .hl-markup-heading-5 { color: #c35e0a; font-weight: bold; }
:root code .hl-markup-heading-5-markdown { color: #45707a; font-weight: bold; }
:root code .hl-markup-heading-6 { color: #c35e0a; font-weight: bold; }
:root code .hl-markup-heading-6-markdown { color: #945e80; font-weight: bold; }
:root code .hl-markup-italic { font-style: italic; }
:root code .hl-markup-link { color: #4c7a5d; }
:root code .hl-markup-link-label { color: #b47109; }
:root code .hl-markup-link-url { color: #45707a; text-decoration: underline; }
:root code .hl-markup-list { color: #45707a; }
:root code .hl-markup-list-checked { color: #6c782e; }
:root code .hl-markup-list-unchecked { color: #928374; }
:root code .hl-markup-math { color: #45707a; }
:root code .hl-markup-quote { color: #928374; }
:root code .hl-markup-raw { color: #6c782e; }
:root code .hl-markup-raw-block { color: #6c782e; }
:root code .hl-markup-strikethrough { text-decoration: line-through; }
:root code .hl-markup-strong { font-weight: bold; }
:root code .hl-markup-underline { text-decoration: underline; }
:root code .hl-module { color: #b47109; }
:root code .hl-module-builtin { color: #b47109; }
:root code .hl-module-go { color: #654735; }
:root code .hl-namespace { color: #b47109; }
:root code .hl-namespace-go { color: #654735; }
:root code .hl-number { color: #945e80; }
:root code .hl-number-float { color: #945e80; }
:root code .hl-operator { color: #c35e0a; }
:root code .hl-property { color: #45707a; }
:root code .hl-punctuation-bracket { color: #654735; }
:root code .hl-punctuation-bracket-rainbow-1 { color: #c14a4a; }
:root code .hl-punctuation-bracket-rainbow-2 { color: #b47109; }
:root code .hl-punctuation-bracket-rainbow-3 { color: #45707a; }
:root code .hl-punctuation-bracket-rainbow-4 { color: #c35e0a; }
:root code .hl-punctuation-bracket-rainbow-5 { color: #6c782e; }
:root code .hl-punctuation-bracket-rainbow-6 { color: #945e80; }
:root code .hl-punctuation-delimiter { color: #928374; }
:root code .hl-punctuation-special { color: #45707a; }
:root code .hl-punctuation-special-tsx { color: #c35e0a; }
:root code .hl-punctuation-special-typescript { color: #c35e0a; }
:root code .hl-string { color: #4c7a5d; }
:root code .hl-string-documentation { color: #4c7a5d; }
:root code .hl-string-escape { color: #6c782e; }
:root code .hl-string-regex { color: #6c782e; }
:root code .hl-string-regexp { color: #6c782e; }
:root code .hl-string-special { color: #b47109; }
:root code .hl-string-special-path { color: #b47109; }
:root code .hl-string-special-symbol { color: #654735; }
:root code .hl-string-special-url { text-decoration: underline; }
:root code .hl-tag { color: #c35e0a; }
:root code .hl-tag-attribute { color: #6c782e; }
:root code .hl-tag-builtin { color: #b47109; }
:root code .hl-tag-delimiter { color: #6c782e; }
:root code .hl-type { color: #b47109; }
:root code .hl-type-builtin { color: #b47109; }
:root code .hl-type-definition { color: #b47109; }
:root code .hl-variable { color: #654735; }
:root code .hl-variable-builtin { color: #945e80; }
:root code .hl-variable-member { color: #45707a; }
:root code .hl-variable-parameter { color: #654735; }
:root code .hl-variable-parameter-builtin { color: #b47109; }

@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) { color-scheme: dark; --line: color-mix(in srgb, var(--ink) 20%, var(--paper)); --paper: #282828; --ink: #d4be98; --surface: #32302f; --code: #32302f; --accent: #a9b665; --muted: #928374; }
:root:not([data-theme="light"]) code .hl-attribute { color: #d3869b; }
:root:not([data-theme="light"]) code .hl-attribute-builtin { color: #d8a657; }
:root:not([data-theme="light"]) code .hl-boolean { color: #d3869b; }
:root:not([data-theme="light"]) code .hl-character { color: #89b482; }
:root:not([data-theme="light"]) code .hl-character-special { color: #d8a657; }
:root:not([data-theme="light"]) code .hl-comment { color: #928374; font-style: italic; }
:root:not([data-theme="light"]) code .hl-comment-documentation { color: #928374; font-style: italic; }
:root:not([data-theme="light"]) code .hl-comment-error { color: #282828; background-color: #ea6962; font-weight: bold; }
:root:not([data-theme="light"]) code .hl-comment-hint { color: #928374; font-style: italic; }
:root:not([data-theme="light"]) code .hl-comment-note { color: #282828; background-color: #a9b665; font-weight: bold; }
:root:not([data-theme="light"]) code .hl-comment-todo { color: #282828; background-color: #7daea3; font-weight: bold; }
:root:not([data-theme="light"]) code .hl-comment-warning { color: #282828; background-color: #d8a657; font-weight: bold; }
:root:not([data-theme="light"]) code .hl-constant { color: #d4be98; }
:root:not([data-theme="light"]) code .hl-constant-builtin { color: #d3869b; }
:root:not([data-theme="light"]) code .hl-constant-builtin-go { color: #89b482; }
:root:not([data-theme="light"]) code .hl-constant-macro { color: #d3869b; }
:root:not([data-theme="light"]) code .hl-constructor { color: #a9b665; }
:root:not([data-theme="light"]) code .hl-constructor-lua { color: #d4be98; }
:root:not([data-theme="light"]) code .hl-constructor-tsx { color: #d8a657; }
:root:not([data-theme="light"]) code .hl-diff-delta { color: #7daea3; }
:root:not([data-theme="light"]) code .hl-diff-minus { color: #ea6962; }
:root:not([data-theme="light"]) code .hl-diff-plus { color: #a9b665; }
:root:not([data-theme="light"]) code .hl-error { color: #ea6962; }
:root:not([data-theme="light"]) code .hl-function { color: #a9b665; }
:root:not([data-theme="light"]) code .hl-function-builtin { color: #a9b665; }
:root:not([data-theme="light"]) code .hl-function-call { color: #a9b665; }
:root:not([data-theme="light"]) code .hl-function-macro { color: #a9b665; }
:root:not([data-theme="light"]) code .hl-function-method { color: #a9b665; }
:root:not([data-theme="light"]) code .hl-function-method-call { color: #a9b665; }
:root:not([data-theme="light"]) code .hl-highlighted { background-color: #32302f; }
:root:not([data-theme="light"]) code .hl-keyword { color: #ea6962; }
:root:not([data-theme="light"]) code .hl-keyword-conditional { color: #ea6962; }
:root:not([data-theme="light"]) code .hl-keyword-conditional-ternary { color: #ea6962; }
:root:not([data-theme="light"]) code .hl-keyword-coroutine { color: #ea6962; }
:root:not([data-theme="light"]) code .hl-keyword-debug { color: #e78a4e; }
:root:not([data-theme="light"]) code .hl-keyword-directive { color: #d3869b; }
:root:not([data-theme="light"]) code .hl-keyword-directive-define { color: #d3869b; }
:root:not([data-theme="light"]) code .hl-keyword-exception { color: #ea6962; }
:root:not([data-theme="light"]) code .hl-keyword-export { color: #ea6962; }
:root:not([data-theme="light"]) code .hl-keyword-function { color: #ea6962; }
:root:not([data-theme="light"]) code .hl-keyword-import { color: #ea6962; }
:root:not([data-theme="light"]) code .hl-keyword-modifier { color: #ea6962; }
:root:not([data-theme="light"]) code .hl-keyword-operator { color: #e78a4e; }
:root:not([data-theme="light"]) code .hl-keyword-repeat { color: #ea6962; }
:root:not([data-theme="light"]) code .hl-keyword-return { color: #ea6962; }
:root:not([data-theme="light"]) code .hl-keyword-type { color: #ea6962; }
:root:not([data-theme="light"]) code .hl-label { color: #e78a4e; }
:root:not([data-theme="light"]) code .hl-markup { color: #d8a657; }
:root:not([data-theme="light"]) code .hl-markup-environment { color: #89b482; }
:root:not([data-theme="light"]) code .hl-markup-environment-name { color: #d8a657; }
:root:not([data-theme="light"]) code .hl-markup-heading { color: #e78a4e; font-weight: bold; }
:root:not([data-theme="light"]) code .hl-markup-heading-1 { color: #e78a4e; font-weight: bold; }
:root:not([data-theme="light"]) code .hl-markup-heading-1-markdown { color: #ea6962; font-weight: bold; }
:root:not([data-theme="light"]) code .hl-markup-heading-2 { color: #e78a4e; font-weight: bold; }
:root:not([data-theme="light"]) code .hl-markup-heading-3 { color: #e78a4e; font-weight: bold; }
:root:not([data-theme="light"]) code .hl-markup-heading-3-markdown { color: #d8a657; font-weight: bold; }
:root:not([data-theme="light"]) code .hl-markup-heading-4 { color: #e78a4e; font-weight: bold; }
:root:not([data-theme="light"]) code .hl-markup-heading-4-markdown { color: #a9b665; font-weight: bold; }
:root:not([data-theme="light"]) code .hl-markup-heading-5 { color: #e78a4e; font-weight: bold; }
:root:not([data-theme="light"]) code .hl-markup-heading-5-markdown { color: #7daea3; font-weight: bold; }
:root:not([data-theme="light"]) code .hl-markup-heading-6 { color: #e78a4e; font-weight: bold; }
:root:not([data-theme="light"]) code .hl-markup-heading-6-markdown { color: #d3869b; font-weight: bold; }
:root:not([data-theme="light"]) code .hl-markup-italic { font-style: italic; }
:root:not([data-theme="light"]) code .hl-markup-link { color: #89b482; }
:root:not([data-theme="light"]) code .hl-markup-link-label { color: #d8a657; }
:root:not([data-theme="light"]) code .hl-markup-link-url { color: #7daea3; text-decoration: underline; }
:root:not([data-theme="light"]) code .hl-markup-list { color: #7daea3; }
:root:not([data-theme="light"]) code .hl-markup-list-checked { color: #a9b665; }
:root:not([data-theme="light"]) code .hl-markup-list-unchecked { color: #928374; }
:root:not([data-theme="light"]) code .hl-markup-math { color: #7daea3; }
:root:not([data-theme="light"]) code .hl-markup-quote { color: #928374; }
:root:not([data-theme="light"]) code .hl-markup-raw { color: #a9b665; }
:root:not([data-theme="light"]) code .hl-markup-raw-block { color: #a9b665; }
:root:not([data-theme="light"]) code .hl-markup-strikethrough { text-decoration: line-through; }
:root:not([data-theme="light"]) code .hl-markup-strong { font-weight: bold; }
:root:not([data-theme="light"]) code .hl-markup-underline { text-decoration: underline; }
:root:not([data-theme="light"]) code .hl-module { color: #d8a657; }
:root:not([data-theme="light"]) code .hl-module-builtin { color: #d8a657; }
:root:not([data-theme="light"]) code .hl-module-go { color: #d4be98; }
:root:not([data-theme="light"]) code .hl-namespace { color: #d8a657; }
:root:not([data-theme="light"]) code .hl-namespace-go { color: #d4be98; }
:root:not([data-theme="light"]) code .hl-number { color: #d3869b; }
:root:not([data-theme="light"]) code .hl-number-float { color: #d3869b; }
:root:not([data-theme="light"]) code .hl-operator { color: #e78a4e; }
:root:not([data-theme="light"]) code .hl-property { color: #7daea3; }
:root:not([data-theme="light"]) code .hl-punctuation-bracket { color: #d4be98; }
:root:not([data-theme="light"]) code .hl-punctuation-bracket-rainbow-1 { color: #ea6962; }
:root:not([data-theme="light"]) code .hl-punctuation-bracket-rainbow-2 { color: #d8a657; }
:root:not([data-theme="light"]) code .hl-punctuation-bracket-rainbow-3 { color: #7daea3; }
:root:not([data-theme="light"]) code .hl-punctuation-bracket-rainbow-4 { color: #e78a4e; }
:root:not([data-theme="light"]) code .hl-punctuation-bracket-rainbow-5 { color: #a9b665; }
:root:not([data-theme="light"]) code .hl-punctuation-bracket-rainbow-6 { color: #d3869b; }
:root:not([data-theme="light"]) code .hl-punctuation-delimiter { color: #928374; }
:root:not([data-theme="light"]) code .hl-punctuation-special { color: #7daea3; }
:root:not([data-theme="light"]) code .hl-punctuation-special-tsx { color: #e78a4e; }
:root:not([data-theme="light"]) code .hl-punctuation-special-typescript { color: #e78a4e; }
:root:not([data-theme="light"]) code .hl-string { color: #89b482; }
:root:not([data-theme="light"]) code .hl-string-documentation { color: #89b482; }
:root:not([data-theme="light"]) code .hl-string-escape { color: #a9b665; }
:root:not([data-theme="light"]) code .hl-string-regex { color: #a9b665; }
:root:not([data-theme="light"]) code .hl-string-regexp { color: #a9b665; }
:root:not([data-theme="light"]) code .hl-string-special { color: #d8a657; }
:root:not([data-theme="light"]) code .hl-string-special-path { color: #d8a657; }
:root:not([data-theme="light"]) code .hl-string-special-symbol { color: #d4be98; }
:root:not([data-theme="light"]) code .hl-string-special-url { text-decoration: underline; }
:root:not([data-theme="light"]) code .hl-tag { color: #e78a4e; }
:root:not([data-theme="light"]) code .hl-tag-attribute { color: #a9b665; }
:root:not([data-theme="light"]) code .hl-tag-builtin { color: #d8a657; }
:root:not([data-theme="light"]) code .hl-tag-delimiter { color: #a9b665; }
:root:not([data-theme="light"]) code .hl-type { color: #d8a657; }
:root:not([data-theme="light"]) code .hl-type-builtin { color: #d8a657; }
:root:not([data-theme="light"]) code .hl-type-definition { color: #d8a657; }
:root:not([data-theme="light"]) code .hl-variable { color: #d4be98; }
:root:not([data-theme="light"]) code .hl-variable-builtin { color: #d3869b; }
:root:not([data-theme="light"]) code .hl-variable-member { color: #7daea3; }
:root:not([data-theme="light"]) code .hl-variable-parameter { color: #d4be98; }
:root:not([data-theme="light"]) code .hl-variable-parameter-builtin { color: #d8a657; }

}
:root[data-theme="dark"] { color-scheme: dark; --line: color-mix(in srgb, var(--ink) 20%, var(--paper)); --paper: #282828; --ink: #d4be98; --surface: #32302f; --code: #32302f; --accent: #a9b665; --muted: #928374; }
:root[data-theme="dark"] code .hl-attribute { color: #d3869b; }
:root[data-theme="dark"] code .hl-attribute-builtin { color: #d8a657; }
:root[data-theme="dark"] code .hl-boolean { color: #d3869b; }
:root[data-theme="dark"] code .hl-character { color: #89b482; }
:root[data-theme="dark"] code .hl-character-special { color: #d8a657; }
:root[data-theme="dark"] code .hl-comment { color: #928374; font-style: italic; }
:root[data-theme="dark"] code .hl-comment-documentation { color: #928374; font-style: italic; }
:root[data-theme="dark"] code .hl-comment-error { color: #282828; background-color: #ea6962; font-weight: bold; }
:root[data-theme="dark"] code .hl-comment-hint { color: #928374; font-style: italic; }
:root[data-theme="dark"] code .hl-comment-note { color: #282828; background-color: #a9b665; font-weight: bold; }
:root[data-theme="dark"] code .hl-comment-todo { color: #282828; background-color: #7daea3; font-weight: bold; }
:root[data-theme="dark"] code .hl-comment-warning { color: #282828; background-color: #d8a657; font-weight: bold; }
:root[data-theme="dark"] code .hl-constant { color: #d4be98; }
:root[data-theme="dark"] code .hl-constant-builtin { color: #d3869b; }
:root[data-theme="dark"] code .hl-constant-builtin-go { color: #89b482; }
:root[data-theme="dark"] code .hl-constant-macro { color: #d3869b; }
:root[data-theme="dark"] code .hl-constructor { color: #a9b665; }
:root[data-theme="dark"] code .hl-constructor-lua { color: #d4be98; }
:root[data-theme="dark"] code .hl-constructor-tsx { color: #d8a657; }
:root[data-theme="dark"] code .hl-diff-delta { color: #7daea3; }
:root[data-theme="dark"] code .hl-diff-minus { color: #ea6962; }
:root[data-theme="dark"] code .hl-diff-plus { color: #a9b665; }
:root[data-theme="dark"] code .hl-error { color: #ea6962; }
:root[data-theme="dark"] code .hl-function { color: #a9b665; }
:root[data-theme="dark"] code .hl-function-builtin { color: #a9b665; }
:root[data-theme="dark"] code .hl-function-call { color: #a9b665; }
:root[data-theme="dark"] code .hl-function-macro { color: #a9b665; }
:root[data-theme="dark"] code .hl-function-method { color: #a9b665; }
:root[data-theme="dark"] code .hl-function-method-call { color: #a9b665; }
:root[data-theme="dark"] code .hl-highlighted { background-color: #32302f; }
:root[data-theme="dark"] code .hl-keyword { color: #ea6962; }
:root[data-theme="dark"] code .hl-keyword-conditional { color: #ea6962; }
:root[data-theme="dark"] code .hl-keyword-conditional-ternary { color: #ea6962; }
:root[data-theme="dark"] code .hl-keyword-coroutine { color: #ea6962; }
:root[data-theme="dark"] code .hl-keyword-debug { color: #e78a4e; }
:root[data-theme="dark"] code .hl-keyword-directive { color: #d3869b; }
:root[data-theme="dark"] code .hl-keyword-directive-define { color: #d3869b; }
:root[data-theme="dark"] code .hl-keyword-exception { color: #ea6962; }
:root[data-theme="dark"] code .hl-keyword-export { color: #ea6962; }
:root[data-theme="dark"] code .hl-keyword-function { color: #ea6962; }
:root[data-theme="dark"] code .hl-keyword-import { color: #ea6962; }
:root[data-theme="dark"] code .hl-keyword-modifier { color: #ea6962; }
:root[data-theme="dark"] code .hl-keyword-operator { color: #e78a4e; }
:root[data-theme="dark"] code .hl-keyword-repeat { color: #ea6962; }
:root[data-theme="dark"] code .hl-keyword-return { color: #ea6962; }
:root[data-theme="dark"] code .hl-keyword-type { color: #ea6962; }
:root[data-theme="dark"] code .hl-label { color: #e78a4e; }
:root[data-theme="dark"] code .hl-markup { color: #d8a657; }
:root[data-theme="dark"] code .hl-markup-environment { color: #89b482; }
:root[data-theme="dark"] code .hl-markup-environment-name { color: #d8a657; }
:root[data-theme="dark"] code .hl-markup-heading { color: #e78a4e; font-weight: bold; }
:root[data-theme="dark"] code .hl-markup-heading-1 { color: #e78a4e; font-weight: bold; }
:root[data-theme="dark"] code .hl-markup-heading-1-markdown { color: #ea6962; font-weight: bold; }
:root[data-theme="dark"] code .hl-markup-heading-2 { color: #e78a4e; font-weight: bold; }
:root[data-theme="dark"] code .hl-markup-heading-3 { color: #e78a4e; font-weight: bold; }
:root[data-theme="dark"] code .hl-markup-heading-3-markdown { color: #d8a657; font-weight: bold; }
:root[data-theme="dark"] code .hl-markup-heading-4 { color: #e78a4e; font-weight: bold; }
:root[data-theme="dark"] code .hl-markup-heading-4-markdown { color: #a9b665; font-weight: bold; }
:root[data-theme="dark"] code .hl-markup-heading-5 { color: #e78a4e; font-weight: bold; }
:root[data-theme="dark"] code .hl-markup-heading-5-markdown { color: #7daea3; font-weight: bold; }
:root[data-theme="dark"] code .hl-markup-heading-6 { color: #e78a4e; font-weight: bold; }
:root[data-theme="dark"] code .hl-markup-heading-6-markdown { color: #d3869b; font-weight: bold; }
:root[data-theme="dark"] code .hl-markup-italic { font-style: italic; }
:root[data-theme="dark"] code .hl-markup-link { color: #89b482; }
:root[data-theme="dark"] code .hl-markup-link-label { color: #d8a657; }
:root[data-theme="dark"] code .hl-markup-link-url { color: #7daea3; text-decoration: underline; }
:root[data-theme="dark"] code .hl-markup-list { color: #7daea3; }
:root[data-theme="dark"] code .hl-markup-list-checked { color: #a9b665; }
:root[data-theme="dark"] code .hl-markup-list-unchecked { color: #928374; }
:root[data-theme="dark"] code .hl-markup-math { color: #7daea3; }
:root[data-theme="dark"] code .hl-markup-quote { color: #928374; }
:root[data-theme="dark"] code .hl-markup-raw { color: #a9b665; }
:root[data-theme="dark"] code .hl-markup-raw-block { color: #a9b665; }
:root[data-theme="dark"] code .hl-markup-strikethrough { text-decoration: line-through; }
:root[data-theme="dark"] code .hl-markup-strong { font-weight: bold; }
:root[data-theme="dark"] code .hl-markup-underline { text-decoration: underline; }
:root[data-theme="dark"] code .hl-module { color: #d8a657; }
:root[data-theme="dark"] code .hl-module-builtin { color: #d8a657; }
:root[data-theme="dark"] code .hl-module-go { color: #d4be98; }
:root[data-theme="dark"] code .hl-namespace { color: #d8a657; }
:root[data-theme="dark"] code .hl-namespace-go { color: #d4be98; }
:root[data-theme="dark"] code .hl-number { color: #d3869b; }
:root[data-theme="dark"] code .hl-number-float { color: #d3869b; }
:root[data-theme="dark"] code .hl-operator { color: #e78a4e; }
:root[data-theme="dark"] code .hl-property { color: #7daea3; }
:root[data-theme="dark"] code .hl-punctuation-bracket { color: #d4be98; }
:root[data-theme="dark"] code .hl-punctuation-bracket-rainbow-1 { color: #ea6962; }
:root[data-theme="dark"] code .hl-punctuation-bracket-rainbow-2 { color: #d8a657; }
:root[data-theme="dark"] code .hl-punctuation-bracket-rainbow-3 { color: #7daea3; }
:root[data-theme="dark"] code .hl-punctuation-bracket-rainbow-4 { color: #e78a4e; }
:root[data-theme="dark"] code .hl-punctuation-bracket-rainbow-5 { color: #a9b665; }
:root[data-theme="dark"] code .hl-punctuation-bracket-rainbow-6 { color: #d3869b; }
:root[data-theme="dark"] code .hl-punctuation-delimiter { color: #928374; }
:root[data-theme="dark"] code .hl-punctuation-special { color: #7daea3; }
:root[data-theme="dark"] code .hl-punctuation-special-tsx { color: #e78a4e; }
:root[data-theme="dark"] code .hl-punctuation-special-typescript { color: #e78a4e; }
:root[data-theme="dark"] code .hl-string { color: #89b482; }
:root[data-theme="dark"] code .hl-string-documentation { color: #89b482; }
:root[data-theme="dark"] code .hl-string-escape { color: #a9b665; }
:root[data-theme="dark"] code .hl-string-regex { color: #a9b665; }
:root[data-theme="dark"] code .hl-string-regexp { color: #a9b665; }
:root[data-theme="dark"] code .hl-string-special { color: #d8a657; }
:root[data-theme="dark"] code .hl-string-special-path { color: #d8a657; }
:root[data-theme="dark"] code .hl-string-special-symbol { color: #d4be98; }
:root[data-theme="dark"] code .hl-string-special-url { text-decoration: underline; }
:root[data-theme="dark"] code .hl-tag { color: #e78a4e; }
:root[data-theme="dark"] code .hl-tag-attribute { color: #a9b665; }
:root[data-theme="dark"] code .hl-tag-builtin { color: #d8a657; }
:root[data-theme="dark"] code .hl-tag-delimiter { color: #a9b665; }
:root[data-theme="dark"] code .hl-type { color: #d8a657; }
:root[data-theme="dark"] code .hl-type-builtin { color: #d8a657; }
:root[data-theme="dark"] code .hl-type-definition { color: #d8a657; }
:root[data-theme="dark"] code .hl-variable { color: #d4be98; }
:root[data-theme="dark"] code .hl-variable-builtin { color: #d3869b; }
:root[data-theme="dark"] code .hl-variable-member { color: #7daea3; }
:root[data-theme="dark"] code .hl-variable-parameter { color: #d4be98; }
:root[data-theme="dark"] code .hl-variable-parameter-builtin { color: #d8a657; }

@font-face { font-family: "JetBrains Mono"; src: url("vendor/jetbrains-mono.woff2") format("woff2"); font-style: normal; font-weight: 400; font-display: swap; }
:root { --font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
* { box-sizing: border-box; }
html { scroll-padding-top: 2rem; }
body { margin: 0; background: var(--paper); color: var(--ink); }
a { color: var(--accent); text-decoration-thickness: 1px; text-underline-offset: .18em; }
a:hover { text-decoration-thickness: 2px; }
button, summary { cursor: pointer; }
button, aside, .page-links {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
button {
  border: 1px solid var(--line); border-radius: .4rem; padding: .5rem .8rem;
  background: var(--paper); color: var(--ink); font-size: .85rem;
}
button:hover { background: var(--surface); }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
::selection { background: var(--accent); color: var(--paper); }
.shell { display: grid; grid-template-columns: 17rem minmax(0, 1fr); margin: 0; }
aside {
  position: sticky; top: 0; height: 100dvh; overflow: auto;
  padding: 2.5rem 1.5rem; border-right: 1px solid var(--line);
}
.brand { display: block; line-height: 1.2; font-size: 1.7rem; font-weight: 750; text-decoration: none; letter-spacing: -.05em; }
.brand span { display: block; margin-top: .5rem; color: var(--muted); font-size: .8rem; font-weight: 400; letter-spacing: 0; }
.contents { margin-top: 1.5rem; }
.contents summary { font-size: .75rem; font-weight: 650; color: var(--muted); margin-bottom: 1rem; }
nav { display: grid; gap: .25rem; }
.nav-group { grid-column: 1 / -1; color: var(--ink); font-size: .85rem; font-weight: 650; margin: 1.25rem 0 .35rem; }
nav a {
  display: flex; gap: .65rem; padding: .6rem .65rem; margin-left: -.65rem;
  text-decoration: none; color: var(--muted); font-size: .85rem; line-height: 1.5;
  border-radius: .4rem;
}
nav a:hover, nav a[aria-current] { background: var(--surface); color: var(--accent); }
nav .number { font-variant-numeric: tabular-nums; opacity: .75; font-size: .75rem; padding-top: .1rem; }
.file-link { text-decoration: none; }
.file-link:hover code { text-decoration: underline; }
.edit-link { margin-top: 3rem; font-size: .85rem; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
#theme { display: block; margin-top: 1.25rem; }
.reading { --content-width: 46rem; min-width: 0; padding: 0 clamp(1.5rem, 5vw, 6rem); }
[hidden] { display: none !important; }
.sidebar-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: .5rem; }
#nav-toggle, #nav-reopen { border: 0; padding: .35rem; color: var(--muted); }
#nav-toggle { margin: 0; width: 2rem; height: 2rem; display: flex; align-items: center; justify-content: center; }
#nav-reopen { display: none; position: fixed; top: .75rem; left: .75rem; z-index: 70; }
body.nav-hidden #nav-reopen { display: flex; }
body.nav-hidden .shell { grid-template-columns: minmax(0, 1fr); }
body.nav-hidden .shell > aside { display: none; }
.course-controller { height: 0; overflow: hidden; }
.shell > aside { display: flex; flex-direction: column; overflow: hidden; }
.contents { flex: 1; min-height: 0; overflow: auto; }
.sidebar-footer { padding-top: .75rem; border-top: 1px solid var(--line); }
.sidebar-section h2 { margin: 0 0 .35rem; font: 600 .7rem/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: var(--muted); letter-spacing: 0; }
.sidebar-section a, .sidebar-section button { display: block; width: 100%; margin: 0; padding: .25rem .4rem; border: 0; border-radius: .25rem; background: none; color: var(--ink); text-align: left; font-size: .8rem; text-decoration: none; }
.sidebar-section a:hover, .sidebar-section button:hover { background: var(--surface); color: var(--accent); }
.sidebar-tools { display: flex; gap: .5rem; margin-top: .5rem; }
.sidebar-tools button { display: flex; align-items: center; justify-content: center; width: 2rem; height: 2rem; padding: .3rem; border: 0; background: none; color: var(--muted); }
.sidebar-tools #theme { margin: 0; }
#nav-dismiss { display: none; }
.side-status:empty { display: none; }
.side-status { font-size: .75rem; }
.save-warning { flex-basis: 100%; font-size: .7rem; }
.editor-settings-dialog, .course-help-dialog { width: min(32rem, calc(100vw - 2rem)); max-height: 85dvh; overflow: auto; padding: 1.5rem; border: 1px solid var(--line); border-radius: .5rem; background: var(--paper); color: var(--ink); font: .9rem/1.6 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
dialog::backdrop { background: rgb(0 0 0 / .35); }
.editor-settings-dialog > h2, .course-help-dialog > h2 { margin: 0 3rem 1rem 0; font-size: 1.2rem; }
.editor-settings-dialog > button:first-of-type, .course-help-dialog > button:first-of-type { position: absolute; right: .75rem; top: .75rem; }
.editor-keys { display: flex; gap: 1rem; border: 0; padding: 0; margin: 1.5rem 0 0; }
.editor-keys legend { margin-bottom: .5rem; color: var(--muted); }
.editor-keys label { display: flex; align-items: center; gap: .35rem; cursor: pointer; }
.editor-keys input { margin: 0; accent-color: var(--accent); }
.code-block { position: relative; min-width: 0; max-width: 100%; }
.code-block > pre { max-width: 100%; }
.code-block .code-expand { position: absolute; top: .35rem; right: .35rem; padding: .15rem .35rem; opacity: 0; font-size: .85rem; z-index: 1; }
.code-block:hover .code-expand, .code-block:focus-within .code-expand { opacity: 1; }
.prose pre code { white-space: pre-wrap; overflow-wrap: anywhere; }
.prose ul:has(> li > .exercise) { padding-left: 0; }
.prose li:has(> .exercise) { list-style: none; padding: 0; margin: 1.5rem 0; }
.exercise {
  border: 1px solid var(--line); border-radius: .4rem; overflow: hidden;
  margin: .65rem 0 1.5rem; font: .85rem/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.exercise-header { display: flex; align-items: center; flex-wrap: wrap; gap: .6rem; padding: .55rem .7rem; border-bottom: 1px solid var(--line); background: var(--surface); }
.exercise-header > code { background: none; padding: 0; font-size: .85rem; }
.exercise-header > button { margin-left: 0; padding: .25rem .45rem; font-size: .7rem; }
.exercise-header > button:first-of-type { margin-left: auto; }
.exercise-status { color: var(--muted); font-size: .7rem; }
.method-editor .cm-editor { min-height: 5rem; text-align: left; }
.method-editor .cm-scroller { overflow: auto; }
.exercise-feedback:empty { display: none; }
.exercise-feedback { padding: .5rem .75rem; border-top: 1px solid var(--line); max-height: 18rem; overflow: auto; }
.exercise-feedback > button { padding: .2rem .4rem; font-size: .75rem; }
.exercise-hint { padding: .5rem .75rem; margin: 0; color: var(--muted); }
.chapter-checks { margin: 1rem 0; font: .85rem/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.chapter-checks p { margin: .5rem 0; }
.test-summary { margin: .25rem 0 .5rem; font-weight: 600; }
.test-row { border-top: 1px solid var(--line); padding: .35rem 0; font-size: .8rem; }
.test-row summary { overflow-wrap: anywhere; }
.test-row > code { display: block; padding: .35rem 0; background: none; color: var(--muted); font-size: .7rem; }
.test-row pre { white-space: pre-wrap; max-height: 14rem; overflow: auto; font-size: .75rem; padding: .5rem; margin: .4rem 0; }
.test-passed > summary { color: var(--accent); }
.test-failed > summary, .test-error > summary { color: #c65a52; }
.test-progress { display: block; color: var(--accent); margin-left: auto; font-size: .65rem; white-space: nowrap; }
body.workspace-open .shell { margin-right: var(--workspace-width, 44vw); margin-left: 0; max-width: none; }
body.workspace-open .reading { padding-inline: clamp(1rem, 3vw, 3rem); }
.workspace-pane {
  position: fixed; right: 0; top: 0; bottom: 0; width: var(--workspace-width, 44vw);
  max-width: 100vw; min-width: 360px; z-index: 55; background: var(--paper);
  border-left: 1px solid var(--line); display: flex; flex-direction: column;
  color: var(--ink); font: .8rem/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.workspace-pane button { font-size: .75rem; padding: .3rem .5rem; }
.workspace-resize { position: absolute; left: -4px; top: 0; bottom: 0; width: 8px; cursor: col-resize; touch-action: none; z-index: 1; }
.workspace-resize:hover, .workspace-resize:focus-visible { background: var(--accent); opacity: .5; }
.workspace-header { display: flex; align-items: center; gap: .5rem; padding: .65rem 1rem; border-bottom: 1px solid var(--line); }
.workspace-header > code { margin-right: auto; background: none; padding: 0; font: .8rem/1.5 var(--font-mono); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.workspace-header > span { color: var(--muted); font-size: .7rem; }
.workspace-header > button { display: flex; align-items: center; justify-content: center; padding: .35rem; border: 0; }
.workspace-body { display: grid; grid-template-columns: 14rem minmax(0, 1fr); flex: 1; min-height: 0; transition: grid-template-columns .16s ease; }
.workspace-body.files-hidden { grid-template-columns: 0 minmax(0, 1fr); }
.workspace-body.files-hidden .file-tree { visibility: hidden; opacity: 0; padding-inline: 0; border: 0; }
@media (prefers-reduced-motion: reduce) { .workspace-body { transition: none; } }
.file-tree { min-height: 0; overflow: hidden; display: flex; flex-direction: column; border-right: 1px solid var(--line); padding: .65rem .5rem; font-family: var(--font-mono); }
.checks-status { margin: .2rem 0 .6rem; color: var(--muted); font-size: .75rem; }
.file-tree .tree-root { flex: 1; min-height: 0; overflow: auto; }
.tree-actions { display: flex; gap: .4rem; padding-top: .6rem; border-top: 1px solid var(--line); }
.file-tree ul, .file-tree li { list-style: none; margin: 0; padding: 0; }
.file-tree .tree-children { margin: 0 0 .4rem; padding-left: 1rem; }
.tree-folder-label { display: block; color: var(--ink); padding: .2rem .4rem; font: .75rem/1.5 var(--font-mono); }
.file-tree .tree-file { font-family: inherit; display: block; width: 100%; text-align: left; border: 0; border-radius: .2rem; padding: .2rem .4rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: .72rem; }
.tree-file[aria-current="true"] { background: var(--surface); color: var(--accent); }
.file-area { display: flex; flex-direction: column; min-width: 0; min-height: 0; }
.full-editor { flex: 1; min-height: 0; overflow: hidden; }
.full-editor .cm-editor { height: 100%; min-height: 0; border: 0; }
.full-editor .cm-scroller { overflow: auto; }
.workspace-console { height: 30dvh; min-height: 10rem; display: flex; flex-direction: column; border-top: 1px solid var(--line); }
.console-actions, .console-tabs { display: flex; align-items: center; gap: .4rem; padding: .4rem .65rem; }
.console-actions { border-bottom: 1px solid var(--line); }
.console-actions:has(> button[hidden]) { display: none; }
.console-tabs { padding-bottom: 0; }
.console-tabs button { border: 0; border-bottom: 2px solid transparent; border-radius: 0; }
.console-tabs button[aria-selected="true"] { border-bottom-color: var(--accent); }
.console-panel { flex: 1; min-height: 0; overflow: auto; padding: .5rem .8rem; margin: 0; }
.console-panel p { margin: .35rem 0; }
.console-panel .problem-row { font-family: var(--font-mono); display: block; text-align: left; width: 100%; border: 0; padding: .4rem 0; font-size: .75rem; }
.program-output { font: .75rem/1.5 var(--font-mono); white-space: pre-wrap; overflow-wrap: anywhere; }
body.workspace-full .shell { visibility: hidden; }
body.workspace-full #nav-toggle, body.workspace-full #nav-reopen { display: none; }
body.workspace-full .workspace-pane { width: 100vw; border-left: 0; }
body.workspace-full .workspace-resize { display: none; }
.local-only { border: 1px solid var(--line); padding: .6rem .9rem; margin: 1.5rem 0; border-radius: .3rem; }
.local-only > summary { color: var(--muted); font: .85rem/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
@media (max-width: 899px) {
  #nav-reopen { z-index: 70; top: 0; left: 0; width: 100%; min-height: 44px; padding: .5rem 1.25rem; align-items: center; gap: .25rem; border-bottom: 1px solid var(--line); border-radius: 0; background: var(--paper); }
  .workspace-pane { min-width: 0; }
  .workspace-body { grid-template-columns: 11rem minmax(0, 1fr); }
  .workspace-console { height: 28dvh; min-height: 8rem; }
  .workspace-header { padding: .35rem .6rem; }
  .workspace-header button, .tree-actions button { min-height: 44px; }
  .full-editor .cm-editor, .method-editor .cm-editor { font-size: 16px !important; }
  .file-tree .tree-file { min-height: 36px; font-size: .8rem; }
  .code-block .code-expand { opacity: 1; }
  .exercise-header { gap: .4rem; }
}
.prose { min-width: 0; padding-top: 2.5rem;
  max-width: var(--content-width); margin: 3.5rem auto 4rem; font: 1.2rem/1.8 Georgia, "Times New Roman", serif;
  overflow-wrap: break-word;
}
h1, h2, h3, h4 {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.25; font-weight: 650; letter-spacing: -.03em; text-wrap: balance;
}
h1 { font-size: clamp(2rem, 4vw, 2.8rem); margin: 0 0 2rem; }
h2 { font-size: 1.55rem; margin-top: 2.8rem; }
h3 { font-size: 1.2rem; margin-top: 2rem; }
p, ul, ol { margin: 1.2rem 0; }
li { padding-left: .25rem; margin: .45rem 0; }
blockquote {
  margin: 1.5rem 0; padding: .1rem 1.25rem; border-left: 3px solid var(--accent);
  background: var(--surface); font-size: 1.05rem;
}
code {
  font: .82em/1.6 var(--font-mono);
  background: var(--code); padding: .15em .35em; border-radius: .25rem;
  overflow-wrap: anywhere;
}
pre {
  margin: 1.5rem 0; padding: 1.25rem; overflow: auto; border: 1px solid var(--line);
  border-radius: .5rem; background: var(--code); font-size: .9rem; line-height: 1.65;
  tab-size: 4;
}
pre code { padding: 0; background: none; font-size: inherit; overflow-wrap: normal; }
pre.highlight { font-family: var(--font-mono); }
.api-term { color: inherit; text-decoration: underline dotted; text-underline-offset: .2em; }
.api-term:hover, .api-term:focus-visible { color: inherit; }
.api-tooltip {
  position: fixed; z-index: 10;
  width: fit-content; min-width: min(20rem, calc(100vw - 16px));
  max-width: min(34rem, calc(100vw - 16px)); max-height: calc(100dvh - 16px);
  overflow: hidden; border: 1px solid var(--line); border-radius: .5rem;
  background: var(--surface); color: var(--ink); box-shadow: 0 .4rem 1.5rem #0003;
  font: .9rem/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  overflow-wrap: anywhere;
}
.api-tooltip:not([hidden]) { display: flex; flex-direction: column; }
.api-tooltip[data-view="source"] {
  width: min(48rem, calc(100vw - 16px)); min-width: 0;
  max-width: min(48rem, calc(100vw - 16px));
}
.api-tooltip [hidden] { display: none; }
.api-tooltip-header, .api-tooltip-controls {
  display: flex; align-items: center; justify-content: space-between; gap: .75rem;
  flex: none; padding: .6rem .8rem;
}
.api-tooltip-header { padding-bottom: .25rem; }
.api-tooltip-header strong { min-width: 0; }
.api-tooltip-header button { padding: .1rem .5rem; font-size: 1.1rem; }
.api-tooltip-controls { border-bottom: 1px solid var(--line); }
.api-tooltip [role="tablist"] { display: flex; gap: .25rem; }
.api-tooltip [role="tab"] { padding: .25rem .6rem; }
.api-tooltip [role="tab"][aria-selected="true"] {
  background: var(--paper); color: var(--accent); border-color: var(--accent);
}
.api-tooltip-controls > a { font-size: .75rem; }
.api-tooltip-body { display: flex; min-height: 0; overflow: hidden; }
.api-tooltip [role="tabpanel"] {
  min-width: 0; width: 100%; max-height: 40rem; padding: .8rem;
  overflow: auto; overscroll-behavior: contain; scrollbar-gutter: stable;
}
.api-tooltip [role="tabpanel"]:focus-visible { outline-offset: -3px; }
.api-tooltip p { margin: .5rem 0; }
.api-tooltip h1, .api-tooltip h2, .api-tooltip h3, .api-tooltip h4 {
  margin: 1rem 0 .5rem; font-size: 1rem;
}
.api-tooltip ul, .api-tooltip ol { margin: .5rem 0; padding-left: 1.5rem; }
.api-tooltip pre {
  margin: .75rem 0; padding: .65rem; font-size: .8rem;
  white-space: pre; overflow-wrap: normal;
}
.api-tooltip [role="tabpanel"][data-view="source"] { padding: 0; }
.api-tooltip [role="tabpanel"][data-view="source"] pre {
  width: max-content; min-width: 100%; margin: 0; padding: .8rem;
  border: 0; border-radius: 0; overflow: visible;
}
table { display: block; overflow-x: auto; border-collapse: collapse; width: 100%; font-size: .9rem; }
th, td { border-bottom: 1px solid var(--line); padding: .75rem; text-align: left; vertical-align: top; }
th { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.page-links { max-width: var(--content-width); margin: 2rem auto; display: flex; gap: 2rem; justify-content: space-between; border-top: 1px solid var(--line); padding-top: 1.5rem; }
.page-links a { max-width: 48%; font-size: .75rem; text-decoration: none; }
.page-links a span { display: block; font-size: .95rem; margin-top: .4rem; }
.skip-link { position: absolute; left: 1rem; top: -5rem; padding: .75rem; background: var(--paper); z-index: 1; }
.skip-link:focus { top: 1rem; }
@media (min-width: 761px) { .contents summary { list-style: none; } }
@media (max-width: 899px) {
  .shell { display: block; }
  .shell > aside { position: fixed; inset: 0 auto 0 0; z-index: 90; width: min(17rem, 85vw); height: 100dvh; padding: 1.5rem; background: var(--paper); }
  body:not(.nav-hidden) #nav-dismiss { display: block; position: fixed; inset: 0 0 0 min(17rem, 85vw); z-index: 85; border: 0; border-radius: 0; background: rgb(0 0 0 / .35); }
  .brand { font-size: 1.4rem; }
  .contents { margin-top: 1.25rem; }
  .contents summary { margin-bottom: .5rem; }
  .reading { padding-inline: 1.25rem; }
  .prose { font-size: 1.1rem; margin-top: 4.5rem; padding-top: 1rem; }
}
