/*============================================================================
  Utilities
==============================================================================*/
/*============================================================================
  Returns the value in rem for a given pixel value.
  @param {Number} $value - The pixel value to be converted.
  @return {Number} The converted value in rem.
==============================================================================*/
/*============================================================================
  Returns the value in pixels for a given rem value.
  @param {Number} $value - The rem value to be converted.
  @return {Number} The converted value in pixels.
==============================================================================*/
/*============================================================================
  Returns the list of available names in a given map.
  @param {Map} $map - The map of data to list the names from.
  @param {Number} $map - The level of depth to get names from.
  @return {String} The list of names in the map.
==============================================================================*/
/*============================================================================
  Breakpoints
==============================================================================*/
/*============================================================================
  Returns the breakpoint value for a given name.

  @param {String} $name - The breakpoint name.
  @return {Number} The spacing for the variant.
==============================================================================*/
/*============================================================================
  Spacing
==============================================================================*/
/*============================================================================
  Returns the spacing value for a given variant.

  @param {String} $variant - The key for the given variant.
  @return {Number} The spacing for the variant.
==============================================================================*/
/*============================================================================
  Adds spacing between all direct children.

  @param {String} $variant - The key for the given variant.
==============================================================================*/
/*============================================================================
  Colors
==============================================================================*/
/*================ Palette ================*/
/*============================================================================
  Returns the color value for a given color name and group.

  @param {String} $hue - The color's hue.
  @param {String} $value - The darkness/lightness of the color. Defaults to base.
  @param {Color} $for-background - The background color on which this color will
    appear. Applies a multiply filter to ensure appropriate contrast.
  @return {Color} The color value.
==============================================================================*/
/*============================================================================
  Typography functions
==============================================================================*/
/*============================================================================
  Returns the font stack for a given family.

  @param {String} $family - The key for the given family.
  @return {Number} The font stack for the family.
==============================================================================*/
/*============================================================================
  Core styles
==============================================================================*/
/*============================================================================
  Emphasis
==============================================================================*/
/*============================================================================
  Borders
==============================================================================*/
/*============================================================================
  Returns the default border.
  @return {List} The border value.
==============================================================================*/
/*============================================================================
  Border Radius
==============================================================================*/
/*============================================================================
  Returns the default border radius.
  @return {Number} The border radius value.
==============================================================================*/
/*============================================================================
  Animations
==============================================================================*/
/*============================================================================
  Returns the animation speed.
  @return {Number} The animation speed value.
==============================================================================*/
/*============================================================================
  Rotate
==============================================================================*/
@keyframes rotate-right {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
@keyframes rotate-left {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(-360deg);
  }
}
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-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block;
}

body {
  line-height: 1;
}

ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
  content: '';
  content: none;
}

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

* {
  box-sizing: border-box;
  z-index: 1;
}

html,
body {
  position: relative;
  height: 100%;
  overflow: hidden;
  background: radial-gradient(center, ellipse cover, #ffffff 0%, #f2efd9 100%);
  background: -webkit-radial-gradient(center, ellipse cover, #ffffff 0%, #f2efd9 100%);
  background: -moz-radial-gradient(center, ellipse cover, #ffffff 0%, #f2efd9 100%);
}

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

/*============================================================================
  Base typography
==============================================================================*/
html {
  font-size: 87.5%;
  text-size-adjust: 100%;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  font-size: 1.1428571429rem;
  line-height: 1.4285714286rem;
  font-weight: 400;
  text-transform: initial;
  letter-spacing: initial;
  color: #62381b;
  font-family: Alegreya Sans, Helvetica Neue, sans-serif;
}

a {
  display: inline-block;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
  -moz-transition: all .2s ease-in;
  -o-transition: all .2s ease-in;
  -webkit-transition: all .2s ease-in;
  transition: all .2s ease-in;
}
a:hover {
  color: #69c8c3;
}
a svg {
  cursor: pointer;
}

svg {
  fill: currentColor;
}

/*============================================================================
  Core styles
==============================================================================*/
.title {
  font-size: 2.4285714286rem;
  line-height: 2.7142857143rem;
}
@media screen and (min-width: 480px) {
  .title {
    font-size: 2.8571428571rem;
    line-height: 3.1428571429rem;
  }
}

.subtitle {
  font-size: 1.2857142857rem;
  line-height: 1.7142857143rem;
  font-weight: 400;
  font-family: Alegreya Sans SC, Helvetica Neue, sans-serif;
}

/*============================================================================
  Layout
==============================================================================*/
.layout {
  height: 100%;
  padding: 1.1428571429rem;
  display: flex;
  justify-content: center;
  align-items: center;
}

/*============================================================================
  Animated Circle Frame
==============================================================================*/
.animated-circle {
  position: absolute;
  overflow: hidden;
  border-radius: 50%;
  animation-iteration-count: infinite;
  animation-timing-function: linear;
}

.animated-circle--1 {
  border: 4px solid #69c8c3;
}

.animated-circle--2 {
  border: 6px solid #2d948d;
  border-right-color: transparent;
  animation-duration: 18s;
}

.animated-circle--3 {
  border: 5px solid #e8d320;
}

.animated-circle--4 {
  border: 6px solid #ee7d8f;
  border-left-color: transparent;
  border-bottom-color: transparent;
  animation-duration: 24s;
}

.animated-circle--5 {
  border: 4px solid #f15c27;
  border-top-color: transparent;
  animation-duration: 12s;
}

.animated-circle--1 {
  animation-name: rotate-right;
  width: 428px;
  height: 428px;
  top: calc(50% - 214px);
  left: calc(50% - 214px);
}
@media screen and (min-width: 365px) {
  .animated-circle--1 {
    width: 473px;
    height: 473px;
    top: calc(50% - 236.5px);
    left: calc(50% - 236.5px);
  }
}
@media screen and (min-width: 410px) {
  .animated-circle--1 {
    width: 518px;
    height: 518px;
    top: calc(50% - 259px);
    left: calc(50% - 259px);
  }
}
@media screen and (min-width: 455px) {
  .animated-circle--1 {
    width: 563px;
    height: 563px;
    top: calc(50% - 281.5px);
    left: calc(50% - 281.5px);
  }
}
@media screen and (min-width: 500px) {
  .animated-circle--1 {
    width: 608px;
    height: 608px;
    top: calc(50% - 304px);
    left: calc(50% - 304px);
  }
}

.animated-circle--2 {
  animation-name: rotate-left;
  width: 452px;
  height: 452px;
  top: calc(50% - 226px);
  left: calc(50% - 226px);
}
@media screen and (min-width: 365px) {
  .animated-circle--2 {
    width: 497px;
    height: 497px;
    top: calc(50% - 248.5px);
    left: calc(50% - 248.5px);
  }
}
@media screen and (min-width: 410px) {
  .animated-circle--2 {
    width: 542px;
    height: 542px;
    top: calc(50% - 271px);
    left: calc(50% - 271px);
  }
}
@media screen and (min-width: 455px) {
  .animated-circle--2 {
    width: 587px;
    height: 587px;
    top: calc(50% - 293.5px);
    left: calc(50% - 293.5px);
  }
}
@media screen and (min-width: 500px) {
  .animated-circle--2 {
    width: 632px;
    height: 632px;
    top: calc(50% - 316px);
    left: calc(50% - 316px);
  }
}

.animated-circle--3 {
  animation-name: rotate-right;
  width: 470px;
  height: 470px;
  top: calc(50% - 235px);
  left: calc(50% - 235px);
}
@media screen and (min-width: 365px) {
  .animated-circle--3 {
    width: 515px;
    height: 515px;
    top: calc(50% - 257.5px);
    left: calc(50% - 257.5px);
  }
}
@media screen and (min-width: 410px) {
  .animated-circle--3 {
    width: 560px;
    height: 560px;
    top: calc(50% - 280px);
    left: calc(50% - 280px);
  }
}
@media screen and (min-width: 455px) {
  .animated-circle--3 {
    width: 605px;
    height: 605px;
    top: calc(50% - 302.5px);
    left: calc(50% - 302.5px);
  }
}
@media screen and (min-width: 500px) {
  .animated-circle--3 {
    width: 650px;
    height: 650px;
    top: calc(50% - 325px);
    left: calc(50% - 325px);
  }
}

.animated-circle--4 {
  animation-name: rotate-left;
  width: 494px;
  height: 494px;
  top: calc(50% - 247px);
  left: calc(50% - 247px);
}
@media screen and (min-width: 365px) {
  .animated-circle--4 {
    width: 539px;
    height: 539px;
    top: calc(50% - 269.5px);
    left: calc(50% - 269.5px);
  }
}
@media screen and (min-width: 410px) {
  .animated-circle--4 {
    width: 584px;
    height: 584px;
    top: calc(50% - 292px);
    left: calc(50% - 292px);
  }
}
@media screen and (min-width: 455px) {
  .animated-circle--4 {
    width: 629px;
    height: 629px;
    top: calc(50% - 314.5px);
    left: calc(50% - 314.5px);
  }
}
@media screen and (min-width: 500px) {
  .animated-circle--4 {
    width: 674px;
    height: 674px;
    top: calc(50% - 337px);
    left: calc(50% - 337px);
  }
}

.animated-circle--5 {
  animation-name: rotate-right;
  width: 512px;
  height: 512px;
  top: calc(50% - 256px);
  left: calc(50% - 256px);
}
@media screen and (min-width: 365px) {
  .animated-circle--5 {
    width: 557px;
    height: 557px;
    top: calc(50% - 278.5px);
    left: calc(50% - 278.5px);
  }
}
@media screen and (min-width: 410px) {
  .animated-circle--5 {
    width: 602px;
    height: 602px;
    top: calc(50% - 301px);
    left: calc(50% - 301px);
  }
}
@media screen and (min-width: 455px) {
  .animated-circle--5 {
    width: 647px;
    height: 647px;
    top: calc(50% - 323.5px);
    left: calc(50% - 323.5px);
  }
}
@media screen and (min-width: 500px) {
  .animated-circle--5 {
    width: 692px;
    height: 692px;
    top: calc(50% - 346px);
    left: calc(50% - 346px);
  }
}

/*============================================================================
  Card
==============================================================================*/
.card {
  max-width: 480px;
}

.card__header {
  padding: 1.1428571429rem 1.1428571429rem 0 1.1428571429rem;
}

.card__section {
  padding: 1.1428571429rem;
}
.card__section > * + * {
  margin-top: 0.2857142857rem;
}

.card__footer {
  padding: 0 1.1428571429rem 1.1428571429rem 1.1428571429rem;
}

/*============================================================================
  Social
==============================================================================*/
.social {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}
.social > * + * {
  margin-top: 0.2857142857rem;
}

.social__text {
  font-size: 0.8571428571rem;
  line-height: 1.1428571429rem;
  font-weight: 400;
  text-transform: initial;
  letter-spacing: initial;
  text-align: right;
}

.social__icon-links svg {
  width: 32px;
  height: 32px;
}
.social__icon-links a + a {
  margin-left: 0.5714285714rem;
}
