body {
  font: normal calc(11px + 0.6vw) / 2 Menlo, consolas, monospace;
}

p,
h1,
h2 {
  font-weight: normal;
}

p {
  margin-bottom: 0px;
}

a {
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}

/*---*/

.strong {
  font-weight: bold;
}
em {
  font-style: italic;
}

.cf:before,
.cf:after {
  display: table;
}
.cf:after {
  clear: both;
}

* {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

/*------------------------------------------------------- */

.grid-parent {
  display: grid;
}

.grid-parent--3 {
  grid-gap: 40px;
  grid-template-columns: repeat(3, calc(33.3333% - 26.6666667px));
}

@media (max-width: 900px) {
  .grid-parent--3 {
    grid-template-columns: repeat(2, calc(50% - 20px));
  }
}

@media (max-width: 640px) {
  .grid-parent--3 {
    grid-template-columns: repeat(1, 100%);
  }
}

/*------------------------------------------------------- */

.flex-parent {
  display: flex !important;
}
.flex-parent--column {
  flex-direction: column !important;
}
.flex-parent--space-between-main {
  justify-content: space-between !important;
}
.flex-parent--center {
  justify-content: center !important;
  align-items: center !important;
}

/*------------------------------------------------------- */

.bg-yellow {
  background-color: #f1ede2;
}

.bg-white {
  background-color: #fff;
}
.bg-gray {
  background-color: #eee;
}
.bg-darken {
  background-color: rgba(0, 0, 0, 0.25);
}
.bg-checkers {
  background-image: linear-gradient(-45deg, transparent 75%, #f4f7fb 75%),
    linear-gradient(45deg, transparent 75%, #f4f7fb 75%),
    linear-gradient(45deg, #f4f7fb 25%, transparent 0),
    linear-gradient(-45deg, #f4f7fb 25%, transparent 25%);
  background-size: 12px 12px;
  background-position: 0 0, 0 -6px, 6px 0, -6px -6px;
}

.border {
  border: 1px solid currentColor;
}

/*------------------------------------------------------- */

[class*="f-"] {
  position: fixed;
}
.f-r {
  top: 0;
  right: 0;
  bottom: 0;
}
.f-t {
  top: 0;
  right: 0;
  left: 0;
}
.f-tl {
  top: 0;
  left: 0;
}
.f-tr {
  top: 0;
  right: 0;
}
.f-b {
  right: 0;
  bottom: 0;
  left: 0;
}
.f-bl {
  bottom: 0;
  left: 0;
}
.f-br {
  right: 0;
  bottom: 0;
}

[class*="a-"] {
  position: absolute;
}
.a-r {
  top: 0;
  right: 0;
  bottom: 0;
}
.a-tr {
  top: 0;
  right: 0;
}
.a-t {
  top: 0;
  right: 0;
  left: 0;
}
.a-tl {
  top: 0;
  left: 0;
}
.a-l {
  top: 0;
  bottom: 0;
  left: 0;
}
.a-b {
  right: 0;
  bottom: 0;
  left: 0;
}
.a-br {
  right: 0;
  bottom: 0;
}
.a-bl {
  bottom: 0;
  left: 0;
}

/*------------------------------------------------------- */

.pad0 {
  padding: 5px;
}
.pad0y {
  padding-top: 5px;
  padding-bottom: 5px;
}
.pad0x {
  padding-right: 5px;
  padding-left: 5px;
}

.pad1 {
  padding: 10px;
}
.pad2 {
  padding: 20px;
}
.pad4 {
  padding: 40px;
}

.pad1x {
  padding-left: 10px;
  padding-right: 10px;
}
.pad2x {
  padding-left: 20px;
  padding-right: 20px;
}
.pad4x {
  padding-left: 40px;
  padding-right: 40px;
}

.pad1y {
  padding-top: 10px;
  padding-bottom: 10px;
}
.pad2y {
  padding-top: 20px;
  padding-bottom: 20px;
}
.pad4y {
  padding-top: 40px;
  padding-bottom: 40px;
}

.pad8 {
  padding: 80px;
}

.padt8 {
  padding-top: 80px;
}

.pad8y {
  padding-top: 80px;
  padding-bottom: 80px;
}
.pad8x {
  padding-left: 80px;
  padding-right: 80px;
}

.space-left2 {
  margin-left: 20px;
}

.space-top0 {
  margin-top: 5px;
}
.space-top1 {
  margin-top: 10px;
}
.space-top2 {
  margin-top: 20px;
}
.space-top4 {
  margin-top: 40px;
}
.space-top8 {
  margin-top: 80px;
}

.space-bottom0 {
  margin-bottom: 5px;
}
.space-bottom1 {
  margin-bottom: 10px;
}
.space-bottom2 {
  margin-bottom: 20px;
}
.space-bottom4 {
  margin-bottom: 40px;
}

/*------------------------------------------------------- */

/*------------------------------------------------------- */

.inline {
  display: inline;
}
.inline-block {
  display: inline-block;
}
.relative {
  position: relative;
}
.big {
  font-size: 125%;
  line-height: 1.75;
}
.small {
  font-size: 85%;
  line-height: 1.75;
}
.block {
  display: block;
}
.text-left {
  text-align: left;
}
.text-right {
  text-align: right;
}
.center {
  text-align: center;
}
.round {
  border-radius: 3px;
}
.dim {
  opacity: 0.5;
}

.animate {
  -webkit-transition: all 0.125s;
  -moz-transition: all 0.125s;
  -ms-transition: all 0.125s;
  transition: all 0.125s;
}

.center-y {
  top: 50%;
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -opera-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
}

.center-x {
  margin-left: auto;
  margin-right: auto;
}

.z1 {
  z-index: 1;
}
.z10 {
  z-index: 10;
}
.z100 {
  z-index: 100;
}

.link {
  color: blue;
}

.link:hover {
  cursor: pointer;
  color: black;
}

.color-black,
.color-block:hover {
  color: black;
}

.img {
  display: block;
  margin: 20px auto 20px auto;
  max-width: 100%;
}

/* widths and heights */
.w1x {
  width: 100px;
}
.w2x {
  width: 200px;
}
.w25p {
  width: 25%;
}
.w33p {
  width: 33.3333%;
}
.w50p {
  width: 50%;
}
.w75p {
  width: 75%;
}

.wmax-50p {
  max-width: 50%;
}

.wmax-75p {
  max-width: 75%;
}

.wmax-full {
  max-width: 100%;
}

.h75p-max {
  max-height: 75%;
}

.h36 {
  height: 360px;
}
.h36-min {
  min-height: 360px;
}

.h100vh-min {
  min-height: 100vh;
}

.h100p {
  height: 100%;
}
.h300-max {
  max-height: 300px;
}

.space-left20 {
  margin-left: 200px;
}

.prose h1,
.prose h2,
.prose h3,
.prose h4 {
  font-weight: bold;
  margin-bottom: calc(10px + 1vw);
}

.prose hr,
.prose p {
  margin-bottom: calc(20px + 2vw);
}

.prose hr {
  border-color: black;
  border-width: 0;
  border-top-width: 1px;
}

.prose em {
  font-style: italic;
}

.prose strong {
  font-weight: bold;
}

.prose a {
  color: blue;
}

.prose a:hover {
  cursor: pointer;
  color: black;
}

.prose img {
  max-width: 133%;
}

.prose [src$=".gif"] {
  image-rendering: pixelated;
}

.prose ol {
  margin-bottom: calc(20px + 2vw);
  padding-left: 30px;
  list-style: decimal;
}

.prose ul {
  margin-bottom: calc(20px + 2vw);
  padding-left: 30px;
  list-style: outside;
}

.prose li {
  display: list-item;
}

.prose li {
  margin-bottom: 6px;
}

.prose video {
  max-width: 100%;
}
