/* font */
:root {
  /* custom font */
  --bs-font-phr: 'Playwrite HR', sans-serif;
  --bs-font-cs: 'Cantarell', serif;
  --bs-font-ms: 'Manjari', system-ui;

  /* custom color */
  --custom-primary-color: #ffb5c0;
  --custom-secondary-color: #fcab82;
  --custom-bg-color: #383749;
  --custom-white: #fdfdfd;
  --custom-tmb: #16161d;
}

html {
  scroll-behavior: smooth;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--bs-font-phr)
}

p {
  font-family: var(--bs-font-cs);
}

a {
  font-family: var(--bs-font-ms);
}

img {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  pointer-events: none;
  -webkit-user-drag: none;
  user-drag: none;
  -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
}

.primary {
  background-color: var(--custom-primary-color);
  color: var(--custom-white);
}

.secondary {
  background-color: var(--custom-secondary-color);
  color: var(--custom-white);
}

.judul-primary {
  color: var(--custom-primary-color)
}

.judul-secondary {
  color: var(--custom-secondary-color)
}

.bg {
  background-color: var(--custom-bg-color);
}

.bg-2 {
  background-color: var(--custom-tmb);
}

.wh {
  color: var(--custom-white);
}

.whImg {
  filter: invert(100%);
  -webkit-filter: invert(100%);
}

.tmb {
  color: var(--custom-white);
  background-color: var(--custom-tmb);
  border-color: var(--custom-tmb);
  font-family: var(--bs-font-phr);
}

.tmb:hover {
  color: var(--custom-tmb);
  background-color: var(--custom-white);
  border-color: var(--custom-white);
  /*glow*/background: linear-gradient(    45deg,    var(--custom-primary-color), var(--custom-secondary-color))
}

.medsos {
  padding: 4vh;
  font-size: 8vh;
  width: 30px;
  text-align: center;
  text-decoration: none;
  border-radius: 50%;
}

.medsos:hover {
  color: var(--custom-secondary-color);
}

.cover {
  width: 100%;
  height: 370px;
  object-fit: cover;
}

.coverContainer {
  width: 100%;
  height: 80%;
  position: relative;
}

@media screen and (min-width: 768px) {
  .cover {
    width: 108%;
  }

  .coverContainer {
    width: 105%;
  }

  .scroll {
    animation-range: entry 1% cover 40vh;
  }

  .imageReveal {
    animation-timeline: view(80% 5%);
  }

  .fadeNaik {
    animation-timeline: view(80% 5%);
  }

  .textBlur {
    animation-timeline: view(80% 5%);
  }

  .fade {
    animation-timeline: view(80% 5%);
  }
}

@media screen and (min-width: 992px) {
  .cover {
    width: 100%;
  }
}

.scroll {
  animation: text-appear both;
  -webkit-animation: text-appear both;
  animation-timeline: view();
  animation-range: entry 5% cover 40vh;
}

@keyframes text-appear {
  from {
    opacity: 0;
    transform: translateY(100px);
    -webkit-transform: translateY(100px);
    -moz-transform: translateY(100px);
    -ms-transform: translateY(100px);
    -o-transform: translateY(100px);
  }
  
  to {
    transform: translateY(0);
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -o-transform: translateY(0);
  }
}

.imageReveal {
  animation: imageReveal both;
  -webkit-animation: imageReveal both;
  animation-timeline: view(90% 5%);
}

@keyframes imageReveal {
  from {
    filter: saturate(0) contrast(4) brightness(.1) blur(5px);
    -webkit-filter: saturate(0) contrast(4) brightness(.1) blur(5px);
    opacity: 0;
    scale: .95;
    translate: 0 4rem;
  }

  to {
    filter: none;
    -webkit-filter: none;
    opacity: 1;
    scale: 1;
    translate: 0 0;
  }
}

.fadeNaik {
  animation: fadeNaik both;
  -webkit-animation: fadeNaik both;
  animation-timeline: view(90% 5%);
}

@keyframes fadeNaik {
  from {
    opacity: 0;
    transform: translateY(10px) scale(0.5);
    -webkit-transform: translateY(10px) scale(0.5);
    -moz-transform: translateY(10px) scale(0.5);
    -ms-transform: translateY(10px) scale(0.5);
    -o-transform: translateY(10px) scale(0.5);
  }

  to {
    opacity: 1;
    transform: translateY(0px) scale(1);
    -webkit-transform: translateY(0px) scale(1);
    -moz-transform: translateY(0px) scale(1);
    -ms-transform: translateY(0px) scale(1);
    -o-transform: translateY(0px) scale(1);
  }
}

.textBlur {
  animation: textBlur linear both;
  -webkit-animation: textBlur linear both;
  animation-timeline: view(90% 5%);
}

@keyframes textBlur {
  0% {
    filter: blur(20px);
    -webkit-filter: blur(20px);
  }

  100% {
    filter: blur(0px);
    -webkit-filter: blur(0px);
  }
}

.fade {
  animation: fade both;
  -webkit-animation: fade both;
  animation-timeline: view(90% 5%);
}

@keyframes fade {
  
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}