|
| 1 | +/* ── Reset & base ── */ |
| 2 | +*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } |
| 3 | + |
| 4 | +:root { |
| 5 | + --bg: #FAFAFA; |
| 6 | + --surface: #FFFFFF; |
| 7 | + --text: #111827; |
| 8 | + --text-muted: #6B7280; |
| 9 | + --accent: #2563EB; |
| 10 | + --accent-hover: #1D4ED8; |
| 11 | + --border: #E5E7EB; |
| 12 | + --dark-bg: #0F172A; |
| 13 | + --dark-text: #F8FAFC; |
| 14 | + --font-display: 'Syne', sans-serif; |
| 15 | + --font-body: 'Inter', sans-serif; |
| 16 | + --radius: 12px; |
| 17 | + --radius-sm: 8px; |
| 18 | + --shadow-md: 0 4px 24px rgba(0,0,0,0.08); |
| 19 | + --shadow-lg: 0 16px 48px rgba(0,0,0,0.12); |
| 20 | +} |
| 21 | + |
| 22 | +html { scroll-behavior: smooth; } |
| 23 | +body { font-family: var(--font-body); background: var(--bg); color: var(--text); line-height: 1.6; } |
| 24 | +img { display: block; max-width: 100%; } |
| 25 | +a { color: inherit; text-decoration: none; } |
| 26 | + |
| 27 | +/* ── Typography ── */ |
| 28 | +h1, h2, h3 { font-family: var(--font-display); line-height: 1.1; } |
| 29 | +h1 { font-size: clamp(2.5rem, 5vw, 4rem); font-weight: 800; } |
| 30 | +h2 { font-size: clamp(1.75rem, 3vw, 2.5rem); font-weight: 700; } |
| 31 | +h3 { font-size: 1.125rem; font-weight: 700; } |
| 32 | + |
| 33 | +/* ── Buttons ── */ |
| 34 | +.btn { |
| 35 | + display: inline-flex; align-items: center; gap: 0.5rem; |
| 36 | + padding: 0.75rem 1.5rem; border-radius: var(--radius-sm); |
| 37 | + font-family: var(--font-body); font-size: 0.9375rem; font-weight: 600; |
| 38 | + cursor: pointer; transition: all 0.18s ease; border: 2px solid transparent; |
| 39 | + white-space: nowrap; |
| 40 | +} |
| 41 | +.btn-primary { |
| 42 | + background: var(--accent); color: #fff; border-color: var(--accent); |
| 43 | +} |
| 44 | +.btn-primary:hover { background: var(--accent-hover); border-color: var(--accent-hover); transform: translateY(-1px); box-shadow: 0 4px 16px rgba(37,99,235,0.35); } |
| 45 | +.btn-ghost { |
| 46 | + background: transparent; color: var(--text); border-color: var(--border); |
| 47 | +} |
| 48 | +.btn-ghost:hover { border-color: var(--accent); color: var(--accent); } |
| 49 | +.btn-xl { padding: 1rem 2rem; font-size: 1.0625rem; border-radius: var(--radius); } |
| 50 | + |
| 51 | +/* ── Container ── */ |
| 52 | +.container { max-width: 1120px; margin: 0 auto; padding: 0 1.5rem; } |
| 53 | + |
| 54 | +/* ── NAV ── */ |
| 55 | +nav { |
| 56 | + position: sticky; top: 0; z-index: 100; |
| 57 | + background: rgba(250,250,250,0.85); backdrop-filter: blur(12px); |
| 58 | + border-bottom: 1px solid var(--border); |
| 59 | +} |
| 60 | +.nav-inner { |
| 61 | + display: flex; align-items: center; justify-content: space-between; |
| 62 | + padding: 1rem 1.5rem; max-width: 1120px; margin: 0 auto; |
| 63 | +} |
| 64 | +.nav-logo { display: flex; align-items: center; gap: 0.625rem; font-family: var(--font-display); font-size: 1.25rem; font-weight: 700; } |
| 65 | +.nav-logo svg { width: 28px; height: 28px; } |
| 66 | +.nav-actions { display: flex; align-items: center; gap: 0.75rem; } |
| 67 | +.star-badge { |
| 68 | + display: inline-flex; align-items: center; gap: 0.375rem; |
| 69 | + padding: 0.375rem 0.875rem; border-radius: 100px; border: 1px solid var(--border); |
| 70 | + font-size: 0.875rem; font-weight: 500; color: var(--text-muted); |
| 71 | + transition: border-color 0.15s; |
| 72 | +} |
| 73 | +.star-badge:hover { border-color: var(--accent); color: var(--accent); } |
| 74 | + |
| 75 | +/* ── HERO ── */ |
| 76 | +.hero { |
| 77 | + padding: 5rem 0 3rem; |
| 78 | + background: radial-gradient(ellipse 80% 60% at 50% -10%, rgba(37,99,235,0.08) 0%, transparent 70%); |
| 79 | + position: relative; overflow: hidden; |
| 80 | +} |
| 81 | +.hero::before { |
| 82 | + content: ''; position: absolute; inset: 0; |
| 83 | + background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E"); |
| 84 | + pointer-events: none; |
| 85 | +} |
| 86 | +.hero-content { text-align: center; max-width: 760px; margin: 0 auto; } |
| 87 | +.eyebrow { |
| 88 | + display: inline-block; margin-bottom: 1.25rem; |
| 89 | + padding: 0.375rem 1rem; border-radius: 100px; |
| 90 | + background: rgba(37,99,235,0.08); color: var(--accent); |
| 91 | + font-size: 0.875rem; font-weight: 600; letter-spacing: 0.02em; |
| 92 | +} |
| 93 | +.hero h1 { margin-bottom: 1.25rem; } |
| 94 | +.hero p { font-size: 1.125rem; color: var(--text-muted); max-width: 580px; margin: 0 auto 2rem; line-height: 1.7; } |
| 95 | +.hero-actions { display: flex; align-items: center; justify-content: center; gap: 0.875rem; flex-wrap: wrap; } |
| 96 | +.hero-screenshot { |
| 97 | + margin: 3.5rem auto 0; max-width: 900px; padding: 0 1.5rem; |
| 98 | + transform: perspective(1200px) rotateX(2deg); transform-origin: top center; |
| 99 | +} |
| 100 | +.hero-screenshot img { |
| 101 | + border-radius: var(--radius); box-shadow: var(--shadow-lg), 0 0 0 1px var(--border); |
| 102 | + width: 100%; |
| 103 | +} |
| 104 | + |
| 105 | +/* ── HOOK STRIP ── */ |
| 106 | +.hook-strip { padding: 2.5rem 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); background: var(--surface); } |
| 107 | +.hook-strip-inner { display: flex; align-items: center; justify-content: center; gap: 1rem; flex-wrap: wrap; } |
| 108 | +.hook-pill { |
| 109 | + display: inline-flex; align-items: center; gap: 0.5rem; |
| 110 | + padding: 0.625rem 1.25rem; border-radius: 100px; |
| 111 | + background: var(--bg); border: 1px solid var(--border); |
| 112 | + font-size: 0.9375rem; font-weight: 500; |
| 113 | +} |
| 114 | +.hook-pill .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--accent); flex-shrink: 0; } |
| 115 | + |
| 116 | +/* ── FEATURES ── */ |
| 117 | +.features { padding: 5rem 0; } |
| 118 | +.section-header { text-align: center; margin-bottom: 3rem; } |
| 119 | +.section-header p { color: var(--text-muted); font-size: 1.0625rem; margin-top: 0.75rem; } |
| 120 | +.features-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1.5rem; } |
| 121 | +.feature-card { |
| 122 | + background: var(--surface); border: 1px solid var(--border); |
| 123 | + border-radius: var(--radius); padding: 1.75rem; |
| 124 | + transition: border-color 0.18s, box-shadow 0.18s; |
| 125 | +} |
| 126 | +.feature-card:hover { border-color: var(--accent); box-shadow: var(--shadow-md); } |
| 127 | +.feature-icon { font-size: 1.75rem; margin-bottom: 1rem; } |
| 128 | +.feature-card h3 { margin-bottom: 0.5rem; } |
| 129 | +.feature-card p { color: var(--text-muted); font-size: 0.9375rem; line-height: 1.6; } |
| 130 | + |
| 131 | +/* ── SCREENSHOT SECTION ── */ |
| 132 | +.screenshot-section { padding: 5rem 0; background: var(--surface); } |
| 133 | +.screenshot-section .section-header { margin-bottom: 2.5rem; } |
| 134 | +.screenshot-wrapper { |
| 135 | + position: relative; max-width: 960px; margin: 0 auto; |
| 136 | + border-radius: var(--radius); overflow: hidden; |
| 137 | + box-shadow: var(--shadow-lg); border: 1px solid var(--border); |
| 138 | +} |
| 139 | +.screenshot-wrapper img { width: 100%; display: block; } |
| 140 | + |
| 141 | +/* ── HOW IT WORKS ── */ |
| 142 | +.how-it-works { padding: 5rem 0; } |
| 143 | +.steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 2rem; max-width: 800px; margin: 0 auto; } |
| 144 | +.step { text-align: center; } |
| 145 | +.step-number { |
| 146 | + width: 3rem; height: 3rem; border-radius: 50%; |
| 147 | + background: var(--accent); color: #fff; |
| 148 | + font-family: var(--font-display); font-size: 1.25rem; font-weight: 800; |
| 149 | + display: flex; align-items: center; justify-content: center; |
| 150 | + margin: 0 auto 1rem; |
| 151 | +} |
| 152 | +.step h3 { margin-bottom: 0.5rem; } |
| 153 | +.step p { color: var(--text-muted); font-size: 0.9375rem; } |
| 154 | + |
| 155 | +/* ── DOWNLOAD CTA ── */ |
| 156 | +.cta-section { |
| 157 | + padding: 5rem 0; background: var(--dark-bg); color: var(--dark-text); text-align: center; |
| 158 | +} |
| 159 | +.cta-section h2 { color: var(--dark-text); margin-bottom: 1rem; } |
| 160 | +.cta-section p { color: rgba(248,250,252,0.65); font-size: 1.0625rem; margin-bottom: 2rem; } |
| 161 | +.cta-badges { display: flex; align-items: center; justify-content: center; gap: 0.75rem; margin-top: 1.5rem; flex-wrap: wrap; } |
| 162 | +.badge { |
| 163 | + display: inline-flex; align-items: center; gap: 0.375rem; |
| 164 | + padding: 0.375rem 0.875rem; border-radius: 100px; |
| 165 | + border: 1px solid rgba(248,250,252,0.15); color: rgba(248,250,252,0.65); |
| 166 | + font-size: 0.8125rem; |
| 167 | +} |
| 168 | +.cta-section .btn-primary { box-shadow: 0 4px 24px rgba(37,99,235,0.45); } |
| 169 | + |
| 170 | +/* ── FOOTER ── */ |
| 171 | +footer { |
| 172 | + padding: 2rem 0; background: var(--dark-bg); |
| 173 | + border-top: 1px solid rgba(248,250,252,0.08); |
| 174 | +} |
| 175 | +.footer-inner { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; } |
| 176 | +.footer-links { display: flex; gap: 1.5rem; } |
| 177 | +.footer-links a { color: rgba(248,250,252,0.5); font-size: 0.875rem; transition: color 0.15s; } |
| 178 | +.footer-links a:hover { color: var(--dark-text); } |
| 179 | +.footer-copy { color: rgba(248,250,252,0.35); font-size: 0.875rem; } |
| 180 | + |
| 181 | +/* ── Scroll reveal ── */ |
| 182 | +.reveal { opacity: 0; transform: translateY(20px); transition: opacity 0.55s ease, transform 0.55s ease; } |
| 183 | +.reveal.visible { opacity: 1; transform: translateY(0); } |
| 184 | + |
| 185 | +/* ── Responsive ── */ |
| 186 | +@media (max-width: 640px) { |
| 187 | + .nav-actions .star-badge { display: none; } |
| 188 | + .hero { padding: 3.5rem 0 2rem; } |
| 189 | + .footer-inner { flex-direction: column; text-align: center; } |
| 190 | + .footer-links { justify-content: center; } |
| 191 | +} |
0 commit comments