html {
  scroll-behavior: smooth;
}

* {
  font-family: Arial, sans-serif;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  position: relative;
  /* overflow: hidden; */
  animation: scroll 2.2s linear;
}

img {
  display: block;
  width: 100%;
}

section {
  position: relative;

  width: 100%;
  display: flex;
  justify-content: center;
  height: 100svh;
  /* overflow: hidden; */
}

.container {
  width: 100%;
  max-width: 1140px;
  position: relative;
  padding: 0 32px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.content {
  /* overflow: hidden; */
  display: grid;
  grid-template-rows: min-content;
  height: 100%;
}


footer {}

.section1 {
  overflow: hidden;

  .content {
    place-content: center;
    place-items: center;
  }

  .bg {
    background-image: url(img/bg-02.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: bottom;
    position: absolute;
    width: 100%;
    height: 100%;
    -webkit-animation: kenburns-top 3s ease-out both;
    animation: kenburns-top 2s ease-out both;
  }

  .filter {
    position: absolute;
    background-color: #ffffff;
    width: 100%;
    height: 100%;
    opacity: 0.9;
    filter: blur(10px);
    animation: opacity 1s linear forwards;

  }

  .cut-bars {
    position: absolute;
    width: 100%;
    height: 100%;
    overflow: hidden;
  }

  .bars {
    position: absolute;
    left: 0;
    width: 50%;
    height: 100%;
    background-image: url(img/bar01.png), url(img/bar.png);
    background-repeat: repeat-y, repeat;
    background-position: right, center;
  }

  .left {
    -webkit-animation: open-l 2s ease-in-out both;
    animation: open-l 2s ease-in-out both;
  }

  .right {
    background-image: url(img/bar02.png), url(img/bar.png);
    left: unset;
    right: 0;
    background-position: left, center;

    -webkit-animation: open-r 2s ease-in-out both;
    animation: open-r 2s ease-in-out both;
  }
}

#justin-img {
  /* position: absolute; */
  /* justify-self: center;
  margin-top: auto; */
  width: 100%;
  max-width: 500px;
  filter: drop-shadow(8px 8px 4px #000) drop-shadow(-4px -4px 4px #000);
  -webkit-animation: slide-in-bottom 0.5s cubic-bezier(0.250, 0.460, 0.450, 0.940) 1s both;
  animation: slide-in-bottom 0.5s cubic-bezier(0.250, 0.460, 0.450, 0.940) 1s both;
}

#justin-text {

  margin-top: -32px;
  z-index: 5;
  bottom: 100px;
  justify-self: center;
  max-width: 600px;
  -webkit-animation: puff-in-bottom .7s 1.3s cubic-bezier(0.470, 0.000, 0.745, 0.715) both;
  animation: puff-in-bottom .7s 1.3s cubic-bezier(0.470, 0.000, 0.745, 0.715) both;
}

.section2 {
  background-color: #000;

  .wire {
    position: absolute;
    z-index: 80;
    top: -32px;
    width: 100%;
    height: 100px;
    background-image: url(img/wire2.png);
    background-repeat: repeat-x;
  }

  .wbot {
    top: unset;
    bottom: -64px;
  }
}


.section2,
.section3 {
  max-height: 48vh;
}


.ca {
  color: #fff;
  place-items: center;
}

.spikes {
  position: relative;
  background: #fff;
  height: 50vh;
}

.spikes::after {
  content: '';
  position: absolute;
  right: 0;
  left: -0%;
  top: 100%;
  z-index: 10;
  display: block;
  height: 50px;
  background-size: 50px 100%;
  background-image: linear-gradient(135deg, #fff 25%, transparent 25%), linear-gradient(225deg, #fff 25%, transparent 25%);
  background-position: 0 0;
}

.g-container {
  background-color: #000;
  padding: 32px 0;
  background-image: url(img/bg-01.jpg);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: bottom;
}

.gallery {
  display: grid;
  grid-gap: 10px;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  grid-auto-rows: 200px;
  grid-auto-flow: dense;
  max-width: 1200px;
  margin: 10px auto;
  padding: 0 10px;
}

.gallery__item {
  align-items: center;
  display: flex;
  justify-content: center;
}

.gallery__item>img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.gallery__item--hor {
  grid-column: span 2;
}

.gallery__item--vert {
  grid-row: span 2;
}

.gallery__item--lg {
  grid-column: span 2;
  grid-row: span 2;
}

div.buttons-container {
  height: 100%;
  display: flex;
  flex-direction: column;
  text-align: center;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  gap: 34px;
}

.btn {
  width: 6.5em;
  height: 2.3em;
  margin: 0.5em;
  background: black;
  color: white;
  border: none;
  border-radius: 0.625em;
  font-size: 20px;
  font-weight: bold;
  cursor: pointer;
  position: relative;
  z-index: 1;
  overflow: hidden;
}

.gallery {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 10px;

  ​ .image {
    width: 100%;
  }

  ​ .image img {
    width: 100%;
    height: auto;
  }
}

button.reverse {
  background: white;
  color: black;
}

button:hover {
  color: black;
}

button.reverse:hover {
  color: white;
}

button:after {
  content: "";
  background: white;
  position: absolute;
  z-index: -1;
  left: -20%;
  right: -20%;
  top: 0;
  bottom: 0;
  transform: skewX(-45deg) scale(0, 1);
  transition: all 0.5s;
}

button.reverse:after {
  background: black;
}

button:hover:after {
  transform: skewX(-45deg) scale(1, 1);
  -webkit-transition: all 0.5s;
  transition: all 0.5s;
}

h2 {
  color: #fff;
  text-wrap: nowrap;
  text-align: center;
  margin: 48px 0;
  font-family: 'Ghosteen', sans-serif;

  font-size: clamp(2rem, 4vw + 1rem, 4rem);

  &#follow {
    color: #000;
  }
}

p {
  font-family: 'Onest', sans-serif;
  font-size: clamp(0.875rem, 1vw + 1rem, 2rem);
  text-align: center;
  text-wrap: pretty;
}

#ca {
  font-family: 'Onest', sans-serif;
  font-size: clamp(0.675rem, 3vw, 2rem);
  text-align: center;
  text-wrap: nowrap;
}

@keyframes open-l {
  0% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }

  10% {
    -webkit-transform: translateX(-10px);
    transform: translateX(-10px);
  }

  20% {
    -webkit-transform: translateX(0px);
    transform: translateX(0px);
  }

  30% {
    -webkit-transform: translateX(-10px);
    transform: translateX(-10px);
  }

  100% {
    -webkit-transform: translateX(-1000px);
    transform: translateX(-1000px);
    display: none;
  }
}

@keyframes open-r {
  0% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }

  10% {
    -webkit-transform: translateX(10px);
    transform: translateX(10px);
  }

  20% {
    -webkit-transform: translateX(0px);
    transform: translateX(0px);
  }

  30% {
    -webkit-transform: translateX(10px);
    transform: translateX(10px);
  }

  100% {
    -webkit-transform: translateX(1000px);
    transform: translateX(1000px);
    display: none;
  }
}

@-webkit-keyframes kenburns-top {
  0% {
    -webkit-transform: scale(1) translateY(0);
    transform: scale(1) translateY(0);
    -webkit-transform-origin: 50% 16%;
    transform-origin: 50% 16%;
  }

  100% {
    -webkit-transform: scale(1.25) translateY(-15px);
    transform: scale(1.25) translateY(-15px);
    -webkit-transform-origin: top;
    transform-origin: top;
  }
}

@keyframes kenburns-top {
  0% {
    -webkit-transform: scale(1) translateY(0);
    transform: scale(1) translateY(0);
    -webkit-transform-origin: 50% 16%;
    transform-origin: 50% 16%;
  }

  100% {
    -webkit-transform: scale(1.25) translateY(-15px);
    transform: scale(1.25) translateY(-15px);
    -webkit-transform-origin: top;
    transform-origin: top;
  }
}

@-webkit-keyframes slide-in-bottom {
  0% {
    -webkit-transform: translateY(1000px);
    transform: translateY(1000px);
    opacity: 0;
  }

  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
    opacity: 1;
  }
}

@keyframes slide-in-bottom {
  0% {
    -webkit-transform: translateY(1000px);
    transform: translateY(1000px);
    opacity: 0;
  }

  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
    opacity: 1;
  }
}

@keyframes opacity {
  0% {
    opacity: 0.9;
  }

  100% {
    opacity: 0;
  }
}

@-webkit-keyframes puff-in-bottom {
  0% {
    -webkit-transform: scale(2);
    transform: scale(2);
    -webkit-transform-origin: 50% 100%;
    transform-origin: 50% 100%;
    -webkit-filter: blur(4px);
    filter: blur(4px);
    opacity: 0;
  }

  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
    -webkit-transform-origin: 50% 100%;
    transform-origin: 50% 100%;
    -webkit-filter: blur(0px);
    filter: blur(0px);
    opacity: 1;
  }
}

@keyframes puff-in-bottom {
  0% {
    -webkit-transform: scale(2);
    transform: scale(2);
    -webkit-transform-origin: 50% 100%;
    transform-origin: 50% 100%;
    -webkit-filter: blur(4px);
    filter: blur(4px);
    opacity: 0;
  }

  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
    -webkit-transform-origin: 50% 100%;
    transform-origin: 50% 100%;
    -webkit-filter: blur(0px);
    filter: blur(0px);
    opacity: 1;
  }
}

.add-scrolling {
  overflow: initial;
}

@media (max-width: 768px) {

  .section2,
  .section3 {
    /* height: 40vh; */
  }

  div.buttons-container {
    height: 100%;
    display: flex;
    flex-direction: column;
    text-align: center;
    gap: 0px;
  }

  button {
    margin: 32px;
  }
}