body {
	margin: 0;
	font-family: Arial, sans-serif;
	background-color: #fff;
	line-height: 1.3;
	text-align: center;
	color: #222;
}
textarea {
  /* Inherit text color from body avoiding illegible text in the case where the
   * user has inverted the browsers custom text and background colors. */
	color: inherit;
}
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;
	}
}
