/* Settingan Awal */
[data-theme="light"] {
  --primary-color: #2D336B;
  --secondary-color: #7886C7;
  --thrid-color: #0db4ca;
  --fourth-color: #FFF2F2;
  --fifth-color: #475699;
  --six-color: #5767af;
  --seven-color: #3f457c;

  /* Warna tambahan */
  --eight-color: #ffffff;
  --nine-color: #f2f2f2;
  --ten-color: #707070;
  --eleven-color: #000000;
  --twelve-color: #444;
  --thirdteen-color: #fffb00;
}

/* Dark Mode */
[data-theme="dark"] {
  --primary-color: #121212;
  --secondary-color: #2a2828;
  --thrid-color: #4F1787;
  --fourth-color: #444343;
  --fifth-color: #3c3636;
  --six-color: #0a0a0a;
  --seven-color: #201b1b;

  /* Warna tambahan */
  --eight-color: #ffffff;
  --nine-color: #e0e0e0;
  --ten-color: #707070;
  --eleven-color: #000000;
  --twelve-color: #3a3a3a;
}

*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: inherit;
}

html {
  max-width: 100vw;
  box-sizing: border-box;
  min-height: 100vh;
  scroll-behavior: smooth;
}

body {
  background-color: var(--fourth-color);
  color: var(--eight-color);
  font-family: Arial, Helvetica, sans-serif;
  display: flex;
  flex-direction: column;
}

/* Settingan Loader */

@-webkit-keyframes spin {
  0% {
    -webkit-transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
  }
}

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

.loader {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 100;
  width: 120px;
  height: 120px;
  margin: -76px 0 0 -60px;
  border: 16px solid var(--ten-color);
  border-radius: 50%;
  border-top: 16px solid var(--thrid-color);
  -webkit-animation: spin 2s linear infinite;
  animation: spin 2s linear infinite;
}

/* Settingan Header */
header {
  position: sticky;
  top: -4em;
  background-color: var(--primary-color);
  z-index: 10;
  transition: all 1s ease;
  box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.3);
}

#top {
  display: flex;
  justify-content: center;
  align-items: center;
}

header > #top {
  height: 4em;
}

header > #top > h1 > a {
  text-decoration: none;
  color: var(--eight-color);
}

nav {
  width: 100%;
}

nav ul {
  transition: all 0.5s ease;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

nav > ul > li {
  padding: 10px 0;
  background-color: var(--secondary-color);
  border: 2px solid var(--fifth-color);
  text-align: center;
}

nav > ul > li.active {
  background-color: var(--six-color);
}

nav ul li a {
  text-decoration: none;
  color: var(--eight-color);
}

nav ul li a:hover {
  color: var(--seven-color);
}

/* Hamburger menu */
.hamburger-button-container {
  display: none;
  margin: auto;
  height: 100%;
  width: 30px;
  cursor: pointer;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.hamburger-button,
.hamburger-button::before,
.hamburger-button::after {
  background-color: var(--eight-color);
  position: absolute;
  height: 4px;
  width: 30px;
  transition: transform 400ms cubic-bezier(0.23, 1, 0.32, 1);
  border-radius: 2px;
}

.hamburger-button::before {
  content: "";
  margin-top: -8px;
}

.hamburger-button::after {
  content: "";
  margin-top: 8px;
}

#hamburger-toggle {
  display: none;
}

#hamburger-toggle:checked + .hamburger-button-container .hamburger-button::before {
  transform: rotate(45deg);
  margin-top: 0;
}

#hamburger-toggle:checked + .hamburger-button-container .hamburger-button {
  background: transparent;
}

#hamburger-toggle:checked + .hamburger-button-container .hamburger-button::after {
  transform: rotate(-45deg);
  margin-top: 0;
}

.theme {
  opacity: 0;
  position: absolute;
  right: calc(5vw + 20px);
}

.theme-label {
  background-color: var(--thrid-color);
  width: 50px;
  height: 26px;
  border-radius: 50px;
  position: absolute;
  right: 5vw;
  padding: 5px;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.theme-label .ball {
  background-color: var(--thirdteen-color);
  width: 22px;
  height: 22px;
  position: absolute;
  left: 2px;
  top: 2px;
  border-radius: 50%;
  transition: transform 0.2s linear, box-shadow 0.4s ease;
}

.theme:checked + .theme-label .ball {
  transform: translateX(24px);
  box-shadow: inset -6px 1px 0 1px var(--eight-color);
}

/* Settingan Reveal Animation */
@-webkit-keyframes swing-in-right-bck {
  0% {
    -webkit-transform: rotateY(70deg);
    transform: rotateY(70deg);
    -webkit-transform-origin: right;
    transform-origin: right;
    opacity: 0;
  }
  100% {
    -webkit-transform: rotateY(0);
    transform: rotateY(0);
    -webkit-transform-origin: right;
    transform-origin: right;
    opacity: 1;
  }
}
@keyframes swing-in-right-bck {
  0% {
    -webkit-transform: rotateY(70deg);
    transform: rotateY(70deg);
    -webkit-transform-origin: right;
    transform-origin: right;
    opacity: 0;
  }
  100% {
    -webkit-transform: rotateY(0);
    transform: rotateY(0);
    -webkit-transform-origin: right;
    transform-origin: right;
    opacity: 1;
  }
}

@-webkit-keyframes swing-in-left-bck {
  0% {
    -webkit-transform: rotateY(-70deg);
    transform: rotateY(-70deg);
    -webkit-transform-origin: left;
    transform-origin: left;
    opacity: 0;
  }
  100% {
    -webkit-transform: rotateY(0);
    transform: rotateY(0);
    -webkit-transform-origin: left;
    transform-origin: left;
    opacity: 1;
  }
}
@keyframes swing-in-left-bck {
  0% {
    -webkit-transform: rotateY(-70deg);
    transform: rotateY(-70deg);
    -webkit-transform-origin: left;
    transform-origin: left;
    opacity: 0;
  }
  100% {
    -webkit-transform: rotateY(0);
    transform: rotateY(0);
    -webkit-transform-origin: left;
    transform-origin: left;
    opacity: 1;
  }
}

.revealToTheRight,
.revealToTheLeft {
  transition: 1s all ease;
  opacity: 0;
}

.revealToTheRight.active {
  -webkit-animation: swing-in-right-bck 1.2s cubic-bezier(0.175, 0.885, 0.32, 1.275) both;
  animation: swing-in-right-bck 1.2s cubic-bezier(0.175, 0.885, 0.32, 1.275) both;
  opacity: 1;
}

.revealToTheLeft.active {
  -webkit-animation: swing-in-left-bck 1.2s cubic-bezier(0.175, 0.885, 0.32, 1.275) both;
  animation: swing-in-left-bck 1.2s cubic-bezier(0.175, 0.885, 0.32, 1.275) both;
  opacity: 1;
}

/* Settingan Isi Konten */
main {
  display: flex;
  background: inherit;
  z-index: 1;
  position: relative;
  flex: 1;
  min-height: calc(80vh - 3em - 52px);
}

#content {
  flex: 0 0 70%;
}

article {
  width: calc(100% - 20px);
  background-color: var(--primary-color);
  display: block;
  border-radius: 20px;
  padding: 20px;
  margin: 10px;
}

article img {
  max-width: 100%;
  border-radius: 10px;
}

.profile {
  max-width: 48%;
  border-radius: 100%;
}

article h2 {
  margin-block: 5px;
}

.text-center {
  text-align: center;
}

h2.text-center {
  margin-block: 0 10px;
}

article a {
  color: var(--eight-color);
  font-weight: bold;
  text-decoration: none;
  transition: color 0.3s;
}

a, label, #up {
  -webkit-tap-highlight-color: transparent;
}

a:focus, label:focus, #up:focus {
  outline: none;
}

aside {
  flex: 0 0 30%;
}

.card {
  background-color: var(--secondary-color);
  border-radius: 20px;
  padding: 10px;
  margin: 10px 10px 10px 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
}

.card img {
  max-width: 40%;
  border-radius: 50%;
  margin-bottom: 10px;
}

.card a {
  text-decoration: none;
  color: var(--eleven-color);
  margin: 5px;
  border-radius: 3px;
  text-align: center;
  padding: 3px 15px 3px 15px;
  background: var(--nine-color);
  border: 1px solid var(--ten-color);
}

.card ul::before {
  content: "Favorit Language";
  font-weight: bold;
  white-space: nowrap;
  display: inline-block;
  position: absolute;
  transform: translate(-50px, -20px);
  padding: 0 20px;
}

.card ul {
  margin-top: 25px;
}

#up {
  position: fixed;
  width: 1.5em;
  height: 1.5em;
  background-color: var(--seven-color);
  border-radius: 50%;
  right: 1em;
  bottom: 1em;
  visibility: hidden;
  transition: all 0.5s ease-in-out;
  z-index: 11;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  font-weight: bolder;
  font-size: xx-large;
  color: var(--eight-color);
}

#loadDisqus {
  display: block;
  margin: 0 auto;
  padding: 10px 20px;
  background-color: var(--fifth-color);
  color: var(--eight-color);
  border: none;
  border-radius: 5px;
  cursor: pointer;
  font-size: 1rem;
  font-weight: bolder;
  transition: background-color 0.3s ease;
}

#loadDisqus:hover {
  background-color: var(--six-color);
}

#loadDisqus.closeport {
  display: none;
}

#disqus_thread {
  margin: 0 6%;
}

/* Settingan Footer */
footer {
  background-color: var(--secondary-color);
  min-width: 100%;
  height: 20vh;
  padding: 10px;
  position: sticky;
  bottom: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  align-self: center;
}

.bottom {
  position: absolute !important;
  bottom: 0;
}

@media (max-width: 600px) {
  main {
    display: block;
    min-height: calc(80vh - 58px);
  }

  .card {
    margin: 0 10px 10px 10px;
  }

  .bottom {
    position: sticky !important;
  }

  .hamburger-button-container {
    display: flex;
    position: absolute;
    right: 5vw;
  }

  header {
    top: 0;
  }

  nav ul {
    grid-template-columns: 1fr;
    position: absolute;
    left: 0;
    width: 100%;
    background-color: var(--primary-color);
    visibility: hidden;
    opacity: 0;
  }

  header:has(#hamburger-toggle:checked) nav .hamburger {
    visibility: visible;
    opacity: 1;
  }

  nav > ul > li {
    width: 100%;
    padding: 10px 0;
    text-align: center;
  }

  /* nav > ul > li:not(:last-child) {
    border-bottom: 1px solid var(--twelve-color);
  } */

  .theme-label {
    left: 5vw;
    right: unset;
  }

  .theme {
    right: unset;
    left: calc(5vw + 20px);
  }
}
