/* Reset + base font */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}

html{
    background-color: #000000;
}

/* Page background */
body {
 /* background: linear-gradient(135deg, #0f0f0f 0%, #0f0f0f 100%); */
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  padding: 0px;

}

.bg-top {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  background-image: url('imgs/bg.png');
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  background-attachment: fixed;
  animation: topEntranceReverse 3s ease-out forwards;
}

.bg-bottom {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  background-color: #0f0f0f00;
  background:
    radial-gradient(1px 1px at 10% 20%, #fff 100%, transparent 0),
    radial-gradient(1.5px 1.5px at 30% 40%, #fff 100%, transparent 0),
    radial-gradient(2px 2px at 50% 60%, #fff 100%, transparent 0),
    radial-gradient(1px 1px at 70% 30%, #fff 100%, transparent 0),
    radial-gradient(1px 1px at 90% 80%, #fff 100%, transparent 0),
    radial-gradient(1.2px 1.2px at 20% 70%, #fff 100%, transparent 0);
  background-repeat: repeat;

  /* Fade in */
  opacity: 0;
  animation: bottomEntranceReverse 3s ease-out forwards, spinStars 120s linear infinite;
}

/* Fade + slide from bottom */
@keyframes bottomEntranceReverse {
  0% {
    opacity: 0;
    transform: translateY(80px) scale(1.05);
  }
  50% {
    opacity: 0.5;
    transform: translateY(40px) scale(1.02);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* Infinite spin for starfield */
@keyframes spinStars {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

/* Bottom now comes from top */
@keyframes bottomEntranceReverse {
  0% {
    opacity: 0;
    transform: translateY(-80px) scale(1.05);
  }
  50% {
    opacity: 0.5;
    transform: translateY(-40px) scale(1.02);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

/* Layout container */
.container {
  flex: 1;
  display: flex;
  flex-direction: column;
  position: relative;
}
/* Header */
header {
  position: fixed;        /* stay fixed on top */
  top: 0;
  left: 0;
  width: 100%;            /* span full width */
  display: flex;
  justify-content: space-between;
  padding: 0px;
  z-index: 101;
  background: rgba(15, 15, 15, 0.7);  /* optional backdrop so text stays readable */
  backdrop-filter: blur(8px);

  /* Fade-in with slide */
  opacity: 0;
  transform: translateY(-20px); /* Start slightly above */
  animation: fadeSlideIn 1s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}

/* Keyframes for fade + slide */
@keyframes fadeSlideIn {
  to {
    opacity: 1;
    transform: translateY(0); /* End at normal position */
  }
}



/* Fixed side icons */
.icons-left,
.icons-right {
  position: fixed;
  top: 25px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  z-index: 10;
}

.icons-left {
  left: 35px;
}

.icons-right {
  right: 35px;
}

.icon {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, 0.233);
  align-items: center;
  font-size: 24px;
  color: white;
  background: linear-gradient(45deg, #2727276c, #0f0f0f41);
  backdrop-filter: blur(10px);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
  transition: all 0.3s ease;
  cursor: pointer;
}

.icon:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
}

/* Smaller second icon */
.icons-left .icon:nth-child(2),
.icons-right .icon:nth-child(2) {
  width: 50px;
  height: 50px;
  font-size: 20px;
  margin-top: 0px;
}

@media screen and (min-width: 600px) {
  .icons-left .icon:nth-child(2),
  .icons-right .icon:nth-child(2) {
    margin-top: 40px; /* Only override what's different */
  }
}


  /* baseline so we know the element exists */
  .spacer { display: block; }

  /* override inline top for desktop-sized screens */
  @media (min-width: 601px) {
    .spacer .icon {
      top: 6px !important;    /* force child down on PC */
      position: relative !important;
    }
  }


/* Fixed center logo */
.logo {
   position: fixed !important;
   left: 50% !important;
   top: 20px !important;
   transform: translateX(-50%) !important;
   z-index: 9999 !important;
}
@media (max-width: 768px) {

  .logo {
  position: fixed;
  left: 50%;
  top: 64px;
  transform: translateX(-50%);
  z-index: 10;
}

}




.logo-circle {
  width: 140px;
  margin-top: -80px;
  top: 2vh;
  height: 140px;
/*background: linear-gradient(45deg, #2727276c, #0f0f0f41);*/
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  color: yellow;
  font-size: 32px;
  font-weight: bold;
/*box-shadow: 10px 5px 50px rgba(0, 0, 0, 0.514);
  border: 2px solid rgba(255, 255, 255, 0.151); */
  cursor: pointer;
  transition: all 0.3s ease;
}

.logo-circle:hover {
  transform: scale(1.1);
}

/* Fixed bottom tab */
.tab-container {
  position: fixed;
  bottom: 30px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
}

.tab {
  background: linear-gradient(45deg, #272727, #0f0f0f);
  color: white;
  padding: 24px 70px; /* bigger padding */
  border-radius: 60px; /* rounder edges to match bigger size */
  box-shadow: 0 45px 85px rgba(0, 0, 0, 0.35);
  display: flex;
  align-items: center;
  gap: 20px; /* more space between icon/text */
  cursor: pointer;
  transition: all 0.3s ease;
  font-size: 22px; /* larger text */
  font-weight: 700; /* slightly bolder */
}


.tab:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.4);
}

/* Overlay */
.overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.804);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 100;
  opacity: 0;
  visibility: hidden;
  transition: all 0.4s ease;
}

.overlay.active {
  opacity: 1;
  visibility: visible;
}

.overlay-content {
  background: #0f0f0f00;
  padding: 0px;
  border-radius: 20px;
  max-width: 100%;
  width: 100%; 
  height: 100%;
  z-index: 2000;
  text-align: center;
  transform: translateY(50px);
  transition: transform 0.5s ease;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.4);
}

.overlay.active .overlay-content {
  transform: translateY(0);
}

.overlay h2 {
  color: #ffffff;
  margin-bottom: 20px;
  font-size: 32px;
  margin-top: 220px;
}
@media (max-width: 768px) {
  .overlay h2 {
  color: #6e46ff;
  margin-bottom: 20px;
  font-size: 32px;
  margin-top: 118px;
}
}

.overlay p {
  color: #ffffff;
  line-height: 1.6;
  margin-bottom: 30px;
  font-size: 18px;
}

.close-btn {
  background: linear-gradient(45deg, #0f0f0f, #272727);
  color: white;
  border: none;
  padding: 15px 40px;
  border-radius: 50px;
  font-size: 18px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
}

.close-btn:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
}

/* Scrollable content */
.content {
  flex: 1;
  display: flex;
  justify-content: center;
  align-items: center;
  color: white;
  text-align: center;
  padding: 0px;
  z-index: 1;
}

.content h1 {
  font-size: 3.5rem;
  margin-bottom: 20px;
  text-shadow: 2px 2px 10px rgba(0, 0, 0, 0.3);
}

.content p {
  font-size: 1.5rem;
  line-height: 1.6;
}

main {
  margin-bottom: 16vh;
  margin-top: 170px;
  padding-left: 18px;

  /* Start slightly below */
  transform: translateY(20px);

  /* Bounce animation */
  animation: bounceBig 1s ease forwards;
  animation-delay: 0.3s; /* Slight delay */
}

/* Keyframes for bigger bounce */
@keyframes bounceBig {
  0% {
    transform: translateY(20px);
  }
  40% {
    transform: translateY(-30px); /* bounce higher */
  }
  60% {
    transform: translateY(20px); /* fall back down */
  }
  80% {
    transform: translateY(-30px); /* smaller rebound */
  }
  100% {
    transform: translateY(0); /* settle at normal position */
  }
}






/* Responsive tweaks */
@media (max-width: 768px) {
  .icon {
    width: 50px;
    height: 50px;
    font-size: 20px;
  }

  .icons-left .icon:nth-child(2),
  .icons-right .icon:nth-child(2) {
    width: 45px;
    height: 45px;
    font-size: 18px;
    margin-top: 25px;
  }

  .logo-circle {
    width: 70px;
    height: 70px;
    font-size: 28px;
  }

  .tab {
    padding: 15px 40px;
    font-size: 16px;
  }

  .content h1 {
    font-size: 2.5rem;
  }

  .content p {
    font-size: 1.2rem;
  }
}



        .alarm-container {
      font-family: sans-serif;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      height: 40vh;
      margin: 0;
      margin-top: -4vh;
      color: #eee;
      background-color: #00000000;
      text-align: center;
    }
    .alarm-input,
    .alarm-button {
      padding: 20px 30px;
      margin: 10px;
      font-size: 2rem;
      background-color: #272727;
      border: none;
      border-radius: 8px;
    }
    .alarm-input {
      background-color: #000000c0;
      color: #eee;
    }
    .alarm-button {
      cursor: pointer;
    }
    .alarm-status {
      margin-top: 20px;
      font-size: 2rem;
    }

/* dreamy floating animation */
@keyframes popupFadeIn {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.8);
    filter: blur(10px);
  }
  100% {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
    filter: blur(0);
  }
}

@keyframes popupFadeOut {
  0% {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
    filter: blur(0);
  }
  100% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.8);
    filter: blur(10px);
  }
}