:root {
	--bg: #ffffff;
	--fg: #1f2328;
	--muted: #59636e;
	--line: #d1d9e0;
	--panel: #f6f8fa;
	--link: #0969da;
	--warn-bg: #fff8c5;
	--warn-line: #d4a72c;
	--greyed: #8c959f;
	--mark: #fff1b8;
	color-scheme: light dark;
}

@media (prefers-color-scheme: dark) {
	:root {
		--bg: #0d1117;
		--fg: #e6edf3;
		--muted: #9198a1;
		--line: #3d444d;
		--panel: #151b23;
		--link: #4493f8;
		--warn-bg: #2e2a1a;
		--warn-line: #9e6a03;
		--greyed: #656c76;
		--mark: #3b3220;
	}
}

* { box-sizing: border-box; }

body {
	margin: 0;
	background: var(--bg);
	color: var(--fg);
	font: 16px/1.5 -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
}

a { color: var(--link); text-decoration: none; }
a:hover { text-decoration: underline; }
code { font: 0.9em/1.4 Consolas, "Courier New", monospace; }

header.top {
	display: flex;
	gap: 16px;
	align-items: center;
	padding: 10px 16px;
	border-bottom: 1px solid var(--line);
	background: var(--panel);
}

header.top .site { font-weight: 600; color: var(--fg); white-space: nowrap; }

.search { position: relative; flex: 1; min-width: 0; max-width: 560px; margin-left: auto; }

@media (max-width: 600px) {
	header.top { flex-wrap: wrap; }
	.search { flex-basis: 100%; max-width: none; margin-left: 0; }
}
.search input {
	width: 100%;
	padding: 6px 10px;
	border: 1px solid var(--line);
	border-radius: 6px;
	background: var(--bg);
	color: var(--fg);
	font: inherit;
}
.search .results {
	position: absolute;
	z-index: 10;
	left: 0;
	right: 0;
	margin: 4px 0 0;
	padding: 0;
	list-style: none;
	max-height: 70vh;
	overflow-y: auto;
	background: var(--bg);
	border: 1px solid var(--line);
	border-radius: 6px;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
}
.search .results:empty { display: none; }
.search .results li a { display: block; padding: 6px 10px; color: var(--fg); overflow-wrap: anywhere; }
.search .results li.message { padding: 6px 10px; color: var(--muted); }
.search .results li a:hover, .search .results li a.active { background: var(--panel); text-decoration: none; }

nav.crumbs { padding: 10px 16px; color: var(--muted); font-size: 14px; overflow-wrap: anywhere; }
nav.crumbs .sep { margin: 0 4px; }

main { padding: 0 16px 32px; max-width: 1200px; }
h1 { font-size: 24px; margin: 8px 0 16px; overflow-wrap: anywhere; font-family: Consolas, "Courier New", monospace; }
h2 { font-size: 18px; margin: 28px 0 8px; padding-bottom: 4px; border-bottom: 1px solid var(--line); }
h3 { font-size: 17px; margin: 24px 0 6px; }
h4 { font-size: 15px; margin: 16px 0 4px; }

dl.facts { display: grid; grid-template-columns: max-content 1fr; gap: 4px 16px; margin: 0 0 16px; }
dl.facts dt { color: var(--muted); }
dl.facts dd { margin: 0; overflow-wrap: anywhere; }

ul.entries { margin: 0; padding-left: 20px; }
ul.entries li { overflow-wrap: anywhere; }
details summary { cursor: pointer; color: var(--link); }

.badge {
	font-size: 12px;
	color: var(--muted);
	border: 1px solid var(--line);
	border-radius: 10px;
	padding: 0 6px;
	white-space: nowrap;
}

.warn {
	background: var(--warn-bg);
	border-left: 4px solid var(--warn-line);
	padding: 8px 12px;
	margin: 0 0 8px;
}

pre.code {
	margin: 0;
	padding: 8px 0;
	overflow-x: auto;
	border: 1px solid var(--line);
	border-radius: 6px;
	background: var(--panel);
	font: 13px/1.45 Consolas, "Courier New", monospace;
	tab-size: 4;
}
pre.code .line { display: block; min-height: 1.45em; padding-right: 12px; }
pre.code.plain .line { padding-left: 12px; }
pre.code .ln {
	display: inline-block;
	min-width: 4.5em;
	padding: 0 12px 0 8px;
	text-align: right;
	color: var(--muted);
	user-select: none;
}
pre.code .line:target { background: var(--mark); }
pre.code .line.marked { background: var(--mark); }
pre.code .line.greyed, pre.code .line.greyed * { color: var(--greyed) !important; font-style: italic; }
pre.code .note {
	margin-left: 16px;
	padding: 0 6px;
	border-radius: 4px;
	background: var(--warn-line);
	color: #ffffff;
	font-family: -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
	font-size: 12px;
	user-select: none;
}
pre.code a { text-decoration: underline dotted; text-underline-offset: 3px; }
pre.code a.ln { text-decoration: none; }
pre.code a:hover { text-decoration: underline; }

table { border-collapse: collapse; margin: 8px 0 16px; display: block; overflow-x: auto; }
th, td { border: 1px solid var(--line); padding: 4px 8px; text-align: left; vertical-align: top; }

footer {
	padding: 16px;
	border-top: 1px solid var(--line);
	color: var(--muted);
	font-size: 13px;
}

pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.code .hll { background-color: #ffffcc }
.code { background: #ffffff; }
.code .c { color: #008000 } /* Comment */
.code .err { border: 1px solid #F00 } /* Error */
.code .k { color: #00F } /* Keyword */
.code .ch { color: #008000 } /* Comment.Hashbang */
.code .cm { color: #008000 } /* Comment.Multiline */
.code .cp { color: #00F } /* Comment.Preproc */
.code .cpf { color: #008000 } /* Comment.PreprocFile */
.code .c1 { color: #008000 } /* Comment.Single */
.code .cs { color: #008000 } /* Comment.Special */
.code .ge { font-style: italic } /* Generic.Emph */
.code .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */
.code .gh { font-weight: bold } /* Generic.Heading */
.code .gp { font-weight: bold } /* Generic.Prompt */
.code .gs { font-weight: bold } /* Generic.Strong */
.code .gu { font-weight: bold } /* Generic.Subheading */
.code .kc { color: #00F } /* Keyword.Constant */
.code .kd { color: #00F } /* Keyword.Declaration */
.code .kn { color: #00F } /* Keyword.Namespace */
.code .kp { color: #00F } /* Keyword.Pseudo */
.code .kr { color: #00F } /* Keyword.Reserved */
.code .kt { color: #2B91AF } /* Keyword.Type */
.code .s { color: #A31515 } /* Literal.String */
.code .nc { color: #2B91AF } /* Name.Class */
.code .ow { color: #00F } /* Operator.Word */
.code .sa { color: #A31515 } /* Literal.String.Affix */
.code .sb { color: #A31515 } /* Literal.String.Backtick */
.code .sc { color: #A31515 } /* Literal.String.Char */
.code .dl { color: #A31515 } /* Literal.String.Delimiter */
.code .sd { color: #A31515 } /* Literal.String.Doc */
.code .s2 { color: #A31515 } /* Literal.String.Double */
.code .se { color: #A31515 } /* Literal.String.Escape */
.code .sh { color: #A31515 } /* Literal.String.Heredoc */
.code .si { color: #A31515 } /* Literal.String.Interpol */
.code .sx { color: #A31515 } /* Literal.String.Other */
.code .sr { color: #A31515 } /* Literal.String.Regex */
.code .s1 { color: #A31515 } /* Literal.String.Single */
.code .ss { color: #A31515 } /* Literal.String.Symbol */
@media (prefers-color-scheme: dark) {
pre { line-height: 125%; }
td.linenos .normal { color: #6e7681; background-color: #0d1117; padding-left: 5px; padding-right: 5px; }
span.linenos { color: #6e7681; background-color: #0d1117; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #e6edf3; background-color: #6e7681; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #e6edf3; background-color: #6e7681; padding-left: 5px; padding-right: 5px; }
.code .hll { background-color: #6e7681 }
.code { background: #0d1117; color: #E6EDF3 }
.code .c { color: #8B949E; font-style: italic } /* Comment */
.code .err { color: #F85149 } /* Error */
.code .esc { color: #E6EDF3 } /* Escape */
.code .g { color: #E6EDF3 } /* Generic */
.code .k { color: #FF7B72 } /* Keyword */
.code .l { color: #A5D6FF } /* Literal */
.code .n { color: #E6EDF3 } /* Name */
.code .o { color: #FF7B72; font-weight: bold } /* Operator */
.code .x { color: #E6EDF3 } /* Other */
.code .p { color: #E6EDF3 } /* Punctuation */
.code .ch { color: #8B949E; font-style: italic } /* Comment.Hashbang */
.code .cm { color: #8B949E; font-style: italic } /* Comment.Multiline */
.code .cp { color: #8B949E; font-weight: bold; font-style: italic } /* Comment.Preproc */
.code .cpf { color: #8B949E; font-style: italic } /* Comment.PreprocFile */
.code .c1 { color: #8B949E; font-style: italic } /* Comment.Single */
.code .cs { color: #8B949E; font-weight: bold; font-style: italic } /* Comment.Special */
.code .gd { color: #FFA198; background-color: #490202 } /* Generic.Deleted */
.code .ge { color: #E6EDF3; font-style: italic } /* Generic.Emph */
.code .ges { color: #E6EDF3; font-weight: bold; font-style: italic } /* Generic.EmphStrong */
.code .gr { color: #FFA198 } /* Generic.Error */
.code .gh { color: #79C0FF; font-weight: bold } /* Generic.Heading */
.code .gi { color: #56D364; background-color: #0F5323 } /* Generic.Inserted */
.code .go { color: #8B949E } /* Generic.Output */
.code .gp { color: #8B949E } /* Generic.Prompt */
.code .gs { color: #E6EDF3; font-weight: bold } /* Generic.Strong */
.code .gu { color: #79C0FF } /* Generic.Subheading */
.code .gt { color: #FF7B72 } /* Generic.Traceback */
.code .g-Underline { color: #E6EDF3; text-decoration: underline } /* Generic.Underline */
.code .kc { color: #79C0FF } /* Keyword.Constant */
.code .kd { color: #FF7B72 } /* Keyword.Declaration */
.code .kn { color: #FF7B72 } /* Keyword.Namespace */
.code .kp { color: #79C0FF } /* Keyword.Pseudo */
.code .kr { color: #FF7B72 } /* Keyword.Reserved */
.code .kt { color: #FF7B72 } /* Keyword.Type */
.code .ld { color: #79C0FF } /* Literal.Date */
.code .m { color: #A5D6FF } /* Literal.Number */
.code .s { color: #A5D6FF } /* Literal.String */
.code .na { color: #E6EDF3 } /* Name.Attribute */
.code .nb { color: #E6EDF3 } /* Name.Builtin */
.code .nc { color: #F0883E; font-weight: bold } /* Name.Class */
.code .no { color: #79C0FF; font-weight: bold } /* Name.Constant */
.code .nd { color: #D2A8FF; font-weight: bold } /* Name.Decorator */
.code .ni { color: #FFA657 } /* Name.Entity */
.code .ne { color: #F0883E; font-weight: bold } /* Name.Exception */
.code .nf { color: #D2A8FF; font-weight: bold } /* Name.Function */
.code .nl { color: #79C0FF; font-weight: bold } /* Name.Label */
.code .nn { color: #FF7B72 } /* Name.Namespace */
.code .nx { color: #E6EDF3 } /* Name.Other */
.code .py { color: #79C0FF } /* Name.Property */
.code .nt { color: #7EE787 } /* Name.Tag */
.code .nv { color: #79C0FF } /* Name.Variable */
.code .ow { color: #FF7B72; font-weight: bold } /* Operator.Word */
.code .pm { color: #E6EDF3 } /* Punctuation.Marker */
.code .w { color: #6E7681 } /* Text.Whitespace */
.code .mb { color: #A5D6FF } /* Literal.Number.Bin */
.code .mf { color: #A5D6FF } /* Literal.Number.Float */
.code .mh { color: #A5D6FF } /* Literal.Number.Hex */
.code .mi { color: #A5D6FF } /* Literal.Number.Integer */
.code .mo { color: #A5D6FF } /* Literal.Number.Oct */
.code .sa { color: #79C0FF } /* Literal.String.Affix */
.code .sb { color: #A5D6FF } /* Literal.String.Backtick */
.code .sc { color: #A5D6FF } /* Literal.String.Char */
.code .dl { color: #79C0FF } /* Literal.String.Delimiter */
.code .sd { color: #A5D6FF } /* Literal.String.Doc */
.code .s2 { color: #A5D6FF } /* Literal.String.Double */
.code .se { color: #79C0FF } /* Literal.String.Escape */
.code .sh { color: #79C0FF } /* Literal.String.Heredoc */
.code .si { color: #A5D6FF } /* Literal.String.Interpol */
.code .sx { color: #A5D6FF } /* Literal.String.Other */
.code .sr { color: #79C0FF } /* Literal.String.Regex */
.code .s1 { color: #A5D6FF } /* Literal.String.Single */
.code .ss { color: #A5D6FF } /* Literal.String.Symbol */
.code .bp { color: #E6EDF3 } /* Name.Builtin.Pseudo */
.code .fm { color: #D2A8FF; font-weight: bold } /* Name.Function.Magic */
.code .vc { color: #79C0FF } /* Name.Variable.Class */
.code .vg { color: #79C0FF } /* Name.Variable.Global */
.code .vi { color: #79C0FF } /* Name.Variable.Instance */
.code .vm { color: #79C0FF } /* Name.Variable.Magic */
.code .il { color: #A5D6FF } /* Literal.Number.Integer.Long */
}
