/*
 * Copyright 2019-2020 The Go Authors. All rights reserved.
 * Use of this source code is governed by a BSD-style
 * license that can be found in the LICENSE file.
 */

:root {
  --gray-1: #202224;
  --gray-2: #3e4042;
  --gray-3: #555759;
  --gray-4: #6e7072;
  --gray-5: #848688;
  --gray-6: #aaacae;
  --gray-7: #c6c8ca;
  --gray-8: #dcdee0;
  --gray-9: #f0f1f2;
  --gray-10: #fafafa;

  --turq-light: #5dc9e2;
  --turq-med: #00add8;
  --turq-dark: #007d9c;

  --blue: #92e1f3;
  --green: #00a29c;
  --pink: #ce3262;
  --purple: #542c7d;
  --slate: #253443; /* Footer background. */
  --white: #fff;
  --yellow: #fddd00;

  --header-height: 3.5rem;
}

*,
:before,
:after {
  box-sizing: border-box;
}
html,
body {
  /**
   * This is used to programatically detect whether overflow needs to be altered
   * to prevent jitter when focusing within fixed elements on iOS.
   * It also must be set to 'touch' for the fix to work.
   */
  -webkit-overflow-scrolling: touch;
  height: 100%;
}
body {
  color: var(--gray-1);
  font-family: Roboto, Arial, sans-serif;
  margin: 0;
}
a,
a:link,
a:visited {
  color: var(--turq-dark);
  text-decoration: none;
}
a:hover {
  text-decoration: underline;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: 'Work Sans', arial, sans-serif;
  word-break: break-word;
}
h1,
h2,
h3 {
  font-weight: bold;
}
h1 {
  font-size: 1.5rem;
}
h2 {
  font-size: 1.125rem;
}
h3 {
  font-size: 1rem;
}
/**
  * As header elements are not interactive, it’s okay to remove the visual
  * indicator. https://css-tricks.com/focus-styles-non-interactive-elements/
  */
h1:focus,
h2:focus,
h3:focus,
h4:focus,
h5:focus,
h6:focus {
  outline: 0;
}
p {
  font-size: 1rem;
  line-height: 1.5rem;
}
.u-breakWord {
  word-break: break-word;
}
code {
  font-size: 1rem;
  font-family: 'Source Code Pro', monospace;
}

.Site {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}
.Site-content {
  flex: 1;
  padding: 0 1rem;
}
.Site-footer {
  margin-top: 5rem;
}

.FeedbackButton {
  cursor: pointer;
}
.AutoComplete-list {
  margin: 0 0.5rem 0 0;
  list-style: none;
  padding: 0;
}
.AutoComplete-list li:first-child {
  border-top: 0.0625rem solid var(--gray-8);
  margin-top: 0.3125rem;
}
.AutoComplete-list li {
  padding: 0.25rem 0;
  text-overflow: ellipsis;
  overflow: hidden;
  cursor: pointer;
}
.AutoComplete-list li:hover,
.AutoComplete-list li[aria-selected='true'] {
  background-color: var(--gray-9);
}

.Banner {
  /**
   * Only show on wide viewports so the
   * text never wraps or gets cut off.
   */
  display: none;
  background-color: #000;
}
.Banner-inner {
  align-items: center;
  display: flex;
  justify-content: space-between;
  margin: 0 auto;
  max-width: 75.75rem;
  min-height: 2.5rem;
  padding: 0.5rem 1.5rem;
}
.Banner-message {
  color: #fff;
  margin-right: 1.25rem;
}
.Banner-action:link,
.Banner-action:visited {
  color: #fff;
  text-decoration: underline;
  white-space: nowrap;
}
@media only screen and (min-width: 52rem) {
  .Banner {
    display: block;
  }
}

.Header {
  margin: 0 auto;
  max-width: 75.75rem;
}
.Site-header {
  background: var(--turq-dark);
  box-shadow: 0 0.0625rem 0.125rem rgba(171, 171, 171, 0.3);
  width: 100%;
  z-index: 1;
}
.Header-logoLink {
  margin-right: auto;
}
.Header-nav {
  align-items: center;
  display: flex;
  height: var(--header-height);
  justify-content: space-between;
}
.Header-logo {
  display: block;
  height: 2rem;
  margin: 0 2.25rem 0 1rem;
  width: 5.125rem;
}
.Header-menu {
  display: flex;
  list-style: none;
  height: 100%;
  margin: 0;
  padding: 0;
}
.Header-menuItem {
  display: none;
}
@media only screen and (min-width: 57.7rem) {
  .Header {
    padding: 0 1.5rem;
  }
  .Header-logo {
    margin-left: 1.4rem;
  }
  .Header-menuItem {
    display: inline-flex;
    flex: none;
  }
  .Header-menu {
    justify-content: flex-end;
    margin-left: 1.4rem;
  }
  .Header-navOpen {
    display: none;
  }
  .Header-logo {
    margin-left: 0;
  }
}
.Header-menuItem a:link,
.Header-menuItem a:visited {
  align-items: center;
  border-bottom: 0.1875rem solid transparent;
  border-top: 0.1875rem solid transparent; /* To ensure the text remains centered. */
  color: var(--white);
  display: inline-flex;
  margin: 0 0.3125rem;
  padding: 0 0.9375rem;
  text-align: center;
  text-decoration: none;
  width: 100%;
}
.Header-menuItem--active a:link,
.Header-menuItem--active a:visited {
  border-top-color: var(--turq-med);
  font-weight: bold;
}
.Header-menuItem a:hover {
  border-top-color: var(--pink);
}
.Header-navOpen {
  background: no-repeat center/2rem url('/static/img/menu-24px-white.svg');
  border: none;
  height: 2.5rem;
  margin: auto 1rem;
  width: 2.5rem;
}
.Header-searchForm {
  align-items: center;
  background-color: transparent;
  border: 0.0625rem solid transparent;
  border-radius: 0.25rem;
  display: flex;
  font-size: 1rem;
  height: 2rem;
  position: relative;
  width: 2.25rem;
}
.Header-searchForm:focus-within {
  background-color: var(--white);
  border-color: var(--gray-8);
  flex: 1;
  left: 1rem;
  position: absolute;
  width: calc(100% - 5.25rem);
}
.Header-searchFormInput {
  background-color: transparent;
  border: none;
  box-sizing: border-box;
  color: transparent;
  flex: 1;
  font: inherit;
  height: 100%;
  outline: none;
  position: absolute;
  width: 100%;
}
.Header-searchFormInput::placeholder {
  color: transparent;
}
.Header-searchForm:focus-within .Header-searchFormInput {
  color: var(--gray-1);
  height: auto;
  position: relative;
  width: auto;
}
.Header-searchForm:focus-within .Header-searchFormInput::placeholder {
  color: var(--gray-4);
}
.Header-searchFormSubmit {
  background-color: transparent;
  border: none;
  box-sizing: border-box;
  cursor: pointer;
  display: flex;
}
.Header-searchFormSubmitIcon {
  box-sizing: border-box;
  cursor: pointer;
  fill: var(--white);
  width: 1.4375rem;
}
.Header-searchForm:focus-within .Header-searchFormSubmitIcon {
  fill: var(--gray-4);
}
@media only screen and (min-width: 26.875rem) {
  .Header-searchForm {
    background-color: var(--white);
    border-color: var(--gray-8);
    flex: 1;
    width: auto;
  }
  .Header-searchForm:focus-within {
    left: 0;
    position: relative;
    width: auto;
  }
  .Header-searchFormSubmitIcon {
    fill: var(--gray-4);
  }
  .Header-searchFormInput {
    color: var(--gray-1);
    height: auto;
    position: relative;
    width: auto;
  }
  .Header-searchFormInput::placeholder {
    color: var(--gray-4);
  }
}
.NavigationDrawer {
  background: var(--white);
  display: none;
  height: 100%;
  left: auto;
  max-width: 27rem;
  position: fixed;
  right: 0;
  top: 0;
  width: 85%;
  z-index: 10;
}
.NavigationDrawer.is-active {
  display: initial;
}
.NavigationDrawer-header {
  display: flex;
  justify-content: space-between;
}
.NavigationDrawer-logo {
  display: block;
  height: 2rem;
  margin: 1rem 1rem;
  width: 5.125rem;
}
.NavigationDrawer-close {
  background: no-repeat center/2rem url('/static/img/close-24px.svg');
  border: none;
  height: 2.5rem;
  margin: auto 1rem;
  width: 2.5rem;
}
.NavigationDrawer-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.NavigationDrawer-listItem {
  font-size: 1.5rem;
  margin: 0 0.5rem;
}
.NavigationDrawer-listItem a:link,
.NavigationDrawer-listItem a:visited {
  display: block;
  margin: 0 1rem;
  padding: 1rem;
}
.NavigationDrawer-listItem--active {
  background-color: var(--gray-8);
  border-radius: 0.4rem;
}
.NavigationDrawer-scrim {
  display: none;
  height: 100%;
  left: 0;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 5;
}
.NavigationDrawer.is-active + .NavigationDrawer-scrim {
  background-color: rgba(0, 0, 0, 0.32);
  display: block;
}
.DetailsHeader {
  margin-top: 0.75rem;
}
.DetailsHeader-breadcrumb {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  word-break: break-word;
}
.DetailsHeader-main {
  margin-top: 0.25rem;
}
.DetailsHeader-title {
  display: inline-block;
  font-size: 1.875rem;
  margin: 0;
  height: 2.1875rem;
}
.DetailsHeader-version {
  display: inline-block;
  margin: 0 0.5rem;
}
.DetailsHeader-badge {
  border-radius: 1rem;
  display: inline-block;
  font-size: 0.75rem;
  padding: 0.25rem 0.75rem;
  position: relative;
  top: -0.125rem;
}
.DetailsHeader-badge--latest {
  background: var(--blue);
}
.DetailsHeader-badge--latest a {
  display: none;
}
.DetailsHeader-badge--goToLatest {
  background: var(--pink);
}
.DetailsHeader-badge--goToLatest a {
  color: var(--white);
}
.DetailsHeader-badge--goToLatest span {
  display: none;
}
.DetailsHeader-badge--unknown a {
  display: none;
}
.DetailsHeader-badge--unknown span {
  display: none;
}
.DetailsHeader-breadcrumbCurrent {
  color: var(--gray-3);
}
.DetailsHeader-breadcrumbDivider {
  color: var(--gray-3);
  margin: 0 0.3rem;
}

.Error-gopher,
.EmptyContent-gopher,
.Fetch-gopher,
.SearchResults-emptyContentGopher {
  display: block;
  margin: auto;
  max-width: 15rem;
  padding: 1.25rem 0;
}
.Error-message,
.EmptyContent-message,
.SearchResults-emptyContentMessage {
  text-align: center;
}
.Fetch-button {
  background-color: var(--gray-10);
  border-radius: 0.5rem;
  border: 0.0625rem solid var(--gray-8);
  color: var(--turq-dark);
  font-size: 1rem;
  height: 2.5rem;
  margin: 1rem 0;
  min-width: 5rem;
  padding: 0rem 1rem;
}
.Fetch-container {
  align-items: center;
  display: flex;
  flex-flow: column;
}
@keyframes blink {
  0% {
    opacity: 0.2;
  }
  20% {
    opacity: 1;
  }
  100% {
    opacity: 0.2;
  }
}
.Fetch-dot {
  animation-duration: 1.4s;
  animation-fill-mode: both;
  animation-iteration-count: infinite;
  animation-name: blink;
  background-color: var(--turq-dark);
  border-radius: 50%;
  display: inline-block;
  height: 0.5rem;
  width: 0.5rem;
}
.Fetch-loading {
  display: none;
}
.Fetch-loading:nth-child(2) {
  animation-delay: 0.2s;
}
.Fetch-loading:nth-child(3) {
  animation-delay: 0.4s;
}
.Fetch-message,
.Fetch-messageSecondary {
  text-align: center;
}

.SearchResults {
  margin: 0 auto;
  max-width: 60em;
  padding: 2rem 0;
}
.SearchResults-header {
  font-size: 1.875rem;
  margin: 0;
}
.SearchResults-help {
  margin-top: 0.3125rem;
}
.SearchResults-resultCount {
  color: var(--gray-3);
  margin-top: 1.125rem;
  margin-bottom: 0.625rem;
  display: flex;
  justify-content: space-between;
}
.SearchResults-footer {
  display: flex;
  justify-content: flex-end;
}
.Error-gopher,
.EmptyContent-gopher,
.NotFound-gopher,
.SearchResults-emptyContentGopher {
  display: block;
  margin: auto;
  padding: 1.25rem 0;
  width: 15rem;
}
.Error-message,
.EmptyContent-message,
.NotFound-message,
.SearchResults-emptyContentMessage {
  text-align: center;
}
.NotFound-container {
  display: flex;
  justify-content: center;
}
.NotFound-button {
  height: 2.5rem;
  font-size: 1rem;
  border-radius: 1rem;
  background-color: var(--turq-dark);
  color: white;
  padding: 0rem 2rem;
}
.NotFound-button-disabled {
  height: 2.5rem;
  font-size: 1rem;
  border-radius: 1rem;
  background-color: var(--gray-5);
  color: white;
  padding: 0rem 2rem;
}
.SearchSnippet {
  border-top: 0.0625rem solid var(--gray-8);
  padding: 1rem 0;
}
.SearchSnippet:only-of-type,
.SearchSnippet:last-of-type {
  border-bottom: 0.0625rem solid var(--gray-8);
  margin-bottom: 1rem;
}
.SearchSnippet-header {
  margin: 0 0 0.3125rem;
  font-size: 1.5rem;
}
.SearchSnippet-synopsis {
  color: var(--gray-3);
  margin: 0 0 1rem;
}
.SearchSnippet-infoLabel {
  font-size: 0.875rem;
  line-height: 1.375rem;
}
.SearchResults .Pagination-nav,
.SearchResults-help,
.SearchResults-resultCount {
  font-size: 0.875rem;
  flex-wrap: wrap;
}

.Pagination-nav {
  display: flex;
}
.Pagination-navInner {
  display: flex;
  flex: 1;
  justify-content: space-between;
}
.Pagination-previous[aria-disabled='true'],
.Pagination-next[aria-disabled='true'] {
  color: var(--gray-6);
}
.Pagination-number {
  padding: 0 6px;
  color: var(--gray-1);
}

@media only screen and (min-width: 800px) {
  .SearchResults .Pagination-nav,
  .SearchResults-help,
  .SearchResults-resultCount {
    font-size: 1.125rem;
    flex-wrap: wrap;
  }
  .Pagination-navInner {
    max-width: 400px;
  }
  .Pagination-previous {
    margin-right: 12px;
  }
  .Pagination-next {
    margin-left: 12px;
  }
}

.Overview-module {
  border-bottom: 0.0625rem solid var(--gray-8);
  padding-bottom: 2rem;
  padding-top: 0.5rem;
}
.Overview-sourceCode {
  border-bottom: 0.0625rem solid var(--gray-8);
  padding-bottom: 2rem;
}
.Overview-sourceCodeLink {
  margin: 0;
}
.Overview-readme {
  padding-top: 1rem;
}
.Overview-readmeContainer {
  border: 0.0625rem solid var(--gray-8);
  border-radius: 0.5rem;
  height: 100%;
  padding: 1.625rem;
  padding-top: 0.5rem;
}
.Overview-readme img {
  max-width: 100%;
}
.Overview-readme pre {
  overflow-x: auto;
}
.Overview-readmeContent {
  overflow-wrap: break-word;
}
.Overview-readmeSource {
  color: var(--gray-3);
  font-size: 0.875rem;
  text-align: right;
  margin-top: 1.5rem;
  font-style: italic;
}
.DetailsContent {
  min-height: 32rem;
  margin: 0 auto;
  max-width: 60em;
}
.DetailsContent :target::before {
  content: ' ';
  display: block;
  height: calc(var(--header-height) + 0.75rem);
  margin-top: calc(
    -1 * (var(--header-height) + 0.75rem)
  ); /* Move hidden anchor content for deep linking with a sticky header. */
  pointer-events: none;
  visibility: hidden;
}

.CopyToClipboardButton {
  background-color: transparent;
  border: none;
  cursor: pointer;
  height: 1.5rem;
  margin: 0 0.5rem;
  position: relative;
  width: 1.5rem;
}
.CopyToClipboardButton:not([data-tooltip])::before,
.CopyToClipboardButton:not([data-tooltip])::after,
.CopyToClipboardButton[data-tooltip='']::before,
.CopyToClipboardButton[data-tooltip='']::after {
  display: none;
}
.CopyToClipboardButton::before {
  background-color: rgba(0, 0, 0, 0.75);
  border-radius: 3px;
  color: var(--white);
  content: attr(data-tooltip);
  display: block;
  font-size: 0.9em;
  left: calc(100% + 0.125rem);
  position: absolute;
  padding: 0.25rem 0.3rem;
  text-transform: uppercase;
  top: 2px;
  white-space: nowrap;
  z-index: 1000;
}
.CopyToClipboardButton::after {
  border-bottom: 0.25rem solid transparent;
  border-left: 0;
  border-right: 0.25rem solid rgba(0, 0, 0, 0.75);
  border-top: 0.25rem solid transparent;
  content: '';
  display: block;
  position: absolute;
  right: -0.125rem;
  top: 9px;
  z-index: 1000;
}
.CopyToClipboardButton:hover {
  background-color: var(--gray-9);
}
.CopyToClipboardButton:active {
  background-color: var(--gray-8);
}
.CopyToClipboardButton-image {
  display: block;
  height: 0.9375rem;
  width: 0.8125rem;
}

.DetailsNav {
  align-items: center;
  border-bottom: 0.0625rem solid var(--gray-8);
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  min-width: 0;
  position: relative;
}
.DetailsNav [aria-hidden='true'] {
  display: none;
}
.DetailsNav [role='tablist'] {
  white-space: nowrap;
}
.DetailsNav [role='tab'] {
  color: var(--gray-2);
  display: inline-block;
}
.DetailsNav [role='tab'] + [role='tab'] {
  margin-left: 1rem;
}
.DetailsNav [role='tab'],
.DetailsNav [role='tab']:link,
.DetailsNav [role='tab']:visited {
  border-bottom: 2px solid transparent;
  display: inline-block;
  color: inherit;
  padding: 0.625rem 0.5rem;
}
.DetailsNav [role='tab']:hover {
  border-bottom-color: var(--purple);
  text-decoration: none;
}
.DetailsNav [role='tab'][aria-disabled='true'],
.DetailsNav [role='tab'][aria-disabled='true']:hover {
  border-bottom-color: transparent;
  color: var(--gray-5);
  cursor: not-allowed;
}
.DetailsNav [role='tab'][aria-selected='true'] {
  border-bottom: 2px solid var(--turq-med);
  color: var(--gray-1);
  font-weight: bold;
}
.DetailsNav [role='tab'][aria-hidden='true'] {
  display: none;
}
.DetailsNav-overflowContainer {
  display: none;
  height: 1.5rem;
  position: absolute;
  right: 0;
  top: 0.4375rem;
  width: 1.5rem;
}
.DetailsNav.is-overflowing .DetailsNav-overflowContainer {
  display: block;
}
.DetailsNav-overflowImage {
  fill: var(--gray-3);
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}
.DetailsNav-overflowSelect {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: transparent;
  border: 0;
  color: transparent;
  cursor: pointer;
  font-size: 1rem;
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}
/**
 * Firefox allows for styling of option and optgroup tags.
 * Ensure they don’t inherit the clear styling of their parent.
 */
.DetailsNav-overflowSelect option {
  color: var(--gray-1);
}

.DetailsNavFixed {
  background-color: var(--gray-10);
  border-bottom: 1px solid var(--gray-8);
  height: var(--header-height);
  position: fixed;
  top: 0;
  left: 0;
  transition: transform 100ms linear;
  width: 100%;
  z-index: 1000;
}
.DetailsNavFixed[aria-hidden='true'] {
  transform: translateY(calc(var(--header-height) * -1));
}
.DetailsNavFixed [aria-hidden='true'] {
  display: none;
}
.DetailsNavFixed-container {
  align-items: center;
  display: flex;
  height: 100%;
  margin: 0 auto;
  max-width: 75.75rem;
  padding: 0 0.5rem;
  position: relative;
}
.DetailsNavFixed-logoLink {
  margin-right: 1rem;
}
.DetailsNavFixed-logo {
  display: block;
  height: 1.695625;
  width: 4.5rem;
}
.DetailsNavFixed-moduleInfo {
  align-items: baseline;
  display: flex;
  flex-wrap: nowrap;
  margin-right: 3rem;
  min-width: 0;
}
.DetailsNavFixed-title {
  font: 600 1.125rem/1.5 'Work Sans', arial, sans-serif;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.DetailsNavFixed-titleType {
  display: none;
}
.DetailsNavFixed-titleType--small {
  display: inline;
}
@media only screen and (min-width: 25rem) {
  .DetailsNavFixed-titleType {
    display: inline;
  }
  .DetailsNavFixed-titleType--small {
    display: none;
  }
}
.DetailsNavFixed .CopyToClipboardButton {
  top: 0.1875rem;
}
.DetailsNavFixed-pathInput {
  left: -100vw;
  position: absolute;
  top: -100vh;
}
.DetailsNavFixed-version {
  color: var(--gray-2);
  font-size: 0.6875rem;
  position: relative;
}
@media only screen and (min-width: 37.5rem) {
  .DetailsNavFixed-container {
    padding: 0 0.5rem;
  }
  .DetailsNavFixed-logo {
    height: 1.9541rem;
    width: 5.1875rem;
  }
  .DetailsNavFixed-title {
    font-size: 1.5rem;
  }
  .DetailsNavFixed .CopyToClipboardButton {
    top: 0.0625rem;
  }
  .DetailsNavFixed-version {
    top: -0.125rem;
  }
}
.DetailsNavFixed-overflowingTabList {
  display: flex;
  flex: 1;
  height: 100%;
  min-width: 0;
  position: relative;
}
.DetailsNavFixed [role='tablist'] {
  display: flex;
  flex: 1;
  height: 100%;
  justify-content: flex-end;
  margin: 0;
  padding: 0;
}
.DetailsNavFixed [role='tab'] + [role='tab'] {
  margin-left: 1rem;
}
.DetailsNavFixed [role='tab'] {
  border-bottom: 0.25rem solid transparent;
  display: block;
  height: 100%;
  padding: 1.3125rem 0.5rem 0 0.5rem;
  white-space: nowrap;
}
.DetailsNavFixed [role='tab']:hover {
  border-bottom-color: var(--purple);
  text-decoration: none;
}
.DetailsNavFixed [role='tab'][aria-selected='true'] {
  border-bottom-color: var(--turq-dark);
}
.DetailsNavFixed [role='tab'][aria-hidden='true'] {
  display: none;
}
.DetailsNavFixed [role='tab'][aria-disabled='true'],
.DetailsNavFixed [role='tab'][aria-disabled='true']:hover {
  border-bottom-color: transparent;
  color: var(--gray-5);
  cursor: not-allowed;
}
.DetailsNavFixed-overflowContainer {
  display: none;
  height: 1.5rem;
  position: absolute;
  right: 0.0625rem;
  top: 1.125rem;
  width: 1.5rem;
}
.DetailsNavFixed-overflowingTabList.is-overflowing {
  padding-right: 1.5rem;
}
.DetailsNavFixed-overflowingTabList.is-overflowing .DetailsNavFixed-overflowContainer {
  display: block;
}
.DetailsNavFixed-overflowImage {
  fill: var(--gray-3);
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}
.DetailsNavFixed-overflowSelect {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: transparent;
  border: 0;
  color: transparent;
  cursor: pointer;
  font-size: 1rem;
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}
.DetailsNavFixed-overflowSelect option {
  color: var(--gray-1);
}

.Container {
  color: var(--gray-1);
  margin: 0 auto;
  max-width: 60em;
  position: relative;
}
.GodocButton,
.GodocButton:link,
.GodocButton:visited {
  border: 0.0625rem solid var(--gray-8);
  border-radius: 0.1875rem;
  cursor: pointer;
  display: block;
  font-size: 14px;
  font-weight: bold;
  margin: 1rem 0;
  padding: 0.5rem 1.25rem;
  text-align: center;
}
.GodocButton:hover {
  text-decoration: none;
}
.GodocButton[href=''],
.GodocButton:link[href=''],
.GodocButton:visited[href=''] {
  display: none;
}
@media only screen and (min-width: 57.7rem) {
  .GodocButton,
  .GodocButton:link,
  .GodocButton:visited {
    display: inline-block;
    margin: 0;
    position: absolute;
    right: 0;
    top: 0;
  }
}
.Content {
  min-height: 32rem;
  margin: 0 auto;
  max-width: 60em;
  padding: 2rem 0;
}
.Content-header {
  margin: 0;
  font-size: 1.875rem;
}
.Content h2 {
  margin: 0;
}
.Content p {
  color: var(--gray-3);
}

.License-contents {
  background-color: var(--gray-10);
  border: 0.0625rem solid var(--gray-8);
  border-radius: 3px;
  font: 0.875rem/1.375rem 'Source Code Pro', monospace;
  margin: 0;
  overflow-x: auto;
  padding: 1.5rem;
  tab-size: 4;
}
.License-source {
  font-size: 0.875rem;
  color: var(--gray-3);
  padding-top: 0.5rem;
}
.Disclaimer-link {
  font-style: italic;
}

.DocNav,
.DocNavMobile {
  display: none;
}
.DocNav-files {
  /* This property will be removed once the documentation has been reprocessed
     and "Package Files" is listed in the left side nav.*/
  display: none;
}
/**
 * Some versions of the doc template have DocNav also on elements with these
 * classes, which we don’t want to hide unless the sidenav experiment is active.
 * TODO: Remove once HTML has been transitioned to use new markup.
 */
.Documentation-nav.DocNav,
.Documentation-toc.DocNav {
  display: block;
}

.Documentation {
  color: var(--gray-1);
}
.Documentation h2,
.Documentation h3 {
  font-size: 1.5rem;
}
.Documentation a {
  color: var(--turq-dark);
  text-decoration: none;
}
.Documentation a:hover {
  text-decoration: underline;
}
.Documentation h2 a,
.Documentation h3 a,
.Documentation summary a {
  opacity: 0;
}
.Documentation a:focus {
  opacity: 1;
}
.Documentation h3 a.Documentation-source {
  opacity: 1;
}
.Documentation h2:hover a,
.Documentation h3:hover a,
.Documentation summary:hover a,
.Documentation summary:focus a {
  opacity: 1;
}
.Documentation ul {
  line-height: 1.5rem;
  list-style: none;
  padding-left: 0;
}
.Documentation ul ul {
  padding-left: 2em;
}
.Documentation code,
.Documentation pre {
  background-color: var(--gray-10);
  border-radius: 0.3em;
  border: 0.0625rem solid #ccc;
  font: 0.875rem/1.375rem 'Source Code Pro', monospace;
  margin: 0;
  overflow-x: auto;
  padding: 0.625rem;
  tab-size: 4;
  line-height: 1.25rem;
}
.Documentation pre + pre {
  margin-top: 0.625rem;
}
.Documentation pre .comment {
  color: #060;
}

.Documentation-toc,
.Documentation-overview,
.Documentation-index,
.Documentation-examples {
  padding-bottom: 0;
}

.Documentation-tocItem--constants,
.Documentation-tocItem--funcsAndTypes,
.Documentation-tocItem--functions,
.Documentation-tocItem--types,
.Documentation-tocItem--variables,
.Documentation-tocItem--notes {
  display: none;
}

.Documentation-overviewHeader,
.Documentation-indexHeader,
.Documentation-constantsHeader,
.Documentation-variablesHeader,
.Documentation-examplesHeader,
.Documentation-filesHeader,
.Documentation-functionHeader,
.Documentation-typeHeader,
.Documentation-typeMethodHeader,
.Documentation-typeFuncHeader {
  margin-bottom: 0.5rem;
}

.Documentation-build {
  color: var(--gray-3);
  font-size: 0.875rem;
  padding-top: 1.5rem;
  text-align: right;
}
.Documentation-exampleButtonsContainer {
  align-items: center;
  /* This will change back to display: flex; when we enable playground buttons */
  display: none;
  justify-content: flex-end;
}
.Documentation-exampleButtonsContainer button {
  background-color: var(--white);
  border: 0.15rem solid var(--turq-med);
  color: var(--turq-med);
  cursor: pointer;
  flex-shrink: 0;
  height: 2.5rem;
  width: 4.125rem;
}
.Documentation-exampleDetailsBody pre {
  margin: 1rem 0;
}
/**
 * We add another selector here to these two classes to increase CSS specificity,
 * the selector .Documentation pre + pre overrides .Documentation-exampleCode
 * and .Documentation-exampleOutput by itself and would replace the styles.
 */
.Documentation-exampleDetailsBody .Documentation-exampleCode {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  margin: 0;
}
.Documentation-exampleDetailsBody .Documentation-exampleOutput {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
  margin: 0 0 0.5rem;
}
.Documentation-exampleDetailsHeader {
  color: var(--turq-dark);
  cursor: pointer;
  margin-bottom: 2rem;
  outline: none;
  text-decoration: none;
}
.Documentation-exampleError {
  color: var(--pink);
  margin-right: 0.4rem;
  padding-right: 0.5rem;
}
.Documentation-filesList {
  column-count: 3;
  column-width: 12.5rem;
}

.Versions-list {
  list-style: none;
  padding-left: 1rem;
}
.Versions-list li {
  font-size: 1.125rem;
  margin-bottom: 0.5rem;
  line-height: 1.5rem;
  padding-left: 1rem;
}
.Versions-item {
  margin-left: 1rem;
}
.Versions-commitTime {
  color: var(--gray-3);
  font-weight: 400;
  font-size: 1rem;
}
.Versions-modulePath {
  color: var(--gray-3);
  font-size: 1rem;
  font-family: Roboto, Arial, sans-serif;
  font-weight: normal;
}
.Versions-separator {
  border-bottom: 0.0625rem solid var(--gray-8);
  margin: 2rem 0;
}

.Imports-list {
  list-style: none;
  padding: 0;
}
.Imports-heading {
  font-size: 1.125rem;
  line-height: 1.125rem;
}

.ImportedBy-list {
  list-style: none;
  padding: 0;
}
.ImportedBy .Pagination-nav,
.ImportedBy .Pagination-navInner {
  justify-content: flex-start;
}

.DetailsHeader-infoLabel {
  font-size: 0.875rem;
  line-height: 1.375rem;
  margin: 0.5rem 0;
}
.DetailsHeader-infoLabelTitle {
  color: var(--gray-1);
}
.DetailsHeader-infoLabelDivider {
  color: var(--gray-5);
  display: inline-block;
  margin: 0 0.625rem;
}

table.Directories {
  margin-top: 1.5rem;
  max-width: 800px;
}
.Directories td {
  padding: 0.75rem 0;
  border-bottom: 0.0625rem solid var(--gray-8);
  padding-right: 1rem;
}
.Directories th {
  text-align: left;
  border-bottom: 0.0625rem solid var(--gray-8);
  padding-right: 1rem;
  padding-bottom: 0.5rem;
}
.Directory-header {
  margin-bottom: 2rem;
}

.Details-content {
  margin-left: 40px;
}
.Details-indent {
  margin-left: 1.1rem;
}

.Badge-formElement {
  display: block;
  font-size: 1rem;
  margin-top: 1rem;
}
.Badge-badgeIcon {
  height: 20px;
  width: 90px;
}
.Badge-previewLink,
.Badge-formElement > input {
  display: block;
  margin-top: 1rem;
  max-width: 50.25rem;
}
.Badge-formElement > input {
  border: 0.0625rem solid var(--gray-8);
  border-radius: 0.25rem;
  color: var(--gray-4);
  font-family: inherit;
  height: 3rem;
  padding: 0 2rem 0 0.75rem;
  text-overflow: ellipsis;
  width: 100%;
}
.Badge-formElement > input:focus::placeholder {
  color: transparent;
}
.Badge-clickToCopy {
  background: var(--gray-10) url('/static/img/copy-click.svg') right no-repeat;
  background-position: right 0.75rem center;
}
.Badge-submitButton {
  border: none;
  border-radius: 0.25rem;
  background-color: var(--turq-dark);
  color: var(--white);
  cursor: pointer;
  font-family: inherit;
  height: 2.75rem;
  width: 7.125rem;
}
.Badge-snippetContainer {
  background-color: var(--gray-10);
  display: block;
  margin-top: 1rem;
  max-width: 50.25rem;
  padding: 1rem;
}
.Badge-gopherLanding {
  height: 12.25rem;
  text-align: center;
}
.Badge-gopherLanding img {
  height: 125px;
  width: auto;
}

/* dialogs, including the jump-to-identifier dialog on documentation pages */

.Dialog {
  padding: 0;
  border: 0.0625rem solid rgba(0, 0, 0, 0.2);
  border-radius: 6px;
  box-shadow: 0 0.3125rem 0.9375rem rgba(0, 0, 0, 0.5);
}
.Dialog-title {
  font-size: 1.125rem;
  padding: 0 0.8rem;
}
.Dialog-actions {
  text-align: right;
  padding: 0.8rem;
}
.Dialog-button {
  background: none;
  border-radius: 0.625rem;
  border: 0.0625rem solid var(--gray-8);
  color: var(--turq-dark);
  font-size: 1rem;
  max-width: 6.25rem;
  padding: 0.625rem;
  text-align: center;
}

.JumpDialog {
  width: 25rem;
}
.JumpDialog-body {
  height: 12rem;
  overflow-y: scroll;
  padding: 0 0 0 0.8rem;
}
.JumpDialog-list {
  display: flex;
  flex-direction: column;
}
.JumpDialog-filter {
  margin: 0.5rem 0.8rem;
}
.JumpDialog-input {
  width: 100%;
  font-size: 1.125rem;
}
.JumpDialog a {
  text-decoration: none;
  padding: 0.25rem;
}
.JumpDialog .JumpDialog-active {
  color: var(--white);
  background-color: var(--turq-dark);
}

.ShortcutsDialog-key {
  text-align: right;
}
.ShortcutsDialog table {
  padding: 0 1rem;
}

.ImageButton {
  border: none;
  border-radius: 0.2rem;
  cursor: pointer;
  background-color: transparent;
  padding: 0.2rem 0.375rem;
  background-color: transparent;
  display: inline-flex;
}
.ImageButton:hover {
  background-color: var(--gray-9);
}
.ImageButton:active {
  background-color: var(--gray-8);
}

.Site-footer {
  background-color: var(--slate);
  border-top: 0.0625rem solid var(--gray-8);
  color: var(--white);
  font-size: 0.875rem;
}
.Footer-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin: auto;
  max-width: 75.75rem;
  padding: 2rem 1.5rem 2.625rem 1.5rem;
}
.Footer-linkColumn {
  flex: 0 0 9.5rem;
}
a.Footer-link {
  color: var(--white);
  display: flex;
  flex: 1;
  font-size: 0.875rem;
  line-height: 2rem;
}
a.Footer-link--primary {
  font-size: 1.125rem;
  line-height: 1.75rem;
  margin-bottom: 0.5rem;
  margin-top: 0.75rem;
}
.Footer-bottom {
  align-items: center;
  border-top: 0.0625rem solid var(--gray-8);
  display: flex;
  margin: 0 1.5rem;
  min-height: 4.125rem;
}
.Footer-gopher {
  align-self: flex-end;
  height: 3.147rem;
  width: 5rem;
}
.Footer-listRow {
  display: flex;
  flex: 1;
  flex-wrap: wrap;
  list-style: none;
  margin: 0;
  padding: 0;
  text-align: center;
}
.Footer-listItem {
  align-items: center;
  display: flex;
  flex: 1 100%;
  justify-content: center;
  margin: 0.4rem 0;
  padding: 0 1rem;
}
.Footer-listItem a:link,
.Footer-listItem a:visited {
  color: var(--white);
}
@media only screen and (min-width: 52rem) {
  .Footer-listItem {
    flex: initial;
  }
  .Footer-listItem + .Footer-listItem {
    border-left: 0.0625rem solid var(--gray-7);
  }
}
.Footer-feedbackButton {
  background: none;
  border: none;
  color: var(--white);
  font-size: 0.875rem;
  padding: 0;
}
.Footer-feedbackButton:hover {
  cursor: pointer;
  text-decoration: underline;
}
.Footer-googleLogo {
  align-self: flex-end;
  height: 1.5rem;
  margin-bottom: 1.3rem;
  text-align: right;
}
.Footer-googleLogoImg {
  height: 1.5rem;
  width: 4.529rem;
}
.Container--fullBleed {
  margin: 0;
  max-width: none;
}

/* ---------- */
/*
/* The CSS classes below are generated using content/static/css/main.go
/* To update, delete the contents below and and run go run content/static/css/main.go
/*
/* ---------- */

.Overview-readmeContent details {
  display: block;
}
.Overview-readmeContent summary {
  display: list-item;
}
.Overview-readmeContent a {
  background-color: initial;
}
.Overview-readmeContent a:active,
.Overview-readmeContent a:hover {
  outline-width: 0;
}
.Overview-readmeContent strong {
  font-weight: inherit;
  font-weight: bolder;
}
.Overview-readmeContent h1 {
  font-size: 2em;
  margin: 0.67em 0;
}
.Overview-readmeContent img {
  border-style: none;
}
.Overview-readmeContent code,
.Overview-readmeContent kbd,
.Overview-readmeContent pre {
  font-family: monospace, monospace;
  font-size: 1em;
}
.Overview-readmeContent hr {
  box-sizing: initial;
  height: 0;
  overflow: visible;
}
.Overview-readmeContent input {
  font: inherit;
  margin: 0;
}
.Overview-readmeContent input {
  overflow: visible;
}
.Overview-readmeContent [type='checkbox'] {
  box-sizing: border-box;
  padding: 0;
}
.Overview-readmeContent * {
  box-sizing: border-box;
}
.Overview-readmeContent input {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}
.Overview-readmeContent a {
  color: #0366d6;
  text-decoration: none;
}
.Overview-readmeContent a:hover {
  text-decoration: underline;
}
.Overview-readmeContent strong {
  font-weight: 600;
}
.Overview-readmeContent hr {
  height: 0;
  margin: 15px 0;
  overflow: hidden;
  background: transparent;
  border: 0;
  border-bottom: 1px solid #dfe2e5;
}
.Overview-readmeContent hr:after,
.Overview-readmeContent hr:before {
  display: table;
  content: '';
}
.Overview-readmeContent hr:after {
  clear: both;
}
.Overview-readmeContent table {
  border-spacing: 0;
  border-collapse: collapse;
}
.Overview-readmeContent td,
.Overview-readmeContent th {
  padding: 0;
}
.Overview-readmeContent details summary {
  cursor: pointer;
}
.Overview-readmeContent kbd {
  display: inline-block;
  padding: 3px 5px;
  font: 11px SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace;
  line-height: 10px;
  color: #444d56;
  vertical-align: middle;
  background-color: #fafbfc;
  border: 1px solid #d1d5da;
  border-radius: 3px;
  box-shadow: inset 0 -1px 0 #d1d5da;
}
.Overview-readmeContent h1,
.Overview-readmeContent h2,
.Overview-readmeContent h3,
.Overview-readmeContent h4,
.Overview-readmeContent h5,
.Overview-readmeContent h6 {
  margin-top: 0;
  margin-bottom: 0;
}
.Overview-readmeContent h1 {
  font-size: 32px;
}
.Overview-readmeContent h1,
.Overview-readmeContent h2 {
  font-weight: 600;
}
.Overview-readmeContent h2 {
  font-size: 24px;
}
.Overview-readmeContent h3 {
  font-size: 20px;
}
.Overview-readmeContent h3,
.Overview-readmeContent h4 {
  font-weight: 600;
}
.Overview-readmeContent h4 {
  font-size: 16px;
}
.Overview-readmeContent h5 {
  font-size: 14px;
}
.Overview-readmeContent h5,
.Overview-readmeContent h6 {
  font-weight: 600;
}
.Overview-readmeContent h6 {
  font-size: 12px;
}
.Overview-readmeContent p {
  margin-top: 0;
  margin-bottom: 10px;
}
.Overview-readmeContent blockquote {
  margin: 0;
}
.Overview-readmeContent ol,
.Overview-readmeContent ul {
  padding-left: 0;
  margin-top: 0;
  margin-bottom: 0;
}
.Overview-readmeContent ol ol,
.Overview-readmeContent ul ol {
  list-style-type: lower-roman;
}
.Overview-readmeContent ol ol ol,
.Overview-readmeContent ol ul ol,
.Overview-readmeContent ul ol ol,
.Overview-readmeContent ul ul ol {
  list-style-type: lower-alpha;
}
.Overview-readmeContent dd {
  margin-left: 0;
}
.Overview-readmeContent code,
.Overview-readmeContent pre {
  font-family: SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace;
  font-size: 12px;
}
.Overview-readmeContent pre {
  margin-top: 0;
  margin-bottom: 0;
}
.Overview-readmeContent input::-webkit-inner-spin-button,
.Overview-readmeContent input::-webkit-outer-spin-button {
  margin: 0;
  -webkit-appearance: none;
  appearance: none;
}
.Overview-readmeContent :checked + .radio-label {
  position: relative;
  z-index: 1;
  border-color: #0366d6;
}
.Overview-readmeContent hr {
  border-bottom-color: #eee;
}
.Overview-readmeContent kbd {
  display: inline-block;
  padding: 3px 5px;
  font: 11px SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace;
  line-height: 10px;
  color: #444d56;
  vertical-align: middle;
  background-color: #fafbfc;
  border: 1px solid #d1d5da;
  border-radius: 3px;
  box-shadow: inset 0 -1px 0 #d1d5da;
}
.Overview-readmeContent a:not([href]) {
  color: inherit;
  text-decoration: none;
}
.Overview-readmeContent blockquote,
.Overview-readmeContent details,
.Overview-readmeContent dl,
.Overview-readmeContent ol,
.Overview-readmeContent p,
.Overview-readmeContent pre,
.Overview-readmeContent table,
.Overview-readmeContent ul {
  margin-top: 0;
  margin-bottom: 16px;
}
.Overview-readmeContent hr {
  height: 0.25em;
  padding: 0;
  margin: 24px 0;
  background-color: #e1e4e8;
  border: 0;
}
.Overview-readmeContent blockquote {
  padding: 0 1em;
  color: #6a737d;
  border-left: 0.25em solid #dfe2e5;
}
.Overview-readmeContent blockquote > :first-child {
  margin-top: 0;
}
.Overview-readmeContent blockquote > :last-child {
  margin-bottom: 0;
}
.Overview-readmeContent h1,
.Overview-readmeContent h2,
.Overview-readmeContent h3,
.Overview-readmeContent h4,
.Overview-readmeContent h5,
.Overview-readmeContent h6 {
  margin-top: 24px;
  margin-bottom: 16px;
  font-weight: 600;
  line-height: 1.25;
}
.Overview-readmeContent h1 {
  font-size: 2em;
}
.Overview-readmeContent h1,
.Overview-readmeContent h2 {
  padding-bottom: 0.3em;
  border-bottom: 1px solid #eaecef;
}
.Overview-readmeContent h2 {
  font-size: 1.5em;
}
.Overview-readmeContent h3 {
  font-size: 1.25em;
}
.Overview-readmeContent h4 {
  font-size: 1em;
}
.Overview-readmeContent h5 {
  font-size: 0.875em;
}
.Overview-readmeContent h6 {
  font-size: 0.85em;
  color: #6a737d;
}
.Overview-readmeContent ol,
.Overview-readmeContent ul {
  padding-left: 2em;
}
.Overview-readmeContent ol ol,
.Overview-readmeContent ol ul,
.Overview-readmeContent ul ol,
.Overview-readmeContent ul ul {
  margin-top: 0;
  margin-bottom: 0;
}
.Overview-readmeContent li {
  word-wrap: break-all;
}
.Overview-readmeContent li > p {
  margin-top: 16px;
}
.Overview-readmeContent li + li {
  margin-top: 0.25em;
}
.Overview-readmeContent dl {
  padding: 0;
}
.Overview-readmeContent dl dt {
  padding: 0;
  margin-top: 16px;
  font-size: 1em;
  font-style: italic;
  font-weight: 600;
}
.Overview-readmeContent dl dd {
  padding: 0 16px;
  margin-bottom: 16px;
}
.Overview-readmeContent table {
  display: block;
  width: 100%;
  overflow: auto;
}
.Overview-readmeContent table th {
  font-weight: 600;
}
.Overview-readmeContent table td,
.Overview-readmeContent table th {
  padding: 6px 13px;
  border: 1px solid #dfe2e5;
}
.Overview-readmeContent table tr {
  background-color: #fff;
  border-top: 1px solid #c6cbd1;
}
.Overview-readmeContent table tr:nth-child(2n) {
  background-color: #f6f8fa;
}
.Overview-readmeContent img {
  max-width: 100%;
  box-sizing: initial;
  background-color: #fff;
}
.Overview-readmeContent img[align='right'] {
  padding-left: 20px;
}
.Overview-readmeContent img[align='left'] {
  padding-right: 20px;
}
.Overview-readmeContent code {
  padding: 0.2em 0.4em;
  margin: 0;
  font-size: 85%;
  background-color: rgba(27, 31, 35, 0.05);
  border-radius: 3px;
}
.Overview-readmeContent pre {
  word-wrap: normal;
}
.Overview-readmeContent pre > code {
  padding: 0;
  margin: 0;
  font-size: 100%;
  word-break: normal;
  white-space: pre;
  background: transparent;
  border: 0;
}
.Overview-readmeContent pre {
  padding: 16px;
  overflow: auto;
  font-size: 85%;
  line-height: 1.45;
  background-color: #f6f8fa;
  border-radius: 3px;
}
.Overview-readmeContent pre code {
  display: inline;
  max-width: auto;
  padding: 0;
  margin: 0;
  overflow: visible;
  line-height: inherit;
  word-wrap: normal;
  background-color: initial;
  border: 0;
}

/* ---------- */
/*
/* End output from content/static/css/main.go.
/*
/* ---------- */
