@prosophia/lab-classic 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,465 @@
1
+ /* PeoplePage.module.css - Verdant Edition */
2
+
3
+ .pageWrapper {
4
+ padding-top: var(--header-height, 80px);
5
+ min-height: 100vh;
6
+ }
7
+
8
+ .pageContainer {
9
+ max-width: 1400px;
10
+ margin: 0 auto;
11
+ padding: 0 var(--space-xl, 3rem);
12
+ }
13
+
14
+ /* Page Header */
15
+ .pageHeader {
16
+ text-align: center;
17
+ padding: var(--space-3xl, 6rem) 0;
18
+ margin-bottom: var(--space-2xl, 4rem);
19
+ }
20
+
21
+ .title {
22
+ font-size: clamp(2rem, 4vw, 3rem);
23
+ font-weight: 500;
24
+ line-height: 1.2;
25
+ letter-spacing: -0.01em;
26
+ margin: 0 0 var(--space-md, 1.5rem) 0;
27
+ }
28
+
29
+ .subtitle {
30
+ font-size: 1.125rem;
31
+ line-height: 1.7;
32
+ max-width: 800px;
33
+ margin: 0 auto;
34
+ }
35
+
36
+ :global(body:not(.dark-mode)) .subtitle,
37
+ :global(.light-mode) .subtitle {
38
+ color: var(--light-text-muted, #7F878B);
39
+ }
40
+
41
+ :global(.dark-mode) .subtitle,
42
+ :global(.dark) .subtitle {
43
+ color: var(--dark-text-muted, #5C6366);
44
+ }
45
+
46
+ .main {
47
+ padding-bottom: var(--space-3xl, 6rem);
48
+ }
49
+
50
+ /* Principal Investigator Section - Verdant Glass */
51
+ .piSection {
52
+ margin-bottom: var(--space-2xl, 4rem);
53
+ padding: var(--space-lg, 2rem);
54
+ backdrop-filter: blur(20px) saturate(180%);
55
+ -webkit-backdrop-filter: blur(20px) saturate(180%);
56
+ border-radius: var(--radius-xl, 20px);
57
+ max-width: 700px;
58
+ margin-left: auto;
59
+ margin-right: auto;
60
+ }
61
+
62
+ :global(body:not(.dark-mode)) .piSection,
63
+ :global(.light-mode) .piSection {
64
+ background: rgba(255, 255, 255, 0.7);
65
+ border: 1px solid rgba(21, 48, 33, 0.08);
66
+ box-shadow: 0 8px 32px rgba(10, 24, 16, 0.08);
67
+ }
68
+
69
+ :global(.dark-mode) .piSection,
70
+ :global(.dark) .piSection {
71
+ background: var(--dark-bg-tertiary);
72
+ border: 1px solid rgba(var(--accent-primary-rgb, 139, 218, 163), 0.12);
73
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
74
+ }
75
+
76
+ .piHeading {
77
+ font-size: 0.75rem;
78
+ font-weight: 600;
79
+ letter-spacing: 0.12em;
80
+ text-transform: uppercase;
81
+ margin-bottom: var(--space-md, 1.5rem);
82
+ text-align: center;
83
+ }
84
+
85
+ :global(body:not(.dark-mode)) .piHeading,
86
+ :global(.light-mode) .piHeading {
87
+ color: var(--accent-secondary, #3A8F62);
88
+ }
89
+
90
+ :global(.dark-mode) .piHeading,
91
+ :global(.dark) .piHeading {
92
+ color: var(--dark-text-secondary, #8BDAA3);
93
+ }
94
+
95
+ .piContent {
96
+ display: flex;
97
+ flex-direction: column;
98
+ align-items: center;
99
+ gap: var(--space-md, 1.5rem);
100
+ }
101
+
102
+ @media (min-width: 768px) {
103
+ .piContent {
104
+ flex-direction: row;
105
+ align-items: center;
106
+ gap: var(--space-lg, 2rem);
107
+ }
108
+ }
109
+
110
+ .piImageWrapper {
111
+ flex-shrink: 0;
112
+ }
113
+
114
+ .piImage {
115
+ width: 160px;
116
+ height: 160px;
117
+ border-radius: var(--radius-lg, 16px);
118
+ object-fit: cover;
119
+ box-shadow: 0 8px 32px rgba(10, 24, 16, 0.15);
120
+ }
121
+
122
+ .piInfo {
123
+ flex: 1;
124
+ text-align: center;
125
+ }
126
+
127
+ @media (min-width: 768px) {
128
+ .piInfo {
129
+ text-align: left;
130
+ }
131
+ }
132
+
133
+ .piName {
134
+ font-size: 1.375rem;
135
+ font-weight: 600;
136
+ margin: 0 0 0.25rem 0;
137
+ }
138
+
139
+ .piTitle {
140
+ font-size: 0.9375rem;
141
+ color: var(--accent-tertiary, #5CB87A);
142
+ font-weight: 500;
143
+ margin: 0;
144
+ }
145
+
146
+ /* PI Social Links */
147
+ .piSocials {
148
+ display: flex;
149
+ justify-content: center;
150
+ gap: 0.75rem;
151
+ margin-top: 0.75rem;
152
+ }
153
+
154
+ @media (min-width: 768px) {
155
+ .piSocials {
156
+ justify-content: flex-start;
157
+ }
158
+ }
159
+
160
+ .piSocialLink {
161
+ display: flex;
162
+ align-items: center;
163
+ justify-content: center;
164
+ width: 34px;
165
+ height: 34px;
166
+ border-radius: var(--radius-sm, 8px);
167
+ transition: all var(--transition-base);
168
+ }
169
+
170
+ :global(body:not(.dark-mode)) .piSocialLink,
171
+ :global(.light-mode) .piSocialLink {
172
+ color: var(--light-text-muted, #7F878B);
173
+ background: rgba(21, 48, 33, 0.05);
174
+ }
175
+
176
+ :global(.dark-mode) .piSocialLink,
177
+ :global(.dark) .piSocialLink {
178
+ color: var(--dark-text-muted, #5C6366);
179
+ background: rgba(139, 218, 163, 0.08);
180
+ }
181
+
182
+ .piSocialLink:hover {
183
+ color: white;
184
+ background: var(--accent-tertiary, #5CB87A);
185
+ transform: translateY(-2px);
186
+ }
187
+
188
+ .piSocialLink svg {
189
+ flex-shrink: 0;
190
+ }
191
+
192
+ .piContact {
193
+ display: flex;
194
+ flex-direction: column;
195
+ gap: var(--space-xs, 0.5rem);
196
+ margin-bottom: var(--space-lg, 2rem);
197
+ font-size: 0.9375rem;
198
+ }
199
+
200
+ :global(body:not(.dark-mode)) .piContact,
201
+ :global(.light-mode) .piContact {
202
+ color: var(--light-text-muted, #7F878B);
203
+ }
204
+
205
+ :global(.dark-mode) .piContact,
206
+ :global(.dark) .piContact {
207
+ color: var(--dark-text-muted, #5C6366);
208
+ }
209
+
210
+ .piBio {
211
+ line-height: 1.7;
212
+ font-size: 1rem;
213
+ }
214
+
215
+ :global(body:not(.dark-mode)) .piBio,
216
+ :global(.light-mode) .piBio {
217
+ color: var(--light-text-secondary, #153021);
218
+ }
219
+
220
+ :global(.dark-mode) .piBio,
221
+ :global(.dark) .piBio {
222
+ color: var(--dark-text-secondary, #8BDAA3);
223
+ }
224
+
225
+ /* Team Members Section */
226
+ .membersSection {
227
+ margin-bottom: var(--space-2xl, 4rem);
228
+ }
229
+
230
+ .sectionHeading {
231
+ font-size: 0.875rem;
232
+ font-weight: 600;
233
+ letter-spacing: 0.12em;
234
+ text-transform: uppercase;
235
+ margin-bottom: var(--space-xl, 3rem);
236
+ text-align: center;
237
+ }
238
+
239
+ :global(body:not(.dark-mode)) .sectionHeading,
240
+ :global(.light-mode) .sectionHeading {
241
+ color: var(--accent-secondary, #3A8F62);
242
+ }
243
+
244
+ :global(.dark-mode) .sectionHeading,
245
+ :global(.dark) .sectionHeading {
246
+ color: var(--dark-text-secondary, #8BDAA3);
247
+ }
248
+
249
+ .membersGrid {
250
+ display: grid;
251
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
252
+ gap: var(--space-lg, 2rem);
253
+ max-width: 1200px;
254
+ margin: 0 auto;
255
+ }
256
+
257
+ /* Verdant Team Card */
258
+ .memberCard {
259
+ text-align: center;
260
+ backdrop-filter: blur(20px) saturate(180%);
261
+ -webkit-backdrop-filter: blur(20px) saturate(180%);
262
+ border-radius: var(--radius-xl, 20px);
263
+ overflow: hidden;
264
+ transition: all var(--transition-slow);
265
+ }
266
+
267
+ :global(body:not(.dark-mode)) .memberCard,
268
+ :global(.light-mode) .memberCard {
269
+ background: rgba(255, 255, 255, 0.7);
270
+ border: 1px solid rgba(21, 48, 33, 0.08);
271
+ box-shadow: 0 8px 32px rgba(10, 24, 16, 0.08);
272
+ }
273
+
274
+ :global(.dark-mode) .memberCard,
275
+ :global(.dark) .memberCard {
276
+ background: var(--dark-bg-tertiary);
277
+ border: 1px solid rgba(var(--accent-primary-rgb, 139, 218, 163), 0.12);
278
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
279
+ }
280
+
281
+ .memberCard:hover {
282
+ transform: translateY(-8px);
283
+ }
284
+
285
+ :global(body:not(.dark-mode)) .memberCard:hover,
286
+ :global(.light-mode) .memberCard:hover {
287
+ box-shadow: 0 20px 60px rgba(10, 24, 16, 0.15);
288
+ border-color: rgba(42, 104, 71, 0.25);
289
+ }
290
+
291
+ :global(.dark-mode) .memberCard:hover,
292
+ :global(.dark) .memberCard:hover {
293
+ box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4);
294
+ border-color: rgba(var(--accent-primary-rgb, 139, 218, 163), 0.25);
295
+ }
296
+
297
+ /* Verdant 3:4 aspect ratio image with grayscale */
298
+ .memberImageWrapper {
299
+ width: 100%;
300
+ aspect-ratio: 3 / 4;
301
+ overflow: hidden;
302
+ }
303
+
304
+ .memberImage {
305
+ width: 100%;
306
+ height: 100%;
307
+ object-fit: cover;
308
+ filter: grayscale(100%);
309
+ transition: filter var(--transition-slow);
310
+ }
311
+
312
+ .memberCard:hover .memberImage {
313
+ filter: grayscale(0%);
314
+ }
315
+
316
+ .memberInfo {
317
+ padding: var(--space-lg, 2rem);
318
+ }
319
+
320
+ .memberName {
321
+ font-size: 1.125rem;
322
+ font-weight: 600;
323
+ margin: 0 0 var(--space-xs, 0.5rem) 0;
324
+ }
325
+
326
+ .memberRole {
327
+ font-size: 0.875rem;
328
+ font-weight: 500;
329
+ text-transform: uppercase;
330
+ letter-spacing: 0.05em;
331
+ margin: 0 0 var(--space-sm, 1rem) 0;
332
+ }
333
+
334
+ :global(body:not(.dark-mode)) .memberRole,
335
+ :global(.light-mode) .memberRole {
336
+ color: var(--light-text-muted, #7F878B);
337
+ }
338
+
339
+ :global(.dark-mode) .memberRole,
340
+ :global(.dark) .memberRole {
341
+ color: var(--dark-text-muted, #5C6366);
342
+ }
343
+
344
+ /* Social Links */
345
+ .memberSocials {
346
+ display: flex;
347
+ justify-content: center;
348
+ gap: var(--space-sm, 1rem);
349
+ margin-top: var(--space-sm, 1rem);
350
+ }
351
+
352
+ .socialLink {
353
+ display: flex;
354
+ align-items: center;
355
+ justify-content: center;
356
+ width: 36px;
357
+ height: 36px;
358
+ border-radius: var(--radius-md, 12px);
359
+ transition: all var(--transition-base);
360
+ }
361
+
362
+ :global(body:not(.dark-mode)) .socialLink,
363
+ :global(.light-mode) .socialLink {
364
+ color: var(--light-text-muted, #7F878B);
365
+ background: rgba(21, 48, 33, 0.05);
366
+ }
367
+
368
+ :global(.dark-mode) .socialLink,
369
+ :global(.dark) .socialLink {
370
+ color: var(--dark-text-muted, #5C6366);
371
+ background: rgba(139, 218, 163, 0.08);
372
+ }
373
+
374
+ .socialLink:hover {
375
+ color: white;
376
+ background: var(--accent-tertiary, #5CB87A);
377
+ transform: translateY(-2px);
378
+ }
379
+
380
+ .socialLink svg {
381
+ flex-shrink: 0;
382
+ }
383
+
384
+ .memberDescription {
385
+ font-size: 0.875rem;
386
+ line-height: 1.6;
387
+ margin: 0 0 var(--space-md, 1.5rem) 0;
388
+ }
389
+
390
+ :global(body:not(.dark-mode)) .memberDescription,
391
+ :global(.light-mode) .memberDescription {
392
+ color: var(--light-text-muted, #7F878B);
393
+ }
394
+
395
+ :global(.dark-mode) .memberDescription,
396
+ :global(.dark) .memberDescription {
397
+ color: var(--dark-text-muted, #5C6366);
398
+ }
399
+
400
+ .memberContact {
401
+ display: flex;
402
+ flex-direction: column;
403
+ align-items: center;
404
+ gap: var(--space-xs, 0.5rem);
405
+ font-size: 0.875rem;
406
+ }
407
+
408
+ :global(body:not(.dark-mode)) .memberContact,
409
+ :global(.light-mode) .memberContact {
410
+ color: var(--light-text-muted, #7F878B);
411
+ }
412
+
413
+ :global(.dark-mode) .memberContact,
414
+ :global(.dark) .memberContact {
415
+ color: var(--dark-text-muted, #5C6366);
416
+ }
417
+
418
+ .memberContact a {
419
+ color: var(--accent-tertiary, #5CB87A);
420
+ text-decoration: none;
421
+ transition: opacity var(--transition-base);
422
+ }
423
+
424
+ .memberContact a:hover {
425
+ opacity: 0.8;
426
+ }
427
+
428
+ /* Past Members Link */
429
+ .pastMembersSection {
430
+ text-align: center;
431
+ margin-top: var(--space-xl, 3rem);
432
+ }
433
+
434
+ .pastMembersLink {
435
+ display: inline-flex;
436
+ align-items: center;
437
+ gap: 0.5rem;
438
+ padding: 0.75rem 1.75rem;
439
+ border: 1px solid var(--accent-tertiary, #5CB87A);
440
+ border-radius: var(--radius-md, 12px);
441
+ font-weight: 500;
442
+ font-size: 0.9375rem;
443
+ text-decoration: none;
444
+ transition: all var(--transition-base);
445
+ backdrop-filter: blur(8px);
446
+ }
447
+
448
+ :global(body:not(.dark-mode)) .pastMembersLink,
449
+ :global(.light-mode) .pastMembersLink {
450
+ background: rgba(42, 104, 71, 0.08);
451
+ color: var(--accent-primary, #2A6847);
452
+ }
453
+
454
+ :global(.dark-mode) .pastMembersLink,
455
+ :global(.dark) .pastMembersLink {
456
+ background: rgba(92, 184, 122, 0.1);
457
+ color: var(--accent-tertiary, #5CB87A);
458
+ }
459
+
460
+ .pastMembersLink:hover {
461
+ background: linear-gradient(135deg, var(--accent-primary, #2A6847), var(--accent-secondary, #3A8F62));
462
+ color: white;
463
+ transform: translateY(-2px);
464
+ border-color: transparent;
465
+ }
@@ -0,0 +1,196 @@
1
+ /* PicturesPage.module.css - Verdant Edition */
2
+
3
+ .pageWrapper {
4
+ padding-top: var(--header-height, 80px);
5
+ min-height: 100vh;
6
+ }
7
+
8
+ .pageContainer {
9
+ max-width: 1400px;
10
+ margin: 0 auto;
11
+ padding: 0 var(--space-xl, 3rem);
12
+ }
13
+
14
+ /* Page Header */
15
+ .pageHeader {
16
+ text-align: center;
17
+ padding: var(--space-3xl, 6rem) 0;
18
+ margin-bottom: var(--space-2xl, 4rem);
19
+ }
20
+
21
+ .title {
22
+ font-size: clamp(2rem, 4vw, 3rem);
23
+ font-weight: 500;
24
+ line-height: 1.2;
25
+ letter-spacing: -0.01em;
26
+ margin: 0 0 var(--space-md, 1.5rem) 0;
27
+ }
28
+
29
+ .subtitle {
30
+ font-size: 1.125rem;
31
+ line-height: 1.7;
32
+ max-width: 800px;
33
+ margin: 0 auto;
34
+ }
35
+
36
+ :global(body:not(.dark-mode)) .subtitle,
37
+ :global(.light-mode) .subtitle {
38
+ color: var(--light-text-muted, #7F878B);
39
+ }
40
+
41
+ :global(.dark-mode) .subtitle,
42
+ :global(.dark) .subtitle {
43
+ color: var(--dark-text-muted, #5C6366);
44
+ }
45
+
46
+ .main {
47
+ padding-bottom: var(--space-3xl, 6rem);
48
+ }
49
+
50
+ .categoriesList {
51
+ max-width: 1400px;
52
+ margin: 0 auto;
53
+ display: flex;
54
+ flex-direction: column;
55
+ gap: var(--space-3xl, 6rem);
56
+ }
57
+
58
+ .categorySection {
59
+ width: 100%;
60
+ }
61
+
62
+ .categoryHeader {
63
+ font-size: 0.875rem;
64
+ font-weight: 600;
65
+ letter-spacing: 0.12em;
66
+ text-transform: uppercase;
67
+ margin-bottom: var(--space-lg, 2rem);
68
+ padding-left: var(--space-md, 1.5rem);
69
+ position: relative;
70
+ }
71
+
72
+ :global(body:not(.dark-mode)) .categoryHeader,
73
+ :global(.light-mode) .categoryHeader {
74
+ color: var(--accent-secondary, #3A8F62);
75
+ }
76
+
77
+ :global(.dark-mode) .categoryHeader,
78
+ :global(.dark) .categoryHeader {
79
+ color: var(--dark-text-secondary, #8BDAA3);
80
+ }
81
+
82
+ .categoryHeader::before {
83
+ content: '';
84
+ position: absolute;
85
+ left: 0;
86
+ top: 0;
87
+ width: 4px;
88
+ height: 100%;
89
+ background: linear-gradient(180deg, var(--accent-tertiary, #5CB87A), var(--accent-gold, #D4A574));
90
+ border-radius: 2px;
91
+ }
92
+
93
+ /* Verdant Gallery Grid */
94
+ .photosGrid {
95
+ display: grid;
96
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
97
+ gap: var(--space-md, 1.5rem);
98
+ }
99
+
100
+ /* Verdant Gallery Item - hover handled by Framer Motion */
101
+ .photoCard {
102
+ border-radius: var(--radius-lg, 16px);
103
+ overflow: hidden;
104
+ cursor: pointer;
105
+ }
106
+
107
+ .photoImageWrapper {
108
+ width: 100%;
109
+ aspect-ratio: 4 / 3;
110
+ overflow: hidden;
111
+ }
112
+
113
+ .photoImage {
114
+ width: 100%;
115
+ height: 100%;
116
+ object-fit: cover;
117
+ display: block;
118
+ }
119
+
120
+ .photoCaption {
121
+ padding: var(--space-md, 1.5rem);
122
+ font-size: 0.9375rem;
123
+ line-height: 1.6;
124
+ text-align: center;
125
+ backdrop-filter: blur(20px) saturate(180%);
126
+ -webkit-backdrop-filter: blur(20px) saturate(180%);
127
+ }
128
+
129
+ :global(body:not(.dark-mode)) .photoCaption,
130
+ :global(.light-mode) .photoCaption {
131
+ background: rgba(255, 255, 255, 0.9);
132
+ color: var(--light-text-muted, #7F878B);
133
+ }
134
+
135
+ :global(.dark-mode) .photoCaption,
136
+ :global(.dark) .photoCaption {
137
+ background: color-mix(in srgb, var(--dark-bg-tertiary) 90%, transparent);
138
+ color: var(--dark-text-muted, #5C6366);
139
+ }
140
+
141
+ /* Lightbox Overlay */
142
+ .lightboxOverlay {
143
+ position: fixed;
144
+ top: 0;
145
+ left: 0;
146
+ right: 0;
147
+ bottom: 0;
148
+ background-color: color-mix(in srgb, var(--dark-bg-primary, #0A1810) 95%, transparent);
149
+ display: flex;
150
+ align-items: center;
151
+ justify-content: center;
152
+ z-index: 9999;
153
+ padding: var(--space-xl, 3rem);
154
+ backdrop-filter: blur(10px);
155
+ }
156
+
157
+ .lightboxContent {
158
+ position: relative;
159
+ max-width: 90vw;
160
+ max-height: 90vh;
161
+ }
162
+
163
+ .lightboxImage {
164
+ max-width: 100%;
165
+ max-height: 90vh;
166
+ border-radius: var(--radius-xl, 20px);
167
+ box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
168
+ }
169
+
170
+ .lightboxClose {
171
+ position: absolute;
172
+ top: -50px;
173
+ right: -50px;
174
+ background: linear-gradient(135deg, var(--accent-primary, #2A6847), var(--accent-secondary, #3A8F62));
175
+ border: none;
176
+ width: 50px;
177
+ height: 50px;
178
+ border-radius: 50%;
179
+ color: white;
180
+ font-size: 1.5rem;
181
+ cursor: pointer;
182
+ transition: all var(--transition-base);
183
+ box-shadow: 0 4px 16px rgba(42, 104, 71, 0.3);
184
+ }
185
+
186
+ .lightboxClose:hover {
187
+ transform: scale(1.1);
188
+ box-shadow: 0 6px 24px rgba(42, 104, 71, 0.4);
189
+ }
190
+
191
+ @media (max-width: 768px) {
192
+ .lightboxClose {
193
+ top: -60px;
194
+ right: 0;
195
+ }
196
+ }