html {
  background: var(--color-theme);
  font-size: 16px;
  min-height: -webkit-fill-available;
  scroll-padding-top: calc(var(--font-size) * 7.4);
}

html:not(.is-idea) {
  scroll-behavior: smooth;
}

body {
  align-items: stretch;
  background: var(--color-theme);
  color: rgba(var(--rgb-white), 0.85);
  display: flex;
  flex-direction: column;
  font-family: var(--font-family);
  font-feature-settings: 'liga', 'ss02';
  font-size: var(--font-size);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-style: normal;
  font-weight: 400;
  letter-spacing: -0.01em;
  line-height: 1.3;
  min-height: 100vh;
  overflow-x: hidden;
  -webkit-tap-highlight-color: rgba(var(--rgb-white), 0);
  text-rendering: optimizeLegibility;
}

body:not(.is-ready) {
  visibility: hidden;
}

@supports(-webkit-touch-callout: none) {

  body {
    min-height: -webkit-fill-available;
  }

}

::selection {
  background: rgba(var(--rgb-white), 0.15);
}

main {
  position: relative;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  color: var(--color-white);
  font-weight: 700;
}

a {
  color: var(--color-white);
  font-weight: 700;
  letter-spacing: normal;
  text-decoration: underline;
  text-decoration-thickness: 0.085em;
  text-underline-offset: 0.0875em;
}

em,
i {
  font-style: italic;
}

strong,
b {
  color: var(--color-white);
  font-weight: 700;
}

img,
video {
  height: auto;
  max-width: 100%;
  width: 100%;
}

blockquote {
  position: relative;
}

blockquote > * + * {
  margin-top: 0.5em;
}

blockquote:before {
  content: '\201C';
  font-size: 200%;
  font-weight: 300;
  left: 0;
  line-height: 1;
  position: absolute;
  top: 0;
  transform: translate(-128%, -8%);
}

table {
  background: rgba(var(--rgb-white), 0.08);
  border-collapse: collapse;
  table-layout: fixed;
  width: 100%;
}

table thead tr {
  text-align: center;
}

table tbody tr:nth-of-type(odd) {
  background: rgba(var(--rgb-white), 0.06);
}

table th,
table td {
  border: 2px solid var(--color-theme);
  font-size: var(--font-size-small);
  letter-spacing: normal;
  padding: 1.1em 1.3em;
}

table th {
  font-weight: 800;
  vertical-align: middle;
}

.font-size-small {
  font-size: var(--font-size-small);
  letter-spacing: normal;
}

.font-size-large {
  font-size: var(--font-size-large);
}

.font-size-x-large {
  color: var(--color-white);
  font-size: var(--font-size-x-large);
}

.font-size-xx-large {
  color: var(--color-white);
  font-size: var(--font-size-xx-large);
}

.font-size-xxx-large {
  color: var(--color-white);
  font-size: var(--font-size-xxx-large);
}

@media(min-width: 64em) and (hover: hover) and (pointer: fine) {

  /* Must match the cluster/boundary desktop baseline */
  html {
    scroll-padding-top: max(22.2vh, 5.4em);
  }

}

