kappai commited on
Commit
88d8038
Β·
verified Β·
1 Parent(s): c523761

Create style.css

Browse files
Files changed (1) hide show
  1. style.css +332 -0
style.css ADDED
@@ -0,0 +1,332 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* ─────────────────────────────────────────────────────────────
2
+ NEUROVIE – GLOBAL
3
+ ───────────────────────────────────────────────────────────── */
4
+
5
+ :root {
6
+ --nv-bg: #f7f2ec;
7
+ --nv-card: #fffdf8;
8
+ --nv-border: #e5d8c7;
9
+ --nv-accent: #f38a6b;
10
+ --nv-accent-soft: #ffe4d4;
11
+ --nv-text-main: #262626;
12
+ --nv-text-muted: #6c6459;
13
+
14
+ --nv-radius-lg: 32px;
15
+ --nv-radius-md: 24px;
16
+ --nv-radius-sm: 18px;
17
+ }
18
+
19
+ /* Page layout */
20
+
21
+ .gradio-container {
22
+ font-family: system-ui, -apple-system, BlinkMacSystemFont, "SF Pro Text",
23
+ "Segoe UI", sans-serif;
24
+ background: radial-gradient(circle at top left, #fff6ee 0, #f7f2ec 50%, #f2ece6 100%);
25
+ max-width: 960px !important;
26
+ margin: 0 auto !important;
27
+ padding: 32px 0 40px 0;
28
+ position: relative;
29
+ }
30
+
31
+ /* Ambient blobs */
32
+
33
+ @keyframes nvBlobFloat {
34
+ 0% {
35
+ transform: translate3d(0, 0, 0) scale(1);
36
+ opacity: 0.6;
37
+ }
38
+ 50% {
39
+ transform: translate3d(10px, -8px, 0) scale(1.04);
40
+ opacity: 0.9;
41
+ }
42
+ 100% {
43
+ transform: translate3d(0, 0, 0) scale(1);
44
+ opacity: 0.6;
45
+ }
46
+ }
47
+
48
+ .gradio-container::before,
49
+ .gradio-container::after {
50
+ content: "";
51
+ position: fixed;
52
+ width: 260px;
53
+ height: 260px;
54
+ border-radius: 999px;
55
+ z-index: -1;
56
+ filter: blur(3px);
57
+ animation: nvBlobFloat 14s ease-in-out infinite alternate;
58
+ }
59
+
60
+ .gradio-container::before {
61
+ top: -80px;
62
+ left: -60px;
63
+ background: radial-gradient(circle at 30% 30%, #ffd5c5, transparent 60%);
64
+ }
65
+
66
+ .gradio-container::after {
67
+ bottom: -120px;
68
+ right: -40px;
69
+ background: radial-gradient(circle at 70% 70%, #c3e4ff, transparent 60%);
70
+ animation-delay: 4s;
71
+ }
72
+
73
+ /* ─────────────────────────────────────────────────────────────
74
+ SHELL & TEXT
75
+ ───────────────────────────────────────────────────────────── */
76
+
77
+ .nv-shell {
78
+ background: var(--nv-card);
79
+ border-radius: var(--nv-radius-lg);
80
+ border: 1px solid var(--nv-border);
81
+ box-shadow: 0 20px 40px rgba(15, 23, 42, 0.12),
82
+ 0 1px 0 rgba(255, 255, 255, 0.8) inset;
83
+ padding: 26px 24px 22px;
84
+ animation: nvCardIn 500ms ease-out;
85
+ }
86
+
87
+ @keyframes nvCardIn {
88
+ 0% {
89
+ opacity: 0;
90
+ transform: translateY(8px) scale(0.98);
91
+ }
92
+ 100% {
93
+ opacity: 1;
94
+ transform: translateY(0) scale(1);
95
+ }
96
+ }
97
+
98
+ .nv-badge {
99
+ font-size: 0.78rem;
100
+ letter-spacing: 0.16em;
101
+ text-transform: uppercase;
102
+ color: var(--nv-text-muted);
103
+ }
104
+
105
+ .nv-title {
106
+ font-size: 1.9rem;
107
+ font-weight: 650;
108
+ margin-top: 4px;
109
+ }
110
+
111
+ .nv-subtitle {
112
+ font-size: 0.95rem;
113
+ color: var(--nv-text-muted);
114
+ margin-top: 6px;
115
+ margin-bottom: 18px;
116
+ }
117
+
118
+ /* ─────────────────────────────────────────────────────────────
119
+ SECTIONS + LABELS
120
+ ───────────────────────────────────────────────────────────── */
121
+
122
+ .nv-section {
123
+ background: #fbf6ee;
124
+ border-radius: var(--nv-radius-md);
125
+ border: 1px solid #e6dac7;
126
+ padding: 16px 16px 14px;
127
+ margin-bottom: 14px;
128
+ }
129
+
130
+ .nv-label {
131
+ font-size: 0.78rem;
132
+ letter-spacing: 0.12em;
133
+ text-transform: uppercase;
134
+ color: #a29078;
135
+ margin-bottom: 8px;
136
+ }
137
+
138
+ /* ─────────────────────────────────────────────────────────────
139
+ PILLS (radios)
140
+ ───────────────────────────────────────────────────────────── */
141
+
142
+ .nv-pills label {
143
+ border-radius: 999px !important;
144
+ border: 1px solid #decfbb !important;
145
+ padding: 6px 11px !important;
146
+ font-size: 0.84rem !important;
147
+ background: #fdf8f1;
148
+ transition:
149
+ background 150ms ease,
150
+ transform 120ms ease,
151
+ box-shadow 120ms ease;
152
+ }
153
+
154
+ .nv-pills input:checked + label {
155
+ background: linear-gradient(135deg, #ffe4d4, #ffd6c6) !important;
156
+ border-color: var(--nv-accent) !important;
157
+ color: var(--nv-text-main) !important;
158
+ box-shadow: 0 4px 10px rgba(243, 138, 107, 0.18);
159
+ transform: translateY(-1px);
160
+ }
161
+
162
+ /* ─────────────────────────────────────────────────────────────
163
+ BUTTON – card-game β€œbreathing” + press animation
164
+ ────────────────────────���──────────────────────────────────── */
165
+
166
+ @keyframes nvPulse {
167
+ 0% {
168
+ transform: translateY(0) scale(1);
169
+ box-shadow: 0 10px 22px rgba(243, 138, 107, 0.3);
170
+ }
171
+ 50% {
172
+ transform: translateY(-1px) scale(1.02);
173
+ box-shadow: 0 14px 26px rgba(243, 138, 107, 0.4);
174
+ }
175
+ 100% {
176
+ transform: translateY(0) scale(1);
177
+ box-shadow: 0 10px 22px rgba(243, 138, 107, 0.3);
178
+ }
179
+ }
180
+
181
+ .gr-button {
182
+ border-radius: 999px !important;
183
+ padding: 10px 20px !important;
184
+ font-weight: 600 !important;
185
+ font-size: 0.96rem !important;
186
+ border: none !important;
187
+ background:
188
+ radial-gradient(circle at 0 0, #ffe4d4, transparent 55%),
189
+ linear-gradient(135deg, #f6a37d, #f38a6b) !important;
190
+ color: #fff !important;
191
+ animation: nvPulse 4s ease-in-out infinite;
192
+ transform-origin: center;
193
+ }
194
+
195
+ .gr-button:hover {
196
+ animation-duration: 1.4s;
197
+ }
198
+
199
+ .gr-button:active {
200
+ transform: translateY(1px) scale(0.99);
201
+ box-shadow: 0 6px 16px rgba(243, 138, 107, 0.35) !important;
202
+ }
203
+
204
+ /* ─────────────────────────────────────────────────────────────
205
+ CARD GRID + CARD ANIMATIONS
206
+ ───────────────────────────────────────────────────────────── */
207
+
208
+ .nv-card-grid {
209
+ display: grid;
210
+ grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
211
+ gap: 10px;
212
+ }
213
+
214
+ /* Deal-in animation (cards appearing) */
215
+
216
+ @keyframes nvCardDeal {
217
+ 0% {
218
+ opacity: 0;
219
+ transform: translate3d(0, 16px, 0) rotate(-2deg) scale(0.7);
220
+ }
221
+ 60% {
222
+ opacity: 1;
223
+ transform: translate3d(0, -4px, 0) rotate(1deg) scale(1.02);
224
+ }
225
+ 100% {
226
+ opacity: 1;
227
+ transform: translate3d(0, 0, 0) rotate(0deg) scale(1);
228
+ }
229
+ }
230
+
231
+ /* Hover "lift" + subtle wiggle */
232
+
233
+ @keyframes nvCardHoverWiggle {
234
+ 0% {
235
+ transform: translateY(0) rotate(0deg) scale(1);
236
+ }
237
+ 50% {
238
+ transform: translateY(-3px) rotate(0.4deg) scale(1.02);
239
+ }
240
+ 100% {
241
+ transform: translateY(-2px) rotate(0deg) scale(1.01);
242
+ }
243
+ }
244
+
245
+ .nv-card {
246
+ border-radius: var(--nv-radius-sm);
247
+ padding: 10px 11px;
248
+ font-size: 0.9rem;
249
+ border: 1px solid rgba(0, 0, 0, 0.03);
250
+ box-shadow: 0 6px 14px rgba(15, 23, 42, 0.06);
251
+ opacity: 0;
252
+ transform: scale(0.7);
253
+ animation: nvCardDeal 420ms ease-out forwards;
254
+ cursor: default;
255
+ transition:
256
+ box-shadow 160ms ease,
257
+ transform 160ms ease;
258
+ }
259
+
260
+ .nv-card:hover {
261
+ box-shadow: 0 12px 24px rgba(15, 23, 42, 0.15);
262
+ animation: nvCardHoverWiggle 400ms ease-out forwards;
263
+ }
264
+
265
+ /* Category color themes */
266
+
267
+ .nv-card--cat-alimentation {
268
+ background: radial-gradient(circle at 0 0, #e3f7df 0, #ffffff 60%);
269
+ border-color: #c3e5bc;
270
+ }
271
+
272
+ .nv-card--cat-mouvement {
273
+ background: radial-gradient(circle at 0 0, #dbeeff 0, #ffffff 60%);
274
+ border-color: #b9d8ff;
275
+ }
276
+
277
+ .nv-card--cat-cerveau {
278
+ background: radial-gradient(circle at 0 0, #ffd6d6 0, #ffffff 60%);
279
+ border-color: #f7b6b6;
280
+ }
281
+
282
+ .nv-card--cat-liens {
283
+ background: radial-gradient(circle at 0 0, #ffead1 0, #ffffff 60%);
284
+ border-color: #f6d2a3;
285
+ }
286
+
287
+ .nv-card--cat-bien-etre {
288
+ background: radial-gradient(circle at 0 0, #ffe1f2 0, #ffffff 60%);
289
+ border-color: #f3c3e4;
290
+ }
291
+
292
+ .nv-card-title {
293
+ font-size: 0.72rem;
294
+ letter-spacing: 0.14em;
295
+ text-transform: uppercase;
296
+ color: #7c6a9a;
297
+ margin-bottom: 4px;
298
+ }
299
+
300
+ /* ─────────────────────────────────────────────────────────────
301
+ HIDE GRADIO LOADING / QUEUE STATUS
302
+ ───────────────────────────────────────────────────────────── */
303
+
304
+ [data-testid="queue-status"],
305
+ [data-testid="progress-bar"],
306
+ [data-testid="block-info"] {
307
+ display: none !important;
308
+ }
309
+
310
+ /* also hide HF footer for a cleaner "game" feel */
311
+ footer {
312
+ display: none !important;
313
+ }
314
+
315
+ /* ─────────────────────────────────────────────────────────────
316
+ MOBILE
317
+ ───────────────────────────────────────────────────────────── */
318
+
319
+ @media (max-width: 640px) {
320
+ .nv-shell {
321
+ border-radius: 24px;
322
+ padding: 20px 16px 18px;
323
+ }
324
+
325
+ .nv-title {
326
+ font-size: 1.6rem;
327
+ }
328
+
329
+ .nv-section {
330
+ padding: 13px 12px 10px;
331
+ }
332
+ }