body {
	margin: 0;
	font-family: Arial, sans-serif;
	background-color: #fff;
	line-height: 1.3;
	text-align: center;
	color: #222;
}
pre,
code {
	font-family: Menlo, monospace;
	font-size: 0.875rem;
}
pre {
	line-height: 1.4;
	overflow-x: auto;
}
pre .comment {
	color: #006600;
}
pre .highlight,
pre .highlight-comment,
pre .selection-highlight,
pre .selection-highlight-comment {
	background: #FFFF00;
}
pre .selection,
pre .selection-comment {
	background: #FF9632;
}
pre .ln {
	color: #999;
	background: #efefef;
}
.ln {
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;

	/* Ensure 8 characters in the document - which due to floating
   * point rendering issues, might have a width of less than 1 each - are 8
   * characters wide, so a tab in the 9th position indents properly. See
   * https://github.com/webcompat/web-bugs/issues/17530#issuecomment-402675091
   * for more information. */
	display: inline-block;
	width: 8ch;
}

.search-nav{
	margin-left: 1.25rem;
	font-size: 0.875rem;
	column-gap: 1.25rem;
	column-fill: auto;
	column-width: 14rem;
}

.search-nav .indent {
	margin-left: 1.25rem;
}

a,
.exampleHeading .text,
.expandAll {
	color: #375EAB;
	text-decoration: none;
}
a:hover,
.exampleHeading .text:hover,
.expandAll:hover {
	text-decoration: underline;
}
.article a {
	text-decoration: underline;
}
.article .title a {
	text-decoration: none;
}

.permalink {
	display: none;
}
:hover > .permalink {
	display: inline;
}

p, li {
	max-width: 50rem;
	word-wrap: break-word;
}
p,
pre,
ul,
ol {
	margin: 1.25rem;
}
pre {
	background: #EFEFEF;
	padding: 0.625rem;
	border-radius: 0.3125rem;
}

h1,
h2,
h3,
h4,
.rootHeading {
	margin: 1.25rem 0 1.25rem;
	padding: 0;
	color: #375EAB;
	font-weight: bold;
}
h1 {
	font-size: 1.75rem;
	line-height: 1;
}
h1 .text-muted {
	color:#777;
}
h2 {
	font-size: 1.25rem;
	background: #E0EBF5;
	padding: 0.5rem;
	line-height: 1.25;
	font-weight: normal;
	overflow: auto;
	overflow-wrap: break-word;
}
h2 a {
	font-weight: bold;
}
h3 {
	font-size: 1.25rem;
	line-height: 1.25;
	overflow: auto;
	overflow-wrap: break-word;
}
h3,
h4 {
	margin: 1.25rem 0.3125rem;
}
h4 {
	font-size: 1rem;
}
.rootHeading {
	font-size: 1.25rem;
	margin: 0;
}

h2 > span,
h3 > span {
	float: right;
	margin: 0 25px 0 0;
	font-weight: normal;
	color: #5279C7;
}

dl {
	margin: 1.25rem;
}
dd {
	margin: 0 0 0 1.25rem;
}
dl,
dd {
	font-size: 0.875rem;
}
div#nav table td {
	vertical-align: top;
}

#pkg-index h3 {
	font-size: 1rem;
}
.pkg-dir {
	padding: 0 0.625rem;
}
.pkg-dir table {
	border-collapse: collapse;
	border-spacing: 0;
}
.pkg-name {
	padding-right: 0.625rem;
}
.alert {
	color: #AA0000;
}

.top-heading {
	float: left;
	padding: 1.313rem 0;
	font-size: 1.25rem;
	font-weight: normal;
}
.top-heading a {
	color: #222;
	text-decoration: none;
}

#pkg-examples h3 {
	float: left;
}

#pkg-examples dl {
	clear: both;
}

.expandAll {
	cursor: pointer;
	float: left;
	margin: 1.25rem 0;
}

div#topbar {
	background: #E0EBF5;
	height: 4rem;
	overflow: hidden;
}

div#page {
	width: 100%;
}
div#page > .container,
div#topbar > .container {
	text-align: left;
	margin-left: auto;
	margin-right: auto;
	padding: 0 1.25rem;
}
div#topbar > .container,
div#page > .container {
	max-width: 59.38rem;
}
div#page.wide > .container,
div#topbar.wide > .container {
	max-width: none;
}
div#plusone {
	float: right;
	clear: right;
	margin-top: 0.3125rem;
}

div#footer {
	text-align: center;
	color: #666;
	font-size: 0.875rem;
	margin: 2.5rem 0;
}

div#menu > a,
input#search,
div#learn .buttons a,
div.play .buttons a,
div#blog .read a,
#menu-button {
	padding: 0.625rem;

	text-decoration: none;
	font-size: 1rem;
	border-radius: 0.3125rem;
}
div#playground .buttons a,
div#menu > a,
input#search,
#menu-button {
	border: 0.0625rem solid #375EAB;
}
div#playground .buttons a,
div#menu > a,
#menu-button {
	color: white;
	background: #375EAB;
}
#playgroundButton.active {
	background: white;
	color: #375EAB;
}
a#start,
div#learn .buttons a,
div.play .buttons a,
div#blog .read a {
	color: #222;
	border: 0.0625rem solid #375EAB;
	background: #E0EBF5;
}
.download {
	width: 9.375rem;
}

div#menu {
	text-align: right;
	padding: 0.625rem;
	white-space: nowrap;
	max-height: 0;
	-moz-transition: max-height .25s linear;
	transition: max-height .25s linear;
	width: 100%;
}
div#menu.menu-visible {
	max-height: 31.25rem;
}
div#menu > a,
#menu-button {
	margin: 0.625rem 0.125rem;
	padding: 0.625rem;
}
::-webkit-input-placeholder {
	color: #7f7f7f;
	opacity: 1;
}
::placeholder {
	color: #7f7f7f;
	opacity: 1;
}
#menu .search-box {
	display: inline-flex;
	width: 8.75rem;
}
input#search {
	background: white;
	color: #222;
	box-sizing: border-box;
	-webkit-appearance: none;
	border-top-right-radius: 0;
	border-bottom-right-radius: 0;
	border-right: 0;
	margin-right: 0;
	flex-grow: 1;
	max-width: 100%;
	min-width: 5.625rem;
}
input#search:-webkit-search-decoration {
	-webkit-appearance: none;
}
input#search:-moz-ui-invalid {
	box-shadow: unset;
}
input#search + button {
	display: inline;
	font-size: 1em;
	background-color: #375EAB;
	color: white;
	border: 0.0625rem solid #375EAB;
	border-top-left-radius: 0;
	border-top-right-radius: 0.3125rem;
	border-bottom-left-radius: 0;
	border-bottom-right-radius: 0.3125rem;
	margin-left: 0;
	cursor: pointer;
}
input#search + button span {
	display: flex;
}
input#search + button svg {
	fill: white
}

#menu-button {
	display: none;
	position: absolute;
	right: 0.3125rem;
	top: 0;
	margin-right: 0.3125rem;
}
#menu-button-arrow {
	display: inline-block;
}
.vertical-flip {
	transform: rotate(-180deg);
}

div.left {
	float: left;
	clear: left;
	margin-right: 2.5%;
}
div.right {
	float: right;
	clear: right;
	margin-left: 2.5%;
}
div.left,
div.right {
	width: 45%;
}

div#learn,
div#about {
	padding-top: 1.25rem;
}
div#learn h2,
div#about {
	margin: 0;
}
div#about {
	font-size: 1.25rem;
	margin: 0 auto 1.875rem;
}
div#gopher {
	background: url(/doc/gopher/frontpage.png) no-repeat;
	background-position: center top;
	height: 9.688rem;
	max-height: 200px; /* Setting in px to prevent the gopher from blowing up in very high default font-sizes */
}
a#start {
	display: block;
	padding: 0.625rem;

	text-align: center;
	text-decoration: none;
	border-radius: 0.3125rem;
}
a#start .big {
	display: block;
	font-weight: bold;
	font-size: 1.25rem;
}
a#start .desc {
	display: block;
	font-size: 0.875rem;
	font-weight: normal;
	margin-top: 0.3125rem;
}

div#learn .popout {
	float: right;
	display: block;
	cursor: pointer;
	font-size: 0.75rem;
	background: url(/doc/share.png) no-repeat;
	background-position: right center;
	padding: 0.375rem 1.688rem;
}
div#learn pre,
div#learn textarea {
	padding: 0;
	margin: 0;
	font-family: Menlo, monospace;
	font-size: 0.875rem;
}
div#learn .input {
	padding: 0.625rem;
	margin-top: 0.625rem;
	height: 9.375rem;

	border-top-left-radius: 0.3125rem;
	border-top-right-radius: 0.3125rem;
}
div#learn .input textarea {
	width: 100%;
	height: 100%;
	border: none;
	outline: none;
	resize: none;
}
div#learn .output {
	border-top: none !important;

	padding: 0.625rem;
	height: 3.688rem;
	overflow: auto;

	border-bottom-right-radius: 0.3125rem;
	border-bottom-left-radius: 0.3125rem;
}
div#learn .output pre {
	padding: 0;
	border-radius: 0;
}
div#learn .input,
div#learn .input textarea,
div#learn .output,
div#learn .output pre {
	background: #FFFFD8;
}
div#learn .input,
div#learn .output {
	border: 0.0625rem solid #375EAB;
}
div#learn .buttons {
	float: right;
	padding: 1.25rem 0 0.625rem 0;
	text-align: right;
}
div#learn .buttons a {
	height: 1rem;
	margin-left: 0.3125rem;
	padding: 0.625rem;
}
div#learn .toys {
	margin-top: 0.5rem;
}
div#learn .toys select {
	font-size: 0.875rem;
	border: 0.0625rem solid #375EAB;
	margin: 0;
}
div#learn .output .exit {
	display: none;
}

div#video {
	max-width: 100%;
}
div#blog,
div#video {
	margin-top: 2.5rem;
}
div#blog > a,
div#blog > div,
div#blog > h2,
div#video > a,
div#video > div,
div#video > h2 {
	margin-bottom: 0.625rem;
}
div#blog .title,
div#video .title {
	display: block;
	font-size: 1.25rem;
}
div#blog .when {
	color: #666;
	font-size: 0.875rem;
}
div#blog .read {
	text-align: right;
}

@supports (--c: 0) {
	[style*="--aspect-ratio-padding:"] {
		position: relative;
		overflow: hidden;
		padding-top: var(--aspect-ratio-padding);
	}

	[style*="--aspect-ratio-padding:"]>* {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
	}
}

.toggleButton { cursor: pointer; }
.toggle > .collapsed { display: block; }
.toggle > .expanded { display: none; }
.toggleVisible > .collapsed { display: none; }
.toggleVisible > .expanded { display: block; }

table.codetable { margin-left: auto; margin-right: auto; border-style: none; }
table.codetable td { padding-right: 0.625rem; }
hr { border-style: none; border-top: 0.0625rem solid black; }

img.gopher {
	float: right;
	margin-left: 0.625rem;
	margin-bottom: 0.625rem;
	z-index: -1;
}
h2 { clear: right; }

/* example and drop-down playground */
div.play {
	padding: 0 1.25rem 2.5rem 1.25rem;
}
div.play pre,
div.play textarea,
div.play .lines {
	padding: 0;
	margin: 0;
	font-family: Menlo, monospace;
	font-size: 0.875rem;
}
div.play .input {
	padding: 0.625rem;
	margin-top: 0.625rem;

	border-top-left-radius: 0.3125rem;
	border-top-right-radius: 0.3125rem;

	overflow: hidden;
}
div.play .input textarea {
	width: 100%;
	height: 100%;
	border: none;
	outline: none;
	resize: none;

	overflow: hidden;
}
div#playground .input textarea {
	overflow: auto;
	resize: auto;
}
div.play .output {
	border-top: none !important;

	padding: 0.625rem;
	max-height: 12.5rem;
	overflow: auto;

	border-bottom-right-radius: 0.3125rem;
	border-bottom-left-radius: 0.3125rem;
}
div.play .output pre {
	padding: 0;
	border-radius: 0;
}
div.play .input,
div.play .input textarea,
div.play .output,
div.play .output pre {
	background: #FFFFD8;
}
div.play .input,
div.play .output {
	border: 0.0625rem solid #375EAB;
}
div.play .buttons {
	float: right;
	padding: 1.25rem 0 0.625rem 0;
	text-align: right;
}
div.play .buttons a {
	height: 1rem;
	margin-left: 0.3125rem;
	padding: 0.625rem;
	cursor: pointer;
}
.output .stderr {
	color: #933;
}
.output .system {
	color: #999;
}

/* drop-down playground */
div#playground {
	/* start hidden; revealed by javascript */
	display: none;
}
div#playground {
	position: absolute;
	top: 3.938rem;
	right: 1.25rem;
	padding: 0 0.625rem 0.625rem 0.625rem;
	z-index: 1;
	text-align: left;
	background: #E0EBF5;

	border: 0.0625rem solid #B0BBC5;
	border-top: none;

	border-bottom-left-radius: 0.3125rem;
	border-bottom-right-radius: 0.3125rem;
}
div#playground .code {
	width: 32.5rem;
	height: 12.5rem;
}
div#playground .output {
	height: 6.25rem;
}

/* Inline runnable snippets (play.js/initPlayground) */
#content .code pre, #content .playground pre, #content .output pre {
        margin: 0;
        padding: 0;
        background: none;
        border: none;
	outline: 0 solid transparent;
        overflow: auto;
}
#content .playground .number, #content .code .number {
        color: #999;
}
#content .code, #content .playground, #content .output {
	width: auto;
        margin: 1.25rem;
        padding: 0.625rem;
        border-radius: 0.3125rem;
}
#content .code, #content .playground {
        background: #e9e9e9;
}
#content .output {
        background: #202020;
}
#content .output .stdout, #content .output pre {
        color: #e6e6e6;
}
#content .output .stderr, #content .output .error {
        color: rgb(244, 74, 63);
}
#content .output .system, #content .output .exit {
        color: rgb(255, 209, 77)
}
#content .buttons {
        position: relative;
        float: right;
        top: -3.125rem;
        right: 1.875rem;
}
#content .output .buttons {
        top: -3.75rem;
        right: 0;
        height: 0;
}
#content .buttons .kill {
        display: none;
        visibility: hidden;
}
a.error {
	font-weight: bold;
        color: white;
	background-color: darkred;
        border-bottom-left-radius: 0.25rem;
        border-bottom-right-radius: 0.25rem;
        border-top-left-radius: 0.25rem;
        border-top-right-radius: 0.25rem;
        padding: 0.125rem 0.25rem 0.125rem 0.25rem; /* TRBL */
}


#heading-narrow {
	display: none;
}

.downloading {
	background: #F9F9BE;
	padding: 0.625rem;
	text-align: center;
	border-radius: 0.3125rem;
}

@media (max-width: 58.125em) {
	#heading-wide {
		display: none;
	}
	#heading-narrow {
		display: block;
	}
}

@media (max-width: 47.5em) {
	.container .left,
	.container .right {
		width: auto;
		float: none;
	}

	div#about {
		max-width: 31.25rem;
		text-align: center;
	}
}

@media (min-width: 43.75em) and (max-width: 62.5em) {
	div#menu > a {
		margin: 0.3125rem 0;
		font-size: 0.875rem;
	}

	input#search {
		font-size: 0.875rem;
	}
}

@media (max-width: 43.75em) {
	body {
		font-size: 0.9375rem;
	}

	div#playground {
		left: 0;
		right: 0;
	}

	pre,
	code {
		font-size: 0.866rem;
	}

	div#page > .container {
		padding: 0 0.625rem;
	}

	div#topbar {
		height: auto;
		padding: 0.625rem;
	}

	div#topbar > .container {
		padding: 0;
	}

	#heading-wide {
		display: block;
	}
	#heading-narrow {
		display: none;
	}

	.top-heading {
		float: none;
		display: inline-block;
		padding: 0.75rem;
	}

	div#menu {
		padding: 0;
		min-width: 0;
		text-align: left;
		float: left;
	}

	div#menu > a {
		display: block;
		margin-left: 0;
		margin-right: 0;
	}

	#menu .search-box {
		display: flex;
		width: 100%;
	}

	#menu-button {
		display: inline-block;
	}

	p,
	pre,
	ul,
	ol {
		margin: 0.625rem;
	}

	.pkg-synopsis {
		display: none;
	}

	img.gopher {
		display: none;
	}
}

@media (max-width: 30em) {
	#heading-wide {
		display: none;
	}
	#heading-narrow {
		display: block;
	}
}

@media print {
	pre {
		background: #FFF;
		border: 0.0625rem solid #BBB;
		white-space: pre-wrap;
	}
}
