html {
  box-sizing: border-box; }

*, *::after, *::before {
  box-sizing: inherit; }

body {
  background-color: #ff5173;
  margin: 0; }

a {
  -moz-text-decoration-color: #d10029;
  color: #ff5173; }
  a:hover {
    color: #d10029; }

body {
  color: #4d4d4d;
  font-family: "Proxima Nova", "Lato", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 16px; }
  @media screen and (min-width: 544px) {
    body {
      font-size: 17px; } }
  @media screen and (min-width: 768px) {
    body {
      font-size: 18px; } }
  @media screen and (min-width: 992px) {
    body {
      font-size: 19px; } }
  @media screen and (min-width: 1200px) {
    body {
      font-size: 20px; } }

@-webkit-keyframes multicolour-background {
  0% {
    background-color: #3f504c; }
  20% {
    background-color: #ff5173; }
  40% {
    background-color: #eda034; }
  60% {
    background-color: #99ae00; }
  80% {
    background-color: #24a5d4; }
  100% {
    background-color: #3f504c; } }

@-moz-keyframes multicolour-background {
  0% {
    background-color: #3f504c; }
  20% {
    background-color: #ff5173; }
  40% {
    background-color: #eda034; }
  60% {
    background-color: #99ae00; }
  80% {
    background-color: #24a5d4; }
  100% {
    background-color: #3f504c; } }

@-ms-keyframes multicolour-background {
  0% {
    background-color: #3f504c; }
  20% {
    background-color: #ff5173; }
  40% {
    background-color: #eda034; }
  60% {
    background-color: #99ae00; }
  80% {
    background-color: #24a5d4; }
  100% {
    background-color: #3f504c; } }

@-o-keyframes multicolour-background {
  0% {
    background-color: #3f504c; }
  20% {
    background-color: #ff5173; }
  40% {
    background-color: #eda034; }
  60% {
    background-color: #99ae00; }
  80% {
    background-color: #24a5d4; }
  100% {
    background-color: #3f504c; } }

@keyframes multicolour-background {
  0% {
    background-color: #3f504c; }
  20% {
    background-color: #ff5173; }
  40% {
    background-color: #eda034; }
  60% {
    background-color: #99ae00; }
  80% {
    background-color: #24a5d4; }
  100% {
    background-color: #3f504c; } }

@-webkit-keyframes fade-in {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }

@-moz-keyframes fade-in {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }

@-ms-keyframes fade-in {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }

@-o-keyframes fade-in {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }

@keyframes fade-in {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }

@-webkit-keyframes move-up {
  from {
    bottom: 30px; }
  to {
    bottom: 42px; } }

@-moz-keyframes move-up {
  from {
    bottom: 30px; }
  to {
    bottom: 42px; } }

@-ms-keyframes move-up {
  from {
    bottom: 30px; }
  to {
    bottom: 42px; } }

@-o-keyframes move-up {
  from {
    bottom: 30px; }
  to {
    bottom: 42px; } }

@keyframes move-up {
  from {
    bottom: 30px; }
  to {
    bottom: 42px; } }

@-webkit-keyframes pulsate {
  0% {
    opacity: .0;
    transform: scale(0.1, 0.1); }
  50% {
    opacity: 1; }
  100% {
    opacity: .0;
    transform: scale(1.2, 1.2); } }

@-moz-keyframes pulsate {
  0% {
    opacity: .0;
    transform: scale(0.1, 0.1); }
  50% {
    opacity: 1; }
  100% {
    opacity: .0;
    transform: scale(1.2, 1.2); } }

@-ms-keyframes pulsate {
  0% {
    opacity: .0;
    transform: scale(0.1, 0.1); }
  50% {
    opacity: 1; }
  100% {
    opacity: .0;
    transform: scale(1.2, 1.2); } }

@-o-keyframes pulsate {
  0% {
    opacity: .0;
    transform: scale(0.1, 0.1); }
  50% {
    opacity: 1; }
  100% {
    opacity: .0;
    transform: scale(1.2, 1.2); } }

@keyframes pulsate {
  0% {
    opacity: .0;
    transform: scale(0.1, 0.1); }
  50% {
    opacity: 1; }
  100% {
    opacity: .0;
    transform: scale(1.2, 1.2); } }

.grid__row {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto; }
  .grid__row::after {
    clear: both;
    content: "";
    display: block; }

.grid__col--1 {
  float: left;
  display: block;
  margin-right: 2.3576520234%;
  width: 6.1721523119%; }
  .grid__col--1:last-child {
    margin-right: 0; }

.grid__col--2 {
  float: left;
  display: block;
  margin-right: 2.3576520234%;
  width: 14.7019566472%; }
  .grid__col--2:last-child {
    margin-right: 0; }

.grid__col--3 {
  float: left;
  display: block;
  margin-right: 2.3576520234%;
  width: 23.2317609825%; }
  .grid__col--3:last-child {
    margin-right: 0; }

.grid__col--4 {
  float: left;
  display: block;
  margin-right: 2.3576520234%;
  width: 31.7615653177%; }
  .grid__col--4:last-child {
    margin-right: 0; }

.grid__col--5 {
  float: left;
  display: block;
  margin-right: 2.3576520234%;
  width: 40.291369653%; }
  .grid__col--5:last-child {
    margin-right: 0; }

.grid__col--6 {
  float: left;
  display: block;
  margin-right: 2.3576520234%;
  width: 48.8211739883%; }
  .grid__col--6:last-child {
    margin-right: 0; }

.grid__col--7 {
  float: left;
  display: block;
  margin-right: 2.3576520234%;
  width: 57.3509783236%; }
  .grid__col--7:last-child {
    margin-right: 0; }

.grid__col--8 {
  float: left;
  display: block;
  margin-right: 2.3576520234%;
  width: 65.8807826589%; }
  .grid__col--8:last-child {
    margin-right: 0; }

.grid__col--9 {
  float: left;
  display: block;
  margin-right: 2.3576520234%;
  width: 74.4105869942%; }
  .grid__col--9:last-child {
    margin-right: 0; }

.grid__col--10 {
  float: left;
  display: block;
  margin-right: 2.3576520234%;
  width: 82.9403913294%; }
  .grid__col--10:last-child {
    margin-right: 0; }

.grid__col--11 {
  float: left;
  display: block;
  margin-right: 2.3576520234%;
  width: 91.4701956647%; }
  .grid__col--11:last-child {
    margin-right: 0; }

.grid__col--12 {
  float: left;
  display: block;
  margin-right: 2.3576520234%;
  width: 100%; }
  .grid__col--12:last-child {
    margin-right: 0; }

.grid__col--omega {
  margin-right: 0; }

.footer {
  background: #c72343;
  padding-bottom: 1.5em;
  padding-top: 1.5em;
  width: 100%; }
  .footer__wrapper {
    margin: 0 auto;
    max-width: 30em; }
  .footer__logo {
    text-align: center; }
    .footer__logo img {
      width: 5em; }
  .footer__links {
    margin-bottom: 1.5em; }
  .footer__link-list {
    margin-bottom: 3em;
    padding: 0; }
  .footer__item {
    line-height: 1.5em;
    list-style: none;
    text-align: center; }
  .footer__link {
    color: rgba(255, 255, 255, 0.4);
    text-decoration: none; }
    .footer__link:focus, .footer__link:hover {
      color: white; }
  .footer__heading {
    color: #fff;
    font-size: 1em;
    margin-bottom: .25em; }
  .footer__separator {
    border: 1px solid rgba(255, 255, 255, 0.1);
    margin: 0 auto 1.5em;
    width: 12em; }
  .footer__copy {
    color: rgba(255, 255, 255, 0.4);
    font-size: 0.9em;
    line-height: 1.5em;
    margin: auto;
    max-width: 25em;
    text-align: center; }
    .footer__copy:hover svg {
      -webkit-animation-name: pulsate;
      -moz-animation-name: pulsate;
      -ms-animation-name: pulsate;
      -o-animation-name: pulsate;
      animation-name: pulsate;
      -webkit-animation-duration: 1s;
      -moz-animation-duration: 1s;
      animation-duration: 1s;
      -webkit-animation-timing-function: ease-out;
      -moz-animation-timing-function: ease-out;
      animation-timing-function: ease-out;
      -webkit-animation-iteration-count: infinite;
      -moz-animation-iteration-count: infinite;
      animation-iteration-count: infinite; }
  .footer__heart svg {
    height: 1.35em;
    vertical-align: middle;
    width: 1.35em; }
    .footer__heart svg * {
      fill: #ff5173; }

.header {
  background-color: #c72343;
  padding-bottom: 0.75em;
  padding-top: 0.75em;
  width: 100%; }
  .header__logo--mobile {
    display: inline;
    float: left; }
    @media screen and (min-width: 700px) {
      .header__logo--mobile {
        display: none; } }
  .header__logo-image {
    max-height: 2em; }
    .header__logo-image--desktop {
      margin-bottom: -0.6666666667em; }
  .header__navigation-mobile-menu {
    color: rgba(255, 255, 255, 0.4);
    float: right;
    margin-right: .5em;
    padding-top: .5em;
    text-decoration: none; }
    @media screen and (min-width: 700px) {
      .header__navigation-mobile-menu {
        display: none; } }
    .header__navigation-mobile-menu:focus, .header__navigation-mobile-menu:hover {
      color: white; }
  .header__wrapper {
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    position: relative; }
    .header__wrapper::after {
      clear: both;
      content: "";
      display: block; }
    .header__wrapper::after {
      clear: both;
      content: "";
      display: block; }

.navigation__list {
  clear: both;
  display: none;
  margin: 0 auto;
  overflow: visible;
  padding: 0;
  width: 100%; }
  @media screen and (min-width: 700px) {
    .navigation__list {
      display: block;
      text-align: center; } }
  .navigation__list--show {
    display: block; }
  .navigation__list--mobile {
    padding-right: .5em; }

.navigation__item {
  display: block;
  text-align: right;
  width: 100%; }
  @media screen and (min-width: 700px) {
    .navigation__item {
      display: inline; } }
  .navigation__item:last-child a {
    padding-right: 0; }
  .navigation__item--logo {
    display: none;
    line-height: 0; }
    @media screen and (min-width: 700px) {
      .navigation__item--logo {
        display: inline; } }

.navigation__link {
  color: rgba(255, 255, 255, 0.4);
  display: inline-block;
  text-decoration: none; }
  @media screen and (min-width: 700px) {
    .navigation__link {
      padding-right: 1em; } }
  .navigation__link--active {
    color: rgba(255, 255, 255, 0.8); }
  .navigation__link:focus, .navigation__link:hover {
    color: white; }

.page {
  background-color: #fff;
  padding-bottom: 1.5em;
  padding-top: 1.5em; }
  .page__header {
    margin-bottom: 1rem;
    margin-top: 1rem; }
  .page__title {
    font-size: 2.617924rem;
    font-weight: 300; }
  .page__header-wrapper, .page__content-wrapper {
    margin: 0 1rem; }
    @media screen and (min-width: 700px) {
      .page__header-wrapper, .page__content-wrapper {
        margin: 0 auto;
        width: 43.75rem; } }

.page__content blockquote {
  border-left: 0.25rem solid #b3b3b3;
  font-size: 1.25rem;
  margin-bottom: 1rem;
  margin-left: 0;
  margin-right: 0;
  padding: .25rem .5rem; }
  .page__content blockquote p {
    margin-bottom: 1rem;
    margin-top: 0; }
  .page__content blockquote cite {
    font-size: 1rem;
    line-height: 1.5; }

.page__content pre {
  border: 1px solid #4d4d4d;
  overflow: auto;
  padding: .5em 1em; }

.page__content code {
  font-size: .9em; }

.page__content a {
  overflow-wrap: break-word;
  word-wrap: break-word; }

.alert {
  background-color: #4d4d4d;
  color: #1f1f1f;
  display: block;
  margin-bottom: 0.75em;
  padding: 0.75em;
  text-align: center; }
  .alert__link {
    color: #171717;
    text-decoration: underline; }
    .alert__link:focus, .alert__link:hover {
      color: #171717; }

.alert--alert {
  background-color: #fff6bf;
  color: #66624c; }
  .alert--alert .alert__link {
    color: #4d4a39;
    text-decoration: underline; }
    .alert--alert .alert__link:focus, .alert--alert .alert__link:hover {
      color: #1a1913; }

.alert--error {
  background-color: #fbe3e4;
  color: #645b5b; }
  .alert--error .alert__link {
    color: #4b4444;
    text-decoration: underline; }
    .alert--error .alert__link:focus, .alert--error .alert__link:hover {
      color: #191717; }

.alert--notice {
  background-color: #e5edf8;
  color: #5c5f63; }
  .alert--notice .alert__link {
    color: #45474a;
    text-decoration: underline; }
    .alert--notice .alert__link:focus, .alert--notice .alert__link:hover {
      color: #171819; }

.alert--success {
  background-color: #e6efc2;
  color: #5c604e; }
  .alert--success .alert__link {
    color: #45483a;
    text-decoration: underline; }
    .alert--success .alert__link:focus, .alert--success .alert__link:hover {
      color: #171813; }

.button-group {
  list-style: none;
  margin-left: -5px;
  padding-left: 0; }
  .button-group__item {
    display: inline-block;
    padding: .5em .25em; }

.button {
  color: white;
  font-size: 1.44rem;
  font-weight: 300;
  text-decoration: underline; }
  @media screen and (min-width: 700px) {
    .button {
      background-color: transparent;
      background-image: -webkit-linear-gradient(transparent, rgba(63, 80, 76, 0.2));
      background-image: linear-gradient(transparent, rgba(63, 80, 76, 0.2));
      border-top-left-radius: 0.25rem;
      border-top-right-radius: 0.25rem;
      border-bottom-left-radius: 0.25rem;
      border-bottom-right-radius: 0.25rem;
      border-bottom-left-radius: 0.25rem;
      border-top-left-radius: 0.25rem;
      border-bottom-right-radius: 0.25rem;
      border-top-right-radius: 0.25rem;
      padding: 0.25rem 0.5rem;
      border: 1px solid white;
      text-decoration: none; }
      .button:hover {
        background-color: transparent;
        background-image: -webkit-linear-gradient(transparent, rgba(255, 255, 255, 0.2));
        background-image: linear-gradient(transparent, rgba(255, 255, 255, 0.2));
        color: white;
        text-decoration: none; }
      .button--fire-bush {
        background-color: transparent;
        background-image: -webkit-linear-gradient(transparent, rgba(237, 160, 52, 0.2));
        background-image: linear-gradient(transparent, rgba(237, 160, 52, 0.2)); }
      .button--cerulean {
        background-color: transparent;
        background-image: -webkit-linear-gradient(transparent, rgba(36, 165, 212, 0.2));
        background-image: linear-gradient(transparent, rgba(36, 165, 212, 0.2)); }
      .button--wild-watermelon {
        background-color: transparent;
        background-image: -webkit-linear-gradient(transparent, rgba(255, 81, 115, 0.2));
        background-image: linear-gradient(transparent, rgba(255, 81, 115, 0.2)); }
      .button--bitter-lemon {
        background-color: transparent;
        background-image: -webkit-linear-gradient(transparent, rgba(198, 225, 0, 0.2));
        background-image: linear-gradient(transparent, rgba(198, 225, 0, 0.2)); }
      .button--cape-code {
        background-color: transparent;
        background-image: -webkit-linear-gradient(transparent, rgba(63, 80, 76, 0.2));
        background-image: linear-gradient(transparent, rgba(63, 80, 76, 0.2)); } }
  .button:hover {
    color: #e6e6e6;
    text-decoration: underline; }

.card-list {
  display: -webkit-box;
  display: -moz-box;
  display: box;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-lines: multiple;
  -moz-box-lines: multiple;
  box-lines: multiple;
  -webkit-flex-wrap: wrap;
  -moz-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: justify;
  -moz-box-pack: justify;
  box-pack: justify;
  -webkit-justify-content: space-between;
  -moz-justify-content: space-between;
  -ms-justify-content: space-between;
  -o-justify-content: space-between;
  justify-content: space-between;
  -ms-flex-pack: justify; }

.card {
  -webkit-flex-basis: 10em;
  -moz-flex-basis: 10em;
  flex-basis: 10em;
  -ms-flex-preferred-size: 10em;
  -webkit-flex-grow: 1;
  -moz-flex-grow: 1;
  flex-grow: 1;
  -ms-flex-positive: 1;
  background: #f5f5f5;
  margin: .5em 1em; }
  .card__media {
    background: #e8e8e8;
    margin: 0 auto;
    max-height: 20em;
    max-width: 20em;
    overflow: hidden; }
    @media screen and (min-width: 700px) {
      .card__media {
        max-height: 40em;
        max-width: 40em;
        min-height: 15em;
        min-width: 15em; } }
  .card__image {
    width: 100%; }
  .card__header, .card__copy {
    padding-left: .5em;
    padding-right: .5em; }

.fingerprint__number {
  color: #ea002e; }

.form__group {
  border-top: 1px solid; }
  .form__group-wrapper {
    margin: .5em .25em; }
  .form__group--right-border {
    border-right: 1px solid; }

.form__label {
  color: gray;
  display: block;
  padding-bottom: .25em;
  text-transform: uppercase; }

.form__control {
  font-size: 1em;
  width: 100%; }
  .form__control--recaptcha div {
    margin: 0 auto; }

.form__output {
  color: gray;
  float: right; }

.img-fluid {
  height: auto;
  max-width: 100%; }

.list--unstyled, .list--inline {
  list-style: none;
  padding-left: 0; }

.list__item--inline {
  display: inline-block; }
  .list__item--inline:not(:last-child) {
    margin-right: 5px; }

.list-group {
  margin-bottom: 0;
  padding-left: 0; }
  .list-group__item {
    background-color: white;
    border: 1px solid #b3b3b3;
    display: block;
    margin-bottom: -1px;
    padding: .75em 1.25em;
    position: relative; }
    .list-group__item:fist-child {
      border-top-left-radius: 5px;
      border-top-right-radius: 5px;
      border-bottom-left-radius: 5px;
      border-bottom-right-radius: 5px;
      border-bottom-left-radius: 5px;
      border-top-left-radius: 5px;
      border-bottom-right-radius: 5px;
      border-top-right-radius: 5px; }
    .list-group__item:last-child {
      border-top-left-radius: 5px;
      border-top-right-radius: 5px;
      border-bottom-left-radius: 5px;
      border-bottom-right-radius: 5px;
      border-bottom-left-radius: 5px;
      border-top-left-radius: 5px;
      border-bottom-right-radius: 5px;
      border-top-right-radius: 5px; }
    .list-group__item:hover {
      background-color: #b3b3b3; }

.js-deadline,
.js-budget {
  display: none; }

.body--index {
  background-color: transparent;
  background-image: -webkit-radial-gradient(transparent, rgba(0, 0, 0, 0.2));
  background-image: radial-gradient(  transparent, rgba(0, 0, 0, 0.2));
  -webkit-animation-name: multicolour-background;
  -moz-animation-name: multicolour-background;
  -ms-animation-name: multicolour-background;
  -o-animation-name: multicolour-background;
  animation-name: multicolour-background;
  -webkit-animation-duration: 45s;
  -moz-animation-duration: 45s;
  animation-duration: 45s;
  -webkit-animation-timing-function: ease;
  -moz-animation-timing-function: ease;
  animation-timing-function: ease;
  -webkit-animation-iteration-count: infinite;
  -moz-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
  background-color: #3f504c; }

.landing {
  color: white;
  margin: 0;
  text-align: center; }
  @media screen and (min-width: 700px) {
    .landing__wrapper {
      display: -webkit-box;
      display: -moz-box;
      display: box;
      display: -webkit-flex;
      display: -moz-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -moz-box-orient: vertical;
      box-orient: vertical;
      -webkit-box-direction: normal;
      -moz-box-direction: normal;
      box-direction: normal;
      -webkit-flex-direction: column;
      -moz-flex-direction: column;
      flex-direction: column;
      -ms-flex-direction: column;
      -webkit-box-align: center;
      -moz-box-align: center;
      box-align: center;
      -webkit-align-items: center;
      -moz-align-items: center;
      -ms-align-items: center;
      -o-align-items: center;
      align-items: center;
      -ms-flex-align: center;
      -webkit-flex-flow: row wrap;
      -moz-flex-flow: row wrap;
      flex-flow: row wrap;
      -webkit-box-pack: justify;
      -moz-box-pack: justify;
      box-pack: justify;
      -webkit-justify-content: space-between;
      -moz-justify-content: space-between;
      -ms-justify-content: space-between;
      -o-justify-content: space-between;
      justify-content: space-between;
      -ms-flex-pack: justify;
      height: 100vh;
      text-align: left; } }
  .landing__section {
    padding: 1rem; }
    @media screen and (min-width: 700px) {
      .landing__section {
        -webkit-box-flex: 1;
        -moz-box-flex: 1;
        box-flex: 1;
        -webkit-flex: 1 100%;
        -moz-flex: 1 100%;
        -ms-flex: 1 100%;
        flex: 1 100%;
        padding-left: 5rem; } }
  .landing__logo {
    height: 16rem;
    overflow: hidden; }
    .landing__logo-wrapper {
      background-color: rgba(0, 0, 0, 0.2);
      background-image: -webkit-radial-gradient(rgba(0, 0, 0, 0.2), transparent);
      background-image: radial-gradient(  rgba(0, 0, 0, 0.2), transparent);
      height: 16rem;
      margin: 0 auto;
      padding: .5rem;
      width: 16rem; }
      @media screen and (min-width: 700px) {
        .landing__logo-wrapper {
          margin: 0;
          text-align: center; } }
    .landing__logo-image {
      width: 10rem; }
  .landing__heading {
    margin-bottom: .25em;
    margin-top: .25em; }
    .landing__heading--large {
      font-size: 2.985984rem;
      font-weight: 400; }
      @media screen and (min-width: 700px) {
        .landing__heading--large {
          font-size: 4.29981696rem; } }
    .landing__heading--small {
      font-size: 2.0736rem;
      font-weight: 200; }
      @media screen and (min-width: 700px) {
        .landing__heading--small {
          font-size: 2.985984rem; } }
