@charset "UTF-8";
#btn--yp {
  box-sizing: content-box;
  position: fixed;
  z-index: 9;
  bottom: 1em;
  right: 1em;
  border: solid 1em transparent;
  width: 4.625em;
  height: 3.25em;
  background: url(https://s3-us-west-2.amazonaws.com/s.cdpn.io/2017/icon-yp.svg) 50%/cover content-box;
  font: 16px/1.25 trebuchet ms, sans-serif;
  text-indent: 200vw;
  text-shadow: none;
  filter: grayscale(1) drop-shadow(0 0 1px #e8e0e0);
  transition: 0.5s;
  white-space: nowrap;
}
#btn--yp:before {
  box-sizing: inherit;
  position: absolute;
  left: 0;
  bottom: 100%;
  margin: 1em -0.5em;
  padding: 0.5em;
  width: 100%;
  border-radius: 5px;
  background: #e8e0e0;
  color: #000;
  text-align: center;
  text-decoration: none;
  text-indent: 0vw;
  white-space: normal;
  animation: float 1s ease-in-out infinite alternate;
  content: attr(data-txt);
}
#btn--yp:hover, #btn--yp:focus {
  outline: none;
  filter: grayscale(0) drop-shadow(0 0 1px crimson);
}

@keyframes float {
  to {
    transform: translateY(0.75em);
  }
}
@property --k0 {
  syntax: "<number>";
  initial-value: 0;
  inherits: true;
}
@property --k1 {
  syntax: "<number>";
  initial-value: 0;
  inherits: true;
}
@property --ang {
  syntax: "<angle>";
  initial-value: 0deg;
  inherits: false;
}
@property --x {
  syntax: "<percentage>";
  initial-value: 0%;
  inherits: false;
}
@property --y {
  syntax: "<percentage>";
  initial-value: 0%;
  inherits: false;
}
body, div {
  display: grid;
}

body {
  place-content: center;
  overflow: hidden;
  margin: 0;
  height: 100vh;
  background: #000;
  color: #fff;
  font-size: clamp(1em, 6vw, 2em);
}
body::after {
  padding: 8.5em;
  background: repeating-conic-gradient(from var(--ang) at var(--x) var(--y), #00fffc, #fc00ff, #fffc00, #00fffc 33.333%);
  mix-blend-mode: multiply;
  animation: a 6s infinite;
  animation-name: ang, x, y;
  animation-timing-function: linear, cubic-bezier(0.75, 0.25, 0.75, 0.25), cubic-bezier(0.25, 0.75, 0.25, 0.75);
  content: "";
}

@keyframes ang {
  to {
    --ang: 1turn ;
  }
}
@keyframes x {
  50% {
    --x: 100% ;
  }
}
@keyframes y {
  50% {
    --y: 100% ;
  }
}
div, ::before, ::after {
  grid-area: 1/1;
  place-self: center;
  border-radius: 50%;
}

.load {
  padding: 8.5em;
  background: inherit;
}

.a2d {
  filter: drop-shadow(0 0 0.25em currentcolor) blur(1px);
  animation: r 3s linear infinite;
}

@keyframes r {
  to {
    transform: rotate(1turn);
  }
}
.🔴 {
  --not-i: calc(1 - var(--i));
  --sgn-i: calc(2*var(--i) - 1);
  --full: linear-gradient(currentcolor, currentcolor);
  margin-top: calc(var(--sgn-i)*2*2.125em);
  border: solid 1.25em transparent;
  padding: 0.25em;
  width: 2.5em;
  height: 2.5em;
  transform: rotate(calc(var(--not-i)*.5turn)) scalex(var(--sgn-i));
  background: var(--full) content-box, conic-gradient(transparent calc(var(--k0)*100%), currentcolor 0% calc(var(--k1)*100%), transparent 0%) border-box;
  --mask:
  	var(--full) content-box,
  	var(--full) padding-box,
  	var(--full);
  -webkit-mask: var(--mask);
  -webkit-mask-composite: xor;
  mask: var(--mask);
  mask-composite: exclude;
  animation: a 1.5s linear calc(var(--not-i)*-.5*1.5s) infinite;
  animation-name: k0, k1;
}
.🔴::before, .🔴::after {
  width: 1.25em;
  height: 1.25em;
  transform: rotate(calc(var(--k, var(--k0, 0))*1turn)) translatey(-2.125em);
  opacity: calc(1000*(var(--k1) - var(--k0)));
  background: currentcolor;
  content: "";
}
.🔴::after {
  --k: var(--k1, .35) ;
}

@keyframes k0 {
  0%, 25% {
    --k0: 0 ;
  }
  50% {
    --k0: 0.65 ;
  }
  75%, 100% {
    --k0: 1 ;
  }
}
@keyframes k1 {
  0% {
    --k1: 0 ;
  }
  25% {
    --k1: 0.35 ;
  }
  50%, 100% {
    --k1: 1 ;
  }
}