@import "tailwindcss"; /* ─── Brand Tokens (identical to main app) ────────────────────── */ :root { --background: #F8FAFC; --foreground: #334155; --primary: #0F766E; --secondary: #14B8A6; --border: #E2E8F0; --card: #FFFFFF; /* Marketing-site extended tokens — derived from above */ --primary-dark: #074742; --primary-glow: rgba(20, 184, 166, 0.45); --secondary-glow: rgba(45, 212, 191, 0.35); --dark-bg: #040914; /* Deeper space black */ --dark-surface: #0a1324; --dark-card: rgba(255, 255, 255, 0.02); --dark-border: rgba(45, 212, 191, 0.15); /* Tech teal borders */ --neon-cyan: #22d3ee; --neon-purple: #c084fc; } @theme inline { --color-background: var(--background); --color-foreground: var(--foreground); --color-primary: var(--primary); --color-secondary: var(--secondary); --color-border: var(--border); --color-card: var(--card); --font-inter: "Inter", sans-serif; } body { background: var(--background); color: var(--foreground); font-family: var(--font-inter); -webkit-font-smoothing: antialiased; } @layer base { *, ::after, ::before { border-color: var(--border); } html { scroll-behavior: smooth; } } /* ─── Keyframe animations ─────────────────────────────────────── */ @keyframes fadeUp { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes pulse-glow { 0%, 100% { opacity: 0.4; filter: blur(4px); } 50% { opacity: 1; filter: blur(8px); } } @keyframes float { 0%, 100% { transform: translateY(0px); } 50% { transform: translateY(-12px); } } @keyframes scanline { 0% { transform: translateY(-100%); } 100% { transform: translateY(100vh); } } @keyframes drawLine { 0% { stroke-dashoffset: 1000; } 100% { stroke-dashoffset: 0; } } @keyframes border-spin { 100% { transform: rotate(-360deg); } } @keyframes marquee { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } } .animate-fade-up { animation: fadeUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards; } .animate-fade-in { animation: fadeIn 0.8s ease forwards; } .animate-float { animation: float 5s ease-in-out infinite; } .animate-float-delayed { animation: float 5s ease-in-out 2.5s infinite; } .animate-pulse-glow { animation: pulse-glow 4s ease-in-out infinite; } .animate-scanline { animation: scanline 8s linear infinite; } .animate-border-spin { animation: border-spin 5s linear infinite; } .animate-draw-line { animation: drawLine 3s ease-in-out forwards; } /* ─── Server-component hover patterns (CSS-only) ─────────────── */ /* Primary gradient button */ .btn-primary { background: var(--primary); color: white; border: 1px solid rgba(255, 255, 255, 0.1); transition: background-color 0.2s, transform 0.2s, border-color 0.2s; } .btn-primary:hover { background: var(--primary-dark); border-color: rgba(255, 255, 255, 0.2); } /* Ghost dark (dark section) */ .btn-ghost-dark { background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.08); color: rgba(241, 245, 249, 0.9); transition: border-color 0.2s, background-color 0.2s, color 0.2s; } .btn-ghost-dark:hover { border-color: rgba(255, 255, 255, 0.2); background-color: rgba(255, 255, 255, 0.08); color: #fff; } /* Ghost light (light section) */ .btn-ghost-light { background: #FFFFFF; border: 1px solid var(--border); color: var(--foreground); transition: border-color 0.2s, box-shadow 0.2s; } .btn-ghost-light:hover { border-color: rgba(15, 118, 110, 0.3); box-shadow: 0 4px 12px rgba(15, 118, 110, 0.08); } /* Footer nav link */ .footer-link { color: rgba(148, 163, 184, 0.8); transition: color 0.2s; } .footer-link:hover { color: var(--secondary); } /* Footer social icon */ .social-icon { background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.08); color: rgba(148, 163, 184, 0.8); transition: color 0.2s, border-color 0.2s; } .social-icon:hover { color: var(--secondary); border-color: rgba(20, 184, 166, 0.4); } /* Dark feature card */ .feature-card-dark { background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.06); transition: border-color 0.3s, background 0.3s; } .feature-card-dark:hover { border-color: rgba(255, 255, 255, 0.15); background: rgba(255, 255, 255, 0.05); } /* Light feature card */ .feature-card-light { background: #FFFFFF; border: 1px solid var(--border); transition: border-color 0.3s, box-shadow 0.3s; } .feature-card-light:hover { border-color: rgba(15, 118, 110, 0.3); box-shadow: 0 4px 20px rgba(15, 118, 110, 0.12); } /* Dark value card (about page) */ .value-card-dark { background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.06); transition: border-color 0.3s, background 0.3s; } .value-card-dark:hover { border-color: rgba(255, 255, 255, 0.15); background: rgba(255, 255, 255, 0.05); } /* Navigation card (product page breadcrumbs) */ .nav-card { background: #FFFFFF; border: 1px solid var(--border); transition: border-color 0.2s, box-shadow 0.2s; } .nav-card:hover { border-color: rgba(15, 118, 110, 0.3); box-shadow: 0 4px 16px rgba(15, 118, 110, 0.08); } .nav-card:hover .nav-card-arrow { transform: translateX(4px); } .nav-card-arrow { transition: transform 0.2s; } /* Category filter link */ .category-link { background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.08); color: rgba(148, 163, 184, 0.8); transition: color 0.2s, border-color 0.2s; } .category-link:hover { color: var(--secondary); border-color: rgba(20, 184, 166, 0.3); } /* Text link primary */ .text-link-primary { color: var(--primary); transition: color 0.2s; } .text-link-primary:hover { color: var(--secondary); } /* Text link teal */ .text-link-teal { color: var(--secondary); transition: color 0.2s; } .text-link-teal:hover { color: #5EEAD4; } /* Waitlist disabled button style */ .btn-coming-soon { background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.08); color: #475569; transition: color 0.2s, border-color 0.2s; } .btn-coming-soon:hover { color: #94A3B8; border-color: rgba(255, 255, 255, 0.15); } /* ─── Utility classes ─────────────────────────────────────────── */ /* Gradient text */ .gradient-text { background: linear-gradient(135deg, var(--neon-cyan) 0%, var(--primary) 50%, var(--secondary) 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .neon-text { color: #fff; text-shadow: 0 0 10px rgba(34, 211, 238, 0.5), 0 0 20px rgba(34, 211, 238, 0.3); } /* Gradient border card with spinning effect */ .gradient-border { position: relative; background: var(--dark-card); border-radius: 1rem; overflow: hidden; z-index: 1; } .gradient-border-spin::before { content: ""; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: conic-gradient(transparent, rgba(20, 184, 166, 0.1), transparent 30%); animation: border-spin 4s linear infinite; z-index: -2; opacity: 0; transition: opacity 0.5s; } .gradient-border-spin:hover::before { opacity: 1; } .gradient-border::after { content: ""; position: absolute; inset: 1px; background: var(--dark-bg); border-radius: calc(1rem - 1px); z-index: -1; } /* Glow effect */ .glow-primary { box-shadow: 0 0 40px var(--primary-glow), 0 0 80px rgba(15, 118, 110, 0.15); } .glow-sm { box-shadow: 0 0 20px var(--primary-glow); } /* Dark section base */ .dark-section { background: var(--dark-bg); color: #F1F5F9; } /* Glass panel */ .glass-panel { background: rgba(10, 19, 36, 0.4); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); border: 1px solid rgba(45, 212, 191, 0.15); box-shadow: inset 0 0 20px rgba(45, 212, 191, 0.05); } /* Cockpit grid lines */ .cockpit-grid { background-image: linear-gradient(rgba(45, 212, 191, 0.1) 1px, transparent 1px), linear-gradient(90deg, rgba(45, 212, 191, 0.1) 1px, transparent 1px); background-size: 50px 50px; perspective: 1000px; } .cockpit-grid-3d { transform: rotateX(60deg) scale(2); transform-origin: top; } /* ─── Mission 33: Scroll-reveal + Catalog cards ──────────────────── */ @keyframes revealUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } @keyframes shimmer { 0% { background-position: -200% 0; } 100% { background-position: 200% 0; } } /* Initial hidden state for scroll-reveal sections */ .reveal-hidden { opacity: 0; transform: translateY(30px); } .reveal-visible { animation: revealUp 0.6s cubic-bezier(0.22, 1, 0.36, 1) forwards; } /* Staggered reveals — add delay-N class alongside reveal-hidden */ .reveal-delay-1 { animation-delay: 0.1s; } .reveal-delay-2 { animation-delay: 0.2s; } .reveal-delay-3 { animation-delay: 0.3s; } .reveal-delay-4 { animation-delay: 0.4s; } .reveal-delay-5 { animation-delay: 0.5s; } /* Dark catalog card (templates, integrations) */ .catalog-card { background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.06); border-radius: 1rem; transition: border-color 0.3s, background 0.3s, transform 0.3s; } .catalog-card:hover { border-color: rgba(255, 255, 255, 0.15); background: rgba(255, 255, 255, 0.05); transform: translateY(-2px); } /* Muted variant for coming-soon / disabled items */ .catalog-card-muted { background: rgba(255, 255, 255, 0.02); border: 1px solid rgba(255, 255, 255, 0.05); border-radius: 1rem; opacity: 0.55; transition: opacity 0.3s; } .catalog-card-muted:hover { opacity: 0.7; } /* Platform badge pills */ .badge-platform { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: 9999px; font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.1); color: rgba(148, 163, 184, 0.9); } /* Category badge pills */ .badge-category { display: inline-flex; align-items: center; padding: 2px 8px; border-radius: 9999px; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; } .badge-category[data-category="lead_generation"] { background: rgba(20, 184, 166, 0.15); color: #14B8A6; border: 1px solid rgba(20, 184, 166, 0.3); } .badge-category[data-category="sales"] { background: rgba(59, 130, 246, 0.15); color: #60A5FA; border: 1px solid rgba(59, 130, 246, 0.3); } .badge-category[data-category="customer_support"] { background: rgba(245, 158, 11, 0.15); color: #FBBF24; border: 1px solid rgba(245, 158, 11, 0.3); } .badge-category[data-category="onboarding"] { background: rgba(168, 85, 247, 0.15); color: #C084FC; border: 1px solid rgba(168, 85, 247, 0.3); } /* Skeleton loading line */ .skeleton-line { height: 12px; border-radius: 6px; background: linear-gradient(90deg, rgba(255, 255, 255, 0.04) 25%, rgba(255, 255, 255, 0.08) 50%, rgba(255, 255, 255, 0.04) 75%); background-size: 200% 100%; animation: shimmer 1.5s ease-in-out infinite; } /* Active category filter tab */ .category-link-active { background: rgba(15, 118, 110, 0.15); border: 1px solid rgba(20, 184, 166, 0.4); color: var(--secondary); }