Spaces:
Running
Running
| /* Hello World β Reachy Mini DevKit Landing Page */ | |
| * { margin: 0; padding: 0; box-sizing: border-box; } | |
| :root { | |
| --bg-dark: #0a0a0f; | |
| --bg-card: #14141f; | |
| --bg-card-hover: #1c1c2e; | |
| --bg-surface: #111118; | |
| --accent: #7c5cfc; | |
| --accent-light: #a78bfa; | |
| --accent-glow: rgba(124, 92, 252, 0.25); | |
| --text: #e2e0ea; | |
| --text-muted: #9490a6; | |
| --text-dim: #6b6681; | |
| --purple: #a855f7; | |
| --blue: #3b82f6; | |
| --green: #22c55e; | |
| --orange: #f59e0b; | |
| --cyan: #06b6d4; | |
| --pink: #ec4899; | |
| --radius: 16px; | |
| --radius-sm: 10px; | |
| } | |
| body { | |
| font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; | |
| line-height: 1.6; | |
| color: var(--text); | |
| background: var(--bg-dark); | |
| min-height: 100vh; | |
| } | |
| .container { max-width: 1200px; margin: 0 auto; padding: 0 1.5rem; } | |
| /* ββ Nav βββββββββββββββββββββββββββββββ */ | |
| .nav { | |
| position: sticky; | |
| top: 0; | |
| z-index: 100; | |
| background: rgba(10, 10, 15, 0.85); | |
| backdrop-filter: blur(12px); | |
| border-bottom: 1px solid rgba(124, 92, 252, 0.1); | |
| padding: 0.75rem 1.5rem; | |
| } | |
| .nav-inner { | |
| max-width: 1200px; | |
| margin: 0 auto; | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| } | |
| .nav-brand { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.5rem; | |
| font-weight: 700; | |
| font-size: 1.1rem; | |
| } | |
| .nav-icon { font-size: 1.4rem; } | |
| .nav-links { | |
| display: flex; | |
| gap: 1.5rem; | |
| } | |
| .nav-links a { | |
| color: var(--text-muted); | |
| text-decoration: none; | |
| font-size: 0.88rem; | |
| font-weight: 500; | |
| transition: color 0.2s; | |
| } | |
| .nav-links a:hover { color: var(--accent-light); } | |
| /* ββ Hero (split layout) ββββββββββββββ */ | |
| .hero { | |
| position: relative; | |
| padding: 4rem 1.5rem 2rem; | |
| overflow: hidden; | |
| background: radial-gradient(ellipse at 30% 20%, rgba(124, 92, 252, 0.2) 0%, transparent 50%), | |
| radial-gradient(ellipse at 70% 80%, rgba(59, 130, 246, 0.08) 0%, transparent 50%), | |
| var(--bg-dark); | |
| } | |
| .hero-bg { | |
| position: absolute; | |
| inset: 0; | |
| background: repeating-linear-gradient( | |
| 0deg, transparent, transparent 60px, | |
| rgba(124, 92, 252, 0.03) 60px, rgba(124, 92, 252, 0.03) 61px | |
| ), | |
| repeating-linear-gradient( | |
| 90deg, transparent, transparent 60px, | |
| rgba(124, 92, 252, 0.03) 60px, rgba(124, 92, 252, 0.03) 61px | |
| ); | |
| } | |
| .hero-split { | |
| position: relative; | |
| z-index: 1; | |
| max-width: 1200px; | |
| margin: 0 auto; | |
| display: grid; | |
| grid-template-columns: 1fr 1.1fr; | |
| gap: 3rem; | |
| align-items: center; | |
| } | |
| .hero-badge { | |
| display: inline-block; | |
| background: rgba(124, 92, 252, 0.15); | |
| border: 1px solid rgba(124, 92, 252, 0.3); | |
| color: var(--accent-light); | |
| padding: 0.3rem 0.9rem; | |
| border-radius: 50px; | |
| font-size: 0.75rem; | |
| font-weight: 600; | |
| letter-spacing: 0.04em; | |
| margin-bottom: 1.25rem; | |
| text-transform: uppercase; | |
| } | |
| .hero h1 { | |
| font-size: 2.8rem; | |
| font-weight: 800; | |
| line-height: 1.15; | |
| margin-bottom: 1rem; | |
| color: #fff; | |
| } | |
| .hero-accent { | |
| background: linear-gradient(135deg, var(--accent-light) 0%, var(--cyan) 100%); | |
| background-clip: text; | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| } | |
| .hero-tagline { | |
| font-size: 1.05rem; | |
| color: var(--text-muted); | |
| max-width: 520px; | |
| margin-bottom: 1.5rem; | |
| line-height: 1.7; | |
| } | |
| .hero-chips { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 0.5rem; | |
| margin-bottom: 1.25rem; | |
| } | |
| .chip { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 0.3rem; | |
| background: rgba(255, 255, 255, 0.06); | |
| border: 1px solid rgba(255, 255, 255, 0.08); | |
| border-radius: 50px; | |
| padding: 0.3rem 0.75rem; | |
| font-size: 0.78rem; | |
| color: var(--text); | |
| white-space: nowrap; | |
| } | |
| .hero-tech { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 0.4rem; | |
| } | |
| .tech-tag { | |
| background: rgba(124, 92, 252, 0.12); | |
| border: 1px solid rgba(124, 92, 252, 0.25); | |
| color: var(--accent-light); | |
| padding: 0.2rem 0.6rem; | |
| border-radius: 4px; | |
| font-size: 0.72rem; | |
| font-weight: 600; | |
| font-family: "SF Mono", "Fira Code", "Consolas", monospace; | |
| } | |
| .hero-image { | |
| position: relative; | |
| } | |
| .hero-image img, | |
| .hero-image video { | |
| width: 100%; | |
| border-radius: var(--radius); | |
| border: 1px solid rgba(124, 92, 252, 0.2); | |
| box-shadow: | |
| 0 4px 30px rgba(124, 92, 252, 0.15), | |
| 0 0 80px rgba(124, 92, 252, 0.08); | |
| transition: transform 0.3s; | |
| } | |
| .hero-image img:hover, | |
| .hero-image video:hover { | |
| transform: scale(1.02); | |
| } | |
| /* ββ Stats bar βββββββββββββββββββββββββ */ | |
| .stats-bar { | |
| background: var(--bg-surface); | |
| border-top: 1px solid rgba(124, 92, 252, 0.1); | |
| border-bottom: 1px solid rgba(124, 92, 252, 0.1); | |
| padding: 1.5rem 0; | |
| } | |
| .stats-bar .container { | |
| display: flex; | |
| justify-content: center; | |
| gap: 3rem; | |
| flex-wrap: wrap; | |
| } | |
| .stat { text-align: center; min-width: 70px; } | |
| .stat-number { | |
| display: block; | |
| font-size: 2rem; | |
| font-weight: 800; | |
| color: #fff; | |
| line-height: 1.2; | |
| } | |
| .stat-label { | |
| display: block; | |
| font-size: 0.7rem; | |
| color: var(--text-dim); | |
| text-transform: uppercase; | |
| letter-spacing: 0.08em; | |
| font-weight: 600; | |
| } | |
| /* ββ Section headings ββββββββββββββββββ */ | |
| .section-tag { | |
| font-size: 0.75rem; | |
| font-weight: 700; | |
| text-transform: uppercase; | |
| letter-spacing: 0.1em; | |
| color: var(--accent-light); | |
| text-align: center; | |
| margin-bottom: 0.4rem; | |
| } | |
| .section-title { | |
| font-size: 2rem; | |
| font-weight: 700; | |
| text-align: center; | |
| margin-bottom: 0.5rem; | |
| color: #fff; | |
| } | |
| .section-subtitle { | |
| text-align: center; | |
| color: var(--text-muted); | |
| font-size: 0.95rem; | |
| margin-bottom: 2.5rem; | |
| } | |
| /* ββ Screenshots βββββββββββββββββββββββ */ | |
| .screenshots { padding: 4rem 0; } | |
| .screenshot-grid { | |
| display: grid; | |
| grid-template-columns: 1fr 1fr; | |
| gap: 1.25rem; | |
| margin-top: 1.5rem; | |
| } | |
| .screenshot-card { | |
| position: relative; | |
| border-radius: var(--radius); | |
| overflow: hidden; | |
| border: 1px solid rgba(124, 92, 252, 0.15); | |
| transition: transform 0.3s, border-color 0.3s, box-shadow 0.3s; | |
| background: var(--bg-card); | |
| } | |
| .screenshot-card:hover { | |
| transform: translateY(-4px); | |
| border-color: rgba(124, 92, 252, 0.4); | |
| box-shadow: 0 8px 40px rgba(124, 92, 252, 0.12); | |
| } | |
| .screenshot-wide { grid-column: 1 / -1; } | |
| .screenshot-card img, | |
| .screenshot-card video { | |
| width: 100%; | |
| height: auto; | |
| display: block; | |
| } | |
| .screenshot-caption { | |
| padding: 1rem 1.25rem; | |
| background: linear-gradient(transparent, rgba(10, 10, 15, 0.95)); | |
| position: absolute; | |
| bottom: 0; | |
| left: 0; | |
| right: 0; | |
| } | |
| .screenshot-caption strong { | |
| display: block; | |
| font-size: 0.95rem; | |
| color: #fff; | |
| } | |
| .screenshot-caption span { | |
| font-size: 0.8rem; | |
| color: var(--text-muted); | |
| } | |
| /* ββ Features βββββββββββββββββββββββββββ */ | |
| .features { padding: 4rem 0; } | |
| .feature-grid { | |
| display: grid; | |
| grid-template-columns: repeat(3, 1fr); | |
| gap: 1rem; | |
| } | |
| .feature-card { | |
| background: var(--bg-card); | |
| border-radius: var(--radius); | |
| padding: 1.75rem; | |
| border: 1px solid rgba(255, 255, 255, 0.06); | |
| transition: transform 0.2s, border-color 0.2s, background 0.2s; | |
| } | |
| .feature-card:hover { | |
| transform: translateY(-2px); | |
| background: var(--bg-card-hover); | |
| } | |
| .feature-card.accent-purple:hover { border-color: var(--purple); } | |
| .feature-card.accent-blue:hover { border-color: var(--blue); } | |
| .feature-card.accent-green:hover { border-color: var(--green); } | |
| .feature-card.accent-orange:hover { border-color: var(--orange); } | |
| .feature-card.accent-cyan:hover { border-color: var(--cyan); } | |
| .feature-card.accent-pink:hover { border-color: var(--pink); } | |
| .feature-icon-wrap { | |
| width: 48px; | |
| height: 48px; | |
| border-radius: 12px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| font-size: 1.5rem; | |
| margin-bottom: 1rem; | |
| } | |
| .accent-purple .feature-icon-wrap { background: rgba(168, 85, 247, 0.12); } | |
| .accent-blue .feature-icon-wrap { background: rgba(59, 130, 246, 0.12); } | |
| .accent-green .feature-icon-wrap { background: rgba(34, 197, 94, 0.12); } | |
| .accent-orange .feature-icon-wrap { background: rgba(245, 158, 11, 0.12); } | |
| .accent-cyan .feature-icon-wrap { background: rgba(6, 182, 212, 0.12); } | |
| .accent-pink .feature-icon-wrap { background: rgba(236, 72, 153, 0.12); } | |
| .feature-card h3 { | |
| font-size: 1.05rem; | |
| margin-bottom: 0.5rem; | |
| color: #fff; | |
| } | |
| .feature-card p { | |
| font-size: 0.88rem; | |
| color: var(--text-muted); | |
| line-height: 1.6; | |
| } | |
| .feature-card p strong { color: var(--text); } | |
| .feature-card p em { color: var(--accent-light); font-style: normal; } | |
| /* ββ Tools ββββββββββββββββββββββββββββββ */ | |
| .tools-section { padding: 4rem 0; } | |
| .tools-grid { | |
| display: flex; | |
| flex-wrap: wrap; | |
| justify-content: center; | |
| gap: 0.6rem; | |
| } | |
| .tool-chip { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 0.4rem; | |
| background: var(--bg-card); | |
| border: 1px solid rgba(255, 255, 255, 0.08); | |
| border-radius: 50px; | |
| padding: 0.5rem 1rem; | |
| font-size: 0.85rem; | |
| color: var(--text); | |
| transition: border-color 0.2s, background 0.2s; | |
| } | |
| .tool-chip:hover { | |
| border-color: var(--accent); | |
| background: var(--bg-card-hover); | |
| } | |
| .tool-icon { font-size: 1rem; } | |
| /* ββ Pipeline βββββββββββββββββββββββββββ */ | |
| .pipeline-section { padding: 4rem 0; } | |
| .pipeline-flow { | |
| display: flex; | |
| align-items: stretch; | |
| justify-content: center; | |
| gap: 0.75rem; | |
| flex-wrap: wrap; | |
| margin: 1.5rem 0; | |
| } | |
| .pipeline-stage { | |
| background: var(--bg-card); | |
| border: 1px solid rgba(255, 255, 255, 0.06); | |
| border-radius: var(--radius-sm); | |
| padding: 1.25rem; | |
| min-width: 150px; | |
| flex: 1; | |
| max-width: 220px; | |
| text-align: center; | |
| } | |
| .stage-icon { | |
| font-size: 1.5rem; | |
| margin-bottom: 0.4rem; | |
| } | |
| .stage-header { | |
| font-size: 0.75rem; | |
| font-weight: 700; | |
| text-transform: uppercase; | |
| letter-spacing: 0.1em; | |
| color: var(--accent-light); | |
| margin-bottom: 0.75rem; | |
| } | |
| .stage-body { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0.35rem; | |
| } | |
| .provider-tag { | |
| font-size: 0.82rem; | |
| color: var(--text-muted); | |
| padding: 0.2rem 0; | |
| } | |
| .pipeline-arrow { | |
| display: flex; | |
| align-items: center; | |
| font-size: 1.5rem; | |
| color: var(--text-dim); | |
| font-weight: 300; | |
| } | |
| .pipeline-note { | |
| text-align: center; | |
| font-size: 0.85rem; | |
| color: var(--text-dim); | |
| } | |
| .pipeline-note strong { color: var(--accent-light); } | |
| /* ββ WebSocket ββββββββββββββββββββββββββ */ | |
| .ws-section { padding: 4rem 0; } | |
| .ws-grid { | |
| display: grid; | |
| grid-template-columns: repeat(4, 1fr); | |
| gap: 1rem; | |
| } | |
| .ws-card { | |
| background: var(--bg-card); | |
| border: 1px solid rgba(255, 255, 255, 0.06); | |
| border-radius: var(--radius-sm); | |
| padding: 1.25rem; | |
| text-align: center; | |
| } | |
| .ws-card code { | |
| display: block; | |
| font-size: 0.85rem; | |
| color: var(--accent-light); | |
| font-weight: 600; | |
| margin-bottom: 0.5rem; | |
| font-family: "SF Mono", "Fira Code", "Consolas", monospace; | |
| } | |
| .ws-card span { | |
| font-size: 0.8rem; | |
| color: var(--text-dim); | |
| line-height: 1.5; | |
| } | |
| /* ββ Getting Started ββββββββββββββββββββ */ | |
| .getting-started { padding: 4rem 0 5rem; } | |
| .steps-row { | |
| display: grid; | |
| grid-template-columns: repeat(3, 1fr); | |
| gap: 1.5rem; | |
| margin-top: 1rem; | |
| } | |
| .step { | |
| background: var(--bg-card); | |
| border: 1px solid rgba(255, 255, 255, 0.06); | |
| border-radius: var(--radius); | |
| padding: 2rem; | |
| text-align: center; | |
| } | |
| .step-number { | |
| width: 44px; | |
| height: 44px; | |
| border-radius: 50%; | |
| background: var(--accent); | |
| color: #fff; | |
| font-size: 1.2rem; | |
| font-weight: 700; | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| margin-bottom: 1rem; | |
| } | |
| .step h3 { | |
| font-size: 1.1rem; | |
| color: #fff; | |
| margin-bottom: 0.5rem; | |
| } | |
| .step code { | |
| display: inline-block; | |
| background: rgba(124, 92, 252, 0.1); | |
| color: var(--accent-light); | |
| padding: 0.3rem 0.75rem; | |
| border-radius: 6px; | |
| font-size: 0.85rem; | |
| font-family: "SF Mono", "Fira Code", "Consolas", monospace; | |
| margin-bottom: 0.5rem; | |
| } | |
| .step p { | |
| font-size: 0.85rem; | |
| color: var(--text-dim); | |
| } | |
| /* ββ Footer βββββββββββββββββββββββββββββ */ | |
| .footer { | |
| text-align: center; | |
| padding: 2.5rem 1.5rem; | |
| border-top: 1px solid rgba(255, 255, 255, 0.05); | |
| } | |
| .footer p { color: var(--text-dim); font-size: 0.85rem; } | |
| .footer strong { color: var(--text); } | |
| .footer a { color: var(--accent-light); text-decoration: none; } | |
| .footer a:hover { text-decoration: underline; } | |
| .footer-sub { margin-top: 0.5rem; font-size: 0.75rem; opacity: 0.6; } | |
| /* ββ Responsive βββββββββββββββββββββββββ */ | |
| @media (max-width: 900px) { | |
| .hero-split { grid-template-columns: 1fr; gap: 2rem; } | |
| .hero h1 { font-size: 2.2rem; } | |
| .hero-image { order: -1; } | |
| .feature-grid { grid-template-columns: 1fr 1fr; } | |
| .ws-grid { grid-template-columns: repeat(2, 1fr); } | |
| .steps-row { grid-template-columns: 1fr; } | |
| .nav-links { display: none; } | |
| } | |
| @media (max-width: 600px) { | |
| .hero { padding: 2rem 1rem 1.5rem; } | |
| .hero h1 { font-size: 1.8rem; } | |
| .stats-bar .container { gap: 1.5rem; } | |
| .stat-number { font-size: 1.5rem; } | |
| .screenshot-grid { grid-template-columns: 1fr; } | |
| .screenshot-wide { grid-column: auto; } | |
| .feature-grid { grid-template-columns: 1fr; } | |
| .ws-grid { grid-template-columns: 1fr; } | |
| .pipeline-flow { flex-direction: column; align-items: center; } | |
| .pipeline-arrow { transform: rotate(90deg); } | |
| .pipeline-stage { max-width: 100%; } | |
| } | |