@font-face {
  font-family: "Cushy";
  src: url("https://cdn.jsdelivr.net/gh/bharadhwaj/wedding@1.1.0/assets/fonts/Cushy.otf") format("opentype");
  src: url("../fonts/Cushy.otf") format("opentype");
}

/* 
 * All CSS animations starts here
 */
@keyframes flower-falling {
  0% {
    -webkit-transform: translate3d(0, 0, 0) rotate(0deg) scale(0.9, 0.9);
  }

  100% {
    -webkit-transform: translate3d(30px, 5000px, 0) rotate(360deg)
      scale(1.1, 1.1);
  }
}

@-webkit-keyframes flower-falling {
  0% {
    -webkit-transform: translate3d(0, 0, 0) rotate(0deg) scale(0.9, 0.9);
  }

  100% {
    -webkit-transform: translate3d(30px, 5000px, 0) rotate(360deg)
      scale(1.1, 1.1);
  }
}

@-moz-keyframes flower-falling {
  0% {
    -moz-transform: translate3d(0, 0, 0) rotate(0deg) scale(0.9, 0.9);
  }

  100% {
    -moz-transform: translate(30px, 5000px) rotate(360deg) scale(1.1, 1.1);
  }
}

@keyframes venue-cloud-animation {
  0%,
  100% {
    margin-right: 25px;
  }

  50% {
    margin-right: 5px;
  }
}

@-webkit-keyframes venue-cloud-animation {
  0%,
  100% {
    margin-right: 25px;
  }

  50% {
    margin-right: 5px;
  }
}

@-moz-keyframes venue-cloud-animation {
  0%,
  100% {
    margin-left: 15px;
  }

  50% {
    margin-left: 5px;
  }
}

@keyframes date-cloud-animation {
  0%,
  100% {
    margin-left: 20px;
  }

  50% {
    margin-left: 5px;
  }
}

@-webkit-keyframes date-cloud-animation {
  0%,
  100% {
    margin-left: 20px;
  }

  50% {
    margin-left: 5px;
  }
}

@-moz-keyframes date-cloud-animation {
  0%,
  100% {
    margin-left: 20px;
  }

  50% {
    margin-left: 5px;
  }
}

/* 
 * All CSS animations ends here
 */

/* 
 * Flower shower CSS starts here
 * Animation of flower falling from the top 
 */
.flower-shower-container {
  position: absolute;
  top: -30px;
  height: 100%;
  width: 100%;
  overflow: hidden;
  z-index: 10;
}

.flower-shower {
  position: relative;
  top: -30px;
  width: 100%;
  height: 100vh;
  text-align: center;
  bottom: 0px;
}

.flower-shower span {
  display: inline-block;
  height: 16px;
  width: 16px;
  border-radius: 50%;
  transform-origin: left -20px;
  -webkit-transform-origin: left -20px;
  animation-name: flower-falling;
  -webkit-animation-name: flower-falling;
  animation-duration: 12s;
  -webkit-animation-duration: 12s;
  animation-direction: normal;
  -webkit-animation-direction: normal;
  animation-iteration-count: infinite;
  -webkit-animation-iteration-count: infinite;
  animation-timing-function: linear;
  -webkit-animation-timing-function: linear;
  animation-delay: 2s;
  -webkit-animation-delay: 2s;
  animation-fill-mode: none;
  -webkit-animation-fill-mode: none;
  animation-play-state: running;
  -webkit-animation-play-state: running;
  animation: flower-falling 12s linear 8s infinite;
  -moz-animation: flower-falling 12s linear 8s infinite;
}

.flower-shower span img {
  width: 100%;
  height: 100%;
}

/* different sizes, and default origins based on size */
.flower-shower span:nth-of-type(4n) {
  height: 30px;
  width: 30px;
  transform-origin: right -30px;
  -webkit-transform-origin: right -30px;
  -moz-transform-origin: right -30px;
}

.flower-shower span:nth-of-type(4n + 1) {
  height: 24px;
  width: 24px;
  transform-origin: left -30px;
  -webkit-transform-origin: left -30px;
  -moz-transform-origin: left -30px;
}

.flower-shower span:nth-of-type(4n + 2) {
  height: 10px;
  width: 10px;
  transform-origin: -30px 0;
  -webkit-transform-origin: -30px 0;
  -moz-transform-origin: -30px 0;
}

/* different speeds, with iteration counts to equal 3minutes approx. */
.flower-shower span:nth-of-type(4n) {
  animation-duration: 10s;
  -webkit-animation-duration: 10s;
  animation-iteration-count: infinite;
  -webkit-animation-iteration-count: infinite;
  transform-origin: -10px -20px;
  -webkit-transform-origin: -10px -20px;
  -moz-animation-duration: 10s;
  -moz-animation-iteration-count: infinite;
  -moz-transform-origin: -10px -20px;
}

.flower-shower span:nth-of-type(4n + 1) {
  animation-duration: 8s;
  -webkit-animation-duration: 8s;
  animation-iteration-count: infinite;
  -webkit-animation-iteration-count: infinite;
  transform-origin: 10px -20px;
  -webkit-transform-origin: 10px -20px;
  -moz-animation-duration: 8s;
  -moz-animation-iteration-count: infinite;
  -moz-transform-origin: 10px -20px;
}

.flower-shower span:nth-of-type(4n + 2) {
  animation-duration: 5s;
  -webkit-animation-duration: 5s;
  animation-iteration-count: infinite;
  -webkit-animation-iteration-count: infinite;
  transform-origin: right -20px;
  -webkit-transform-origin: right -20px;
  -moz-animation-duration: 5s;
  -moz-animation-iteration-count: infinite;
  -moz-transform-origin: right -20px;
}

/* different delays so they don't all start at the same time */
.flower-shower span:nth-of-type(3n) {
  animation-delay: 2.3s;
  -webkit-animation-delay: 2.3s;
  -moz-animation-delay: 2.3s;
}

.flower-shower span:nth-of-type(3n + 1) {
  animation-delay: 1.5s;
  -webkit-animation-delay: 1.5s;
  -moz-animation-delay: 1.5s;
}

.flower-shower span:nth-of-type(3n + 2) {
  animation-delay: 3.4s;
  -webkit-animation-delay: 3.4s;
  -moz-animation-delay: 3.4s;
}

/* playing with timing functions to make it a teeny bit more random like */
.flower-shower span:nth-of-type(5n) {
  animation-timing-function: ease-in-out;
  -webkit-animation-timing-function: ease-in-out;
}

.flower-shower span:nth-of-type(5n + 1) {
  animation-timing-function: ease-out;
  -webkit-animation-timing-function: ease-out;
}

.flower-shower span:nth-of-type(5n + 2) {
  animation-timing-function: ease;
  -webkit-animation-timing-function: ease;
}

.flower-shower span:nth-of-type(5n + 3) {
  animation-timing-function: ease-in;
  -webkit-animation-timing-function: ease-in;
}

.flower-shower span:nth-of-type(5n + 4) {
  animation-timing-function: linear;
  -webkit-animation-timing-function: linear;
}

.flower-shower span:nth-of-type(11n) {
  animation-timing-function: cubic-bezier(0.2, 0.3, 0.8, 0.9);
  -webkit-animation-timing-function: cubic-bezier(0.2, 0.3, 0.8, 0.9);
}

.flower-shower span:nth-of-type(5n) {
  animation-timing-function: ease-in-out;
  -moz-animation-timing-function: ease-in-out;
}

.flower-shower span:nth-of-type(5n + 1) {
  animation-timing-function: ease-out;
  -moz-animation-timing-function: ease-out;
}

.flower-shower span:nth-of-type(5n + 2) {
  animation-timing-function: ease;
  -moz-animation-timing-function: ease;
}

.flower-shower span:nth-of-type(5n + 3) {
  animation-timing-function: ease-in;
  -moz-animation-timing-function: ease-in;
}

.flower-shower span:nth-of-type(5n + 4) {
  animation-timing-function: linear;
  -moz-animation-timing-function: linear;
}

.flower-shower span:nth-of-type(11n) {
  animation-timing-function: cubic-bezier(0.2, 0.3, 0.8, 0.9);
  -moz-animation-timing-function: cubic-bezier(0.2, 0.3, 0.8, 0.9);
}

/* playing with opacity to make it a teeny bit more random like */
.flower-shower span:nth-of-type(7n) {
  opacity: 0.5;
}

.flower-shower span:nth-of-type(7n + 2) {
  opacity: 0.3;
}

.flower-shower span:nth-of-type(7n + 4) {
  opacity: 0.7;
}

.flower-shower span:nth-of-type(7n + 6) {
  opacity: 0.6;
  animation-timing-function: ease-in;
  -webkit-animation-timing-function: ease-in;
  transform-origin: left 10px;
  -webkit-transform-origin: left 10px;
  -moz-animation-timing-function: ease-in;
  -moz-transform-origin: left 10px;
}

.flower-shower span:nth-of-type(7n + 1) {
  opacity: 0.8;
}

/* 
 * Flower shower CSS ends here
 */

/* 
 * Containers starts here
 */
body {
  margin: 0px;
}

.hide {
  display: none!important;
}

.loading-container {
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.root-container {
  position: fixed;
  background: url(https://cdn.jsdelivr.net/gh/bharadhwaj/wedding@1.1.0/assets/images/blue-background.jpg), url(../images/blue-background.jpg);
  overflow-x: hidden;
  width: 100%;
  height: 100%;
}

.dotted-heart-container {
  position: absolute;
  width: 100%;
  height: 100%;
  background: url(https://cdn.jsdelivr.net/gh/bharadhwaj/wedding@1.1.0/assets/images/dotted-heart-lines.jpg) no-repeat center 120px, url(../images/dotted-heart-lines.jpg) no-repeat center 120px;
  overflow-y: auto;
}

.main-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
}

.header-area-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.header-text-container {
  margin-top: -115px;
}

.details-area-container {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  z-index: 11;
}

.venue-details-container {
  position: absolute;
  right: calc(50vw + 150px);
  width: 370px;
  height: 350px;
  margin-top: -200px;
  animation: venue-cloud-animation ease 2s infinite;
  -webkit-animation: venue-cloud-animation ease 2s infinite;
  -moz-animation: venue-cloud-animation ease 2s infinite;
}

@media only screen and (max-width: 1056px) {
  .venue-details-container {
    right: calc(50vw + 100px);
    transform: scale(0.75);
  }
}

.couples-pic-area {
  width: 300px;
  margin-top: 70px;
}

.date-details-container {
  position: absolute;
  left: calc(50vw + 150px);
  margin-top: -120px;
  width: 370px;
  height: 350px;
  animation: date-cloud-animation ease 2s infinite;
  -webkit-animation: date-cloud-animation ease 2s infinite;
  -moz-animation: date-cloud-animation ease 2s infinite;
}

@media only screen and (max-width: 1056px) {
  .date-details-container {
    transform: scale(0.8);
    left: calc(50vw + 100px);
  }
}

.footer-area-container {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
/* 
 * Containers ends here
 */


/*
 * Audio Controller CSS starts here
 */
 .audio-controller-container {
  position: fixed;
  left: 0px;
  top: 0px;
  transform: scale(.5);
  z-index: 100;
 }

 #audio-controller-outline-circle {
	transition: stroke-dashoffset 300ms ease-in;
	stroke-dashoffset: 0;
	fill: none;
}

#audio-controller-outline-circle.play {
	stroke-dashoffset: 314;
}
/*
 * Audio Controller CSS ends here
 */

/*
 * Container image items CSS starts here
 */
.venue-details {
  background: url(https://cdn.jsdelivr.net/gh/bharadhwaj/wedding@1.1.0/assets/images/venue-cloud.png) no-repeat 0 0, url(../images/venue-cloud.png) no-repeat 0 0;
  width: 100%;
  height: 100%;
  padding-top: 90px;
  padding-left: 40px;
}

.date-details {
  background: url(https://cdn.jsdelivr.net/gh/bharadhwaj/wedding@1.1.0/assets/images/date-cloud.png) no-repeat 0 0, url(../images/date-cloud.png) no-repeat 0 0;
  width: 100%;
  height: 100%;
  padding-top: 70px;
  padding-left: 60px;
}

.name-area-container {
  width: 800px;
  height: 450px;
  background: url(https://cdn.jsdelivr.net/gh/bharadhwaj/wedding@1.1.0/assets/images/name-card.png) no-repeat 0 0, url(../images/name-card.png) no-repeat 0 0;
  background-size: contain, contain;
  margin-top: -100px;
  z-index: 11;
}

.invitation-details-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  z-index: 11;
}

/*
 * Container image items CSS ends here
 */

/*
 * Text styles CSS starts here
 */
.header-text {
  font-family: "Homemade Apple";
  font-size: 24px;
  color: #453c33;
  text-shadow: 1px 1px 0px #fff, 2px 2px 0px #707070;
  line-height: 36px;
}

.header-text strong {
  font-size: 40px;
  color: #453c33;
}

.cloud-text {
  text-align: left;
  color: #fff;
  font-family: "Wendy One", cursive;
  font-size: 20px;
  letter-spacing: 2px;
  text-shadow: 1px 1px 0px #629f9f, 2px 2px 0px #000;
}

.maps-icon {
  padding-top: 20px;
  padding-left: 40px;
}

.cloud-text sup {
  font-size: 18px;
}

.cloud-text-title {
  font-size: 42px;
  text-shadow: 2px 2px 0px #629f9f, 4px 4px 0px #000;
  letter-spacing: 3px;
}

.day-container {
  margin-top: 20px;
}

.date-container {
  display: flex;
  flex-direction: row;
}

.year-month-container {
  display: flex;
  flex-direction: column;
  margin-top: 8px;
  margin-left: 8px;
}

.date-container .month {
  font-size: 24px;
}

.date-container .year {
  font-size: 30px;
}

.time {
  margin-top: 10px;
  margin-left: 35px;
  font-size: 30px;
  text-shadow: 2px 2px 0px #629f9f, 4px 4px 0px #000;
}

.name-area {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-around;
  width: 100%;
  height: 100%;
}

.names {
  width: 260px;
  font-family: "Love Light", cursive;
  text-align: center;
  color: #453c33;
  align-content: center;
}

.name-first-letter {
  font-size: 140px;
  text-shadow: 2px 2px 0px #fff, 4px 4px 0px #707070;
  transition: all 1s ease-in-out;
}

.name-other-letters {
  font-size: 50px;
  font-weight: bolder;
  text-shadow: none;
}

@media only screen and (max-width: 1056px) {
  .name-other-letters {
    font-size: 50px;
    font-weight: normal;
    text-shadow: none;
  }
}


.invitation-details-text {
  margin-top: 20px;
  margin-bottom: 0px;
  color: #453c33;
  font-family: "Cushy", cursive;
  font-size: 24px;
  letter-spacing: 2px;
  padding-left: 50px;
  padding-right: 50px;
  text-align: center;
  line-height: 30px;
}

.invitation-details-text a {
  color: #453c33;
  text-decoration-style: dashed;
}

.invitation-details-text sup {
  font-size: 20px;
}


.couples-name {
  margin-top: 50px;
  font-family: "Cushy", cursive;
  font-size: 72px;
  letter-spacing: 4px;
  text-shadow: 3px 3px 0px #fff, 6px 6px 0px #707070;
}

.parents-name {
  margin-top: 10px;
  font-family: "Cushy", cursive;
  font-size: 30px;
}

.address {
  margin-top: 10px;
  font-family: "Cushy", cursive;
}

.subtitle-text {
  margin-top: 30px;
  font-family: "Cushy", cursive;
  line-height: 30px;
}

.title-text {
  margin-top: 60px;
  margin-bottom: 30px;
  font-family: "Cushy", cursive;
  font-size: 60px;
  color: #fff;
  letter-spacing: 2px;
  text-shadow: 3px 3px 0px #666, 8px 8px 0px #629f9f;
}

.venue-name {
  margin-top: 30px;
  margin-bottom: 20px;
  font-family: "Cushy", cursive;
  font-size: 50px;
  letter-spacing: 4px;
  text-shadow: 2px 2px 0px #fff, 4px 4px 0px #707070;
}

.outro-text {
  margin-top: 60px;
  margin-bottom: 60px;
}
/*
 * Text styles CSS ends here
 */
