@import url('https://fonts.googleapis.com/css2?family=Public+Sans&family=Trocchi&display=swap');

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  /* outline: 1px solid red; */
}

html {
  background: #81DD77;
  color: #1A1A1A;
  font-size: 62.5%;
  font-family: 'Public Sans', sans-serif;
}

html, body {
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
}

input, button {
  border: none;
  outline: none;
  background: none;
}

button {
  cursor: pointer;
}

label {
  font-size: 3rem;
  line-height: 3rem;
  text-align: left;
  white-space: nowrap;
  margin-bottom: 1rem;
}

input {
  font-size: 2.5rem;
  line-height: 2.5rem;
  text-align: left;
  white-space: nowrap;
}

input::placeholder {
  opacity: 0.25;
}

h1, h2, h3, h4, h5, h6, button, a, label {
  font-family: 'Maison Neue', sans-serif;
  font-weight: bold;
}

h1 {
  font-size: 3rem;
}

h2 {
  font-size: 7vh;
  line-height: 9vh;
}

h3 {
  font-size: 5vh;
  line-height: 6.5vh;
}

p {
  font-size: 2rem;
  line-height: 2.4rem;
}

a {
  text-decoration: none;
  color: #1A1A1A;
  font-weight: inherit;
  font-weight: bold;
}

a:hover {
  color: #F2F0E4;
}

.bgrnd_wrap,
.snowflake_wrap,
.form_wrap {
  height: 100%;
  width: 100vw;
  display: flex;
  justify-content: center;
  overflow: hidden;
  position: absolute;
}

.green {
  color: #81DD77;
}

.zoomOut {
  animation: comeout 100ms linear forwards;
}

@media (orientation: portrait) {
  h2 {
    font-size: 7vw;
    line-height: 9vw;
  }
  
  h3 {
    font-size: 5vw;
    line-height: 7vw;
  }
}

/* ===================== BGRND_WRAP SECTION ===================== */

.bgrnd_alabaster {
  height: 100vh;
  width: 8vw;
  margin-left: 2vw;
  background-image: url('/images/logo-alabaster.svg');
  background-repeat: repeat-y;
  background-size: 100% auto;
}

.bgrnd_alabaster:first-child{
  margin-left:0;
}

.bgrnd_alabaster:nth-child(2n){
  margin-top: -4vw;
  height: 120vh;
  transform: translateY(100%);
  transition:transform 500ms ease-out;
}

.bgrnd_alabaster:nth-child(2n+1){
  height: 120vh;
  transform: translateY(-100%);
  transition:transform 500ms ease-out;
}

.bgrnd_wrap.active .bgrnd_alabaster:nth-child(2n){
  transform: translateY(0);
  transition:transform 500ms ease-out 500ms;
}

.bgrnd_wrap.active .bgrnd_alabaster:nth-child(2n+1){
  transform: translateY(0%);
  transition:transform 500ms ease-out 500ms; 
}

.bgrnd_wrap.active .bgrnd_alabaster:nth-child(2n){
  animation: bgrnd_anim 3s linear infinite;
}

.bgrnd_wrap.active .bgrnd_alabaster:nth-child(2n+1){
  animation: bgrnd_anim 3s linear infinite reverse;
}

.bgrnd_wrap.active.finish .bgrnd_alabaster:nth-child(2n){
  height: 92vh;
  transform: translateY(-100%);
  transition:transform 500ms ease-out 500ms;
}

.bgrnd_wrap.active.finish .bgrnd_alabaster:nth-child(2n+1){
  height: 92vh;
  transform: translateY(200%);
  transition:transform 500ms ease-out 500ms; 
}

.bgrnd_wrap.active.finish .bgrnd_alabaster:nth-child(2n){
  transition: transform 1500ms ease-in;
  animation: bgrnd_anim 3s linear forwards;
}

.bgrnd_wrap.active.finish .bgrnd_alabaster:nth-child(2n+1){
  transition: transform 1500ms ease-in;
  animation: bgrnd_anim 3s linear forwards reverse;
}

@media (orientation: portrait) {
  .bgrnd_alabaster {
    width: 12vw;
    margin-left: 4.25vw;
  }

  .bgrnd_alabaster:nth-child(5){
    margin-left:0;
  }

  .bgrnd_alabaster:first-child,
  .bgrnd_alabaster:nth-child(2),
  .bgrnd_alabaster:nth-child(3),
  .bgrnd_alabaster:nth-child(4) {
    display: none;
  }

  .bgrnd_wrap.active .bgrnd_alabaster:nth-child(2n) {
    animation: bgrnd_anim_portrait 3s linear infinite;
  }
  
  .bgrnd_wrap.active .bgrnd_alabaster:nth-child(2n+1) {
    animation: bgrnd_anim_portrait 3s linear infinite reverse;
  }

}

/* ===================== SNOWFLAKE_WRAP SECTION ===================== */

.snowflake_wrap {
  align-items: center;
  text-align: center;
}

.shapes {
  display: block;
  width: 200vh;
  height: 200vh;
  position: relative;
  transform: scale(0);
}

.black_left,
.black_right,
.black_full {
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
}

.flower_wrap {
  display: block;
  width: auto;
  width: 125vh;
  height: 125vh;
  position: absolute;
}

.flower_pink {
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  transform: scale(0);
}

.flower_heading_1,
.flower_heading_2,
.ball_heading_1,
.ball_heading_2 {
  position: absolute;
  width: 100%;
  height: 100%;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.flower_span {
  opacity: 0;
  transform: translateY(2rem);
}

.snowflake_wrap.active .shapes {
  animation: 
    black_comein 1200ms cubic-bezier(0.59, 0, 0.04, 0.45) 1000ms 1 forwards,
    black_rotate 12s linear 2201ms infinite forwards;
}

.snowflake_wrap.active .flower_pink {
  animation: flower_zoom 1000ms cubic-bezier(.42,.72,.44,1) 1500ms forwards;
}

.snowflake_wrap.active.finish .flower_pink {
  transform: scale(100%);
  animation: flower_unzoom 1000ms cubic-bezier(.42,.72,.44,1) 500ms forwards;
}

.snowflake_wrap.active .flower_heading_1 .flower_span:nth-child(1) {
  animation: show_heading 500ms ease-out 3s forwards;
}

.snowflake_wrap.active .flower_heading_1 .flower_span:nth-child(2) {
  animation: show_heading 500ms ease-out 3.5s forwards;
}

.snowflake_wrap.active .flower_heading_1 .flower_span:nth-child(3) {
  animation: show_heading 500ms ease-out 4s forwards;
}

#next_btn_1-1.show {
  animation: show_heading 500ms ease-out forwards;
}

.snowflake_wrap.active .flower_heading_1.hide .flower_span:nth-child(1) {
  opacity: 1;
  transform: translateY(0);
  animation: hide_heading 500ms ease-out 0.5s forwards;
}

.snowflake_wrap.active .flower_heading_1.hide .flower_span:nth-child(2) {
  opacity: 1;
  transform: translateY(0);
  animation: hide_heading 500ms ease-out 1s forwards;
}

.snowflake_wrap.active .flower_heading_1.hide .flower_span:nth-child(3) {
  opacity: 1;
  transform: translateY(0);
  animation: hide_heading 500ms ease-out 1.5s forwards;
}

#next_btn_1-1.hide {
  opacity: 1;
  transform: translateY(0);
  animation: hide_heading 500ms ease-out 1.5s forwards;
}

.snowflake_wrap.active .flower_heading_2.show .flower_span:nth-child(1) {
  animation: show_heading 500ms ease-out 2s forwards;
}

.snowflake_wrap.active .flower_heading_2.show .flower_span:nth-child(2) {
  animation: show_heading 500ms ease-out 2.5s forwards;
}

.snowflake_wrap.active .flower_heading_2.show .flower_span:nth-child(3) {
  animation: show_heading 500ms ease-out 3s forwards;
}

#next_btn_1-2.show {
  animation: show_heading 500ms ease-out 3.5s forwards;
}


.snowflake_wrap.active .flower_heading_2.hide .flower_span:nth-child(1) {
  opacity: 1;
  transform: translateY(0);
  animation: hide_heading 500ms ease-out 0.5s forwards;
}

.snowflake_wrap.active .flower_heading_2.hide .flower_span:nth-child(2) {
  opacity: 1;
  transform: translateY(0);
  animation: hide_heading 500ms ease-out 1s forwards;
}

.snowflake_wrap.active .flower_heading_2.hide .flower_span:nth-child(3) {
  opacity: 1;
  transform: translateY(0);
  animation: hide_heading 500ms ease-out 1.5s forwards;
}

#next_btn_1-2.hide {
  opacity: 1;
  transform: translateY(0);
  animation: hide_heading 500ms ease-out 1.5s forwards;
}


@keyframes show_heading {
  from {
    opacity: 0;
    transform: translateY(2rem);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes hide_heading {
  to {
    opacity: 0;
    transform: translateY(-2rem);
  }
}

.snowflake_wrap.active .flower_heading_2 {
  animation: show_heading 400ms linear 7200ms forwards;
}

.snowflake_wrap.active.finish .shapes {
  transition: transform 1500ms ease-in;
  animation: black_stoprotate 3s cubic-bezier(.42,.72,.44,1) forwards;
}

.snowflake_wrap.active.finish .flower_heading_2 {
  opacity: 1;
  animation: hide_heading 1ms linear 1500ms forwards;
}

.snowflake_wrap.active.finish .black_left {
  animation: 
    black_left_open 500ms cubic-bezier(.42,.72,.44,1) 3000ms forwards,
    black_left_open_slow 10s linear 3500ms forwards;
}
 
.snowflake_wrap.active.finish .black_right {
  animation: black_right_open 500ms cubic-bezier(.42,.72,.44,1) 3000ms forwards,
  black_right_open_slow 10s linear 3500ms forwards;
}

.snowflake_wrap.active.finish.next .black_left {
  animation: black_left_open_full 500ms cubic-bezier(.42,.72,.44,1) forwards;
}
 
.snowflake_wrap.active.finish.next .black_right {
  animation: black_right_open_full 500ms cubic-bezier(.42,.72,.44,1) forwards;
}

.snowflake_wrap.active.finish .black_full {
  animation: black_full_hide 1ms linear 3000ms forwards;
}

@media (orientation: portrait) {
  .shapes {
    width: 100vw;
    height: 100vw;
  }
  
  .snowflake_wrap.active .shapes {
    animation: 
      black_comein_portrait 1200ms cubic-bezier(0.59, 0, 0.04, 0.45) 1000ms 1 forwards,
      black_rotate_portrait 12s linear 2201ms infinite forwards;
  }

  .snowflake_wrap.active.finish .shapes {
    transition: transform 1500ms ease-in;
    animation: black_stoprotate_portrait 3s cubic-bezier(.42,.72,.44,1) forwards;
  }

  .black_left,
  .black_right {
    transform: rotate(90);
  }

  .snowflake_wrap.active.finish .black_left {
    animation: 
      black_left_open_portrait 500ms cubic-bezier(.42,.72,.44,1) 3000ms forwards,
      black_left_open_slow_portrait 10s linear 3500ms forwards;
  }
   
  .snowflake_wrap.active.finish .black_right {
    animation: black_right_open_portrait 500ms cubic-bezier(.42,.72,.44,1) 3000ms forwards,
    black_right_open_slow_portrait 10s linear 3500ms forwards;
  }
  
  .snowflake_wrap.active.finish.next .black_left {
    animation: black_left_open_full_portrait 1.5s cubic-bezier(.42,.72,.44,1) forwards;
  }
   
  .snowflake_wrap.active.finish.next .black_right {
    animation: black_right_open_full_portrait 1.5s cubic-bezier(.42,.72,.44,1) forwards;
  }

  .flower_wrap {
    width: 125vw;
    height: 125vw;
  }
}

/* ===================== WHITE_BALL_WRAP SECTION ===================== */

.white_ball_wrap {
  height: 100vh;
  width: 100vh;
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  display: none;
  transform: scale(0);
}

.white_ball {
  height: 100%;
  width: auto;
  position: absolute;
}

.ball_span {
  line-height: 7.5vh;
  opacity: 0;
  transform: translateY(2rem);
}

.white_ball_wrap.show {
  animation: comein 500ms cubic-bezier(.42,.72,.44,1) 3s forwards;
}

.white_ball_wrap.show .ball_heading_1 .ball_span:nth-child(1) {
  animation: show_heading 500ms ease-out 4s forwards;
}

.white_ball_wrap.show .ball_heading_1 .ball_span:nth-child(2) {
  animation: show_heading 500ms ease-out 4.5s forwards;
}

.white_ball_wrap.show .ball_heading_1 .ball_span:nth-child(3) {
  animation: show_heading 500ms ease-out 5s forwards;
}

.white_ball_wrap.show .ball_heading_2.show .ball_span {
  animation: show_heading 500ms ease-out 2.5s forwards;
}

.white_ball_wrap.hide .ball_heading_2 .ball_span {
  opacity: 1;
  transform: translateY(0);
  animation: hide_heading 300ms ease-out 0.5s forwards;
}

.white_ball_wrap.show .ball_heading_1.hide .ball_span:nth-child(1) {
  opacity: 1;
  transform: translateY(0);
  animation: hide_heading 500ms ease-out 0.5s forwards;
}

.white_ball_wrap.show .ball_heading_1.hide .ball_span:nth-child(2) {
  opacity: 1;
  transform: translateY(0);
  animation: hide_heading 500ms ease-out 1s forwards;
}

.white_ball_wrap.show .ball_heading_1.hide .ball_span:nth-child(3) {
  opacity: 1;
  transform: translateY(0);
  animation: hide_heading 500ms ease-out 1.5s forwards;
}

.white_ball_wrap.show #next_btn_1-3 {
  animation: show_heading 500ms ease-out 5.5s forwards;
}

.white_ball_wrap.show #next_btn_1-3.hide {
  opacity: 1;
  transform: translateY(0);
  animation: hide_heading 500ms ease-out 1.5s forwards;
}

.white_ball_wrap.hide {
  transform: scale(1);
  animation: star_zoom 1s cubic-bezier(.42,.72,.44,1) forwards;
}

@media (orientation: portrait) {
  .white_ball_wrap {
    height: 100vw;
    width: 100vw;
  }

  .ball_span {
    line-height: 7vw;
  }

}

/* ===================== FORM_WRAP SECTION ===================== */

.form_wrap {
  background-color: #F2F0E4;
  align-items: center;
  overflow-y: auto;
  display: none;
}

.form_container,
.success_container,
.loading_container {
  max-width: 680px;
  width: 100%;
  margin-top: 10rem;
  margin-bottom: 5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
}

.loading_container {
  margin-top: 0;
  padding: 5rem 0;
  margin-bottom: 0;
}

.success_container {
  display: none;
}

/* .success_container {
  margin-top: 0;
  justify-content: end;
  display: none;
  text-align: center;
  align-self: flex-end;
} */

.loading_container {
  display: none;
  text-align: center;
}

#lazy_form {
  margin-top: 8rem;
  width: 70%;
  display: flex;
  flex-direction: column;
  position: relative;
  opacity: 1;
  transition: opacity 500ms ease;
}

#lazy_form.hide {
  opacity: 0;
} 

#lazy_form .input_wrap {
  padding: 0;
  margin-top: 1rem;
}

#lazy_form label,
#lazy_form input {
  font-size: 2rem;
  line-height: 2rem;
}

#lazy_form input {
  margin-top: 1rem;
}

#lazy_msg {
  position: absolute;
  bottom: 12%;
  width: 100%;
  opacity: 0;
  visibility: hidden;
  transition: opacity 500ms ease;
}

#lazy_msg.show {
  opacity: 1;
}

.form_heading,
.loading_heading,
.success_heading {
  font-size: 6rem;
  line-height: 6rem;
  width: fit-content;
  text-align: center;
}

#second_song {
  margin: 4rem 0;
}

.loading_container h4,
#second_song {
  font-size: 3.5rem;
  line-height: 3.5rem;
  width: fit-content;
  text-align: center;
}

.form_text {
  width: 100%;
  max-width: 475px;
  margin-top: 2rem;
  width: fit-content;
  text-align: center;
}

#form {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: start;
  justify-content: space-between;
  margin-top: 3rem;
  position: relative;
}

.input_wrap {
  display: flex;
  flex-direction: column;
  width: 100%;
  padding: 0.25rem 0;
  border-bottom: 1px solid #1A1A1A;
  margin-bottom: 1rem;
  margin-top: 1rem;
}


.text_err {
  color: red;
}

#error_msg {
  color: red;
  position: relative;
  align-self: center;
  visibility: hidden;
}

.form_container.loading input {
  opacity: 0.5;
}

.form_container.loading #generate_btn {
  pointer-events: none;
  opacity: 0.5;
}

.hanging_ball {
  position: absolute;
  z-index: 0;
  transform-origin: top center;
  animation: 
  drop_ball 800ms ease-out 2s forwards,
  bim_bam 1s ease-in-out alternate-reverse infinite;
  top: -100vh;
  width: 18vh;
  height: auto;
}

.nota,
.vlocka_1,
.vlocka_2,
.vlocka_3 {
  position: absolute;
}

.form_container .nota,
.success_container .nota {
  width: 30rem;
  height: auto;
  top: 0rem;
  left: -22rem;
  transform: rotate(-25deg);
  z-index: 0;
}

.loading_container .nota {
  width: 30rem;
  height: auto;
  top: 12rem;
  left: -22rem;
  transform: rotate(-25deg);
  z-index: 0;
}

.form_container .vlocka_1,
.success_container .vlocka_1 {
  width: 30rem;
  height: auto;
  top: -14rem;
  right: -24rem;
  transform: rotate(-20deg);
  z-index: 0;
}

.loading_container .vlocka_1 {
  width: 30rem;
  height: auto;
  top: -9rem;
  right: -17rem;
  transform: rotate(-20deg);
  z-index: 0;
}

.form_container .vlocka_2,
.success_container .vlocka_2 {
  width: 12rem;
  height: auto;
  top: 16rem;
  right: -3rem;
  transform: rotate(20deg);
  z-index: 0;
}

.loading_container .vlocka_2 {
  width: 12rem;
  height: auto;
  top: 30rem;
  right: 2rem;
  transform: rotate(20deg);
  z-index: 0;
}

.form_container .vlocka_3,
.success_container .vlocka_3  {
  width: 17rem;
  height: auto;
  top: 30rem;
  right: -17rem;
  transform: rotate(24deg);
  z-index: 0;
}

.loading_container .vlocka_3 {
  width: 17rem;
  height: auto;
  top: 52rem;
  right: -17rem;
  transform: rotate(24deg);
  z-index: 0;
}

.hanging_ball_portrait {
  display: none;
}

.loader {
  width: 10rem;
  height: 10rem;
  border: 1rem solid #81DD77;
  border-bottom-color: transparent;
  border-radius: 50%;
  display: inline-block;
  box-sizing: border-box;
  animation: rotation 1s linear infinite;
  position: absolute;
  display: none;
  top: calc(50% - 5rem);
  left: calc(50% - 5rem);
}

.loader_loading {
  width: 7vw;
  height: 7vw;
  display: block;
  margin: 4rem;
  border: 1rem solid #81DD77;
  border-bottom-color: transparent;
  border-radius: 50%;
  display: inline-block;
  box-sizing: border-box;
  animation: rotation 1s linear infinite;
}

.success_text {
  width: 100%;
  margin-top: 2rem;
  width: fit-content;
  text-align: center;
}

.last_words {
  font-size: 2.4vh;
  line-height: 3vh;
  width: fit-content;
  text-align: center;
  text-decoration: underline;
  margin-top: 10rem;
}

.shake {
  animation: shake 300ms;
}

@keyframes shake {
  25%, 75% {
    transform: translateX(5px);
  }
  50% {
    transform: translateX(-5px);
  }
}

@keyframes rotation {
  0% {
      transform: rotate(0deg);
  }
  100% {
      transform: rotate(360deg);
  }
} 

@keyframes drop_ball {
  0% {
    top: -100vh;
  }
  50% {
    top: 0;
  }
  70% {
    top: -5rem;
  }
  100% {
    top: -1rem;
  }
}

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


.blue_left {
  left: 2rem;
  animation-delay: 0ms;
  z-index: 1;
}

.blue_right{
  right: 10rem;
  animation-delay: 170ms;
  z-index: 1;
}

.green_left {
  left: 14rem;
  animation-delay: 300ms;
  z-index: 1;
}

.green_right {
  right: 3rem;
  animation-delay: 150ms;
  z-index: 1;
}

.pink_left {
  left: 20rem;
  animation-delay: 250ms;
  z-index: 1;
}

.pink_right {
  right: 23rem;
  animation-delay: 350ms;
  z-index: 2;
}

@media (orientation: landscape) and (max-width: 1440px) {
  .hanging_ball {
    width: 15rem;
    height: auto;
  }

  .blue_left {
    left: 2rem;
  }
  
  .blue_right{
    right: 7rem;
  }
  
  .green_left {
    left: 12rem;
  }
  
  .green_right {
    right: 2rem;
  }
  
  .pink_left {
    left: 18rem;
  }
  
  .pink_right {
    right: 18rem;
  }
}

@media (orientation: landscape) and (max-width: 1240px) {
  .hanging_ball {
    width: 10rem;
    height: auto;
  }

  .blue_left {
    left: 1rem;
  }
  
  .blue_right{
    right: 5rem;
  }
  
  .green_left {
    left: 8rem;
  }
  
  .green_right {
    right: 2rem;
  }
  
  .pink_left {
    left: 11rem;
  }
  
  .pink_right {
    right: 12rem;
  }
}

@media (orientation: landscape) and (max-width: 1060px) {
  .hanging_ball {
    width: 12rem;
    height: auto;
  }

  .blue_left {
    left: 1rem;
  }
  
  .blue_right{
    right: 5rem;
  }
  
  .green_left {
    display: none;
  }
  
  .green_right {
    right: 2rem;
  }
  
  .pink_left {
    left: 5rem;
  }
  
  .pink_right {
    display: none;
  }
}

@media (orientation: landscape) and (max-width: 880px) {
  .hanging_ball {
    display: none;
  }
}

@media (orientation: landscape) and (max-height: 750px) {
  .form_wrap {
    align-items: start;
  }
}

@media (orientation: portrait) {
  .hanging_ball_portrait {
    display: block;
    width: 17vw;
    height: auto;
    position: absolute;
    z-index: 0;
    transform-origin: top center;
    animation: 
    drop_ball 800ms ease-out 1s forwards,
    bim_bam 1s ease-in-out alternate-reverse infinite;
    top: -100vh;
  }

  .green_portrait {
    left: 56vw;
  }

  .blue_portrait {
    left: 38vw;
  }

  .pink_portrait {
    left: 26vw;
  }

  .hanging_ball {
    display: none;
  }

  .form_container .nota, 
  .success_container .nota {
    top: 0rem;
    left: -13rem;
  }

  .loading_container .nota {
    top: 12rem;
    left: -11rem;
  }
  
  .form_container .vlocka_1, 
  .success_container .vlocka_1 {
    width: 27rem;
    top: -14rem;
    right: -16rem;
  }

  .loading_container .vlocka_1 {
    top: -9rem;
    right: -16rem;
  }
  
  .form_container .vlocka_2, 
  .success_container .vlocka_2 {
    top: 20rem;
  }

  .loading_container .vlocka_2 {
    top: 30rem;
  }
  
  .loading_container .vlocka_3 {
    top: 55rem;
    right: -11rem;
  }
}

@media (orientation: portrait) and (max-width: 768px) {
  .loading_container .nota {
    top: 10rem;
    left: -16rem;
    width: 25rem;
  }

  .loading_container .vlocka_1 {
    width: 25rem;
    top: -6rem;
    right: -16rem;
  }

  .loading_container .vlocka_2 {
    top: 25rem;
  }
  
  .loading_container .vlocka_3 {
    top: 45rem;
    right: -10rem;
  }
}

@media (orientation: portrait) and (max-width: 645px) {
  .form_container .nota, 
  .success_container .nota {
    top: 0rem;
    left: -13rem;
  }

  .loading_container .nota {
    width: 22rem;
    top: 9rem;
    left: -11rem;
  }
  
  .form_container .vlocka_1, 
  .success_container .vlocka_1 {
    width: 27rem;
    top: -14rem;
    right: -16rem;
  }

  .loading_container .vlocka_1 {
    width: 25rem;
    top: -10rem;
    right: -13rem;
  }
  
  .form_container .vlocka_2, 
  .success_container .vlocka_2 {
    top: 20rem;
  }

  .loading_container .vlocka_2 {
    top: 25em;
  }
  
  .loading_container .vlocka_3 {
    display: none;
  }
}  

@media (orientation: portrait) and (max-width: 535px) {
  .green_left {
    transform: translateY(-30vw);
  }

  .blue_left {
    left: 38vw;
    transform: translateY(-8vw);
    z-index: 1;
  }

  .pink_right {
    right: 57vw;
    transform: translateY(-10vw);
  }

  .form_container .nota, 
  .success_container .nota {
    width: 17rem;
    top: 6rem;
    left: -7rem;
  }

  .loading_container .nota {
    width: 17rem;
    top: 16rem;
    left: -7rem;
  }
  
  .form_container .vlocka_1, 
  .success_container .vlocka_1 {
    display: none;
  }

  .loading_container .vlocka_1 {
    display: none;
  }
  
  .form_container .vlocka_2, 
  .success_container .vlocka_2  {
    top: 21rem;
    right: -5rem;
  }
 
  .loading_container .vlocka_2  {
    top: 32rem;
    right: -5rem;
  }
  
  .form_container .vlocka_3, 
  .success_container .vlocka_3 {
    top: 0rem;
    right: -12rem;
    display: block;
  }

  .loading_container .vlocka_3 {
    top: 0rem;
    right: -12rem;
    display: block;
  }

  .last_words {
    font-size: 4vw;
    line-height: 5vw;
  }

  .success_container {
    margin-bottom: 3rem;
  }
}

@media screen and (max-width: 768px) {
  .form_container,
  .loading_container,
  .success_container {
    width: 70%;
    max-width: 100%;
    /* padding: 5rem 0; */
  }

  .form_heading,
  .loading_heading,
  .success_heading {
    font-size: 4.5rem;
    line-height: 4.5rem;
  }

  .loading_container h4,
  #second_song {
    font-size: 2.5rem;
    line-height: 2.5rem;
    width: fit-content;
    text-align: center;
  }
  
  .form_text,
  .loading_text,
  .success_text {
    font-size: 1.75rem;
    line-height: 2rem;
    margin-top: 1.5rem;
  }

  label, input {
    font-size: 2.5rem;
    line-height: 2.5rem;
  }

  #generate_btn,
  #download_btn,
  .create_link {
    width: 18rem;
    height: 5rem;
    font-size: 2.25rem;
    line-height: 2.25rem;
  }
  
}

@media screen and (max-width: 645px) {
  .form_container,
  .loading_container,
  .success_container {
    width: 85%;
  }

  #form {
    margin-top: 2rem;
  }

  .form_btns {
    margin-top: 2rem;
  }
}

@media screen and (max-width: 535px) {
  .form_heading,
  .loading_heading,
  .success_heading {
    font-size: 4rem;
    line-height: 4rem;
  }

  .loading_container h4,
  #second_song {
    font-size: 2rem;
    line-height: 2rem;
    width: fit-content;
    text-align: center;
  }
  
  .form_text,
  .loading_text,
  .success_text {
    font-size: 1.5rem;
    line-height: 1.75rem;
  }

  #form {
    margin-top: 3rem;
  }

  .input_wrap {
    padding: 0.5rem 0;
    margin-bottom: 0.5rem;
    margin-top: 0.5rem;
  }

  label, input {
    font-size: 2rem;
    line-height: 2rem;
  }

  input {
    margin-top: .5rem;
  }

  
  .form_btns {
    margin-top: 4rem;
  }

  #generate_btn,
  #download_btn,
  .create_link {
    width: 17rem;
    height: 4.5rem;
    font-size: 2rem;
    line-height: 2rem;
  }
}

@media screen and (max-width: 470px) {
  #form {
    margin-top: 2rem;
  }

  #lazy_form {
    margin-top: 3rem;
  }

  .loader_loading {
    margin: 2rem;
    border: 0.5rem solid #81DD77;
    border-bottom-color: transparent;
  }

  .form_heading,
  .loading_heading,
  .success_heading {
    font-size: 3rem;
    line-height: 3rem;
  }

  .loading_container h4,
  #second_song {
    font-size: 1.8rem;
    line-height: 1.8rem;
    width: fit-content;
    text-align: center;
  }

  .form_text,
  .loading_text,
  .success_text {
    font-size: 1.6rem;
    line-height: 1.9rem;
  }

  .success_container,
  .loading_container {
    width: 90%;
  }

  .success_heading {
    font-size: 10vw;
  }

  .success_container .song_title {
    margin-top: 4rem;
  }

  .second_song {
    margin-top: 4rem;
  }
  
  .last_words {
    bottom: 3rem;
  }
}

@media screen and (max-width: 413px) {
  .form_container {
    width: 80%;
  }

  .success_heading {
    font-size: 10vw;
  }

  .success_text{
    font-size: 1.6rem;
    line-height: 2rem;
  }

  .second_song {
    margin-top: 4rem;
  }

  label, input {
    font-size: 1.8rem;
    line-height: 2rem;
  }

  input {
    margin-top: .5rem;
  }

  #generate_btn,
  #download_btn,
  .create_link {
    width: 16.6rem;
    height: 4.6rem;
    font-size: 2rem;
    line-height: 2rem;
  }
}

/* ===================== BUTTONS ===================== */

#start_btn {
  display: flex; 
  align-items: center;
  position: relative;
}

.start_triad {
  height: 22rem;
  width: auto;
  position: relative;
  animation: push .5s infinite 0.5s;
}

.start_arrow {
  height: 15rem;
  width: auto;
  position: absolute;
  right: -2rem;
  bottom: -1rem;
  animation: click .5s infinite;
}

#start_btn:hover .start_triad, 
#start_btn:active .start_triad {
  animation: push .25s infinite .25s;
}

#start_btn:hover .start_arrow,
#start_btn:active .start_arrow {
  animation: click .25s infinite;
}

#next_btn_1-1, 
#next_btn_1-2, 
#next_btn_1-3, 
#next_btn_2,
#download_btn_2 {
  font-size: 2vh;
  line-height: 2vh;
  color: #1A1A1A;
  position: relative;
  border: 2px solid #1A1A1A;
}

#next_btn_1-1, 
#next_btn_1-2,
#next_btn_1-3 {
  width: 18vh;
  height: 5vh;
  top: calc(50% - (5vh / 2));
  left: calc(50% - (18vh / 2));
  margin-top: 28vh;
  opacity: 0;
  position: absolute;
}

#next_btn_1-1,
#next_btn_1-2 {
  z-index: 1;
}

#next_btn_1-2 {
  z-index: 1;
  opacity: 0;
  display: none;
}

#next_btn_1-1:hover, 
#next_btn_1-1:active, 
#next_btn_1-2:hover, 
#next_btn_1-2:active {
  border: 2px solid transparent;
  background: #F2F0E4;
}

#next_btn_1-3:hover, 
#next_btn_1-3:active {
  border: 2px solid transparent;
  color: #F2F0E4;
  background: #81DD77;
}

#download_btn_2 {
  width: 18vh;
  height: 5vh;
  margin-top: 26vh;
  position: absolute;
  visibility: hidden;
  transform: scale(0);
}

#next_btn_2 {
  width: 18vh;
  height: 5vh;
  margin-top: 40vh;
  position: absolute;
  visibility: hidden;
  transform: scale(0);
}


#play_btn {
  position: absolute;
  background-image: url('/images/button_preklik.svg');
  background-size: cover;
  background-position: center;
  width: 15vh;
  height: 15vh;
  left: calc(50% - (15vh / 2));
  top: calc(50% - (15vh / 2));
  margin-top: 28vh;
  display: none;
  opacity: 0;
  transition: transform 0.5s ease-out;
}

#play_btn.bounce {
  opacity: 1;
  animation: bounce 500ms ease 1s forwards;
}

@keyframes bounce {
  0% {
      transform: scale(1);
  }
  30% {
      transform: scale(1.2);
  }
  50% {
      transform: scale(0.9);
  }
  70% {
      transform: scale(1.1);
  }
  100% {
      transform: scale(1);
  }
}

#play_btn:hover {
  background-image: url('/images/button_zaklad.svg');
  width: 15vh;
  left: calc(50% - (15vh / 2));
}

#generate_btn,
#lazy_btn,
#download_btn,
.create_link {
  width: 19.5rem;
  height: 5.4rem;
  font-size: 2.5rem;
  line-height: 2.5rem;
  border: 2px solid #1A1A1A;
  position: relative;
  align-self: center;
  margin-top: 1rem;
}

.create_link {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}


#download_btn {
  margin-top: 5rem;
}

#lazy_btn {
  width: 16rem;
  height: 4rem;
  font-size: 2rem;
  line-height: 2rem;
  border: 2px solid #1A1A1A;
  position: relative;
  align-self: center;
  margin-top: 1rem;
}

#generate_btn:hover, 
#generate_btn:active, 
#next_btn_2:hover,
#next_btn_2:active,
#lazy_btn:hover,
#lazy_btn:active,
#download_btn:hover, 
#download_btn:active,
#download_btn_2:hover,
#download_btn_2:active,
.create_link:hover,
.create_link:active {
  border: 2px solid transparent;
  background-color: #81DD77;
  color: #F2F0E4;
}

@media (orientation: portrait) {
  #next_btn_1-1,
  #next_btn_1-2,
  #next_brn_1-3 {
    margin-top: 28vw;
  }

  #play_btn,
  #next_btn_1-3 {
    margin-top: 23vw;
  }

  #download_btn_2 {
    margin-top: 36vw;
  }

  #next_btn_2 {
    margin-top: 57vw;
  }
}

@media (orientation: landscape) and (max-height: 500px) {
  #player {
    margin-top: 1rem;
  }

  #next_btn_1-1, 
  #next_btn_1-2, 
  #next_btn_1-3, 
  #next_btn_2,
  #download_btn_2 {
    font-size: 2.75vh;
    line-height: 2.75vh;
  }

  #download_btn_2 {
    margin-top: 32vh;
  }
 
  #next_btn_2 {
    margin-top: 45vh;
  }
}

/* ===================== KEYFRAMES ===================== */
@keyframes push {
  0% {
      transform: scale(.95);
  }
  100% {
      transform: scale(1);
  }
}

@keyframes click {
  0% {
      transform: scale(.85);
  }
  100% {
      transform: scale(1);
  }
}

@keyframes bgrnd_anim{
  100% {
    background-position: 0 0;
  }
  0% {
    background-position: 0 8.05vw;
  }
}

@keyframes bgrnd_anim_portrait {
  100% {
    background-position: 0 0;
  }
  0% {
    background-position: 0 12.05vw;
  }
}

@keyframes black_rotate {
  from {
    transform: rotate(0deg) scale(1.1);
  }
  to {
    transform: rotate(360deg) scale(1.1);
  }
}

@keyframes black_rotate_portrait {
  from {
    transform: rotate(90deg) scale(2);
  }
  to {
    transform: rotate(450deg) scale(2);
  }
}


@keyframes black_stoprotate {
  from {
    transform: rotate(0deg) scale(1.1);
  }
  to {
    transform: rotate(360deg) scale(1.1);
  }
}

@keyframes black_stoprotate_portrait {
  from {
    transform: rotate(90deg) scale(2);
  }
  to {
    transform: rotate(450deg) scale(2);
  }
}

@keyframes black_comein {
  0% {
    transform: rotate(0deg) scale(0);
  }
  100% {
    transform: rotate(360deg) scale(1.1);
  }
}

@keyframes black_comein_portrait {
  0% {
    transform: rotate(90deg) scale(0);
  }
  100% {
    transform: rotate(450deg) scale(2);
  }
}

@keyframes flower_zoom {
  from {
    transform: rotate(0deg) scale(0);
  }
  to {
    transform: rotate(-360deg) scale(100%);
  }
}

@keyframes flower_unzoom {
  to {
    transform: rotate(0deg) scale(0);
  }
  from {
    transform: rotate(-360deg) scale(100%);
  }
}

@keyframes show_btn {
  from {
    visibility: visible;
    transform: scale(0);
  }
  to {
    visibility: visible;
    transform: scale(1);
  }
}

@keyframes fall {
  100% {
    top: calc(100vh + 40vw);
  }
}

@keyframes black_left_open {
  0% {
    left: 0;
  }
  100% {
    left: -36vh;
  }
}

@keyframes black_right_open {
  0% {
    left: 0;
  }
  100% {
    left: 36vh;
  }
}

@keyframes black_left_open_full {
  0% {
    left: -43vh;
  }
  100% {
    left: -100vw;
  }
}

@keyframes black_right_open_full {
  0% {
    left: 43vh;
  }
  100% {
    left: 100vw;
  }
}

@keyframes black_left_open_slow {
  0% {
    left: -36vh;
  }
  100% {
    left: -43vh;
  }
}

@keyframes black_right_open_slow {
  0% {
    left: 36vh;
  }
  100% {
    left: 43vh;
  }
}

@keyframes black_left_open_portrait {
  0% {
    left: 0;
  }
  100% {
    left: -10vw;
  }
}

@keyframes black_right_open_portrait {
  0% {
    left: 0;
  }
  100% {
    left: 10vw;
  }
}

@keyframes black_left_open_full_portrait {
  0% {
    left: -20vw;
  }
  100% {
    left: -100vh;
  }
}

@keyframes black_right_open_full_portrait {
  0% {
    left: 20vw;
  }
  100% {
    left: 100vh;
  }
}

@keyframes black_left_open_slow_portrait {
  0% {
    left: -10vw;
  }
  100% {
    left: -17vw;
  }
}

@keyframes black_right_open_slow_portrait {
  0% {
    left: 10vw;
  }
  100% {
    left: 17vw;
  }
}

@keyframes black_full_hide {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}

@keyframes comein {
  0% {
    transform: scale(0);
  }
  100% {
    transform: scale(1);
  }
}

@keyframes comeout {
  100% {
    transform: scale(0);
  }
  0% {
    transform: scale(1);
  }
}

@keyframes star_zoom {
  from {
    transform: scale(1);
  }
  to {
    transform: scale(5);
  }
}





