/* Loading Skeleton Animation Styles */

html, body {
  margin: 0;
  padding: 0;
  background: #0a0a1a;
}

#app {
  min-height: 100vh;
}

.loading-skeleton {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: radial-gradient(ellipse at center, #0f0f2a 0%, #050510 100%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  transition: opacity 0.5s ease-out;
}

.logo-container {
  position: relative;
  width: 280px;
  height: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.logo-ring {
  position: absolute;
  width: 240px;
  height: 240px;
  border: 2px solid transparent;
  border-top-color: rgba(255, 107, 53, 0.4);
  border-right-color: rgba(255, 140, 0, 0.4);
  border-radius: 50%;
  opacity: 0;
  animation: ringRotate 2s linear infinite, ringFadeIn 0.5s ease-out forwards 0.5s;
}

.logo-ring:nth-child(2) {
  width: 200px;
  height: 200px;
  border-top-color: rgba(255, 140, 0, 0.3);
  border-right-color: rgba(255, 165, 0, 0.3);
  animation-direction: reverse;
  animation-delay: 0s, 0.7s;
}

@keyframes ringRotate {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

@keyframes ringFadeIn {
  to { opacity: 1; }
}

.logo-box {
  position: relative;
  width: 180px;
  height: 120px;
  background: linear-gradient(135deg, #ff6b35 0%, #ff8c00 50%, #ffa500 100%);
  border-radius: 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transform: scale(0.5);
  animation: logoReveal 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) forwards 0.8s;
  box-shadow: 0 0 30px rgba(255, 107, 53, 0.5), 0 0 60px rgba(255, 107, 53, 0.3);
}

.logo-domain {
  font-size: 28px;
  font-weight: 900;
  color: white;
  letter-spacing: 1px;
  line-height: 1;
  opacity: 0;
  transform: translateY(10px);
  animation: textSlideUp 0.3s ease-out forwards 1.2s;
}

.logo-domain .highlight {
  color: #fff;
  text-shadow: 0 0 10px #fff, 0 0 20px #fff;
}

.logo-company {
  font-size: 18px;
  font-weight: 700;
  color: white;
  letter-spacing: 4px;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 2px solid rgba(255, 255, 255, 0.3);
  opacity: 0;
  transform: translateY(10px);
  animation: textSlideUp 0.3s ease-out forwards 1.4s;
}

.loading-text {
  margin-top: 30px;
  font-size: 16px;
  color: rgba(255, 255, 255, 0.8);
  letter-spacing: 4px;
  opacity: 0;
  animation: textFadeIn 0.3s ease-out forwards 1.6s;
}

.loading-dots {
  display: inline-flex;
  gap: 6px;
  margin-left: 8px;
}

.loading-dot {
  width: 8px;
  height: 8px;
  background: linear-gradient(135deg, #ff6b35, #ff8c00);
  border-radius: 50%;
  opacity: 0;
  animation: dotBounce 1s ease-in-out infinite;
  box-shadow: 0 0 10px rgba(255, 107, 53, 0.7);
}

.loading-dot:nth-child(1) { animation-delay: 1.6s; }
.loading-dot:nth-child(2) { animation-delay: 1.7s; }
.loading-dot:nth-child(3) { animation-delay: 1.8s; }

.progress-line {
  position: absolute;
  bottom: 0;
  left: 0;
  height: 3px;
  background: linear-gradient(90deg, #ff6b35, #ff8c00, #ffa500);
  width: 0;
  animation: progressGrow 2s ease-out forwards;
  box-shadow: 0 0 20px rgba(255, 107, 53, 0.7);
}

@keyframes logoReveal {
  0% {
    opacity: 0;
    transform: scale(0.5);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes textSlideUp {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes textFadeIn {
  to { opacity: 1; }
}

@keyframes dotBounce {
  0%, 80%, 100% {
    opacity: 0.3;
    transform: translateY(0);
  }
  40% {
    opacity: 1;
    transform: translateY(-10px);
  }
}

@keyframes progressGrow {
  0% { width: 0; }
  100% { width: 100%; }
}
