AnjulRSharma commited on
Commit
50ae038
·
1 Parent(s): 9a88e93

Polish STT landing page

Browse files
Files changed (3) hide show
  1. README.md +1 -0
  2. index.html +247 -193
  3. style.css +367 -118
README.md CHANGED
@@ -1,5 +1,6 @@
1
  ---
2
  title: Ringg Parrot STT V1
 
3
  colorFrom: blue
4
  colorTo: purple
5
  sdk: static
 
1
  ---
2
  title: Ringg Parrot STT V1
3
+ emoji: 🦜
4
  colorFrom: blue
5
  colorTo: purple
6
  sdk: static
index.html CHANGED
@@ -11,42 +11,79 @@
11
  <link rel="stylesheet" href="style.css" />
12
  </head>
13
  <body>
14
- <header class="hero">
15
- <nav class="nav" aria-label="Primary navigation">
16
  <a class="brand" href="#top" aria-label="Ringg Parrot STT V1 home">
17
- Ringg Parrot STT V1
 
18
  </a>
19
  <div class="nav-links">
20
  <a href="#benchmarks">Benchmarks</a>
21
  <a href="#integration">Integration</a>
22
  <a href="#access">Access</a>
23
  </div>
 
 
 
24
  </nav>
25
 
26
- <section class="hero-content" id="top">
27
- <p class="eyebrow">Proprietary Hindi-English code-mixed ASR</p>
28
- <h1>High-accuracy speech-to-text for business voice applications.</h1>
29
- <p class="hero-copy">
30
- Ringg Parrot STT V1 supports Hindi, English, and Hindi-English
31
- code-mixed speech for real-time voice products, AI agents, and
32
- production transcription workflows.
33
- </p>
34
- <div class="cta-row">
35
- <a class="button primary" href="https://ringg.ai/dashboard/stt" target="_blank" rel="noreferrer">
36
- Open Playground
37
- </a>
38
- <a class="button secondary" href="https://pypi.org/project/ringglabs/" target="_blank" rel="noreferrer">
39
- View Python SDK
40
- </a>
 
 
 
 
 
 
 
 
 
 
41
  </div>
42
- <p class="notice">
43
- Model weights, training code, and internal implementation are not open sourced.
44
- </p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45
  </section>
46
  </header>
47
 
48
- <main>
49
- <section class="metrics" aria-label="Key product metrics">
50
  <article class="metric-card">
51
  <span class="metric-value">60-80ms</span>
52
  <span class="metric-label">Typical streaming latency</span>
@@ -56,37 +93,46 @@
56
  <span class="metric-label">Code-mixed speech support</span>
57
  </article>
58
  <article class="metric-card">
59
- <span class="metric-value">Private</span>
60
- <span class="metric-label">Proprietary model access</span>
61
  </article>
62
  </section>
63
 
64
- <section class="section grid-two" id="access">
65
- <div>
66
- <p class="section-label">Access</p>
67
- <h2>Available through hosted evaluation and commercial access.</h2>
 
 
 
 
 
68
  </div>
69
- <div class="card">
70
- <ul class="check-list">
71
  <li>Playground access is available at ringg.ai.</li>
72
  <li>Model weights are not available for download from this Space.</li>
73
- <li>Internal source code and training implementation are not open sourced.</li>
74
- <li>Production and commercial access requires contacting RinggAI.</li>
75
  </ul>
76
  <a class="text-link" href="mailto:sales@ringg.ai">Contact sales@ringg.ai</a>
77
  </div>
78
  </section>
79
 
80
- <section class="section grid-two" id="integration">
81
- <div>
82
- <p class="section-label">SDK and Integration</p>
83
- <h2>Built for real-time voice products and agent pipelines.</h2>
 
 
 
 
 
84
  </div>
85
- <div class="card">
86
- <ul class="check-list">
87
  <li>Python SDK is available through the ringglabs package on PyPI.</li>
88
- <li>Highly compatible with Pipecat toolkit using built-in VAD events.</li>
89
- <li>Refer to the SDK documentation for integration details.</li>
90
  </ul>
91
  <a class="text-link" href="https://pypi.org/project/ringglabs/" target="_blank" rel="noreferrer">
92
  View ringglabs on PyPI
@@ -96,196 +142,204 @@
96
 
97
  <section class="section" id="benchmarks">
98
  <div class="section-heading">
99
- <p class="section-label">Benchmarks</p>
100
  <h2>WER comparison across ASR benchmark datasets.</h2>
101
  <p>
102
- WER stands for Word Error Rate. Lower values indicate better transcription
103
- accuracy. The lowest WER in each row is highlighted.
104
  </p>
105
  </div>
106
 
107
- <div class="table-block">
108
- <h3>Original WER</h3>
109
- <div class="table-wrap">
110
- <table>
111
- <thead>
112
- <tr>
113
- <th>Dataset</th>
114
- <th>Ringg</th>
115
- <th>ElevenLabs</th>
116
- <th>Deepgram</th>
117
- <th>Sarvam</th>
118
- </tr>
119
- </thead>
120
- <tbody>
121
- <tr>
122
- <td>indictts</td>
123
- <td><strong>11.58</strong></td>
124
- <td>16.06</td>
125
- <td>13.65</td>
126
- <td>15.37</td>
127
- </tr>
128
- <tr>
129
- <td>commonvoice</td>
130
- <td><strong>14.30</strong></td>
131
- <td>16.59</td>
132
- <td>20.04</td>
133
- <td>18.21</td>
134
- </tr>
135
- <tr>
136
- <td>fleurs</td>
137
- <td>15.20</td>
138
- <td><strong>11.99</strong></td>
139
- <td>17.14</td>
140
- <td>16.00</td>
141
- </tr>
142
- <tr>
143
- <td>kathbath</td>
144
- <td><strong>11.78</strong></td>
145
- <td>13.24</td>
146
- <td>15.93</td>
147
- <td>17.53</td>
148
- </tr>
149
- <tr>
150
- <td>kathbath_noisy</td>
151
- <td><strong>13.09</strong></td>
152
- <td>13.14</td>
153
- <td>17.44</td>
154
- <td>16.19</td>
155
- </tr>
156
- <tr>
157
- <td>mucs</td>
158
- <td>14.55</td>
159
- <td><strong>11.69</strong></td>
160
- <td>21.97</td>
161
- <td>16.72</td>
162
- </tr>
163
- <tr>
164
- <td>Overall WER</td>
165
- <td>13.79</td>
166
- <td><strong>13.00</strong></td>
167
- <td>19.23</td>
168
- <td>16.72</td>
169
- </tr>
170
- </tbody>
171
- </table>
 
 
 
 
 
172
  </div>
173
- </div>
174
 
175
- <div class="table-block">
176
- <h3>Normalized WER</h3>
177
- <div class="table-wrap">
178
- <table>
179
- <thead>
180
- <tr>
181
- <th>Dataset</th>
182
- <th>Ringg</th>
183
- <th>ElevenLabs</th>
184
- <th>Deepgram</th>
185
- <th>Sarvam</th>
186
- </tr>
187
- </thead>
188
- <tbody>
189
- <tr>
190
- <td>indictts</td>
191
- <td><strong>3.94</strong></td>
192
- <td>8.52</td>
193
- <td>6.93</td>
194
- <td>7.84</td>
195
- </tr>
196
- <tr>
197
- <td>commonvoice</td>
198
- <td><strong>6.37</strong></td>
199
- <td>13.02</td>
200
- <td>14.88</td>
201
- <td>13.06</td>
202
- </tr>
203
- <tr>
204
- <td>fleurs</td>
205
- <td>9.73</td>
206
- <td><strong>7.67</strong></td>
207
- <td>11.35</td>
208
- <td>9.54</td>
209
- </tr>
210
- <tr>
211
- <td>kathbath</td>
212
- <td><strong>7.15</strong></td>
213
- <td>10.15</td>
214
- <td>11.38</td>
215
- <td>10.41</td>
216
- </tr>
217
- <tr>
218
- <td>kathbath_noisy</td>
219
- <td><strong>8.37</strong></td>
220
- <td>10.01</td>
221
- <td>12.98</td>
222
- <td>11.78</td>
223
- </tr>
224
- <tr>
225
- <td>mucs</td>
226
- <td><strong>6.28</strong></td>
227
- <td>6.75</td>
228
- <td>12.07</td>
229
- <td>7.58</td>
230
- </tr>
231
- <tr>
232
- <td>Overall WER</td>
233
- <td><strong>7.27</strong></td>
234
- <td>8.94</td>
235
- <td>12.36</td>
236
- <td>9.76</td>
237
- </tr>
238
- </tbody>
239
- </table>
 
 
 
 
240
  </div>
241
  </div>
242
  </section>
243
 
244
  <section class="section feature-grid">
245
- <article class="card">
246
  <h2>Features</h2>
247
- <ul class="check-list">
248
  <li>Hindi-English code-mixed speech recognition.</li>
249
  <li>Real-time streaming transcription.</li>
250
  <li>File-based transcription for common audio formats.</li>
251
  <li>Low-latency inference for voice products.</li>
252
  </ul>
253
  </article>
254
- <article class="card">
255
  <h2>Supported Inputs</h2>
256
- <ul class="check-list">
257
  <li>Hindi, English, and code-mixed speech.</li>
258
  <li>Clear audio with minimal background noise.</li>
259
  <li>16kHz or higher sample rate recommended.</li>
260
  <li>WAV, MP3, FLAC, M4A, OGG, and OPUS.</li>
261
  </ul>
262
  </article>
263
- <article class="card">
264
  <h2>Use Cases</h2>
265
- <ul class="check-list">
266
  <li>Voice assistants and AI agents.</li>
267
  <li>Contact center transcription.</li>
268
  <li>Meeting and conversation intelligence.</li>
269
  <li>Voice search, subtitling, and accessibility workflows.</li>
270
  </ul>
271
  </article>
272
- <article class="card">
273
  <h2>Limitations</h2>
274
- <ul class="check-list">
275
  <li>Accuracy may vary with noisy or low-quality audio.</li>
276
- <li>Overlapping speakers and strong dialect variation can affect quality.</li>
277
  <li>Very long files or unsupported encodings may require preprocessing.</li>
278
  <li>The hosted demo may differ from production deployment settings.</li>
279
  </ul>
280
  </article>
281
  </section>
282
 
283
- <section class="section grid-two">
284
- <div>
285
- <p class="section-label">Benchmark Dataset</p>
286
  <h2>Released benchmark data and ASR transcriptions.</h2>
287
  </div>
288
- <div class="card">
289
  <p>
290
  RinggAI has released the ASR Benchmarking Open-Source Dataset, which
291
  includes benchmark audio/data and transcriptions generated by Ringg,
@@ -294,12 +348,12 @@
294
  </div>
295
  </section>
296
 
297
- <section class="section grid-two">
298
- <div>
299
- <p class="section-label">Privacy and Data Notice</p>
300
  <h2>Review deployment terms before using sensitive data.</h2>
301
  </div>
302
- <div class="card">
303
  <p>
304
  Audio handling may depend on the selected deployment, integration, and
305
  commercial terms. Review RinggAI privacy terms and deployment
@@ -310,7 +364,7 @@
310
  </section>
311
  </main>
312
 
313
- <footer class="footer">
314
  <div>
315
  <strong>RinggAI</strong>
316
  <p>Built by the RinggAI Team.</p>
 
11
  <link rel="stylesheet" href="style.css" />
12
  </head>
13
  <body>
14
+ <header class="site-header">
15
+ <nav class="nav shell" aria-label="Primary navigation">
16
  <a class="brand" href="#top" aria-label="Ringg Parrot STT V1 home">
17
+ <span class="brand-mark">R</span>
18
+ <span>Ringg Parrot STT</span>
19
  </a>
20
  <div class="nav-links">
21
  <a href="#benchmarks">Benchmarks</a>
22
  <a href="#integration">Integration</a>
23
  <a href="#access">Access</a>
24
  </div>
25
+ <a class="nav-cta" href="https://ringg.ai/dashboard/stt" target="_blank" rel="noreferrer">
26
+ Open Playground
27
+ </a>
28
  </nav>
29
 
30
+ <section class="hero shell" id="top">
31
+ <div class="hero-copy">
32
+ <div class="tag-row">
33
+ <span class="pill">Proprietary ASR</span>
34
+ <span>Hindi-English code-mixed speech</span>
35
+ </div>
36
+ <h1>Production-ready speech-to-text for Hindi-English voice workflows.</h1>
37
+ <p class="lead">
38
+ Ringg Parrot STT V1 is built for real-time voice products, AI agents,
39
+ contact centers, and business transcription workflows that need
40
+ reliable Hindi, English, and code-mixed recognition.
41
+ </p>
42
+ <div class="cta-row">
43
+ <a class="button primary" href="https://ringg.ai/dashboard/stt" target="_blank" rel="noreferrer">
44
+ Try the Playground
45
+ </a>
46
+ <a class="button secondary" href="https://pypi.org/project/ringglabs/" target="_blank" rel="noreferrer">
47
+ View Python SDK
48
+ </a>
49
+ </div>
50
+ <div class="proof-row" aria-label="Product highlights">
51
+ <span>60-80ms streaming latency</span>
52
+ <span>Pipecat VAD events</span>
53
+ <span>Private model access</span>
54
+ </div>
55
  </div>
56
+
57
+ <aside class="hero-panel" aria-label="Product summary">
58
+ <div class="panel-header">
59
+ <span>Streaming STT</span>
60
+ <strong>V1</strong>
61
+ </div>
62
+ <div class="signal-card">
63
+ <span class="signal-label">Typical latency</span>
64
+ <strong>60-80ms</strong>
65
+ <p>Designed for low-latency streaming voice experiences.</p>
66
+ </div>
67
+ <div class="panel-list">
68
+ <div>
69
+ <span>Languages</span>
70
+ <strong>Hindi, English, code-mix</strong>
71
+ </div>
72
+ <div>
73
+ <span>Integration</span>
74
+ <strong>SDK and Pipecat-ready events</strong>
75
+ </div>
76
+ <div>
77
+ <span>Access</span>
78
+ <strong>Hosted evaluation and commercial access</strong>
79
+ </div>
80
+ </div>
81
+ </aside>
82
  </section>
83
  </header>
84
 
85
+ <main class="shell">
86
+ <section class="metric-strip" aria-label="Key product metrics">
87
  <article class="metric-card">
88
  <span class="metric-value">60-80ms</span>
89
  <span class="metric-label">Typical streaming latency</span>
 
93
  <span class="metric-label">Code-mixed speech support</span>
94
  </article>
95
  <article class="metric-card">
96
+ <span class="metric-value">Proprietary</span>
97
+ <span class="metric-label">Private model and implementation</span>
98
  </article>
99
  </section>
100
 
101
+ <section class="section split" id="access">
102
+ <div class="section-copy">
103
+ <p class="section-kicker">Access</p>
104
+ <h2>Evaluate in the playground. Contact RinggAI for production access.</h2>
105
+ <p>
106
+ This Space provides product information for Ringg Parrot STT V1. The
107
+ model weights, training code, and internal implementation are not open
108
+ sourced.
109
+ </p>
110
  </div>
111
+ <div class="info-card">
112
+ <ul class="clean-list">
113
  <li>Playground access is available at ringg.ai.</li>
114
  <li>Model weights are not available for download from this Space.</li>
115
+ <li>Production and commercial access requires RinggAI approval.</li>
 
116
  </ul>
117
  <a class="text-link" href="mailto:sales@ringg.ai">Contact sales@ringg.ai</a>
118
  </div>
119
  </section>
120
 
121
+ <section class="section split" id="integration">
122
+ <div class="section-copy">
123
+ <p class="section-kicker">SDK and Integration</p>
124
+ <h2>Integrate with voice-agent and real-time audio pipelines.</h2>
125
+ <p>
126
+ The Ringg SDK helps developers connect Ringg STT into application
127
+ workflows. Ringg Parrot STT V1 is highly compatible with Pipecat
128
+ toolkit using built-in VAD events.
129
+ </p>
130
  </div>
131
+ <div class="info-card">
132
+ <ul class="clean-list">
133
  <li>Python SDK is available through the ringglabs package on PyPI.</li>
134
+ <li>Built for low-latency streaming speech recognition.</li>
135
+ <li>Supports modern voice-agent orchestration patterns.</li>
136
  </ul>
137
  <a class="text-link" href="https://pypi.org/project/ringglabs/" target="_blank" rel="noreferrer">
138
  View ringglabs on PyPI
 
142
 
143
  <section class="section" id="benchmarks">
144
  <div class="section-heading">
145
+ <p class="section-kicker">Benchmarks</p>
146
  <h2>WER comparison across ASR benchmark datasets.</h2>
147
  <p>
148
+ WER stands for Word Error Rate. Lower values indicate better
149
+ transcription accuracy. The lowest WER in each row is highlighted.
150
  </p>
151
  </div>
152
 
153
+ <div class="benchmark-grid">
154
+ <div class="table-card">
155
+ <div class="table-title">
156
+ <h3>Original WER</h3>
157
+ <span>Lower is better</span>
158
+ </div>
159
+ <div class="table-wrap">
160
+ <table>
161
+ <thead>
162
+ <tr>
163
+ <th>Dataset</th>
164
+ <th>Ringg</th>
165
+ <th>ElevenLabs</th>
166
+ <th>Deepgram</th>
167
+ <th>Sarvam</th>
168
+ </tr>
169
+ </thead>
170
+ <tbody>
171
+ <tr>
172
+ <td>indictts</td>
173
+ <td><strong>11.58</strong></td>
174
+ <td>16.06</td>
175
+ <td>13.65</td>
176
+ <td>15.37</td>
177
+ </tr>
178
+ <tr>
179
+ <td>commonvoice</td>
180
+ <td><strong>14.30</strong></td>
181
+ <td>16.59</td>
182
+ <td>20.04</td>
183
+ <td>18.21</td>
184
+ </tr>
185
+ <tr>
186
+ <td>fleurs</td>
187
+ <td>15.20</td>
188
+ <td><strong>11.99</strong></td>
189
+ <td>17.14</td>
190
+ <td>16.00</td>
191
+ </tr>
192
+ <tr>
193
+ <td>kathbath</td>
194
+ <td><strong>11.78</strong></td>
195
+ <td>13.24</td>
196
+ <td>15.93</td>
197
+ <td>17.53</td>
198
+ </tr>
199
+ <tr>
200
+ <td>kathbath_noisy</td>
201
+ <td><strong>13.09</strong></td>
202
+ <td>13.14</td>
203
+ <td>17.44</td>
204
+ <td>16.19</td>
205
+ </tr>
206
+ <tr>
207
+ <td>mucs</td>
208
+ <td>14.55</td>
209
+ <td><strong>11.69</strong></td>
210
+ <td>21.97</td>
211
+ <td>16.72</td>
212
+ </tr>
213
+ <tr>
214
+ <td>Overall WER</td>
215
+ <td>13.79</td>
216
+ <td><strong>13.00</strong></td>
217
+ <td>19.23</td>
218
+ <td>16.72</td>
219
+ </tr>
220
+ </tbody>
221
+ </table>
222
+ </div>
223
  </div>
 
224
 
225
+ <div class="table-card">
226
+ <div class="table-title">
227
+ <h3>Normalized WER</h3>
228
+ <span>Lower is better</span>
229
+ </div>
230
+ <div class="table-wrap">
231
+ <table>
232
+ <thead>
233
+ <tr>
234
+ <th>Dataset</th>
235
+ <th>Ringg</th>
236
+ <th>ElevenLabs</th>
237
+ <th>Deepgram</th>
238
+ <th>Sarvam</th>
239
+ </tr>
240
+ </thead>
241
+ <tbody>
242
+ <tr>
243
+ <td>indictts</td>
244
+ <td><strong>3.94</strong></td>
245
+ <td>8.52</td>
246
+ <td>6.93</td>
247
+ <td>7.84</td>
248
+ </tr>
249
+ <tr>
250
+ <td>commonvoice</td>
251
+ <td><strong>6.37</strong></td>
252
+ <td>13.02</td>
253
+ <td>14.88</td>
254
+ <td>13.06</td>
255
+ </tr>
256
+ <tr>
257
+ <td>fleurs</td>
258
+ <td>9.73</td>
259
+ <td><strong>7.67</strong></td>
260
+ <td>11.35</td>
261
+ <td>9.54</td>
262
+ </tr>
263
+ <tr>
264
+ <td>kathbath</td>
265
+ <td><strong>7.15</strong></td>
266
+ <td>10.15</td>
267
+ <td>11.38</td>
268
+ <td>10.41</td>
269
+ </tr>
270
+ <tr>
271
+ <td>kathbath_noisy</td>
272
+ <td><strong>8.37</strong></td>
273
+ <td>10.01</td>
274
+ <td>12.98</td>
275
+ <td>11.78</td>
276
+ </tr>
277
+ <tr>
278
+ <td>mucs</td>
279
+ <td><strong>6.28</strong></td>
280
+ <td>6.75</td>
281
+ <td>12.07</td>
282
+ <td>7.58</td>
283
+ </tr>
284
+ <tr>
285
+ <td>Overall WER</td>
286
+ <td><strong>7.27</strong></td>
287
+ <td>8.94</td>
288
+ <td>12.36</td>
289
+ <td>9.76</td>
290
+ </tr>
291
+ </tbody>
292
+ </table>
293
+ </div>
294
  </div>
295
  </div>
296
  </section>
297
 
298
  <section class="section feature-grid">
299
+ <article class="feature-card">
300
  <h2>Features</h2>
301
+ <ul class="clean-list">
302
  <li>Hindi-English code-mixed speech recognition.</li>
303
  <li>Real-time streaming transcription.</li>
304
  <li>File-based transcription for common audio formats.</li>
305
  <li>Low-latency inference for voice products.</li>
306
  </ul>
307
  </article>
308
+ <article class="feature-card">
309
  <h2>Supported Inputs</h2>
310
+ <ul class="clean-list">
311
  <li>Hindi, English, and code-mixed speech.</li>
312
  <li>Clear audio with minimal background noise.</li>
313
  <li>16kHz or higher sample rate recommended.</li>
314
  <li>WAV, MP3, FLAC, M4A, OGG, and OPUS.</li>
315
  </ul>
316
  </article>
317
+ <article class="feature-card">
318
  <h2>Use Cases</h2>
319
+ <ul class="clean-list">
320
  <li>Voice assistants and AI agents.</li>
321
  <li>Contact center transcription.</li>
322
  <li>Meeting and conversation intelligence.</li>
323
  <li>Voice search, subtitling, and accessibility workflows.</li>
324
  </ul>
325
  </article>
326
+ <article class="feature-card">
327
  <h2>Limitations</h2>
328
+ <ul class="clean-list">
329
  <li>Accuracy may vary with noisy or low-quality audio.</li>
330
+ <li>Overlapping speakers and dialect variation can affect quality.</li>
331
  <li>Very long files or unsupported encodings may require preprocessing.</li>
332
  <li>The hosted demo may differ from production deployment settings.</li>
333
  </ul>
334
  </article>
335
  </section>
336
 
337
+ <section class="section split">
338
+ <div class="section-copy">
339
+ <p class="section-kicker">Benchmark Dataset</p>
340
  <h2>Released benchmark data and ASR transcriptions.</h2>
341
  </div>
342
+ <div class="info-card">
343
  <p>
344
  RinggAI has released the ASR Benchmarking Open-Source Dataset, which
345
  includes benchmark audio/data and transcriptions generated by Ringg,
 
348
  </div>
349
  </section>
350
 
351
+ <section class="section split">
352
+ <div class="section-copy">
353
+ <p class="section-kicker">Privacy and Data Notice</p>
354
  <h2>Review deployment terms before using sensitive data.</h2>
355
  </div>
356
+ <div class="info-card">
357
  <p>
358
  Audio handling may depend on the selected deployment, integration, and
359
  commercial terms. Review RinggAI privacy terms and deployment
 
364
  </section>
365
  </main>
366
 
367
+ <footer class="footer shell">
368
  <div>
369
  <strong>RinggAI</strong>
370
  <p>Built by the RinggAI Team.</p>
style.css CHANGED
@@ -1,15 +1,18 @@
1
  :root {
2
- --background: #07111f;
3
- --surface: #0d1b2e;
4
- --surface-soft: #11243d;
5
- --border: #223956;
6
- --text: #eef5ff;
7
- --muted: #a9b7ca;
8
- --accent: #4f8cff;
9
- --accent-strong: #2e6feb;
10
- --accent-soft: rgba(79, 140, 255, 0.16);
11
- --success: #55d6a7;
12
- --shadow: 0 24px 80px rgba(0, 0, 0, 0.28);
 
 
 
13
  }
14
 
15
  * {
@@ -23,12 +26,13 @@ html {
23
  body {
24
  margin: 0;
25
  background:
26
- radial-gradient(circle at top left, rgba(79, 140, 255, 0.22), transparent 34rem),
27
- linear-gradient(180deg, #07111f 0%, #091526 48%, #07111f 100%);
28
  color: var(--text);
29
  font-family:
30
  Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
31
  sans-serif;
 
32
  line-height: 1.6;
33
  }
34
 
@@ -48,15 +52,13 @@ p {
48
  color: var(--muted);
49
  }
50
 
51
- .hero,
52
- main,
53
- .footer {
54
- width: min(1180px, calc(100% - 40px));
55
  margin: 0 auto;
56
  }
57
 
58
- .hero {
59
- padding: 28px 0 40px;
60
  }
61
 
62
  .nav {
@@ -64,73 +66,130 @@ main,
64
  align-items: center;
65
  justify-content: space-between;
66
  gap: 24px;
67
- margin-bottom: 72px;
 
 
 
 
 
 
68
  }
69
 
70
  .brand {
71
- font-size: 15px;
 
 
 
72
  font-weight: 800;
73
- letter-spacing: 0.02em;
 
 
 
 
 
 
 
 
 
 
 
74
  }
75
 
76
  .nav-links {
77
  display: flex;
78
- flex-wrap: wrap;
79
- gap: 18px;
80
  color: var(--muted);
81
  font-size: 14px;
 
82
  }
83
 
84
  .nav-links a:hover,
85
- .text-link:hover,
86
- .footer-links a:hover {
87
- color: var(--text);
88
  }
89
 
90
- .hero-content {
91
- max-width: 880px;
92
- padding: 56px;
93
- border: 1px solid var(--border);
94
- border-radius: 32px;
95
- background:
96
- linear-gradient(135deg, rgba(79, 140, 255, 0.18), transparent 44%),
97
- rgba(13, 27, 46, 0.88);
98
- box-shadow: var(--shadow);
 
 
99
  }
100
 
101
- .eyebrow,
102
- .section-label {
103
- color: var(--success);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
104
  font-size: 13px;
105
- font-weight: 800;
106
- letter-spacing: 0.12em;
107
  text-transform: uppercase;
108
  }
109
 
110
  h1 {
111
- max-width: 820px;
112
  margin-bottom: 22px;
113
- font-size: clamp(44px, 8vw, 86px);
114
- line-height: 0.98;
115
- letter-spacing: -0.06em;
 
116
  }
117
 
118
  h2 {
119
- margin-bottom: 16px;
120
- font-size: clamp(28px, 4vw, 44px);
121
- line-height: 1.08;
 
122
  letter-spacing: -0.04em;
123
  }
124
 
125
  h3 {
126
- margin-bottom: 16px;
127
- font-size: 22px;
 
128
  letter-spacing: -0.02em;
129
  }
130
 
131
- .hero-copy {
132
- max-width: 720px;
133
- font-size: 20px;
 
 
 
134
  }
135
 
136
  .cta-row {
@@ -146,49 +205,164 @@ h3 {
146
  justify-content: center;
147
  min-height: 48px;
148
  padding: 0 22px;
149
- border-radius: 999px;
150
- font-weight: 800;
 
 
 
 
 
 
 
 
 
151
  }
152
 
153
  .button.primary {
154
  background: var(--accent);
155
  color: #ffffff;
156
- box-shadow: 0 14px 30px rgba(79, 140, 255, 0.3);
157
  }
158
 
159
  .button.primary:hover {
160
- background: var(--accent-strong);
161
  }
162
 
163
  .button.secondary {
164
  border: 1px solid var(--border);
165
- background: rgba(255, 255, 255, 0.04);
166
  color: var(--text);
 
167
  }
168
 
169
  .button.secondary:hover {
170
- border-color: var(--accent);
171
  }
172
 
173
- .notice {
174
- margin-bottom: 0;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
175
  font-size: 14px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
176
  }
177
 
178
- .metrics {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
179
  display: grid;
180
- grid-template-columns: repeat(3, 1fr);
 
 
 
 
 
 
181
  gap: 18px;
182
- margin: 24px 0 84px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
183
  }
184
 
185
  .metric-card,
186
- .card,
187
- .table-block {
 
188
  border: 1px solid var(--border);
189
- border-radius: 24px;
190
- background: rgba(13, 27, 46, 0.78);
191
- box-shadow: 0 14px 50px rgba(0, 0, 0, 0.18);
192
  }
193
 
194
  .metric-card {
@@ -201,9 +375,9 @@ h3 {
201
  }
202
 
203
  .metric-value {
204
- margin-bottom: 8px;
205
  color: var(--text);
206
- font-size: 26px;
207
  font-weight: 900;
208
  letter-spacing: -0.04em;
209
  }
@@ -217,74 +391,109 @@ h3 {
217
  margin-bottom: 84px;
218
  }
219
 
220
- .grid-two {
221
  display: grid;
222
- grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
223
- gap: 36px;
224
  align-items: start;
225
  }
226
 
227
- .card {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
228
  padding: 28px;
229
  }
230
 
231
- .check-list {
232
  display: grid;
233
- gap: 10px;
234
- margin: 0 0 18px;
235
  padding: 0;
236
  list-style: none;
237
  color: var(--muted);
238
  }
239
 
240
- .check-list li {
241
  position: relative;
242
- padding-left: 22px;
243
  }
244
 
245
- .check-list li::before {
246
  position: absolute;
247
  left: 0;
248
- top: 0.7em;
249
- width: 8px;
250
- height: 8px;
251
  border-radius: 999px;
252
  background: var(--accent);
253
  content: "";
254
  }
255
 
256
  .text-link {
257
- color: var(--success);
258
- font-weight: 800;
259
  }
260
 
261
  .section-heading {
262
- max-width: 760px;
263
  margin-bottom: 28px;
264
  }
265
 
266
- .table-block {
267
- margin-top: 20px;
268
- padding: 26px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
269
  }
270
 
271
  .table-wrap {
272
  overflow-x: auto;
273
  border: 1px solid var(--border);
274
  border-radius: 18px;
 
275
  }
276
 
277
  table {
278
  width: 100%;
279
  min-width: 680px;
280
  border-collapse: collapse;
281
- background: rgba(7, 17, 31, 0.36);
282
  }
283
 
284
  th,
285
  td {
286
  padding: 14px 16px;
287
- border-bottom: 1px solid rgba(34, 57, 86, 0.8);
288
  text-align: right;
289
  white-space: nowrap;
290
  }
@@ -295,57 +504,77 @@ td:first-child {
295
  }
296
 
297
  th {
298
- background: rgba(79, 140, 255, 0.12);
299
- color: var(--text);
300
- font-size: 13px;
301
- letter-spacing: 0.04em;
 
302
  text-transform: uppercase;
303
  }
304
 
305
  td {
306
- color: var(--muted);
 
307
  }
308
 
309
  td strong {
 
 
 
 
 
310
  color: var(--success);
 
311
  }
312
 
313
  tbody tr:last-child td {
314
  border-bottom: 0;
315
  }
316
 
 
 
 
 
317
  .feature-grid {
318
  display: grid;
319
  grid-template-columns: repeat(2, minmax(0, 1fr));
320
  gap: 20px;
321
  }
322
 
 
 
 
 
323
  .footer {
324
  display: flex;
325
  align-items: center;
326
  justify-content: space-between;
327
  gap: 24px;
328
- padding: 36px 0 56px;
329
  border-top: 1px solid var(--border);
330
  }
331
 
332
  .footer p {
333
- margin: 6px 0 0;
334
  }
335
 
336
  .footer-links {
337
  display: flex;
338
  flex-wrap: wrap;
339
- gap: 16px;
340
  color: var(--muted);
341
  font-size: 14px;
 
342
  }
343
 
344
- @media (max-width: 840px) {
345
- .hero,
346
- main,
347
- .footer {
348
- width: min(100% - 28px, 1180px);
 
 
 
349
  }
350
 
351
  .nav,
@@ -354,38 +583,58 @@ tbody tr:last-child td {
354
  flex-direction: column;
355
  }
356
 
357
- .nav {
358
- margin-bottom: 34px;
 
 
359
  }
360
 
361
- .hero-content {
362
- padding: 32px 24px;
363
- border-radius: 24px;
364
  }
365
 
366
- .metrics,
367
- .grid-two,
368
  .feature-grid {
369
  grid-template-columns: 1fr;
370
  }
371
 
372
- .metrics,
373
  .section {
374
- margin-bottom: 54px;
375
  }
376
  }
377
 
378
- @media (max-width: 520px) {
 
 
 
 
 
 
 
 
379
  .nav-links {
380
- gap: 12px;
381
  }
382
 
 
383
  .button {
384
  width: 100%;
385
  }
386
 
387
- .table-block,
388
- .card,
 
 
 
 
 
 
 
 
 
389
  .metric-card {
390
  padding: 20px;
391
  }
 
1
  :root {
2
+ --page: #f6f8fc;
3
+ --surface: #ffffff;
4
+ --surface-soft: #f0f5ff;
5
+ --text: #0f172a;
6
+ --muted: #5f6c80;
7
+ --muted-strong: #334155;
8
+ --border: #dce5f2;
9
+ --accent: #2557e8;
10
+ --accent-dark: #173fba;
11
+ --accent-soft: #e8efff;
12
+ --success: #0f9465;
13
+ --success-soft: #e7f8f1;
14
+ --shadow: 0 22px 70px rgba(15, 23, 42, 0.12);
15
+ --radius: 24px;
16
  }
17
 
18
  * {
 
26
  body {
27
  margin: 0;
28
  background:
29
+ radial-gradient(circle at 15% 0%, rgba(37, 87, 232, 0.14), transparent 34rem),
30
+ linear-gradient(180deg, #ffffff 0%, var(--page) 44%, #eef3fb 100%);
31
  color: var(--text);
32
  font-family:
33
  Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
34
  sans-serif;
35
+ font-size: 16px;
36
  line-height: 1.6;
37
  }
38
 
 
52
  color: var(--muted);
53
  }
54
 
55
+ .shell {
56
+ width: min(1120px, calc(100% - 48px));
 
 
57
  margin: 0 auto;
58
  }
59
 
60
+ .site-header {
61
+ padding: 22px 0 56px;
62
  }
63
 
64
  .nav {
 
66
  align-items: center;
67
  justify-content: space-between;
68
  gap: 24px;
69
+ min-height: 66px;
70
+ padding: 0 18px;
71
+ border: 1px solid rgba(220, 229, 242, 0.86);
72
+ border-radius: 999px;
73
+ background: rgba(255, 255, 255, 0.86);
74
+ box-shadow: 0 12px 40px rgba(15, 23, 42, 0.06);
75
+ backdrop-filter: blur(16px);
76
  }
77
 
78
  .brand {
79
+ display: inline-flex;
80
+ align-items: center;
81
+ gap: 10px;
82
+ color: var(--text);
83
  font-weight: 800;
84
+ }
85
+
86
+ .brand-mark {
87
+ display: inline-grid;
88
+ width: 34px;
89
+ height: 34px;
90
+ place-items: center;
91
+ border-radius: 12px;
92
+ background: linear-gradient(135deg, var(--accent), #6a8cff);
93
+ color: #ffffff;
94
+ font-size: 15px;
95
+ box-shadow: 0 12px 28px rgba(37, 87, 232, 0.26);
96
  }
97
 
98
  .nav-links {
99
  display: flex;
100
+ gap: 24px;
 
101
  color: var(--muted);
102
  font-size: 14px;
103
+ font-weight: 700;
104
  }
105
 
106
  .nav-links a:hover,
107
+ .footer-links a:hover,
108
+ .text-link:hover {
109
+ color: var(--accent);
110
  }
111
 
112
+ .nav-cta {
113
+ display: inline-flex;
114
+ align-items: center;
115
+ justify-content: center;
116
+ min-height: 40px;
117
+ padding: 0 16px;
118
+ border-radius: 999px;
119
+ background: var(--text);
120
+ color: #ffffff;
121
+ font-size: 14px;
122
+ font-weight: 800;
123
  }
124
 
125
+ .nav-cta:hover {
126
+ background: var(--accent);
127
+ }
128
+
129
+ .hero {
130
+ display: grid;
131
+ grid-template-columns: minmax(0, 1.12fr) minmax(340px, 0.88fr);
132
+ gap: 44px;
133
+ align-items: center;
134
+ padding: 74px 0 34px;
135
+ }
136
+
137
+ .tag-row {
138
+ display: flex;
139
+ flex-wrap: wrap;
140
+ align-items: center;
141
+ gap: 12px;
142
+ margin-bottom: 22px;
143
+ color: var(--muted-strong);
144
+ font-size: 14px;
145
+ font-weight: 700;
146
+ }
147
+
148
+ .pill {
149
+ display: inline-flex;
150
+ align-items: center;
151
+ min-height: 32px;
152
+ padding: 0 12px;
153
+ border: 1px solid #bcd0ff;
154
+ border-radius: 999px;
155
+ background: var(--accent-soft);
156
+ color: var(--accent-dark);
157
  font-size: 13px;
158
+ font-weight: 900;
159
+ letter-spacing: 0.03em;
160
  text-transform: uppercase;
161
  }
162
 
163
  h1 {
164
+ max-width: 720px;
165
  margin-bottom: 22px;
166
+ color: var(--text);
167
+ font-size: clamp(42px, 6vw, 68px);
168
+ line-height: 1.02;
169
+ letter-spacing: -0.055em;
170
  }
171
 
172
  h2 {
173
+ margin-bottom: 14px;
174
+ color: var(--text);
175
+ font-size: clamp(28px, 3.4vw, 42px);
176
+ line-height: 1.12;
177
  letter-spacing: -0.04em;
178
  }
179
 
180
  h3 {
181
+ margin-bottom: 0;
182
+ color: var(--text);
183
+ font-size: 20px;
184
  letter-spacing: -0.02em;
185
  }
186
 
187
+ .lead {
188
+ max-width: 660px;
189
+ margin-bottom: 0;
190
+ color: var(--muted);
191
+ font-size: 19px;
192
+ line-height: 1.75;
193
  }
194
 
195
  .cta-row {
 
205
  justify-content: center;
206
  min-height: 48px;
207
  padding: 0 22px;
208
+ border-radius: 14px;
209
+ font-weight: 900;
210
+ transition:
211
+ transform 180ms ease,
212
+ box-shadow 180ms ease,
213
+ background 180ms ease,
214
+ border-color 180ms ease;
215
+ }
216
+
217
+ .button:hover {
218
+ transform: translateY(-1px);
219
  }
220
 
221
  .button.primary {
222
  background: var(--accent);
223
  color: #ffffff;
224
+ box-shadow: 0 16px 34px rgba(37, 87, 232, 0.28);
225
  }
226
 
227
  .button.primary:hover {
228
+ background: var(--accent-dark);
229
  }
230
 
231
  .button.secondary {
232
  border: 1px solid var(--border);
233
+ background: #ffffff;
234
  color: var(--text);
235
+ box-shadow: 0 12px 30px rgba(15, 23, 42, 0.06);
236
  }
237
 
238
  .button.secondary:hover {
239
+ border-color: #a9bdf8;
240
  }
241
 
242
+ .proof-row {
243
+ display: flex;
244
+ flex-wrap: wrap;
245
+ gap: 10px;
246
+ color: var(--muted);
247
+ font-size: 14px;
248
+ }
249
+
250
+ .proof-row span {
251
+ padding: 7px 10px;
252
+ border: 1px solid var(--border);
253
+ border-radius: 999px;
254
+ background: rgba(255, 255, 255, 0.72);
255
+ }
256
+
257
+ .hero-panel {
258
+ position: relative;
259
+ padding: 24px;
260
+ border: 1px solid rgba(220, 229, 242, 0.96);
261
+ border-radius: 30px;
262
+ background: rgba(255, 255, 255, 0.92);
263
+ box-shadow: var(--shadow);
264
+ overflow: hidden;
265
+ }
266
+
267
+ .hero-panel::before {
268
+ position: absolute;
269
+ inset: 0 0 auto;
270
+ height: 8px;
271
+ background: linear-gradient(90deg, var(--accent), #72d4ae);
272
+ content: "";
273
+ }
274
+
275
+ .panel-header {
276
+ display: flex;
277
+ align-items: center;
278
+ justify-content: space-between;
279
+ margin: 12px 0 22px;
280
+ color: var(--muted);
281
  font-size: 14px;
282
+ font-weight: 800;
283
+ text-transform: uppercase;
284
+ letter-spacing: 0.08em;
285
+ }
286
+
287
+ .panel-header strong {
288
+ padding: 5px 10px;
289
+ border-radius: 999px;
290
+ background: var(--accent-soft);
291
+ color: var(--accent-dark);
292
+ letter-spacing: 0;
293
+ }
294
+
295
+ .signal-card {
296
+ padding: 24px;
297
+ border-radius: 22px;
298
+ background: linear-gradient(135deg, #102040, #173fba);
299
+ color: #ffffff;
300
+ box-shadow: 0 18px 44px rgba(23, 63, 186, 0.22);
301
  }
302
 
303
+ .signal-card p {
304
+ margin-bottom: 0;
305
+ color: rgba(255, 255, 255, 0.76);
306
+ }
307
+
308
+ .signal-card strong {
309
+ display: block;
310
+ margin: 8px 0 4px;
311
+ font-size: 48px;
312
+ line-height: 1;
313
+ letter-spacing: -0.05em;
314
+ }
315
+
316
+ .signal-label {
317
+ color: rgba(255, 255, 255, 0.72);
318
+ font-size: 13px;
319
+ font-weight: 800;
320
+ text-transform: uppercase;
321
+ letter-spacing: 0.08em;
322
+ }
323
+
324
+ .panel-list {
325
  display: grid;
326
+ gap: 14px;
327
+ margin-top: 20px;
328
+ }
329
+
330
+ .panel-list div {
331
+ display: flex;
332
+ justify-content: space-between;
333
  gap: 18px;
334
+ padding: 16px 0;
335
+ border-bottom: 1px solid var(--border);
336
+ }
337
+
338
+ .panel-list div:last-child {
339
+ border-bottom: 0;
340
+ }
341
+
342
+ .panel-list span {
343
+ color: var(--muted);
344
+ }
345
+
346
+ .panel-list strong {
347
+ color: var(--text);
348
+ text-align: right;
349
+ }
350
+
351
+ .metric-strip {
352
+ display: grid;
353
+ grid-template-columns: repeat(3, minmax(0, 1fr));
354
+ gap: 18px;
355
+ margin: 0 0 78px;
356
  }
357
 
358
  .metric-card,
359
+ .info-card,
360
+ .feature-card,
361
+ .table-card {
362
  border: 1px solid var(--border);
363
+ border-radius: var(--radius);
364
+ background: rgba(255, 255, 255, 0.9);
365
+ box-shadow: 0 16px 42px rgba(15, 23, 42, 0.07);
366
  }
367
 
368
  .metric-card {
 
375
  }
376
 
377
  .metric-value {
378
+ margin-bottom: 6px;
379
  color: var(--text);
380
+ font-size: 25px;
381
  font-weight: 900;
382
  letter-spacing: -0.04em;
383
  }
 
391
  margin-bottom: 84px;
392
  }
393
 
394
+ .split {
395
  display: grid;
396
+ grid-template-columns: minmax(0, 0.94fr) minmax(0, 1.06fr);
397
+ gap: 44px;
398
  align-items: start;
399
  }
400
 
401
+ .section-kicker {
402
+ margin-bottom: 12px;
403
+ color: var(--success);
404
+ font-size: 13px;
405
+ font-weight: 900;
406
+ letter-spacing: 0.12em;
407
+ text-transform: uppercase;
408
+ }
409
+
410
+ .section-copy p,
411
+ .section-heading p {
412
+ max-width: 640px;
413
+ }
414
+
415
+ .info-card,
416
+ .feature-card {
417
  padding: 28px;
418
  }
419
 
420
+ .clean-list {
421
  display: grid;
422
+ gap: 12px;
423
+ margin: 0 0 20px;
424
  padding: 0;
425
  list-style: none;
426
  color: var(--muted);
427
  }
428
 
429
+ .clean-list li {
430
  position: relative;
431
+ padding-left: 24px;
432
  }
433
 
434
+ .clean-list li::before {
435
  position: absolute;
436
  left: 0;
437
+ top: 0.68em;
438
+ width: 9px;
439
+ height: 9px;
440
  border-radius: 999px;
441
  background: var(--accent);
442
  content: "";
443
  }
444
 
445
  .text-link {
446
+ color: var(--accent);
447
+ font-weight: 900;
448
  }
449
 
450
  .section-heading {
451
+ max-width: 780px;
452
  margin-bottom: 28px;
453
  }
454
 
455
+ .benchmark-grid {
456
+ display: grid;
457
+ gap: 22px;
458
+ }
459
+
460
+ .table-card {
461
+ padding: 24px;
462
+ }
463
+
464
+ .table-title {
465
+ display: flex;
466
+ align-items: baseline;
467
+ justify-content: space-between;
468
+ gap: 16px;
469
+ margin-bottom: 16px;
470
+ }
471
+
472
+ .table-title span {
473
+ color: var(--muted);
474
+ font-size: 13px;
475
+ font-weight: 800;
476
+ text-transform: uppercase;
477
+ letter-spacing: 0.08em;
478
  }
479
 
480
  .table-wrap {
481
  overflow-x: auto;
482
  border: 1px solid var(--border);
483
  border-radius: 18px;
484
+ background: #ffffff;
485
  }
486
 
487
  table {
488
  width: 100%;
489
  min-width: 680px;
490
  border-collapse: collapse;
 
491
  }
492
 
493
  th,
494
  td {
495
  padding: 14px 16px;
496
+ border-bottom: 1px solid #edf2f8;
497
  text-align: right;
498
  white-space: nowrap;
499
  }
 
504
  }
505
 
506
  th {
507
+ background: #f7f9fd;
508
+ color: var(--muted-strong);
509
+ font-size: 12px;
510
+ font-weight: 900;
511
+ letter-spacing: 0.06em;
512
  text-transform: uppercase;
513
  }
514
 
515
  td {
516
+ color: var(--muted-strong);
517
+ font-size: 14px;
518
  }
519
 
520
  td strong {
521
+ display: inline-block;
522
+ min-width: 56px;
523
+ padding: 4px 9px;
524
+ border-radius: 999px;
525
+ background: var(--success-soft);
526
  color: var(--success);
527
+ text-align: center;
528
  }
529
 
530
  tbody tr:last-child td {
531
  border-bottom: 0;
532
  }
533
 
534
+ tbody tr:hover td {
535
+ background: #fbfdff;
536
+ }
537
+
538
  .feature-grid {
539
  display: grid;
540
  grid-template-columns: repeat(2, minmax(0, 1fr));
541
  gap: 20px;
542
  }
543
 
544
+ .feature-card h2 {
545
+ font-size: 26px;
546
+ }
547
+
548
  .footer {
549
  display: flex;
550
  align-items: center;
551
  justify-content: space-between;
552
  gap: 24px;
553
+ padding: 34px 0 52px;
554
  border-top: 1px solid var(--border);
555
  }
556
 
557
  .footer p {
558
+ margin: 4px 0 0;
559
  }
560
 
561
  .footer-links {
562
  display: flex;
563
  flex-wrap: wrap;
564
+ gap: 18px;
565
  color: var(--muted);
566
  font-size: 14px;
567
+ font-weight: 700;
568
  }
569
 
570
+ @media (max-width: 900px) {
571
+ .shell {
572
+ width: min(100% - 32px, 1120px);
573
+ }
574
+
575
+ .nav {
576
+ border-radius: 24px;
577
+ padding: 16px;
578
  }
579
 
580
  .nav,
 
583
  flex-direction: column;
584
  }
585
 
586
+ .nav-links {
587
+ order: 3;
588
+ width: 100%;
589
+ justify-content: flex-start;
590
  }
591
 
592
+ .hero {
593
+ grid-template-columns: 1fr;
594
+ padding-top: 48px;
595
  }
596
 
597
+ .metric-strip,
598
+ .split,
599
  .feature-grid {
600
  grid-template-columns: 1fr;
601
  }
602
 
603
+ .metric-strip,
604
  .section {
605
+ margin-bottom: 56px;
606
  }
607
  }
608
 
609
+ @media (max-width: 560px) {
610
+ h1 {
611
+ font-size: 40px;
612
+ }
613
+
614
+ .lead {
615
+ font-size: 17px;
616
+ }
617
+
618
  .nav-links {
619
+ gap: 14px;
620
  }
621
 
622
+ .nav-cta,
623
  .button {
624
  width: 100%;
625
  }
626
 
627
+ .panel-list div {
628
+ display: grid;
629
+ }
630
+
631
+ .panel-list strong {
632
+ text-align: left;
633
+ }
634
+
635
+ .table-card,
636
+ .info-card,
637
+ .feature-card,
638
  .metric-card {
639
  padding: 20px;
640
  }