Hadiil commited on
Commit
8b3e82a
·
verified ·
1 Parent(s): 070d84e

Update static/styles.css

Browse files
Files changed (1) hide show
  1. static/styles.css +464 -206
static/styles.css CHANGED
@@ -1,334 +1,592 @@
1
- /* Reset and Base Styles */
 
2
  * {
3
  margin: 0;
4
  padding: 0;
 
5
  box-sizing: border-box;
6
- font-family: 'Poppins', sans-serif; /* Soft, luxurious font */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  }
8
 
9
  body {
10
- overflow-x: hidden;
11
- background: linear-gradient(135deg, #1e1e2f 0%, #2a2a4a 100%); /* Cosmic midnight sapphire */
12
- color: #f5e8c7; /* Champagne gold text */
13
  min-height: 100vh;
 
 
 
 
14
  position: relative;
 
 
15
  }
16
 
17
- /* Video Background */
18
  .back-vid {
19
  position: fixed;
20
  top: 0;
21
  left: 0;
22
  width: 100%;
23
  height: 100%;
24
- object-fit: cover;
25
  z-index: -1;
26
- filter: brightness(0.6); /* Subtle dim for elegance */
 
 
 
 
 
27
  }
28
 
29
- /* Sidebar */
30
  .sidebar {
31
- position: fixed;
32
- top: 0;
33
- left: -180px; /* Hidden by default */
34
- width: 180px;
35
- height: 100%;
36
- background: rgba(30, 30, 47, 0.9); /* Glassmorphism, no blue */
37
- backdrop-filter: blur(8px);
38
  display: flex;
39
  flex-direction: column;
40
  align-items: center;
41
- padding: 20px 0;
42
- transition: left 0.3s ease;
43
- z-index: 10;
44
- }
45
-
46
- .sidebar.active {
47
- left: 0; /* Show when toggled */
48
  }
49
 
50
- .sidebar__logo {
51
- display: flex;
52
- align-items: center;
53
- gap: 10px;
54
- margin-bottom: 30px;
55
- color: #d4a017; /* Gold accent */
56
- font-size: 1.2rem;
57
- font-weight: 600;
58
- cursor: pointer;
59
  }
60
 
61
  .sidebar__item {
62
- display: flex;
63
- align-items: center;
64
  width: 100%;
65
- padding: 10px 15px;
66
- color: #f5e8c7;
67
  text-decoration: none;
68
- font-size: 0.9rem;
69
- transition: background 0.2s ease;
 
 
 
70
  }
71
 
72
- .sidebar__item:hover {
73
- background: rgba(212, 160, 23, 0.2); /* Subtle gold hover */
 
 
 
 
74
  }
75
 
76
- .dot {
77
  width: 8px;
78
  height: 8px;
79
- background: #d4a017;
80
  border-radius: 50%;
81
- margin-right: 10px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
82
  }
83
 
84
  .tooltip {
85
- position: absolute;
86
- left: 190px;
87
- background: rgba(30, 30, 47, 0.9);
88
- color: #f5e8c7;
89
- padding: 5px 10px;
90
- border-radius: 5px;
91
  font-size: 0.8rem;
92
- display: none;
93
- z-index: 15;
 
 
 
 
 
 
 
 
94
  }
95
 
96
- .sidebar__item:hover .tooltip {
97
- display: block;
 
 
98
  }
99
 
100
- /* Main Content */
101
  .main-content {
102
- padding: 20px;
103
- min-height: 100vh;
104
  display: flex;
105
  flex-direction: column;
106
- justify-content: flex-end; /* Push content to bottom */
 
 
 
 
107
  }
108
 
109
- /* Header */
110
  .header {
 
111
  text-align: center;
112
- margin-bottom: 20px;
 
113
  }
114
 
115
  .header__title h1 {
116
- font-size: 1.8rem;
117
- color: #d4a017;
118
- font-weight: 700;
119
- text-transform: uppercase;
120
- letter-spacing: 2px;
 
121
  }
122
 
123
  .header__title h2 {
124
- font-size: 1rem;
125
- color: #f5e8c7;
126
  font-weight: 400;
127
- font-style: italic;
128
- opacity: 0.9;
129
- }
130
-
131
- /* Chat Bar */
132
- .chat-bar {
133
- margin-bottom: 100px; /* Space for suggestions and prompt */
134
- padding: 15px;
135
- overflow-y: auto;
136
- max-height: calc(100vh - 200px);
137
- display: flex;
138
- flex-direction: column;
139
- gap: 10px;
140
- }
141
-
142
- .chat-bar .message {
143
- max-width: 70%;
144
- padding: 10px 15px;
145
- border-radius: 15px;
146
- font-size: 0.9rem;
147
- line-height: 1.4;
148
- animation: slideIn 0.3s ease;
149
- }
150
-
151
- .chat-bar .message.user {
152
- background: #d4a017; /* Gold for user */
153
- color: #1e1e2f;
154
- align-self: flex-end;
155
- margin-left: 20%;
156
- }
157
-
158
- .chat-bar .message.vion {
159
- background: linear-gradient(90deg, #2a2a4a, #4a4a6a); /* Cosmic gradient for Vion */
160
- color: #f5e8c7;
161
- align-self: flex-start;
162
- margin-right: 20%;
163
  }
164
 
165
- /* Suggestion Boxes */
166
  .suggests {
167
- display: flex;
168
- flex-wrap: wrap;
169
- gap: 8px;
170
- justify-content: center;
171
- margin-bottom: 10px; /* Close to prompt */
172
- max-width: 100%;
 
 
 
 
 
 
 
 
 
173
  }
174
 
175
  .suggests__item {
176
- background: rgba(255, 255, 255, 0.05); /* Soft glassmorphism */
177
- backdrop-filter: blur(12px);
178
- border: none; /* No borders */
179
- border-radius: 10px;
180
- padding: 8px;
181
- width: 120px; /* Small and elegant */
182
- height: 60px;
183
- display: flex;
184
- align-items: center;
185
- justify-content: space-between;
186
- transition: transform 0.3s ease, box-shadow 0.3s ease;
187
  cursor: pointer;
 
 
188
  }
189
 
190
- .suggests__item:hover {
 
 
 
 
 
 
 
 
191
  transform: translateY(-3px);
192
- box-shadow: 0 5px 15px rgba(212, 160, 23, 0.15);
193
  }
194
 
195
- .suggests__item-text {
196
- font-size: 0.8rem;
197
- color: #f5e8c7;
198
- font-weight: 500;
199
- max-width: 70px;
200
  }
201
 
202
- .suggests__item-icon i {
203
- font-size: 1rem;
204
- color: #d4a017;
205
  }
206
 
207
  .suggests__item .tooltip {
208
- top: -25px;
209
- left: 50%;
210
- transform: translateX(-50%);
211
- font-size: 0.7rem;
212
  }
213
 
214
- /* Prompt (Texting Bar) */
215
  .prompt {
216
  position: fixed;
 
 
 
217
  bottom: 0;
218
- left: 0;
219
- right: 0;
220
- background: rgba(30, 30, 47, 0.9); /* Soft, no borders */
221
- backdrop-filter: blur(12px);
222
- padding: 10px 20px;
223
- z-index: 10;
224
- }
225
-
226
- .prompt__form {
227
- width: 100%;
228
- max-width: 700px;
229
- margin: 0 auto;
230
  }
231
 
232
  .prompt__input-wrapper {
 
233
  display: flex;
234
  align-items: center;
235
- background: rgba(255, 255, 255, 0.05); /* Soft input background */
236
- border-radius: 20px;
237
- padding: 5px 10px;
238
- border: none; /* No blue border */
 
 
 
 
 
 
 
 
 
 
 
 
239
  }
240
 
241
  .prompt__form-input {
242
  flex-grow: 1;
243
- background: transparent;
244
  border: none;
 
 
 
 
245
  outline: none;
246
- color: #f5e8c7;
247
- font-size: 0.85rem;
248
- padding: 8px;
249
  }
250
 
251
  .prompt__form-input::placeholder {
252
- color: #f5e8c7;
253
- opacity: 0.7;
254
  }
255
 
256
  .prompt__action-buttons {
257
  display: flex;
258
- gap: 5px;
 
 
 
 
 
 
 
 
 
259
  }
260
 
261
  .prompt__form-button {
262
- background: rgba(212, 160, 23, 0.2);
263
  border: none;
264
- border-radius: 50%;
265
- width: 30px;
266
- height: 30px;
267
- display: flex;
268
- align-items: center;
269
- justify-content: center;
270
  cursor: pointer;
271
- transition: background 0.2s ease;
 
272
  }
273
 
274
- .prompt__form-button:hover {
275
- background: #d4a017;
 
 
276
  }
277
 
278
- .prompt__form-button i {
279
- color: #f5e8c7;
280
- font-size: 1rem;
281
  }
282
 
283
  .prompt__disclaim {
284
- font-size: 0.7rem;
285
- color: #f5e8c7;
286
- opacity: 0.6;
287
  text-align: center;
288
- margin-top: 5px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
289
  }
290
 
291
- /* Planets */
292
  .planet {
293
  position: absolute;
294
  border-radius: 50%;
295
- background: radial-gradient(circle, rgba(212, 160, 23, 0.3), transparent);
296
- opacity: 0.7;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
297
  }
298
 
299
- .planet1 { width: 80px; height: 80px; top: 10%; left: 70%; }
300
- .planet2 { width: 50px; height: 50px; top: 60%; left: 20%; }
301
- .planet3 { width: 120px; height: 120px; bottom: 20%; right: 10%; }
 
 
 
 
 
 
 
 
 
 
302
 
303
- /* Animations */
304
- @keyframes slideIn {
 
 
 
 
 
 
 
 
 
 
 
 
 
305
  from { opacity: 0; transform: translateY(10px); }
306
  to { opacity: 1; transform: translateY(0); }
307
  }
308
 
309
- /* Responsive Design */
310
- @media (max-width: 768px) {
311
- .sidebar {
312
- width: 150px;
313
- }
314
- .main-content {
315
- padding: 15px;
316
- }
317
- .header__title h1 {
318
- font-size: 1.5rem;
319
- }
320
- .header__title h2 {
321
- font-size: 0.9rem;
322
- }
323
- .suggests__item {
324
- width: 100px;
325
- height: 50px;
326
- padding: 6px;
327
- }
328
- .suggests__item-text {
329
- font-size: 0.75rem;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
330
  }
331
- .prompt__form-input {
332
- font-size: 0.8rem;
 
333
  }
334
  }
 
1
+ @import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;600;800&display=swap');
2
+
3
  * {
4
  margin: 0;
5
  padding: 0;
6
+ outline: none;
7
  box-sizing: border-box;
8
+ font-family: "Open Sans", sans-serif;
9
+ }
10
+
11
+ :root {
12
+ --primary-color: #0A0A0B;
13
+ --secondary-color: #1A1B1E;
14
+ --secondary-hover-color: #ff8780;
15
+ --focus-color: #242528;
16
+ --focus-hover-color: #ff6f61;
17
+ --button-hover-color: #ff8780;
18
+ --text-color: #FFFFFF;
19
+ --text-secondary-color: #ffd700;
20
+ --heading-secondary-color: #ff6f61;
21
+ --placeholder-color: #A0A1A3;
22
+ --accent-color: #ff6f61;
23
+ --star-color: #ffd700;
24
+ --background-color: #0A0A0B;
25
+ --error-color: #FF4D4D;
26
+ --success-color: #4CAF50;
27
+ }
28
+
29
+ .soft_mode {
30
+ --primary-color: #f5f5f5;
31
+ --secondary-color: #ffffff;
32
+ --secondary-hover-color: #e0e0e0;
33
+ --focus-color: #f0f0f0;
34
+ --focus-hover-color: #d0d0d0;
35
+ --button-hover-color: #e0e0e0;
36
+ --text-color: #333333;
37
+ --text-secondary-color: #ff6f61;
38
+ --heading-secondary-color: #ff6f61;
39
+ --placeholder-color: #888888;
40
+ --accent-color: #ff6f61;
41
+ --star-color: #ffd700;
42
+ --background-color: #f5f5f5;
43
+ --error-color: #ff3333;
44
+ --success-color: #4CAF50;
45
  }
46
 
47
  body {
 
 
 
48
  min-height: 100vh;
49
+ display: flex;
50
+ flex-direction: row;
51
+ justify-content: space-between;
52
+ background: var(--primary-color);
53
  position: relative;
54
+ overflow-y: hidden;
55
+ transition: all 0.3s ease;
56
  }
57
 
 
58
  .back-vid {
59
  position: fixed;
60
  top: 0;
61
  left: 0;
62
  width: 100%;
63
  height: 100%;
 
64
  z-index: -1;
65
+ object-fit: cover;
66
+ transition: filter 0.3s ease;
67
+ }
68
+
69
+ .soft_mode .back-vid {
70
+ filter: brightness(1.5) contrast(0.8) sepia(0.3);
71
  }
72
 
 
73
  .sidebar {
74
+ width: 70px;
75
+ height: 100vh;
76
+ background: linear-gradient(180deg, #6B7280, #9CA3AF);
 
 
 
 
77
  display: flex;
78
  flex-direction: column;
79
  align-items: center;
80
+ padding: 1rem 0;
81
+ position: fixed;
82
+ left: 0;
83
+ top: 0;
84
+ transition: width 0.3s ease;
85
+ z-index: 1001;
86
+ border-right: 1px solid rgba(255, 215, 0, 0.3);
87
  }
88
 
89
+ .sidebar:hover {
90
+ width: 200px;
 
 
 
 
 
 
 
91
  }
92
 
93
  .sidebar__item {
 
 
94
  width: 100%;
95
+ padding: 1rem;
96
+ color: var(--text-color);
97
  text-decoration: none;
98
+ display: flex;
99
+ align-items: center;
100
+ gap: 1rem;
101
+ transition: all 0.3s ease;
102
+ position: relative;
103
  }
104
 
105
+ .sidebar__item:hover,
106
+ .sidebar__item:focus {
107
+ background: rgba(255, 215, 0, 0.3);
108
+ rosa: rgba(255, 215, 0, 0.3);
109
+ color: var(--text-secondary-color);
110
+ padding-left: 1.5rem;
111
  }
112
 
113
+ .sidebar__item .dot {
114
  width: 8px;
115
  height: 8px;
116
+ background: var(--star-color);
117
  border-radius: 50%;
118
+ box-shadow: 0 0 8px var(--star-color);
119
+ animation: pulse 2s infinite;
120
+ }
121
+
122
+ .sidebar__item:hover .dot {
123
+ transform: scale(1.5);
124
+ }
125
+
126
+ .sidebar__item span {
127
+ display: none;
128
+ font-size: 1rem;
129
+ }
130
+
131
+ .sidebar:hover .sidebar__item span {
132
+ display: inline;
133
  }
134
 
135
  .tooltip {
136
+ visibility: hidden;
137
+ background: var(--secondary-color);
138
+ color: var(--text-color);
 
 
 
139
  font-size: 0.8rem;
140
+ padding: 0.5rem;
141
+ border-radius: 0.3rem;
142
+ position: absolute;
143
+ top: -30px;
144
+ left: 50%;
145
+ transform: translateX(-50%);
146
+ white-space: nowrap;
147
+ z-index: 1002;
148
+ transition: opacity 0.2s ease;
149
+ opacity: 0;
150
  }
151
 
152
+ .sidebar__item:hover .tooltip,
153
+ .sidebar__item:focus .tooltip {
154
+ visibility: visible;
155
+ opacity: 1;
156
  }
157
 
 
158
  .main-content {
159
+ flex: 1;
 
160
  display: flex;
161
  flex-direction: column;
162
+ padding-bottom: 100px;
163
+ padding-top: 2rem;
164
+ margin-left: 70px;
165
+ height: 100vh;
166
+ overflow: hidden;
167
  }
168
 
 
169
  .header {
170
+ max-width: 900px;
171
  text-align: center;
172
+ padding: 0 2rem;
173
+ margin: 0 auto;
174
  }
175
 
176
  .header__title h1 {
177
+ color: var(--text-secondary-color);
178
+ font-size: 3.5rem;
179
+ font-weight: 800;
180
+ margin-bottom: 1rem;
181
+ text-shadow: 0 0 10px rgba(255, 111, 97, 0.5);
182
+ animation: fadeIn 1s ease-in;
183
  }
184
 
185
  .header__title h2 {
186
+ color: var(--text-color);
187
+ font-size: 1.5rem;
188
  font-weight: 400;
189
+ max-width: 600px;
190
+ margin: 0 auto;
191
+ transition: opacity 0.3s ease, height 0.3s ease;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
192
  }
193
 
 
194
  .suggests {
195
+ display: grid;
196
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
197
+ margin: 2rem auto;
198
+ max-width: 900px;
199
+ gap: 1rem;
200
+ padding: 0 2rem;
201
+ animation: fadeIn 0.5s ease-in;
202
+ }
203
+
204
+ .suggests.hidden,
205
+ .header__title h2.hidden {
206
+ opacity: 0;
207
+ height: 0;
208
+ margin: 0;
209
+ overflow: hidden;
210
  }
211
 
212
  .suggests__item {
213
+ background: rgba(26, 27, 30, 0.9);
214
+ color: var(--text-color);
215
+ padding: 1.5rem;
216
+ border-radius: 0.5rem;
 
 
 
 
 
 
 
217
  cursor: pointer;
218
+ transition: all 0.3s ease;
219
+ border: 1px solid var(--accent-color);
220
  }
221
 
222
+ .soft_mode .suggests__item {
223
+ background: rgba(255, 255, 255, 0.9);
224
+ color: #333333;
225
+ }
226
+
227
+ .suggests__item:hover,
228
+ .suggests__item:focus {
229
+ background: var(--secondary-hover-color);
230
+ border-color: var(--text-secondary-color);
231
  transform: translateY(-3px);
 
232
  }
233
 
234
+ .suggests__item-icon {
235
+ margin-top: 1rem;
236
+ color: var(--accent-color);
237
+ transition: transform 0.2s ease;
 
238
  }
239
 
240
+ .suggests__item:hover .suggests__item-icon {
241
+ transform: scale(1.2);
 
242
  }
243
 
244
  .suggests__item .tooltip {
245
+ top: -40px;
 
 
 
246
  }
247
 
 
248
  .prompt {
249
  position: fixed;
250
+ z-index: 1000;
251
+ width: 600px;
252
+ left: 50%;
253
  bottom: 0;
254
+ transform: translateX(-50%);
255
+ padding: 1rem;
256
+ transition: all 0.3s ease;
 
 
 
 
 
 
 
 
 
257
  }
258
 
259
  .prompt__input-wrapper {
260
+ width: 600px;
261
  display: flex;
262
  align-items: center;
263
+ border: 2px solid var(--accent-color);
264
+ border-radius: 30px;
265
+ padding: 0.5rem;
266
+ transition: width 0.3s ease;
267
+ position: relative;
268
+ overflow: hidden;
269
+ background: var(--secondary-color);
270
+ }
271
+
272
+ .prompt__input-wrapper.expanded {
273
+ width: 700px;
274
+ }
275
+
276
+ .prompt__input-wrapper:focus-within {
277
+ border-color: var(--text-secondary-color);
278
+ transform: scale(1.02);
279
  }
280
 
281
  .prompt__form-input {
282
  flex-grow: 1;
 
283
  border: none;
284
+ font-size: 1.1rem;
285
+ color: var(--text-color);
286
+ padding: 0.5rem;
287
+ background: transparent;
288
  outline: none;
 
 
 
289
  }
290
 
291
  .prompt__form-input::placeholder {
292
+ color: var(--placeholder-color);
 
293
  }
294
 
295
  .prompt__action-buttons {
296
  display: flex;
297
+ align-items: center;
298
+ gap: 0.3rem;
299
+ }
300
+
301
+ .prompt__action-buttons.advanced {
302
+ display: none;
303
+ }
304
+
305
+ .prompt__action-buttons.advanced.active {
306
+ display: flex;
307
  }
308
 
309
  .prompt__form-button {
310
+ background: none;
311
  border: none;
312
+ color: var(--text-secondary-color);
313
+ font-size: 1.3rem;
 
 
 
 
314
  cursor: pointer;
315
+ padding: 0.3rem;
316
+ transition: all 0.3s ease;
317
  }
318
 
319
+ .prompt__form-button:hover,
320
+ .prompt__form-button:focus {
321
+ color: var(--accent-color);
322
+ transform: scale(1.1);
323
  }
324
 
325
+ .prompt__form-button.send {
326
+ font-size: 1.5rem;
 
327
  }
328
 
329
  .prompt__disclaim {
 
 
 
330
  text-align: center;
331
+ color: var(--text-color);
332
+ font-size: 0.8rem;
333
+ margin-top: 1rem;
334
+ }
335
+
336
+ .chat-bar {
337
+ max-width: 900px;
338
+ margin: 2rem auto;
339
+ padding: 0 2rem;
340
+ overflow-y: auto;
341
+ max-height: calc(100vh - 180px);
342
+ -ms-overflow-style: none;
343
+ scrollbar-width: none;
344
+ }
345
+
346
+ .chat-bar::-webkit-scrollbar {
347
+ display: none;
348
+ }
349
+
350
+ .chat-message {
351
+ margin-bottom: 1rem;
352
+ padding: 1rem;
353
+ border-radius: 0.5rem;
354
+ background: rgba(26, 27, 30, 0.9);
355
+ color: var(--text-color);
356
+ word-wrap: break-word;
357
+ animation: fadeIn 0.3s ease-in;
358
+ }
359
+
360
+ .soft_mode .chat-message {
361
+ background: rgba(255, 255, 255, 0.9);
362
+ color: #333333;
363
+ border: 1px solid #e0e0e0;
364
+ }
365
+
366
+ .chat-message.user {
367
+ background: rgba(255, 111, 97, 0.2);
368
+ border: 1px solid var(--accent-color);
369
+ }
370
+
371
+ .chat-message.bot {
372
+ background: rgba(36, 37, 40, 0.9);
373
+ }
374
+
375
+ .soft_mode .chat-message.bot {
376
+ background: rgba(240, 240, 240, 0.9);
377
+ color: #333333;
378
+ }
379
+
380
+ .chat-message.user.bubble-rounded {
381
+ border-radius: 1rem;
382
+ }
383
+
384
+ .chat-message.user.bubble-sharp {
385
+ border-radius: 0;
386
+ border: 2px solid var(--accent-color);
387
+ }
388
+
389
+ .chat-message.user.bubble-starry {
390
+ border-radius: 0.5rem;
391
+ border: 1px dashed var(--accent-color);
392
+ background: rgba(255, 111, 97, 0.2) url('https://www.transparenttextures.com/patterns/stardust.png') repeat;
393
+ background-size: 100px 100px;
394
+ }
395
+
396
+ .back-to-latest {
397
+ display: none;
398
+ position: fixed;
399
+ bottom: 100px;
400
+ right: 2rem;
401
+ background: var(--accent-color);
402
+ color: var(--text-color);
403
+ padding: 0.5rem 1rem;
404
+ border-radius: 0.5rem;
405
+ cursor: pointer;
406
+ transition: all 0.3s ease;
407
+ z-index: 1000;
408
+ }
409
+
410
+ .back-to-latest.visible {
411
+ display: block;
412
+ }
413
+
414
+ .back-to-latest:hover {
415
+ background: var(--secondary-hover-color);
416
+ transform: scale(1.05);
417
+ }
418
+
419
+ .processing-dots {
420
+ display: none;
421
+ position: absolute;
422
+ right: 60px;
423
+ color: var(--text-secondary-color);
424
+ font-size: 1.2rem;
425
+ }
426
+
427
+ .processing-dots.active {
428
+ display: inline;
429
+ animation: pulse 1.5s infinite;
430
+ }
431
+
432
+ .processing-dots span {
433
+ animation: blink 1s infinite;
434
+ animation-delay: calc(0.2s * var(--i));
435
  }
436
 
 
437
  .planet {
438
  position: absolute;
439
  border-radius: 50%;
440
+ background: radial-gradient(circle, rgba(255, 255, 255, 0.9) 0%, rgba(255, 111, 97, 0.4) 70%);
441
+ box-shadow: 0 0 20px rgba(255, 111, 97, 0.5);
442
+ animation: orbitCreative 20s linear infinite;
443
+ cursor: pointer;
444
+ transition: transform 0.3s ease;
445
+ z-index: 0;
446
+ }
447
+
448
+ .planet:hover {
449
+ transform: scale(1.2);
450
+ }
451
+
452
+ .planet1 {
453
+ width: 40px;
454
+ height: 40px;
455
+ top: 20%;
456
+ left: 15%;
457
  }
458
 
459
+ .planet2 {
460
+ width: 25px;
461
+ height: 25px;
462
+ top: 70%;
463
+ left: 75%;
464
+ }
465
+
466
+ .planet3 {
467
+ width: 15px;
468
+ height: 15px;
469
+ top: 50%;
470
+ left: 5%;
471
+ }
472
 
473
+ @keyframes orbitCreative {
474
+ 0% { transform: translate(0, 0) rotate(0deg); }
475
+ 25% { transform: translate(120px, 60px) rotate(90deg); }
476
+ 50% { transform: translate(150px, -60px) rotate(180deg); }
477
+ 75% { transform: translate(60px, 30px) rotate(270deg); }
478
+ 100% { transform: translate(0, 0) rotate(360deg); }
479
+ }
480
+
481
+ @keyframes pulse {
482
+ 0% { transform: scale(1); }
483
+ 50% { transform: scale(1.1); }
484
+ 100% { transform: scale(1); }
485
+ }
486
+
487
+ @keyframes fadeIn {
488
  from { opacity: 0; transform: translateY(10px); }
489
  to { opacity: 1; transform: translateY(0); }
490
  }
491
 
492
+ @keyframes blink {
493
+ 0% { opacity: 1; }
494
+ 50% { opacity: 0.3; }
495
+ 100% { opacity: 1; }
496
+ }
497
+
498
+ /* File Preview */
499
+ .file-preview {
500
+ display: flex;
501
+ align-items: center;
502
+ gap: 0.5rem;
503
+ padding: 0.5rem;
504
+ background: var(--secondary-color);
505
+ border-radius: 0.5rem;
506
+ margin-bottom: 0.5rem;
507
+ border: 1px dashed var(--focus-color);
508
+ }
509
+
510
+ .file-preview-icon {
511
+ font-size: 1.2rem;
512
+ color: var(--accent-color);
513
+ }
514
+
515
+ .file-preview-name {
516
+ flex: 1;
517
+ font-size: 0.9rem;
518
+ white-space: nowrap;
519
+ overflow: hidden;
520
+ text-overflow: ellipsis;
521
+ }
522
+
523
+ .file-preview-remove {
524
+ background: none;
525
+ border: none;
526
+ color: var(--text-secondary-color);
527
+ cursor: pointer;
528
+ font-size: 1rem;
529
+ transition: color 0.3s ease;
530
+ }
531
+
532
+ .file-preview-remove:hover {
533
+ color: #ff4d4d;
534
+ }
535
+
536
+ /* Image and VQA */
537
+ .image-result {
538
+ margin: 1rem 0;
539
+ border: 1px solid var(--focus-color);
540
+ border-radius: 0.5rem;
541
+ overflow: hidden;
542
+ }
543
+
544
+ .uploaded-image {
545
+ max-width: 100%;
546
+ max-height: 400px;
547
+ object-fit: contain;
548
+ display: block;
549
+ margin: 0 auto;
550
+ }
551
+
552
+ .image-caption {
553
+ padding: 1rem;
554
+ background: var(--secondary-color);
555
+ font-style: italic;
556
+ border-top: 1px solid var(--focus-color);
557
+ }
558
+
559
+ .vqa-response {
560
+ display: flex;
561
+ flex-direction: column;
562
+ gap: 1rem;
563
+ margin: 1rem 0;
564
+ background: var(--secondary-color);
565
+ border-radius: 0.5rem;
566
+ padding: 1rem;
567
+ border: 1px solid var(--focus-color);
568
+ }
569
+
570
+ .vqa-text {
571
+ flex: 1;
572
+ }
573
+
574
+ .vqa-text p {
575
+ margin: 0.75rem 0;
576
+ line-height: 1.6;
577
+ }
578
+
579
+ .vqa-text p strong {
580
+ color: var(--accent-color);
581
+ }
582
+
583
+ @media (min-width: 768px) {
584
+ .vqa-response {
585
+ flex-direction: row;
586
+ align-items: flex-start;
587
  }
588
+ .vqa-response .uploaded-image {
589
+ max-width: 250px;
590
+ margin: 0;
591
  }
592
  }