@font-face {
  font-family: "Mona Sans";
  src: url("https://assets.codepen.io/64/Mona-Sans.woff2")
      format("woff2 supports variations"),
    url("https://assets.codepen.io/64/Mona-Sans.woff2")
      format("woff2-variations");
  font-weight: 100 1000;
}

@property --bg-1-x {
  syntax: "<number>";
  inherits: true;
  initial-value: 0;
}

@property --bg-2-x {
  syntax: "<number>";
  inherits: true;
  initial-value: 0;
}
@property --bg-2-y {
  syntax: "<number>";
  inherits: true;
  initial-value: 0;
}
@property --bg-3-x {
  syntax: "<number>";
  inherits: true;
  initial-value: 0;
}
@property --bg-3-y {
  syntax: "<number>";
  inherits: true;
  initial-value: 0;
}

:root {
  --bg-color: hsl(240deg 10% 12%);
  --bg-grain: url("https://assets.codepen.io/64/svgNoise2.svg");
  --bg-grain: url("data:image/svg+xml,%3Csvg viewBox='0 0 600 600' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");

  --shadow-size: max(140px, 40vw);
  --shadow-size-fallback: 40vw;
  --shadow-blur: 60;

  --color-1: #6328da;
  --color-2: #ff1bf1;
  --color-3: #008cea;

  --bg-1-x: 0;
  --bg-1-y: 0;
  --bg-2-x: 0;
  --bg-2-y: 0;
  --bg-3-x: 0;
  --bg-3-y: 0;
}

@supports (color: color(display-p3 1 1 1)) {
  :root {
    --color-1: color(display-p3 0.36 0.17 0.82);
    --color-2: color(display-p3 0.95 0.04 0.95);
    --color-3: color(display-p3 0.01 0.53 0.99);
  }
}

@media (min-width: 960px) {
  :root {
    --shadow-size: max(72px, 25vw);
    --shadow-size-fallback: 25vw;
    --shadow-blur: 80;
  }
}

* {
  box-sizing: border-box;
  outline: calc(var(--debug) * 1px) dashed red;

  &:before,
  &:after {
    outline: calc(var(--debug) * 1px) dashed red;
  }
}

html,
body {
  width: 100%;
  height: 100%;
  padding: 0;
  margin: 0;
}

body {
  font-family: "Mona Sans", sans-serif;
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  background: var(--bg-color);
  z-index: 1;
  position: relative;

  &:before {
    content: "";
    position: absolute;
    display: block;
    width: 100%;
    height: 100%;
    z-index: 1;
    background: radial-gradient(
        circle var(--shadow-size, var(--shadow-size-fallback)) at 20vw 0,
        var(--color-1, red) 100%,
        transparent 0
      ),
      radial-gradient(
        circle var(--shadow-size, var(--shadow-size-fallback)) at 100vw 0,
        var(--color-2, red) 100%,
        transparent 0
      ),
      radial-gradient(
        circle calc(var(--shadow-size, var(--shadow-size-fallback)) * 1.2) at
          50vw 115vh,
        var(--color-3, red) 100%,
        transparent 0
      );

    top: 0;
    left: 0;
    opacity: 0.5;
    filter: blur(calc(var(--shadow-blur) * 1px));
    mix-blend-mode: hue;
  }

  &:after {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    filter: contrast(145%) brightness(650%) invert(100%);
    mix-blend-mode: screen;
    background: var(--bg-grain);
    background-size: 500px;
  }
}
.gradient-section-footer {
  width: 100%;
  height: 30vh;
  position: relative;

&:before {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  z-index: 1;
  background: radial-gradient(
      circle var(--shadow-size, var(--shadow-size-fallback)) at 20vw 0,
      var(--color-1, red) 100%,
      transparent 0
    ),
    radial-gradient(
      circle var(--shadow-size, var(--shadow-size-fallback)) at 100vw 0,
      var(--color-2, red) 100%,
      transparent 0
    ),
    radial-gradient(
      circle calc(var(--shadow-size, var(--shadow-size-fallback)) * 1.2) at
        50vw 115vh,
      var(--color-3, red) 100%,
      transparent 0
    );

  top: 0;
  left: 0;
  opacity: 0.5;
  filter: blur(calc(var(--shadow-blur) * 1px));
  mix-blend-mode: hue;
}

&:after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  filter: contrast(145%) brightness(650%) invert(100%);
  mix-blend-mode: screen;
  background: var(--bg-grain);
  background-size: 500px;
}

}
.gradient-section {
    width: 100%;
    height: 100vh;
    position: relative;

  &:before {
    content: "";
    position: absolute;
    display: block;
    width: 100%;
    height: 100%;
    z-index: 1;
    background: radial-gradient(
        circle var(--shadow-size, var(--shadow-size-fallback)) at 20vw 0,
        var(--color-1, red) 100%,
        transparent 0
      ),
      radial-gradient(
        circle var(--shadow-size, var(--shadow-size-fallback)) at 100vw 0,
        var(--color-2, red) 100%,
        transparent 0
      ),
      radial-gradient(
        circle calc(var(--shadow-size, var(--shadow-size-fallback)) * 1.2) at
          50vw 115vh,
        var(--color-3, red) 100%,
        transparent 0
      );

    top: 0;
    left: 0;
    opacity: 0.5;
    filter: blur(calc(var(--shadow-blur) * 1px));
    mix-blend-mode: hue;
  }

  &:after {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    filter: contrast(145%) brightness(650%) invert(100%);
    mix-blend-mode: screen;
    background: var(--bg-grain);
    background-size: 500px;
  }

  }
  
.activado2 {
  color: white;
  font-size: max(10px, 2vw);
  mix-blend-mode: lighten;
  font-weight: bolder;
  font-stretch: 110%;
  letter-spacing: -0.03rem;
  background: var(--bg-grain),
    conic-gradient(
      from 140deg at calc(var(--bg-1-x) * 1%) 90%,
      hsl(30deg 100% 5%),
      hsl(238deg 100% 5%),
      hsl(60deg 100% 99%),
      hsl(248deg 100% 31%),
      hsl(315deg 64% 51%),
      hsl(25deg 95% 61%),
      hsl(55deg 100% 75%),
      hsl(60deg 100% 99%),
      hsl(199deg 94% 74%),
      hsl(236deg 95% 28%),
      hsl(244deg 100% 4%)
    ),
    radial-gradient(
      ellipse at calc(var(--bg-2-x) * 1%) calc(var(--bg-2-y) * 1%),
      white 12%,
      transparent 35%
    ),
    radial-gradient(
      ellipse at calc(var(--bg-3-x) * 1%) calc(var(--bg-3-y) * 1%),
      hsl(212deg 94% 68%),
      transparent 35%
    );
  background-repeat: repeat;
  background-size: 500px, cover;
  background-blend-mode: color-burn;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  opacity: 1;
  animation: bg 20s linear infinite alternate;
}
.activado {
  color: white;
  font-size: max(32px, 8vw);
  mix-blend-mode: lighten;
  font-weight: bolder;
  font-stretch: 110%;
  letter-spacing: -0.98rem;
  background: var(--bg-grain),
    conic-gradient(
      from 140deg at calc(var(--bg-1-x) * 1%) 90%,
      hsl(30deg 100% 5%),
      hsl(238deg 100% 5%),
      hsl(60deg 100% 99%),
      hsl(248deg 100% 31%),
      hsl(315deg 64% 51%),
      hsl(25deg 95% 61%),
      hsl(55deg 100% 75%),
      hsl(60deg 100% 99%),
      hsl(199deg 94% 74%),
      hsl(236deg 95% 28%),
      hsl(244deg 100% 4%)
    ),
    radial-gradient(
      ellipse at calc(var(--bg-2-x) * 1%) calc(var(--bg-2-y) * 1%),
      white 12%,
      transparent 35%
    ),
    radial-gradient(
      ellipse at calc(var(--bg-3-x) * 1%) calc(var(--bg-3-y) * 1%),
      hsl(212deg 94% 68%),
      transparent 35%
    );
  background-repeat: repeat;
  background-size: 500px, cover;
  background-blend-mode: color-burn;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  opacity: 1;
  animation: bg 20s linear infinite alternate;
}
aside {
  width: 100%;
  height: 100%;
  margin-top: 10rem;
  top: 0;
  left: 0;
  display: grid;
  place-items: center;
  z-index: 2;

  h1 {
    color: white;
    font-size: max(72px, 15vw);
    mix-blend-mode: lighten;
    font-weight: bolder;
    font-stretch: 110%;
    letter-spacing: -0.06em;
    background: var(--bg-grain),
      conic-gradient(
        from 140deg at calc(var(--bg-1-x) * 1%) 90%,
        hsl(30deg 100% 5%),
        hsl(238deg 100% 5%),
        hsl(60deg 100% 99%),
        hsl(248deg 100% 31%),
        hsl(315deg 64% 51%),
        hsl(25deg 95% 61%),
        hsl(55deg 100% 75%),
        hsl(60deg 100% 99%),
        hsl(199deg 94% 74%),
        hsl(236deg 95% 28%),
        hsl(244deg 100% 4%)
      ),
      radial-gradient(
        ellipse at calc(var(--bg-2-x) * 1%) calc(var(--bg-2-y) * 1%),
        white 12%,
        transparent 35%
      ),
      radial-gradient(
        ellipse at calc(var(--bg-3-x) * 1%) calc(var(--bg-3-y) * 1%),
        hsl(212deg 94% 68%),
        transparent 35%
      );
    background-repeat: repeat;
    background-size: 500px, cover;
    background-blend-mode: color-burn;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    opacity: 1;
    animation: bg 20s linear infinite alternate;
  }
  p {
    color: white;
    font-size: max(9px, 1.01vw);
    mix-blend-mode: lighten;
    font-weight: bolder;
    font-stretch: 110%;
    letter-spacing: -0.04em;
    padding: 1rem 3rem;
    max-width: 1000px;
    justify-content: center;
    text-align: center;
  }
  a {
    padding: 1rem;
    cursor: pointer;
    z-index: 2;
    background-color: white;
    color: black;
    margin-bottom: 3.1rem;
  }
}

@keyframes bg {
  0% {
    --bg-1-x: calc(50 / 2);
    --bg-2-y: calc(80 / 2);
    --bg-2-x: calc(70 / 2);
    --bg-3-y: calc(40 / 2);
    --bg-3-x: calc(90 / 2);
  }

  25% {
    --bg-1-x: 30;
    --bg-2-y: 50;
    --bg-2-x: 80;
    --bg-3-y: 20;
    --bg-3-x: 70;
  }

  50% {
    --bg-1-x: 10;
    --bg-2-y: 40;
    --bg-2-x: 30;
    --bg-3-y: 80;
    --bg-3-x: 50;
  }

  75% {
    --bg-1-x: 70;
    --bg-2-y: 10;
    --bg-2-x: 50;
    --bg-3-y: 30;
    --bg-3-x: 40;
  }

  100% {
    --bg-1-x: calc(50 / 2);
    --bg-2-y: calc(80 / 2);
    --bg-2-x: calc(70 / 2);
    --bg-3-y: calc(40 / 2);
    --bg-3-x: calc(90 / 2);
  }
}
