Repository navigation
Expand file tree
/
Copy pathstyles.css
More file actions
282 lines (275 loc) · 41 KB
/
Copy pathstyles.css
File metadata and controls
282 lines (275 loc) · 41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@1,600&family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{--bg:#10151d;--panel:#171d27;--panel2:#1c2430;--line:#303947;--text:#f0eee6;--muted:#a7aab1;--lime:#d5f66b;--blue:#7c9ff8;--mono:'DM Mono',monospace;--sans:'DM Sans',Arial,sans-serif;--display:'Space Grotesk',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:focus-visible,iframe:focus-visible{outline:2px solid var(--lime);outline-offset:4px}.wrap{width:min(1320px,calc(100% - 96px));margin-inline:auto}.skip-link{position:absolute;top:-100px;left:16px;background:var(--lime);color:#10151d;padding:12px;z-index:20}.skip-link:focus{top:12px}.site-header{height:88px;padding:0 48px;display:flex;align-items:center;gap:36px;border-bottom:1px solid var(--line);position:relative;z-index:5;background:rgba(16,21,29,.94);backdrop-filter:blur(12px)}.wordmark{display:flex;align-items:center;gap:13px;font:700 16px var(--display);letter-spacing:-.02em}.mark{width:38px;height:38px;border:1px solid var(--lime);border-radius:11px;display:grid;place-items:center;font:700 22px var(--display);letter-spacing:-.09em}.mark span{color:var(--lime)}.main-nav{display:flex;gap:36px;margin-left:auto;font:500 12px var(--mono);text-transform:uppercase;letter-spacing:.1em;color:#b7bbc4}.main-nav a:hover,.hero-links a:hover,.video-caption a:hover{color:var(--lime)}.header-resume{margin-left:24px;padding:13px 18px;border:1px solid #67717c;border-radius:100px;font:500 12px var(--mono);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}.header-resume span{margin-left:10px;color:var(--lime)}.header-resume:hover{background:var(--lime);border-color:var(--lime);color:#10151d}.header-resume:hover span{color:#10151d}.hero{display:grid;grid-template-columns:1.25fr .85fr;gap:54px;min-height:700px;padding-block:110px 104px;align-items:center}.eyebrow,.section-index,.project-number,.project-date,.project-kicker,.video-intro,.video-caption,.visual-label{font:500 11px var(--mono);letter-spacing:.13em;text-transform:uppercase}.eyebrow{color:var(--lime);display:flex;align-items:center;gap:12px;white-space:nowrap}.status-dot{display:block;width:8px;height:8px;border-radius:50%;background:var(--lime);box-shadow:0 0 18px var(--lime)}.eyebrow-line{height:1px;width:26px;background:#626c5b}.hero h1{font:600 clamp(70px,7vw,118px)/.98 var(--display);letter-spacing:-.085em;margin:36px 0 30px}.hero h1 em,.section-heading h2 em{font-weight:400;font-style:normal;color:var(--lime)}.outline-word{-webkit-text-stroke:1.5px var(--text);color:transparent}.hero-intro{font-size:18px;line-height:1.7;max-width:575px;color:#bcc1cb;margin:0}.hero-actions{display:flex;gap:12px;margin-top:34px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:34px;min-height:54px;padding:0 22px;border-radius:100px;font:600 13px var(--sans);transition:transform .2s,background .2s}.button:hover{transform:translateY(-3px)}.button-primary{background:var(--lime);color:#10151d}.button-ghost{border:1px solid #67717c}.button span{font-size:19px;font-weight:400}.hero-links{display:flex;gap:28px;margin-top:70px;font:500 12px var(--mono);color:#aeb3bd}.hero-visual{position:relative;aspect-ratio:1;max-width:490px;width:100%;justify-self:end;overflow:hidden;border:1px solid var(--line);border-radius:50%;background:radial-gradient(circle at center,#263142 0%,#1b222e 45%,#111720 73%)}.visual-grid{position:absolute;inset:0;background-image:linear-gradient(#ffffff0c 1px,transparent 1px),linear-gradient(90deg,#ffffff0c 1px,transparent 1px);background-size:34px 34px;mask-image:radial-gradient(circle,#000 20%,transparent 78%)}.orbit{position:absolute;border:1px solid #849bad69;border-radius:50%;inset:10%;transform:rotate(-29deg) scaleY(.62)}.orbit-inner{inset:24%;transform:rotate(51deg) scaleY(.72);border-color:#d5f66b88}.orb{position:absolute;width:14px;height:14px;border-radius:50%;background:var(--lime);box-shadow:0 0 28px #d5f66b8c}.orb-one{top:21%;left:21%}.orb-two{right:13%;bottom:28%;width:9px;height:9px;background:var(--blue)}.visual-center{position:absolute;inset:32%;border-radius:50%;background:#121923;border:1px solid #6f828f;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 0 80px #d5f66b18}.visual-center strong{font:600 clamp(48px,6vw,80px)/1 var(--display);letter-spacing:-.1em}.visual-center small{font:400 8px var(--mono);letter-spacing:.1em;color:#a6b1b5;margin-top:8px;white-space:nowrap}.visual-cross{position:absolute;top:-47px;right:-27px;color:var(--lime);font-size:40px}.visual-label{position:absolute;color:#aeb5b9;font-size:9px}.label-top{top:14%;right:20%}.label-bottom{bottom:15%;left:15%}.label-bottom span{color:var(--lime)}.section{padding:110px 0}.projects-section{border-top:1px solid var(--line);background:#131a23}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:50px}.section-index{color:var(--lime)}.section-heading h2{font:600 clamp(50px,5vw,78px)/1.1 var(--display);letter-spacing:-.065em;margin:20px 0 0}.section-heading p{max-width:290px;color:var(--muted);line-height:1.55;margin:0 0 8px}.feature-project{border:1px solid #43505d;border-radius:24px;background:var(--panel);overflow:hidden}.feature-top{display:flex;justify-content:space-between;padding:20px 29px;border-bottom:1px solid var(--line);color:#bdc3ca}.project-number{color:var(--lime)}.feature-content{display:grid;grid-template-columns:1fr 1fr}.feature-copy{padding:58px 56px 48px}.project-kicker{color:var(--lime);display:flex;align-items:center;gap:11px}.project-icon{font-size:22px}.feature-copy h3{font:600 clamp(44px,4.6vw,70px)/1.05 var(--display);letter-spacing:-.065em;max-width:560px;margin:20px 0 23px}.project-lede{font-size:17px;line-height:1.6;color:#c6cbd0;max-width:530px}.project-points{list-style:none;padding:0;margin:28px 0 30px}.project-points li{position:relative;padding-left:20px;margin:11px 0;color:#aeb7bf;line-height:1.5;font-size:14px}.project-points li:before{content:'↗';position:absolute;left:0;color:var(--lime)}.tags{display:flex;flex-wrap:wrap;gap:8px}.tags span{border:1px solid #4a5662;color:#bfc9cf;border-radius:99px;padding:8px 11px;font:10px var(--mono)}.feature-art{margin:24px 24px 24px 0;min-height:455px;border:1px solid #536273;border-radius:16px;background:#0f1821;position:relative;overflow:hidden;box-shadow:inset 0 0 70px #75a6cd0d}.feature-art:before{content:'';position:absolute;inset:0;background:linear-gradient(#ffffff0c 1px,transparent 1px),linear-gradient(90deg,#ffffff0c 1px,transparent 1px);background-size:48px 48px}.monitor-top{position:relative;display:flex;justify-content:space-between;padding:19px 22px;border-bottom:1px solid #3c4652;font:10px var(--mono);letter-spacing:.12em;color:#b9c7ce}.monitor-top span:last-child{color:var(--lime)}.monitor-chart{height:260px;position:relative;padding:28px 18px}.monitor-chart svg{width:100%;height:100%;overflow:visible}.chart-crosshair{position:absolute;width:7px;height:7px;top:43%;left:64%;border-radius:50%;background:var(--lime);box-shadow:0 0 18px var(--lime)}.monitor-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;position:relative;margin:0 16px 15px}.monitor-stats div{background:#1b2732;border:1px solid #3f4a55;border-radius:11px;padding:12px}.monitor-stats small{display:block;color:#84949d;font:9px var(--mono);margin-bottom:8px}.monitor-stats b{font:600 25px var(--display)}.monitor-stats b span{font-size:14px;color:var(--lime)}.monitor-stats .optimal{font:600 16px var(--display);color:var(--lime)}.video-area{border-top:1px solid var(--line);padding:30px}.video-intro{color:#bac6cd;margin:0 0 17px}.video-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.video-card{border:1px solid #3f4a57;border-radius:14px;overflow:hidden;background:#101720}.video-frame{aspect-ratio:16/9}.video-frame iframe{width:100%;height:100%;border:0}.video-caption{display:flex;justify-content:space-between;gap:15px;padding:15px 18px;color:#b8c2c7;font-size:10px}.video-caption a{white-space:nowrap}.placeholder-section{border-top:1px solid var(--line);min-height:350px}.placeholder-section h2{font:600 clamp(36px,5vw,65px)/1.1 var(--display);letter-spacing:-.06em;margin:28px 0}.site-footer{border-top:1px solid var(--line);padding:28px 0;color:#aab4bc;font:11px var(--mono)}.site-footer .wrap{display:flex;justify-content:space-between}.site-footer a{color:var(--lime)}
@media(max-width:1000px){.wrap{width:min(100% - 48px,800px)}.site-header{padding:0 24px}.hero{grid-template-columns:1fr;padding-block:80px}.hero-visual{justify-self:center;max-width:430px;grid-row:2}.feature-content{grid-template-columns:1fr}.feature-art{margin:0 24px 24px;min-height:385px}.feature-copy{padding:44px 34px 32px}.section-heading{align-items:start}.main-nav{gap:18px}}
@media(max-width:650px){.wrap{width:calc(100% - 36px)}.site-header{height:72px;padding:0 18px}.wordmark>span:last-child{display:none}.main-nav{gap:13px;font-size:10px}.header-resume{margin-left:0;padding:10px 12px;font-size:10px}.header-resume span{display:none}.hero{gap:44px;min-height:0;padding:70px 0 70px}.hero h1{font-size:clamp(55px,12vw,78px);margin:27px 0}.eyebrow{font-size:9px;gap:7px}.eyebrow-line{width:12px}.hero-intro{font-size:16px}.hero-actions{flex-wrap:wrap}.hero-links{margin-top:38px}.hero-visual{max-width:330px}.section{padding:72px 0}.section-heading{display:block;margin-bottom:28px}.section-heading h2{font-size:clamp(43px,10vw,58px)}.section-heading p{margin:16px 0 0}.feature-top{padding:16px;font-size:9px}.feature-copy{padding:35px 22px 26px}.feature-copy h3{font-size:48px}.project-lede{font-size:16px}.feature-art{margin:0 12px 12px;min-height:310px}.monitor-chart{height:186px}.monitor-stats b{font-size:17px}.monitor-stats .optimal{font-size:11px}.video-area{padding:17px}.video-grid{grid-template-columns:1fr}.site-footer .wrap{gap:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}
.site-header{position:sticky;top:0}.section-heading-small{margin-bottom:38px}.section-heading-small h2{font-size:clamp(46px,5vw,70px)}.more-work-section{background:#131a23;padding-top:0}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.project-card{border:1px solid #3d4854;border-radius:21px;overflow:hidden;background:var(--panel);display:flex;flex-direction:column}.card-art{height:360px;position:relative;overflow:hidden}.lunar-art{background:radial-gradient(circle at 70% 25%,#313656,#171e2f 50%,#10171f 80%)}.lunar-stars{position:absolute;inset:0;background-image:radial-gradient(#ffffffaa 1px,transparent 1px);background-size:43px 47px;opacity:.32}.lunar-planet{position:absolute;width:350px;height:350px;right:-75px;bottom:-190px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#868ca5,#3c435e 48%,#1b263d 72%);box-shadow:0 0 70px #a2a8f84f}.lunar-path{position:absolute;inset:0;width:100%;height:100%}.lunar-ship{position:absolute;top:46px;left:29px;font-size:58px;color:var(--lime);transform:rotate(-28deg);text-shadow:0 0 20px var(--lime)}.art-code,.art-coordinate{position:absolute;font:10px/1.7 var(--mono);letter-spacing:.08em;color:#d6e4ed}.art-code{left:28px;bottom:24px}.art-coordinate{right:25px;top:25px}.movie-art{background:#292846}.movie-noise{position:absolute;inset:0;background:radial-gradient(circle at 76% 20%,#fa9c6b99,transparent 34%),radial-gradient(circle at 20% 90%,#7e6ee199,transparent 40%)}.movie-stack{position:absolute;border:1px solid #ffffff7a;background:#1c1c35;box-shadow:0 20px 70px #0007}.movie-stack-back{width:48%;height:220px;top:66px;left:17%;transform:rotate(-11deg);padding:20px}.movie-stack-back span,.movie-stack-front span{font:10px var(--mono);letter-spacing:.15em;color:#fff}.movie-stack-back b{display:block;margin-top:35px;font:700 27px/1.1 var(--display);letter-spacing:-.07em;color:#fff}.movie-stack-front{width:45%;height:250px;right:15%;top:52px;transform:rotate(8deg);padding:20px;background:linear-gradient(160deg,#f0ab82,#8e698d 55%,#292c58)}.movie-stack-front b{display:block;margin-top:35px;font:700 116px/1 var(--display);color:#fff8}.movie-stack-front small{font:11px var(--mono);color:#fff}.movie-orb{position:absolute;width:85px;height:85px;border-radius:50%;border:1px solid #ffffffaa;left:12%;top:40px}.card-body{padding:28px 30px 0;display:flex;flex-direction:column;flex:1}.card-meta{display:flex;justify-content:space-between;gap:12px;color:var(--lime);font:10px var(--mono);letter-spacing:.1em}.card-body h3{font:600 42px/1.08 var(--display);letter-spacing:-.06em;margin:22px 0 14px}.card-body p{color:#b9c2c9;line-height:1.65;font-size:15px;margin:0 0 24px}.card-body .tags{margin-top:auto;margin-bottom:28px}.card-bottom{border-top:1px solid #3d4854;padding:20px 0;display:flex;justify-content:space-between;align-items:center;color:#c5cbd0;font:11px var(--mono);text-transform:uppercase;letter-spacing:.06em}.card-bottom span:last-child{color:var(--lime);font-size:18px}.card-link:hover{color:var(--lime)}.about-section{border-top:1px solid var(--line);background:#10151d}.about-grid{display:grid;grid-template-columns:1fr .88fr;gap:10%;align-items:center}.about-grid h2,.contact-grid h2{font:600 clamp(46px,5vw,70px)/1.08 var(--display);letter-spacing:-.065em;margin:25px 0}.about-grid h2 em,.contact-grid h2 em{font-weight:400;font-style:normal;color:var(--lime)}.about-grid p,.contact-grid p{font-size:17px;line-height:1.7;color:#b7c1c9;max-width:600px}.text-link{display:inline-flex;gap:34px;margin-top:20px;padding-bottom:9px;border-bottom:1px solid var(--lime);font:600 13px var(--sans)}.text-link span{color:var(--lime)}.detail-row{display:grid;grid-template-columns:115px 1fr;gap:16px;padding:25px 0;border-bottom:1px solid #394451}.detail-row:first-child{border-top:1px solid #394451}.detail-row>span,.skill-group>span{font:10px var(--mono);color:var(--lime);letter-spacing:.1em}.detail-row strong{display:block;font:600 16px var(--display);margin-bottom:7px}.detail-row small{color:#aab5bc;line-height:1.4}.skills-section{background:#151d27;border-top:1px solid var(--line)}.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #394451;border-bottom:1px solid #394451}.skill-group{padding:26px 30px 34px;border-right:1px solid #394451}.skill-group:first-child{padding-left:0}.skill-group:last-child{border:0}.skill-group p{font:500 21px/1.8 var(--display);letter-spacing:-.03em;margin:20px 0 0}.skill-group b{color:var(--lime);font:400 14px var(--mono);margin-inline:4px}.contact-section{background:#d5f66b;color:#10151d}.contact-section .section-index{color:#3f5621}.contact-grid{display:grid;grid-template-columns:1fr .85fr;gap:8%;align-items:center}.contact-grid h2 em{color:#536e27}.contact-grid p{color:#364734;margin-bottom:30px}.contact-section .button-primary{background:#10151d;color:var(--lime)}.contact-links a{display:grid;grid-template-columns:80px 1fr 20px;gap:20px;align-items:center;padding:25px 0;border-bottom:1px solid #6e8d43}.contact-links a:first-child{border-top:1px solid #6e8d43}.contact-links a:hover strong{text-decoration:underline}.contact-links span{font:10px var(--mono);letter-spacing:.1em}.contact-links strong{font:600 18px var(--display);overflow-wrap:anywhere}.contact-links b{font-size:19px;font-weight:400}.contact-section .button:focus-visible,.contact-links a:focus-visible{outline-color:#10151d}
@media(max-width:1000px){.about-grid,.contact-grid{grid-template-columns:1fr;gap:50px}.card-art{height:280px}.card-body{padding-inline:22px}.card-body h3{font-size:36px}.skills-grid{grid-template-columns:1fr}.skill-group{border-right:0;border-bottom:1px solid #394451;padding:25px 0}.skill-group:last-child{border-bottom:0}}
@media(max-width:650px){.project-grid{grid-template-columns:1fr}.card-art{height:300px}.more-work-section{padding-top:0}.about-grid h2,.contact-grid h2{font-size:48px}.detail-row{grid-template-columns:90px 1fr;gap:12px}.contact-links a{grid-template-columns:60px 1fr 15px;gap:12px}.contact-links strong{font-size:15px}.site-footer .wrap{flex-wrap:wrap}.site-footer .wrap span:nth-child(2){display:none}}
/* Shared navigation and social links */
section[id], article[id] { scroll-margin-top: 88px; }
.main-nav { gap: 27px; }
.main-nav a { white-space: nowrap; }
.mobile-menu { display: none; }
.hero-links a { display: inline-flex; align-items: center; gap: 8px; }
.social-icon { display: inline-block; width: 19px; height: 19px; object-fit: contain; flex: none; }
.icon-invert { filter: invert(1); }
.hero-links a span { color: var(--lime); margin-left: 2px; }
.visual-center { inset: 22%; background: #1a2530; }
.hero-photo { width: 100%; height: 100%; object-fit: cover; object-position: center 15%; border-radius: 50%; display: block; }
.photo-mask { position: absolute; inset: 0; overflow: hidden; border-radius: 50%; }
.hero-photo { object-position: center top; transform: scale(3.2); transform-origin: center top; }
.experience-section { background: var(--bg); border-top: 1px solid var(--line); }
.experience-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.experience-card { display: flex; flex-direction: column; min-height: 315px; padding: 31px; border: 1px solid #3d4854; border-radius: 21px; background: var(--panel); transition: transform .25s ease, border-color .25s ease, background .25s ease; }
.experience-card:hover, .experience-card:focus-visible { transform: translateY(-4px); border-color: var(--lime); background: #202a34; }
.experience-card-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.experience-badge { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--lime); border-radius: 12px; font: 600 13px var(--mono); color: var(--lime); }
.experience-badge-blue { border-color: var(--blue); color: var(--blue); font-size: 22px; }
.experience-date { color: #aeb9c3; font: 10px var(--mono); letter-spacing: .1em; text-align: right; }
.experience-card h3 { font: 600 30px/1.1 var(--display); letter-spacing: -.045em; margin: 27px 0 6px; }
.experience-role { color: var(--lime) !important; font: 500 12px var(--mono) !important; margin: 0 0 17px !important; }
.experience-card p { color: #b9c2c9; line-height: 1.6; font-size: 14px; margin: 0 0 20px; }
.experience-card-link { display: flex; justify-content: space-between; gap: 20px; margin-top: auto; padding-top: 17px; border-top: 1px solid #3b4752; color: var(--lime); font: 500 11px var(--mono); text-transform: uppercase; letter-spacing: .06em; }
.timeline-heading { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin: 105px 0 35px; }
.timeline-heading h3 { font: 600 clamp(40px, 4vw, 58px)/1.1 var(--display); letter-spacing: -.06em; margin: 16px 0 0; }
.timeline-heading p { color: var(--muted); max-width: 290px; margin: 0; line-height: 1.6; }
.timeline { position: relative; display: flex; flex-direction: column; gap: 13px; list-style: none; margin: 0; padding: 0; }
.timeline::before { content: ''; position: absolute; top: 0; bottom: 0; left: calc(50% - .5px); width: 1px; background: linear-gradient(var(--lime), #506b6d 50%, var(--lime)); }
.timeline-item { position: relative; width: 50%; padding-right: 34px; }
.timeline-right { align-self: flex-end; padding-left: 34px; padding-right: 0; }
.timeline-item::before { content: ''; position: absolute; top: 32px; right: -5px; width: 9px; height: 9px; border-radius: 50%; background: var(--lime); box-shadow: 0 0 0 6px var(--bg), 0 0 0 7px #789652; }
.timeline-right::before { right: auto; left: -5px; }
.timeline-card { display: flex; align-items: start; gap: 16px; min-height: 130px; padding: 21px; border: 1px solid #3b4752; border-radius: 17px; background: var(--panel); }
.timeline-link { cursor: pointer; transition: transform .25s ease, border-color .25s ease, background .25s ease; }
.timeline-link:hover, .timeline-link:focus-visible { transform: translateY(-3px) scale(1.012); border-color: var(--lime); background: #202a35; }
.timeline-icon { display: grid; place-items: center; flex: none; width: 39px; height: 39px; border-radius: 11px; background: #293745; border: 1px solid #6b8087; color: var(--lime); font: 600 12px var(--mono); }
.timeline-icon img { width: 22px; height: 22px; object-fit: contain; }
.timeline-date { color: var(--lime); font: 500 10px var(--mono); letter-spacing: .1em; }
.timeline-card h4 { font: 600 18px/1.2 var(--display); letter-spacing: -.025em; margin: 8px 0 7px; }
.timeline-card p { color: #aeb9c2; font-size: 13px; line-height: 1.45; margin: 0; }
.timeline-more { display: inline-block; color: var(--lime); font: 10px var(--mono); text-transform: uppercase; margin-top: 13px; }
.project-see-more { margin-top: 28px; min-width: 165px; }
.project-card-actions { display: flex; justify-content: space-between; align-items: center; gap: 15px; margin-top: auto; padding: 19px 0; border-top: 1px solid #3d4854; color: #c5cbd0; font: 11px var(--mono); text-transform: uppercase; letter-spacing: .06em; }
.project-card-actions a { color: var(--lime); white-space: nowrap; }
.project-card-actions a:hover { text-decoration: underline; }
.project-card-actions .code-link { color: #c5cbd0; }
.project-card-actions .code-link:hover { color: var(--lime); }
.about-details { border: 1px solid #394451; border-radius: 19px; padding: 0 25px; background: #171e28; }
.detail-row { grid-template-columns: 105px 1fr; }
.detail-row:first-child { border-top: 0; }
.detail-row:last-child { border-bottom: 0; }
.skill-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; list-style: none; padding: 0; margin: 21px 0 0; }
.skill-list li { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 10px 12px; border: 1px solid #3a4854; border-radius: 11px; background: #1c2732; color: #e6e9e8; font: 500 12px var(--sans); transition: transform .2s ease, border-color .2s ease; }
.skill-list li:hover { transform: translateY(-2px); border-color: #7f9984; }
.skill-list img { flex: none; width: 25px; height: 25px; object-fit: contain; }
.skill-list img[src$="expo.svg"] { filter: invert(1); }
.contact-links a { grid-template-columns: 24px 62px 1fr 20px; gap: 14px; }
.contact-links .social-icon { width: 21px; height: 21px; }
@media (max-width: 1100px) { .main-nav { gap: 16px; font-size: 10px; } .wordmark { font-size: 14px; } .header-resume { margin-left: 0; } }
@media (max-width: 780px) { .main-nav { display: none; } .mobile-menu { display: block; margin-left: auto; position: relative; } .mobile-menu summary { list-style: none; cursor: pointer; border: 1px solid #67717c; border-radius: 100px; padding: 11px 14px; font: 500 11px var(--mono); text-transform: uppercase; letter-spacing: .06em; } .mobile-menu summary::-webkit-details-marker { display: none; } .mobile-menu summary span { color: var(--lime); margin-left: 7px; } .mobile-menu nav { position: absolute; right: 0; top: calc(100% + 12px); min-width: 190px; display: flex; flex-direction: column; gap: 0; border: 1px solid #56626b; border-radius: 14px; overflow: hidden; background: #1b2530; box-shadow: 0 20px 40px #0008; } .mobile-menu nav a { padding: 12px 17px; font: 500 12px var(--mono); text-transform: uppercase; } .mobile-menu nav a:hover { background: #293745; color: var(--lime); } .experience-grid { grid-template-columns: 1fr; } .timeline-heading { margin-top: 70px; } }
@media (max-width: 650px) { .hero-links { flex-wrap: wrap; gap: 17px; } .hero-links a { font-size: 11px; } .social-icon { width: 17px; height: 17px; } .experience-card { min-height: 0; padding: 23px; } .timeline-heading { display: block; } .timeline-heading p { margin-top: 12px; } .timeline::before { left: 5px; } .timeline-item, .timeline-right { align-self: stretch; width: 100%; padding: 0 0 0 28px; } .timeline-item::before, .timeline-right::before { left: 1px; right: auto; } .timeline-card { min-height: 0; padding: 17px; } .timeline-card h4 { font-size: 16px; } .timeline-icon { width: 35px; height: 35px; } .project-card-actions { flex-wrap: wrap; } .skill-list li { padding: 8px; } .skill-list img { width: 21px; height: 21px; } .contact-links a { grid-template-columns: 21px 1fr 17px; gap: 11px; } .contact-links a span { display: none; } .contact-links strong { font-size: 15px; } .mobile-menu summary { padding: 10px; } .header-resume { margin-left: 0; } }
@media (max-width: 650px) {
.hero { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
.hero-copy { display: contents; }
.hero .eyebrow { order: 1; }
.hero h1 { order: 2; margin-bottom: 23px; }
.hero-visual { order: 3; align-self: center; width: min(100%, 250px); margin-bottom: 27px; grid-row: auto; }
.hero-intro { order: 4; }
.hero-actions { order: 5; }
.hero-links { order: 6; }
}
@media (prefers-reduced-motion: reduce) { .experience-card, .timeline-link, .skill-list li { transition: none; } .experience-card:hover, .timeline-link:hover, .skill-list li:hover { transform: none; } }
/* Refined identity and project cards */
.mark { position: relative; overflow: hidden; }
.mark .monogram { display: block; position: relative; width: 29px; height: 30px; color: var(--text); font: italic 600 28px/.95 'Cormorant Garamond', Georgia, serif; letter-spacing: -.14em; transform: rotate(-8deg); }
.mark .monogram span { position: absolute; left: 12px; top: 7px; font-size: 25px; color: var(--lime); }
.hero-photo { transform: translateX(-5%) scale(2.7); transform-origin: center top; }
.experience-logo { width: 76px; height: 54px; border-color: #52606b; background: #fff; padding: 6px; overflow: hidden; }
.experience-logo img { display: block; width: 100%; height: 100%; object-fit: contain; }
.project-grid-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.project-grid-three .card-art { height: 280px; }
.project-grid-three .card-body { padding: 24px 24px 0; }
.project-grid-three .card-body h3 { font-size: clamp(30px, 2.7vw, 39px); margin: 18px 0 5px; }
.project-grid-three .card-body p:not(.card-period) { font-size: 14px; line-height: 1.6; }
.project-grid-three .card-meta { font-size: 9px; }
.card-period { color: var(--lime) !important; font: 500 10px var(--mono) !important; letter-spacing: .02em; margin: 0 0 17px !important; }
.nasa-art.feature-art { margin: 0; min-height: 0; border: 0; border-radius: 0; }
.nasa-art .monitor-top { font-size: 8px; padding: 15px 14px; }
.nasa-art .monitor-chart { height: 152px; padding: 15px; }
.nasa-art .monitor-stats { margin: 0 10px; }
.nasa-art .monitor-stats div { padding: 8px; }
.nasa-art .monitor-stats small { font-size: 7px; }
.nasa-art .monitor-stats b { font-size: 17px; }
.nasa-art .monitor-stats .optimal { font-size: 11px; }
.lunar-cover { background: #050509; }
.lunar-cover img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 63%; }
.cover-label { position: absolute; top: 17px; left: 17px; z-index: 1; padding: 8px 11px; border: 1px solid #9baa8c99; border-radius: 999px; background: #10151dd9; color: var(--lime); font: 9px var(--mono); letter-spacing: .1em; }
.project-grid-three .movie-stack-back { left: 12%; }
.project-grid-three .movie-stack-front { right: 10%; }
.project-grid-three .movie-stack-back b { font-size: 23px; }
.project-grid-three .movie-stack-front b { font-size: 88px; }
.project-card-actions .code-link { display: inline-flex; align-items: center; gap: 7px; }
.project-card-actions .code-link img { width: 16px; height: 16px; filter: invert(1); }
.about-details .detail-row { display: grid; grid-template-columns: 25px 85px 1fr; gap: 14px; align-items: start; }
.about-icon { width: 22px; height: 22px; object-fit: contain; }
.skill-list .pygame-logo { width: 25px; height: 25px; object-fit: cover; object-position: right; }
.contact-links strong { display: block; }
.contact-links strong small { display: block; margin-top: 5px; font: 400 12px var(--mono); color: #415738; overflow-wrap: anywhere; }
@media (max-width: 1150px) { .project-grid-three { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) { .project-grid-three { grid-template-columns: 1fr; } .project-grid-three .card-art { height: 265px; } }
@media (max-width: 650px) { .about-details .detail-row { grid-template-columns: 22px 76px 1fr; gap: 9px; } .contact-links strong small { font-size: 10px; } .experience-logo { width: 64px; height: 47px; } }
/* Centered navigation and real project imagery */
.site-header { justify-content: space-between; }
.main-nav { position: absolute; left: 50%; transform: translateX(-50%); margin: 0; gap: 2px; padding: 6px; border: 1px solid #48535e; border-radius: 999px; background: #1c2530; }
.main-nav a { padding: 9px 12px; border-radius: 999px; transition: background .2s ease, color .2s ease; }
.main-nav a:hover, .main-nav a:focus-visible { background: #354252; color: var(--lime); }
.header-resume { margin-left: auto; }
.label-top { top: 12%; left: 50%; right: auto; transform: translateX(-50%); white-space: nowrap; }
.label-left { left: 8%; top: 40%; }
.label-left span, .label-bottom span { color: var(--lime); }
.label-bottom { left: 50%; bottom: 13%; transform: translateX(-50%); white-space: nowrap; }
.visual-cross { display: none; }
.project-photo { background: #121923; }
.project-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.nasa-cover img { object-position: 55% center; }
.valid-cover img { transform: scale(1.13); object-position: center; }
@media (max-width: 1100px) { .main-nav { gap: 0; } .main-nav a { padding: 9px 8px; } }
@media (max-width: 780px) { .main-nav { display: none; } }
@media (max-width: 650px) { .eyebrow { white-space: normal; flex-wrap: wrap; } .label-top { font-size: 7px; } .label-left { font-size: 8px; left: 7%; } .label-bottom { font-size: 7px; } }
/* Theme control, animated hero, and final refinements */
html, body, .site-header, .project-card, .experience-card, .timeline-card, .about-section, .skills-section, .detail-main, .detail-content, .detail-media, .detail-document, .detail-repository, .detail-next { transition: background-color .28s ease, color .28s ease, border-color .28s ease; }
.theme-toggle { display: grid; place-items: center; flex: none; width: 42px; height: 42px; margin-left: auto; border: 1px solid #67717c; border-radius: 50%; background: transparent; color: var(--lime); cursor: pointer; font: 20px/1 var(--sans); transition: transform .2s ease, background .2s ease, border-color .2s ease; }
.theme-toggle:hover, .theme-toggle:focus-visible { transform: translateY(-2px); background: #27323e; border-color: var(--lime); }
.theme-toggle:focus-visible { outline: 2px solid var(--lime); outline-offset: 3px; }
.header-resume { margin-left: 0; }
.build-line { display: block; min-height: 1.15em; margin-top: .08em; font-size: clamp(34px,3.6vw,56px); letter-spacing: -.06em; white-space: nowrap; }
.typed-text { color: var(--lime); }
.typing-cursor { display: inline-block; width: .08em; height: .83em; margin-left: .08em; background: var(--lime); vertical-align: -.03em; animation: cursor-blink .8s steps(1) infinite; }
@keyframes cursor-blink { 50% { opacity: 0; } }
.hero-actions { margin-top: 27px; }
.hero-links { gap: 10px; margin-top: 38px; }
.hero-links a { padding: 9px 11px; border: 1px solid #3c4855; border-radius: 999px; transition: color .2s ease, border-color .2s ease, background .2s ease, transform .2s ease; }
.hero-links a:hover, .hero-links a:focus-visible { transform: translateY(-2px); border-color: var(--lime); background: #1b2530; }
.visual-label span { color: var(--lime); }
.label-left { left: 7%; top: 48%; }
.label-right { right: -7%; top: 50%; transform: rotate(90deg); transform-origin: center; white-space: nowrap; }
.label-bottom { bottom: 9%; }
.experience-card:nth-child(2) .experience-logo img { transform: translateY(-1px); }
.project-card { transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease, background .25s ease; }
.project-card:hover, .project-card:focus-within { transform: translateY(-5px) scale(1.008); border-color: var(--lime); box-shadow: 0 18px 45px #0003; }
.project-grid-three .lunar-card .card-body h3 { font-size: clamp(27px,2.35vw,35px); line-height: 1.12; }
.about-details .detail-row > span { font-size: 11px; font-weight: 500; }
.card-meta { justify-content: flex-start; }
/* Light theme uses purpose-selected surfaces and contrast rather than color inversion. */
:root[data-theme="light"] { --bg:#f4f1e8; --panel:#fffdf7; --panel2:#ebe7dc; --line:#c9c3b5; --text:#17202a; --muted:#5f6770; --lime:#557514; --blue:#365fc1; }
:root[data-theme="light"] body { background:var(--bg); color:var(--text); }
:root[data-theme="light"] .site-header { background:rgba(244,241,232,.94); }
:root[data-theme="light"] .main-nav { background:#fffdf8; border-color:#c7c0b2; color:#4f5962; box-shadow:0 6px 22px #3a372f12; }
:root[data-theme="light"] .main-nav a:hover, :root[data-theme="light"] .main-nav a:focus-visible { background:#e8edd8; color:#344f0c; }
:root[data-theme="light"] .theme-toggle, :root[data-theme="light"] .header-resume, :root[data-theme="light"] .mobile-menu summary { border-color:#9b978d; color:#415b10; }
:root[data-theme="light"] .theme-toggle:hover, :root[data-theme="light"] .theme-toggle:focus-visible { background:#e3e8d4; }
:root[data-theme="light"] .hero-intro, :root[data-theme="light"] .about-grid p, :root[data-theme="light"] .detail-lede, :root[data-theme="light"] .detail-prose p, :root[data-theme="light"] .detail-repository p, :root[data-theme="light"] .detail-media-header p, :root[data-theme="light"] .detail-next p { color:#4f5962; }
:root[data-theme="light"] .hero-links { color:#46515b; }
:root[data-theme="light"] .hero-links a { border-color:#b9b4aa; background:#faf8f1; }
:root[data-theme="light"] .hero-links a:hover { background:#e9eedc; }
:root[data-theme="light"] .icon-invert, :root[data-theme="light"] .project-card-actions .code-link img, :root[data-theme="light"] .github-button img { filter:none; }
:root[data-theme="light"] .hero-visual { background:radial-gradient(circle at center,#dfe6e7 0%,#d1d9dc 45%,#ece9df 75%); }
:root[data-theme="light"] .visual-grid { opacity:.45; }
:root[data-theme="light"] .visual-label { color:#33404a; }
:root[data-theme="light"] .experience-section, :root[data-theme="light"] .about-section, :root[data-theme="light"] .detail-main, :root[data-theme="light"] .detail-repository, :root[data-theme="light"] .detail-next { background:#f4f1e8; }
:root[data-theme="light"] .projects-section, :root[data-theme="light"] .skills-section, :root[data-theme="light"] .detail-content { background:#eae7de; }
:root[data-theme="light"] .detail-media, :root[data-theme="light"] .detail-document { background:#f0ede5; }
:root[data-theme="light"] .experience-card, :root[data-theme="light"] .project-card, :root[data-theme="light"] .timeline-card, :root[data-theme="light"] .about-details, :root[data-theme="light"] .skill-list li { background:#fffdf7; border-color:#c8c2b6; }
:root[data-theme="light"] .experience-card:hover, :root[data-theme="light"] .experience-card:focus-visible, :root[data-theme="light"] .timeline-link:hover, :root[data-theme="light"] .timeline-link:focus-visible { background:#f7faee; }
:root[data-theme="light"] .experience-card p, :root[data-theme="light"] .timeline-card p, :root[data-theme="light"] .card-body p, :root[data-theme="light"] .detail-row small, :root[data-theme="light"] .contact-links strong small { color:#56606a; }
:root[data-theme="light"] .experience-date { color:#59636c; }
:root[data-theme="light"] .timeline-icon img, :root[data-theme="light"] .about-icon { filter:brightness(.58) saturate(1.35); }
:root[data-theme="light"] .tags span, :root[data-theme="light"] .project-card-actions, :root[data-theme="light"] .experience-card-link, :root[data-theme="light"] .detail-row, :root[data-theme="light"] .skills-grid, :root[data-theme="light"] .skill-group { border-color:#c8c2b6; }
:root[data-theme="light"] .tags span, :root[data-theme="light"] .project-card-actions .code-link, :root[data-theme="light"] .skill-list li { color:#3f4a54; }
:root[data-theme="light"] .timeline::before { background:linear-gradient(var(--lime),#9aa58c 50%,var(--lime)); }
:root[data-theme="light"] .timeline-icon { background:#edf1e4; border-color:#a8b09e; }
:root[data-theme="light"] .detail-figure, :root[data-theme="light"] .single-video, :root[data-theme="light"] .video-card { border-color:#bdb8ad; }
:root[data-theme="light"] .button-ghost { border-color:#777d78; }
:root[data-theme="light"] .github-button { color:#17202a; }
:root[data-theme="light"] .resume-heading p, :root[data-theme="light"] .resume-fallback, :root[data-theme="light"] .document-fallback { color:#59636c; }
:root[data-theme="light"] .site-footer { color:#58626a; }
:root[data-theme="light"] .mobile-menu nav { background:#fffdf7; border-color:#bcb6ab; box-shadow:0 20px 40px #4c493822; }
:root[data-theme="light"] .mobile-menu nav a:hover { background:#e8edd8; }
@media (max-width: 1100px) { .theme-toggle { width: 38px; height: 38px; font-size: 18px; } }
@media (max-width: 780px) { .theme-toggle { margin-left: 0; } }
@media (max-width: 650px) { .build-line { font-size: clamp(20px,6vw,30px); letter-spacing:-.055em; } .hero-links { gap: 8px; } .hero-links a { padding: 8px 9px; } .label-left { left: 5%; } .label-right { right: -9%; font-size: 6.5px; } .label-bottom { bottom: 8%; } .theme-toggle { width: 36px; height: 36px; } }
@media (prefers-reduced-motion: reduce) { .typing-cursor { animation:none; } .project-card, .hero-links a, html, body { transition:none; } }
/* Version 1 layout stability and section-flow refinements */
@media (min-width:1001px) {
.hero { grid-template-columns:minmax(0,1fr) 490px; }
.hero-copy { min-width:0; }
.hero-visual { width:490px; height:490px; max-width:none; transform:translateX(16px); }
}
@media (max-width:1000px) {
.hero-visual { width:min(100%,430px); height:auto; transform:none; }
}
.orb-three { top:14%; right:27%; width:7px; height:7px; background:#ff8b6a; box-shadow:0 0 18px #ff8b6a80; }
.orb-four { left:18%; bottom:22%; width:8px; height:8px; background:#b79cff; box-shadow:0 0 18px #b79cff80; }
.orb-five { left:10%; top:66%; width:6px; height:6px; background:#65d6c4; box-shadow:0 0 18px #65d6c480; }
.label-right { right:1.5%; top:45%; width:84px; transform:none; white-space:normal; line-height:1.35; }
.label-bottom { bottom:8%; }
.experience-card:nth-child(2) .experience-logo { align-items:center; justify-items:center; }
.experience-card:nth-child(2) .experience-logo img { object-position:center center; transform:translateY(-3px); }
.timeline-section { border-top:1px solid var(--line); background:var(--bg); }
.timeline-section .timeline-heading { margin:0 0 35px; }
.timeline-card { transition:transform .25s ease, border-color .25s ease, background .25s ease, box-shadow .25s ease; }
.timeline-card:hover, .timeline-card:focus-visible { transform:translateY(-3px) scale(1.012); border-color:var(--lime); background:#202a35; box-shadow:0 13px 30px #0002; }
.project-grid-three .nasa-card .card-body h3 { font-size:clamp(27px,2.3vw,35px); line-height:1.12; }
.project-grid-three .lunar-card .card-body h3 { font-size:clamp(30px,2.7vw,39px); }
.card-meta span { overflow-wrap:anywhere; }
.about-details .detail-row { grid-template-columns:25px 94px 1fr; gap:16px; padding-block:28px; }
.about-details .detail-row > span { font-size:12px; line-height:1.35; }
:root[data-theme="light"] .timeline-card:hover, :root[data-theme="light"] .timeline-card:focus-visible { background:#f7faee; }
@media (max-width:650px) {
.hero-visual { width:min(100%,250px); }
.label-right { right:0; top:43%; width:54px; font-size:6.5px; line-height:1.4; }
.label-bottom { bottom:7%; max-width:145px; text-align:center; }
.orb-three { top:12%; right:24%; width:5px; height:5px; }
.orb-four { left:17%; bottom:20%; width:6px; height:6px; }
.orb-five { left:9%; top:66%; width:5px; height:5px; }
.about-details .detail-row { grid-template-columns:22px 82px 1fr; gap:10px; padding-block:25px; }
.about-details .detail-row > span { font-size:11px; }
}
@media (prefers-reduced-motion:reduce) {
.timeline-card:hover, .timeline-card:focus-visible { transform:none; }
}
/* Recruiter-focused project summaries and action hierarchy */
.project-grid-three .card-body .project-outcome {
display:flex;
align-items:center;
gap:9px;
margin:-4px 0 22px;
color:var(--lime);
font:500 11px/1.4 var(--mono);
letter-spacing:.02em;
}
.project-outcome::before { content:''; flex:none; width:6px; height:6px; border-radius:50%; background:var(--lime); }
.project-card-actions { gap:10px; }
.project-card-actions .project-primary {
display:inline-flex;
align-items:center;
justify-content:center;
gap:12px;
padding:10px 13px;
border:1px solid var(--lime);
border-radius:999px;
background:var(--lime);
color:#10151d;
font-weight:600;
text-decoration:none;
transition:transform .2s ease, background .2s ease, border-color .2s ease;
}
.project-card-actions .project-primary:hover,
.project-card-actions .project-primary:focus-visible { transform:translateY(-2px); background:#edffaf; border-color:#edffaf; text-decoration:none; }
.project-card-actions .code-link { font-size:10px; }
:root[data-theme="light"] .project-card-actions .project-primary { background:#557514; border-color:#557514; color:#fff; }
:root[data-theme="light"] .project-card-actions .project-primary:hover,
:root[data-theme="light"] .project-card-actions .project-primary:focus-visible { background:#38530b; border-color:#38530b; }
@media (prefers-reduced-motion:reduce) { .project-card-actions .project-primary { transition:none; } .project-card-actions .project-primary:hover { transform:none; } }