/* ============================================================
   SAARTHI AI — premium splash animation
   White canvas, crimson gradients, glassmorphism, route trails.
   Timeline is orchestrated by splash.js via .phase-* classes.
   ============================================================ */

#splash {
  position: fixed; inset: 0; z-index: 6000;
  background:
    radial-gradient(900px 600px at 85% 10%, rgba(220, 20, 60, 0.06), transparent 60%),
    radial-gradient(800px 600px at 10% 90%, rgba(220, 20, 60, 0.05), transparent 60%),
    #FFFFFF;
  overflow: hidden;
  cursor: pointer;
  opacity: 1;
  transition: opacity 0.55s ease;
}
#splash.phase-out { opacity: 0; pointer-events: none; }

/* soft gradient blobs the glass card sits over */
.splash-blob {
  position: absolute; border-radius: 50%; filter: blur(70px);
  opacity: 0; transition: opacity 1.2s ease;
}
.splash-blob.b1 {
  width: 420px; height: 420px; left: 50%; top: 38%;
  transform: translate(-78%, -50%);
  background: radial-gradient(circle, rgba(255, 77, 109, 0.35), transparent 65%);
}
.splash-blob.b2 {
  width: 360px; height: 360px; left: 50%; top: 52%;
  transform: translate(-12%, -50%);
  background: radial-gradient(circle, rgba(142, 11, 38, 0.25), transparent 65%);
}
#splash.phase-text .splash-blob { opacity: 1; }

/* ---------- flight SVG layer ---------- */
#splash-svg { position: absolute; inset: 0; width: 100%; height: 100%; }

#trail {
  stroke: url(#trail-grad);
  stroke-width: 5;
  fill: none;
  stroke-linecap: round;
  filter: drop-shadow(0 2px 10px rgba(220, 20, 60, 0.35));
  transition: opacity 0.6s ease;
}
#splash.phase-logo #trail {
  opacity: 0.22;                       /* trail settles into a faint route line */
  stroke-dasharray: 7 12 !important;   /* morph from solid flight to dotted route */
  transition: opacity 0.6s ease, stroke-dasharray 0.6s ease;
}

#plane {
  filter: drop-shadow(0 0 14px rgba(255, 61, 96, 0.75))
          drop-shadow(0 4px 8px rgba(122, 9, 32, 0.3));
  transition: opacity 0.3s ease;
}
#splash.phase-logo #plane { opacity: 0; }

/* AI network: nodes + connection lines drawn behind the route */
.net { opacity: 0; transition: opacity 0.9s ease; }
#splash.phase-net .net { opacity: 1; }
.net-line {
  stroke: rgba(220, 20, 60, 0.18); stroke-width: 1.6; fill: none;
  stroke-dasharray: 240; stroke-dashoffset: 240;
}
#splash.phase-net .net-line { animation: net-draw 1.6s ease forwards; }
@keyframes net-draw { to { stroke-dashoffset: 0; } }
.net-node {
  fill: #fff; stroke: #DC143C; stroke-width: 2.5;
  transform-box: fill-box; transform-origin: center;
  opacity: 0; scale: 0;
}
#splash.phase-net .net-node { animation: node-pop 0.5s cubic-bezier(0.2, 0.9, 0.3, 1.4) forwards; }
.net-node:nth-of-type(odd) { animation-delay: 0.25s !important; }
@keyframes node-pop { to { opacity: 1; scale: 1; } }
.net-ring {
  fill: none; stroke: rgba(220, 20, 60, 0.3); stroke-width: 1.5;
  transform-box: fill-box; transform-origin: center; opacity: 0;
}
#splash.phase-net .net-ring { animation: ring-pulse 2.2s ease-out infinite; }
@keyframes ring-pulse {
  0% { opacity: 0.7; scale: 0.4; }
  100% { opacity: 0; scale: 2.1; }
}

/* floating AI particles */
.splash-particle {
  position: absolute; width: 6px; height: 6px; border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #FF5C7C, #A60D2E);
  opacity: 0;
}
#splash.phase-net .splash-particle {
  animation: particle-float 3.2s ease-in-out var(--pd, 0s) infinite;
}
@keyframes particle-float {
  0%, 100% { opacity: 0; transform: translateY(8px) scale(0.6); }
  35% { opacity: 0.75; transform: translateY(-6px) scale(1); }
  70% { opacity: 0.35; transform: translateY(-14px) scale(0.85); }
}

/* ---------- center title on glass ---------- */
.splash-center {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  pointer-events: none;
}
.splash-glass {
  padding: 34px 52px; border-radius: 28px; text-align: center;
  background: rgba(255, 255, 255, 0.45);
  border: 1px solid rgba(255, 255, 255, 0.7);
  backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
  box-shadow: 0 24px 70px rgba(122, 9, 32, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.9);
  opacity: 0; transform: translateY(22px) scale(0.96);
  transition: opacity 0.7s cubic-bezier(0.2, 0.8, 0.3, 1),
              transform 0.7s cubic-bezier(0.2, 0.8, 0.3, 1);
}
#splash.phase-text .splash-glass { opacity: 1; transform: none; }

.splash-title {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  font-size: clamp(2.4rem, 7vw, 4rem); font-weight: 800;
  letter-spacing: -0.02em; line-height: 1.05;
  display: flex; gap: 0.28em; justify-content: center;
}
.splash-title .st-word {
  display: inline-block;
  background: linear-gradient(120deg, #16181D 20%, #DC143C 75%, #7A0920 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
  opacity: 0; transform: translateY(105%);
  filter: blur(6px);
}
.splash-title .st-ai {
  background: linear-gradient(120deg, #FF4D6D 0%, #DC143C 50%, #7A0920 100%);
  -webkit-background-clip: text; background-clip: text;
}
#splash.phase-text .st-word {
  animation: word-rise 0.75s cubic-bezier(0.2, 0.8, 0.25, 1) forwards;
}
#splash.phase-text .st-word:nth-child(2) { animation-delay: 0.12s; }
@keyframes word-rise {
  to { opacity: 1; transform: none; filter: blur(0); }
}
.splash-title-clip { overflow: hidden; display: inline-flex; gap: 0.28em; }

.splash-tag {
  margin-top: 12px; font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  font-size: 0.95rem; font-weight: 600; letter-spacing: 0.28em;
  text-transform: uppercase; color: #6B7280;
  opacity: 0; transform: translateY(8px);
  transition: opacity 0.7s ease 0.45s, transform 0.7s ease 0.45s,
              letter-spacing 0.9s ease 0.45s;
}
#splash.phase-text .splash-tag { opacity: 1; transform: none; letter-spacing: 0.34em; }

/* ---------- logo morph (plane lands in the navbar) ---------- */
.splash-logochip {
  position: absolute; top: 14px; left: 22px;
  display: flex; align-items: center; gap: 10px;
  background: #fff; padding: 8px 16px 8px 9px; border-radius: 14px;
  box-shadow: 0 8px 30px rgba(22, 24, 29, 0.10);
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  font-weight: 800; font-size: 1.05rem;
  opacity: 0; transform: scale(0.4) translate(-12px, -12px);
  transform-origin: top left;
}
.splash-logochip .lm {
  width: 32px; height: 32px; border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, #FF4D6D 0%, #DC143C 45%, #8E0B26 100%);
  box-shadow: 0 4px 12px rgba(220, 20, 60, 0.4);
}
.splash-logochip .lm svg { width: 16px; height: 16px; }
.splash-logochip .lt {
  background: linear-gradient(120deg, #16181D 30%, #DC143C 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
#splash.phase-logo .splash-logochip {
  animation: chip-land 0.55s cubic-bezier(0.2, 0.9, 0.3, 1.35) forwards;
}
@keyframes chip-land {
  0% { opacity: 0; transform: scale(0.4) translate(-12px, -12px); }
  100% { opacity: 1; transform: none; }
}

/* ---------- AI activation pulse ---------- */
.splash-pulse {
  position: absolute; top: 30px; left: 60px;
  width: 18px; height: 18px; border-radius: 50%;
  border: 2.5px solid rgba(220, 20, 60, 0.55);
  opacity: 0; pointer-events: none;
}
#splash.phase-pulse .splash-pulse { animation: activation 0.9s cubic-bezier(0.1, 0.6, 0.3, 1) forwards; }
.splash-pulse.p2 { border-width: 1.5px; }
#splash.phase-pulse .splash-pulse.p2 { animation-delay: 0.18s; }
@keyframes activation {
  0% { opacity: 0.9; transform: scale(1); }
  100% { opacity: 0; transform: scale(70); }
}

/* ---------- skip ---------- */
.splash-skip {
  position: absolute; bottom: 26px; right: 26px;
  border: 1.5px solid #E9EAEE; background: rgba(255, 255, 255, 0.7);
  backdrop-filter: blur(8px);
  border-radius: 999px; padding: 9px 18px; cursor: pointer;
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  font-size: 0.76rem; font-weight: 700; color: #6B7280;
  opacity: 0; animation: skip-in 0.6s ease 1.2s forwards;
}
.splash-skip:hover { color: #DC143C; border-color: #DC143C; }
@keyframes skip-in { to { opacity: 1; } }

@media (max-width: 820px) {
  .splash-glass { padding: 26px 30px; margin: 0 18px; }
}

@media (prefers-reduced-motion: reduce) {
  #splash { display: none; }
}
