 * {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: "Poppins", sans-serif;
  overflow: hidden;
}

 
.page-bg {
  position: relative;
  width: 100vw;
  height: 100vh;
  background: linear-gradient(160deg, #0e1d4a 0%, #192853 45%, #2a44a0 100%);
  display: flex;
  align-items: center;
  justify-content: center;
}

 
.splash-content {
  position: relative;
  z-index: 10;
  text-align: center;
  color: #fff;
  padding: 0 1rem;
}

.splash-title {
  font-size: clamp(28px, 4vw, 52px);
  font-weight: 700;
  letter-spacing: 0.01em;
  margin-bottom: 8px;
  animation: fadeSlideUp 0.7s ease both;
  animation-delay: 0.1s;
}

.splash-subtitle {
  font-size: clamp(14px, 1.6vw, 22px);
  font-weight: 400;
  opacity: 0.9;
  margin-bottom: 40px;
  animation: fadeSlideUp 0.7s ease both;
  animation-delay: 0.3s;
}

.splash-logo {
  width: clamp(160px, 18vw, 240px);
  height: clamp(160px, 18vw, 240px);
  object-fit: contain;
  margin-bottom: 40px;
  filter: drop-shadow(0 8px 32px rgba(0, 0, 0, 0.35));
  animation: logoPop 0.8s cubic-bezier(0.34, 1.56, 0.64, 1) 0.5s both,
    logoPulse 2.4s ease-in-out 1.4s infinite;
}

 
.splash-redirecting {
  font-size: clamp(18px, 2vw, 26px);
  font-style: italic;
  font-weight: 400;
  opacity: 0;
  animation: fadeSlideUp 0.7s ease 1.1s forwards;
}

.dot {
  display: inline-block;
  animation: dotBlink 1.2s ease-in-out infinite;
}
.dot:nth-child(2) { animation-delay: 0.2s; }
.dot:nth-child(3) { animation-delay: 0.4s; }

 
.progress-bar-wrapper {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background: rgba(255, 255, 255, 0.12);
  z-index: 20;
  opacity: 0;
  animation: fadeSlideUp 0.5s ease 1.3s forwards;
}

.progress-bar-fill {
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, #4a7bd4, #a0c0ff);
  animation: progressFill 3.5s linear 1.5s forwards;
  border-radius: 0 2px 2px 0;
}

 
@keyframes fadeSlideUp {
  from { opacity: 0; transform: translateY(28px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes logoPop {
  0%   { opacity: 0; transform: scale(0.7); }
  70%  { opacity: 1; transform: scale(1.06); }
  100% { opacity: 1; transform: scale(1); }
}

@keyframes logoPulse {
  0%, 100% {
    filter: drop-shadow(0 8px 32px rgba(0, 0, 0, 0.35))
            drop-shadow(0 0 0px rgba(100, 150, 255, 0));
  }
  50% {
    filter: drop-shadow(0 8px 32px rgba(0, 0, 0, 0.35))
            drop-shadow(0 0 28px rgba(100, 150, 255, 0.55));
  }
}

@keyframes progressFill {
  from { width: 0%; }
  to   { width: 100%; }
}

@keyframes dotBlink {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0.2; }
}
