@prosophia/lab-classic 0.0.3 → 0.0.5

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,214 @@
1
+ /* NewsArticlePage.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
+ max-width: 900px;
28
+ margin-left: auto;
29
+ margin-right: auto;
30
+ }
31
+
32
+ .meta {
33
+ font-size: 0.875rem;
34
+ letter-spacing: 0.05em;
35
+ text-transform: uppercase;
36
+ color: var(--accent-tertiary, #5CB87A);
37
+ }
38
+
39
+ .main {
40
+ padding-bottom: var(--space-3xl, 6rem);
41
+ }
42
+
43
+ .content {
44
+ max-width: 850px;
45
+ margin: 0 auto;
46
+ }
47
+
48
+ /* Featured Image */
49
+ .featuredImage {
50
+ width: 100%;
51
+ max-height: 500px;
52
+ height: auto;
53
+ object-fit: cover;
54
+ border-radius: var(--radius-xl, 20px);
55
+ margin-bottom: var(--space-2xl, 4rem);
56
+ box-shadow: 0 20px 60px rgba(10, 24, 16, 0.15);
57
+ }
58
+
59
+ /* Article Content */
60
+ .content :global(p) {
61
+ margin: 0 0 var(--space-lg, 2rem) 0;
62
+ line-height: 1.8;
63
+ font-size: 1.0625rem;
64
+ }
65
+
66
+ :global(body:not(.dark-mode)) .content :global(p),
67
+ :global(.light-mode) .content :global(p) {
68
+ color: var(--light-text-secondary, #153021);
69
+ }
70
+
71
+ :global(.dark-mode) .content :global(p),
72
+ :global(.dark) .content :global(p) {
73
+ color: var(--dark-text-secondary, #8BDAA3);
74
+ }
75
+
76
+ .content :global(p:first-of-type) {
77
+ font-size: 1.25rem;
78
+ font-weight: 500;
79
+ margin-bottom: var(--space-xl, 3rem);
80
+ }
81
+
82
+ .content :global(h2) {
83
+ font-size: 1.75rem;
84
+ font-weight: 600;
85
+ margin: var(--space-2xl, 4rem) 0 var(--space-lg, 2rem) 0;
86
+ padding-left: var(--space-md, 1.5rem);
87
+ position: relative;
88
+ }
89
+
90
+ .content :global(h2)::before {
91
+ content: '';
92
+ position: absolute;
93
+ left: 0;
94
+ top: 0;
95
+ width: 4px;
96
+ height: 100%;
97
+ background: linear-gradient(180deg, var(--accent-tertiary, #5CB87A), var(--accent-gold, #D4A574));
98
+ border-radius: 2px;
99
+ }
100
+
101
+ .content :global(h3) {
102
+ font-size: 1.375rem;
103
+ font-weight: 600;
104
+ margin: var(--space-xl, 3rem) 0 var(--space-md, 1.5rem) 0;
105
+ color: var(--accent-tertiary, #5CB87A);
106
+ }
107
+
108
+ .content :global(ul),
109
+ .content :global(ol) {
110
+ margin: 0 0 var(--space-lg, 2rem) var(--space-xl, 3rem);
111
+ padding: 0;
112
+ }
113
+
114
+ .content :global(li) {
115
+ margin-bottom: var(--space-sm, 1rem);
116
+ line-height: 1.7;
117
+ }
118
+
119
+ .content :global(a) {
120
+ color: var(--accent-tertiary, #5CB87A);
121
+ text-decoration: none;
122
+ font-weight: 500;
123
+ border-bottom: 1px solid transparent;
124
+ transition: all var(--transition-base);
125
+ }
126
+
127
+ .content :global(a:hover) {
128
+ border-bottom-color: var(--accent-tertiary, #5CB87A);
129
+ }
130
+
131
+ .content :global(blockquote) {
132
+ margin: var(--space-xl, 3rem) 0;
133
+ padding: var(--space-lg, 2rem);
134
+ border-radius: var(--radius-lg, 16px);
135
+ font-style: italic;
136
+ backdrop-filter: blur(20px) saturate(180%);
137
+ -webkit-backdrop-filter: blur(20px) saturate(180%);
138
+ }
139
+
140
+ :global(body:not(.dark-mode)) .content :global(blockquote),
141
+ :global(.light-mode) .content :global(blockquote) {
142
+ background: rgba(42, 104, 71, 0.08);
143
+ border-left: 4px solid var(--accent-tertiary, #5CB87A);
144
+ color: var(--light-text-secondary, #153021);
145
+ }
146
+
147
+ :global(.dark-mode) .content :global(blockquote),
148
+ :global(.dark) .content :global(blockquote) {
149
+ background: rgba(92, 184, 122, 0.1);
150
+ border-left: 4px solid var(--accent-tertiary, #5CB87A);
151
+ color: var(--dark-text-secondary, #8BDAA3);
152
+ }
153
+
154
+ .content :global(img) {
155
+ display: block;
156
+ max-width: 100%;
157
+ max-height: 500px;
158
+ height: auto;
159
+ object-fit: contain;
160
+ margin: var(--space-2xl, 4rem) auto;
161
+ border-radius: var(--radius-lg, 16px);
162
+ box-shadow: 0 12px 40px rgba(10, 24, 16, 0.15);
163
+ }
164
+
165
+ /* Back Link */
166
+ .backLinkWrapper {
167
+ margin-top: var(--space-3xl, 6rem);
168
+ text-align: center;
169
+ padding-top: var(--space-xl, 3rem);
170
+ border-top: 1px solid;
171
+ }
172
+
173
+ :global(body:not(.dark-mode)) .backLinkWrapper,
174
+ :global(.light-mode) .backLinkWrapper {
175
+ border-top-color: rgba(21, 48, 33, 0.1);
176
+ }
177
+
178
+ :global(.dark-mode) .backLinkWrapper,
179
+ :global(.dark) .backLinkWrapper {
180
+ border-top-color: rgba(139, 218, 163, 0.1);
181
+ }
182
+
183
+ .backLink {
184
+ display: inline-flex;
185
+ align-items: center;
186
+ gap: 0.5rem;
187
+ padding: 0.75rem 1.75rem;
188
+ border: 1px solid var(--accent-tertiary, #5CB87A);
189
+ border-radius: var(--radius-md, 12px);
190
+ font-weight: 500;
191
+ font-size: 0.9375rem;
192
+ text-decoration: none;
193
+ transition: all var(--transition-base);
194
+ backdrop-filter: blur(8px);
195
+ }
196
+
197
+ :global(body:not(.dark-mode)) .backLink,
198
+ :global(.light-mode) .backLink {
199
+ background: rgba(42, 104, 71, 0.08);
200
+ color: var(--accent-primary, #2A6847);
201
+ }
202
+
203
+ :global(.dark-mode) .backLink,
204
+ :global(.dark) .backLink {
205
+ background: rgba(92, 184, 122, 0.1);
206
+ color: var(--accent-tertiary, #5CB87A);
207
+ }
208
+
209
+ .backLink:hover {
210
+ background: linear-gradient(135deg, var(--accent-primary, #2A6847), var(--accent-secondary, #3A8F62));
211
+ color: white;
212
+ transform: translateY(-2px);
213
+ border-color: transparent;
214
+ }
@@ -0,0 +1,189 @@
1
+ /* NewsPage.module.css - Verdant Edition */
2
+
3
+ .pageWrapper {
4
+ padding-top: var(--header-height, 80px);
5
+ min-height: 100vh;
6
+ }
7
+
8
+ .newsSection {
9
+ padding: var(--space-3xl, 6rem) var(--space-xl, 3rem);
10
+ }
11
+
12
+ .sectionContainer {
13
+ max-width: 1400px;
14
+ margin: 0 auto;
15
+ }
16
+
17
+ /* Page Header */
18
+ .sectionHeading {
19
+ font-size: clamp(2rem, 4vw, 3rem);
20
+ font-weight: 500;
21
+ line-height: 1.2;
22
+ letter-spacing: -0.01em;
23
+ margin: 0 0 var(--space-md, 1.5rem) 0;
24
+ text-align: center;
25
+ }
26
+
27
+ .subtitle {
28
+ font-size: 1.125rem;
29
+ line-height: 1.7;
30
+ text-align: center;
31
+ max-width: 800px;
32
+ margin: 0 auto var(--space-3xl, 6rem);
33
+ }
34
+
35
+ :global(body:not(.dark-mode)) .subtitle,
36
+ :global(.light-mode) .subtitle {
37
+ color: var(--light-text-muted, #7F878B);
38
+ }
39
+
40
+ :global(.dark-mode) .subtitle,
41
+ :global(.dark) .subtitle {
42
+ color: var(--dark-text-muted, #5C6366);
43
+ }
44
+
45
+ /* News Grid */
46
+ .newsGrid {
47
+ display: grid;
48
+ gap: var(--space-lg, 2rem);
49
+ grid-template-columns: 1fr;
50
+ }
51
+
52
+ @media (min-width: 768px) {
53
+ .newsGrid {
54
+ grid-template-columns: repeat(2, 1fr);
55
+ }
56
+ }
57
+
58
+ @media (min-width: 1024px) {
59
+ .newsGrid {
60
+ grid-template-columns: repeat(3, 1fr);
61
+ }
62
+ }
63
+
64
+ .newsCardLink {
65
+ text-decoration: none;
66
+ color: inherit;
67
+ display: block;
68
+ height: 100%;
69
+ }
70
+
71
+ /* Verdant News Card - Glass with lift */
72
+ .newsCard {
73
+ height: 100%;
74
+ display: flex;
75
+ flex-direction: column;
76
+ border-radius: var(--radius-xl, 20px);
77
+ overflow: hidden;
78
+ backdrop-filter: blur(20px) saturate(180%);
79
+ -webkit-backdrop-filter: blur(20px) saturate(180%);
80
+ transition: all var(--transition-slow);
81
+ }
82
+
83
+ :global(body:not(.dark-mode)) .newsCard,
84
+ :global(.light-mode) .newsCard {
85
+ background: rgba(255, 255, 255, 0.7);
86
+ border: 1px solid rgba(21, 48, 33, 0.08);
87
+ box-shadow: 0 8px 32px rgba(10, 24, 16, 0.08);
88
+ }
89
+
90
+ :global(.dark-mode) .newsCard,
91
+ :global(.dark) .newsCard {
92
+ background: var(--dark-bg-tertiary);
93
+ border: 1px solid rgba(var(--accent-primary-rgb, 139, 218, 163), 0.12);
94
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
95
+ }
96
+
97
+ .newsCard:hover {
98
+ transform: translateY(-8px);
99
+ }
100
+
101
+ :global(body:not(.dark-mode)) .newsCard:hover,
102
+ :global(.light-mode) .newsCard:hover {
103
+ box-shadow: 0 20px 60px rgba(10, 24, 16, 0.15);
104
+ border-color: rgba(42, 104, 71, 0.25);
105
+ }
106
+
107
+ :global(.dark-mode) .newsCard:hover,
108
+ :global(.dark) .newsCard:hover {
109
+ box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4);
110
+ border-color: rgba(var(--accent-primary-rgb, 139, 218, 163), 0.25);
111
+ }
112
+
113
+ /* News Image with zoom */
114
+ .newsImageWrapper {
115
+ width: 100%;
116
+ height: 220px;
117
+ overflow: hidden;
118
+ }
119
+
120
+ .newsImage {
121
+ width: 100%;
122
+ height: 100%;
123
+ object-fit: cover;
124
+ transition: transform var(--transition-slow);
125
+ }
126
+
127
+ .newsCard:hover .newsImage {
128
+ transform: scale(1.08);
129
+ }
130
+
131
+ .newsCardContent {
132
+ padding: var(--space-lg, 2rem);
133
+ flex: 1;
134
+ display: flex;
135
+ flex-direction: column;
136
+ }
137
+
138
+ .newsDate {
139
+ font-size: 0.75rem;
140
+ font-weight: 600;
141
+ letter-spacing: 0.1em;
142
+ text-transform: uppercase;
143
+ margin-bottom: var(--space-sm, 1rem);
144
+ color: var(--accent-tertiary, #5CB87A);
145
+ }
146
+
147
+ .newsTitle {
148
+ font-size: 1.25rem;
149
+ font-weight: 600;
150
+ line-height: 1.4;
151
+ margin: 0 0 var(--space-sm, 1rem) 0;
152
+ transition: color var(--transition-base);
153
+ }
154
+
155
+ .newsCard:hover .newsTitle {
156
+ color: var(--accent-tertiary, #5CB87A);
157
+ }
158
+
159
+ .newsExcerpt {
160
+ font-size: 0.9375rem;
161
+ line-height: 1.7;
162
+ flex: 1;
163
+ margin-bottom: var(--space-md, 1.5rem);
164
+ }
165
+
166
+ :global(body:not(.dark-mode)) .newsExcerpt,
167
+ :global(.light-mode) .newsExcerpt {
168
+ color: var(--light-text-muted, #7F878B);
169
+ }
170
+
171
+ :global(.dark-mode) .newsExcerpt,
172
+ :global(.dark) .newsExcerpt {
173
+ color: var(--dark-text-muted, #5C6366);
174
+ }
175
+
176
+ .readMore {
177
+ display: inline-flex;
178
+ align-items: center;
179
+ gap: 0.5rem;
180
+ margin-top: auto;
181
+ font-weight: 500;
182
+ font-size: 0.875rem;
183
+ color: var(--accent-tertiary, #5CB87A);
184
+ transition: all var(--transition-base);
185
+ }
186
+
187
+ .newsCard:hover .readMore {
188
+ gap: 0.75rem;
189
+ }
@@ -0,0 +1,236 @@
1
+ /* PastMembersPage.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
+ .membersList {
51
+ max-width: 1200px;
52
+ margin: 0 auto;
53
+ display: flex;
54
+ flex-direction: column;
55
+ gap: var(--space-3xl, 6rem);
56
+ }
57
+
58
+ /* Year Section */
59
+ .yearSection {
60
+ width: 100%;
61
+ }
62
+
63
+ .yearHeader {
64
+ font-size: 0.875rem;
65
+ font-weight: 600;
66
+ letter-spacing: 0.12em;
67
+ text-transform: uppercase;
68
+ margin-bottom: var(--space-xl, 3rem);
69
+ padding-left: var(--space-md, 1.5rem);
70
+ position: relative;
71
+ }
72
+
73
+ :global(body:not(.dark-mode)) .yearHeader,
74
+ :global(.light-mode) .yearHeader {
75
+ color: var(--accent-secondary, #3A8F62);
76
+ }
77
+
78
+ :global(.dark-mode) .yearHeader,
79
+ :global(.dark) .yearHeader {
80
+ color: var(--dark-text-secondary, #8BDAA3);
81
+ }
82
+
83
+ .yearHeader::before {
84
+ content: '';
85
+ position: absolute;
86
+ left: 0;
87
+ top: 0;
88
+ width: 4px;
89
+ height: 100%;
90
+ background: linear-gradient(180deg, var(--accent-tertiary, #5CB87A), var(--accent-gold, #D4A574));
91
+ border-radius: 2px;
92
+ }
93
+
94
+ /* Members Grid */
95
+ .membersCardsGrid {
96
+ display: grid;
97
+ grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
98
+ gap: var(--space-lg, 2rem);
99
+ }
100
+
101
+ /* Member Card - Glass with translateX hover */
102
+ .memberCard {
103
+ padding: var(--space-lg, 2rem);
104
+ border-radius: var(--radius-xl, 20px);
105
+ backdrop-filter: blur(20px) saturate(180%);
106
+ -webkit-backdrop-filter: blur(20px) saturate(180%);
107
+ transition: all var(--transition-base);
108
+ }
109
+
110
+ :global(body:not(.dark-mode)) .memberCard,
111
+ :global(.light-mode) .memberCard {
112
+ background: rgba(255, 255, 255, 0.6);
113
+ border: 1px solid rgba(21, 48, 33, 0.08);
114
+ }
115
+
116
+ :global(.dark-mode) .memberCard,
117
+ :global(.dark) .memberCard {
118
+ background: var(--dark-bg-tertiary);
119
+ border: 1px solid rgba(var(--accent-primary-rgb, 139, 218, 163), 0.08);
120
+ }
121
+
122
+ .memberCard:hover {
123
+ transform: translateX(8px);
124
+ }
125
+
126
+ :global(body:not(.dark-mode)) .memberCard:hover,
127
+ :global(.light-mode) .memberCard:hover {
128
+ background: rgba(255, 255, 255, 0.9);
129
+ border-color: rgba(42, 104, 71, 0.15);
130
+ box-shadow: 0 8px 32px rgba(10, 24, 16, 0.1);
131
+ }
132
+
133
+ :global(.dark-mode) .memberCard:hover,
134
+ :global(.dark) .memberCard:hover {
135
+ background: var(--dark-bg-secondary);
136
+ border-color: rgba(var(--accent-primary-rgb, 139, 218, 163), 0.15);
137
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
138
+ }
139
+
140
+ .memberName {
141
+ font-size: 1.125rem;
142
+ font-weight: 600;
143
+ margin: 0 0 var(--space-xs, 0.5rem) 0;
144
+ transition: color var(--transition-base);
145
+ }
146
+
147
+ .memberCard:hover .memberName {
148
+ color: var(--accent-tertiary, #5CB87A);
149
+ }
150
+
151
+ .memberRole {
152
+ font-size: 0.875rem;
153
+ font-weight: 500;
154
+ margin: 0 0 var(--space-xs, 0.5rem) 0;
155
+ }
156
+
157
+ :global(body:not(.dark-mode)) .memberRole,
158
+ :global(.light-mode) .memberRole {
159
+ color: var(--light-text-muted, #7F878B);
160
+ }
161
+
162
+ :global(.dark-mode) .memberRole,
163
+ :global(.dark) .memberRole {
164
+ color: var(--dark-text-muted, #5C6366);
165
+ }
166
+
167
+ .memberYears {
168
+ font-size: 0.8125rem;
169
+ font-style: italic;
170
+ margin: 0 0 var(--space-md, 1.5rem) 0;
171
+ color: var(--accent-tertiary, #5CB87A);
172
+ }
173
+
174
+ .memberDestination {
175
+ font-size: 0.875rem;
176
+ line-height: 1.6;
177
+ margin: 0;
178
+ padding-top: var(--space-sm, 1rem);
179
+ border-top: 1px solid;
180
+ }
181
+
182
+ :global(body:not(.dark-mode)) .memberDestination,
183
+ :global(.light-mode) .memberDestination {
184
+ color: var(--light-text-muted, #7F878B);
185
+ border-top-color: rgba(21, 48, 33, 0.1);
186
+ }
187
+
188
+ :global(.dark-mode) .memberDestination,
189
+ :global(.dark) .memberDestination {
190
+ color: var(--dark-text-muted, #5C6366);
191
+ border-top-color: rgba(139, 218, 163, 0.1);
192
+ }
193
+
194
+ .memberDestination strong {
195
+ color: var(--accent-tertiary, #5CB87A);
196
+ font-weight: 600;
197
+ }
198
+
199
+ /* Back Link */
200
+ .backLinkWrapper {
201
+ text-align: center;
202
+ margin-top: var(--space-2xl, 4rem);
203
+ }
204
+
205
+ .backLink {
206
+ display: inline-flex;
207
+ align-items: center;
208
+ gap: 0.5rem;
209
+ padding: 0.75rem 1.75rem;
210
+ border: 1px solid var(--accent-tertiary, #5CB87A);
211
+ border-radius: var(--radius-md, 12px);
212
+ font-weight: 500;
213
+ font-size: 0.9375rem;
214
+ text-decoration: none;
215
+ transition: all var(--transition-base);
216
+ backdrop-filter: blur(8px);
217
+ }
218
+
219
+ :global(body:not(.dark-mode)) .backLink,
220
+ :global(.light-mode) .backLink {
221
+ background: rgba(42, 104, 71, 0.08);
222
+ color: var(--accent-primary, #2A6847);
223
+ }
224
+
225
+ :global(.dark-mode) .backLink,
226
+ :global(.dark) .backLink {
227
+ background: rgba(92, 184, 122, 0.1);
228
+ color: var(--accent-tertiary, #5CB87A);
229
+ }
230
+
231
+ .backLink:hover {
232
+ background: linear-gradient(135deg, var(--accent-primary, #2A6847), var(--accent-secondary, #3A8F62));
233
+ color: white;
234
+ transform: translateY(-2px);
235
+ border-color: transparent;
236
+ }