/* Blurry effect — to move to a more specific css file! */
/* Credit to this CodePen from Jason Hibbs: https://codepen.io/jasonhibbs/pen/dyKEdvY */

:root {
    --blob-size: 600px;
    --blob-speed: 4s;
    --blob-speed-scale: calc(0.75 * var(--blob-speed));
    --blob-speed-move: calc(1 * var(--blob-speed));
    --blob-speed-rotate: calc(2 * var(--blob-speed));
    --blob-opacity: 0.5;
    --blob-blur: 50px;
    --blob-color-1: hsl(284, 96%, 67%); /* hsl(216deg, 100%, 55%); */
    --blob-color-2: hsl(16, 100%, 58%); /* hsl(304deg, 100%, 55%); */
    --blob-color-3: hsl(35, 100%, 58%);/* hsl(182deg, 100%, 55%); */
  }
  
  .blobs {
    position: relative;
    filter: blur(var(--blob-blur));
    top: -90px;
    mix-blend-mode: screen;
  
    * {
      backface-visibility: hidden;
      transform-origin: 50% 50%;
      transform-style: preserve-3d;
      will-change: transform;
      /* animation-play-state: paused !important; */
    }
  
    &:after {
      /* content: ''; */
      position: relative;
      display: block;
      width: 22rem;
      height: 38rem;
      background: hsla(0deg, 0%, 72%, 0.08);
      backdrop-filter: blur(8rem) saturate(1.6);
      border-radius: 1.5rem;
      z-index: 2;
    }
  }
  
  .blob {
    width: var(--blob-size);
    height: calc(0.25 * var(--blob-size));
    background-color: var(--blob-color-1);
    border-radius: 100%;
    opacity: var(--blob-opacity);
    mix-blend-mode: screen; /* Previously multiply. Doesn't seem to have any effect. */
    animation: blob ease-in-out var(--blob-speed-scale) infinite;
  
    .blobs > :nth-child(2) & {
      background-color: var(--blob-color-2);
      animation-delay: calc(-0.8 * var(--blob-speed-scale));
    }
  
    .blobs > :nth-child(3) & {
      background-color: var(--blob-color-3);
      animation-delay: calc(-0.2 * var(--blob-speed-scale));
    }
  }
  
  @keyframes blob {
    0%,
    100% {
      transform: scale(0.8, 2);
    }
    50% {
      transform: scale(1.4, 0.8);
    }
  }
  
  .blob-rotate {
    position: absolute;
    left: 50%;
    top: 50%;
    animation: blob-rotate linear var(--blob-speed-rotate) infinite alternate;
  
    &:nth-child(2) {
      animation-duration: calc(2 * var(--blob-speed-rotate));
      animation-delay: calc(-1.5 * var(--blob-speed-rotate));
    }
  
    &:nth-child(3) {
      animation-direction: alternate-reverse;
      animation-duration: calc(0.8 * var(--blob-speed-rotate));
      animation-delay: calc(-1 * var(--blob-speed-rotate));
    }
  }
  
  @keyframes blob-rotate {
    0% {
      transform: translate3d(-50%, -50%, 0) rotateZ(-28deg);
      transform-origin: 50% 100%;
    }
    100% {
      transform: translate3d(-50%, -50%, 0) rotateZ(28deg);
      transform-origin: 50% 0%;
    }
  }
  
  .blob-move {
    animation: blob-move ease-in-out var(--blob-speed-move) infinite;
  
    .blobs > :nth-child(2) & {
      animation-delay: calc(-0.8 * var(--blob-speed-move));
    }
  
    .blobs > :nth-child(3) & {
      animation-delay: calc(-0.4 * var(--blob-speed-move));
    }
  }
  
  @keyframes blob-move {
    0%,
    100% {
      transform: translateX(30%);
    }
    50% {
      transform: translateX(-30%);
    }
  }
  
  