/* assets/css/style.css */

/* Scrollbar Kustom */
::-webkit-scrollbar {
  width: 6px;
}
::-webkit-scrollbar-track {
  background: #050505;
}
::-webkit-scrollbar-thumb {
  background: #ff1b1b;
  border-radius: 10px;
  box-shadow: 0 0 10px #ff1b1b;
}
::selection {
  background: rgba(255, 27, 27, 0.3);
  color: #ffffff;
}

.glass-panel {
  background: rgba(13, 13, 15, 0.7);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 27, 27, 0.15);
}
.glass-panel-heavy {
  background: rgba(5, 5, 5, 0.85);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255, 27, 27, 0.25);
}
.glow-sphere {
  filter: blur(120px);
  border-radius: 50%;
  pointer-events: none;
  mix-blend-mode: screen;
}

@media (pointer: fine) {
  #custom-cursor {
    width: 8px;
    height: 8px;
    background-color: #ff1b1b;
    border-radius: 50%;
    position: fixed;
    transform: translate(-50%, -50%);
    pointer-events: none;
    z-index: 9999;
    transition:
      width 0.2s,
      height 0.2s,
      background-color 0.2s;
    box-shadow:
      0 0 10px #ff1b1b,
      0 0 20px #ff1b1b;
  }
  #custom-cursor-follower {
    width: 36px;
    height: 36px;
    border: 1px solid rgba(255, 27, 27, 0.5);
    border-radius: 50%;
    position: fixed;
    transform: translate(-50%, -50%);
    pointer-events: none;
    z-index: 9998;
    transition:
      transform 0.1s ease-out,
      width 0.2s,
      height 0.2s,
      border-color 0.2s;
    box-shadow: 0 0 15px rgba(255, 27, 27, 0.1);
  }
  .cursor-hover #custom-cursor {
    width: 14px;
    height: 14px;
    background-color: transparent;
    border: 2px solid #ff1b1b;
    box-shadow: 0 0 15px #ff1b1b;
  }
  .cursor-hover #custom-cursor-follower {
    width: 52px;
    height: 52px;
    border-color: #ff5454;
    background-color: rgba(255, 27, 27, 0.05);
    box-shadow: 0 0 30px rgba(255, 27, 27, 0.3);
  }
}

.neon-text-gradient {
  background: linear-gradient(135deg, #ffffff 40%, #ff5454 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.neon-text-unlocked {
  background: linear-gradient(135deg, #a7f3d0 40%, #10b981 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.neon-red-gradient {
  background: linear-gradient(135deg, #ff1b1b 0%, #ff5454 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* Garis Penunjuk Linimasa */
.timeline-track::before {
  content: "";
  position: absolute;
  top: 0;
  height: 100%;
  width: 2px;
  background: linear-gradient(
    180deg,
    rgba(255, 27, 27, 0) 0%,
    rgba(255, 27, 27, 1) 15%,
    rgba(255, 27, 27, 1) 85%,
    rgba(255, 27, 27, 0) 100%
  );
  box-shadow: 0 0 15px rgba(255, 27, 27, 0.6);
}

/* Efek Kilau Pinggiran Tombol / Kartu */
.shine-border {
  position: relative;
  overflow: hidden;
}
.shine-border::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(
    135deg,
    rgba(255, 27, 27, 0.4) 0%,
    rgba(255, 27, 27, 0) 50%,
    rgba(255, 27, 27, 0.4) 100%
  );
  -webkit-mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  transition: opacity 0.3s;
}

/* Animasi Grafis Equalizer */
.equalizer-bar {
  width: 3px;
  height: 3px;
  background-color: #ff1b1b;
  animation: bounceEqualizer 0.8s ease-in-out infinite alternate;
}
@keyframes bounceEqualizer {
  0% {
    height: 3px;
  }
  100% {
    height: 18px;
  }
}
