:root{--bg-base:#0a0a0f;--bg-panel:#131318;--bg-elevated:#1a1a22;--bg-hover:#22222e;--border:#2a2a36;--text-primary:#e8e8f0;--text-secondary:#8888a0;--text-dim:#556;--accent:#7c5cfc;--accent-hover:#9577ff;--accent-dim:#4a3a8c;--success:#4ade80;--warning:#fbbf24;--error:#f87171;--info:#60a5fa;--radius:12px;--radius-sm:8px;--shadow:0 4px 24px #0006}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-base);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif}.app-page{height:100vh;overflow:hidden}.landing-page{min-height:100vh;overflow-y:auto}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}button{cursor:pointer;border-radius:var(--radius-sm);border:none;padding:8px 16px;font-family:inherit;font-size:13px;transition:all .15s}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{color:var(--text-secondary);border:1px solid var(--border);background:0 0}.btn-ghost:hover{background:var(--bg-hover);color:var(--text-primary)}.tag{letter-spacing:.3px;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-block}.tag-success{color:var(--success);background:#4ade8026}.tag-error{color:var(--error);background:#f8717126}.tag-info{color:var(--info);background:#60a5fa26}.tag-warning{color:var(--warning);background:#fbbf2426}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.pulse{animation:1.5s ease-in-out infinite pulse}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:.8s linear infinite spin}.landing-scroll{overflow-y:auto!important}.hero-bg{background-image:radial-gradient(circle at 20%,#7c5cfc14 0%,#0000 50%),radial-gradient(circle at 80%,#f472b614 0%,#0000 50%),radial-gradient(circle at 50% 100%,#60a5fa0d 0%,#0000 50%)}.case-card:hover{box-shadow:0 0 24px #7c5cfc26}.step-dot{box-shadow:0 0 12px #7c5cfc80}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.marquee{gap:24px;animation:20s linear infinite marquee;display:flex}
