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;
}

a,
.exampleHeading .text {
	color: #375EAB;
	text-decoration: none;
}
a:hover,
.exampleHeading .text: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;

	-webkit-border-radius: 0.3125rem;
	-moz-border-radius: 0.3125rem;
	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;
}
h2 a {
	font-weight: bold;
}
h3 {
	font-size: 1.25rem;
}
h3,
h4 {
	margin: 1.25rem 0.3125rem;
}
h4 {
	font-size: 1rem;
}
.rootHeading {
	font-size: 1.25rem;
	margin: 0;
}

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;
}

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;

	-webkit-border-radius: 0.3125rem;
	-moz-border-radius: 0.3125rem;
	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:-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;

	-webkit-border-radius: 0.3125rem;
	-moz-border-radius: 0.3125rem;
	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;

	-webkit-border-top-left-radius: 0.3125rem;
	-webkit-border-top-right-radius: 0.3125rem;
	-moz-border-radius-topleft: 0.3125rem;
	-moz-border-radius-topright: 0.3125rem;
	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;

	-webkit-border-bottom-right-radius: 0.3125rem;
	-webkit-border-bottom-left-radius: 0.3125rem;
	-moz-border-radius-bottomright: 0.3125rem;
	-moz-border-radius-bottomleft: 0.3125rem;
	border-bottom-right-radius: 0.3125rem;
	border-bottom-left-radius: 0.3125rem;
}
div#learn .output pre {
	padding: 0;

	-webkit-border-radius: 0;
	-moz-border-radius: 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;
}

.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;

	-webkit-border-top-left-radius: 0.3125rem;
	-webkit-border-top-right-radius: 0.3125rem;
	-moz-border-radius-topleft: 0.3125rem;
	-moz-border-radius-topright: 0.3125rem;
	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;

	-webkit-border-bottom-right-radius: 0.3125rem;
	-webkit-border-bottom-left-radius: 0.3125rem;
	-moz-border-radius-bottomright: 0.3125rem;
	-moz-border-radius-bottomleft: 0.3125rem;
	border-bottom-right-radius: 0.3125rem;
	border-bottom-left-radius: 0.3125rem;
}
div.play .output pre {
	padding: 0;

	-webkit-border-radius: 0;
	-moz-border-radius: 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 */
#playgroundButton,
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;

	-webkit-border-bottom-left-radius: 0.3125rem;
	-webkit-border-bottom-right-radius: 0.3125rem;
	-moz-border-radius-bottomleft: 0.3125rem;
	-moz-border-radius-bottomright: 0.3125rem;
	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;
        -webkit-border-radius: 0.3125rem;
        -moz-border-radius: 0.3125rem;
        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;
	}

	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;
	}
}
