Yacine Jernite commited on
Commit
186bc23
·
1 Parent(s): 72be969
Files changed (2) hide show
  1. index.html +2 -299
  2. styles.css +340 -0
index.html CHANGED
@@ -54,305 +54,8 @@
54
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
55
  <link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700&family=Source+Sans+Pro:wght@400;600&display=swap" rel="stylesheet">
56
 
57
- <style>
58
- /* Prevent horizontal overflow */
59
- html, body {
60
- overflow-x: hidden;
61
- width: 100%;
62
- }
63
-
64
- /* Apply fonts to base elements */
65
- body {
66
- font-family: 'Source Sans Pro', sans-serif;
67
- --header-height: 100px; /* Two-line navigation menu - desktop */
68
-
69
- /* Typography scale - consistent font sizes */
70
- --text-xs: 0.75rem; /* 12px */
71
- --text-sm: 0.875rem; /* 14px */
72
- --text-base: 1rem; /* 16px */
73
- --text-lg: 1.125rem; /* 18px */
74
- --text-xl: 1.25rem; /* 20px */
75
- --text-2xl: 1.5rem; /* 24px */
76
- --text-3xl: 1.875rem; /* 30px */
77
- --text-4xl: 2.25rem; /* 36px */
78
-
79
- /* Line heights for readability */
80
- --leading-tight: 1.25;
81
- --leading-normal: 1.5;
82
- --leading-relaxed: 1.625;
83
- --leading-loose: 1.75;
84
- }
85
-
86
- /* Ensure minimum readable font size on mobile */
87
- @media (max-width: 767px) {
88
- body {
89
- font-size: 14px; /* Minimum 14px on mobile */
90
- }
91
-
92
- /* Adjust heading sizes for mobile */
93
- h1 {
94
- font-size: var(--text-2xl);
95
- }
96
-
97
- h2 {
98
- font-size: var(--text-xl);
99
- }
100
-
101
- h3 {
102
- font-size: var(--text-lg);
103
- }
104
- }
105
-
106
- /* Responsive header height */
107
- @media (max-width: 1023px) {
108
- body {
109
- --header-height: 80px; /* Tablet */
110
- }
111
- }
112
-
113
- @media (max-width: 767px) {
114
- body {
115
- --header-height: 70px; /* Mobile */
116
- }
117
- }
118
-
119
- h1, h2, h3, h4, h5, h6 {
120
- font-family: 'Montserrat', sans-serif;
121
- line-height: var(--leading-tight);
122
- }
123
-
124
- /* Body text readability */
125
- p {
126
- line-height: var(--leading-relaxed);
127
- }
128
-
129
- /* Improve readability of long-form content */
130
- .prose p {
131
- line-height: var(--leading-loose);
132
- margin-bottom: 1em;
133
- }
134
-
135
- /* Ensure all major containers respect viewport width */
136
- #main-layout, #main-content {
137
- max-width: 100vw;
138
- }
139
-
140
- /* Mobile menu - switch at lg breakpoint (1024px)
141
- 2x3 grid is more compact, can show on smaller screens */
142
- @media (max-width: 1023px) {
143
- .mobile-menu-hidden {
144
- display: none;
145
- }
146
- }
147
-
148
- /* Mobile search sidebar - full screen on mobile */
149
- @media (max-width: 767px) {
150
- #search-sidebar {
151
- width: 100vw !important;
152
- right: 0;
153
- }
154
-
155
- #search-sidebar > div {
156
- padding: 1rem;
157
- }
158
-
159
- /* Adjust search results height for mobile */
160
- #search-results {
161
- height: calc(100vh - 180px) !important;
162
- }
163
- }
164
-
165
- /* Navigation overflow handling */
166
- @media (min-width: 769px) {
167
- .nav-line-scroll {
168
- overflow-x: auto;
169
- overflow-y: hidden;
170
- white-space: nowrap;
171
- }
172
-
173
- .nav-line-scroll::-webkit-scrollbar {
174
- height: 4px;
175
- }
176
-
177
- .nav-line-scroll::-webkit-scrollbar-track {
178
- background: #f1f1f1;
179
- }
180
-
181
- .nav-line-scroll::-webkit-scrollbar-thumb {
182
- background: #888;
183
- border-radius: 2px;
184
- }
185
- }
186
- /* Frosted glass effect */
187
- .backdrop-blur-md {
188
- backdrop-filter: blur(12px);
189
- -webkit-backdrop-filter: blur(12px);
190
- }
191
-
192
- .backdrop-blur-sm {
193
- backdrop-filter: blur(8px);
194
- -webkit-backdrop-filter: blur(8px);
195
- }
196
-
197
- /* Text utilities */
198
- .line-clamp-2 {
199
- display: -webkit-box;
200
- -webkit-line-clamp: 2;
201
- -webkit-box-orient: vertical;
202
- overflow: hidden;
203
- }
204
-
205
- .line-clamp-3 {
206
- display: -webkit-box;
207
- -webkit-line-clamp: 3;
208
- -webkit-box-orient: vertical;
209
- overflow: hidden;
210
- }
211
-
212
- .drop-shadow-lg {
213
- filter: drop-shadow(0 4px 6px rgba(0, 0, 0, 0.3));
214
- }
215
-
216
- .scrollbar-hide {
217
- -ms-overflow-style: none;
218
- scrollbar-width: none;
219
- }
220
-
221
- .scrollbar-hide::-webkit-scrollbar {
222
- display: none;
223
- }
224
-
225
- /* Screen reader only utility */
226
- .sr-only {
227
- position: absolute;
228
- width: 1px;
229
- height: 1px;
230
- padding: 0;
231
- margin: -1px;
232
- overflow: hidden;
233
- clip: rect(0, 0, 0, 0);
234
- white-space: nowrap;
235
- border-width: 0;
236
- }
237
-
238
- .sr-only:focus {
239
- position: static;
240
- width: auto;
241
- height: auto;
242
- padding: inherit;
243
- margin: inherit;
244
- overflow: visible;
245
- clip: auto;
246
- white-space: normal;
247
- }
248
-
249
- /* Mobile carousel improvements */
250
- @media (max-width: 767px) {
251
- /* Hide carousel navigation arrows on mobile */
252
- .carousel-arrow {
253
- display: none;
254
- }
255
-
256
- /* Smooth touch scrolling for carousels */
257
- .carousel-scroll {
258
- -webkit-overflow-scrolling: touch;
259
- scroll-behavior: smooth;
260
- }
261
-
262
- /* Add padding to carousel for better touch targets */
263
- .carousel-scroll > * {
264
- scroll-snap-align: start;
265
- }
266
- }
267
-
268
- /* Carousel arrow styling */
269
- .carousel-arrow {
270
- transition: opacity 0.2s, transform 0.2s;
271
- }
272
-
273
- .carousel-arrow:hover {
274
- transform: scale(1.1);
275
- }
276
-
277
- .carousel-arrow:active {
278
- transform: scale(0.95);
279
- }
280
-
281
- /* Custom scrollbar for research area card descriptions */
282
- .overflow-y-auto::-webkit-scrollbar {
283
- width: 4px;
284
- }
285
-
286
- .overflow-y-auto::-webkit-scrollbar-track {
287
- background: transparent;
288
- }
289
-
290
- .overflow-y-auto::-webkit-scrollbar-thumb {
291
- background: #cbd5e0;
292
- border-radius: 2px;
293
- }
294
-
295
- .overflow-y-auto::-webkit-scrollbar-thumb:hover {
296
- background: #a0aec0;
297
- }
298
-
299
- /* Search results scrolling */
300
- #search-results {
301
- scrollbar-width: thin;
302
- scrollbar-color: #cbd5e0 #f7fafc;
303
- }
304
-
305
- #search-results::-webkit-scrollbar {
306
- width: 6px;
307
- }
308
-
309
- #search-results::-webkit-scrollbar-track {
310
- background: #f7fafc;
311
- }
312
-
313
- #search-results::-webkit-scrollbar-thumb {
314
- background: #cbd5e0;
315
- border-radius: 3px;
316
- }
317
-
318
- #search-results::-webkit-scrollbar-thumb:hover {
319
- background: #a0aec0;
320
- }
321
-
322
- /* Overall background styling */
323
- #overall-background {
324
- background-attachment: fixed;
325
- }
326
-
327
- #overall-background img {
328
- object-fit: cover;
329
- object-position: left top;
330
- }
331
-
332
- #page-background {
333
- overflow: hidden;
334
- }
335
-
336
- #page-background img {
337
- height: 100%;
338
- width: auto;
339
- min-width: 100%;
340
- object-fit: cover;
341
- object-position: left top;
342
- }
343
-
344
- /* Semi-transparent overlays for header and search sidebar */
345
- header, #search-sidebar {
346
- background: rgba(255, 255, 255, 0.6);
347
- }
348
-
349
- /* Ensure content is readable over background */
350
- header *, #search-sidebar * {
351
- position: relative;
352
- z-index: 1;
353
- }
354
-
355
- </style>
356
  </head>
357
  <body class="bg-gray-50 text-gray-800">
358
  <!-- Overall Background Image - Only for header and sidebars -->
 
54
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
55
  <link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700&family=Source+Sans+Pro:wght@400;600&display=swap" rel="stylesheet">
56
 
57
+ <!-- Custom Styles -->
58
+ <link rel="stylesheet" href="styles.css">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59
  </head>
60
  <body class="bg-gray-50 text-gray-800">
61
  <!-- Overall Background Image - Only for header and sidebars -->
styles.css ADDED
@@ -0,0 +1,340 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* ============================================
2
+ ML & Society Team Website - Custom Styles
3
+ ============================================ */
4
+
5
+ /* ============================================
6
+ Base Styles & Layout
7
+ ============================================ */
8
+
9
+ /* Prevent horizontal overflow */
10
+ html, body {
11
+ overflow-x: hidden;
12
+ width: 100%;
13
+ }
14
+
15
+ /* Apply fonts to base elements */
16
+ body {
17
+ font-family: 'Source Sans Pro', sans-serif;
18
+ --header-height: 100px; /* Two-line navigation menu - desktop */
19
+
20
+ /* Typography scale - consistent font sizes */
21
+ --text-xs: 0.75rem; /* 12px */
22
+ --text-sm: 0.875rem; /* 14px */
23
+ --text-base: 1rem; /* 16px */
24
+ --text-lg: 1.125rem; /* 18px */
25
+ --text-xl: 1.25rem; /* 20px */
26
+ --text-2xl: 1.5rem; /* 24px */
27
+ --text-3xl: 1.875rem; /* 30px */
28
+ --text-4xl: 2.25rem; /* 36px */
29
+
30
+ /* Line heights for readability */
31
+ --leading-tight: 1.25;
32
+ --leading-normal: 1.5;
33
+ --leading-relaxed: 1.625;
34
+ --leading-loose: 1.75;
35
+ }
36
+
37
+ /* Ensure all major containers respect viewport width */
38
+ #main-layout, #main-content {
39
+ max-width: 100vw;
40
+ }
41
+
42
+ /* ============================================
43
+ Typography
44
+ ============================================ */
45
+
46
+ h1, h2, h3, h4, h5, h6 {
47
+ font-family: 'Montserrat', sans-serif;
48
+ line-height: var(--leading-tight);
49
+ }
50
+
51
+ /* Body text readability */
52
+ p {
53
+ line-height: var(--leading-relaxed);
54
+ }
55
+
56
+ /* Improve readability of long-form content */
57
+ .prose p {
58
+ line-height: var(--leading-loose);
59
+ margin-bottom: 1em;
60
+ }
61
+
62
+ /* ============================================
63
+ Responsive Design - Mobile
64
+ ============================================ */
65
+
66
+ /* Ensure minimum readable font size on mobile */
67
+ @media (max-width: 767px) {
68
+ body {
69
+ font-size: 14px; /* Minimum 14px on mobile */
70
+ }
71
+
72
+ /* Adjust heading sizes for mobile */
73
+ h1 {
74
+ font-size: var(--text-2xl);
75
+ }
76
+
77
+ h2 {
78
+ font-size: var(--text-xl);
79
+ }
80
+
81
+ h3 {
82
+ font-size: var(--text-lg);
83
+ }
84
+ }
85
+
86
+ /* Responsive header height */
87
+ @media (max-width: 1023px) {
88
+ body {
89
+ --header-height: 80px; /* Tablet */
90
+ }
91
+ }
92
+
93
+ @media (max-width: 767px) {
94
+ body {
95
+ --header-height: 70px; /* Mobile */
96
+ }
97
+ }
98
+
99
+ /* Mobile menu */
100
+ @media (max-width: 1023px) {
101
+ .mobile-menu-hidden {
102
+ display: none;
103
+ }
104
+ }
105
+
106
+ /* Mobile search sidebar - full screen on mobile */
107
+ @media (max-width: 767px) {
108
+ #search-sidebar {
109
+ width: 100vw !important;
110
+ right: 0;
111
+ }
112
+
113
+ #search-sidebar > div {
114
+ padding: 1rem;
115
+ }
116
+
117
+ /* Adjust search results height for mobile */
118
+ #search-results {
119
+ height: calc(100vh - 180px) !important;
120
+ }
121
+ }
122
+
123
+ /* ============================================
124
+ Navigation
125
+ ============================================ */
126
+
127
+ /* Navigation overflow handling */
128
+ @media (min-width: 769px) {
129
+ .nav-line-scroll {
130
+ overflow-x: auto;
131
+ overflow-y: hidden;
132
+ white-space: nowrap;
133
+ }
134
+
135
+ .nav-line-scroll::-webkit-scrollbar {
136
+ height: 4px;
137
+ }
138
+
139
+ .nav-line-scroll::-webkit-scrollbar-track {
140
+ background: #f1f1f1;
141
+ }
142
+
143
+ .nav-line-scroll::-webkit-scrollbar-thumb {
144
+ background: #888;
145
+ border-radius: 2px;
146
+ }
147
+ }
148
+
149
+ /* ============================================
150
+ Visual Effects
151
+ ============================================ */
152
+
153
+ /* Frosted glass effect */
154
+ .backdrop-blur-md {
155
+ backdrop-filter: blur(12px);
156
+ -webkit-backdrop-filter: blur(12px);
157
+ }
158
+
159
+ .backdrop-blur-sm {
160
+ backdrop-filter: blur(8px);
161
+ -webkit-backdrop-filter: blur(8px);
162
+ }
163
+
164
+ .drop-shadow-lg {
165
+ filter: drop-shadow(0 4px 6px rgba(0, 0, 0, 0.3));
166
+ }
167
+
168
+ /* ============================================
169
+ Text Utilities
170
+ ============================================ */
171
+
172
+ .line-clamp-2 {
173
+ display: -webkit-box;
174
+ -webkit-line-clamp: 2;
175
+ -webkit-box-orient: vertical;
176
+ overflow: hidden;
177
+ }
178
+
179
+ .line-clamp-3 {
180
+ display: -webkit-box;
181
+ -webkit-line-clamp: 3;
182
+ -webkit-box-orient: vertical;
183
+ overflow: hidden;
184
+ }
185
+
186
+ /* ============================================
187
+ Scrollbar Styles
188
+ ============================================ */
189
+
190
+ .scrollbar-hide {
191
+ -ms-overflow-style: none;
192
+ scrollbar-width: none;
193
+ }
194
+
195
+ .scrollbar-hide::-webkit-scrollbar {
196
+ display: none;
197
+ }
198
+
199
+ /* Custom scrollbar for research area card descriptions */
200
+ .overflow-y-auto::-webkit-scrollbar {
201
+ width: 4px;
202
+ }
203
+
204
+ .overflow-y-auto::-webkit-scrollbar-track {
205
+ background: transparent;
206
+ }
207
+
208
+ .overflow-y-auto::-webkit-scrollbar-thumb {
209
+ background: #cbd5e0;
210
+ border-radius: 2px;
211
+ }
212
+
213
+ .overflow-y-auto::-webkit-scrollbar-thumb:hover {
214
+ background: #a0aec0;
215
+ }
216
+
217
+ /* Search results scrolling */
218
+ #search-results {
219
+ scrollbar-width: thin;
220
+ scrollbar-color: #cbd5e0 #f7fafc;
221
+ }
222
+
223
+ #search-results::-webkit-scrollbar {
224
+ width: 6px;
225
+ }
226
+
227
+ #search-results::-webkit-scrollbar-track {
228
+ background: #f7fafc;
229
+ }
230
+
231
+ #search-results::-webkit-scrollbar-thumb {
232
+ background: #cbd5e0;
233
+ border-radius: 3px;
234
+ }
235
+
236
+ #search-results::-webkit-scrollbar-thumb:hover {
237
+ background: #a0aec0;
238
+ }
239
+
240
+ /* ============================================
241
+ Accessibility
242
+ ============================================ */
243
+
244
+ /* Screen reader only utility */
245
+ .sr-only {
246
+ position: absolute;
247
+ width: 1px;
248
+ height: 1px;
249
+ padding: 0;
250
+ margin: -1px;
251
+ overflow: hidden;
252
+ clip: rect(0, 0, 0, 0);
253
+ white-space: nowrap;
254
+ border-width: 0;
255
+ }
256
+
257
+ .sr-only:focus {
258
+ position: static;
259
+ width: auto;
260
+ height: auto;
261
+ padding: inherit;
262
+ margin: inherit;
263
+ overflow: visible;
264
+ clip: auto;
265
+ white-space: normal;
266
+ }
267
+
268
+ /* ============================================
269
+ Carousel
270
+ ============================================ */
271
+
272
+ /* Carousel arrow styling */
273
+ .carousel-arrow {
274
+ transition: opacity 0.2s, transform 0.2s;
275
+ }
276
+
277
+ .carousel-arrow:hover {
278
+ transform: scale(1.1);
279
+ }
280
+
281
+ .carousel-arrow:active {
282
+ transform: scale(0.95);
283
+ }
284
+
285
+ /* Mobile carousel improvements */
286
+ @media (max-width: 767px) {
287
+ /* Hide carousel navigation arrows on mobile */
288
+ .carousel-arrow {
289
+ display: none;
290
+ }
291
+
292
+ /* Smooth touch scrolling for carousels */
293
+ .carousel-scroll {
294
+ -webkit-overflow-scrolling: touch;
295
+ scroll-behavior: smooth;
296
+ }
297
+
298
+ /* Add padding to carousel for better touch targets */
299
+ .carousel-scroll > * {
300
+ scroll-snap-align: start;
301
+ }
302
+ }
303
+
304
+ /* ============================================
305
+ Background Images
306
+ ============================================ */
307
+
308
+ /* Overall background styling */
309
+ #overall-background {
310
+ background-attachment: fixed;
311
+ }
312
+
313
+ #overall-background img {
314
+ object-fit: cover;
315
+ object-position: left top;
316
+ }
317
+
318
+ #page-background {
319
+ overflow: hidden;
320
+ }
321
+
322
+ #page-background img {
323
+ height: 100%;
324
+ width: auto;
325
+ min-width: 100%;
326
+ object-fit: cover;
327
+ object-position: left top;
328
+ }
329
+
330
+ /* Semi-transparent overlays for header and search sidebar */
331
+ header, #search-sidebar {
332
+ background: rgba(255, 255, 255, 0.6);
333
+ }
334
+
335
+ /* Ensure content is readable over background */
336
+ header *, #search-sidebar * {
337
+ position: relative;
338
+ z-index: 1;
339
+ }
340
+