Skip to content

Commit 9803c3b

Browse files
landing: polish spacing, CTA, and scroll reveal effects
Improve the homepage visual rhythm with a section spacing scale, stronger section transitions, and a clearer hero hierarchy. Moves the SIMULATE action into the hero, adds micro-interactions and subtle starfield motion, and introduces scroll-triggered reveal animations for section content. Closes #13. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent ead0e30 commit 9803c3b

2 files changed

Lines changed: 289 additions & 83 deletions

File tree

css/main.css

Lines changed: 178 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
:root {
2-
--surface-background: rgba(33, 35, 50, 0.65);
3-
--surface-border: rgba(255, 255, 255, 0.15);
2+
--surface-background: rgba(33, 35, 50, 0.62);
3+
--surface-border: rgba(255, 255, 255, 0.16);
44
--text-primary: #ffffff;
5-
--text-secondary: rgba(255, 255, 255, 0.92);
5+
--text-secondary: rgba(255, 255, 255, 0.9);
66
--accent-text: #ffc379;
7+
--accent-strong: #f8a84b;
78
--icon-bg: rgba(20, 25, 45, 0.8);
9+
--space-section: clamp(3rem, 7vw, 5.5rem);
10+
--space-content: clamp(1rem, 2.6vw, 1.8rem);
811
}
912

1013
* {
@@ -14,8 +17,7 @@
1417
}
1518

1619
body {
17-
background:
18-
linear-gradient(
20+
background: linear-gradient(
1921
180deg,
2022
rgba(3, 11, 40, 0.94) 0%,
2123
rgba(3, 11, 40, 0.99) 100%
@@ -26,27 +28,60 @@ body {
2628
color: var(--text-primary);
2729
font-family: "Ruda", sans-serif;
2830
min-height: 100vh;
31+
overflow-x: hidden;
32+
position: relative;
33+
}
34+
35+
body::before {
36+
animation: star-drift 26s linear infinite alternate;
37+
background-image: radial-gradient(
38+
circle at 12% 22%,
39+
rgba(255, 255, 255, 0.2) 0 1px,
40+
transparent 2px
41+
),
42+
radial-gradient(
43+
circle at 80% 18%,
44+
rgba(255, 255, 255, 0.14) 0 1px,
45+
transparent 2px
46+
),
47+
radial-gradient(
48+
circle at 22% 78%,
49+
rgba(255, 255, 255, 0.18) 0 1px,
50+
transparent 2px
51+
),
52+
radial-gradient(
53+
circle at 72% 70%,
54+
rgba(255, 255, 255, 0.16) 0 1px,
55+
transparent 2px
56+
);
57+
content: "";
58+
inset: 0;
59+
pointer-events: none;
60+
position: fixed;
61+
z-index: 0;
2962
}
3063

3164
.page-wrapper {
3265
margin: 0 auto;
3366
max-width: 1240px;
34-
padding: 24px 24px 44px;
67+
padding: 24px 24px var(--space-section);
68+
position: relative;
3569
width: 100%;
70+
z-index: 1;
3671
}
3772

3873
.panel-bg {
3974
background: var(--surface-background);
4075
border: 1px solid var(--surface-border);
41-
border-radius: 14px;
42-
box-shadow: 0 10px 28px rgba(0, 0, 0, 0.24);
76+
border-radius: 16px;
77+
box-shadow: 0 14px 34px rgba(0, 0, 0, 0.28);
4378
}
4479

4580
.top-bar {
4681
align-items: center;
4782
display: flex;
4883
justify-content: space-between;
49-
margin-bottom: 28px;
84+
margin-bottom: var(--space-section);
5085
}
5186

5287
.brand-and-cta {
@@ -69,15 +104,34 @@ body {
69104

70105
.simulate-button {
71106
align-items: center;
72-
color: var(--text-primary);
73-
column-gap: 8px;
107+
background: linear-gradient(130deg, #f0ab50 0%, #ffd38f 100%);
108+
border-radius: 999px;
109+
box-shadow: 0 12px 26px rgba(235, 154, 55, 0.38);
110+
color: #111a3a;
111+
column-gap: 10px;
74112
display: inline-flex;
75113
font-size: 15px;
76114
font-weight: 700;
77-
min-height: 42px;
78-
min-width: 145px;
79-
padding: 10px 18px;
115+
letter-spacing: 0.03em;
116+
min-height: 48px;
117+
padding: 11px 24px;
80118
text-decoration: none;
119+
transition:
120+
transform 0.22s ease,
121+
box-shadow 0.22s ease,
122+
filter 0.22s ease;
123+
}
124+
125+
.hero-simulate-button {
126+
margin-top: var(--space-content);
127+
width: fit-content;
128+
}
129+
130+
.simulate-button:hover,
131+
.simulate-button:focus-visible {
132+
box-shadow: 0 16px 32px rgba(248, 168, 75, 0.42);
133+
filter: brightness(1.03);
134+
transform: translateY(-2px);
81135
}
82136

83137
.simulate-icon {
@@ -105,26 +159,52 @@ body {
105159
justify-content: center;
106160
text-decoration: none;
107161
transition:
108-
transform 0.15s ease,
109-
opacity 0.15s ease;
162+
transform 0.18s ease,
163+
opacity 0.18s ease;
110164
width: 42px;
111165
}
112166

113167
.icon-button:hover,
114168
.icon-button:focus-visible {
115169
opacity: 0.85;
116-
transform: translateY(-1px);
170+
transform: translateY(-2px);
117171
}
118172

119173
.main-content {
120174
display: flex;
121175
flex-direction: column;
122-
gap: 18px;
176+
gap: var(--space-section);
123177
}
124178

125179
.hero-section,
126180
.content-section {
127-
padding: 30px;
181+
overflow: hidden;
182+
padding: clamp(1.5rem, 4vw, 2.4rem);
183+
position: relative;
184+
}
185+
186+
.content-section::before {
187+
background: linear-gradient(
188+
90deg,
189+
rgba(255, 255, 255, 0),
190+
rgba(255, 195, 121, 0.75),
191+
rgba(255, 255, 255, 0)
192+
);
193+
content: "";
194+
height: 2px;
195+
left: clamp(1.5rem, 4vw, 2.4rem);
196+
opacity: 0.75;
197+
position: absolute;
198+
right: clamp(1.5rem, 4vw, 2.4rem);
199+
top: 0;
200+
}
201+
202+
.hero-kicker {
203+
color: rgba(255, 255, 255, 0.72);
204+
font-size: 0.94rem;
205+
letter-spacing: 0.16em;
206+
margin-bottom: 10px;
207+
text-transform: uppercase;
128208
}
129209

130210
.hero-tagline,
@@ -135,32 +215,39 @@ body {
135215
}
136216

137217
.hero-tagline {
138-
font-size: clamp(1.8rem, 4.5vw, 2.8rem);
139-
margin-bottom: 20px;
140-
text-align: center;
218+
font-size: clamp(1.95rem, 4.8vw, 3rem);
219+
margin-bottom: 10px;
141220
}
142221

143222
.section-title {
144223
font-size: clamp(1.5rem, 4vw, 2.2rem);
145-
margin-bottom: 16px;
224+
margin-bottom: var(--space-content);
146225
}
147226

148227
.split-layout {
149228
align-items: center;
150-
column-gap: 30px;
229+
column-gap: clamp(1.25rem, 4vw, 2.7rem);
151230
display: grid;
152231
grid-template-columns: 1fr 1fr;
153232
}
154233

155234
.section-text {
156235
color: var(--text-secondary);
157236
font-size: 1.04rem;
158-
line-height: 1.62;
237+
line-height: 1.65;
159238
}
160239

161240
.section-text a {
162241
color: var(--accent-text);
242+
font-weight: 700;
163243
text-decoration: underline;
244+
text-underline-offset: 3px;
245+
transition: color 0.2s ease;
246+
}
247+
248+
.section-text a:hover,
249+
.section-text a:focus-visible {
250+
color: var(--accent-strong);
164251
}
165252

166253
.hero-logo-graphic,
@@ -197,7 +284,7 @@ body {
197284
.hero-plot-graphic {
198285
background-image: url("../images/Group 5.png");
199286
height: 190px;
200-
margin-top: 18px;
287+
margin-top: var(--space-content);
201288
max-width: 320px;
202289
}
203290

@@ -208,6 +295,48 @@ body {
208295
width: 100%;
209296
}
210297

298+
.reveal-section {
299+
opacity: 0;
300+
transform: translateY(26px);
301+
transition:
302+
opacity 0.7s ease,
303+
transform 0.7s ease;
304+
}
305+
306+
.reveal-item {
307+
opacity: 0;
308+
transform: translateY(20px);
309+
transition:
310+
opacity 0.65s ease,
311+
transform 0.65s ease;
312+
}
313+
314+
.reveal-section.is-visible {
315+
opacity: 1;
316+
transform: translateY(0);
317+
}
318+
319+
.reveal-section.is-visible .reveal-item {
320+
opacity: 1;
321+
transform: translateY(0);
322+
}
323+
324+
.reveal-section.is-visible .reveal-item:nth-child(1) {
325+
transition-delay: 0.08s;
326+
}
327+
328+
.reveal-section.is-visible .reveal-item:nth-child(2) {
329+
transition-delay: 0.16s;
330+
}
331+
332+
.reveal-section.is-visible .reveal-item:nth-child(3) {
333+
transition-delay: 0.24s;
334+
}
335+
336+
.reveal-section.is-visible .reveal-item:nth-child(4) {
337+
transition-delay: 0.32s;
338+
}
339+
211340
.footer-logo {
212341
background-image: url("../images/v33_7.png");
213342
background-position: left center;
@@ -218,6 +347,15 @@ body {
218347
width: 240px;
219348
}
220349

350+
@keyframes star-drift {
351+
0% {
352+
transform: translateY(0);
353+
}
354+
100% {
355+
transform: translateY(-26px);
356+
}
357+
}
358+
221359
@media (max-width: 1024px) {
222360
.top-bar {
223361
align-items: flex-start;
@@ -234,31 +372,34 @@ body {
234372
row-gap: 16px;
235373
}
236374

237-
.section-title {
375+
.section-title,
376+
.section-text,
377+
.hero-tagline,
378+
.hero-kicker {
238379
text-align: center;
239380
}
240381

241-
.section-text {
242-
text-align: center;
382+
.hero-simulate-button {
383+
margin-left: auto;
384+
margin-right: auto;
385+
}
386+
387+
.hero-plot-graphic {
388+
margin-left: auto;
389+
margin-right: auto;
243390
}
244391
}
245392

246393
@media (max-width: 640px) {
247394
.page-wrapper {
248-
padding: 14px 12px 26px;
249-
}
250-
251-
.brand-and-cta {
252-
align-items: stretch;
253-
flex-direction: column;
254-
width: 100%;
395+
padding: 14px 12px var(--space-section);
255396
}
256397

257398
.brand-logo {
258399
width: 200px;
259400
}
260401

261-
.simulate-button {
402+
.hero-simulate-button {
262403
justify-content: center;
263404
width: 100%;
264405
}

0 commit comments

Comments
 (0)