:host {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 40px;

  .intro {
    text-align: center;
    margin: 0 0 40px 0;

    &:before {
      font-family: Lato;
      z-index: -1;
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 500px;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900'%3E%3Cpolygon fill='%23e53531' points='957 450 539 900 1396 900'/%3E%3Cpolygon fill='%23cf2525' points='957 450 872.9 900 1396 900'/%3E%3Cpolygon fill='%23d7313e' points='-60 900 398 662 816 900'/%3E%3Cpolygon fill='%23a91d28' points='337 900 398 662 816 900'/%3E%3Cpolygon fill='%23c92541' points='1203 546 1552 900 876 900'/%3E%3Cpolygon fill='%23b1203a' points='1203 546 1552 900 1162 900'/%3E%3Cpolygon fill='%23c6214e' points='641 695 886 900 367 900'/%3E%3Cpolygon fill='%23981638' points='587 900 641 695 886 900'/%3E%3Cpolygon fill='%23a01547' points='1710 900 1401 632 1096 900'/%3E%3Cpolygon fill='%23a0113d' points='1710 900 1401 632 1365 900'/%3E%3Cpolygon fill='%23b70e4f' points='1210 900 971 687 725 900'/%3E%3Cpolygon fill='%23890c46' points='943 900 1210 900 971 687'/%3E%3C/svg%3E");
      background-position: top center;
      background-repeat: no-repeat;
      background-size: 1600px 500px;
      transform: rotate(180deg);
      overflow: hidden;
    }

    h1 {
      font-size: 3em;
      line-height: 1.1em;
      font-weight: bold;
    }

    h3 {
      font-size: 1.8em;
      line-height: 1.3em;
      opacity: 0.5;
      margin: 0;
    }

    mat-icon {
      height: 170px;
      margin: 0 0 50px 0;
    }
  }

  .cta {
    button,
    a {
      margin: 5px;
      padding: 5px 35px;
    }
  }

  h2 {
    font-size: 2.5em;
    text-transform: uppercase;
    margin: 50px 0 15px 0;
  }

  pre {
    margin: 20px 0 0 0;
    line-height: 1.3em;
  }

  ol {
    max-width: 100%;
  }

  mat-grid-list {
    width: 100%;

    mat-grid-tile {
      mat-card {
        width: calc(100% - 4px);

        mat-card-header {
          padding: 16px;
        }

        mat-card-title {
          white-space: nowrap;
          overflow: hidden;
          text-overflow: ellipsis;
          margin-bottom: 10px;
        }

        mat-card-subtitle {
          height: 80px;
          overflow: hidden;
          text-overflow: ellipsis;
        }

        mat-icon {
          font-size: 24px;
        }
      }
    }
  }
}

:host-context(.responsive) {
  .cta {
    button,
    a {
      width: 100%;
    }
  }

  code {
    white-space: normal;
    padding: 0 8px 1px 8px;
  }
}
