|
1 | | -/* Resume layout + typography improvements */ |
| 1 | +/* Resume layout - prioritize readability and spacing */ |
| 2 | +.resume-page { |
| 3 | + line-height: 1.6; |
| 4 | +} |
| 5 | + |
2 | 6 | .resume { |
3 | | - --resume-max: 800px; |
4 | | - --resume-gap: 1rem; |
5 | | - --resume-gap-lg: 2rem; |
6 | | - --resume-border: var(--color-border, rgba(0,0,0,0.12)); |
7 | | - --resume-muted: var(--color-muted, rgba(0,0,0,0.6)); |
8 | | - --resume-accent: var(--ghost-accent-color, #ff3cab); |
9 | | - max-width: var(--resume-max); |
| 7 | + max-width: 900px; |
10 | 8 | margin: 0 auto; |
11 | | - padding: 0 2rem; |
| 9 | + padding: 3rem 2rem; |
| 10 | + font-size: 16px; |
| 11 | +} |
| 12 | + |
| 13 | +/* Override Ghost's tight spacing */ |
| 14 | +.resume-page .gh-content { |
| 15 | + max-width: none; |
12 | 16 | } |
13 | 17 |
|
14 | | -/* Ensure the resume respects Ghost's grid system */ |
15 | 18 | .resume-page .resume-wrap { |
16 | 19 | grid-column: 1 / -1 !important; |
17 | 20 | max-width: none; |
18 | 21 | padding: 0; |
19 | 22 | } |
20 | 23 |
|
21 | | -.resume-page .gh-content { |
22 | | - max-width: 100%; |
23 | | -} |
24 | | - |
25 | | -/* Header */ |
| 24 | +/* Header with better spacing */ |
26 | 25 | .resume-header { |
27 | | - margin-block: 1.25rem 1.75rem; |
| 26 | + margin-bottom: 3rem; |
| 27 | + padding-bottom: 2rem; |
| 28 | + border-bottom: 2px solid #e5e5e5; |
28 | 29 | } |
| 30 | + |
29 | 31 | .resume-name { |
30 | | - line-height: 1.15; |
31 | | - margin: 0; |
32 | | - font-size: clamp(28px, 4vw, 40px); |
| 32 | + font-size: 2.5rem; |
| 33 | + font-weight: 700; |
| 34 | + line-height: 1.2; |
| 35 | + margin: 0 0 0.5rem 0; |
| 36 | + color: #1a1a1a; |
33 | 37 | } |
| 38 | + |
34 | 39 | .resume-pronouns { |
35 | 40 | font-weight: 400; |
36 | | - color: var(--resume-muted); |
37 | | - font-size: .875em; |
| 41 | + color: #666; |
| 42 | + font-size: 0.9em; |
38 | 43 | } |
| 44 | + |
39 | 45 | .resume-title { |
40 | | - margin: .25rem 0 0; |
| 46 | + font-size: 1.4rem; |
41 | 47 | font-weight: 600; |
42 | | - letter-spacing: .005em; |
43 | | - font-size: clamp(16px, 2.2vw, 20px); |
44 | | - color: var(--color-mid, rgba(0,0,0,.75)); |
| 48 | + margin: 0.5rem 0; |
| 49 | + color: #2c5aa0; |
45 | 50 | } |
| 51 | + |
46 | 52 | .resume-location { |
47 | | - margin: .25rem 0 0; |
48 | | - color: var(--resume-muted); |
| 53 | + font-size: 1.1rem; |
| 54 | + margin: 0.25rem 0 1.5rem 0; |
| 55 | + color: #666; |
49 | 56 | } |
50 | 57 |
|
51 | | -/* Contact links as a simple vertical list */ |
| 58 | +/* Contact links with better spacing */ |
52 | 59 | .resume-contact { |
53 | | - margin-top: .75rem; |
54 | | - display: flex; |
55 | | - flex-direction: column; |
56 | | - gap: .5rem; |
| 60 | + margin: 1rem 0 2rem 0; |
57 | 61 | } |
| 62 | + |
58 | 63 | .resume-contact a { |
59 | | - display: inline-block; |
60 | | - width: fit-content; |
61 | | - padding: .25rem 0; |
62 | | - color: #e85bad; |
63 | | - text-decoration: underline; |
64 | | - text-underline-offset: 2px; |
65 | | - font-size: .95rem; |
66 | | - transition: opacity 0.2s ease; |
| 64 | + display: block; |
| 65 | + margin: 0.5rem 0; |
| 66 | + color: #2c5aa0; |
| 67 | + text-decoration: none; |
| 68 | + font-size: 1rem; |
| 69 | + padding: 0.25rem 0; |
| 70 | + border-bottom: 1px solid transparent; |
| 71 | + transition: border-bottom-color 0.2s ease; |
67 | 72 | } |
68 | | -.resume-contact a:hover, |
69 | | -.resume-contact a:focus-visible { |
70 | | - opacity: 0.8; |
| 73 | + |
| 74 | +.resume-contact a:hover { |
| 75 | + border-bottom-color: #2c5aa0; |
71 | 76 | } |
72 | 77 |
|
73 | | -/* Jump list */ |
| 78 | +/* Navigation with better spacing */ |
74 | 79 | .resume-nav { |
75 | | - margin-top: 1rem; |
76 | | - display: flex; |
77 | | - flex-wrap: wrap; |
78 | | - gap: .5rem 1.5rem; |
79 | | - border-top: 1px solid var(--resume-border); |
80 | | - padding-top: .75rem; |
81 | | - font-size: .9rem; |
| 80 | + margin: 2rem 0 3rem 0; |
| 81 | + padding: 1.5rem 0 0 0; |
| 82 | + border-top: 1px solid #e5e5e5; |
82 | 83 | } |
| 84 | + |
83 | 85 | .resume-nav a { |
84 | | - color: inherit; |
85 | | - text-decoration: underline; |
86 | | - text-underline-offset: 2px; |
87 | | - opacity: 0.8; |
88 | | - transition: opacity 0.2s ease; |
| 86 | + display: inline-block; |
| 87 | + margin: 0 1.5rem 0.5rem 0; |
| 88 | + color: #2c5aa0; |
| 89 | + text-decoration: none; |
| 90 | + font-size: 0.95rem; |
| 91 | + font-weight: 500; |
| 92 | + padding: 0.25rem 0; |
| 93 | + border-bottom: 1px solid transparent; |
| 94 | + transition: border-bottom-color 0.2s ease; |
89 | 95 | } |
90 | | -.resume-nav a:hover, |
91 | | -.resume-nav a:focus-visible { |
92 | | - opacity: 1; |
| 96 | + |
| 97 | +.resume-nav a:hover { |
| 98 | + border-bottom-color: #2c5aa0; |
93 | 99 | } |
94 | 100 |
|
95 | | -/* Sections */ |
| 101 | +/* Sections with generous spacing */ |
96 | 102 | .resume-section { |
97 | | - padding-block: var(--resume-gap-lg); |
98 | | - border-top: 1px solid var(--resume-border); |
| 103 | + margin: 3rem 0; |
| 104 | + padding: 2rem 0 0 0; |
| 105 | + border-top: 2px solid #e5e5e5; |
99 | 106 | } |
| 107 | + |
100 | 108 | .resume-section:first-of-type { |
101 | 109 | border-top: 0; |
| 110 | + margin-top: 0; |
| 111 | + padding-top: 0; |
102 | 112 | } |
| 113 | + |
103 | 114 | .resume-section > h2 { |
104 | | - margin: 0 0 .75rem; |
105 | | - letter-spacing: .01em; |
106 | | - font-size: clamp(20px, 2.8vw, 26px); |
| 115 | + font-size: 1.8rem; |
| 116 | + font-weight: 700; |
| 117 | + margin: 0 0 1.5rem 0; |
| 118 | + color: #1a1a1a; |
| 119 | + letter-spacing: -0.01em; |
107 | 120 | } |
108 | 121 |
|
109 | | -/* Key skills: two-column on desktop */ |
| 122 | +.resume-section p { |
| 123 | + margin: 1rem 0; |
| 124 | + line-height: 1.7; |
| 125 | + font-size: 1rem; |
| 126 | +} |
| 127 | + |
| 128 | +/* Skills section with better list formatting */ |
110 | 129 | #skills ul { |
111 | | - margin: .25rem 0 0; |
| 130 | + margin: 1.5rem 0; |
| 131 | + padding-left: 1.5rem; |
112 | 132 | columns: 1; |
113 | | - column-gap: 2rem; |
114 | | - padding-left: 1.2rem; |
| 133 | + column-gap: 3rem; |
115 | 134 | } |
| 135 | + |
116 | 136 | #skills li { |
| 137 | + margin: 0.75rem 0; |
117 | 138 | break-inside: avoid; |
118 | | - margin: .35rem 0; |
| 139 | + line-height: 1.6; |
| 140 | + font-size: 1rem; |
119 | 141 | } |
120 | | -@media (min-width: 880px) { |
121 | | - #skills ul { columns: 2; } |
| 142 | + |
| 143 | +@media (min-width: 900px) { |
| 144 | + #skills ul { |
| 145 | + columns: 2; |
| 146 | + } |
122 | 147 | } |
123 | 148 |
|
124 | | -/* Experience: card-like separation between roles */ |
| 149 | +/* Experience section with clear role separation */ |
125 | 150 | .resume-experience .resume-role { |
126 | | - padding-block: 1rem; |
127 | | - border-top: 1px dashed var(--resume-border); |
| 151 | + margin: 2.5rem 0; |
| 152 | + padding: 1.5rem 0 0 0; |
| 153 | + border-top: 1px solid #e5e5e5; |
128 | 154 | } |
| 155 | + |
129 | 156 | .resume-experience .resume-role:first-child { |
130 | 157 | border-top: 0; |
| 158 | + margin-top: 0; |
| 159 | + padding-top: 0; |
131 | 160 | } |
| 161 | + |
132 | 162 | .resume-experience h3 { |
133 | | - margin: 0 0 .25rem; |
134 | | - line-height: 1.25; |
| 163 | + font-size: 1.3rem; |
135 | 164 | font-weight: 600; |
| 165 | + margin: 0 0 0.5rem 0; |
| 166 | + color: #1a1a1a; |
| 167 | + line-height: 1.3; |
136 | 168 | } |
| 169 | + |
137 | 170 | .resume-experience .meta { |
138 | | - color: var(--resume-muted); |
139 | | - margin-bottom: .5rem; |
140 | | - font-size: .975rem; |
| 171 | + color: #666; |
| 172 | + margin-bottom: 1rem; |
| 173 | + font-size: 1rem; |
| 174 | + font-weight: 500; |
141 | 175 | } |
| 176 | + |
142 | 177 | .resume-experience ul { |
143 | | - margin: .5rem 0 0; |
144 | | - padding-left: 1.2rem; |
| 178 | + margin: 1rem 0 0 0; |
| 179 | + padding-left: 1.5rem; |
145 | 180 | } |
| 181 | + |
146 | 182 | .resume-experience li { |
147 | | - margin: .35rem 0; |
| 183 | + margin: 0.75rem 0; |
| 184 | + line-height: 1.6; |
| 185 | + font-size: 1rem; |
148 | 186 | } |
149 | 187 |
|
150 | 188 | /* Role headers for consistent styling */ |
|
205 | 243 | font-style: italic; |
206 | 244 | } |
207 | 245 |
|
208 | | -/* Mobile tweaks */ |
209 | | -@media (max-width: 860px) { |
210 | | - #skills ul { columns: 1; } |
211 | | - .resume { padding: 0 1.5rem; } |
| 246 | +/* Mobile responsiveness */ |
| 247 | +@media (max-width: 900px) { |
| 248 | + .resume { |
| 249 | + padding: 2rem 1.5rem; |
| 250 | + } |
| 251 | + |
| 252 | + #skills ul { |
| 253 | + columns: 1; |
| 254 | + } |
212 | 255 | } |
| 256 | + |
213 | 257 | @media (max-width: 640px) { |
214 | | - .role-header { grid-template-columns: 1fr; } |
215 | | - .role-title-dates { justify-self: start; gap: .5rem; } |
216 | | - .resume { padding: 0 1rem; } |
217 | | -} |
218 | | -@media (max-width: 520px) { |
219 | | - .resume-header { margin-block: .75rem 1rem; } |
220 | | - .resume-nav { gap: .35rem 1rem; } |
| 258 | + .resume { |
| 259 | + padding: 1.5rem 1rem; |
| 260 | + } |
| 261 | + |
| 262 | + .resume-name { |
| 263 | + font-size: 2rem; |
| 264 | + } |
| 265 | + |
| 266 | + .resume-title { |
| 267 | + font-size: 1.2rem; |
| 268 | + } |
| 269 | + |
| 270 | + .resume-section > h2 { |
| 271 | + font-size: 1.5rem; |
| 272 | + } |
| 273 | + |
| 274 | + .role-header { |
| 275 | + grid-template-columns: 1fr; |
| 276 | + } |
| 277 | + |
| 278 | + .role-title-dates { |
| 279 | + justify-self: start; |
| 280 | + gap: 0.5rem; |
| 281 | + } |
221 | 282 | } |
222 | 283 |
|
223 | 284 | /* Override any problematic grid layouts */ |
|
0 commit comments