Spaces:
Sleeping
Sleeping
| /* ============================================================ | |
| 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 ; /* 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 ; } | |
| @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; } | |
| } | |