:root {
	--sidebar-width: 272px;
	--page-width: 1040px;
	--bg: #f7f9fa;
	--surface: #ffffff;
	--surface-muted: #f0f4f3;
	--text: #202927;
	--muted: #67736f;
	--line: #dce4e1;
	--accent: #278a61;
	--accent-strong: #176d49;
	--sidebar: #25302e;
	--sidebar-line: #3a4743;
	--sidebar-text: #c1cbc7;
	--code-bg: #edf2f0;
	--code-block-bg: #ffffff;
	--code-block-line: #cbd5dc;
	--code-text: #17201e;
}

* {
	box-sizing: border-box;
}

html {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	font-variant-ligatures: none;
	scroll-behavior: smooth;
}

body {
	margin: 0;
	padding: 0;
	color: var(--text);
	background: var(--bg);
	font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 16px;
}

pre,
tt,
code,
.pre,
span.type,
a.type {
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
}

a,
a:link,
a:active {
	color: var(--accent);
	text-decoration: none;
	text-underline-offset: .18em;
}

a:hover,
a:focus-visible {
	color: var(--accent-strong);
	text-decoration: underline;
	outline: none;
}

strong {
	font-weight: 700;
}

#content {
	position: relative;
	min-height: 100vh;
}

#column1.interior {
	min-height: 100vh;
	margin-left: var(--sidebar-width);
	padding: 30px clamp(30px, 5vw, 76px) 72px;
	overflow-wrap: break-word;
}

#column1 > header,
#column1 > #toc,
#column1 > #apicontent {
	width: min(100%, var(--page-width));
	margin-right: auto;
	margin-left: auto;
}

#column1 > header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding-bottom: 18px;
	border-bottom: 1px solid var(--line);
}

header h1 {
	margin: 0;
	font: 650 15px/1.5 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	letter-spacing: -.01em;
	color: var(--muted);
}

#gtoc {
	font-size: 13px;
	white-space: nowrap;
}

#gtoc p {
	margin: 0;
}

#changelog #gtoc {
	display: none;
}

#apicontent {
	padding-top: 24px;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	position: relative;
	margin: 1.25em 0 .55em;
	color: var(--text);
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: -.025em;
	text-rendering: optimizeLegibility;
	scroll-margin-top: 20px;
}

#apicontent > h1:first-child,
#apicontent > h2:first-child {
	margin-top: 0;
}

h1 { font-size: 2.15rem; }
h2 { font-size: 1.62rem; }
h3 { font-size: 1.28rem; }
h4 { font-size: 1.08rem; }
h5 { font-size: .96rem; }
h6 { font-size: .86rem; }

#apicontent h2 {
	margin-top: 1.5em;
}

#apicontent h3 {
	margin-top: 1.05em;
}

h2,
h3,
h4,
h5 {
	padding-right: 34px;
}

h2 + h2,
h3 + h3 {
	margin-top: .7em;
}

h1 > span,
h2 > span,
h3 > span,
h4 > span {
	position: absolute;
	top: 0;
	right: 0;
}

span > .mark,
span > .mark:visited {
	display: inline-block;
	padding: 0 .2em;
	color: #a4afab;
	font-size: .78em;
	font-weight: 500;
	opacity: 0;
}

h1:hover .mark,
h2:hover .mark,
h3:hover .mark,
h4:hover .mark,
.mark:focus-visible {
	opacity: 1;
}

span > .mark:hover,
span > .mark:focus-visible,
span > .mark:active {
	color: var(--accent);
	text-decoration: none;
}

p {
	position: relative;
	margin: 0 0 1em;
	line-height: 1.72;
	text-rendering: optimizeLegibility;
}

ol,
ul,
dl {
	margin: 0 0 1em;
	padding: 0;
}

ul,
ol {
	margin-left: 1.55em;
}

li {
	margin: .28em 0;
	line-height: 1.65;
}

li > ul,
li > ol,
li > dl {
	margin-top: .3em;
	margin-bottom: .35em;
}

ul.plain {
	list-style: none;
}

dl dt {
	position: relative;
	margin: 1.4em 0 .35em;
	font-weight: 650;
}

dl dd {
	position: relative;
	margin: 0 0 0 1.25em;
	line-height: 1.65;
}

dd + dt.pre {
	margin-top: 1.5em;
}

blockquote {
	margin: 1.25em 0;
	padding: .8em 1.1em;
	border-left: 3px solid var(--accent);
	color: var(--muted);
	background: var(--surface-muted);
}

blockquote > :last-child {
	margin-bottom: 0;
}

tt,
code {
	padding: .12em .35em;
	border-radius: 4px;
	color: var(--code-text);
	background: var(--code-bg);
	font-size: .88em;
	line-height: 1.55;
}

a code {
	padding: 0;
	color: inherit;
	background: transparent;
}

pre {
	margin: 1.25em 0;
	padding: 18px 20px;
	overflow-x: auto;
	border: 1px solid var(--code-block-line);
	border-radius: 8px;
	color: var(--code-text);
	background: var(--code-block-bg);
	font-size: .9em;
	line-height: 1.65;
	vertical-align: top;
}

pre > code {
	padding: 0;
	color: inherit;
	background: transparent;
	font-size: 1em;
}

pre.api-signature {
	margin: .55em 0 1.1em;
	padding: 11px 14px;
	border-left: 3px solid var(--accent);
	border-radius: 5px;
	background: var(--surface-muted);
	white-space: pre-wrap;
	line-height: 1.55;
}

.api-signature .api-keyword {
	color: #315f89;
	font-weight: 650;
}

.api-signature .api-type {
	color: var(--accent);
	font-weight: 550;
}

.api-signature .api-type:hover,
.api-signature .api-type:focus-visible {
	color: var(--accent-strong);
}

pre.api-signature + h3 {
	margin-top: 1.15em;
}

pre + h3 {
	margin-top: 2em;
}

code.pre {
	white-space: pre;
}

.pre {
	font-size: 1em;
	line-height: 1.55;
}

.type {
	font-size: .9em;
	line-height: 1.5;
}

table {
	display: block;
	width: max-content;
	max-width: 100%;
	margin: 1.25em 0 1.6em;
	overflow-x: auto;
	border-collapse: collapse;
	border-spacing: 0;
	background: var(--surface);
}

th,
td {
	padding: .7em .9em;
	border: 1px solid var(--line);
	text-align: left;
	vertical-align: top;
}

th {
	background: var(--surface-muted);
	font-weight: 650;
}

th > :last-child,
td > :last-child {
	margin-bottom: 0;
}

abbr {
	border-bottom: 1px dotted currentColor;
}

hr,
.line {
	display: block;
	height: 1px;
	margin: 1.7em 0;
	padding: 0;
	border: 0;
	background: var(--line);
}

#apicontent .line {
	width: 100%;
	margin: 1.4em 0;
}

#apicontent > *:last-child {
	margin-bottom: 0;
}

#toc {
	margin-top: 24px;
	padding: 0;
	border: 1px solid var(--line);
	border-radius: 8px;
	background: var(--surface);
}

#toc summary {
	padding: 13px 16px;
	cursor: pointer;
	color: var(--muted);
	font: 650 13px/1.4 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	user-select: none;
}

#toc[open] summary {
	border-bottom: 1px solid var(--line);
}

#toc > ul {
	margin: 14px 18px 16px 34px;
	font-size: 14px;
}

#toc ul ul {
	margin-bottom: .2em;
	font-size: 1em;
}

#toc li {
	margin: .22em 0;
	line-height: 1.45;
}

#toc a {
	color: var(--muted);
}

#toc a:hover,
#toc a:focus-visible {
	color: var(--accent);
}

.api_stability {
	margin: 0 0 1em;
	padding: .55em .7em;
	border-radius: 5px;
	color: #fff !important;
	font-weight: 700;
}

.api_stability * {
	color: #fff !important;
}

.api_stability a {
	text-decoration: underline;
}

.api_stability_0 { background: #b4233c; }
.api_stability_1 { background: #c75220; }
.api_stability_2 { background: #278a61; }
.api_stability_3 { background: #237fa2; }

.api_metadata {
	margin-bottom: 1em;
	color: var(--muted);
	font-size: .82em;
}

.api_metadata span {
	margin-right: 1em;
}

.api_metadata span:last-child {
	margin-right: 0;
}

#column2.interior {
	position: fixed;
	top: 0;
	bottom: 0;
	left: 0;
	width: var(--sidebar-width);
	padding: 26px 18px 40px;
	overflow-x: hidden;
	overflow-y: auto;
	border-right: 1px solid var(--sidebar-line);
	color: var(--sidebar-text);
	background: var(--sidebar);
	scrollbar-color: #3c4945 transparent;
	scrollbar-width: thin;
}

#column2 h1 {
	margin: 0 8px 22px;
	padding: 0;
	color: #eef4f1;
	font-size: 22px;
	letter-spacing: -.03em;
}

#column2 h1 a {
	color: #eef4f1;
}

#column2 h1 span,
#column2 .mark {
	display: none;
}

#column2 ul {
	margin: 8px 0 20px;
	padding: 0;
	list-style: none;
}

#column2 ul li {
	margin: 1px 0;
	padding: 0;
	font-size: 13px;
	line-height: 1.35;
}

#column2 ul li a {
	display: block;
	padding: 7px 9px;
	border-radius: 5px;
	color: var(--sidebar-text);
	overflow-wrap: anywhere;
}

#column2 ul li a:hover,
#column2 ul li a:focus-visible {
	color: #f5faf7;
	text-decoration: none;
	background: #31403c;
}

#column2 ul li a.on,
#column2 ul li a.active {
	color: var(--accent);
	background: rgba(39, 138, 97, .15);
}

#column2 .line {
	margin: 18px 8px;
	background: var(--sidebar-line);
}

#intro {
	margin: 0 8px 18px;
}

#intro a {
	color: #eef4f1;
	font-weight: 700;
}

.clearfix::after {
	display: block;
	clear: both;
	content: "";
}

@media only screen and (max-width: 900px) {
	#column2.interior {
		display: none;
	}

	#column1.interior {
		margin-left: 0;
		padding: 22px clamp(18px, 5vw, 42px) 56px;
	}
}

@media only screen and (max-width: 620px) {
	body {
		font-size: 15px;
	}

	#column1 > header {
		align-items: flex-start;
		flex-direction: column;
		gap: 8px;
	}

	#gtoc {
		white-space: normal;
	}

	h1 { font-size: 1.85rem; }
	h2 { font-size: 1.45rem; }
	h3 { font-size: 1.2rem; }

	pre {
		margin-right: -8px;
		margin-left: -8px;
		padding: 15px;
		border-radius: 6px;
	}

	#toc > ul {
		margin-left: 28px;
	}
}

@media print {
	body {
		background: #fff;
	}

	#column2.interior,
	#toc,
	#gtoc {
		display: none;
	}

	#column1.interior {
		margin: 0;
		padding: 0;
	}

	a {
		color: inherit;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
}
