:root {
  --c-glass: #bbbbbc;
  --c-light: #fff;
  --c-dark: #000;
  --c-content: #e1e1e1;
  --c-bg: #1b1b1d;
  --glass-reflex-dark: 2;
  --glass-reflex-light: 0.3;
  --saturation: 150%;
}

html,
body {
  margin: 0;
  padding: 0;
  height: 100%;
  overflow: hidden;
  font-family: Arial, sans-serif;
  color: white;
  background: black;
}

/* Intro */
#introScreen {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 1);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  z-index: 9999;
}

/* Intro Button */
#introButton {
  font-size: 3rem;
  padding: 30px 60px;
  margin: 0 15px;
  background: white;
  color: black;
  border-radius: 20px;
  cursor: pointer;
  user-select: none;
}

#introButton {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 16px;
    padding: 20px 60px;
    font-size: 32px;
    font-weight: 500;
    color: var(--c-content);
    background-color: color-mix(in srgb, var(--c-glass) 12%, transparent);
    border: none;
    border-radius: 99em;
    cursor: pointer;
    backdrop-filter: blur(40px) saturate(var(--saturation));
    -webkit-backdrop-filter: blur(40px) saturate(var(--saturation));
    letter-spacing: 0.3px;
    transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 
        inset 0 0 0 1px color-mix(in srgb, var(--c-light) calc(var(--glass-reflex-light) * 10%), transparent),
        inset 1.8px 3px 0px -2px color-mix(in srgb, var(--c-light) calc(var(--glass-reflex-light) * 90%), transparent),
        inset -2px -2px 0px -2px color-mix(in srgb, var(--c-light) calc(var(--glass-reflex-light) * 80%), transparent),
        inset -3px -8px 1px -6px color-mix(in srgb, var(--c-light) calc(var(--glass-reflex-light) * 60%), transparent),
        inset -0.3px -1px 4px 0px color-mix(in srgb, var(--c-dark) calc(var(--glass-reflex-dark) * 12%), transparent),
        inset -1.5px 2.5px 0px -2px color-mix(in srgb, var(--c-dark) calc(var(--glass-reflex-dark) * 20%), transparent),
        inset 0px 3px 4px -2px color-mix(in srgb, var(--c-dark) calc(var(--glass-reflex-dark) * 20%), transparent),
        inset 2px -6.5px 1px -4px color-mix(in srgb, var(--c-dark) calc(var(--glass-reflex-dark) * 10%), transparent),
        0px 1px 5px 0px color-mix(in srgb, var(--c-dark) calc(var(--glass-reflex-dark) * 10%), transparent),
        0px 6px 16px 0px color-mix(in srgb, var(--c-dark) calc(var(--glass-reflex-dark) * 8%), transparent);
}

#introButton:hover {
    background-color: color-mix(in srgb, var(--c-glass) 18%, transparent);
    transform: translateY(-2px);
    box-shadow: 
        inset 0 0 0 1px color-mix(in srgb, var(--c-light) calc(var(--glass-reflex-light) * 15%), transparent),
        inset 1.8px 3px 0px -2px color-mix(in srgb, var(--c-light) calc(var(--glass-reflex-light) * 95%), transparent),
        inset -2px -2px 0px -2px color-mix(in srgb, var(--c-light) calc(var(--glass-reflex-light) * 85%), transparent),
        inset -3px -8px 1px -6px color-mix(in srgb, var(--c-light) calc(var(--glass-reflex-light) * 65%), transparent),
        inset -0.3px -1px 4px 0px color-mix(in srgb, var(--c-dark) calc(var(--glass-reflex-dark) * 12%), transparent),
        inset -1.5px 2.5px 0px -2px color-mix(in srgb, var(--c-dark) calc(var(--glass-reflex-dark) * 20%), transparent),
        inset 0px 3px 4px -2px color-mix(in srgb, var(--c-dark) calc(var(--glass-reflex-dark) * 20%), transparent),
        inset 2px -6.5px 1px -4px color-mix(in srgb, var(--c-dark) calc(var(--glass-reflex-dark) * 10%), transparent),
        0px 2px 8px 0px color-mix(in srgb, var(--c-dark) calc(var(--glass-reflex-dark) * 12%), transparent),
        0px 8px 24px 0px color-mix(in srgb, var(--c-dark) calc(var(--glass-reflex-dark) * 10%), transparent);
}

#introButton:active {
    transform: translateY(0px);
    background-color: color-mix(in srgb, var(--c-glass) 8%, transparent);
    box-shadow: 
        inset 0 0 0 1px color-mix(in srgb, var(--c-light) calc(var(--glass-reflex-light) * 8%), transparent),
        inset 1.8px 3px 0px -2px color-mix(in srgb, var(--c-light) calc(var(--glass-reflex-light) * 85%), transparent),
        inset -2px -2px 0px -2px color-mix(in srgb, var(--c-light) calc(var(--glass-reflex-light) * 75%), transparent),
        inset -3px -8px 1px -6px color-mix(in srgb, var(--c-light) calc(var(--glass-reflex-light) * 55%), transparent),
        inset -0.3px -1px 4px 0px color-mix(in srgb, var(--c-dark) calc(var(--glass-reflex-dark) * 12%), transparent),
        inset -1.5px 2.5px 0px -2px color-mix(in srgb, var(--c-dark) calc(var(--glass-reflex-dark) * 20%), transparent),
        inset 0px 3px 4px -2px color-mix(in srgb, var(--c-dark) calc(var(--glass-reflex-dark) * 20%), transparent),
        inset 2px -6.5px 1px -4px color-mix(in srgb, var(--c-dark) calc(var(--glass-reflex-dark) * 10%), transparent),
        0px 1px 3px 0px color-mix(in srgb, var(--c-dark) calc(var(--glass-reflex-dark) * 8%), transparent),
        0px 4px 12px 0px color-mix(in srgb, var(--c-dark) calc(var(--glass-reflex-dark) * 6%), transparent);
}

/* Glowing border animation */
#introButton::before {
    content: '';
    position: absolute;
    inset: -2px;
    border-radius: 99em;
    padding: 2px;
    background: conic-gradient(
        from var(--glow-angle),
        transparent 0deg,
        transparent 60deg,
        rgba(255, 255, 255, 0.8) 120deg,
        rgba(100, 200, 255, 0.6) 180deg,
        transparent 240deg,
        transparent 360deg
    );
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    pointer-events: none;
    opacity: 0;
    animation: borderGlow 4s ease-in-out infinite;
}

@property --glow-angle {
    syntax: '<angle>';
    initial-value: 0deg;
    inherits: false;
}

@keyframes borderGlow {
    0%, 100% {
        opacity: 0;
        --glow-angle: 0deg;
    }
    10% {
        opacity: 1;
    }
    40% {
        opacity: 1;
        --glow-angle: 360deg;
    }
    50%, 100% {
        opacity: 0;
        --glow-angle: 360deg;
    }
}

.button-icon {
    font-size: 36px;
    line-height: 1;
}

.button-text {
    position: relative;
    z-index: 1;
    font-weight: 400;
}

.slide {
  display: none;
}

.slide.active {
  display: block;
}

.introwrapper {
  max-width: 390px;
  width: 100%;
}

.introtext {
  text-align: center;
  font-size: 22px;
  line-height: 1.6;
}

/* Fullscreen background video */
#bgVideo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -1;
}

/* Transparent slides overlay */
.slide {
  width: 100%;
  height: 100vh;
  position: absolute;
  top: 0;
  left: 0;
  display: none;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  background: transparent;
}

.active {
  display: flex;
}

/* Arrows */
.arrows {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 100%;
  display: flex;
  justify-content: space-between;
  pointer-events: none;
}

.arrow {
  font-size: 30px;
  color: #666;
  cursor: pointer;
  user-select: none;
  padding: 0 50px;
  pointer-events: auto;
}

/* Slide number */
.slide-number {
  text-align: center;
  font-size: 30px;
  margin-top: 32px;
  color: #fff;
}

.slide:first-child .slide-number {
    display: none;
}

/* Diamonds */
.diamond {
  position: absolute;
  bottom: 40px;
  width: 130px;
  height: 130px;
  background-image: url('../images/kompas.webp');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  cursor: pointer;
  transition: transform 0.2s ease;
}

.diamond.small {
  width: 100px;
  height: 100px;
  bottom: 55px;
}

/* Width media queries */
@media only screen and (max-width: 991px) {
    .diamond {
      width: 100px;
      height: 100px;
      bottom: 130px;
    }
    .diamond.small {
      width: 70px;
      height: 70px;
      bottom: 140px;
    }
    #introButton {
      font-size: 1.5rem;
      padding: 20px 50px;
    }
    .arrow {
      padding: 0 15px;
    }
}

@media only screen and (max-width: 768px) {
  .introwrapper {
    max-width: 295px;
  }
  .introtext {
    font-size: 16px;
  }
}

/* Diamond animations */
@keyframes slideInRight {
    from {
        transform: translateX(2560px); /* start completely off the right side of the viewport */
        opacity: 0;
    }
    to {
        transform: translateX(0); /* end at original position */
        opacity: 1;
    }
}

.diamond {
    opacity: 0;
}

.diamond.visible {
    opacity: 1;  /* This maintains opacity after animation */
}

.diamond.enter {
    animation: slideInRight 1.5s ease-out forwards;
    animation-fill-mode: forwards;
}


.diamond.spark {
  animation: smoothSpark 1.3s ease-in-out forwards;
}

@keyframes smoothSpark {
  0% {
    transform: scale(1);
    filter: drop-shadow(0 0 0px rgba(255, 230, 120, 0));
    opacity: 1;
  }
  50% {
    transform: scale(1.12);
    filter: drop-shadow(0 0 10px rgba(255, 230, 120, 0.7));
    opacity: 1;
  }
  100% {
    transform: scale(1);
    filter: drop-shadow(0 0 0px rgba(255, 230, 120, 0));
    opacity: 1;
  }
}

/* Audio toggle button */
#audioToggle {
  position: fixed;
  bottom: 32px;
  right: 30px;
  font-size: 32px;
  cursor: pointer;
  user-select: none;
  z-index: 1000;
}

/* Footer */
#footer {
  position: fixed;
  bottom: 10px;
  width: 100%;
  text-align: end;
  font-size: 16px;
  color: #666;
  letter-spacing: 0.5px;
  font-family: sans-serif;
  right: 15px;
}

#footer a {
  color: #666;
  text-decoration: none;
  pointer-events: auto;
}

#year {
  margin-left: 5px;
}

/* Height media queries */

@media (min-width: 600px) and (min-height: 400px) and (max-height: 700px) and (pointer: coarse) {
  .diamond {
    width: 100px;
    height: 100px;
    bottom: 160px;
  }
  .diamond.small {
    width: 70px;
    height: 70px;
    bottom: 150px;
  }
}

@media only screen and (max-height: 400px) and (pointer: coarse) {
  .arrows {
    position: absolute;
    top: 25%;
    transform: translateY(-75%);
  }
  .introwrapper {
    max-width: 620px;
    width: 100%;
  }
}

#slideNumber {
  color: #fff;
}