body {
  margin: 0;
  font-family: Roboto, Arial, sans-serif;
  background-color: #fff;
  line-height: 1.3;
  text-align: center;
  color: #3e4042;
}
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 {
  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: #007d9c;
  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 {
  margin: 1.25rem 0 1.25rem;
  padding: 0;
  color: #202224;
  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;
}

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

#pkg-examples h3 {
  float: left;
}

#pkg-examples dl {
  clear: both;
}

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

#page {
  width: 100%;
}
#page > .container,
.Header-nav {
  text-align: left;
  margin-left: auto;
  margin-right: auto;
  padding: 0 1.25rem;
}
#page > .container,
.Header-nav {
  max-width: 59.38rem;
}
#page.wide > .container,
.Header-nav--wide {
  max-width: none;
}
div#footer {
  text-align: center;
  color: #666;
  font-size: 0.875rem;
  margin: 2.5rem 0;
}

div#playground .buttons a {
  background: #375eab;
  border: 0.0625rem solid #757575;
  color: white;
}
.download {
  width: 9.375rem;
}

::-webkit-input-placeholder {
  color: #7f7f7f;
  opacity: 1;
}
::placeholder {
  color: #7f7f7f;
  opacity: 1;
}

.Header {
  align-items: center;
  display: flex;
  font-size: 0.875rem;
  justify-content: space-between;
  padding: 1.375rem 0;
}
.Header.is-active {
  background-color: #f7f9fa;
}
.Header-logo {
  height: 2rem;
  width: 5.125rem;
}
.Header-nav {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  width: 100%;
}
.Header-menuButton {
  background-color: transparent;
  border: none;
  box-sizing: content-box;
  cursor: pointer;
  display: inline-block;
  height: 1.313rem;
  padding: 0.375rem;
  position: relative;
  vertical-align: middle;
  width: 1.313rem;
}
.Header-menuButtonInner {
  position: relative;
}
.Header-menuButton::after,
.Header-menuButtonInner,
.Header-menuButtonInner::before,
.Header-menuButtonInner::after {
  background-color: #3e4042;
  height: 0.1875rem;
  transition: all 100ms ease-in;
}
.Header-menuButton::after {
  opacity: 0;
  top: 0.9375rem;
}
.Header-menuButton::after,
.Header-menuButtonInner::before,
.Header-menuButtonInner::after {
  content: '';
  display: block;
  position: absolute;
  width: 1.313rem;
}
.Header-menuButtonInner::before {
  top: -0.375rem;
}
.Header-menuButtonInner::after {
  bottom: -0.375rem;
}
.Header.is-active .Header-menuButton::after {
  opacity: 1;
  transform: rotate(-45deg);
}
.Header.is-active .Header-menuButton .Header-menuButtonInner {
  transform: rotate(45deg);
}
.Header.is-active .Header-menuButton .Header-menuButtonInner::before,
.Header.is-active .Header-menuButton .Header-menuButtonInner::after {
  background-color: transparent;
}
.Header-menu {
  align-items: center;
  display: none;
  flex-direction: column;
  list-style: none;
  margin: 0;
  padding: 0;
  width: 100%;
}
.Header.is-active .Header-menu {
  display: flex;
}
.Header-menuItem {
  display: inline-flex;
}
.Header-menuItem:not(:last-of-type) {
  margin: 0 0 1rem 0;
}
.Header-menuItem,
.Header-menuItem a:link,
.Header-menuItem a:visited {
  color: #3e4042;
}
.HeaderSearch,
.HeaderSearch-label {
  display: inline-block;
  position: relative;
}
.Header-menuItem--search,
.HeaderSearch {
  width: 100%;
}
.HeaderSearch {
  border: 0.0625rem solid #979797;
  border-radius: 0.1875rem;
  display: inline-flex;
  overflow: hidden;
  position: relative;
}
.HeaderSearch-input {
  -webkit-appearance: none;
  border: none;
  border-radius: 0;
  box-sizing: border-box;
  display: block;
  flex: 1;
  font: inherit;
  font-size: 16px; /* Prevents automatic zoom on mobile devices */
  margin: 0;
  padding: 0.5rem;
}
.HeaderSearch-input::-webkit-search-decoration {
  -webkit-appearance: none;
}
.HeaderSearch-input::-moz-ui-invalid {
  box-shadow: unset;
}
.HeaderSearch-submit {
  background-color: #fff;
  border: none;
  box-sizing: border-box;
  cursor: pointer;
  margin: 0;
  padding: 0.125rem 0.5rem 0 0.55rem;
  transition: background-color 200ms;
}
.HeaderSearch:focus-within .HeaderSearch-submit {
  background-color: #e5f6fb;
}
.HeaderSearch-icon {
  fill: #757575;
  transition: fill 200ms;
}
.HeaderSearch:focus-within .HeaderSearch-icon {
  fill: #007d9c;
}
@media only screen and (min-width: 53.13rem) {
  .Header.is-active {
    background-color: #fff;
  }
  .Header.is-active .Header-menu {
    display: block;
  }
  .Header-menuButton {
    display: none;
  }
  .Header-menu {
    display: flex;
    flex-direction: row;
    width: auto;
  }
  .Header-menuItem:not(:last-of-type) {
    margin: 0 3rem 0 0;
  }
  .Header-menuItem a:hover,
  .Header-menuItem a:focus {
    text-decoration: underline;
  }
  .Header-menuItem--search,
  .HeaderSearch {
    width: 8.75rem;
  }
  .HeaderSearch-input {
    min-width: 5.625rem;
  }
  .HeaderSearch-submit {
    padding: 0.125rem 0.5rem 0;
  }
}
@media only screen and (min-width: 57.5rem) {
  .Header {
    font-size: 1rem;
  }
}

.Button,
.Button:link,
.Button:visited {
  align-items: center;
  background-color: #f7f9fa;
  border: none;
  border-radius: 0.1875rem;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
  box-sizing: border-box;
  color: #007d9c;
  cursor: pointer;
  display: inline-flex;
  font: bold 0.875rem Roboto, sans-serif;
  height: 2.375rem;
  padding: 0 0.625rem;
  justify-content: center;
  min-width: 4.063rem;
  text-decoration: none;
}
.Button:active {
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}
.Button--primary,
.Button--primary:link,
.Button--primary:visited {
  border: 0.0625rem solid #00add8;
}
.Button--big,
.Button--big:link,
.Button--big:visited {
  background-color: #7fd5ea;
  border-radius: 0.3125rem;
  color: #202224;
  font-size: 1.5rem;
  height: 4rem;
  justify-content: center;
}

.HomeContainer {
  align-items: top;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.HomeContainer * {
  box-sizing: border-box;
}

.HomeSection {
  flex: 0 0 100%;
  margin-bottom: 2.5rem;
  padding: 0 1rem;
}
.HomeSection-header {
  background: none;
  color: #202224;
  margin: 0 0 0.625rem 0;
  padding: 0;
  font-weight: bold;
}

.Hero-header {
  font-size: 1.5rem;
  font-weight: normal;
  line-height: inherit;
  margin: 0 0 1.875rem;
}
.Hero-gopher {
  background: url('/lib/godoc/images/home-gopher.png') no-repeat;
  background-position: center top;
  display: block;
  height: 9.688rem;
  max-height: 200px; /* Setting in px to prevent the gopher from blowing up in very high default font-sizes */
}
.HeroDownloadButton,
.Hero-description {
  text-align: center;
}
.HeroDownloadButton,
.HeroDownloadButton:link,
.HeroDownloadButton:visited {
  display: flex;
  margin-bottom: 0.5rem;
}
.HeroDownloadButton-image {
  height: 2rem;
  margin-right: 2rem;
  width: 2rem;
}
.Hero-description {
  color: #616161;
  font-size: 0.875rem;
  margin: 0;
}
@media only screen and (min-width: 57.1875rem) {
  .HomeSection {
    flex: 0 0 430px;
    padding: 0;
  }
  .Hero,
  .Playground {
    margin-top: 1rem;
  }
}

.Playground-headerContainer {
  align-items: baseline;
  display: flex;
  justify-content: space-between;
}
.Playground-popout {
  background: url('/lib/godoc/images/play-link.svg') no-repeat;
  background-position: right center;
  cursor: pointer;
  display: block;
  font-size: 1rem;
  padding: 0 1.688rem;
}
.Playground-input,
.Playground-output {
  padding: 0;
  margin: 0;
  font-family: Menlo, monospace;
  font-size: 0.875rem;
}
.Playground-inputContainer {
  border-top-left-radius: 0.3125rem;
  border-top-right-radius: 0.3125rem;
  overflow: hidden;
  height: 10.63rem;
}
.Playground-input {
  width: 100%;
  height: 100%;
  border: none;
  outline: none;
  resize: none;
  padding: 0.625rem;
}
.Playground-outputContainer {
  border-bottom-right-radius: 0.3125rem;
  border-bottom-left-radius: 0.3125rem;
  border-top: none !important;
  padding: 0.625rem;
  height: 5rem;
  margin-bottom: 1rem;
  overflow: auto;
}
.Playground-output {
  padding: 0;
  border-radius: 0;
}
.Playground-inputContainer,
.Playground-input,
.Playground-outputContainer,
.Playground-output {
  background: #f7f9fa;
}
.Playground-inputContainer,
.Playground-outputContainer {
  border: 0.0625rem solid #c0c2c3;
}
.Playground-controls {
  display: flex;
  flex-wrap: wrap;
}
.Playground-buttons {
  display: flex;
  flex: 1;
  flex-wrap: nowrap;
  justify-content: space-between;
}
.Playground-selectExample {
  background-color: white;
  border-radius: 3px;
  border: 0.0625rem solid #979797;
  color: inherit;
  font-family: inherit;
  font-size: 16px; /* Prevents automatic zoom on mobile devices */
  height: 2.375rem;
  margin: 0 0 0.5rem 0;
  width: 100%;
}
.Playground-secondaryButtons {
  white-space: nowrap;
}
.Playground-secondaryButtons .Button:not(:first-child) {
  margin-left: 0.4375rem;
}
@media only screen and (min-width: 27.8125rem) {
  .Playground-outputContainer {
    margin-bottom: 1.688rem;
  }
  .Playground-controls {
    flex-wrap: nowrap;
  }
  .Playground-selectExample {
    margin: 0 0.4375rem 0 0;
    width: auto;
  }
}

.Blog-title {
  display: block;
  font-size: 1.25rem;
  font-weight: normal;
  margin: 0;
}
.Blog-title,
.Blog-extract,
.Blog-when {
  margin-bottom: 0.625rem;
}
.Blog-when {
  color: #666;
  font-size: 0.875rem;
}
.Blog-footer {
  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;
}

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: #f7f9fa;
}
div.play .input,
div.play .output {
  border: 0.0625rem solid #c0c2c3;
}
div.play .buttons {
  float: right;
  padding: 0.625rem 0;
  text-align: right;
}
div.play .buttons .Button {
  margin-left: 0.3125rem;
}
.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 */
}

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

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

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

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

  #page > .container,
  .Header-nav {
    padding: 0 0.625rem;
  }

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

  .pkg-synopsis {
    display: none;
  }

  img.gopher {
    display: none;
  }
}

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