/*
  Zhongdong Yang
  Nov. 25, 2018

  yangzd1996@outlook.com, Parcel Santa Pte Ltd
  */
/*
  Zhongdong Yang
  Nov. 25, 2018

  yangzd1996@outlook.com, Parcel Santa Pte Ltd
  */
button {
  border: none;
  background-color: transparent;
  font-size: inherit; }

.md-button-container {
  position: relative;
  overflow: hidden;
  height: 48px;
  box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.3);
  line-height: 48px;
  font-size: 16px;
  text-align: center;
  border-radius: 8px;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  z-index: 0;
  font-weight: bold;
  font-weight: 500; }
  .md-button-container .md-button {
    display: block;
    z-index: 1;
    padding: 0 16px;
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
    text-decoration: none;
    height: 100%;
    outline: none;
    cursor: pointer;
    color: inherit;
    text-transform: inherit;
    font-weight: inherit;
    background-color: transparent;
    user-select: none;
    -ms-user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none; }
  .md-button-container .md-button-splash {
    z-index: -1;
    -webkit-animation: splash-spread linear 350ms 1 forwards;
            animation: splash-spread linear 350ms 1 forwards;
    background-color: rgba(0, 0, 0, 0.3);
    border-radius: 100%;
    position: absolute;
    opacity: 1; }

@-webkit-keyframes splash-spread {
  0% {
    -webkit-transform: scale3d(0.25, 0.25, 1);
            transform: scale3d(0.25, 0.25, 1);
    opacity: 1; }
  60% {
    opacity: 1; }
  100% {
    -webkit-transform: scale3d(1.25, 1.25, 1);
            transform: scale3d(1.25, 1.25, 1);
    opacity: 0; } }

@keyframes splash-spread {
  0% {
    -webkit-transform: scale3d(0.25, 0.25, 1);
            transform: scale3d(0.25, 0.25, 1);
    opacity: 1; }
  60% {
    opacity: 1; }
  100% {
    -webkit-transform: scale3d(1.25, 1.25, 1);
            transform: scale3d(1.25, 1.25, 1);
    opacity: 0; } }
  .md-button-container.size-radius-xlarge {
    border-radius: 12px; }
  .md-button-container.size-radius-large {
    border-radius: 10px; }
  .md-button-container.size-radius-medium {
    border-radius: 8px; }
  .md-button-container.size-radius-normal {
    border-radius: 6px; }
  .md-button-container.size-radius-small {
    border-radius: 4px; }
  .md-button-container.size-radius-xsmall {
    border-radius: 2px; }
  .md-button-container.size-radius-none {
    border-radius: 0; }
  .md-button-container.size-small {
    height: 38px;
    font-size: 16px;
    line-height: 38px;
    border-radius: 4px; }
  .md-button-container.size-large {
    height: 56px;
    line-height: 56px;
    font-size: 18px;
    border-radius: 10px; }
    .md-button-container.size-large .flutter-button {
      padding: 0 24px; }
  .md-button-container.font-uppercase {
    text-transform: uppercase; }
  .md-button-container.font-lowercase {
    text-transform: lowercase; }
  .md-button-container.font-bold {
    font-weight: bold;
    font-weight: 600; }
  .md-button-container.font-light {
    font-weight: lighter;
    font-weight: 300; }
  .md-button-container.font-normal {
    font-weight: normal;
    font-weight: 400; }
  .md-button-container.shadow-0 {
    box-shadow: none; }
  .md-button-container.shadow-2 {
    box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.3); }
  .md-button-container.shadow-4 {
    box-shadow: 0 3px 8px 0 rgba(0, 0, 0, 0.3), 1px 0 8px 0 rgba(0, 0, 0, 0.3); }
  .md-button-container.shadow-8 {
    box-shadow: 0 3px 12px 0 rgba(0, 0, 0, 0.3), 1px 0 12px 0 rgba(0, 0, 0, 0.3); }
  .md-button-container.shadow-16 {
    box-shadow: 0 6px 16px 0 rgba(0, 0, 0, 0.2), 3px 0 16px 0 rgba(0, 0, 0, 0.2); }
  .md-button-container.color-white {
    background-color: #ffffff;
    color: #111111; }
    .md-button-container.color-white .md-button-splash {
      background-color: rgba(0, 0, 0, 0.3); }
  .md-button-container.color-black {
    background-color: #111111;
    color: #ffffff; }
    .md-button-container.color-black .md-button-splash {
      background-color: rgba(255, 255, 255, 0.5); }
  .md-button-container.color-blue {
    background-color: #2196f3;
    color: #ffffff; }
    .md-button-container.color-blue .flutter-button-splash {
      background-color: rgba(200, 200, 200, 0.3); }
  .md-button-container.color-red {
    background-color: #f44336;
    color: #ffffff; }
    .md-button-container.color-red .md-button-splash {
      background-color: rgba(255, 205, 210, 0.7); }
  .md-button-container.color-green {
    background-color: #4caf50;
    color: #ffffff; }
    .md-button-container.color-green .md-button-splash {
      background-color: rgba(200, 230, 201, 0.8); }
  .md-button-container.color-yellow {
    background-color: #ffeb3b;
    color: #111111; }
    .md-button-container.color-yellow .md-button-splash {
      background-color: rgba(255, 253, 231, 0.7); }
  .md-button-container.color-grey {
    background-color: #9e9e9e;
    color: #ffffff; }
    .md-button-container.color-grey .md-button-splash {
      background-color: rgba(245, 245, 245, 0.6); }
  .md-button-container.color-orange {
    background-color: #ff5722;
    color: #ffffff; }
    .md-button-container.color-orange .md-button-splash {
      background-color: rgba(255, 224, 178, 0.6); }
  .md-button-container.color-purple {
    background-color: #9c27b0;
    color: #ffffff; }
    .md-button-container.color-purple .md-button-splash {
      background-color: rgba(225, 190, 231, 0.6); }
  .md-button-container.color-pink {
    background-color: #E91E63;
    color: #ffffff; }
    .md-button-container.color-pink .md-button-splash {
      background-color: rgba(248, 187, 208, 0.6); }

header {
  height: 75px;
  width: 100%;
  background-color: #111111;
  box-shadow: 0 2px 9px 0 #000;
  padding-left: 32px;
  padding-right: 32px;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999999; }
  header div.flutter-logo img {
    height: 35px;
    width: auto;
    position: absolute;
    left: 32px;
    vertical-align: middle;
    margin-top: 20px; }
  header div.flutter-title {
    font-family: "Noto Sans SC Sliced", "Roboto", sans-serif;
    font-weight: 300;
    color: #fff;
    font-size: 26px;
    height: 75px;
    line-height: 75px;
    position: absolute;
    left: 72px;
    vertical-align: middle; }

main {
  position: fixed;
  top: 75px;
  width: 100%;
  height: calc(100% - 75px);
  overflow-x: hidden;
  overflow-y: auto; }
  main section.hero {
    position: relative;
    top: 0;
    height: 750px;
    width: 100%;
    background-color: #111111;
    display: block;
    overflow: hidden; }
    @media screen and (max-width: 600px) {
      main section.hero {
        height: 100%; } }
    @media screen and (max-height: 600px) {
      main section.hero {
        height: 600px; } }
    main section.hero div.introduction {
      position: absolute;
      left: 256px;
      right: 256px;
      color: #fff;
      z-index: 2;
      height: 360px;
      top: calc(50% - 180px); }
      main section.hero div.introduction p span.welcome {
        font-size: 50px;
        font-weight: 300; }
      main section.hero div.introduction p img.flutter-codelabs {
        height: 43px;
        display: inline-block;
        width: 410px; }
      main section.hero div.introduction p.p1, main section.hero div.introduction p.p2, main section.hero div.introduction p.action {
        font-size: 16px;
        margin-top: 2em;
        margin-bottom: 2em;
        line-height: 1.75em; }
      main section.hero div.introduction p.action {
        display: flex; }
        main section.hero div.introduction p.action > * {
          display: block;
          margin-right: 16px; }
      @media screen and (min-width: 1200px) and (max-width: 1400px) {
        main section.hero div.introduction {
          left: 128px;
          right: 128px; } }
      @media screen and (min-width: 800px) and (max-width: 1200px) {
        main section.hero div.introduction {
          left: 72px;
          right: 72px; } }
      @media screen and (min-width: 600px) and (max-width: 800px) {
        main section.hero div.introduction {
          left: 48px;
          right: 48px; }
          main section.hero div.introduction p span.welcome {
            font-size: 36px; }
          main section.hero div.introduction p img.flutter-codelabs {
            height: 32px;
            width: 300px; } }
      @media screen and (max-width: 600px) {
        main section.hero div.introduction {
          left: 24px;
          right: 24px;
          top: calc(50% - 240px); }
          main section.hero div.introduction p span.welcome {
            font-size: 30px; }
          main section.hero div.introduction p img.flutter-codelabs {
            height: 28px;
            width: 260px; } }
      @media screen and (max-height: 600px) {
        main section.hero div.introduction {
          top: 36px; } }
    main section.hero div.phone-content {
      z-index: 1;
      position: absolute;
      bottom: 0;
      right: 10%;
      width: 520px;
      height: 624px;
      opacity: 1;
      transition: opacity ease-in-out 500ms; }
      @media screen and (max-width: 960px) {
        main section.hero div.phone-content {
          opacity: 0; } }
      main section.hero div.phone-content img.phone-frame {
        position: absolute;
        bottom: 0;
        z-index: -1;
        right: 32px; }
      main section.hero div.phone-content .floating-cards {
        top: 0;
        left: 0;
        bottom: 0;
        right: 0; }
        main section.hero div.phone-content .floating-cards img {
          -webkit-animation: card-fade-in ease-in-out 500ms 1 forwards;
                  animation: card-fade-in ease-in-out 500ms 1 forwards;
          z-index: 1;
          opacity: 0;
          position: absolute;
          box-shadow: 2px 9px 6px 0 rgba(0, 0, 0, 0.3); }
          main section.hero div.phone-content .floating-cards img.card-red {
            left: 0;
            top: 47.8%;
            -webkit-animation-delay: 250ms;
                    animation-delay: 250ms; }
          main section.hero div.phone-content .floating-cards img.card-yellow {
            right: 0;
            bottom: 0;
            -webkit-animation-delay: 400ms;
                    animation-delay: 400ms; }
          main section.hero div.phone-content .floating-cards img.card-blue {
            top: 30%;
            right: 0;
            -webkit-animation-delay: 50ms;
                    animation-delay: 50ms; }

@-webkit-keyframes card-fade-in {
  0% {
    opacity: 0;
    -webkit-transform: translateY(80%);
            transform: translateY(80%); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); } }

@keyframes card-fade-in {
  0% {
    opacity: 0;
    -webkit-transform: translateY(80%);
            transform: translateY(80%); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); } }
    main section.hero .geometries {
      position: absolute;
      width: 100%;
      height: 100%;
      z-index: 1; }
      main section.hero .geometries .geometry {
        position: absolute;
        opacity: 0;
        -webkit-animation: flash-geometry 8s ease-in-out 1 forwards;
                animation: flash-geometry 8s ease-in-out 1 forwards; }
        main section.hero .geometries .geometry:nth-child(9n) {
          -webkit-animation-delay: 10ms;
                  animation-delay: 10ms;
          -webkit-animation-duration: 5s;
                  animation-duration: 5s; }
        main section.hero .geometries .geometry:nth-child(9n-1) {
          -webkit-animation-delay: 16ms;
                  animation-delay: 16ms;
          -webkit-animation-duration: 3.6s;
                  animation-duration: 3.6s; }
        main section.hero .geometries .geometry:nth-child(9n-2) {
          -webkit-animation-delay: 10ms;
                  animation-delay: 10ms;
          -webkit-animation-duration: 8.5s;
                  animation-duration: 8.5s; }
        main section.hero .geometries .geometry:nth-child(9n-3) {
          -webkit-animation-delay: 300ms;
                  animation-delay: 300ms;
          -webkit-animation-duration: 7.8s;
                  animation-duration: 7.8s; }
        main section.hero .geometries .geometry:nth-child(9n-4) {
          -webkit-animation-delay: 450ms;
                  animation-delay: 450ms;
          -webkit-animation-duration: 8s;
                  animation-duration: 8s; }
        main section.hero .geometries .geometry:nth-child(9n-5) {
          -webkit-animation-delay: 700ms;
                  animation-delay: 700ms;
          -webkit-animation-duration: 3.2s;
                  animation-duration: 3.2s; }
        main section.hero .geometries .geometry:nth-child(9n-6) {
          -webkit-animation-delay: 300ms;
                  animation-delay: 300ms;
          -webkit-animation-duration: 6.8s;
                  animation-duration: 6.8s; }
        main section.hero .geometries .geometry:nth-child(9n-7) {
          -webkit-animation-delay: 30ms;
                  animation-delay: 30ms;
          -webkit-animation-duration: 5.5s;
                  animation-duration: 5.5s; }
        main section.hero .geometries .geometry:nth-child(9n-8) {
          -webkit-animation-delay: 100ms;
                  animation-delay: 100ms;
          -webkit-animation-duration: 7.3s;
                  animation-duration: 7.3s; }
        @media screen and (max-width: 480px) {
          main section.hero .geometries .geometry:nth-child(9n-5), main section.hero .geometries .geometry:nth-child(9n-6), main section.hero .geometries .geometry:nth-child(9n-7), main section.hero .geometries .geometry:nth-child(9n-8) {
            visibility: hidden; } }

@-webkit-keyframes flash-geometry {
  0% {
    opacity: 0; }
  10% {
    opacity: 1; }
  80% {
    opacity: 1; }
  90% {
    opacify: 0; }
  100% {
    opacify: 0; } }

@keyframes flash-geometry {
  0% {
    opacity: 0; }
  10% {
    opacity: 1; }
  80% {
    opacity: 1; }
  90% {
    opacify: 0; }
  100% {
    opacify: 0; } }
  main section.cards {
    padding: 56px 0 40px 0;
    box-sizing: border-box;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start; }
    @media screen and (min-width: 1024px) {
      main section.cards {
        width: 1022px;
        margin: auto; }
        main section.cards .flutter-card {
          margin-right: 16px; }
          main section.cards .flutter-card:nth-child(3n) {
            margin-right: 0; } }
    @media screen and (max-width: 1024px) and (min-width: 700px) {
      main section.cards {
        width: 676px;
        margin: auto; }
        main section.cards .flutter-card {
          margin-right: 16px; }
          main section.cards .flutter-card:nth-child(2n) {
            margin-right: 0; } }
    @media screen and (max-width: 700px) {
      main section.cards {
        width: 330px;
        margin: auto; } }
    main section.cards .flutter-card {
      display: block;
      height: 168px;
      width: 330px;
      box-sizing: border-box;
      background-color: white;
      border-radius: 8px;
      box-shadow: 1px 1px 2px 0 rgba(0, 0, 0, 0.1), 0 1px 8px 0 rgba(0, 0, 0, 0.1), 0 -1px 0 0 rgba(0, 0, 0, 0.02);
      padding: 16px;
      position: relative;
      margin-bottom: 16px;
      overflow: hidden;
      transition: box-shadow 300ms ease-in-out; }
      main section.cards .flutter-card, main section.cards .flutter-card:active, main section.cards .flutter-card:focus, main section.cards .flutter-card:visited {
        text-decoration: none; }
      main section.cards .flutter-card.highlight-cn {
        border-top: 3px #f44336 solid; }
      main section.cards .flutter-card:hover {
        box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.1), 0 2px 8px 0 rgba(0, 0, 0, 0.1), 0 -1px 3px 0 rgba(0, 0, 0, 0.1); }
      main section.cards .flutter-card .card-title {
        font-size: 16px;
        max-height: 75px;
        overflow: hidden;
        line-height: 22px; }
      main section.cards .flutter-card .card-info {
        display: flex;
        justify-content: space-between;
        height: 22px;
        line-height: 22px;
        position: absolute;
        bottom: 60px;
        width: calc(100% - 32px); }
        main section.cards .flutter-card .card-info .card-time, main section.cards .flutter-card .card-info .card-update {
          font-size: 12px;
          color: #999; }
      main section.cards .flutter-card .card-action {
        position: absolute;
        bottom: 16px;
        right: 16px;
        left: 16px;
        height: 45px;
        display: flex;
        justify-content: space-between;
        padding-top: 7px;
        z-index: 10; }
        main section.cards .flutter-card .card-action .card-logo {
          border: noneborder;
          width: 45px;
          height: 45px;
          border-radius: 100%;
          padding: 3.5px;
          margin-top: -3.5px; }
          main section.cards .flutter-card .card-action .card-logo img {
            border: none;
            width: 38px;
            height: 38px; }
            main section.cards .flutter-card .card-action .card-logo img.round {
              border-radius: 100%; }
  main footer {
    position: absolute;
    background-color: #111;
    color: white;
    height: 60px;
    width: 100%;
    display: table;
    padding-left: 16px;
    padding-right: 16px; }
    main footer p {
      width: 100%;
      font-size: 12px;
      text-align: center;
      margin: 0;
      display: table-cell;
      vertical-align: middle; }
