@import url("https://fonts.googleapis.com/css2?family=Dancing+Script:wght@700&family=Poppins:wght@400;500;600&display=swap");

:root {
  --header-height: 3.5rem;
  --animate-snow-1: animate-snow-1 5s infinite ease-in-out;
  --animate-snow-2: animate-snow-2 5s infinite ease-in-out;

  --first-color: hsl(210, 80%, 54%);
  --first-color-alt: hsl(210, 80%, 50%);
  --title-color: hsl(210, 24%, 90%);
  --text-color: hsl(210, 16%, 70%);
  --white-color: #fff;
  --body-color: hsl(210, 32%, 4%);

  --body-font: "Poppins", sans-serif;
  --second-font: "Dancing Script", cursive;
  --biggest-font-size: 5rem;
  --h1-font-size: 2.25rem;
  --h2-font-size: 1.5rem;
  --h3-font-size: 1.25rem;
  --normal-font-size: 1rem;
  --small-font-size: 0.875rem;
  --smaller-font-size: 0.813rem;

  --font-medium: 500;
  --font-semi-bold: 600;
  --font-bold: 700;

  --z-tooltip: 10;
  --z-fixed: 100;


  @media screen and (max-width: 350px) {
    --biggest-font-size: 1.75rem;
    --h1-font-size: 1.5rem;
    --h2-font-size: 1.25rem;
    --h3-font-size: 1rem;
    --normal-font-size: 0.75rem;
    --small-font-size: 0.600rem;
    --smaller-font-size: 0.500rem;
  }

  @media screen and (max-width: 400px) {
    --biggest-font-size: 3rem;
  }

  @media screen and (max-width: 520px) {
    --biggest-font-size: 3.5rem;
  }
}


/*=============== BASE ===============*/
* {
  padding: 0;
  margin: 0;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: var(--body-font);
  font-size: var(--normal-font-size);
  background-color: var(--body-color);
  color: var(--text-color);
}

h1,
h2,
h3 {
  color: var(--title-color);
  font-weight: var(--font-medium);
}

ul {
  list-style: none;
}

p {
  text-indent: 2em;
}

a {
  text-decoration: none;
  color: var(--first-color);

  &:active {
    color: var(--first-color-alt);
  }
}

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

/*=============== REUSABLE CSS CLASSES ===============*/
.container {
  max-width: 1024px;
  margin-inline: 1.5rem;
}

.grid {
  display: grid;
  gap: 1.5rem;
}

.section {
  padding-block: 5rem 1rem;
}

.section__title {
  font-size: var(--h1-font-size);
  font-family: var(--second-font);
  text-align: center;
  margin-bottom: 1.5rem;
}

.main {
  overflow: hidden;
  /* For Animations */
}

/* Snow Animation */
@keyframes animate-snow-1 {

  0%,
  100% {
    transform: scale(0.5);
  }

  50% {
    transform: scale(1);
  }
}

@keyframes animate-snow-2 {

  0%,
  100% {
    transform: scale(1);
  }

  50% {
    transform: scale(0.5);
  }
}

/*=============== HEADER & NAV ===============*/
.header {
  position: fixed;
  width: 100%;
  background-color: transparent;
  top: 0;
  left: 0;
  z-index: var(--z-fixed);
  transition: background 0.4s;
}

.nav {
  position: relative;
  height: var(--header-height);
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.nav__logo,
.nav__toggle,
.nav__close {
  display: flex;
  color: var(--white-color);
}

.nav__logo img {
  width: 30px;
  transform: rotate(-10deg);
}

.nav__logo {
  align-items: center;
  column-gap: 0.25rem;
  font-family: var(--second-font);
  font-size: var(--h2-font-size);
}

.nav__toggle {
  font-size: 1.25rem;
  cursor: pointer;
}

@media screen and (max-width: 767px) {
  .nav__menu {
    position: fixed;
    top: -100%;
    left: 0;
    background-color: var(--body-color);
    width: 100%;
    padding-block: 3.5rem;
    transition: top 0.4s;
  }
}

.nav__list {
  display: flex;
  flex-direction: column;
  text-align: center;
  row-gap: 2rem;
}

.nav__link {
  color: var(--white-color);
  font-weight: var(--font-medium);
  transition: color 0.4s;
}

.nav__link:hover {
  color: var(--first-color);
}

.nav__close {
  position: absolute;
  top: 1rem;
  right: 1.5rem;
  font-size: 1.5rem;
  cursor: pointer;
}

.nav__img-1,
.nav__img-2 {
  position: absolute;
}

.nav__img-1 {
  width: 40px;
  top: 6rem;
  left: 2.5rem;
  transform: rotate(-15deg);
}

.nav__img-2 {
  width: 60px;
  right: 1rem;
  bottom: 2rem;
  transform: rotate(15deg);
}

/* Show Menu */
.show-menu {
  top: 0;
}

/* Change Background Header */
.bg-header {
  background: var(--body-color);
}

/* Active Link */
.active-link {
  color: var(--first-color);
}

/*=============== HOME ===============*/
.home {
  position: relative;
  background: linear-gradient(180deg, hsl(210, 88%, 20%), hsl(210, 70%, 58%));
  height: 650px;
  padding-top: 7rem;
  overflow: hidden;
}

.home__title {
  color: var(--white-color);
  font-size: var(--biggest-font-size);
  font-family: var(--second-font);
  text-align: center;
  margin-top: 1.5rem;
}

.home img {
  position: absolute;
}

.home__mountain-1,
.home__snow {
  bottom: 0;
}

.home__village,
.home__pine,
.home__moon,
.home__trineo {
  left: 0;
  right: 0;
  margin: 0 auto;
}

.home__village {
  width: 260px;
  bottom: 1rem;
}

.home__pine {
  width: 250px;
  bottom: 4rem;
}

.home__mountain-2 {
  bottom: 3rem;
}

.home__mountain-3 {
  bottom: 6rem;
}

.home__moon {
  width: 300px;
  bottom: 8.5rem;
}

.home__trineo {
  width: 250px;
  bottom: 14.5rem;
}

/*=============== message ===============*/
.message__container {
  position: relative;
  row-gap: 3.5rem;
}

.message__data {
  text-align: justify;
}

.message__description {
  margin-bottom: 2rem;
}

.message__snow-1,
.message__snow-2 {
  width: 50px;
  position: absolute;
}

.message__snow-1 {
  top: 0;
  left: 0;
  animation: var(--animate-snow-1);
}

.message__snow-2 {
  right: 0.5rem;
  bottom: 0.5rem;
  animation: var(--animate-snow-2);
}

/*=============== BUTTON ===============*/
.button {
  display: inline-block;
  background-color: var(--first-color);
  padding: 1rem 2rem;
  border-radius: 4rem;
  color: var(--white-color);
  font-weight: var(--font-medium);
  transition: background 0.4s, box-shadow 0.4s;
}

.button:hover {
  background-color: var(--first-color-alt);
  box-shadow: 0 8px 32px hsla(210, 80%, 54%, 0.7);
}

/*=============== SEND ===============*/
.send__container {
  position: relative;
  grid-template-columns: 200px;
  justify-content: center;
  row-gap: 3rem;
  padding-top: 1.5rem;
}

.send__card {
  text-align: center;
}

.send__img {
  width: 180px;
  margin-bottom: 0.75rem;
}

.send__title {
  font-size: var(--h3-font-size);
  margin-bottom: 0.5rem;
}

.send__description {
  font-size: var(--small-font-size);
  padding-inline: 1.5rem;
}

.send__snow-1,
.send__snow-2,
.send__snow-3 {
  width: 50px;
  position: absolute;
}

.send__snow-1 {
  left: 0;
  top: 7rem;
  animation: var(--animate-snow-1);
}

.send__snow-2 {
  top: 23rem;
  right: 0;
  animation: var(--animate-snow-2);
}

.send__snow-3 {
  bottom: 9rem;
  left: 0;
  animation: var(--animate-snow-1);
}

/*=============== CELEBRATE ===============*/
.celebrate__container {
  position: relative;
  row-gap: 3.5rem;
}

.celebrate__data {
  text-align: center;
}

.celebrate__description {
  margin-bottom: 2rem;
}

.celebrate__img {
  width: 320px;
  justify-self: center;
}

.celebrate__snow-1,
.celebrate__snow-2 {
  width: 50px;
  position: absolute;
}

.celebrate__snow-1 {
  top: 1.5rem;
  left: 1.5rem;
  animation: var(--animate-snow-1);
}

.celebrate__snow-2 {
  top: 18rem;
  right: 0;
  animation: var(--animate-snow-2);
}

/*=============== FOOTER ===============*/
.footer {
  overflow: hidden;
}

.footer__container {
  position: relative;
  padding-block: 4.5rem 2rem;
  text-align: center;
}

.footer__logo,
.footer__social-link,
.footer__copy {
  color: var(--white-color);
}

.footer__logo {
  display: inline-block;
  font-size: var(--h2-font-size);
  font-family: var(--second-font);
}

.footer__social {
  display: flex;
  justify-content: center;
  column-gap: 1.5rem;
}

.footer__copy {
  display: block;
  margin-top: 1rem;
  font-size: var(--smaller-font-size);
}

.footer__snow-1,
.footer__snow-2 {
  position: absolute;
}

.footer__snow-1 {
  width: 50px;
  top: 1.5rem;
  left: 0;
  animation: var(--animate-snow-1);
}

.footer__snow-2 {
  width: 70px;
  top: 2.5rem;
  right: 0rem;
  animation: var(--animate-snow-2);
}

/*=============== SCROLL BAR ===============*/
::-webkit-scrollbar {
  width: 0.6rem;
  border-radius: 0.5rem;
  background-color: hsl(210, 8%, 15%);
}

::-webkit-scrollbar-thumb {
  background-color: hsl(210, 8%, 25%);
  border-radius: 0.5rem;
}

::-webkit-scrollbar-thumb:hover {
  background-color: hsl(210, 8%, 35%);
}

/*=============== SCROLL UP ===============*/
.scrollup {
  position: fixed;
  right: 1rem;
  bottom: -50%;
  background-color: var(--white-color);
  display: inline-flex;
  padding: 0.45rem;
  border-radius: 0.45rem;
  font-size: 1rem;
  color: var(--body-color);
  z-index: var(--z-tooltip);
  transition: bottom 0.3s, transform 0.3s;
}

.scrollup:hover {
  transform: translateY(-0.25rem);
}

/* Show Scroll Up */
.show-scroll {
  bottom: 3rem;
}


@media screen and (min-width: 400px) {

  .message__container,
  .celebrate__container {
    grid-template-columns: 0.6fr;
    justify-content: center;
  }
}

/*=============== BREAKPOINTS ===============*/
/* For Medium Devices */
@media screen and (min-width: 576px) {
  .home__village {
    width: 360px;
  }

  .home__pine {
    width: 330px;
  }
}

@media screen and (min-width: 767px) {

  .nav__toggle,
  .nav__close,
  .nav__img-1,
  .nav__img-2 {
    display: none;
  }

  .nav__list {
    flex-direction: row;
    column-gap: 4rem;
  }

  .home {
    height: 800px;
  }

  .home__village {
    width: 460px;
  }

  .home__pine {
    width: 400px;
    bottom: 7rem;
  }

  .home__moon {
    width: 450px;
    bottom: 12rem;
  }

  .home__trineo {
    width: 350px;
    bottom: 20rem;
  }

  .send__container {
    grid-template-columns: repeat(2, 200px);
    column-gap: 5rem;
  }
}

/* For Large Devices */
@media screen and (min-width: 1024px) {
  .section {
    padding-block: 7rem 3rem;
  }

  .home__title {
    font-size: 4rem;
  }

  .nav {
    height: calc(var(--header-height) + 1.5rem);
  }

  .message__container {
    grid-template-columns: 500px 335px;
    align-items: center;
    column-gap: 6rem;
  }

  .message__data,
  .message__data .section__title {
    text-align: justify;
  }

  .message__img {
    width: 500px;
    order: 1;
  }

  .message__snow-1 {
    top: 0;
    left: 0;
  }

  .message__snow-2 {
    right: 0.5rem;
    bottom: 0.5rem;
  }

  .send__container {
    grid-template-columns: repeat(3, 220px);
    column-gap: 7.5rem;
    padding-top: 3rem;
  }

  .send__img {
    margin-bottom: 1rem;
  }

  .send__description {
    font-size: var(--normal-font-size);
  }

  .send__snow-1 {
    left: -1rem;
    top: -1rem;
  }

  .send__snow-2 {
    top: 3rem;
  }

  .send__snow-3 {
    left: 22rem;
    bottom: 0;
  }

  .celebrate__container {
    grid-template-columns: 400px 500px;
    align-items: center;
    column-gap: 6rem;
  }

  .celebrate__data,
  .celebrate__data .section__title {
    text-align: initial;
  }

  .celebrate__img {
    width: 500px;
  }

  .celebrate__snow-1 {
    top: 4.5rem;
    left: 16rem;
  }

  .celebrate__snow-2 {
    right: 2rem;
  }

  .footer__container {
    padding-block: 5.5rem 3rem;
  }

  .footer__social {
    column-gap: 2rem;
  }

  .footer__social-link {
    font-size: 1.5rem;
  }

  .footer__snow-1 {
    top: 8.5rem;
    left: 10rem;
  }

  .footer__snow-2 {
    top: 8.5rem;
    right: 4rem;
  }

  .footer__copy {
    margin-top: 2rem;
  }

  .scrollup {
    right: 3rem;
  }
}

@media screen and (min-width: 1064px) {
  .container {
    margin-inline: auto;
  }
}

@media screen and (min-width: 1200px) {
  .home {
    height: 980px;
  }

  .home__title {
    font-size: var(--biggest-font-size);
  }

  .home__mountain-1,
  .home__mountain-2,
  .home__mountain-3,
  .home__snow {
    width: 100%;
  }

  .home__village {
    width: 750px;
    bottom: 4rem;
  }

  .home__pine {
    width: 720px;
    bottom: 12.5rem;
  }

  .home__mountain-1,
  .home__mountain-2 {
    bottom: -0.5rem;
  }

  .home__moon {
    width: 600px;
    bottom: 14rem;
  }

  .home__trineo {
    width: 500px;
    bottom: 28rem;
  }
}

/* For 2K+ Resolutions */
@media screen and (min-width: 1700px) {
  .home {
    max-width: 1280px;
    height: 990px;
    margin-inline: auto;
  }
}

/* christmas tree*/

.tree-container {
  position: relative;
  width: 300px;
  height: 475px;
  margin: auto;
  z-index: -2;
  overflow: hidden;
}

.tree {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 5%;
}

.star {
  position: absolute;
  width: 100px;
  height: 100px;
  background: #a18006;
  clip-path: polygon(50% 0%,
      61% 35%,
      98% 35%,
      68% 57%,
      79% 91%,
      50% 70%,
      21% 91%,
      32% 57%,
      2% 35%,
      39% 35%);
  left: 95px;
  z-index: 4;
  filter: drop-shadow(0.75em 0.75em 0.5em);
}

.cone {
  width: 150px;
  height: 100px;
  border-radius: 45%;
  background: radial-gradient(farthest-side at top, #026e46, #024e32);
  -webkit-mask: conic-gradient(from 150deg at top,
      #0000,
      #000 1deg 60deg,
      #0000 61deg);
}

.tree-cone1 {
  position: absolute;
  top: 50px;
  width: 200px;
  height: 180px;
  left: 45px;
  z-index: 3;
}

.tree-cone2 {
  position: absolute;
  top: 75px;
  width: 240px;
  height: 220px;
  left: 25px;
  z-index: 2;
}

.tree-cone3 {
  position: absolute;
  top: 115px;
  width: 260px;
  height: 240px;
  left: 15px;
}

.trunk {
  position: absolute;
  top: 310px;
  width: 75px;
  height: 75px;
  background: radial-gradient(farthest-side at top, #4e2402, #351801);
  z-index: -1;
  left: 105px;
}

/* ornaments */
.ornament {
  position: absolute;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  box-shadow: 0 0 3px #033b26;
  z-index: 4;
}

.shine {
  position: absolute;
  width: 55%;
  height: 55%;
  top: 10%;
  right: 11%;
  border-radius: 50%;
  background: white;
  filter: opacity(60%);
}

.or1 {
  left: 28%;
  top: 34%;
  background: #0742d9;
}

.or2 {
  left: 60%;
  top: 40%;
  background: #c91212;
}

.or3 {
  left: 20%;
  top: 49%;
  background: #dbb700;
}

.or4 {
  left: 48%;
  top: 55%;
  background: #0742d9;
}

.or5 {
  left: 70%;
  top: 65%;
  background: #dbb700;
}

.or6 {
  left: 25%;
  top: 63%;
  background: #c91212;
}

.bells-container {
  position: relative;
  left: 80px;
  top: 65px;
}

.bell1,
.bell2 {
  width: 30px;
  height: 0;
  border-bottom: 35px solid #d4a429;
  border-right: 6px solid transparent;
  border-left: 6px solid transparent;
  z-index: 11;
}

.bell1 {
  position: relative;
  top: 50px;
  left: 50px;
  transform: rotate(25deg);
}

.bell2 {
  position: relative;
  top: 15px;
  left: 90px;
  transform: rotate(-25deg);
}

.bell-top {
  width: 30px;
  height: 15px;
  background-color: #d4a429;
  position: relative;
  bottom: 13px;
  border-radius: 15px 15px 0 0;
}

.bell-bottom {
  width: 41px;
  height: 0;
  border-bottom: 10px solid #d4a445;
  border-right: 6px solid transparent;
  border-left: 6px solid transparent;
  position: relative;
  top: 19px;
  right: 11px;
  border-radius: 0 0 7.5px 7.5px;
}

.bell-mid {
  background-color: #d4a429;
  height: 7.5px;
  width: 15px;
  position: relative;
  top: 18.5px;
  border-radius: 0 0 7.5px 7.5px;
}

.bow {
  position: relative;
  left: 68px;
  bottom: 45px;
  transform: rotate(-5deg);
  z-index: 12;
}

.b1 {
  height: 12.5px;
  width: 0;
  border-right: 20px solid #e95840;
  border-top: 7.5px solid transparent;
  border-bottom: 7.5px solid transparent;
  position: relative;
  bottom: 8.5px;
  left: 30px;
}

.b2 {
  height: 12.5px;
  width: 0;
  border-left: 20px solid #e95840;
  border-top: 7.5px solid transparent;
  border-bottom: 7.5px solid transparent;
  position: relative;
  bottom: 36px;
  left: 0px;
}

.b3 {
  background-color: #e4391b;
  height: 20px;
  width: 17.5px;
  border-radius: 7.5px;
  position: relative;
  bottom: 60px;
  left: 16px;
}

.shadow {
  background-color: rgba(0, 0, 0, 0.07);
  position: absolute;
  width: 270px;
  height: 40px;
  border-radius: 50%;
  top: 390px;
  left: 10px;
  z-index: -1;
}

/* gifts*/
.gift {
  position: absolute;
  width: 60px;
  height: 50px;
  background-color: #ffc857;
  top: 365px;
  left: 30px;
  box-shadow: inset -8px 0 0 rgba(0, 0, 0, 0.07);
}

.gift:before {
  content: "";
  position: absolute;
  width: 70px;
  height: 20px;
  left: -5px;
  background-color: #ffc857;
  box-shadow: inset -8px -4px 0 rgba(0, 0, 0, 0.07);
}

.gift:after {
  content: "";
  background-color: #db3a34;
  width: 10px;
  height: 50px;
  position: absolute;
  left: 25px;
}

.ribbon {
  position: absolute;
  width: 20px;
  height: 10px;
  border: 3px solid #db3a34;
  border-radius: 50%;
  transform: skew(15deg, 15deg);
  top: 350px;
  left: 35px;
}

.ribbon:before {
  content: "";
  position: absolute;
  width: 20px;
  height: 10px;
  border: 3px solid #db3a34;
  border-radius: 50%;
  transform: skew(-15deg, -20deg);
  left: 22px;
  top: -8px;
}

.gift2 {
  position: absolute;
  width: 50px;
  height: 40px;
  background-color: #08bdbd;
  top: 380px;
  left: 150px;
  box-shadow: inset -8px 0 0 rgba(0, 0, 0, 0.07);
}

.gift2:before {
  content: "";
  position: absolute;
  width: 60px;
  height: 15px;
  background-color: #08bdbd;
  left: -5px;
  box-shadow: inset -8px -4px 0 rgba(0, 0, 0, 0.07);
}

.gift2:after {
  content: "";
  background-color: #abff4f;
  width: 10px;
  height: 40px;
  position: absolute;
  left: 20px;
}

.ribbon2 {
  position: absolute;
  width: 15px;
  height: 7px;
  border: 3px solid #abff4f;
  border-radius: 50%;
  transform: skew(15deg, 15deg);
  top: 370px;
  left: 155px;
}

.ribbon2:before {
  content: "";
  position: absolute;
  width: 15px;
  height: 7px;
  border: 3px solid #abff4f;
  border-radius: 50%;
  transform: skew(-15deg, -20deg);
  left: 15px;
  top: -8px;
}

/* Reindeer */
.deer-container {
  background-color: transparent;
  border-radius: 4px;
  box-shadow: 0 1px 3px transparent;
  margin: 40px auto 50px auto;
  position: absolute;
  bottom: 0px;
  right: 380px;
}

@media screen and (max-width: 767px) {
  .deer-container {
    background-color: transparent;
    border-radius: 4px;
    box-shadow: 0 1px 3px transparent;
    margin: 40px auto 50px auto;
    position: absolute;
    bottom: 0px;
    right: 0px;
  }
}

.artboard {
  height: 100%;
  overflow: visible;
  position: relative;
  width: 100%;
}

.deer {
  width: 50px;
  margin: 0 auto;
  position: relative;
}

.rocking {
  animation: rocking 0.4s ease-in-out infinite alternate-reverse;
  transform-origin: bottom left;
  position: relative;
  z-index: 1;
}

@keyframes rocking {
  100% {
    transform: rotate(-1deg);
  }
}

.head {
  position: relative;
  width: 50px;
}

.horns {
  animation: rocking 0.4s cubic-bezier(0.4, 0, 0.2, 1) infinite alternate-reverse;
  height: 55px;
  position: relative;
  top: 31px;
  width: 50px;
}

.horn {
  background-color: #91655d;
  border-radius: 7px 7px 0 0;
  height: 55px;
  position: relative;
  width: 7px;
  z-index: 1;
}

.horn .line {
  background-color: #91655d;
  border-radius: 7px 7px 7px 7px;
  height: 7px;
  width: 20px;
  margin-bottom: 15px;
  position: relative;
  top: 10px;
}

.horn-left {
  top: -7px;
  transform: rotate(-25deg);
}

.horn-left .line-one {
  right: 12px;
  transform: rotate(30deg);
}

.horn-left .line-two {
  top: -2px;
  left: 2px;
  transform: rotate(-30deg);
}

.horn-left .line-three {
  top: -15px;
  right: 12px;
  transform: rotate(30deg);
}

.horn-right {
  bottom: 60px;
  left: 40px;
  transform: rotate(25deg);
}

.horn-right .line-one {
  top: 7px;
  right: 1px;
  transform: rotate(-30deg);
}

.horn-right .line-two {
  top: -2px;
  right: 12px;
  transform: rotate(30deg);
}

.horn-right .line-three {
  top: -15px;
  left: 0px;
  transform: rotate(-30deg);
}

.ears {
  position: absolute;
  top: 70px;
}

.ear {
  background-color: #91655d;
  border-radius: 100% 50% 50% 50%;
  height: 18px;
  position: relative;
  right: 20px;
  top: 10px;
  transform: rotate(30deg);
  transform-origin: 100%;
  width: 30px;
}

.ear:before {
  background-color: #e7beb2;
  border-radius: 100% 50% 50% 50%;
  height: 9px;
  content: "";
  display: block;
  left: 5px;
  position: relative;
  top: 5px;
  width: 15px;
}

.ear-left {
  animation: ear-left 2s cubic-bezier(0.6, -0.28, 0.74, 0.05) infinite alternate-reverse;
  transform: rotate(30deg);
  position: relative;
  right: 20px;
  top: 10px;
}

@keyframes ear-left {
  85% {
    transform: rotate(30deg);
  }

  100% {
    transform: rotate(-10deg);
  }
}

.ear-right {
  animation: ear-right 2s cubic-bezier(0.6, -0.28, 0.74, 0.05) 2s infinite alternate-reverse;
  left: 10px;
  right: 0;
  top: -8px;
  transform: rotate(160deg);
}

@keyframes ear-right {
  85% {
    transform: rotate(160deg);
  }

  100% {
    transform: rotate(170deg);
  }
}

.eyes {
  position: absolute;
  top: 90px;
  right: -5px;
  width: 32px;
  z-index: 2;
}

.eyes .eye {
  background: linear-gradient(0deg, white 50%, #aa8275 50%);
  border-radius: 15px;
  height: 15px;
  width: 15px;
}

.eyes .eye-left {
  float: left;
}

.eyes .eye:after {
  animation: eyes 5s infinite alternate-reverse;
  background-color: #495169;
  border-radius: 5px;
  height: 5px;
  content: "";
  display: block;
  left: 5px;
  position: relative;
  top: -3px;
  width: 5px;
}

@keyframes eyes {
  0% {
    transform: translate(3px, 2px);
  }

  75% {
    transform: translate(3px, 2px);
  }
}

.eyes .eye:before {
  animation: eaves 5s infinite alternate-reverse;
  background-color: #aa8275;
  border-radius: 9px 9px 0 0;
  height: 9px;
  content: "";
  display: block;
  position: relative;
  z-index: 1;
}

@keyframes eaves {
  0% {
    top: -1px;
  }
}

.eyes .eye-right {
  float: right;
}

.nose {
  background-color: #91655d;
  border-radius: 0 7px 15px;
  top: 47px;
  height: 18px;
  left: 40px;
  position: relative;
  width: 20px;
  z-index: 2;
}

.nose:before {
  background-color: #fb5d5d;
  border-radius: 15px;
  content: "";
  display: block;
  height: 14px;
  position: absolute;
  right: -0.5px;
  top: -0.5px;
  width: 16px;
}

.nose:after {
  background-color: white;
  border-radius: 5px;
  content: "";
  display: block;
  height: 2px;
  position: absolute;
  right: 4px;
  top: 2px;
  width: 5px;
}

.body {
  background-color: #91655d;
  border-radius: 50px 50px 0;
  box-shadow: inset 7px 0 0 0 #9c7169;
  height: 140px;
  position: relative;
  width: 50px;
  z-index: 1;
}

.body:before {
  background-color: #e7beb2;
  border-radius: 20px 0 0 20px;
  bottom: 20px;
  box-shadow: inset -7px 0 0 0 #c39e9a;
  content: "";
  display: block;
  height: 65px;
  position: absolute;
  right: 0;
  width: 20px;
}

.hooves {
  position: relative;
  bottom: 40px;
  right: 34px;
}

.hoof-one {
  animation: jump 0.3s ease-in-out infinite alternate-reverse;
  left: 10px;
  position: relative;
  top: 70px;
  transform: rotate(25deg);
  transform-origin: 100% 50%;
}

@keyframes jump {
  100% {
    transform: translateY(-2px) rotate(25deg);
  }
}

.hoof-one .line {
  height: 30px;
  border: 20px solid;
  border-radius: 40px;
  border-color: transparent transparent #91655d transparent;
  left: 25px;
  width: 30px;
  position: relative;
  top: 5px;
  transform: rotate(-30deg);
}

.hoof-one .anim-part {
  position: relative;
  bottom: 23px;
  left: 81px;
  transform: rotate(-75deg);
  transform-origin: left;
}

.hoof-one .circle {
  animation: hoof-one 0.3s ease-in-out infinite alternate-reverse;
  background-color: #91655d;
  height: 20px;
  width: 20px;
  border-radius: 30px;
  transform: translateX(3px) rotate(0deg);
}

@keyframes hoof-one {
  100% {
    transform: translateX(2px) rotate(5deg);
  }
}

.hoof-one .circle-last {
  border-radius: 20px 0 0 20px;
  transform: translateX(2px) rotate(0deg);
}

.hoof-one .circle-last:before {
  content: "";
  display: block;
  border-top: 20px solid #674a4a;
  border-left: 7px solid transparent;
  height: 0;
  left: 10px;
  width: 7px;
  position: relative;
  z-index: 1;
}

.hoof-one .circle-last:after {
  background-color: #ffb63c;
  border-radius: 10px;
  bottom: 30px;
  content: "";
  display: block;
  height: 40px;
  left: 19px;
  position: relative;
  width: 9px;
}

.hoof-two {
  animation: jump-two 0.3s ease-in-out infinite alternate-reverse;
  left: 55px;
  position: relative;
  top: 10px;
  z-index: -1;
}

@keyframes jump-two {
  100% {
    transform: translateY(2px);
  }
}

.hoof-two .line-one {
  transform: rotate(-45deg);
  height: 10px;
  border: 20px solid;
  border-radius: 40px;
  border-color: transparent transparent #91655d transparent;
  width: 10px;
  position: absolute;
}

.hoof-two .line-two {
  left: 30px;
  transform: rotate(135deg);
  height: 10px;
  border: 20px solid;
  border-radius: 40px;
  border-color: transparent transparent #91655d transparent;
  width: 10px;
  position: absolute;
}

.tail {
  background-color: #9c7169;
  bottom: 0;
  left: 4px;
  position: absolute;
  width: 20px;
  z-index: 0;
}

@keyframes tail {
  10% {
    transform: rotate(2deg);
  }

  20% {
    transform: rotate(-5deg);
  }
}

.tail .circle {
  -webkit-animation: tail 2s cubic-bezier(0, 0.02, 0.9, 2) infinite;
  animation: tail 2s cubic-bezier(0, 0.02, 0.9, 2) infinite;
  background-color: #9c7169;
  border-radius: 11px;
  height: 12px;
  position: relative;
  right: 2px;
  transform: rotate(-5deg);
  width: 12px;
}

.legs {
  position: relative;
}

.legs:before {
  background: linear-gradient(to left, #91655d 50%, #9c7169 50%);
  bottom: 0;
  content: "";
  display: block;
  height: 10px;
  left: 7px;
  position: absolute;
  width: 30px;
  z-index: 0;
}

.leg-left .anim-part:before,
.leg-left .anim-part:after {
  content: "";
  display: block;
  position: absolute;
  z-index: 1;
}

.leg-left:before,
.leg-left:after,
.leg-right:before,
.leg-right:after {
  content: "";
  display: block;
  position: absolute;
  z-index: 1;
}

.leg-left:after {
  background-color: #674a4a;
  height: 13px;
  left: 48px;
  top: 32px;
  transform: skew(-8deg);
  width: 20px;
  z-index: 2;
}

.leg-left .anim-part {
  animation: leg-left 0.4s ease-out infinite alternate-reverse;
  position: relative;
  top: 1px;
  transform: rotate(5deg) translateX(3px);
  transform-origin: right;
  z-index: 2;
}

@keyframes leg-left {
  0% {
    transform: rotate(0deg) translateX(0px);
  }

  50% {
    transform: rotate(5deg) translateX(3px);
  }
}

.leg-left .anim-part:before {
  height: 16px;
  width: 16px;
  border: 20px solid;
  border-radius: 30px;
  border-color: transparent #835f5b transparent transparent;
  transform: rotate(-45deg);
  top: -17px;
  left: 17px;
}

.leg-left .anim-part .line {
  background-color: #835f5b;
  height: 25px;
  position: absolute;
  width: 20px;
  left: 51px;
  top: 7px;
  z-index: 2;
  transform: skew(-9deg);
}

.leg-left .anim-part:after {
  background-color: #835f5b;
  height: 20px;
  left: 33px;
  top: -20px;
  width: 24px;
}

.leg-left:after {
  background-color: #674a4a;
  height: 13px;
  left: 48px;
  top: 32px;
  transform: skew(-8deg);
  width: 20px;
  z-index: 2;
}

.leg-right {
  position: relative;
  right: 10px;
}

.leg-right:before {
  height: 30px;
  width: 38px;
  border: 20px solid;
  border-radius: 40px;
  border-color: #91655d transparent transparent transparent;
  transform: rotate(-15deg);
  z-index: 3;
  top: -29px;
  left: 21px;
}

.leg-right .anim-part {
  position: absolute;
  left: 64px;
  bottom: 9px;
  transform: rotate(43deg);
  z-index: 2;
}

.leg-right .anim-part .circle {
  animation: leg-right 0.4s ease-out infinite alternate-reverse;
  width: 20px;
  height: 20px;
  background-color: #91655d;
  border-radius: 20px;
  transform: translateX(4px) rotate(4deg);
}

@keyframes leg-right {
  100% {
    transform: translateX(4px) rotate(2deg);
  }
}

.leg-right .anim-part .circle-last {
  border-radius: 20px 0 0 20px;
}

.leg-right .anim-part .circle-last:before {
  content: "";
  display: block;
  border-bottom: 20px solid #674a4a;
  border-right: 2px solid transparent;
  height: 0;
  left: 15px;
  width: 11px;
  position: relative;
  z-index: 1;
}

.presents {
  top: 3px;
  height: 45px;
  margin: 0 auto;
  position: relative;
  width: 110px;
}

.presents:after {
  animation: shadow 0.4s ease-out infinite alternate-reverse;
  background-color: rgba(0, 0, 0, 0.07);
  bottom: 0;
  border-radius: 7px;
  content: "";
  display: block;
  height: 7px;
  left: -22px;
  position: absolute;
  width: 170px;
}

.present {
  border-radius: 4px;
  bottom: 3px;
  position: absolute;
  z-index: 1;
}

.present:before,
.present:after {
  content: "";
  display: block;
  position: relative;
}

.present-one {
  background-color: #fb5d5d;
  height: 45px;
  right: 32px;
  width: 45px;
  z-index: 3;
}

.present-one:before {
  background-color: #fc7676;
  height: 12px;
  width: 47px;
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 2px 0 0 rgb(0 0 0 / 4%);
  right: 1px;
}

.present-two {
  background-color: #82dfe3;
  height: 30px;
  width: 30px;
}

.present-two:before {
  background-color: #97e4e8;
  height: 10px;
  width: 32px;
}

.present:before {
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 2px 0 0 rgb(0 0 0 / 4%);
  right: 1px;
}

.present-two:after {
  background-color: #69b2cb;
  bottom: 10px;
  height: 100%;
  left: 7px;
  width: 5px;
}

.present-two-right {
  right: 5px;
}

.present-two {
  background-color: #82dfe3;
  height: 30px;
  width: 30px;
}

.present-three {
  background-color: #ffb63c;
  height: 25px;
  left: 25px;
  margin: auto;
  width: 25px;
  z-index: 3;
}

.present-three:before {
  background-color: #ffc056;
  height: 8px;
  width: 27px;
}

.present:before {
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 2px 0 0 rgb(0 0 0 / 4%);
  right: 1px;
}

.present:before,
.present:after {
  content: "";
  display: block;
  position: relative;
}

.present-three:after {
  background-color: #fb5353;
  bottom: 8px;
  height: 100%;
  left: 13px;
  width: 5px;
}

.present:before,
.present:after {
  content: "";
  display: block;
  position: relative;
}

.present-three:after {
  background-color: #fb5353;
  bottom: 8px;
  height: 100%;
  left: 13px;
  width: 5px;
}

.present:before,
.present:after {
  content: "";
  display: block;
  position: relative;
}