/* visionA Local — splash screen */ * { margin: 0; padding: 0; box-sizing: border-box; } :root { --brand-bg-top: #1A1F36; --brand-bg-bottom: #0E1222; --brand-primary: #4F7EFF; --brand-primary-light: #6EA8FF; --brand-mint: #6EF3C5; --brand-white: #FFFFFF; --brand-muted: #8890B0; --brand-danger: #FF6B6B; } html, body { height: 100%; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Microsoft JhengHei', 'PingFang TC', 'Helvetica Neue', Arial, sans-serif; background: linear-gradient(180deg, var(--brand-bg-top) 0%, var(--brand-bg-bottom) 100%); color: #E6E8F0; -webkit-font-smoothing: antialiased; overflow: hidden; } #app { display: flex; align-items: center; justify-content: center; min-height: 100vh; } .splash { display: flex; flex-direction: column; align-items: center; gap: 20px; padding: 48px; animation: fadeIn 0.4s ease-out; } @keyframes fadeIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } } .logo-icon { width: 96px; height: 96px; border-radius: 22px; box-shadow: 0 16px 64px rgba(79, 126, 255, 0.25), 0 0 0 1px rgba(110, 168, 255, 0.12); } .brand { display: flex; flex-direction: column; align-items: center; gap: 4px; margin-top: 4px; } .brand-name { font-size: 28px; font-weight: 600; letter-spacing: -0.01em; color: var(--brand-white); } .brand-accent { color: var(--brand-primary-light); font-weight: 400; } .brand-tagline { font-size: 12px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--brand-muted); } .spinner { width: 32px; height: 32px; border: 2.5px solid rgba(255, 255, 255, 0.08); border-top-color: var(--brand-primary-light); border-radius: 50%; animation: spin 0.9s linear infinite; margin-top: 16px; } @keyframes spin { to { transform: rotate(360deg); } } .status { font-size: 13px; color: var(--brand-muted); letter-spacing: 0.02em; } .error { max-width: 560px; padding: 14px 18px; background: rgba(255, 107, 107, 0.1); border: 1px solid rgba(255, 107, 107, 0.35); border-radius: 10px; color: #FFB5B5; font-size: 13px; line-height: 1.55; text-align: center; }