:root {
  /* Border */
  --border: 0.0625rem solid var(--color-border);
  --border-card: var(--border);
  --border-code: var(--border);

  /* Colors */
  --gray-1: #202224;
  --gray-2: #2D2D2D;
  --gray-3: #555759;
  --gray-4: #6e7072;
  --gray-5: #848688;
  --gray-6: #aaacae;
  --gray-7: #c6c8ca;
  --gray-8: #dcdee0;
  --gray-9: #f0f1f2;
  --gray-10: #f8f8f8;
  --turq-light: #5dc9e2;
  --turq-med: #50b7e0;
  --turq-dark: #007d9c;
  --abbey: #3f4042;
  --blue: #bfeaf4;
  --blue-light: #f2fafd;
  --black-1: #000;
  --black-2: #111111;
  --deep-cerulian: #007F9f;
  --green: #3a6e11;
  --green-light: #5fda64;
  --pink: #c85e7a;
  --pink-light: #fdecf1;
  --purple: #542c7d;
  --shark: #2B2D2F;
  --slate: #253443; /* Footer background. */
  --tundora: #414141;
  --white: #fff;
  --yellow: #fddd00;
  --yellow-light: #fff8cc;
  --testimonial: #007F9f;

  /* Color Intents */
  --color-brand-primary: var(--turq-dark);
  --color-background: var(--white);
  --color-background-inverted: var(--slate);
  --color-background-accented: var(--gray-10);
  --color-background-highlighted: var(--blue);
  --color-background-highlighted-link: var(--blue-light);
  --color-background-info: var(--gray-9);
  --color-background-warning: var(--yellow-light);
  --color-background-alert: var(--pink-light);
  --color-background-banner: var(--turq-dark);
  --color-background-card-footer: var(--gray-10);
  --color-background-carousel-button: var(--white);
  --color-background-code: var(--gray-10);
  --color-background-logo: rgba(248, 248, 248, 0.9);
  --color-background-playground-input: #ffffdd;
  --color-background-testimonial: var(--deep-cerulian);
  --color-border: var(--gray-7);
  --color-text: var(--gray-1);
  --color-text-link: var(--turq-dark);
  --color-text-subtle: var(--gray-4);
  --color-text-inverted: var(--white);
  --color-code-comment: var(--green);

  /* Interactive Colors */
  --color-input: var(--color-background);
  --color-input-text: var(--color-text);
  --color-button: var(--turq-dark);
  --color-button-disabled: var(--gray-9);
  --color-button-text: var(--white);
  --color-button-text-disabled: var(--gray-3);
  --color-button-inverted: var(--color-background);
  --color-button-inverted-disabled: var(--color-background);
  --color-button-inverted-text: var(--color-brand-primary);
  --color-button-inverted-text-disabled: var(--color-text-subtle);
  --color-button-accented: var(--yellow);
  --color-button-accented-disabled: var(--gray-9);
  --color-button-accented-text: var(--gray-1);
  --color-button-accented-text-disabled: var(--gray-3);
}
[data-theme='dark'] {
  --border-card: 0.0625rem solid transparent;
  --border-code: 0.0625rem solid var(--tundora);

  --color-brand-primary: var(--turq-dark);
  --color-background: var(--gray-1);
  --color-background-accented: var(--gray-2);
  --color-background-highlighted: var(--gray-2);
  --color-background-highlighted-link: var(--gray-2);
  --color-background-info: var(--gray-3);
  --color-background-warning: var(--yellow);
  --color-background-alert: var(--pink);
  --color-background-banner: rgba(0, 125, 156, 0.75);
  --color-background-banner-secondary: rgba(248, 248, 248, 0.9);
  --color-background-card-footer: var(--gray-1);
  --color-background-carousel-button: var(--gray-5);
  --color-background-code: var(--shark);
  --color-background-logo: rgba(248, 248, 248, 0.9);
  --color-background-playground-input: var(--slate);
  --color-background-testimonial: var(--gray-2);
  --color-button-text-disabled: var(--gray-6);
  --color-border: var(--gray-4);
  --color-text: var(--gray-9);
  --color-text-link: var(--turq-med);
  --color-text-subtle: var(--gray-7);
  --color-code-comment: var(--green-light);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme='light']) {
    --border-card: 0.0625rem solid transparent;
    --border-code: 0.0625rem solid var(--tundora);

    --color-brand-primary: var(--turq-dark);
    --color-background: var(--gray-1);
    --color-background-accented: var(--gray-2);
    --color-background-highlighted: var(--gray-2);
    --color-background-highlighted-link: var(--gray-2);
    --color-background-info: var(--gray-3);
    --color-background-warning: var(--yellow);
    --color-background-alert: var(--pink);
    --color-background-banner: rgb(0, 125, 156, 0.75);
    --color-background-banner-secondary: rgba(248, 248, 248, 0.9);
    --color-background-card-footer: var(--gray-1);
    --color-background-carousel-button: var(--gray-5);
    --color-background-code: var(--shark);
    --color-background-logo: rgba(248, 248, 248, 0.9);
    --color-background-playground-input: var(--slate);
    --color-background-testimonial: var(--gray-2);
    --color-button-primary: var(--yellow-primary);
    --color-button-text-disabled: var(--gray-6);
    --color-border: var(--gray-4);
    --color-text: var(--gray-9);
    --color-text-link: var(--turq-med);
    --color-text-subtle: var(--gray-7);
    --color-code-comment: var(--green-light);
  }
}

*,
:before,
:after {
  box-sizing: border-box;
}
@media (prefers-color-scheme: dark) {
  [data-theme="auto"] .DarkMode-img {
    display: block;
  }
  [data-theme="auto"] .LightMode-img {
    display: none;
  }
}
@media (prefers-color-scheme: light) {
  [data-theme="auto"] .DarkMode-img {
    display: none;
  }
  [data-theme="auto"] .LightMode-img {
    display: block;
  }
}
[data-theme="dark"] .DarkMode-img {
  display: block;
}
[data-theme="dark"] .LightMode-img {
  display: none;
}
[data-theme="light"] .DarkMode-img {
  display: none;
}
[data-theme="light"] .LightMode-img {
  display: block;
}
body {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif,
  'Apple Color Emoji', 'Segoe UI Emoji';
  max-height: 100%;
  line-height: 1.4;
}
button,
input,
select,
textarea {
  font: inherit;
}
h1, h2, h3, h4, h5, h6, p, ol, ul {
  margin-top: 1rem;
  margin-bottom: 1rem;
}
table {
  -webkit-border-horizontal-spacing: 0;
  -webkit-border-vertical-spacing: 0;
}
code,
pre,
.linedtextarea .lines div {
  font-family: SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace;
}
pre,
.linedtextarea .lines div {
  font-size: 0.83rem;
  overflow-x: auto;
}
/* Trim spaces to be more like plain text spaces in text like "Use <code>go get</code> to ...", but not in Markdown <pre> blocks. */
code {
  word-spacing: -0.5ch;
}
pre code {
  word-spacing: 0 !important;
}
pre {
  line-height: 1.4;
  overflow-x: auto;
}
pre .comment {
  color: var(--color-text-link);
}
pre .highlight,
pre .highlight-comment,
pre .selection-highlight,
pre .selection-highlight-comment {
  background: var(--yellow);
  color: var(--gray-1);
}
pre .selection,
pre .selection-comment {
  background: var(--yellow);
}
pre .ln { /* line number */
  color: #999;
}
pre ins {
  /* For styling highlighted code in examples. */
  color: rgb(0, 125, 156);
  font-weight: bold;
  text-decoration: none;
}
.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;
}
html,
.Site {
  max-height: 100%;
  min-height: 100vh;
  scroll-padding-top: 4.6875rem;
}
a,
a:link,
a:visited {
  color: var(--color-text-link);
  text-decoration: none;
}
a:hover {
  text-decoration: underline;
}
.Site {
  display: flex;
  flex-direction: column;
  margin: 0;
}
@media print {
  /* display: flex makes the printer slice text lines in half */
  .Site { display: block; }
}
.bluebg {
  background: var(--color-background-banner);
}
.SiteContent {
  background: var(--color-background);
  flex: 1;
}
.Site-footer {
  border-top: var(--border);
  color: var(--white);
  font-size: 0.875rem;
}
.Site-header {
  background: var(--color-brand-primary);
  border-bottom: none;
  box-shadow: 0 0.0625rem 0.125rem rgba(171, 171, 171, 0.3);
  top: 0;
  width: 100%;
  z-index: 10;
}
.CaseStudy-aboutBlock {
  background-color: var(--color-background-accented);
  border: var(--border);
  border-radius: 0.25rem;
  box-sizing: border-box;
  padding: 3.75rem 2rem 3.75rem;
}
.CaseStudy-aboutBlockTitle {
  color: var(--color-text);
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 3rem;
  margin-bottom: 0.6875rem;
}
.CaseStudy-aboutBlockImg {
  display: block;
  margin: 0 auto;
  max-height: 3.125rem;
}
.UseCase-halfColumn {
  color: var(--color-text);
  display: inline-block;
  font-size: 1rem;
  width: 100%;
}
@media only screen and (min-width: 48rem) {
  .UseCase-halfColumn {
    padding-right: 1.25rem;
    width: 50%;
  }
}
.UseCase-halfColumn > h2 {
  line-height: 1.55;
}
@media print {
  .Site-header { display: none; }
}
.Header,
.Container {
  margin: 0 auto;
}
.Container {
  max-width: 75.75rem;
}
.Container--padded {
  padding: 0 1.5rem;
}
.Footer {
  background-color: #253443;
}
.Footer-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  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: var(--border);
  display: flex;
  margin: 0 1.5rem;
  min-height: 4.125rem;
}
.Footer-gopher {
  align-self: flex-end;
  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: var(--border);
  }
}
.go-Footer-listItem {
  color: var(--white);
  padding: 0;
}
.go-Icon {
  height: 1.125em;
  vertical-align: text-bottom;
  width: auto;
}
.go-Icon--inverted {
  filter: brightness(0) saturate(100%) invert(100%) sepia(97%) saturate(13%) hue-rotate(245deg) brightness(103%) contrast(107%);
}
.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;
}
.Container--fullBleed {
  margin: 0;
  max-width: none;
}
.Header-nav {
  align-items: center;
  display: flex;
  height: 3.5rem;
  justify-content: space-between;
}
.Header-rightContent {
  align-items: center;
  display: flex;
  height: 100%;
  justify-content: flex-end;
  width: 100%;
}
.Header--dark {
  border-bottom: none;
  color: var(--white);
}
.Header-logo {
  display: block;
  height: 2rem;
  margin-right: 2.25rem;
  width: 5.125rem;
}
.Header-logo--hidden {
  display: none;
}
.Header-logo--hidden {
  display: none;
}
.Header-menuItem {
  display: none;
}
.Header-menu {
  align-items: stretch;
  display: flex;
  height: 100%;
  list-style: none;
  margin: 0;
  padding: 0;
}

@media only screen and (min-width: 57.7rem) {
  .Header, .PlayPage {
    padding: 0 1.5rem;
  }
  .Header-menuItem {
    align-items: stretch;
    display: inline-flex;
    flex: none;
  }
  .Header-menu {
    justify-content: flex-end;
  }
  .Header-navOpen {
    display: none;
  }
}
.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(--color-text);
  display: inline-flex;
  margin: 0 0.3125rem;
  padding: 0 0.9375rem;
  text-align: center;
  text-decoration: none;
  width: 100%;
}
.Header--dark .Header-menuItem a:link,
.Header--dark .Header-menuItem a:visited {
  color: var(--white);
}
.Header-menuItem--active a:link,
.Header-menuItem--active a:visited {
  border-bottom-color: #00add8;
  font-weight: bold;
}
.Header-menuItem a:hover {
  border-bottom-color: var(--white);
  color: var(--color-text);
}
.Header-navOpen {
  background: no-repeat center/2rem url('/images/menu-24px.svg');
  border: none;
  height: 2.5rem;
  margin: auto 1rem;
  width: 2.5rem;
}
.Header-navOpen--white {
  background: no-repeat center/2rem url('/images/menu-24px-white.svg');
}
.NavigationDrawer {
  background: var(--color-background);
  height: 100%;
  left: auto;
  max-width: 27rem;
  position: fixed;
  right: 0;
  top: 0;
  transform: translateX(100%);
  transition: transform 100ms ease-in-out;
  width: 85%;
  z-index: 20;
}
.NavigationDrawer.is-active {
  transform: translateX(0);
}
.NavigationDrawer-header {
  align-items: center;
  display: flex;
  justify-content: space-between;
}
.NavigationDrawer-logo {
  display: block;
  height: 2rem;
  margin: 1rem 1rem;
  width: 5.125rem;
}
.NavigationDrawer-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.NavigationDrawer-listItem {
  font-size: 1.125rem;
  margin: 0 0.5rem;
}
.NavigationDrawer-listItem a:link,
.NavigationDrawer-listItem a:visited {
  display: block;
  margin: 0 1rem;
  padding: 0.5rem;
}
.NavigationDrawer-listItem--active {
  background-color: #bfeaf4;
  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;
}
.Article {
  color: var(--color-text);
  margin: 0 auto 1.875rem;
  max-width: 75.75rem;
  padding: 0 1.5rem;
}
h1 + h2.subtitle {
  margin-top: -1rem;
  font-size: 1.2rem !important;
  margin-left: 1.25rem; /* note: matches TOC dl */
}
.Talks .author {
  margin-left: 1.25rem;
}
.Talks .author p {
  margin: 0;
}

.Article-author,
.Article-date {
  color: var(--color-text);
  font-size: 0.875rem;
}
.Article-date {
  color: var(--color-text-subtle);
}
.Article h1,
.Article h2,
.Article h3,
.Article h4,
.Article h5,
.Article h6 {
  color: var(--color-text);
}
.Article h1 {
  font-size: 2.25rem;
}
.Article h2 {
  font-size: 1.4rem;
}
.Article h3 {
  font-size: 1.125rem;
}
.Article h4,
.Article h5,
.Article h6 {
  font-size: 1rem;
}
.Article p,
.Article ul,
.Article ol {
  color: var(--color-text);
  font-size: 1rem;
  font-style: normal;
  font-weight: normal;
}
.Article ol .Article pre {
  background-color: var(--color-background-accented);
  border: var(--border);
  border-radius: 0.375rem;
  color: var(--color-text);
  font-size: 1rem;
  overflow-x: auto;
  padding: 1.5rem;
}
.Article pre,
.Article code {
  color: var(--color-text);
  background: var(--color-background-accented);
}
.Article pre {
  margin-left: 1.5rem;
}
.Article.Doc img {
  background-color: var(--white);
}
.BreadcrumbNav-inner {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0;
  justify-content: start;
  list-style: none;
  margin: 0 auto;
  max-width: 75.75rem;
  padding: 0 0 1rem;
}
.BreadcrumbNav-li {
  align-items: center;
  display: flex;
  white-space: nowrap;
}
a.BreadcrumbNav-link {
  font-size: 0.875rem;
  text-decoration: none;
}
.BreadcrumbNav-li:last-child {
  padding-right: 0.812rem;
  white-space: normal;
}
.BreadcrumbNav-li:not(:last-child):after {
  background: url('/images/icons/arrow-forward.svg') no-repeat;
  content: ' ';
  display: block;
  height: 1rem;
  margin: 0 0.8125rem;
  width: 1rem;
}
[data-theme='dark'] .BreadcrumbNav-li:not(:last-child):after {
  background: url('/images/icons/arrow-forward-dark.svg') no-repeat;
  content: ' ';
  display: block;
  height: 1rem;
  margin: 0 0.8125rem;
  width: 1rem;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme='light']) .BreadcrumbNav-li:not(:last-child):after {
    background: url('/images/icons/arrow-forward-dark.svg') no-repeat;
    content: ' ';
    display: block;
    height: 1rem;
    margin: 0 0.8125rem;
    width: 1rem;
  }
}
@media only screen and (min-width: 57.7rem) {
  .BreadcrumbNav-inner {
    margin-top: 0;
  }
}
.SubHero-gridContainer,
.WhoUses-gridContainer,
.Playground-gridContainer,
.WhoUsesHero-gridContainer,
.WhoUsesCaseStudyList-gridContainer,
.WhyGo-gridContainer,
.UseCases-gridContainer,
.LearnGo-gridContainer,
.Security-gridContainer {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  margin: 0 auto;
  max-width: 75.75rem;
}
.SubHero-gridContainer,
.WhoUses-gridContainer,
.Playground-gridContainer,
.WhoUsesHero-gridContainer,
.WhyGo-gridContainer,
.UseCases-gridContainer,
.LearnGo-gridContainer,
.Security-gridContainer {
  padding: 3rem 1.5rem 1rem;
}
.WhoUsesHero-gridContainer {
  align-items: center;
}
@media only screen and (min-width: 28rem) {
  .WhoUses-gridContainer,
  .WhoUsesHero-gridContainer,
  .WhoUsesCaseStudyList-gridContainer,
  .WhyGo-gridContainer,
  .UseCases-gridContainer,
  .LearnGo-gridContainer,
  .Security-gridContainer {
    flex-direction: row;
    justify-content: space-between;
  }
  .WhoUsesHero-gridContainer {
    align-items: start;
  }
}
.WhyGo,
.WhoUses {
  background-color: var(--color-background);
}
.LearnGo,
.UseCases {
  background-color: var(--color-background-accented);
}
.WhoUses-header,
.WhyGo-header,
.LearnGo-header {
  flex: 0 0 100%;
  text-align: center;
}
.WhoUses-headerH2,
.WhyGo-headerH2,
.GettingStartedGo-headerH2,
.HomeSection-header,
.LearnGo-header h2 {
  color: var(--color-text);
  font-size: 1.25rem;
  font-style: normal;
  font-weight: 500;
  line-height: 1.75rem;
  margin-bottom: 1.5rem;
  margin-bottom: 0.5rem;
  margin-top: 0;
}
@media only screen and (min-width: 57.7rem) {
  .WhoUses-headerH2,
  .WhyGo-headerH2,
  .GettingStartedGo-headerH2,
  .HomeSection-header,
  .LearnGo-header h2 {
    font-size: 2.25rem;
    line-height: 2.625rem;
    margin-bottom: 1.5rem;
  }
}
.GoCarousel {
  background-color: var(--color-background-accented);
  display: flex;
  justify-items: center;
  overflow-x: hidden;
  position: relative;
}
.GoCarousel-wrapper {
  margin: auto;
  max-width: 62.5rem;
  overflow: hidden;
  position: relative;
  width: 90vw;
  z-index: 1;
}
.GoCarousel-slide {
  border-radius: 0.125rem;
  cursor: pointer;
  display: flex;
  position: relative;
  transition: all 1s;
}
.GoCarousel-controlPrev,
.GoCarousel-controlNext {
  border-radius: 1.25rem;
  border-width: 0;
  box-shadow: 0 0.0625rem 0.1875rem rgba(60, 64, 67, 0.15),
    0 0.0625rem 0.125rem rgba(60, 64, 67, 0.3);
  color: var(--gray-2);
  display: inline-block;
  font-size: 2.5rem;
  height: 2rem;
  line-height: 2.5rem;
  outline: none;
  padding: 0 0.375rem 0 0.25rem;
  position: absolute;
  transition: transform 100ms;
  width: 2rem;
  z-index: 2;
}
.GoCarousel-controlPrev:focus,
.GoCarousel-controlNext:focus {
  box-shadow: 0 0.0625rem 0.5rem rgba(60, 64, 67, 0.25),
    0 0.0625rem 0.25rem rgba(60, 64, 67, 0.4);
  color: var(--color-button-text-disabled);
}
.GoCarousel-controlPrev[hidden],
.GoCarousel-controlNext[hidden] {
  display: none;
}
.GoCarousel-icon {
  transform: translate(5%, -10%);
  user-select: none;
}
.GoCarousel-controlPrev,
.GoCarousel-controlNext {
  cursor: pointer;
  font-size: 1.6875rem;
  text-align: center;
  top: 50%;
  transform: translateY(-50%);
}
.GoCarousel-controlPrev {
  left: 1rem;
}
.GoCarousel-controlNext {
  right: 1rem;
}
.GoCarousel-controlPrev:active,
.GoCarousel-controlNext:active {
  transform: translateY(-50%) scale(0.9);
}
.GoCarousel-controlsContainer {
  display: block;
  margin: 0 auto;
  max-width: 75.75rem;
  position: relative;
  width: auto;
  width: 100%;
}
.GettingStartedGo-gridContainer {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  margin: 0 auto;
  max-width: 75.75rem;
  padding: 3.75rem 1.5rem 2.625rem;
}
@media only screen and (min-width: 57.7rem) {
  .GettingStartedGo-gridContainer {
    flex-direction: row;
  }
  .GoCarousel-controlPrev,
  .GoCarousel-controlNext {
    top: 50%;
  }
}
.GettingStartedGo-header {
  border-right: 0;
  flex: 0 37%;
  margin-bottom: 2rem;
  padding-right: 0;
}
@media only screen and (min-width: 57.7rem) {
  .GettingStartedGo-header {
    border-right: 0.0133rem solid var(--color-border);
    margin-bottom: 0;
    padding-right: 3.375rem;
  }
}
.GettingStartedGo-headerDesc {
  color: var(--color-text);
}
.GettingStartedGo-ctas {
  font-size: 0.875rem;
  font-weight: normal;
  margin-top: 1rem;
}
a.GettingStartedGo-primaryCta {
  background: var(--color-brand-primary);
  border-radius: 0.125rem;
  color: var(--white);
  display: inline-block;
  margin-right: 1.3125rem;
  padding: 0.4375rem 1.3125rem;
  text-decoration: none;
}
.GettingStartedGo-resourcesSection {
  display: flex;
  flex: 1;
  flex-direction: column;
}
@media only screen and (min-width: 38rem) {
  .GettingStartedGo-resourcesSection {
    flex-direction: row;
  }
}
.GettingStartedGo-resourcesList {
  flex: 50%;
  list-style: none;
  margin: 0;
  padding-left: 0;
  padding-right: 2.375rem;
}
@media only screen and (min-width: 57.7rem) {
  .GettingStartedGo-resourcesList {
    padding-left: 3.375rem;
    padding-right: 0;
  }
}
.GettingStartedGo-resourcesHeader {
  color: var(--color-button-text-disabled);
  font-size: 0.6875rem;
  margin-bottom: 1rem;
  text-transform: uppercase;
}
.GettingStartedGo-resourceItem {
  margin-bottom: 1rem;
}
a.GettingStartedGo-resourceItemTitle {
  color: var(--color-text);
  font-weight: 500;
}
.GettingStartedGo-resourceItemDescription {
  color: var(--color-button-text-disabled);
  font-size: 0.8125rem;
}
.WhoUses-header h4,
.WhyGo-headerH4,
.LearnGo-header h4,
.WhoUses-subheader {
  color: var(--color-text);
  font-size: 0.875rem;
  font-style: normal;
  font-weight: normal;
  margin-bottom: 1.5rem;
  margin-top: 0;
}
@media only screen and (min-width: 38rem) {
  .WhoUses-header h4,
  .WhyGo-headerH4,
  .LearnGo-header h4,
  .WhoUses-subheader {
    font-size: 1rem;
  }
}
.Hero {
  color: var(--white);
}
.Hero h1 {
  font-size: 2.625rem;
  font-weight: 500;
  margin: 1rem 0;
}
.Hero h2 {
  font-size: 1.5rem;
  font-weight: normal;
  max-width: 40rem;
}
.Hero-gridContainer {
  column-gap: 1rem;
  display: grid;
  grid-template-columns: 3fr minmax(6.25rem, 1fr);
  margin: 0 auto;
  max-width: 40rem;
  padding: 1rem 1.5rem 0;
}
.Hero-actions {
  display: flex;
  flex: 3 1;
  flex-direction: column;
  flex-wrap: wrap;
  grid-column: 1 / 3;
  margin-top: 1rem;
}
.Hero-actions > div {
  display: flex;
  width: 100%;
}
.Hero-actions a,
.Hero-actions a:visited,
.Hero-actions a:hover {
  color: var(--white);
  margin: 0.5rem 0;
  max-width: 13.75rem;
  padding: 1rem 0;
  text-align: center;
  text-decoration: underline;
}
.Hero-actions a.Primary,
.Hero-actions a.Secondary {
  align-items: center;
  border-radius: 0.25rem;
  display: flex;
  flex-wrap: nowrap;
  font-size: 0.875rem;
  height: 2.5rem;
  justify-content: center;
  line-height: 1.3125rem;
  margin: 0;
  text-decoration: none;
  width: 100%;
}
.Hero-actions a.Primary {
  margin: 0 1.3125rem 0 0;
}
.Hero-actions a.Primary {
  background-color: var(--color-button-accented);
  border: 0.0625rem solid var(--color-button-accented);
  box-shadow: 0 0.125rem 0.3125rem 0 rgba(0, 0, 0, 0.2);
  color: var(--black-1);
}
.Hero-actions a.Secondary {
  border: 0.0625rem solid var(--white);
  color: var(--white);
}
.DownloadBtn-versionNum {
  font-size: 0.6875rem;
  font-weight: 300;
}
.Hero-gopher {
  align-items: flex-end;
  display: flex;
  grid-column: 2 / 3;
  grid-row: 1 / 2;
  justify-content: flex-end;
}
.Hero-gopherLadder {
  bottom: 0;
  height: 15rem;
  max-width: 8rem;
  object-fit: cover;
  object-position: 100% 0;
  right: 0;
  width: 100%;
}
.Hero-blurb {
  grid-column: 1 / 2;
  margin: 0 auto;
}
.Hero-blurb h1 {
  font-size: 1.375rem;
  font-weight: 500;
  margin-top: 0;
}
.Hero-blurbList {
  font-size: 0.8125rem;
  list-style: none;
  margin-bottom: 0;
  margin-top: 1rem;
  padding: 0;
}
.Hero-blurbList li {
  line-height: 1.125rem;
  margin-bottom: 0.5rem;
  padding-left: 1.5rem;
  position: relative;
}
.Hero-blurbList svg {
  left: 0;
  margin-right: 0.6875rem;
  position: absolute;
  top: 0.3125rem;
}
.Hero-footnote {
  flex-direction: column;
  font-size: 0.8125rem;
  margin: 0.5rem 0 1.5rem;
}
.Hero-footnote p {
  margin: 0;
}
.Hero-footnote p + p {
  margin-top: 0.75rem;
}
.Hero-footnote a {
  color: var(--white);
  text-decoration: underline;
}
.SubHero-gridContainer {
  display: grid;
  gap: 0 5vw;
  grid-template-columns: 1fr;
}
.SubHero-blurb {
  margin: 0 auto 0;
  max-width: 25rem;
}
.SubHero-blurb:not(:last-of-type) {
  margin: 0 auto 4rem;
}
.SubHero-blurb h3 {
  margin-top: 0;
  text-align: center;
}
.SubHero-blurb p {
  margin-bottom: 0;
}
@media only screen and (min-width: 38rem) {
  .Hero-blurb {
    margin: auto;
  }
}
@media only screen and (min-width: 48rem) {
  .Hero-gridContainer {
    gap: 0 5vw;
    grid-template-columns: 2.5fr minmax(auto, 16.25rem);
    max-width: 75.75rem;
  }
  .Hero-gopherLadder {
    height: 23rem;
    max-width: 11.5rem;
  }
  .Hero-actions {
    align-items: flex-start;
    flex: 1 1;
    flex-direction: row;
    grid-column: 1 / 2;
    justify-content: initial;
  }
  .Hero-actions a,
  .Hero-actions a:visited,
  .Hero-actions a:hover {
    max-width: 17.5rem;
  }
  .Hero-actions a.Primary,
  .Hero-actions a.Secondary {
    font-size: 1.5rem;
    height: 4rem;
    line-height: 1.75rem;
  }
  .Hero-actions a.Secondary {
    margin: 0;
  }
  .Hero-footnote {
    margin: 1rem 0 1.5rem;
  }
  .Hero-blurb {
    grid-column: 1 / 2;
    margin: 2.5rem auto 0;
  }
  .Hero-gopher {
    grid-row: 1 / 3;
  }
  .Hero-blurb h1 {
    font-size: 2.45rem;
    font-weight: 500;
  }
  .Hero-blurbList {
    font-size: 1rem;
  }
  .SubHero-gridContainer {
    grid-template-columns: 1fr 1fr 1fr;
  }
  .SubHero-blurb {
    margin: 0 auto;
  }
  .DownloadBtn-versionNum {
    font-size: 1rem;
    font-weight: 300;
  }
}
.WhoUsesHero {
  background-color: var(--color-background-accented);
}
.WhoUses-subheader {
  color: var(--color-text);
  margin-bottom: 0;
  margin-left: auto;
  margin-right: auto;
  max-width: 25rem;
}
.WhoUsesHero-gridContainer {
  display: flex;
  justify-content: space-between;
  width: 100%;
}
.WhoUses-heroImg {
  max-width: 38.75rem;
  width: 100%;
}
.WhoUses-heroInnerLeft {
  margin-bottom: 2rem;
  margin-right: 0;
  max-width: 19.625rem;
  text-align: center;
  width: 90%;
}
@media only screen and (min-width: 57.7rem) {
  .WhoUses-heroInnerLeft {
    margin-right: 2rem;
    text-align: start;
    width: 19.625rem;
  }
  .WhoUses-subheader {
    max-width: none;
  }
}
.WhoUses-heroInnerLeft h3 {
  font-size: 1.5rem;
  font-weight: normal;
  margin: 1.375rem 0;
}
.WhoUses-heroInnerLeft p {
  color: var(--color-text-subtle);
  font-size: 0.875rem;
  margin-bottom: 1.188rem;
}
.WhoUsesCaseStudyList {
  align-content: center;
  display: flex;
  flex: 0 0 100%;
  justify-content: space-evenly;
  list-style: none;
}
.WhoUsesCaseStudyList-gridContainer {
  display: grid;
  gap: 0.8rem;
  grid-template-columns: repeat(3, minmax(0, 33.333%));
  margin: 1.5rem auto 3.75rem;
  padding: 0;
  width: 100%;
}
.WhoUsesCaseStudyList-caseStudy {
  align-items: center;
  display: flex;
  flex: 0 1 50%;
  height: 3.8512rem;
  justify-content: center;
  position: relative;
}
.WhoUsesCaseStudyList-caseStudy p {
  display: none;
}
.WhoUsesCaseStudyList-caseStudyLink:link,
.WhoUsesCaseStudyList-caseStudyLink:visited {
  color: var(--color-text-subtle);
  flex-direction: column;
  text-align: center;
  text-decoration: none;
  transition: box-shadow 0.2s ease-in-out;
}
.WhoUsesCaseStudyList-caseStudyLink:link:hover {
  box-shadow: 0 -0.0625rem 0.3125rem rgba(128, 134, 139, 0.09),
    0 0.1875rem 0.3125rem rgba(128, 134, 139, 0.06),
    0 0.0625rem 0.125rem rgba(60, 64, 67, 0.3),
    0 0.0625rem 0.1875rem rgba(60, 64, 67, 0.15);
}
.WhoUsesCaseStudyList-caseStudyLink img {
  height: auto;
}
@media only screen and (max-width: 38rem) {
  .WhoUsesCaseStudyList-caseStudyLink img {
    max-height: 2rem;
    max-width: 100%;
  }
}
.WhoUsesCaseStudyList-logo {
  margin: auto;
  max-height: 4rem;
  max-width: 9.375rem;
  width: auto;
}
.WhoUsesCaseStudyList-caseStudyLink:link,
.WhoUsesCaseStudyList-caseStudyLink:visited {
  background-color: var(--color-background-logo);
  border-radius: 0.25rem;
  box-shadow: var(--color-border) 0 0.0625rem 0.25rem;
  display: flex;
  height: 100%;
  padding: 0 0.3rem;
  width: 100%;
}
.WhoUsesCaseStudyList-seeAll {
  display: inline-block;
  margin-left: 1rem;
}
.WhoUsesCaseStudyList-seeAll:hover {
  text-decoration: none;
}
@media only screen and (min-width: 32rem) {
  .WhoUsesCaseStudyList-gridContainer {
    gap: 1rem 1.125rem;
  }
  .WhoUsesCaseStudyList-caseStudyLink {
    padding: 0 1.5rem;
  }
  .WhoUsesCaseStudyList-caseStudy {
    height: 5.9375rem;
  }
}
@media only screen and (min-width: 57.7rem) {
  .WhoUsesCaseStudyList-gridContainer {
    grid-template-columns: repeat(4, minmax(0, 25%));
  }
  .WhoUsesCaseStudyList-caseStudyLink:link,
  .WhoUsesCaseStudyList-caseStudyLink:visited {
    color: transparent;
  }
  .WhoUses-caseStudy a:link:hover,
  .WhoUses-caseStudy a:visited:hover {
    box-shadow: 0 0.125rem 0.5rem 0 rgba(0, 0, 0, 0.22);
  }
  .WhoUsesCaseStudyList-caseStudyLink:link:hover
    .WhoUsesCaseStudyList-caseStudyLink:visited:hover {
    color: var(--color-text-subtle);
    transition: all 0.2s ease-in-out;
  }
}
@media only screen and (min-width: 66.75rem) {
  .WhoUsesCaseStudyList-gridContainer {
    grid-template-columns: repeat(6, 1fr);
  }
  .WhoUsesCaseStudyList-caseStudy {
    flex: 0 1 1fr;
  }
}
.FeaturedUsers {
  margin: 2.375rem auto 3.75rem;
}
.FeaturedUsers table {
  border-collapse: collapse;
  margin-bottom: 1.5rem;
}
.FeaturedUsers table thead {
  background-color: var(--color-background-accented);
}
.FeaturedUsers table thead th {
  color: var(--color-button-text-disabled);
  font-size: 1rem;
  font-weight: 500;
  padding: 0.75rem 0;
}
.FeaturedUsers table thead th:not(:nth-child(1)) {
  text-align: left;
}
.FeaturedUsers table td th:not(:nth-child(1)) {
  text-align: left;
}
.FeaturedUsers table tr td,
.FeaturedUsers table tr th {
  padding: 1rem 0.3rem;
  width: 30%;
}
.FeaturedUsers table tr td:first-of-type {
  padding-left: 1rem;
}
.FeaturedUsers table tr td:first-of-type,
.FeaturedUsers table tr th:first-of-type {
  width: 15%;
}
.FeaturedUsers table tr td:nth-of-type(2),
.FeaturedUsers table tr th:nth-of-type(2) {
  width: 40%;
}
.FeaturedUsers table td {
  color: var(--color-text);
  font-size: 0.875rem;
  vertical-align: top;
}
.FeaturedUsers table td ul {
  margin-top: 0;
  padding-left: 1rem;
}
.FeaturedUsers table td ul li {
  font-size: 0.875rem;
}
.FeaturedUsers table thead {
  color: var(--color-button-text-disabled);
  font-size: 1rem;
  font-weight: 500;
}
.FeaturedUsers table tbody tr {
  border-bottom: var(--border);
}
.FeaturedUsers table tbody tr td {
  margin: 0;
}
.FeaturedUsers table tbody tr td img {
  width: 5rem;
}
.FeaturedUsers-moreProjectsBtn {
  background: transparent;
  border: none;
  color: #5dc9e2;
  cursor: pointer;
  font-size: 0.875rem;
  padding: 0.5rem 0;
  position: relative;
}
.FeaturedUsers--hiddenDesktop {
  display: block;
  height: 3rem;
  margin-bottom: 1rem;
  width: auto;
}
.FeaturedUsers--hiddenMobile {
  display: none;
  vertical-align: middle !important;
}
@media only screen and (max-width: 48rem) {
  .FeaturedUsers table tbody tr td:last-of-type {
    padding-left: 1rem;
    padding-top: 5rem;
  }
}
@media only screen and (min-width: 48rem) {
  .FeaturedUsers--hiddenMobile {
    display: table-cell;
  }
  .FeaturedUsers table tr td {
    padding: 2rem 2rem 1rem 0;
    position: relative;
    width: 30%;
  }
  .FeaturedUsers--hiddenDesktop {
    display: none;
  }
}
.WhoUsesCaseStudy-librariesWrapper {
  margin-bottom: 2.25rem;
  margin-top: 1.875rem;
}
a.WhoUsesCaseStudy-librariesViewMoreLink {
  color: var(--color-text-link);
  font-size: 0.875rem;
}
.WhoUsesCaseStudy-libraryTitle {
  font-weight: normal;
}
.WhoUsesCaseStudy-librariesList {
  column-gap: 7.375rem;
  display: grid;
  grid-template-columns: 1fr;
  list-style: none;
  margin: 1.5rem 0 0;
  padding: 0;
}
.WhoUsesCaseStudy-librariesList h3 {
  font-weight: 500;
}
.WhoUsesCaseStudy-library {
  margin: 0 0 1.5rem;
}
.WhoUsesCaseStudy-library p {
  color: var(--color-text);
  font-size: 1rem;
  line-height: 1.1875rem;
  margin: 0.5rem 0 0;
}
.WhoUsesCaseStudy-view-more {
  margin-bottom: 2.5rem;
}
.WhoUsesCaseStudy-view-more a {
  color: var(--color-text);
  font-size: 0.875rem;
  font-style: normal;
  font-weight: 500;
  margin-bottom: 2.5rem;
  text-align: center;
}
@media only screen and (min-width: 38rem) {
  .WhoUsesCaseStudy-librariesList {
    column-gap: 4rem;
    grid-template-columns: 1fr 1fr;
  }
}
.UseCases-gridContainer {
  flex-direction: row;
  justify-content: space-around;
  margin: -1rem 0 0 -1rem; /* Offset gutters for the leftmost and top cells in the grid. */
}
.UseCase {
  flex: 1 0 15.625rem;
  margin-top: 1rem;
  max-width: 15.625rem;
  padding: 1rem 0 0 1rem; /* Gutter between grid cells. */
}
.UseCase-logo {
  align-items: center;
  background: linear-gradient(10.64deg, var(--color-text-link) 0%, #00a29c 100%);
  border-radius: 50%;
  display: flex;
  height: 3.75rem;
  justify-content: center;
  margin: auto;
  width: 3.75rem;
}
.UseCase-logo img {
  height: 2.625rem;
  width: 2.625rem;
}
.UseCase-title {
  text-align: center;
}
.UseCase-action {
  font-size: 1.125rem;
  line-height: 2.5rem;
  text-align: center;
}
.WhyGo-gridContainer {
  align-items: center;
  justify-content: center;
}
.WhyGo-reasons {
  column-gap: 3.313rem;
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  justify-content: space-between;
  list-style: none;
  padding-left: 0;
  row-gap: 2rem;
}
.WhyGo-forwardArrowIcon,
.Solutions-forwardArrowIcon {
  font-size: 1rem;
}
@media only screen and (min-width: 57.7rem) {
  .WhyGo-reasons {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media only screen and (min-width: 72.75rem) {
  .WhyGo-reasons {
    grid-template-columns: repeat(3, 1fr);
  }
}
.WhyGo-reason {
  background-color: var(--color-background-accented);
  border: var(--border-card);
  border-radius: 0.25rem;
  display: flex;
  flex: 0 30%;
  flex-direction: column;
  height: 100%;
  justify-content: space-between;
  margin-bottom: 1.5rem;
  margin-top: 0;
  max-width: 40rem;
}
.WhyGo-reasonDetails {
  padding: 2rem 2rem 0.188rem;
}
.WhyGo-reasonFooter {
  background-color: var(--color-background-card-footer);
  padding: 1rem 2rem 2rem;
}
.WhyGo-reasonIcon {
  margin-bottom: 1rem;
  text-align: left;
}
.WhyGo-reasonIcon img {
  height: 2.25rem;
}
.WhyGo-reasonLearnMoreLink {
  margin-top: 1.5rem;
}
.WhyGo-reasonLearnMoreLink a {
  align-items: center;
  display: flex;
  font-size: 0.875rem;
  text-decoration: none;
}
.WhyGo-reasonPackages {
  color: var(--color-text);
  font-size: 0.875rem;
}
.WhyGo-reasonPackagesHeader {
  margin-bottom: 0.688rem;
}
.WhyGo-reasonPackagesHeader img {
  height: 0.938rem;
  margin-right: 0.376rem;
  padding: 0.063rem 0 0.063rem;
  vertical-align: bottom;
}
.WhyGo-reasonPackagesList {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  padding: 0;
}
.WhyGo-reasonPackage {
  background: var(--color-background-accented);
  border: var(--border-card);
  border-radius: 0.125rem;
  box-sizing: border-box;
  color: var(--color-text-link);
  font-size: 0.688rem;
  line-height: 0.813rem;
  list-style: none;
  margin: 0.125rem 0.5rem 0.5rem 0;
  padding: 0.188rem 0.188rem;

  text-align: center;
}
.WhyGo-reasonShowMoreImgWrapper {
  align-items: center;
  background-color: var(--color-background-accented);
  border-radius: 50%;
  display: flex;
  height: 14.313rem;
  margin: 2.5rem auto 1.375rem;
  width: 14.313rem;
}
.WhyGo-reasonShowMoreImg {
  margin-left: 5%;
  width: 100%;
}
.WhyGo-reasonShowMoreLink {
  font-size: 0.875rem;
  text-align: center;
}
.WhyGo-reasonShowMoreLink a {
  background-color: var(--color-brand-primary);
  border-radius: 0.125rem;
  box-sizing: border-box;
  color: var(--white);
  display: inline-block;
  padding: 0.275rem 1.063rem 0.275rem 0.275rem;
  text-decoration: none;
}
.WhyGo-reasonShowMoreLink a i {
  padding-bottom: 0.063rem;
  vertical-align: middle;
}
.WhyGo-reasonText p {
  color: var(--color-text);
  font-size: 1rem;
  font-weight: normal;
}
.WhyGo-reasonTitle {
  color: var(--color-text);
  font-size: 1.125rem;
  font-weight: 500;
}
.WhyGo-gopher {
  flex: 1;
  max-width: 28.4375rem;
  text-align: center;
}
.WhyGo-gopher img {
  width: 100%;
}

.headerWithLink {
  display: flex;
  justify-content: space-between;
  width: 100%;
}

.headerWithLink h3 {
  font-weight: 500;
  margin-bottom: 0;
}
.headerLink {
  align-self: center;
  font-size: 1.125rem;
  font-weight: 600;
  margin: 0;
}
.LearnGo-subHeader {
  display: flex;
  justify-content: space-between;
  width: 100%;
}
.LearnGo-subHeader h3 {
  color: var(--color-text-subtle);
  font-size: 1rem;
  font-weight: normal;
}
.LearnGo-courses {
  display: flex;
  flex: 1 0 100%;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-around;
  list-style: none;
  margin: 0 0 1rem -1rem; /* Offset gutters for the leftmost and top cells in the grid. */
  padding-left: 0;
}
@media only screen and (min-width: 72.75rem) {
  .LearnGo-courses {
    justify-content: space-between;
  }
}
.LearnGo-courseItem {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  padding: 1rem 0 0 1rem; /* Gutter between grid cells. */
}
.LearnGo-courseItem a {
  color: var(--color-text);
}
.LearnGo-courseTitle {
  text-align: center;
}
.LearnGo-courseImage {
  align-items: center;
  background-color: var(--color-background);
  border-radius: 0.3125rem;
  box-shadow: 0 0.125rem 0.5rem 0 rgba(0, 0, 0, 0.22);
  display: flex;
  height: 11rem;
  justify-content: center;
  margin: auto;
  max-width: 16.5rem;
  width: 16.5rem;
}
.LearnGo-courseImage img {
  max-height: 100%;
  max-width: 100%;
}
.GoCarousel-eventsWrapper {
  margin: auto;
  max-width: 68rem;
  overflow: hidden;
  position: relative;
  width: 84vw;
}
.GoCarousel-eventsSlides {
  display: flex;
  left: 0;
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
  top: 0;
  transition: left 0.2s ease-out;
  width: 625rem;
}
.GoCarousel-eventGroup {
  align-items: flex-start;
  border-radius: 0.125rem;
  cursor: pointer;
  display: flex;
  margin: 1rem 0;
  padding: 1rem;
  position: relative;
  transition: all 1s;
  width: 84vw;
}
.GoCarousel-eventsSlidesingleItem {
  display: flex;
  flex: 1;
  margin-right: 2rem;
}
.GoCarousel-eventThumbnail {
  background-color: var(--white);
  border: var(--border);
  border-radius: 0.5rem;
  display: flex;
  height: 100%;
  margin-right: 1.3125rem;
  width: 6.625rem;
}
.GoCarousel-eventThumbnail img {
  align-self: center;
  height: auto;
  object-fit: contain;
  padding: 1rem;
  width: 100%;
}
.GoCarousel-eventBody {
  display: inline-flex;
  flex: 1;
  flex-direction: column;
  height: 100%;
  min-width: 0;
  position: relative;
}
.GoCarousel-eventDate {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.GoCarousel-eventDate p {
  color: var(--color-button-text-disabled);
  font-size: 0.8125rem;
  font-style: normal;
  margin: 0 0 1.5rem 0;
}
.GoCarousel-eventHeader {
  color: var(--color-button-text-disabled);
  font-size: 0.6875rem;
  font-weight: 500;
  margin: 0 0 0.875rem;
  text-transform: uppercase;
}
.GoCarousel-eventName {
  margin: 0 0 0.25rem 0;
  width: 100%;
}
.GoCarousel-eventName a {
  -webkit-box-orient: vertical;
  color: var(--color-text);
  display: -webkit-box;
  font-weight: 500;
  -webkit-line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
}
.LearnGo-eventDescription {
  -webkit-box-orient: vertical; /* See webkit-line-clamp */
  display: -webkit-box; /* See webkit-line-clamp */
  -webkit-line-clamp: 4; /* Elide flex text. webkit-line-clamp is broadly compatible with browsers. */
}
.GoCarousel-viewMore {
  bottom: 0;
  font-size: 0.875rem;
  margin: 0;
  min-width: 6.25rem;
  position: absolute;
}
@media only screen and (min-width: 48rem) {
  .GoCarousel-eventGroup {
    width: 42vw;
  }
}
@media only screen and (min-width: 66.75rem) {
  .GoCarousel-eventThumbnail img {
    display: block;
    margin: auto;
  }
  .GoCarousel-eventDate {
    flex: 0;
    flex-direction: row;
    justify-content: flex-start;
    min-width: 9rem;
  }
  .GoCarousel-eventText {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-width: 0;
    position: relative;
  }
  .GoCarousel-viewMore {
    text-align: left;
    width: 15.625rem;
  }
  .GoCarousel-eventBody {
    display: flex;
    flex-direction: column;
  }
  .GoCarousel-eventGroup {
    max-width: 22.66rem;
    width: 28vw;
  }
}

.Learn-hero,
.Security-hero {
  background-color: var(--color-background-accented);
  color: var(--color-text);
  background-image: radial-gradient(
    60.0625rem 60.0625rem,
    #bfeaf4 50%,
    transparent 50%
  );
  background-position: top -50rem left -9rem;
  background-repeat: no-repeat;
  background-size: 75rem 75rem;
  padding: 0 2.25rem 0;
}
[data-theme="dark"] .Learn-hero .BreadcrumbNav-li:not(:last-child):after,
[data-theme="dark"] .Security-hero .BreadcrumbNav-li:not(:last-child):after {
  background: url('/images/icons/arrow-forward.svg') no-repeat;
  content: ' ';
  display: block;
  height: 1rem;
  margin: 0 0.8125rem;
  width: 1rem;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme='light']) .Learn-hero .BreadcrumbNav-li:not(:last-child):after,
  :root:not([data-theme='light']) .Security-hero .BreadcrumbNav-li:not(:last-child):after {
    background: url('/images/icons/arrow-forward.svg') no-repeat;
  }
}
.Learn-hero .Container,
.Security-hero .Container {
  max-width: 68.125rem;
  position: relative;
  z-index: 1;
}

.Learn-heroInner,
.Security-heroInner {
  display: flex;
  flex-direction: column-reverse;
}

.Learn-heroGopher,
.Security-heroGopher {
  display: flex;
  justify-content: flex-end;
  padding-top: 1.25rem;
}

.Learn-heroGopher img,
.Security-heroGopher img {
  height: 13.5625rem;
  width: auto;
}

.Learn-heroContent {
  padding-top: 1.125rem;
}

.Learn-heroContent a:not(.js-downloadBtn) {
  text-decoration: underline;
}

.Learn-heroContent h1,
.Security-heroContent h1 {
  font-size: 1.5rem;
  font-style: normal;
  font-weight: normal;
  line-height: 2rem;
}

.Learn-heroContent p,
.Security-heroContent p {
  color: var(--color-text);
  font-size: 0.875rem;
  max-width: 27.1875rem;
}

.Learn-heroAction,
.Security-heroAction {
  align-items: center;
  background-color: var(--color-brand-primary);
  border-radius: 0.25rem;
  display: flex;
  height: 2.5rem;
  justify-content: center;
  width: 10.5rem;
}

.Learn-heroAction a,
.Learn-heroAction a:hover,
.Learn-heroAction a:visited,
.Security-heroAction a,
.Security-heroAction a:hover,
.Security-heroAction a:visited {
  color: var(--white);
  font-size: 0.875rem;
  font-weight: 500;
  text-decoration: none;
}

.Learn-heroAction span,
.Security-heroAction span {
  font-weight: normal;
}

/* Learn/Security page grid rules */

.LearnGo-gridContainer,
.Security-gridContainer {
  display: flex;
  justify-content: center;
  padding: 0rem 0rem 1rem;
}

.Learn-cardList,
.Security-cardList {
  column-gap: 3.313rem;
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  justify-content: space-between;
  list-style: none;
  padding-left: 0;
  row-gap: 2rem;
}

.Learn-card,
.Security-card {
  height: 23.375rem;
  max-width: 40rem;
}

@media only screen and (min-width: 48rem) {
  .Learn-cardList,
  .Security-cardList {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media only screen and (min-width: 72.75rem) {
  .Learn-cardList,
  .Security-cardList {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* End Learn/Security page grid rules */

/* Learn quickstart grid */

.Learn-hero .Learn-quickstarts {
  margin: 0;
  margin-top: 4rem;
}

.Learn-hero .Learn-quickstart {
  height: auto;
}

.Learn-hero .LearnGo-gridContainer {
  padding: 3rem 0rem 3rem;
}

@media only screen and (min-width: 48rem) {
  .Learn-hero .Learn-cardList {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media only screen and (min-width: 57.7rem) {
  .Learn-hero .Learn-cardList {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media only screen and (min-width: 72.75rem) {
  .Learn-hero .Learn-cardList {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* Learn hero section */

@media only screen and (min-width: 57.7rem) {
  .Learn-hero,
  .Security-hero {
    background-position: top -35rem left 30rem;
  }

  .Learn-heroInner,
  .Security-heroInner {
    flex-direction: row;
    justify-content: space-between;
  }

  .Learn-heroContent,
  .Security-heroContent {
    padding-top: 3.75rem;
  }

  .Learn-heroGopher,
  .Security-heroGopher {
    flex: 1;
    justify-content: center;
    padding-top: 2.625rem;
  }

  .Learn-heroGopher img,
  .Security-heroGopher img {
    height: 21.0625rem;
  }

  .Learn-heroAction,
  .Security-heroAction {
    height: 4rem;
    width: 16.5625rem;
  }

  .Learn-heroAction a,
  .Learn-heroAction a:hover,
  .Learn-heroAction a:visited,
  .Security-heroAction a,
  .Security-heroAction a:hover,
  .Security-heroAction a:visited {
    font-size: 1.5rem;
  }

  .Learn-heroAction span,
  .Security-heroAction span {
    font-size: 1rem;
  }
}

@media only screen and (min-width: 91rem) {
  .Learn-hero,
  .Security-hero {
    background-position: top -35rem left 50rem;
  }
}

.Learn-guided,
.Learn-online,
.Learn-selfPaced,
.Learn-books,
.Learn-inPersonTraining,
.Learn-meetups {
  margin-top: 3.75rem;
  padding: 0 1.5rem;
}

.Learn-learningResources {
  align-items: center;
  display: flex;
  flex-direction: column;
  margin: 3.75rem 0;
}

.Learn-learningResources h2,
.Learn-learningResourcesHeader h3,
.Security-sectionHeader h3 {
  color: var(--color-text);
  margin: 0;
}

.Learn-learningResources h2 {
  font-size: 2rem;
  font-weight: 500;
  line-height: 2.3125rem;
}

.Learn-learningResourcesHeader,
.Security-sectionHeader {
  color: var(--color-text);
  display: flex;
  justify-content: center;
}

.Learn-subHeader h2 {
  color: var(--color-text);
}

.Learn-learningResourcesHeader h3 {
  font-size: 1.5rem;
  font-weight: bold;
  line-height: 2.25rem;
}

.Learn-selfPaced .Learn-card .Card-content {
  justify-content: space-between;
}

.Learn-online .Card-thumbnail {
  background-position: 1.5rem center;
  background-repeat: no-repeat;
  background-size: auto 1.5rem;
  height: 7.5625rem;
}

.Learn-selfPaced .Learn-card {
  height: 20.3125rem;
}

@media only screen and (min-width: 48rem) {
  .Learn-learningResourcesHeader {
    display: flex;
    justify-content: flex-start;
  }

  .Learn-learningResourcesHeader h2,
  .Security-sectionHeader h2 {
    font-size: 2.25rem;
    line-height: 2.625rem;
  }
}

.Learn-cardList.Learn-bookList {
  grid-template-columns: repeat(1, 1fr);
  width: 100%;
}

.Learn-card.Learn-book {
  height: auto;
}

@media only screen and (min-width: 48rem) {
  .Learn-cardList.Learn-bookList {
    grid-template-columns: repeat(3, 1fr);
  }

  .Learn-card.Learn-book {
    max-width: 13.125rem;
  }
}

@media only screen and (min-width: 57.7rem) {
  .Learn-cardList.Learn-bookList {
    grid-template-columns: repeat(4, 1fr);
  }
}

@media only screen and (min-width: 72.75rem) {
  .Learn-cardList.Learn-bookList {
    grid-template-columns: repeat(5, 1fr);
  }
}

.Learn-inPersonList {
  display: flex;
  flex: 1 0 100%;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-between;
  list-style: none;
  margin: 1.875rem 0 1.875rem -1rem; /* Offset gutters for the leftmost and top cells in the grid. */
  padding-left: 0;
}

.Learn-inPerson {
  border-bottom: var(--border);
  flex: 1 1 31.25rem;
  margin: 0 0 0 1rem; /* Gutter between grid cells. */
  max-width: 31rem;
  padding-bottom: 1.25rem;
}

.Learn-inPerson:nth-child(1),
.Learn-inPerson:nth-child(2) {
  border-top: var(--border);
}
.Learn-inPersonTitle {
  font-size: 1.25rem;
}
.Learn-inPersonBlurb {
  color: var(--color-text);
  margin: 0;
}

.Learn-events {
  flex: 1 0 100%;
  list-style: none;
  margin: 0.5rem 0 1.875rem;
  padding: 0;
  width: 100%;
}
.Learn-eventItem {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  padding: 1.875rem 0 0.175rem 0;
}
.Learn-eventItem + .Learn-eventItem {
  border-top: var(--border);
}

.Learn-eventThumbnail {
  align-self: center;
  display: flex;
  flex: 0 0 3rem;
  height: auto;
  margin-bottom: 1rem;
}
.Learn-eventThumbnail--noimage {
  background-color: var(--color-background);
}
.Learn-eventThumbnail img {
  height: auto;

  object-fit: cover;
  width: 100%;
}
.Learn-eventAttendees {
  display: flex;
}
.Learn-eventAttendeesItem img {
  border-radius: 100%;
  height: 2rem;
  width: 2rem;
}
.Learn-eventBody {
  display: flex;
  flex: 1;
  flex-direction: column;
  max-width: 100%;
  min-width: 0;
}
.Learn-eventDate {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;

  margin-bottom: 1rem;
}
.Learn-eventDate p {
  color: var(--color-text-subtle);
  margin: 0;
}
.Learn-eventName {
  color: var(--color-text);
  font-size: 1.25rem;
  font-weight: 500;
  margin: 0;

  margin-bottom: 1rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.Learn-eventName a {
  color: var(--color-text);
  text-decoration: none;
}
.Learn-eventDescription {
  color: var(--color-text);
  -webkit-box-orient: vertical; /* See webkit-line-clamp */
  display: -webkit-box; /* See webkit-line-clamp */
  -webkit-line-clamp: 4; /* Elide flex text. webkit-line-clamp is broadly compatible with browsers. */
  line-height: 24px;
  overflow: hidden;
  text-overflow: ellipsis;
}
.Learn-eventText {
  margin-bottom: 0.5rem;
}
.Learn-viewMore {
  align-items: center;
  display: flex;
  font-size: 0.875rem;
  margin: 0;
  min-width: 6.25rem;
}
.Learn-viewMore:hover {
  text-decoration: none;
}
.Learn-viewMore span {
  font-size: 1rem;
  margin-left: 0.48rem;
}
@media only screen and (min-width: 33.75rem) {
  .Learn-eventItem {
    flex-direction: row;
  }

  .Learn-eventBody {
    max-width: 46.825rem;
  }
  .Learn-eventThumbnail {
    height: 8rem;
    margin-bottom: 0;
    margin-right: 1rem;
    min-width: 8rem;
  }
  .Learn-eventThumbnail img {
    height: 8rem;
    object-fit: contain;
    width: 8rem;
  }
  .Learn-eventDate {
    flex: 0;
    flex-direction: column;
    justify-content: center;
    min-width: 9rem;
  }
  .Learn-eventText {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding-right: 2rem;
  }
  .Learn-eventDescription {
    -webkit-line-clamp: 2; /* see non-media-query definition. */
    margin: 0 0 0.5rem;
  }
  .Learn-viewMore {
    align-self: center;
    text-align: right;
  }
  .Learn-eventItem {
    padding: 1.875rem 0;
  }
}

.Learn-tile a {
  width: 100%;
}

.Learn-tileList {
  display: grid;
  gap: 2rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  list-style: none;
  padding: 0;
}
@media only screen and (min-width: 38rem) {
  .Learn-tileList {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
@media only screen and (min-width: 48rem) {
  .Learn-tileList {
    justify-content: space-between;
  }
  .Learn-tileList {
    column-gap: 3rem;
  }
}
.Learn-tile {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
.Learn-tile a {
  color: var(--color-text);
}
.Learn-tileTitle {
  display: block;
  font-size: 0.75rem;
  font-style: normal;
  font-weight: normal;
  line-height: 0.875rem;
  margin: 1.5rem auto 0;
  overflow-wrap: break-word;
  text-align: center;
}
.Learn-tileThumbnail {
  align-items: center;
  background-color: var(--color-background);
  border-radius: 0.3125rem;
  box-shadow: 0 0.125rem 0.5rem 0 rgba(0, 0, 0, 0.22);
  display: flex;
  justify-content: center;
  margin: auto;
  width: 100%;
}
.Learn-tileThumbnail img {
  max-height: 100%;
  max-width: 100%;
}
.Learn-tileThumbnail--book img {
  max-height: 100%;
  max-width: 100%;
}

.Solutions-title,
.Solutions-useCases,
.Solutions-caseStudies {
  margin: auto;
  max-width: 75.75rem;
}
.Solutions-title,
.Solutions-useCases,
.Solutions-caseStudies {
  padding: 0 1.5rem;
}
.SolutionsHeroCarousel-wrapper {
  max-width: 68rem;
  width: 76vw;
}
.SolutionsHeroCarousel-slides {
  transition: left 0.2s ease-out;
}
.GoCarousel-controlNext-solutionsHero {
  right: 0.5rem;
}
.GoCarousel-controlPrev-solutionsHero {
  left: 0.5rem;
}
.SolutionsHeroCarousel-slides {
  display: flex;
  left: 0;
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
  top: 0;
  width: 625rem;
}
.SolutionsHeroCarousel-slide {
  display: flex;
  flex-direction: column;
  justify-content: center;
  max-width: 68rem;
  padding: 0 0.2rem;
  position: relative;
  width: 76vw;
}
@media only screen and (min-width: 38rem) {
  .SolutionsHeroCarousel-wrapper,
  .SolutionsHeroCarousel-slide {
    width: 82vw;
  }
  .GoCarousel-controlPrev-solutionsHero {
    left: 2rem;
  }
  .GoCarousel-controlNext-solutionsHero {
    right: 2rem;
  }
}
.Solutions-headline .Container {
  display: flex;
}
.Solutions-headline .GoCarousel {
  background-color: var(--color-background-accented);
  color: var(--color-text);
}
.Solutions-useCases,
.Solutions-caseStudies {
  margin-bottom: 6.25rem;
}
.Solutions-title {
  padding: 5rem 1.5rem 3rem;
}
.Solutions-title h1,
.WhoUsesSubPage-heroInner--caseStudy h1,
.WhoUsesSubPage-heroInner--useCase h1 {
  font-size: 1.5rem;
  font-style: normal;
  font-weight: normal;
  line-height: 2rem;
  margin-bottom: 0.5rem;
}
.WhoUsesSubPage-heroInner--caseStudy h1 {
  margin-top: 0;
}
.WhoUsesSubPage-heroInner--useCase h1 {
  margin-top: 1rem;
}
.Solutions-title h1 {
  text-align: center;
}
.Solutions-title h3 {
  color: var(--color-text);
  font-size: 1rem;
  font-weight: normal;
  margin-bottom: 0;
  text-align: center;
}
.Solutions-headlineText {
  display: inline-block;
}
.Solutions-headlineImg {
  margin-top: 1.5rem;
  position: relative;
  width: 100%;
}
.Solutions-headlineImg img {
  display: block;
  width: 100%;
}
.Solutions-headlineBody {
  align-items: flex-start;
  color: var(--color-text-subtle);
  display: flex;
  flex-direction: column;
  font-size: 0.875rem;
  font-weight: normal;
  margin-bottom: 1.5rem;
}
.Solutions-headlineBody a {
  align-items: center;
  display: flex;
  margin-top: 1rem;
  text-decoration: none;
}
.Solutions-headlineBody a i,
.WhyGo-reasonLearnMoreLink a i,
.WhyGo-reasonShowMoreLink a i {
  margin-left: 0.2rem;
  text-decoration: none;
  transition: transform 100ms ease-in-out;
}
.Solutions-headlineBody a:hover i,
.WhyGo-reasonLearnMoreLink a:hover i,
.WhyGo-reasonShowMoreLink a:hover i {
  transform: translateX(0.2rem);
}
.Solutions-headlineNotification {
  color: var(--color-text-subtle);
  font-size: 0.75rem;
  font-style: normal;
  font-weight: 500;
  line-height: 2.25rem;
  margin: 1.5rem 0;
}
.Solutions-headline {
  background-color: var(--color-background-accented);
}
.Solutions-headline h2 {
  font-size: 1.5rem;
  font-style: normal;
  font-weight: normal;
  line-height: 2rem;
  margin-bottom: 1rem;
}
@media only screen and (min-width: 66.75rem) {
  .SolutionsHeroCarousel-slide {
    align-items: center;
    flex-direction: row-reverse;
    justify-content: space-between;
  }
  .Solutions-headlineText {
    width: 33%;
  }
  .Solutions-headlineImg {
    height: 100%;
    margin-bottom: 0;
    width: 60%;
  }
  .Solutions-headlineImg img {
    max-height: 100%;
    position: absolute;
    right: 0;
    top: 50%;
    transform: translate(0, -50%);
  }
}
.SolutionsTabs-tabList {
  margin-top: 4rem;
  width: 100%;
}
.SolutionsTabs-tabList hr {
  border: var(--border);
  margin: -0.0625rem 0 2rem;
}
.SolutionsTabs-tab {
  background-color: var(--color-background);
  border-style: none;
  color: var(--color-text);
  cursor: pointer;
  font-size: 1rem;
  font-weight: 500;
  line-height: 2.25rem;
  margin-right: 1.625rem;
  outline: none;
  padding: 0.375rem 0;
}
.SolutionsTabs-tab:focus {
  border-bottom: 0.25rem solid #c6c8ca;
}
.SolutionsTabs-tab:last-of-type {
  margin-right: 0;
}
.SolutionsTabs-tab[aria-selected='true'] {
  border-bottom: 0.25rem solid var(--color-brand-primary);
}
@media only screen and (min-width: 48rem) {
  .SolutionsTabs-tab {
    font-size: 1.125rem;
    margin-right: 4rem;
  }
}
.Solutions-useCasesHeader h2,
.Solutions-caseStudiesHeader h2 {
}
.Solutions-cardList,
.Solutions-caseStudyList {
  display: grid;
  grid-gap: 1.5rem;
  grid-template-columns: repeat(1, 1fr);
  list-style: none;
  padding-left: 0;
}
.Solutions-cardList[hidden] {
  display: none;
}
.Solutions-caseStudiesList {
  margin: 0 0 1rem 0;
}
.Solutions-card {
  background: var(--color-background-accented);
  border: var(--border-card);
  border-radius: 0.625rem;
  box-sizing: border-box;
  flex: 0 100%;
}
@media only screen and (min-width: 38rem) {
  .Solutions-cardList {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media only screen and (min-width: 57.7rem) {
  .Solutions-card {
    box-shadow: none;
    flex: 0 48%;
  }
  .Solutions-card:hover {
    box-shadow: 0 0.125rem 0.5rem 0 rgba(0, 0, 0, 0.22);
    transition: all 0.2s ease-in-out;
  }
  .Solutions-cardList {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media only screen and (min-width: 62.5rem) {
  .Solutions-card {
    box-shadow: none;
    flex: 0 30%;
  }
}
.Solutions-useCaseLogo {
  height: 5rem;
  margin: 0 2rem;
  width: 100%;
}
.Solutions-card a:link,
.Solutions-card a:visited {
  color: var(--color-text);
  display: block;
  text-decoration: none;
}
.Solutions-useCaseAction {
  bottom: 1rem;
  color: var(--color-text-link);
  font-size: 1rem;
  font-weight: normal;
  position: absolute;
}
.Solutions-useCaseAction {
  align-items: center;
  display: flex;
}
.Solutions-useCaseAction i {
  margin-left: 0.5rem;
}
.Solutions-useCaseDescription {
  color: var(--color-text-subtle);
  font-size: 1rem;
  font-style: normal;
  font-weight: normal;
}
.Solutions-useCaseTitle {
  color: var(--color-text);
  font-size: 1.125rem;
  font-weight: 500;
}
.Solutions-useCaseBody {
  flex: 1;
  justify-content: center;
  margin-bottom: 2.5rem;
}

.Solutions-useCaseLogo {
  display: flex;
  flex: 1;
  justify-content: center;
  margin: 0;
}

.Solutions-useCaseLogo img {
  align-self: center;
  max-height: 4rem;
  max-width: 11rem;
}
.Solutions-useCaseLink {
  height: 100%;
  padding: 2rem 2rem 3rem;
  position: relative;
}
.Solutions-footer {
  margin: 2rem 0 2.875rem;
}
.Solutions-footer p {
  color: var(--color-text);
  font-size: 1.125rem;
  font-weight: normal;
}
.TestimonialsGo-quotes {
  display: flex;
  left: 0;
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
  top: 0;
  transition: left 0.2s ease-out;
  width: 625rem;
}
.TestimonialsGo-quoteGroup {
  align-items: flex-start;
  display: flex;
  margin: 0 0;
  max-width: 62.5rem;
  padding: 3.75rem 2rem 2.25rem;
  width: 90vw;
}
.TestimonialsGo-quoteSingleItem {
  display: flex;
  flex: 1;
}
.TestimonialsGo-quoteContainer {
  display: inline-flex;
  flex: 1;
  flex-direction: column;
  min-width: 0;
}
.TestimonialsGo-quoteSection {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.TestimonialsGo-quoteSection p {
  color: var(--color-text);
  font-size: 0.875rem;
  text-align: center;
}
.TestimonialsGo-author {
  color: var(--color-text);
  font-size: 0.8rem;
  font-style: normal;
  font-weight: normal;
  text-align: right;
  width: 100%;
}
.PullQuote-title,
.BackgroundQuote-title {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.NoWrapSpan {
  white-space: nowrap;
}
@media only screen and (min-width: 52rem) {
  .TestimonialsGo-quote {
    font-size: 1.3125rem;
  }
  .TestimonialsGo-author {
    font-size: 1rem;
  }
  .TestimonialsGo-quoteSection p {
    font-size: 1.3125rem;
    line-height: 2.25rem;
  }
}
.PullQuote {
  color: var(--color-text-subtle);
  margin-bottom: 2rem;
}
.PullQuote-body {
  margin: 1.5rem 0 1rem;
}
.PullQuote-link,
p.PullQuote-body,
p.BackgroundQuote-body {
  color: inherit;
}
.PullQuote-author,
.BackgroundQuote-author {
  display: flex;
  flex-wrap: wrap;
  font-style: normal;
  font-weight: 500;
  justify-content: flex-end;
  margin-left: auto;
  margin-top: 1rem;
}
.PullQuote-author {
  font-size: 0.875rem;
}
.BackgroundQuote {
  background-color: var(--color-background-testimonial);
  color: var(--white);
  margin: 1.5rem auto;
  padding: 2rem 1.5rem;
}
p.BackgroundQuote-body {
  font-size: 1.3125rem;
  line-height: 2.25rem;
}
.QuoteBlock {
  border-bottom: 0.25rem solid var(--color-brand-primary);
  border-top: 0.25rem solid var(--color-brand-primary);
  display: block;
  float: none;
  margin-bottom: 1.5rem;
  margin-left: 0;
  margin-right: 0;
  margin-top: 1.5rem;
  padding-bottom: 0.5rem;
  width: 100%;
}
@media only screen and (min-width: 48rem) {
  .QuoteBlock {
    float: right;
    margin-top: 0;
    width: 46%;
  }
  .PullQuote-body {
    font-size: 1.125rem;
    line-height: 1.75rem;
    margin: 1.5rem 0 1rem;
  }
  .BackgroundQuote-body {
    margin-top: 0;
  }
  .BackgroundQuote {
    padding: 3rem 4rem 2rem;
  }
  .PullQuote-author {
    font-size: 1rem;
  }
}
.QuoteBlock-body {
  color: var(--color-text);
  font-size: 1.125rem;
  line-height: 2rem;
}
.QuoteBlock-author {
  color: var(--color-text);
  font-size: 1rem;
  font-style: normal;
  font-weight: 500;
  line-height: 3rem;
}
.QuoteBlock-link {
  color: var(--color-text-subtle);
}
.LargeMedia {
  align-items: flex-start;
  display: flex;
  padding: 2.125rem 0.5rem;
}
.LargeMedia + .LargeMedia {
  border-top: var(--border);
}
.LargeMedia-image {
  height: 5rem;
  margin-right: 1rem;
  object-fit: contain;
  width: 5rem;
}
.LargeMedia-body {
  flex: 1;
}

.SmallMedia-image {
  height: 3rem;
  margin-right: 1rem;
  object-fit: contain;
  width: 3rem;
}

.XLargeMedia-image {
  height: 8rem;
  margin-right: 1rem;
  object-fit: contain;
  width: 8rem;
}

@media only screen and (min-width: 48rem) {
  .LargeMedia {
    align-items: center;
  }
  .SmallMedia-image {
    height: 9rem;
    margin-right: 5.5rem;
    width: 9rem;
  }
  .LargeMedia-image {
    height: 12.5rem;
    margin-right: 5.5rem;
    width: 12.5rem;
  }
  .XLargeMedia-image {
    height: 18rem;
    margin-right: 1rem;
    object-fit: contain;
    width: 18rem;
  }
}
.MediaList {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
  list-style: none;
  padding: 0;
}
.MediaList-item {
  flex: 0 1 14rem;
  justify-content: space-around;
  text-align: center;
}
.MediaList-itemImage {
  height: 10rem;
  object-fit: contain;
  width: 10rem;
}
.MediaList-itemTitle {
  color: var(--color-text);
}
.MediaList-itemBody {
  color: var(--color-button-text-disabled);
}
@media only screen and (min-width: 48rem) {
  .MediaList {
    margin-left: -2rem; /* First item of each row should have no left gutter */
  }
  .MediaList-item {
    flex: 0 0 12rem;
    margin-left: 2rem; /* Gutter between items */
  }
}
.MediaList-itemBox {
  background-color: #f8f8f8;
  box-shadow: 0 0.125rem 0.5rem 0 rgba(0, 0, 0, 0.22);
  flex: 0 1 33.125rem;
  justify-content: space-around;
  margin-top: 2rem;
  padding: 1.5rem;
}
.MediaList-itemBoxHeader-top {
  align-items: center;
  flex-direction: column;
  margin: auto;
  text-align: center;
  width: 10.75rem;
}
.MediaList-itemBoxHeader {
  align-items: center;
  display: flex;
  flex-direction: column;
  margin: auto;
  text-align: center;
  width: 10.75rem;
}
.MediaList-itemBoxImage {
  height: 5.125rem;
  object-fit: contain;
  width: 5.125rem;
}
.MediaList-itemBox .MediaList-itemBoxTitle {
  color: var(--color-text);
  font-size: 1.5rem;
  font-weight: normal;
  margin: 0.5rem 0 0 0;
}
.MediaList-itemBox .MediaList-itemBoxBody {
  align-self: flex-end;
  color: var(--color-button-text-disabled);
  flex: 1;
}
.MediaList-itemBox .MediaList-itemBoxBody-top {
  align-self: flex-start;
  color: var(--color-button-text-disabled);
  flex: 1;
  margin: auto !important;
}
@media only screen and (min-width: 48rem) {
  .MediaList-itemBoxHeader {
    justify-content: flex-end;
    margin: 0 1rem 1.5rem 0;
  }
  .MediaList-itemBox {
    display: flex;
    flex: 0 0 33.125rem;
    margin: 2rem 0 0 2rem; /* Gutter between grid cells. */
    min-height: 15.0625rem;
  }
  .MediaList-itemBox .MediaList-itemBoxBody {
    margin: 0 1.3rem 2rem 0;
  }
}
.StarItem {
  align-items: flex-start;
  display: flex;
}
.StarItem-icon {
  align-items: center;
  background: linear-gradient(10.64deg, var(--color-brand-primary) 0%, #00a29c 100%);
  border-radius: 50%;
  display: flex;
  height: 1.5rem;
  justify-content: center;
  margin: 1.1rem 1.25rem 0 0;
  width: 1.5rem;
}
.StarItem-image {
  height: 1.25rem;
  object-fit: contain;
  width: 1.25rem;
}
.StarItem-body {
  flex: 1;
}
.StarItem-title {
  margin: 1rem 0;
}

.Right {
  float: right;
  margin-left: 1rem;
}
.Left {
  float: left;
  margin-right: 1rem;
}
.SearchForm {
  align-items: center;
  background-color: transparent;
  border-radius: 0.25rem;
  display: flex;
  flex: 1;
  font-size: 1rem;
  height: 2rem;
  margin: 0.6875rem 0;
  max-width: 2rem;
  transition: max-width 200ms;
}
.SearchForm--open {
  background-color: var(--color-background);
  margin-left: 1.5rem;
  max-width: 100%;
}
.SearchForm svg {
  fill: var(--color-background);
}
.SearchForm--open svg {
  fill: var(--color-button-text-disabled);
  margin-right: 0.5rem;
}
.SearchForm-input {
  height: 100%;
  opacity: 0;
  padding: 0;
  transition: width 200ms, padding 200ms, opacity 200ms;
  width: 0;
}
.SearchForm--open .SearchForm-input {
  flex: 1;
  opacity: 1;
  padding: 0.5rem;
  transition: width 200ms, padding 200ms;
  width: 100%;
}
.SearchForm-input::placeholder {
  color: #848688;
}
.SearchForm-input {
  background-color: transparent;
  border: none;
  box-sizing: border-box;
  font: inherit;
  opacity: 0;
  outline: none;
}
.SearchForm-submit {
  background-color: transparent;
  border: none;
  box-sizing: border-box;
  cursor: pointer;
  display: flex;
  outline: 0;
  padding: 0;
}
.SearchForm svg {
  box-sizing: border-box;
  cursor: pointer;
  margin-left: 0.5rem;
  width: 1.4375rem;
}
@media only screen and (min-width: 32rem) {
  .Header-rightContent {
    width: 100%;
  }
  .SearchForm {
    background-color: var(--color-background);
    margin: 0.6rem 1.4rem 0.6rem 0;
    max-width: none;
  }
  .SearchForm-input {
    opacity: 1;
    padding: initial;
    width: 100%;
  }
  .SearchForm svg {
    fill: var(--color-button-text-disabled);
    margin-right: 0.5rem;
  }
}
.Series-list {
  list-style: none;
  padding: 0;
}
.Series-listItem {
  display: flex;
}
.Series-listItem a {
  display: flex;
  flex: 1;
  padding: 1.25rem 0;
}
.Series-listItem + .Series-listItem {
  border-top: var(--border);
}
.Series-listItemIcon {
  margin-right: 1rem;
}
.Series-listItemIcon img {
  width: 4rem;
}
.Series-listItemText {
  flex: 1;
}
.Series-listItemPrimary {
  display: block;
  font-size: 1.125rem;
  margin: 0;
}
.Series-listItemSecondary {
  color: var(--color-text);
  display: inline-block;
  margin-bottom: 0;
  text-decoration: none;
}
.UseCaseSubNav {
  background-color: var(--color-background);
  box-shadow: 0 0.125rem 0.125rem rgba(171, 171, 171, 0.405239);
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 10;
}
.UseCaseSubNav--default {
  top: 3.5rem;
}
.UseCaseSubNav-menu {
  background-color: var(--color-background);
  box-shadow: 0 0.125rem 0.125rem rgba(171, 171, 171, 0.405239);
  max-height: 0;
  overflow: hidden;
  padding-left: 1rem;
  position: absolute;
  transition: max-height 100ms ease-in-out;
  width: 100%;
}
.UseCaseSubNav-menuHeader {
  align-items: center;
  background: transparent;
  border: none;
  color: var(--color-button-text-disabled);
  cursor: pointer;
  display: flex;
  font-size: 0.875rem;
  justify-content: space-between;
  outline: none;
  padding: 0.8125rem 1rem 0.8125rem 1.6875rem;
  width: 100%;
}
.UseCaseSubNav-menuIcon {
  pointer-events: none;
  transition: transform 100ms ease-in-out;
}
.UseCaseSubNav-menuIcon--open {
  transform: rotate(180deg);
}
.UseCaseSubNav-menu--open {
  max-height: 25rem;
  padding-bottom: 2rem;
}
.UseCase-content {
  display: flex;
  flex-direction: row;
}
.CaseStudy-content {
  display: grid;
  gap: 2rem;
  grid-template-columns: 1fr;
}
.CaseStudy-contentBody img {
  width: 100%;
}
.CaseStudy-contentBody hr {
  border: var(--border);
  margin: 2rem 0 2rem;
}
.CaseStudy-contentAside {
  flex: 0 0 33.33%;
  min-width: 18.75rem;
}
.UseCase-contentAside {
  display: none;
}
.UseCase-content {
  margin-top: 2rem;
}
.UseCase-contentBody {
  flex: 0 0 100%;
  margin-top: 1rem;
  max-width: 47.8125rem;
  width: 100%;
}
.UseCase-contentBody h2:first-of-type,
.UseCase-contentBody h3:first-of-type {
  margin-top: 0;
}
.UseCase-contentBody h2,
.FeaturedUsers h2:first-of-type {
  margin-bottom: 1.5rem;
  margin-top: 3rem;
}
@media only screen and (min-width: 57.7rem) {
  .CaseStudy-content {
    grid-template-columns: 2fr 1fr;
  }
  .UseCase-contentAside {
    display: block;
    flex: 0 0 20%;
    position: sticky;
  }
  .UseCaseSubNav {
    display: none;
  }
  .UseCase-contentBody {
    flex: 0 0 80%;
    order: 1;
    width: 80%;
  }
  .CaseStudy-contentAside {
    order: 2;
  }
  .CaseStudy-contentBody {
    order: 1;
  }
}
.UseCaseSubNav-anchorLinks {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
}
.UseCaseSubNav-anchorLinks--sticky {
  position: fixed;
  top: 2rem;
}
a.UseCase-anchorLink {
  background: transparent;
  border: none;
  color: var(--color-text);
  font-size: 1.125rem;
  font-weight: normal;
  margin-top: 1rem;
  padding-left: 0.5rem;
  position: relative;
}
a.UseCase-anchorLink:first-of-type {
  margin-top: 1.5rem;
}
a.UseCase-anchorLink.selected {
  font-weight: 500;
}
a.UseCase-anchorLink.selected::before {
  background-color: var(--color-text-link);
  border-radius: 1rem;
  content: ' ';
  display: inline-block;
  height: 0.3rem;
  left: -0.5rem;
  position: absolute;
  top: 0.5rem;
  width: 0.3rem;
}
.WhoUsesSubPage-hero--useCase {
  margin-top: 2.625rem;
}
.WhoUsesSubPage-heroInner--caseStudy,
.WhoUsesSubPage-heroInner--useCase {
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin-bottom: 1.5rem;
  position: relative;
}
.WhoUsesSubPage-heroInner--useCase {
  background-color: var(--color-background-accented);
  padding-bottom: 2.5rem;
  padding-top: 3.5rem;
}
.WhoUsesSubPage-heroInner--caseStudy > div {
  justify-content: center;
}
.WhoUsesSubPage-heroContent--caseStudy {
  display: flex;
  flex-direction: column-reverse;
  max-width: 75.75rem;
  position: relative;
  z-index: 1;
}
.WhoUsesSubPage-heroContent--useCase {
  margin: auto;
  max-width: 75.75rem;
  width: 100%;
}
.WhoUsesSubPage-heroText--caseStudy,
.WhoUsesSubPage-heroText--useCase {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
}
.WhoUsesSubPage-heroText--caseStudy {
  padding: 2rem 1.5rem;
}
.WhoUsesSubPage-heroText--useCase {
  padding: 0 1.5rem;
}
.WhoUsesSubPage-heroText--caseStudy h1,
.WhoUsesSubPage-heroText--useCase h1 {
  color: var(--color-text);
}
.WhoUsesSubPage-heroImg {
  background: -webkit-linear-gradient(0deg, var(--color-background-accented) 50vw, #bfeaf4 50vw);
  display: flex;
  max-width: 75.75rem;
  padding-left: 1.5rem;
  position: relative;
  width: 100%;
  z-index: 1;
}
.WhoUsesSubPage-heroImg img {
  height: auto;
  max-height: 10.625rem;
  min-height: 8rem;
  width: auto;
}
@media only screen and (min-width: 38rem) {
  .Solutions-title h1,
  .WhoUsesSubPage-heroInner--caseStudy h1,
  .WhoUsesSubPage-heroInner--useCase h1 {
    font-size: 2.25rem;
    line-height: 3rem;
  }
  .WhoUsesSubPage-heroImg {
    background: -webkit-linear-gradient(0deg, var(--color-background-accented) 40vw, #bfeaf4 40vw);
  }
  .WhoUsesSubPage-heroImg img {
    max-height: 15.625rem;
    min-height: 10.625rem;
  }
}
@media only screen and (min-width: 57.7rem) {
  .WhoUsesSubPage-hero--useCase {
    margin-top: 0;
  }
  .WhoUsesSubPage-heroInner--caseStudy {
    background: -webkit-linear-gradient(0deg, var(--color-background-accented) 70vw, #bfeaf4 70vw);
    flex-direction: row;
  }
  .WhoUsesSubPage-heroContent--caseStudy {
    align-items: center;
    flex-direction: row;
  }
  .WhoUsesSubPage-heroImg {
    background: transparent;
    min-width: 37.75rem;
    padding: 0;
    width: 55%;
  }
  .WhoUsesSubPage-heroText--caseStudy {
    width: 45%;
  }
  .WhoUsesSubPage-heroImg img {
    max-height: none;
    min-height: 18.75rem;
    width: 100%;
  }
  .WhoUsesSubPage-heroInner--useCase h1 {
    margin-top: 3rem;
  }
}
.ToolsBlurbs {
  display: grid;
  gap: 2rem 3.4375rem;
  grid-template-columns: 1fr;
  margin-top: 1.5rem;
}
.ToolsBlurbs-blurb {
  background-color: var(--color-background-accented);
  border: var(--border);
  border-radius: 0.25rem;
  padding: 1.5rem 1rem;
}
.ToolsBlurbs-blurbHeader {
  align-items: center;
  display: flex;
}
.ToolsBlurbs-blurbIcon {
  height: 1.5rem;
  margin-right: 1rem;
  width: 1.5rem;
}
@media only screen and (min-width: 48rem) {
  .ToolsBlurbs {
    grid-template-columns: 1fr 1fr;
  }
}
img.PullQuote-image {
  width: 2.625rem;
}

.Card {
  background-color: var(--white);
  border: var(--border);
  border-radius: 0.25rem;
  height: 100%;
}
[data-theme='dark'] .Card {
  background-color: var(--abbey);
  border: none;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme='light']) {
    background-color: var(--abbey);
    border: none;
  }
}
.Card a,
.Card a:visited,
.Card a:hover {
  text-decoration: none;
}

.Card-inner {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.Card-thumbnail {
  background-position: center;
  background-size: cover;
  height: 9.5625rem;
}

.Card-content {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 1.5rem;
}

.Card-contentTitle {
  color: var(--color-text);
  font-size: 1.125rem;
  font-weight: 500;
}

.Card-contentBody {
  color: var(--color-text-subtle);
  flex: auto;
  font-size: 0.875rem;
  margin-top: 1rem;
}

.Card-contentCta {
  align-items: center;
  display: flex;
}

.Card-contentCta span {
  margin-right: 0.6875rem;
}

.Card-selfPacedFooter {
  display: flex;
}

.Card-selfPacedCredits {
  color: var(--color-text-subtle);
  flex: 1;
  font-size: 0.75rem;
}

.Card-selfPacedRating {
  width: 5rem;
}

.Card-starRating {
  background-image: url('/images/learn/star-rating.png');
  background-position: left;
  background-repeat: no-repeat;
  height: 1rem;
}

.Book a,
.Book a:visited,
.Book a:hover {
  text-decoration: none;
}

.Book-inner {
  align-items: flex-start;
  display: flex;
  justify-content: space-between;
}

.Book-thumbnail {
  width: 6.625rem;
}

.Book-thumbnail img {
  width: 100%;
}

.Book-content {
  flex: 1;
  margin-left: 1.6875rem;
}

.Book-title {
  color: var(--color-text);
  font-size: 1.125rem;
  font-weight: 500;
  margin: 0 0 0.5rem;
}

.Book-description {
  color: var(--color-text-subtle);
  font-size: 0.875rem;
}

.Book-cta {
  align-items: center;
  display: flex;
  height: 1.5rem;
}

.Book-cta span {
  margin-right: 0.6875rem;
}

@media only screen and (min-width: 48rem) {
  .Book-inner {
    flex-direction: column;
  }

  .Book-thumbnail {
    width: 100%;
  }

  .Book-content {
    margin: 1rem 0 0;
  }
}

#blog h1.small {
  font-weight: bold;
  font-size: 1rem;
}
#blog a.head {
  color: black;
  text-decoration: none !important;
}
#blog a.head:hover {
  text-decoration: underline;
}
#blog #content .author {
  font-style: italic;
}
#blog #content .Article {
  margin-bottom: 50px;
}
#blog #content .date {
  color: var(--color-text-subtle);
}
#blog #content .tags {
  color: #999;
  font-size: smaller;
}
#blog #content .iframe, #content .image {
  margin: 20px;
}
#blog #content .title {
  margin: 20px 0;
}
#blog #content img {
  max-width: 100%;
}
#blog .Article {
  max-width: 55rem;
}
#blog .Article[data-slug='/blog/go-fonts'] {
  font-family: Go, sans-serif;
}
#blog .Article[data-slug='/blog/go-fonts'] pre,
#blog .Article[data-slug='/blog/go-fonts'] code {
  font-family: 'Go Mono', monospace;
}
#blog pre, #blog code {
  font-family: monospace;
}
#blog svg {
  fill: var(--color-text);
}
#blog .image > img {
  background-color: var(--white);
}
#blogindex p.blogtitle a {
  font-weight: bold;
}
#blogindex p.blogsummary {
  margin-block-start: 0px;
}
#blogindex p.blogtitle {
  margin-block-end: 0px;
}
#blogindex div.prevnext {
  margin-top: 2em;
}
#blog .Article[data-slug='/blog/'] h1 {
  margin-top: 1em;
}

#blog pre .highlight {
  font-weight: bold;
}

/* Inline runnable snippets (play.js/initPlayground) */
#blog pre,
#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;
}
#blog pre,
#content .code,
#content .playground,
#content .output {
  width: auto;
  margin: 1.25rem;
  padding: 0.625rem;
  border-radius: 0.3125rem;
}
#blog pre,
#content .code,
#content .playground {
  background: var(--color-background-accented);
}
#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;
}
.Security-gridContainer, .Security-comingSoon  {
  padding: 3rem 1.5rem 1rem;
}
.Security-card .Card-content ul {
  padding-left: 1rem;
}
.Security-card .Card-content li {
  margin-bottom: 1rem;
  list-style: initial;
}
.Security-card .Card-contentCta {
  margin-top: 1rem;
}
.Security-foundations {
  padding: 2rem 0;
}
.Security-foundations .Card {
  border: none;
}
.Security-foundations .Card-content {
  padding: 0;
}
.Security-foundations .Card-contentBody {
  flex: 0;
}
.Security-foundations .Card-icon {
  padding-bottom: 1.5rem;
}
.Security-comingSoon,
.Security-comingSoonTitle,
.Security-comingSoonContent,
.Security-comingSoonImage {
  display: flex;
  justify-content: center;
}
.Security-comingSoon {
  flex-direction: column;
}
.Security-comingSoonTitle {
  justify-content: center;
}
.Security-comingSoonTitle h3 {
  color: #71757B;
  font-weight: normal;
  font-size: 1.5rem;
}
.Security-comingSoonContent ul {
  padding-left: 1rem;
}
.Security-comingSoonContent li {
  margin-bottom: 1rem;
}
.Security-getStarted {
  background: var(--color-brand-primary);
}
.Security-getStarted, .Security-recentupdates {
  padding: 2.5rem 0;
}
.Security-getStarted .Security-sectionHeader {
  color: var(--white);
}
.Security-getStarted .Security-sectionHeader,
.Security-recentupdates .Security-sectionHeader {
  justify-content: center;
  margin-bottom: 1.25rem;
}
.Security-getStarted .Security-sectionHeader h2,
.Security-recentupdates .Security-sectionHeader h2 {
  font-size: 2.25rem;
  margin: 0;
}
.Security-getStarted .Security-card {
  height: auto;
}
.Security-getStarted .Card-icon {
  padding: 1.5rem 0 0 1.5rem;
}
.Security-getStarted .Card-contentTitle {
  flex: 1;
}
.Security-getStarted .Card-contentImage {
  flex: 1;
}
.Security-comingSoonImage img {
    width: 100%;
    max-width: 14.063rem;
}
.Security-secondary-cta {
  background-color: var(--color-brand-primary);
}
.Security-secondary-cta .Container {
  display: flex;
  flex-direction: column;
}
.Security-secondary-cta-body {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.Security-secondary-cta-body a {
  height: 4rem;
  margin-top: 1.25rem;
}
.Security-secondary-cta-body a:hover {
  text-decoration: none;
}
.Security-secondary-cta-body span {
  text-align: center;
  padding: 1.25rem 4.7rem;
  background-color: var(--color-button-accented);
  border-radius: 0.25rem;
  color: #000;
}
.Security-secondary-cta-body h2 {
  color: var(--white);
  font-size: 2.25rem;
  line-height: 2.925rem;
  font-weight: normal;
}
.Security-secondary-cta-image {
  font-size: 0;
}
.Security-secondary-cta-image img {
  max-width: 100%;
}
@media only screen and (min-width: 72.75rem) {
  .Security-getStarted, .Security-recentupdates {
      padding: 3.75rem 0 5rem 0;
  }
  .Security-getStarted .Security-sectionHeader {
    margin-bottom: 2.5rem;
  }
  .Security-getStarted .Security-cardList {
    grid-template-columns: repeat(3, 1fr);
  }
  .Security-comingSoon {
    flex-direction: row;
  }
  .Security-comingSoonTitle {
    flex-direction: column;
    justify-content: center;
    flex: 1 0 12.5rem;
    align-items: center;
  }
  .Security-comingSoonContent {
    flex-direction: column;
    justify-content: center;
    flex: 1 1 auto;
  }
  .Security-comingSoonImage {
    flex: 1 1 12.5rem;
  }
  .Security-secondary-cta {
    background: #beeaf5;
    background-image: radial-gradient( 60.0625rem 60.0625rem, var(--color-brand-primary) 50%, #beeaf5 50% );
    background-position: -13rem 50%;
    background-size: 75rem 75rem;
    background-repeat: no-repeat;
    min-height: 22.5rem;
  }
  .Security-secondary-cta .Container {
    display: flex;
    flex-direction: row;
    align-items: center;
  }
  .Security-secondary-cta-image img {
    max-width: initial;
  }
}
.Playground-headerContainer {
  text-align: center;
}
.Playground-popout {
  background: url('/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;
}
.PlayPage {
  color: var(--color-text);
}
.PlayPage .Playground-inputContainer {
  height: 30em;
}
.PlayPage .Playground-outputContainer {
  height: 20em;
}
@media screen and (min-height: 50em) {
  .PlayPage .Playground-inputContainer {
    height: 40em;
  }
}
.PlayAbout {
  color: var(--color-text);
  font-size: 83%;
}
.Playground-input {
  width: 100%;
  height: 100%;
  border: none;
  outline: none;
  padding: 0.625rem 0.625rem 0 0.625rem;
  min-height: 13rem;
  resize: none;
}
.Playground-inputContainer #wrap {
  height: 100%;
}
.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 {
  background: var(--color-background-playground-input);
}
.Playground-runButton {
  background-color: var(--color-background-playground-input) !important;
}
.Playground-outputContainer,
.Playground-output {
  background: var(--color-background-code);
}
.Playground-inputContainer,
.Playground-input,
.Playground-outputContainer,
.Playground-output {
  color: var(--color-text);
}
.Playground-inputContainer,
.Playground-outputContainer {
  border: var(--border-code);
  resize: vertical;
}
.Playground-controls {
  display: flex;
  flex-wrap: wrap;
}
.Playground-buttons {
  display: flex;
  flex: 1;
  flex-wrap: nowrap;
  gap: 0.5rem;
  justify-content: flex-end;
}
.Playground-selectExample, .Playground-selectGoVersion, .Playground-shareURL {
  background-color: var(--color-background);
  border-radius: 3px;
  border: var(--border);
  color: var(--color-input-text);
  font-family: inherit;
  font-size: 16px;
  /* Prevents automatic zoom on mobile devices */
  height: 1.75rem;
  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, .Playground-selectGoVersion, .Playground-shareURL {
    margin: 0 0.4375rem 0 0;
    width: auto;
  }
}
h1.Playground-title {
  font-size: 1.5rem;
  line-height: 1.75rem;
  display: inline;
  margin: 0;
}
h2.Playground-about {
  font-size: 1rem;
  line-height: 2rem;
  vertical-align: bottom;
  height: 1.75rem;
  display: inline;
  margin: 0;
  margin-left: 1rem;
}
.PlayPage .Playground-controls {
  margin-top: 1rem;
  margin-bottom: 1rem;
}
.linedtextarea .lines {
  float: left;
  overflow: hidden;
  text-align: right;
}
.linedtextarea .lines div {
  padding-right: 5px;
  color: lightgray;
  overflow: hidden;
}
.linedtextarea .lineerror {
  color: black !important;
  background: #fdd;
}
.linedtextarea textarea {
  height: 100%;
  width: 100%;
  float: right;
  padding: 0;
  font-size: 0.83rem;
}
.Button,
.Button:link,
.Button:visited {
  align-items: center;
  background-color: var(--color-background-accented);
  border: none;
  border-radius: 0.1875rem;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
  box-sizing: border-box;
  color: var(--color-text-link);
  cursor: pointer;
  display: inline-flex;
  font: bold 0.875rem Roboto, sans-serif;
  height: 1.75rem;
  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;
}
/* Auto-generated table of contents */
.TOC table {
  margin-top: 1.25rem;
  margin-bottom: 1.25rem;
}
.TOC table td {
  vertical-align: top;
}
.TOC th {
  padding-left: 1.25rem;
  max-width: 50rem;
  text-align: left;
  font-weight: normal;
}
.TOC dl {
  margin-left: 1.25rem;
  max-width: 50rem;
  font-size: 0.875rem;
  margin-block-end: 0;
  margin-block-start: 0;
}
.TOC dd {
  margin: 0 0 0 1.25rem;
  font-size: 0.875rem;
}
.expandAll {
  cursor: pointer;
  margin: 1.25rem 0;
  font-weight: normal;
  font-size: 0.8em;
}
.toggleButton {
  cursor: pointer;
}
.toggle > .collapsed {
  display: block;
}
.toggle > .expanded {
  display: none;
}
.toggleVisible > .collapsed {
  display: none;
}
.toggleVisible > .expanded {
  display: block;
}
/* for doc/go1.html */
table.codetable {
  margin-left: auto;
  margin-right: auto;
  border-style: none;
}
table.codetable td {
  padding-right: 0.625rem;
}
/* for various doc pages */
img.gopher {
  float: right;
  margin-left: 0.625rem;
  margin-bottom: 0.625rem;
  z-index: -1;
}
/* for pkg.tmpl */
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: var(--color-background-accented);
  color: var(--color-text);
}
div.play .input,
div.play .output {
  border: var(--border);
}
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;
}
.permalink {
  display: none;
}
:hover > .permalink {
  display: inline;
}
#pkg-index h3 {
  font-size: 1rem;
}
.pkg-dir {
  padding: 0 0.625rem;
}
.pkg-dir table {
  border-collapse: collapse;
  border-spacing: 0;
}
.pkg-name {
  margin-left: 0.625rem;
  padding-right: 0.625rem;
}
th.pkg-name {
  text-align: left;
}
/* for docs */
.Note {
  /* For styling "Note" sections. */
  background-color: var(--color-background-accented);
  font-size: 0.875rem;
  margin-top: 1.25rem;
  margin-bottom: 1.25rem;
  max-width: 50rem;
  padding: 0.5rem 0.5rem 0.5rem 0.625rem;
}
/* Tabs */
.TabSection {
  background: var(--color-background);
  border: var(--border);
  border-radius: 0.3125rem;
  box-shadow: none;
  max-width: 50rem;
}
.TabSection-tabList {
  flex-shrink: 0;
  position: relative;
  border-bottom: var(--border);
}
.TabSection-tab {
  background: var(--color-background-accented);
  border: none;
  color: var(--color-text);
  line-height: 3rem;
  padding: 0 1.125rem;
  position: relative;
}
.TabSection-tab[aria-selected='true'] {
  background-color: #e0ebf5;
  color: black;
  outline: 0;
}
.TabSection-tab:focus {
  background-color: #e0ebf5;
  color: black;
  outline: 0;
}
.TabSection-tabPanel {
  font-size: 0.875rem;
}
/* Tutorial previous and next links */
.Navigation {
  font-size: 0.875rem;
}
.Navigation-prev {
  float: left;
  font-weight: bold;
}
.Navigation-next {
  float: right;
  font-weight: bold;
}
/* Table in doc topics. */
.DocTable {
  border-collapse: collapse;
  font-size: 0.875rem;
  margin: 1.25rem;
  max-width: 50rem;
}
.DocTable-row {
  border-bottom: var(--border);
  height: 3rem;
  vertical-align: top;
}
.DocTable-head {
  background: var(--color-background-accented);
  border-bottom: var(--border);
  border-top: var(--border);
  height: 3rem;
}
.DocTable-cell {
  padding: 0.4375rem;
}
.DocTable-cell pre {
  font-size: 0.775rem;
}
.DocTable-cell p,
.DocTable-cell pre {
  margin:  0rem 0rem 0.875rem;
}
.DocTable-row--highlighted {
  background: #f0f0f0;
  border-bottom: var(--border);
  height: 3rem;
}
/* for doc/install */
a#start {
  background: #e0ebf5;
  border: 0.0625rem solid #375eab;
  border-radius: 0.3125rem;
  color: #222;
  display: block;
  padding: 0.625rem;
  text-align: center;
  text-decoration: none;
}
a#start .big {
  display: block;
  font-size: 1.25rem;
  font-weight: bold;
}
a#start .desc {
  display: block;
  font-size: 0.875rem;
  font-weight: normal;
  margin-top: 0.3125rem;
}
.download {
  width: 17.5rem;
}
table.downloadtable {
  margin-left: 20px;
  margin-right: 20px;
  border-collapse: collapse;
}
table.downloadtable tr {
  background-color: #f0f0f0;
}
table.downloadtable tr:nth-child(2n), table.downloadtable tr.first {
  background-color: var(--color-background);
}
table.downloadtable td, table.downloadtable th {
  white-space: nowrap;
  padding: 6px 10px;
}
table.downloadtable tt {
  font-size: xx-small;
}
table.downloadtable tr.highlight td {
  font-weight: bold;
}
a.downloadBox {
  display: block;
  color: #222;
  border: 1px solid #375EAB;
  border-radius: 5px;
  background: #E0EBF5;
  width: 280px;
  float: left;
  margin-left: 10px;
  margin-bottom: 10px;
  padding: 10px;
}
a.downloadBox:hover {
  text-decoration: none;
}
.downloadBox .platform {
  font-size: large;
}
.downloadBox .filename {
  color: var(--color-text-link);
  font-weight: bold;
  line-height: 1.5em;
}
a.downloadBox:hover .filename {
  text-decoration: underline;
}
.downloadBox .size {
  font-size: small;
  font-weight: normal;
}
.downloadBox .reqs {
  font-size: small;
  font-style: italic;
}
.downloadBox .checksum {
  font-size: 5pt;
}
#manual-nav dl, #pkg-examples dl{
  margin-left: 1.25rem;
  font-size: 0.875rem;
  margin-block-end: 0;
  margin-block-start: 0;
}
#manual-nav dd, #pkg-examples dd {
  margin: 0 0 0 1.25rem;
  font-size: 0.875rem;
}
.go-Button {
  align-items: center;
  background-color: var(--color-button);
  border: 0.0625rem solid transparent;
  border-radius: var(--border-radius);
  color: var(--color-button-text);
  cursor: pointer;
  display: inline-flex;
  font-weight: 500;
  gap: 0.25rem;
}
.go-Button:not(.go-Button--inline) {
  padding: 0.5rem;
}
.go-Button--inverted,
.go-Button--text,
.go-Button--inline {
  background-color: var(--color-button-inverted);
  color: var(--color-button-inverted-text);
}
.go-Button--inline {
  background-color: transparent;
}
.go-Button--inverted {
  border: var(--border);
}
.go-Button:hover {
  box-shadow: var(--focus-box-shadow);
  filter: contrast(0.95);
}
.go-Button--inline:hover {
  box-shadow: none;
  text-decoration: underline var(--color-button-inverted-text);
}
.go-Button:focus {
  filter: contrast(0.95);
}
.go-Button--inverted:focus {
  border-color: var(--color-button-inverted-text);
}
.go-Button:active {
  box-shadow: none;
  filter: contrast(0.85);
}
.go-Button:disabled {
  background-color: var(--color-button-disabled);
  box-shadow: none;
  color: var(--color-button-text-disabled);
  cursor: initial;
  filter: none;
  text-decoration: none;
}
.go-Button--accented:disabled {
  background-color: var(--color-button-accented-disabled);
  color: var(--color-button-accented-text-disabled);
}
.go-Button--inverted:disabled,
.go-Button--text:disabled,
.go-Button--inline:disabled {
  background-color: var(--color-button-inverted-disabled);
  color: var(--color-button-inverted-text-disabled);
}
.go-Button--inline:disabled {
  background-color: transparent;
}
.go-Footer-listItem {
  align-items: center;
  display: flex;
  flex: 1 100%;
  justify-content: center;
  margin: 0.4rem 0;
  padding: 0 1rem;
}
.go-Footer-listItem a:link,
.go-Footer-listItem a:visited {
  color: var(--color-text-inverted);
}
.go-Footer-listItem .go-Button--text {
  background-color: transparent;
  font-size: 1rem;
  margin: -0.5rem 0;
}
.go-Footer-listItem [data-value] {
  display: none;
}
[data-theme='auto'] .go-Footer-listItem [data-value='auto'],
:root:not([data-theme]) .go-Footer-listItem [data-value='auto'] {
  display: initial;
}
[data-theme='dark'] .go-Footer-listItem [data-value='dark'] {
  display: initial;
}
[data-theme='light'] .go-Footer-listItem [data-value='light'] {
  display: initial;
}
.go-Footer-toggleTheme,
.go-Footer-keyboard {
  margin: 0 0 0.5rem 0;
}

@media only screen and (min-width: 52rem) {
  .go-Footer-listItem {
    flex: initial;
  }
  .go-Footer-listItem + .go-Footer-listItem {
    border-left: var(--border);
  }
  .go-Footer-toggleTheme {
    margin: 0 0 0 -0.5rem;
  }
  .go-Footer-keyboard {
    margin: 0;
  }
}
