: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;
}
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,
  .Site-footer {
    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;
}
/* Start nav */
.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;
  position: relative;
}
.Header-menuItem .js-desktop-menu-hover > i {
  pointer-events: 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;
    margin: 0 0.3125rem;
  }
  .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;
  padding: 0 1.5rem;
  text-align: center;
  text-decoration: none;
  width: 100%;
}
.Header--dark
  .Header-menuItem:hover
  > a:not(.forced-closed).js-desktop-menu-hover,
.Header--dark
  .Header-menuItem:focus-within
  > a:not(.forced-closed).js-desktop-menu-hover {
  background: var(--color-background);
  color: var(--color-text-link);
  border-color: var(--color-background);
}
.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 {
  color: var(--color-text);
}
.Header-menuItem a:not(.forced-closed):hover {
  border-bottom-color: var(--white);
}
.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-submenuItem {
  width: 100%;
}

.NavigationDrawer-submenuItem .NavigationDrawer-header {
  min-height: 4.0625rem;
  font-size: 1.375rem;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 0.5rem;
  padding-left: 1.5rem;
  color: var(--color-text-link);
}

.NavigationDrawer.is-active {
  transform: translateX(0);
}
.NavigationDrawer-header {
  align-items: center;
  display: flex;
  justify-content: space-between;
  border-bottom: 0.0625rem solid #eeeeee;
  margin-bottom: 0.5rem;
}
.NavigationDrawer-listItem.NavigationDrawer-hasSubnav > a i {
  float: right;
  margin-right: -0.5rem;
}
.NavigationDrawer-listItem.NavigationDrawer-hasSubnav
  .NavigationDrawer-header
  a {
  margin-left: 0;
}

.NavigationDrawer-listItem .material-icons {
  color: var(--color-text-link);
  margin-right: 0.5rem;
  display: inline-block;
  vertical-align: sub;
}

.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;
  color: var(--color-text-subtle);
}
.NavigationDrawer-listItem > div:not(.NavigationDrawer),
.NavigationDrawer-listItem a:link,
.NavigationDrawer-listItem a:visited {
  display: block;
  margin: 0 1rem;
  padding: 0.5rem;
}
@media only screen and (max-width: 57.7rem) {
  .NavigationDrawer-listItem .Header-socialIcons {
    padding: 0.5rem 0;
  }

  .NavigationDrawer-listItem a.Header-socialIcon {
    padding: 0 0.5rem;
    margin: 0;
    display: inline-block;
  }
}

.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;
}
.Header-submenu {
  padding: 1.5rem 1.5rem 0;
  list-style-type: none;
  background: transparent;
  visibility: hidden;
  opacity: 0;
  display: none;
  transition: all 0.2s ease;
  margin-top: 3.5rem;
  position: absolute;
  flex-direction: column;
  flex-wrap: wrap;
  color: var(--color-text);
  background-color: var(--color-background);
  border: 0.0625rem solid var(--color-brand-primary);
  border-width: 0 0.0625rem 0.0625rem;
}
.Header-menuItem:hover
  > .js-desktop-menu-hover:not(.forced-closed)
  ~ .Header-submenu,
.Header-menuItem:focus-within
  > .js-desktop-menu-hover:not(.forced-closed)
  ~ .Header-submenu {
  visibility: visible;
  opacity: 1;
  display: flex;
}
.Header-submenu .Header-submenuItem a:link,
.Header-submenu .Header-submenuItem a:visited {
  margin: 0;
  padding: 0;
  border-bottom: none;
  font-weight: 400;
}
.Header-submenu p {
  max-width: 15.5rem;
}
.Header-submenu a:link:hover,
.Header-submenu a:visited:hover {
  text-decoration: none;
  border-bottom: 0.125rem solid var(--color-text-link);
}

.Header-submenu .Header-submenuItem {
  padding-bottom: 1.5rem;
}

.Header-submenu .Header-submenuItem p {
  font-size: 0.875rem;
  color: var(--color-text-subtle);
  margin-top: 0.55rem;
  margin-bottom: 0;
}
.Header-submenu .Header-submenuItem i {
  margin-left: 0.25rem;
  transform: translateY(0.1rem); /* to get bottom alignment w/ text  */
  font-size: 0.75rem;
}
.Header-menuItem .Header-submenuItem a:link,
.Header-menuItem .Header-submenuItem a:visited {
  color: var(--color-text-link);
  display: inline-flex;
  align-items: baseline;
  margin-bottom: -0.125rem;
}
.Header-menu li:nth-child(1) .Header-submenu {
  width: 18.5rem;
  left: -1px;
}
.Header-menu li:nth-child(3) .Header-submenu {
  left: -12rem;
  height: 19.275rem;
  width: 37.25rem;
}
.Header-menu li:nth-child(5) .Header-submenu {
  right: -1px;
  height: 17.65rem;
  width: 37.25rem;
}
.Header-socialIcons {
  display: flex;
  flex-wrap: wrap;
}
.Header-menuItem a.Header-socialIcon {
  flex: 0 1 auto;
  display: inline-flex;
  width: auto;
}
.Header-menuItem a.Header-socialIcon:not(:last-child) {
  margin-right: 0.75rem;
}
[data-theme='dark'] .Header-socialIcon img[src$='/github.svg'] {
  filter: invert(1);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme='light']) .Header-socialIcon img[src$='/github.svg'] {
    filter: invert(1);
  }
}
/* End nav */
.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);
}
.Article pre {
  background: var(--color-background-accented);
}
.Article pre {
  padding: 0.5rem 1.75rem;
  border-radius: 4px;
}
.CopyPaste {
  display: flex;
  align-items: center;
  padding: 0.5rem 1.75rem;
  border-radius: 4px;
}
.TabSection .CopyPaste {
  margin-right: 2.5rem;
}
.CopyPaste button {
  display: flex;
  padding: unset;
  background: none;
  border: none;
  margin-left: auto;
  cursor: copy;
}
.CopyPaste button img.CopyPaste-icon {
  margin-left: 1.5rem;
  background-color: unset;
}
.CopyPaste .CopyPaste-icon-dark {
  display: none;
}
[data-theme='dark'] .CopyPaste .CopyPaste-icon {
  display: none;
}
[data-theme='dark'] .CopyPaste .CopyPaste-icon-dark {
  display: block;
}
.Sidebar {
  display: none;
}
.Sidebar a {
  width: 7.5rem;
}
.Sidebar h4 {
  font-style: normal;
  font-weight: 500;
  font-size: 1rem;
  line-height: 1.5rem;
}
.Sidebar p, .Sidebar-faq .link {
  font-style: normal;
  font-weight: 400;
  font-size: 0.875rem;
  line-height: 1.5rem;
}
.Sidebar-faq h4 {
  font-size: 0.813rem;
  margin-top: 1.25rem;
  margin-bottom: 0.375rem;
}
.Sidebar-faq p {
  margin-top: 0;
  margin-bottom: 0.625rem;
}
.Sidebar-socialLinks {
  display: flex;
  align-items: center;
}
.Sidebar-socialLinks a {
  display: flex;
  width: unset;
  margin-right: 0.675rem;
}
@media screen and (min-width: 78rem) {
  .Article-columns {
    display: flex;
    gap: 10rem;
  }
  .Article-content {
    flex: 3;
  }
  .Sidebar {
    display: block;
    flex: 1;
  }
}
.Article.Doc img {
  background-color: var(--white);
}
.Article p.DownloadBtn {
  margin-top: 1.5rem;
  margin-bottom: 0.675rem;
}
.Article .DocInstall-footer {
  padding-bottom: 1.5rem;
}
.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 0 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;
}
a.BackgroundQuote-link {
  color: inherit;
}
.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']) .Card {
    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 {
  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 {
  align-items: start;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 1.5rem;
  margin-top: 1.5rem;
  padding: 0 1rem;
}
@media only screen and (min-width: 57.7rem) {
  .PlayPage .Playground-controls {
    align-items: initial;
    flex-direction: row;
    margin-bottom: 1.5rem;
    margin-top: 3rem;
    padding: 0;
  }
}
.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 0.125rem 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 0.0625rem 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);
  border: none;
  color: var(--color-text);
  line-height: 3rem;
  padding: 0 1.125rem;
  position: relative;
  border-radius: 0.3125rem;
}
.TabSection-underline {
  display: none;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
}
.TabSection-tab[aria-selected='true'] .TabSection-underline {
  display: block;
  background-color: var(--color-background);
}
.TabSection-tab[aria-selected='true'] {
  color: var(--color-text-link);
  outline: 0;
}
.TabSection-tab:focus {
  color: var(--color-text-link);
  outline: 0;
}
.TabSection-tabPanel {
  font-size: 0.875rem;
  padding: 1rem 0;
}
/* 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.btn {
  background: var(--deep-cerulian);
  font-style: normal;
  font-weight: 400;
  font-size: 1rem;
  line-height: 1rem;
  border-radius: 0.3125rem;
  color: #FFF;
  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: 10.25rem;
  height: 2.5rem;
}
table.downloadtable {
  margin-left: 20px;
  margin-right: 20px;
  border-collapse: collapse;
}
table.downloadtable tr {
  background-color: var(--color-background-accented);
}
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: flex;
  flex-direction: column;
  color: var(--color-text);
  background: var(--color-background-accented);
  width: 13.875rem;
  height: 8.375rem;
  float: left;
  padding: 1rem;
}
a.downloadBox:hover {
  text-decoration: none;
}
.downloadBox .platform {
  font-size: large;
  margin-bottom: 0.75rem;
}
.downloadWrapper {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 1rem;
}
.downloadBox .filename {
  display: flex;
  align-items: center;
  margin-top: auto;
}
.downloadBox .filename img {
  margin-right: 0.375rem;
}
.downloadBox .filename span {
  color: var(--color-text-link);
  font-style: normal;
  font-weight: 400;
  font-size: 0.75rem;
  line-height: 0.75rem;
}
a.downloadBox:hover .filename span {
  text-decoration: underline;
}
.downloadBox .size {
  font-size: small;
  font-weight: normal;
}
.downloadBox .reqs {
  font-style: normal;
  font-weight: 400;
  font-size: 0.75rem;
  line-height: 1rem;
  color: var(--color-text-subtle);
}
.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;
  }
}
