/* Basic style */
* {
  box-sizing: border-box;
}

body {
  --primary: #fff;
  --secondary: #050840;
  --highlight-primary: #7ce7c9;
  --highlight-secondary: #9d7beb;
  --radius: 0.5rem;
  --pill: 2rem;
  --line: 0.1rem;

  margin: 2rem;
  padding: 0;
  font-family: 'Open Sans', sans-serif;
  font-size: 1rem;
  background: var(--secondary);
}

h1,
h2,
p,
a {
  color: var(--primary)
}

li {
  font-size: 2em;
  display: inline-block;

  a {
    display: inline-block;
    margin: 0.2em;
    padding: 0.4em 0.8em;
    background: var(--secondary);
    color: var(--highlight-primary);
    border: var(--line) solid var(--highlight-primary);
    border-radius: var(--pill);
    font-weight: normal;
    text-decoration: none;

    &:hover,
    &:focus {
      color: var(--primary);
      border-color: var(--primary);
    }
  }
}


/* UI Event Classes */

/* Jump animation on the Design link */
a[href="#design"] {
  position: relative;
  background: var(--highlight-secondary);
  color: var(--secondary);
  border-color: var(--secondary);
}

.jump {
  animation-name: jump;
  animation-timing-function: cubic-bezier(0.28, 0.84, 0.42, 1);
  animation-duration: 1.2s;
  animation-iteration-count: 1;
}

@keyframes jump {
  0% {
    transform: scale(1, 1) translateY(0);
  }

  10% {
    transform: scale(1.1, 0.9) translateY(0);
  }

  30% {
    transform: scale(0.9, 1.1) translateY(-5rem) rotate(10deg);
  }

  50% {
    transform: scale(1.05, 0.95) translateY(0);
  }

  57% {
    transform: scale(1, 1) translateY(-0.5rem) rotate(-2deg);
  }

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

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


/* Hieronder komen jouw animaties en stijlen */
a[href="#frontend"] {}

.frontend {
  animation-name: frontend-animation;
  animation-duration: 1s;
  animation-iteration-count: 1;
}

@keyframes frontend-animation {

  30%,
  60% {
    transform: scale(2);
  }

  45% {
    transform: scale(1.75);
  }

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

/* and */

.translate {
  animation: translate-animation 2s 1;
}

@keyframes translate-animation {
  30% {
    transform: translateX(-5rem);
  }

  60% {
    transform: translateX(5rem);
  }

  100% {
    transform: translateX(0);
  }

}


/* development */
.shake {
  animation: shake-animation 2s 4;
}

@keyframes shake-animation {

  10%,
  30%,
  50%,
  70%,
  90% {
    transform: translateX(1rem) translateY(-1rem);
  }

  20%,
  40%,
  60%,
  80%,
  100% {
    transform: translateX(-1rem) translateY(1rem);

  }
}

/* sprint 5 */

.inFocus {
  animation: inFocus-animation 2s infinite;
  transition: ease-in-out;
}

.outFocus {
  animation: outFocus-animation .3s 1;
  transition: ease-in-out;

}

@keyframes inFocus-animation {

  20%,
  50%,
  80% {
    background-color: blue;
  }

  30% {
    background-color: aqua;
  }

  40% {
    background-color: aquamarine;
  }

  60% {
    background-color: cornflowerblue;
  }

  70% {
    background-color: deepskyblue;
  }

  90% {
    background-color: lightskyblue;
  }
}

@keyframes outFocus-animation {

  20%,
  50%,
  80% {
    background-color: red;
  }

  30% {
    background-color: brown;
  }

  40% {
    background-color: crimson;
  }

  60% {
    background-color: orangered;
  }

  70% {
    background-color: darkred;
  }

  90% {
    background-color: lightcoral;
  }
}

/* geen fix styling */

/* The */

.rotate {
  animation: rotate-animation 3s 1;
}

@keyframes rotate-animation {
  25% {
    rotate: 15deg;
  }

  50% {
    rotate: 90deg;
  }

  75% {
    rotate: 45deg;
  }

  100% {
    rotate: 360deg;
  }
}

/* flow */

a[href="#flow"] {
  transition: ease .2s;
  --progress: 0;
  transform: rotate3d(2, 1, 0, calc(var(--progress) * 180deg));
}


/* User */
a[href="#user"] {
  --user-color: transparant;
  background-color: var(--user-color);
  transition: ease-in-out;
}

.grow {
  transform: scale(1.4);
}

/* interface */

a[href="#interface"] {
  background-color: red;
  transition: linear .1s;
  scale: var(--balloonSize);
}

@keyframes balloon-animation {
  0% {}

  100% {
    transform: scale(3);
  }


}

/* events */
a[href="#events"] {
  transition: linear .1s;
  font-size: clamp(5px, var(--font-size), 500px);
}


/* interaction */

a[href="#interaction"] {
  --x: 50%;
  --y: 50%;
  background: radial-gradient(circle at var(--x) var(--y),
      white,
      black 15%);
}



/* advanced */

/* user flow */

a[href="#user-flow"] {}

.userFlowAnimatie {
  animation: valAnimatie 5s;
}

@keyframes valAnimatie {

  5%,
  10%,
  15%,
  20% {
    transform: translateY(2px) translateX(-2px);

  }

  2.5%,
  7.5%,
  12.5%,
  17.5% {
    transform: translateY(-2px) translateX(2px);
  }

  100% {
    transform: translateY(100vh) rotate(90deg);

  }
}

/* wireflow */

a[href="#wireflow"] {
  overflow: hidden;
  position: relative;
  --gradiant-position: 0%;

  &::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -200%;
    width: 200%;
    height: 200%;
    background: linear-gradient(90deg,
        transparent 20%,
        transparent 10%,
        violet);
    transition: 1s linear;
    opacity: 0;
    pointer-events: none;
  }

  &::before {
    opacity: 1;
    transform: translatex(var(--gradiant-position));
  }

}

/* feedback */

.ten-clicks {
  background-color: red;
}

/* feedforward */

.greyed-out {
  background-color: gray !important;
  text-decoration: line-through;
  color: black;
  pointer-events: none;
}

/* labels */
.motion-class {
  animation: motion-animation 5s;
}


.orientation-class {
  animation: orientation-animation 5s;

}


@keyframes motion-animation {

  0%,
  100% {
    transform: translateX(0) translateY(0);
  }

  10%,
  30%,
  50%,
  70%,
  90% {
    transform: translateX(-15px) translateY(10px);
  }

  15%,
  45%,
  55%,
  85% {
    transform: translateX(15px) translateY(10px);
  }

  20%,
  40%,
  60%,
  80% {
    transform: translateX(15px) translateY(-10px);
  }

}

@keyframes orientation-animation {

  0%,
  70% {
    transform: rotate(0deg);
  }

  50% {
    transform: rotate(360deg);

  }

  100% {
    transform: rotate(360deg);

  }
}

/* states */
a[href="#states"] {
  cursor: grab;
}

.states-clicked {
  position: absolute;
  top: var(--y-states);
  left: var(--x-states);
  user-select: none;
  cursor: grab;
}

.states-moving {
  --y-states: 0;
  --x-states: 0;
  cursor: grabbing;
}


/* navigation */

a[href="#navigation"] {
  --x-nav: 0;
  --y-nav: 0;

  transition: ease-in-out .3s;
  transform: translateY(var(--y-nav)) translateX(var(--x-nav));
}

/* code */

a[href="#code"] {
  --x-code: 0;
  --y-code: 0;

  transition: linear .1s;
  transform: translateY(var(--y-code)) translateX(var(--x-code));
}