TwoQuarks commited on
Commit
c1c9865
Β·
verified Β·
1 Parent(s): 3c351b6

Update style.css

Browse files
Files changed (1) hide show
  1. style.css +529 -111
style.css CHANGED
@@ -1,144 +1,562 @@
1
- /* ===== TwoQuarks skin for Gradio (ported from index.html) ===== */
2
- *{margin:0;padding:0;box-sizing:border-box}
 
 
3
 
4
- :root{
5
- --bg:#000; --fg:#fff; --muted:rgba(255,255,255,.55);
6
- --card:rgba(255,255,255,.04); --card2:rgba(255,255,255,.08);
7
- --stroke:rgba(255,255,255,.10); --glass:rgba(0,0,0,.38);
8
- --accent:#8cb4ff;
 
 
9
  }
10
 
11
- html,body{height:100%}
12
- body, .gradio-container{
13
- font-family: Inter, ui-sans-serif, system-ui, Arial;
14
- background:var(--bg) !important;
15
- color:var(--fg) !important;
16
- overflow-x:hidden;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  }
18
 
19
- /* Starfield canvas like your site */
20
- #quantumField{
21
- position:fixed; inset:0;
22
- width:100vw; height:100vh;
23
- z-index:0;
24
- background:#000;
25
- pointer-events:none;
26
  }
27
 
28
- /* Make app sit above canvas */
29
- #tqApp{
30
- position:relative;
31
- z-index:1;
32
- padding-top: 10px;
 
 
33
  }
34
 
35
- /* Hero / header panel (glass) */
36
- .tq-hero{
37
- margin: 10px 0 14px 0;
38
- padding: 14px 18px;
39
- background: var(--glass);
40
- backdrop-filter: blur(12px);
41
- border: 1px solid rgba(255,255,255,.06);
42
- border-radius: 14px;
 
 
 
 
 
 
 
 
 
 
 
 
43
  }
44
- .tq-hero .brand{
45
- font-weight:700; letter-spacing:.2px; font-size:1.1rem;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
46
  }
47
- .tq-hero .desc{
48
- margin-top:8px;
49
- color: var(--muted);
50
- font-size: .98rem;
51
- line-height: 1.55;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
52
  }
53
 
54
- /* Pills navigation (like your nav-links a) */
55
- .tq-pills{
56
- display:flex; gap:10px; flex-wrap:wrap;
57
- margin-top:12px;
 
 
 
 
 
 
 
 
 
 
 
58
  }
59
- .tq-pill{
60
- text-decoration:none; color:var(--fg);
61
- padding:8px 12px;
62
- border:1px solid rgba(255,255,255,.12);
63
- border-radius:999px;
64
- font-size:.9rem; opacity:.86;
65
- transition:.18s ease;
66
- white-space:nowrap;
67
  }
68
- .tq-pill:hover{opacity:1;background:rgba(255,255,255,.06)}
69
- .tq-pill.active{
70
- border-color:rgba(140,180,255,.55);
71
- box-shadow:0 0 0 1px rgba(140,180,255,.20) inset;
 
 
 
72
  }
73
 
74
- /* Cards / panels */
 
 
75
  .gradio-container .gr-panel,
76
- .gradio-container .block,
77
- .gradio-container .wrap{
78
- border:1px solid var(--stroke) !important;
79
- background: var(--card) !important;
80
- backdrop-filter: blur(8px) !important;
81
- border-radius: 12px !important;
 
 
 
82
  }
83
 
84
- /* Hover effect on panels that look like cards */
85
- .gradio-container .gr-panel:hover{
86
- background: var(--card2) !important;
87
  }
88
 
89
- /* Tabs (match pill vibe) */
90
- .gradio-container .gr-tab-nav{
 
 
91
  background: transparent !important;
92
  border: none !important;
93
- gap: 10px !important;
94
- }
95
- .gradio-container .gr-tab-nav button{
96
- border:1px solid rgba(255,255,255,.12) !important;
97
- border-radius:999px !important;
98
- padding:8px 12px !important;
99
- color: var(--fg) !important;
100
- opacity:.86 !important;
101
- background: rgba(255,255,255,.00) !important;
102
- transition:.18s ease !important;
103
- }
104
- .gradio-container .gr-tab-nav button:hover{
105
- opacity:1 !important;
106
- background: rgba(255,255,255,.06) !important;
107
- }
108
- .gradio-container .gr-tab-nav button.selected{
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
109
  opacity: 1 !important;
110
- border-color: rgba(140,180,255,.55) !important;
111
- box-shadow: 0 0 0 1px rgba(140,180,255,.20) inset !important;
 
 
 
 
 
112
  }
113
 
114
- /* Inputs */
115
- .gradio-container input,
116
- .gradio-container textarea{
117
- background: rgba(255,255,255,.03) !important;
118
- border:1px solid rgba(255,255,255,.14) !important;
119
- color: var(--fg) !important;
120
- border-radius: 12px !important;
121
  }
122
 
123
- /* Buttons like your .btn */
124
- .gradio-container button,
125
- .gradio-container .gr-button{
126
- color: var(--fg) !important;
127
- border:1px solid rgba(255,255,255,.14) !important;
128
- background: rgba(255,255,255,.03) !important;
129
- border-radius:999px !important;
130
- padding:10px 14px !important;
131
- opacity:.92 !important;
132
- transition:.15s ease !important;
133
  }
134
- .gradio-container button:hover,
135
- .gradio-container .gr-button:hover{
136
- opacity:1 !important;
137
- background: rgba(255,255,255,.07) !important;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
138
  }
139
 
140
- /* Range accent */
141
- input[type="range"]{ accent-color: var(--accent); }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
142
 
143
- /* Optional: hide Gradio footer */
144
- footer{ display:none !important; }
 
 
 
 
 
 
1
+ /* ═══════════════════════════════════════════════════════════
2
+ TWOQUARKS LAB - HUGGINGFACE INTERFACE SYSTEM
3
+ Ultra-blue quantum aesthetic with particle field
4
+ ═══════════════════════════════════════════════════════════ */
5
 
6
+ /* ─────────────────────────────────────────────────────────── */
7
+ /* 1. RESET & BASE */
8
+ /* ─────────────────────────────────────────────────────────── */
9
+ * {
10
+ margin: 0;
11
+ padding: 0;
12
+ box-sizing: border-box;
13
  }
14
 
15
+ /* ─────────────────────────────────────────────────────────── */
16
+ /* 2. DESIGN TOKENS */
17
+ /* ─────────────────────────────────────────────────────────── */
18
+ :root {
19
+ /* Colors - Ultra Blue System */
20
+ --ultra-blue: #3B82F6;
21
+ --ultra-blue-bright: #60A5FA;
22
+ --ultra-blue-deep: #1E40AF;
23
+ --ultra-blue-glow: rgba(59, 130, 246, 0.25);
24
+
25
+ /* Neutrals */
26
+ --bg-base: #000000;
27
+ --fg-primary: #FFFFFF;
28
+ --fg-secondary: rgba(255, 255, 255, 0.65);
29
+ --fg-tertiary: rgba(255, 255, 255, 0.40);
30
+
31
+ /* Surfaces */
32
+ --surface-glass: rgba(0, 0, 0, 0.40);
33
+ --surface-card: rgba(255, 255, 255, 0.04);
34
+ --surface-card-hover: rgba(255, 255, 255, 0.08);
35
+ --surface-input: rgba(255, 255, 255, 0.03);
36
+
37
+ /* Borders */
38
+ --border-subtle: rgba(255, 255, 255, 0.08);
39
+ --border-medium: rgba(255, 255, 255, 0.14);
40
+ --border-accent: rgba(59, 130, 246, 0.35);
41
+
42
+ /* Spacing System (8px base) */
43
+ --space-xs: 0.5rem; /* 8px */
44
+ --space-sm: 0.75rem; /* 12px */
45
+ --space-md: 1rem; /* 16px */
46
+ --space-lg: 1.5rem; /* 24px */
47
+ --space-xl: 2rem; /* 32px */
48
+ --space-2xl: 3rem; /* 48px */
49
+
50
+ /* Radius */
51
+ --radius-sm: 8px;
52
+ --radius-md: 12px;
53
+ --radius-lg: 16px;
54
+ --radius-full: 9999px;
55
+
56
+ /* Typography */
57
+ --font-body: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
58
+ --font-mono: 'JetBrains Mono', 'Fira Code', monospace;
59
+
60
+ /* Transitions */
61
+ --trans-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
62
+ --trans-base: 200ms cubic-bezier(0.4, 0, 0.2, 1);
63
+ --trans-slow: 300ms cubic-bezier(0.4, 0, 0.2, 1);
64
+
65
+ /* Z-index layers */
66
+ --z-base: 1;
67
+ --z-dropdown: 10;
68
+ --z-sticky: 20;
69
+ --z-overlay: 30;
70
+ --z-modal: 40;
71
+ --z-canvas: 0;
72
  }
73
 
74
+ /* ─────────────────────────────────────────────────────────── */
75
+ /* 3. GLOBAL LAYOUT */
76
+ /* ─────────────────────────────────────────────────────────── */
77
+ html, body {
78
+ height: 100%;
79
+ overflow-x: hidden;
 
80
  }
81
 
82
+ body {
83
+ font-family: var(--font-body);
84
+ background: var(--bg-base);
85
+ color: var(--fg-primary);
86
+ line-height: 1.6;
87
+ -webkit-font-smoothing: antialiased;
88
+ -moz-osx-font-smoothing: grayscale;
89
  }
90
 
91
+ .gradio-container {
92
+ background: var(--bg-base) !important;
93
+ color: var(--fg-primary) !important;
94
+ max-width: 1400px;
95
+ margin: 0 auto;
96
+ padding: var(--space-lg);
97
+ }
98
+
99
+ /* ─────────────────────────────────────────────────────────── */
100
+ /* 4. QUANTUM PARTICLE FIELD (Ultra Blue) */
101
+ /* ─────────────────────────────────────────────────────────── */
102
+ #quantumField {
103
+ position: fixed;
104
+ top: 0;
105
+ left: 0;
106
+ width: 100vw;
107
+ height: 100vh;
108
+ z-index: var(--z-canvas);
109
+ background: var(--bg-base);
110
+ pointer-events: none;
111
  }
112
+
113
+ /* ─────────────────────────────────────────────────────────── */
114
+ /* 5. MAIN APP CONTAINER */
115
+ /* ─────────────────────────────────────────────────────────── */
116
+ #tqApp {
117
+ position: relative;
118
+ z-index: var(--z-base);
119
+ padding-top: var(--space-md);
120
+ }
121
+
122
+ /* ─────────────────────────────────────────────────────────── */
123
+ /* 6. HERO SECTION */
124
+ /* ─────────────────────────────────────────────────────────── */
125
+ .tq-hero {
126
+ margin: var(--space-md) 0 var(--space-lg) 0;
127
+ padding: var(--space-lg) var(--space-xl);
128
+ background: var(--surface-glass);
129
+ backdrop-filter: blur(16px) saturate(180%);
130
+ -webkit-backdrop-filter: blur(16px) saturate(180%);
131
+ border: 1px solid var(--border-subtle);
132
+ border-radius: var(--radius-lg);
133
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
134
  }
135
+
136
+ .tq-hero__brand {
137
+ font-weight: 700;
138
+ font-size: 1.5rem;
139
+ letter-spacing: -0.02em;
140
+ background: linear-gradient(135deg, var(--fg-primary) 0%, var(--ultra-blue-bright) 100%);
141
+ background-clip: text;
142
+ -webkit-background-clip: text;
143
+ -webkit-text-fill-color: transparent;
144
+ }
145
+
146
+ .tq-hero__desc {
147
+ margin-top: var(--space-sm);
148
+ color: var(--fg-secondary);
149
+ font-size: 0.95rem;
150
+ line-height: 1.65;
151
+ max-width: 65ch;
152
+ }
153
+
154
+ /* ─────────────────────────────────────────────────────────── */
155
+ /* 7. NAVIGATION PILLS */
156
+ /* ─────────────────────────────────────────────────────────── */
157
+ .tq-pills {
158
+ display: flex;
159
+ gap: var(--space-sm);
160
+ flex-wrap: wrap;
161
+ margin-top: var(--space-md);
162
  }
163
 
164
+ .tq-pill {
165
+ display: inline-flex;
166
+ align-items: center;
167
+ gap: 0.5rem;
168
+ padding: var(--space-sm) var(--space-md);
169
+ font-size: 0.875rem;
170
+ font-weight: 500;
171
+ color: var(--fg-primary);
172
+ text-decoration: none;
173
+ background: rgba(255, 255, 255, 0.02);
174
+ border: 1px solid var(--border-medium);
175
+ border-radius: var(--radius-full);
176
+ opacity: 0.85;
177
+ transition: all var(--trans-base);
178
+ white-space: nowrap;
179
  }
180
+
181
+ .tq-pill:hover {
182
+ opacity: 1;
183
+ background: rgba(255, 255, 255, 0.06);
184
+ border-color: var(--border-accent);
185
+ box-shadow: 0 0 16px var(--ultra-blue-glow);
 
 
186
  }
187
+
188
+ .tq-pill--active {
189
+ opacity: 1;
190
+ background: var(--ultra-blue-glow);
191
+ border-color: var(--ultra-blue);
192
+ box-shadow: 0 0 0 1px var(--ultra-blue) inset,
193
+ 0 0 20px var(--ultra-blue-glow);
194
  }
195
 
196
+ /* ─────────────────────────────────────────────────────────── */
197
+ /* 8. GRADIO COMPONENTS - PANELS & BLOCKS */
198
+ /* ─────────────────────────────────────────────────────────── */
199
  .gradio-container .gr-panel,
200
+ .gradio-container [class*="gr-box"],
201
+ .gradio-container .gr-form {
202
+ background: var(--surface-card) !important;
203
+ backdrop-filter: blur(10px) !important;
204
+ -webkit-backdrop-filter: blur(10px) !important;
205
+ border: 1px solid var(--border-subtle) !important;
206
+ border-radius: var(--radius-md) !important;
207
+ padding: var(--space-lg) !important;
208
+ transition: all var(--trans-base) !important;
209
  }
210
 
211
+ .gradio-container .gr-panel:hover {
212
+ background: var(--surface-card-hover) !important;
213
+ border-color: var(--border-medium) !important;
214
  }
215
 
216
+ /* ─────────────────────────────────────────────────────────── */
217
+ /* 9. TABS SYSTEM */
218
+ /* ─────────────────────────────────────────────────────────── */
219
+ .gradio-container .gr-tab-nav {
220
  background: transparent !important;
221
  border: none !important;
222
+ gap: var(--space-sm) !important;
223
+ padding: 0 !important;
224
+ margin-bottom: var(--space-lg) !important;
225
+ }
226
+
227
+ .gradio-container .gr-tab-nav button {
228
+ padding: var(--space-sm) var(--space-md) !important;
229
+ font-size: 0.875rem !important;
230
+ font-weight: 500 !important;
231
+ color: var(--fg-primary) !important;
232
+ background: rgba(255, 255, 255, 0.02) !important;
233
+ border: 1px solid var(--border-medium) !important;
234
+ border-radius: var(--radius-full) !important;
235
+ opacity: 0.75 !important;
236
+ transition: all var(--trans-base) !important;
237
+ }
238
+
239
+ .gradio-container .gr-tab-nav button:hover {
240
+ opacity: 1 !important;
241
+ background: rgba(255, 255, 255, 0.06) !important;
242
+ border-color: var(--border-accent) !important;
243
+ }
244
+
245
+ .gradio-container .gr-tab-nav button.selected,
246
+ .gradio-container .gr-tab-nav button[aria-selected="true"] {
247
+ opacity: 1 !important;
248
+ background: var(--ultra-blue-glow) !important;
249
+ border-color: var(--ultra-blue) !important;
250
+ box-shadow: 0 0 0 1px var(--ultra-blue) inset,
251
+ 0 0 20px var(--ultra-blue-glow) !important;
252
+ }
253
+
254
+ /* ─────────────────────────────────────────────────────────── */
255
+ /* 10. FORM INPUTS */
256
+ /* ─────────────────────────────────────────────────────────── */
257
+ .gradio-container input[type="text"],
258
+ .gradio-container input[type="number"],
259
+ .gradio-container textarea,
260
+ .gradio-container select {
261
+ background: var(--surface-input) !important;
262
+ border: 1px solid var(--border-medium) !important;
263
+ border-radius: var(--radius-md) !important;
264
+ color: var(--fg-primary) !important;
265
+ padding: var(--space-sm) var(--space-md) !important;
266
+ font-size: 0.9375rem !important;
267
+ transition: all var(--trans-base) !important;
268
+ }
269
+
270
+ .gradio-container input:focus,
271
+ .gradio-container textarea:focus,
272
+ .gradio-container select:focus {
273
+ outline: none !important;
274
+ border-color: var(--ultra-blue) !important;
275
+ box-shadow: 0 0 0 3px var(--ultra-blue-glow) !important;
276
+ }
277
+
278
+ .gradio-container input[type="range"] {
279
+ accent-color: var(--ultra-blue) !important;
280
+ }
281
+
282
+ /* ─────────────────────────────────────────────────────────── */
283
+ /* 11. BUTTONS */
284
+ /* ─────────────────────────────────────────────────────────── */
285
+ .gradio-container button:not(.gr-tab-nav button),
286
+ .gradio-container .gr-button {
287
+ padding: var(--space-sm) var(--space-lg) !important;
288
+ font-size: 0.9375rem !important;
289
+ font-weight: 500 !important;
290
+ color: var(--fg-primary) !important;
291
+ background: rgba(255, 255, 255, 0.04) !important;
292
+ border: 1px solid var(--border-medium) !important;
293
+ border-radius: var(--radius-full) !important;
294
+ opacity: 0.90 !important;
295
+ cursor: pointer !important;
296
+ transition: all var(--trans-base) !important;
297
+ }
298
+
299
+ .gradio-container button:hover:not(.gr-tab-nav button),
300
+ .gradio-container .gr-button:hover {
301
  opacity: 1 !important;
302
+ background: rgba(255, 255, 255, 0.08) !important;
303
+ border-color: var(--border-accent) !important;
304
+ box-shadow: 0 0 16px var(--ultra-blue-glow) !important;
305
+ }
306
+
307
+ .gradio-container button:active:not(.gr-tab-nav button) {
308
+ transform: scale(0.98) !important;
309
  }
310
 
311
+ /* Primary action button variant */
312
+ .gradio-container button.primary,
313
+ .gradio-container .gr-button-primary {
314
+ background: var(--ultra-blue) !important;
315
+ border-color: var(--ultra-blue-bright) !important;
316
+ box-shadow: 0 4px 12px var(--ultra-blue-glow) !important;
 
317
  }
318
 
319
+ .gradio-container button.primary:hover {
320
+ background: var(--ultra-blue-bright) !important;
321
+ box-shadow: 0 8px 24px var(--ultra-blue-glow) !important;
 
 
 
 
 
 
 
322
  }
323
+
324
+ /* ─────────────────────────────────────────────────────────── */
325
+ /* 12. IMAGE GALLERY & GRID */
326
+ /* ─────────────────────────────────────────────────────────── */
327
+ .gradio-container .gr-gallery {
328
+ gap: var(--space-md) !important;
329
+ }
330
+
331
+ .gradio-container .gr-gallery .gr-image,
332
+ .gradio-container .gr-image-preview {
333
+ border-radius: var(--radius-md) !important;
334
+ overflow: hidden !important;
335
+ border: 1px solid var(--border-subtle) !important;
336
+ transition: all var(--trans-base) !important;
337
+ }
338
+
339
+ .gradio-container .gr-gallery .gr-image:hover {
340
+ border-color: var(--ultra-blue) !important;
341
+ box-shadow: 0 8px 24px var(--ultra-blue-glow) !important;
342
+ transform: translateY(-2px) !important;
343
+ }
344
+
345
+ /* Image container sizing */
346
+ .gradio-container .gr-image img,
347
+ .gradio-container .gr-gallery img {
348
+ width: 100% !important;
349
+ height: auto !important;
350
+ object-fit: cover !important;
351
+ display: block !important;
352
+ }
353
+
354
+ /* Grid layout for image outputs */
355
+ .gradio-container .gr-image-container,
356
+ .gradio-container [class*="image-container"] {
357
+ aspect-ratio: 1 / 1;
358
+ max-width: 100%;
359
+ border-radius: var(--radius-md);
360
+ overflow: hidden;
361
+ background: var(--surface-card);
362
+ }
363
+
364
+ /* ─────────────────────────────────────────────────────────── */
365
+ /* 13. CAROUSEL / SLIDER */
366
+ /* ─────────────────────────────────────────────────────────── */
367
+ .tq-carousel {
368
+ position: relative;
369
+ width: 100%;
370
+ overflow: hidden;
371
+ border-radius: var(--radius-lg);
372
+ background: var(--surface-card);
373
+ border: 1px solid var(--border-subtle);
374
  }
375
 
376
+ .tq-carousel__track {
377
+ display: flex;
378
+ gap: var(--space-md);
379
+ transition: transform var(--trans-slow);
380
+ }
381
+
382
+ .tq-carousel__item {
383
+ flex: 0 0 auto;
384
+ width: 320px;
385
+ aspect-ratio: 1 / 1;
386
+ border-radius: var(--radius-md);
387
+ overflow: hidden;
388
+ border: 1px solid var(--border-subtle);
389
+ transition: all var(--trans-base);
390
+ }
391
+
392
+ .tq-carousel__item:hover {
393
+ border-color: var(--ultra-blue);
394
+ box-shadow: 0 8px 24px var(--ultra-blue-glow);
395
+ transform: scale(1.02);
396
+ }
397
+
398
+ .tq-carousel__item img {
399
+ width: 100%;
400
+ height: 100%;
401
+ object-fit: cover;
402
+ display: block;
403
+ }
404
+
405
+ /* Carousel navigation */
406
+ .tq-carousel__nav {
407
+ position: absolute;
408
+ top: 50%;
409
+ transform: translateY(-50%);
410
+ width: 40px;
411
+ height: 40px;
412
+ display: flex;
413
+ align-items: center;
414
+ justify-content: center;
415
+ background: var(--surface-glass);
416
+ backdrop-filter: blur(12px);
417
+ border: 1px solid var(--border-medium);
418
+ border-radius: 50%;
419
+ cursor: pointer;
420
+ transition: all var(--trans-base);
421
+ z-index: var(--z-dropdown);
422
+ }
423
+
424
+ .tq-carousel__nav--prev { left: var(--space-md); }
425
+ .tq-carousel__nav--next { right: var(--space-md); }
426
+
427
+ .tq-carousel__nav:hover {
428
+ background: var(--ultra-blue-glow);
429
+ border-color: var(--ultra-blue);
430
+ box-shadow: 0 0 16px var(--ultra-blue-glow);
431
+ }
432
+
433
+ /* ─────────────────────────────────────────────────────────── */
434
+ /* 14. LABELS & TYPOGRAPHY */
435
+ /* ─────────────────────────────────────────────────────────── */
436
+ .gradio-container label,
437
+ .gradio-container .gr-label {
438
+ color: var(--fg-secondary) !important;
439
+ font-size: 0.875rem !important;
440
+ font-weight: 500 !important;
441
+ margin-bottom: var(--space-xs) !important;
442
+ }
443
+
444
+ .gradio-container .gr-description,
445
+ .gradio-container .gr-info {
446
+ color: var(--fg-tertiary) !important;
447
+ font-size: 0.8125rem !important;
448
+ line-height: 1.5 !important;
449
+ }
450
+
451
+ /* Code blocks */
452
+ .gradio-container pre,
453
+ .gradio-container code {
454
+ font-family: var(--font-mono) !important;
455
+ background: rgba(59, 130, 246, 0.05) !important;
456
+ border: 1px solid var(--border-subtle) !important;
457
+ border-radius: var(--radius-sm) !important;
458
+ padding: var(--space-xs) var(--space-sm) !important;
459
+ color: var(--ultra-blue-bright) !important;
460
+ }
461
+
462
+ /* ─────────────────────────────────────────────────────────── */
463
+ /* 15. LOADING & PROGRESS */
464
+ /* ─────────────────────────────────────────────────────────── */
465
+ .gradio-container .gr-loading {
466
+ color: var(--ultra-blue) !important;
467
+ }
468
+
469
+ .gradio-container .progress-bar {
470
+ background: var(--ultra-blue) !important;
471
+ box-shadow: 0 0 12px var(--ultra-blue-glow) !important;
472
+ }
473
+
474
+ /* ─────────────────────────────────────────────────────────── */
475
+ /* 16. SCROLLBARS */
476
+ /* ─────────────────────────────────────────────────────────── */
477
+ ::-webkit-scrollbar {
478
+ width: 8px;
479
+ height: 8px;
480
+ }
481
+
482
+ ::-webkit-scrollbar-track {
483
+ background: rgba(255, 255, 255, 0.02);
484
+ }
485
+
486
+ ::-webkit-scrollbar-thumb {
487
+ background: var(--border-medium);
488
+ border-radius: var(--radius-sm);
489
+ }
490
+
491
+ ::-webkit-scrollbar-thumb:hover {
492
+ background: var(--ultra-blue);
493
+ }
494
+
495
+ /* ─────────────────────────────────────────────────────────── */
496
+ /* 17. RESPONSIVE DESIGN */
497
+ /* ─────────────────────────────────────────────────────────── */
498
+ @media (max-width: 768px) {
499
+ :root {
500
+ --space-lg: 1rem;
501
+ --space-xl: 1.5rem;
502
+ }
503
+
504
+ .gradio-container {
505
+ padding: var(--space-md);
506
+ }
507
+
508
+ .tq-hero {
509
+ padding: var(--space-md) var(--space-lg);
510
+ }
511
+
512
+ .tq-hero__brand {
513
+ font-size: 1.25rem;
514
+ }
515
+
516
+ .tq-carousel__item {
517
+ width: 280px;
518
+ }
519
+
520
+ .tq-pills {
521
+ justify-content: center;
522
+ }
523
+ }
524
+
525
+ @media (max-width: 480px) {
526
+ .tq-carousel__item {
527
+ width: 240px;
528
+ }
529
+
530
+ .tq-carousel__nav {
531
+ width: 32px;
532
+ height: 32px;
533
+ }
534
+ }
535
+
536
+ /* ─────────────────────────────────────────────────────────── */
537
+ /* 18. UTILITY CLASSES */
538
+ /* ─────────────────────────────────────────────────────────── */
539
+ .tq-glow {
540
+ box-shadow: 0 0 20px var(--ultra-blue-glow) !important;
541
+ }
542
+
543
+ .tq-hide {
544
+ display: none !important;
545
+ }
546
+
547
+ .tq-fade-in {
548
+ animation: fadeIn var(--trans-slow) ease-in;
549
+ }
550
+
551
+ @keyframes fadeIn {
552
+ from { opacity: 0; transform: translateY(10px); }
553
+ to { opacity: 1; transform: translateY(0); }
554
+ }
555
 
556
+ /* ─────────────────────────────────────────────────────────── */
557
+ /* 19. FOOTER CLEANUP */
558
+ /* ─────────────────────────────────────────────────────────── */
559
+ footer,
560
+ .gradio-container footer {
561
+ display: none !important;
562
+ }