/* Splash / Intro Screen — Homepage only */
.splash {
  position: fixed; inset: 0; z-index: 10000;
  background: #060d14;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  transition: opacity .8s ease, visibility .8s;
}
.splash.hide {
  opacity: 0; visibility: hidden;
  pointer-events: none;
}
.splash::before {
  content: '';
  position: absolute;
  top: -40%; left: 50%; transform: translateX(-50%);
  width: 600px; height: 600px;
  background: radial-gradient(ellipse at center,
    rgba(255,255,255,.08) 0%,
    rgba(255,255,255,.03) 30%,
    transparent 70%);
  border-radius: 50%;
  animation: spotlightPulse 3s ease-in-out infinite;
}
.splash::after {
  content: '';
  position: absolute;
  top: 0; left: 50%; transform: translateX(-50%);
  width: 2px; height: 45%;
  background: linear-gradient(180deg,
    rgba(255,255,255,.12) 0%,
    rgba(255,255,255,.04) 60%,
    transparent 100%);
  animation: beamFade 2.5s ease-in-out infinite;
}
@keyframes spotlightPulse {
  0%, 100% { opacity: .7; transform: translateX(-50%) scale(1); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.05); }
}
@keyframes beamFade {
  0%, 100% { opacity: .5; }
  50% { opacity: 1; }
}
.splash-logo {
  position: relative; z-index: 1;
  opacity: 0; transform: translateY(20px);
  animation: splashIn .8s cubic-bezier(.16,1,.3,1) .2s forwards;
}
.splash-logo img {
  height: clamp(48px, 8vw, 80px);
  width: auto;
  filter: drop-shadow(0 0 40px rgba(255,255,255,.08));
}
.splash-tagline {
  position: relative; z-index: 1;
  font-family: 'Fraunces', 'Fraunces-fallback', serif;
  font-weight: 200; font-style: italic;
  font-size: clamp(1rem, 1.5vw, 1.4rem);
  color: rgba(255,255,255,.55);
  letter-spacing: .04em;
  margin-top: 18px;
  opacity: 0; transform: translateY(15px);
  animation: splashIn .7s cubic-bezier(.16,1,.3,1) .6s forwards;
}
.splash-glow {
  position: absolute;
  top: 35%; left: 50%; transform: translate(-50%, -50%);
  width: 300px; height: 300px;
  background: radial-gradient(circle, rgba(0,147,211,.12) 0%, transparent 70%);
  border-radius: 50%;
  opacity: 0;
  animation: glowIn 1.5s ease .3s forwards;
}
@keyframes splashIn {
  to { opacity: 1; transform: translateY(0); }
}
@keyframes glowIn {
  to { opacity: 1; }
}
@media(prefers-reduced-motion: reduce) {
  .splash { transition-duration: .01ms !important; }
  .splash-logo, .splash-tagline, .splash-glow { animation-duration: .01ms !important; opacity: 1 !important; transform: none !important; }
}
