html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font: inherit;
  font-size: 100%;
  vertical-align: baseline; }

html {
  line-height: 1; }

ol, ul {
  list-style: none; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

caption, th, td {
  text-align: left;
  font-weight: normal;
  vertical-align: middle; }

q, blockquote {
  quotes: none; }
  q:before, q:after, blockquote:before, blockquote:after {
    content: "";
    content: none; }

a img {
  border: none; }

article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary {
  display: block; }

/* Open Sans light */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 300;
  src: url("../fonts/open-sans-v17-latin-300.eot");
  /* IE9 Compat Modes */
  src: local("Open Sans Light"), local("OpenSans-Light"), url("../fonts/open-sans-v17-latin-300.eot?#iefix") format("embedded-opentype"), url("../fonts/open-sans-v17-latin-300.woff2") format("woff2"), url("../fonts/open-sans-v17-latin-300.woff") format("woff"), url("../fonts/open-sans-v17-latin-300.ttf") format("truetype"), url("../fonts/open-sans-v17-latin-300.svg#OpenSans") format("svg");
  /* Legacy iOS */ }
/* Open Sans light italic */
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 300;
  src: url("../fonts/open-sans-v17-latin-300italic.eot");
  /* IE9 Compat Modes */
  src: local("Open Sans Light Italic"), local("OpenSans-LightItalic"), url("../fonts/open-sans-v17-latin-300italic.eot?#iefix") format("embedded-opentype"), url("../fonts/open-sans-v17-latin-300italic.woff2") format("woff2"), url("../fonts/open-sans-v17-latin-300italic.woff") format("woff"), url("../fonts/open-sans-v17-latin-300italic.ttf") format("truetype"), url("../fonts/open-sans-v17-latin-300italic.svg#OpenSans") format("svg");
  /* Legacy iOS */ }
/* Open Sans regular */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  src: url("../fonts/open-sans-v17-latin-regular.eot");
  /* IE9 Compat Modes */
  src: local("Open Sans Regular"), local("OpenSans-Regular"), url("../fonts/open-sans-v17-latin-regular.eot?#iefix") format("embedded-opentype"), url("../fonts/open-sans-v17-latin-regular.woff2") format("woff2"), url("../fonts/open-sans-v17-latin-regular.woff") format("woff"), url("../fonts/open-sans-v17-latin-regular.ttf") format("truetype"), url("../fonts/open-sans-v17-latin-regular.svg#OpenSans") format("svg");
  /* Legacy iOS */ }
/* Open Sans regular italic */
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 400;
  src: url("../fonts/open-sans-v17-latin-italic.eot");
  /* IE9 Compat Modes */
  src: local("Open Sans Italic"), local("OpenSans-Italic"), url("../fonts/open-sans-v17-latin-italic.eot?#iefix") format("embedded-opentype"), url("../fonts/open-sans-v17-latin-italic.woff2") format("woff2"), url("../fonts/open-sans-v17-latin-italic.woff") format("woff"), url("../fonts/open-sans-v17-latin-italic.ttf") format("truetype"), url("../fonts/open-sans-v17-latin-italic.svg#OpenSans") format("svg");
  /* Legacy iOS */ }
/* Open Sans semi-bold */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 600;
  src: url("../fonts/open-sans-v17-latin-600.eot");
  /* IE9 Compat Modes */
  src: local("Open Sans SemiBold"), local("OpenSans-SemiBold"), url("../fonts/open-sans-v17-latin-600.eot?#iefix") format("embedded-opentype"), url("../fonts/open-sans-v17-latin-600.woff2") format("woff2"), url("../fonts/open-sans-v17-latin-600.woff") format("woff"), url("../fonts/open-sans-v17-latin-600.ttf") format("truetype"), url("../fonts/open-sans-v17-latin-600.svg#OpenSans") format("svg");
  /* Legacy iOS */ }
/* Open Sans semi-bold italic   */
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 600;
  src: url("../fonts/open-sans-v17-latin-600italic.eot");
  /* IE9 Compat Modes */
  src: local("Open Sans SemiBold Italic"), local("OpenSans-SemiBoldItalic"), url("../fonts/open-sans-v17-latin-600italic.eot?#iefix") format("embedded-opentype"), url("../fonts/open-sans-v17-latin-600italic.woff2") format("woff2"), url("../fonts/open-sans-v17-latin-600italic.woff") format("woff"), url("../fonts/open-sans-v17-latin-600italic.ttf") format("truetype"), url("../fonts/open-sans-v17-latin-600italic.svg#OpenSans") format("svg");
  /* Legacy iOS */ }
/* Open Sans bold */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 700;
  src: url("../fonts/open-sans-v17-latin-700.eot");
  /* IE9 Compat Modes */
  src: local("Open Sans Bold"), local("OpenSans-Bold"), url("../fonts/open-sans-v17-latin-700.eot?#iefix") format("embedded-opentype"), url("../fonts/open-sans-v17-latin-700.woff2") format("woff2"), url("../fonts/open-sans-v17-latin-700.woff") format("woff"), url("../fonts/open-sans-v17-latin-700.ttf") format("truetype"), url("../fonts/open-sans-v17-latin-700.svg#OpenSans") format("svg");
  /* Legacy iOS */ }
/* Open Sans bold italic */
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 700;
  src: url("../fonts/open-sans-v17-latin-700italic.eot");
  /* IE9 Compat Modes */
  src: local("Open Sans Bold Italic"), local("OpenSans-BoldItalic"), url("../fonts/open-sans-v17-latin-700italic.eot?#iefix") format("embedded-opentype"), url("../fonts/open-sans-v17-latin-700italic.woff2") format("woff2"), url("../fonts/open-sans-v17-latin-700italic.woff") format("woff"), url("../fonts/open-sans-v17-latin-700italic.ttf") format("truetype"), url("../fonts/open-sans-v17-latin-700italic.svg#OpenSans") format("svg");
  /* Legacy iOS */ }
/* Open Sans extra bold */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 800;
  src: url("../fonts/open-sans-v17-latin-800.eot");
  /* IE9 Compat Modes */
  src: local("Open Sans ExtraBold"), local("OpenSans-ExtraBold"), url("../fonts/open-sans-v17-latin-800.eot?#iefix") format("embedded-opentype"), url("../fonts/open-sans-v17-latin-800.woff2") format("woff2"), url("../fonts/open-sans-v17-latin-800.woff") format("woff"), url("../fonts/open-sans-v17-latin-800.ttf") format("truetype"), url("../fonts/open-sans-v17-latin-800.svg#OpenSans") format("svg");
  /* Legacy iOS */ }
/* Open Sans extra bold italic */
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 800;
  src: url("../fonts/open-sans-v17-latin-800italic.eot");
  /* IE9 Compat Modes */
  src: local("Open Sans ExtraBold Italic"), local("OpenSans-ExtraBoldItalic"), url("../fonts/open-sans-v17-latin-800italic.eot?#iefix") format("embedded-opentype"), url("../fonts/open-sans-v17-latin-800italic.woff2") format("woff2"), url("../fonts/open-sans-v17-latin-800italic.woff") format("woff"), url("../fonts/open-sans-v17-latin-800italic.ttf") format("truetype"), url("../fonts/open-sans-v17-latin-800italic.svg#OpenSans") format("svg");
  /* Legacy iOS */ }
/* Colors */
html * {
  box-sizing: border-box; }

body {
  font-family: "Open Sans", Arial, sans-serif; }

h1 {
  font-size: 30px;
  font-size: 1.875rem;
  line-height: 38px;
  line-height: 2.375rem; }

h2 {
  font-size: 30px;
  font-size: 1.875rem;
  font-weight: 400; }

h3 {
  font-size: 18px;
  font-size: 1.125rem;
  font-weight: 400; }

p {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 150%; }
  p strong {
    font-weight: 700; }

a.button {
  background-color: white;
  border-radius: 40px;
  padding: 12px 20px;
  color: #14938A;
  text-decoration: none;
  transition: .25s color, .25s background-color;
  display: inline-block; }
  a.button:hover {
    background-color: rgba(255, 255, 255, 0.75);
    color: #000; }

.contain {
  max-width: 1400px;
  margin: 0 auto;
  box-shadow: 0 0 10px 10px rgba(0, 0, 0, 0.25);
  box-shadow: 0 0 25px rgba(0, 0, 0, 0.25), 0 0 20px 5px rgba(0, 0, 0, 0.5);
  overflow: hidden; }
  .contain .section-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 40px; }

header {
  position: fixed;
  display: block;
  max-width: 1400px;
  margin: 0 auto;
  top: 0;
  width: 100%;
  z-index: 99;
  overflow: hidden;
  height: 100%;
  pointer-events: none; }
  header #menu-button,
  header .menu {
    pointer-events: auto; }
  header .function {
    position: absolute;
    top: 20px;
    right: 20px;
    height: 56px;
    width: 56px;
    display: block;
    align-items: center;
    justify-content: center;
    padding: 0; }
  header #menu-button {
    z-index: 9;
    border-radius: 50%;
    background: rgba(122, 115, 93, 0.6);
    backdrop-filter: blur(3px);
    transition: .25s background-color, .25s box-shadow;
    box-shadow: 0 0 2px 2px #fff; }
    header #menu-button svg {
      display: block;
      margin: 13px auto;
      max-width: 30px; }
    header #menu-button:hover {
      background: rgba(150, 150, 150, 0.8);
      box-shadow: 0 0 1px 4px #fff; }
  header #close-button {
    padding: 10px;
    transition: .25s padding; }
    header #close-button:hover {
      padding: 5px; }
  header .menu {
    position: absolute;
    z-index: 10;
    top: 0;
    right: -100%;
    transition: .5s right;
    padding: 80px 80px 40px 40px;
    background: linear-gradient(65deg, rgba(66, 65, 50, 0.9), rgba(122, 115, 93, 0.9));
    backdrop-filter: blur(5px); }
    header .menu.active {
      right: 0; }
    header .menu ul li {
      margin: 10px 0; }
      header .menu ul li a {
        display: block;
        padding: 5px 10px;
        color: #fff; }
        header .menu ul li a:hover {
          background: #fff;
          color: #14938A;
          text-decoration: none;
          border-radius: 3px; }
        header .menu ul li a.active {
          font-weight: bold; }

section {
  position: relative; }
  section img {
    max-width: 100%;
    display: block; }

.bg-img img {
  display: block;
  max-width: 100%; }

.bg-btm-flow {
  position: absolute;
  bottom: 0;
  z-index: 1; }

.bg-btm-flow + .row {
  position: relative;
  z-index: 2; }

.col img, div[class*="col-"] img {
  max-width: 100%; }

/* Home */
#home {
  position: relative;
  z-index: 1;
  background: url(../images/bg-puzzle-intro.jpg) center center no-repeat;
  background-size: cover;
  color: #fff;
  min-height: 90vh; }
  #home p strong {
    font-size: 15px;
    font-size: 0.9375rem;
    font-weight: 700; }
  #home .logo {
    height: 8vw;
    max-height: 45px;
    position: absolute;
    top: 30px;
    left: 30px; }
    @media (min-width: 768px) {
      #home .logo {
        max-height: 65px; } }
    #home .logo img {
      max-width: 100%;
      max-height: 100%; }
  @media (min-width: 768px) {
    #home .row {
      min-height: 80vh; } }
  @media (max-width: 767px) {
    #home .row {
      background: url(../images/s1-intro-bg-mobile.png) bottom center repeat-y transparent;
      background-size: contain;
      padding: 100px 0 8vw 0; } }
  #home .mobile-only img {
    max-width: 100%;
    display: block; }
  @media (min-width: 768px) {
    #home .mobile-only {
      display: none; } }
  #home #about-1-top {
    position: absolute;
    bottom: 0;
    z-index: 2; }
    @media (max-width: 767px) {
      #home #about-1-top {
        display: none; } }

/* About */
#about-the-game .section-inner {
  padding: 0; }

#about-1 {
  color: #fff;
  background: url(../images/s2-bg-mid.png) center center repeat-y transparent;
  background-size: contain;
  position: relative;
  padding: 50px 0; }
  #about-1 h2, #about-1 p, #about-1 a {
    margin: 10px 0; }

#about-2 {
  position: relative;
  background: url(../images/s3-bg-text.png) center center repeat-y transparent;
  background-size: 100%; }
  @media (min-width: 768px) {
    #about-2 {
      background: url(../images/s3-bg.jpg) center center no-repeat transparent;
      background-size: cover; } }
  #about-2 #about-2-inner {
    margin: 40px 0 10px 0; }
    @media (min-width: 768px) {
      #about-2 #about-2-inner {
        margin-top: 6rem;
        margin-bottom: 12rem; } }
  #about-2 h2 {
    color: #009187; }

#video-1 {
  background: url(../images/s4-bg.jpg) center top no-repeat #e7e4df;
  background-size: contain; }

#works-1-top {
  bottom: 0;
  z-index: 2; }

#how-it-works {
  padding-top: 50px;
  padding-bottom: 50px; }
  #how-it-works h2 {
    color: #009187;
    text-align: center; }

#video-2 {
  background: #14938A;
  color: #fff; }

/* Results */
#results {
  padding: 50px 0; }
  #results h3 {
    font-style: italic;
    font-size: 16px;
    font-size: 1rem;
    line-height: 140%; }
    @media (min-width: 768px) {
      #results h3 {
        font-size: 18px;
        font-size: 1.125rem; } }

#our-team {
  background: #fafafa; }
  #our-team #team-members {
    justify-content: center; }
  #our-team .team-member {
    position: relative;
    overflow: hidden; }
    #our-team .team-member img {
      position: relative;
      z-index: 1;
      display: block;
      max-width: calc(100% + 2px);
      margin: -1px 0 0 -1px; }
    #our-team .team-member .info {
      position: absolute;
      z-index: 2;
      height: 100%;
      width: 100%;
      top: 0;
      left: 0;
      background: rgba(20, 147, 138, 0.75);
      color: #fff;
      display: flex;
      justify-content: flex-end;
      align-content: center;
      flex-direction: column;
      align-items: center;
      transition: .25s opacity;
      opacity: 0;
      padding: 1vw 2.5vw; }
      #our-team .team-member .info h4, #our-team .team-member .info p {
        text-align: center; }
      #our-team .team-member .info h4 {
        font-weight: bold;
        line-height: 150%;
        font-size: 12px;
        font-size: 0.75rem; }
        @media (min-width: 1200px) {
          #our-team .team-member .info h4 {
            font-size: 16px;
            font-size: 1rem; } }
      #our-team .team-member .info p {
        font-style: italic;
        font-size: 11px;
        font-size: 0.6875rem; }
        @media (min-width: 1200px) {
          #our-team .team-member .info p {
            font-size: 14px;
            font-size: 0.875rem; } }
      #our-team .team-member .info:hover {
        opacity: 1;
        text-decoration: none; }
  #our-team h2 {
    color: #14938A; }

#contact .form_row {
  margin: 25px 0; }
#contact textarea,
#contact input {
  background: #fefefe;
  border: 1px solid #ccc;
  border-radius: 3px;
  font-size: 20px;
  font-size: 1.25rem;
  padding: 10px;
  margin: 10px 0;
  width: 100%;
  line-height: 140%; }
#contact .desc {
  font-size: 12px;
  font-size: 0.75rem;
  color: #999; }
#contact #contact_submit {
  font-size: 18px;
  font-size: 1.125rem;
  text-align: center;
  background: #14938A;
  color: #fff;
  text-transform: uppercase;
  padding: 18px 40px;
  border-radius: 3em;
  border: 0;
  display: inline-block;
  width: auto; }

#newsletter {
  background: #14938A;
  color: #fff; }
  #newsletter #newsletter_submit {
    background: #333;
    color: #fff;
    text-transform: uppercase;
    padding: 18px 40px;
    border-radius: 3em;
    border: 0; }

.vid-wrap {
  margin: 50px 0;
  overflow: hidden;
  border-radius: 3px;
  box-shadow: 5px 5px 20px 15px rgba(0, 0, 0, 0.15);
  margin: 50px auto; }
  .vid-wrap.vimeo {
    --vid-width: 640;
    --vid-height: 360;
    position: relative;
    padding-bottom: calc(var(--vid-height) / var(--vid-width) * 100%);
    overflow: hidden;
    max-width: 100%;
    background: #000; }
    .vid-wrap.vimeo iframe {
      position: absolute;
      top: -1px;
      left: -1px;
      width: calc(100% + 2px);
      height: calc(100% + 2px); }

.ah {
  position: absolute !important;
  clip: rect(1px 1px 1px 1px);
  /* IE6, IE7 */
  clip: rect(1px, 1px, 1px, 1px);
  background: #000;
  color: #fff; }

.tab-show {
  display: none; }
  @media (max-width: 767px) {
    .tab-show {
      display: block; } }

.tab-hide {
  display: block; }
  @media (max-width: 767px) {
    .tab-hide {
      display: none; } }
