#statusText,#intentionSearchBtn{
	display: none;
}


html, body {
  margin: 0;
  width: 100%;
  height: 100%;
  min-height: 100dvh;
  overflow: hidden;
  font-family: "Inter", system-ui, sans-serif;
  color: white;
}

#skyApp {
  position: relative;
  width: 100vw;
  height: 100dvh;
  min-height: 100dvh;
  background-size: cover;
  background-position: center bottom;
  background-repeat: no-repeat;
  overflow: hidden;
}

#controlPanel {
  position: fixed;
  left: 50%;
  bottom: max(16px, env(safe-area-inset-bottom));
  transform: translateX(-50%);
  width: min(720px, calc(100vw - 28px));
  box-sizing: border-box;

  background: rgba(0,0,0,.32);
  backdrop-filter: blur(14px);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 24px;
  padding: 18px;
  z-index: 20;

  opacity: 0;
  animation: controlFadeIn 1.4s ease forwards;
  animation-delay: 2.2s;
}

 

	.contributors-overlay {
  position: absolute;
  left: 50%;
  bottom: 128px;
  transform: translateX(-50%);
  width: min(720px, calc(100vw - 28px));
  max-height: 28vh;
  overflow-y: auto;
  padding: 14px;
  border-radius: 20px;
  background: rgba(0,0,0,.38);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,.18);
  z-index: 19;
 
  flex-wrap: wrap;
  gap: 8px;
}
	
	.contributors-overlay {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

.contributors-overlay.active {
  opacity: 1;
  pointer-events: auto;
}

@media (max-width: 600px) {
  .contributors-overlay {
    bottom: 214px;
    max-height: 22vh;
  }
}

 

#starsLayer,
#wordsLayer {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.star {
  position: absolute;
  border-radius: 50%;
  background: white;
  box-shadow: 0 0 8px rgba(255,255,255,.9), 0 0 18px rgba(255,255,255,.45);
  opacity: 0;
  transform: scale(.2);
  pointer-events: auto;
  cursor: pointer;
  transition: opacity 1.2s ease, transform 1.5s ease, left 2.4s ease, top 2.4s ease;
}

.star.visible {
  opacity: var(--star-opacity, .9);
  transform: scale(1);
}

.star.twinkle {
  animation: twinkle .75s ease-in-out infinite alternate;
}

@keyframes twinkle {
  from { opacity: .25; transform: scale(.8); }
  to { opacity: 1; transform: scale(1.5); }
}

.floating-word {
  position: absolute;
  left: 50%;
  top: 47%;
  transform: translate(-50%, -50%);
  font-size: clamp(2rem, 7vw, 6rem);
  font-weight: 300;
  letter-spacing: .04em;
  text-shadow: 0 0 20px rgba(255,255,255,.65);
  opacity: 0;
  animation: wordFade 1.4s ease forwards;
}

.floating-phrase {
  animation: none !important;
  opacity: 1 !important;
}

@keyframes wordFade {
  0% { opacity: 0; transform: translate(-50%, -40%) scale(.92); }
  25% { opacity: 1; }
  70% { opacity: 1; }
  100% { opacity: 0; transform: translate(-50%, -60%) scale(1.05); }
}

 

@keyframes controlFadeIn {
  from {
    opacity: 0;
    transform: translateX(-50%) translateY(18px);
  }
  to {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
  }
}

#intentionInput {
    background: rgba(255,255,255,.92);
    border: none;

    /* rounded left side only */
    border-top-left-radius: 16px;
    border-bottom-left-radius: 16px;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;

    padding: 15px 18px;
    font-size: 1.05rem;
}

.btn-glow {
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.45);
  color: white;
  background: rgba(255,255,255,.12);
}

.btn-glow:hover {
  color: white;
  background: rgba(255,255,255,.22);
}

#statusText {
  font-size: .85rem;
  opacity: .8;
}
	
	#introWordsLayer {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 5;
}

.intro-word {
  position: absolute;
  left: 50%;
  top: 52%;
  transform: translate(-50%, -50%);
  font-size: clamp(2rem, 6vw, 5.5rem);
  font-weight: 300;
  letter-spacing: .04em;
  text-align: center;
  white-space: nowrap;
  text-shadow: 0 0 22px rgba(255,255,255,.75);
  opacity: 0;
  animation: introWordFade 2.6s ease forwards;
}

@keyframes introWordFade {
  0% {
    opacity: 0;
    transform: translate(-50%, -30%) scale(.94);
  }
  25% {
    opacity: 1;
  }
  70% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    transform: translate(-50%, -80%) scale(1.04);
  }
}
	 

@media (max-width: 600px) {
  #controlPanel {
    max-height: 156px;
    padding: 12px;
    overflow: hidden;
    transition: max-height .45s ease, padding .35s ease, background .35s ease;
  }

  /* Keep the main lower button row visible on mobile. */
  #controlPanel .justify-content-between {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
    transition: opacity .35s ease, transform .35s ease;
  }

  /* Keep contributor/contact details hidden until expanded. */
  #contributorDetailsWrap {
    opacity: 0;
    transform: translateY(12px);
    pointer-events: none;
    transition: opacity .35s ease, transform .35s ease;
  }

  #controlPanel.mobile-expanded {
    max-height: min(430px, calc(100dvh - 32px));
    background: rgba(0,0,0,.5);
  }

  #controlPanel.mobile-expanded #contributorDetailsWrap,
  #controlPanel.mobile-expanded .justify-content-between {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
  }

  #controlPanel .input-group.mb-2 {
    margin-bottom: .5rem !important;
  }

  #controlPanel.mobile-expanded .input-group.mb-2 {
    margin-bottom: .5rem !important;
  }
}
