summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsalmonik <raisersoft@proton.me>2026-02-07 00:45:28 +0100
committersalmonik <raisersoft@proton.me>2026-02-07 00:45:28 +0100
commit4ab571290f64527bc321df8f1267376ad9b9043d (patch)
tree523538f46d4b435c4e3d69a76724183467ced7ba
parentsmooth scrolling when going to divs (diff)
downloadsite-4ab571290f64527bc321df8f1267376ad9b9043d.tar.gz
site-4ab571290f64527bc321df8f1267376ad9b9043d.zip
demake the site, and remove external components
-rw-r--r--contact.html49
-rw-r--r--index.html124
-rw-r--r--js/gradient.js53
-rw-r--r--projects.html49
-rw-r--r--styles.css374
5 files changed, 179 insertions, 470 deletions
diff --git a/contact.html b/contact.html
new file mode 100644
index 0000000..c95e7a1
--- /dev/null
+++ b/contact.html
@@ -0,0 +1,49 @@
1<!--
2 This File is part of SalmonPage
3 Copyright (C) 2025 Salmon
4 https://codeberg.org/salmonik/site
5 License: GPL-3.0
6-->
7
8<!DOCTYPE html>
9<html lang="en">
10<head>
11 <meta charset="UTF-8">
12 <meta name="viewport" content="width=device-width, initial-scale=1.0">
13 <title>Contact - SalmonPage</title>
14 <link rel="stylesheet" href="styles.css">
15</head>
16<body>
17<header>
18 <div class="container">
19 <nav>
20 <a href="index.html" class="logo">SalmonPage</a>
21 <div class="nav-links">
22 <a href="projects.html">Projects</a>
23 <a href="contact.html">Contact</a>
24 </div>
25 </nav>
26 </div>
27</header>
28
29<main>
30 <div class="container">
31 <p>There are many secure ways to contact me:</p>
32 <ul>
33 <li>Email: <a href="mailto:salmonik@tuta.io">salmonik@tuta.io</a></li>
34 <li>GPG Key: <a href="resources/public.gpg" download="salmon_public.asc">Download</a></li>
35 <li>[NOT RECOMMENDED] <a href="https://discord.com/users/1204201769006145556">Discord</a></li>
36 <li><a href="https://t.me/salmonium">Telegram</a></li>
37 <li><a href="https://matrix.to/#/@salmonware:matrix.org">Matrix</a></li>
38 </ul>
39 </div>
40</main>
41
42<footer>
43 <div class="container">
44 <p>Designed & Built by Salmon and AI</p>
45 <p>Hosted under GPL-3.0</p>
46 </div>
47</footer>
48</body>
49</html>
diff --git a/index.html b/index.html
index e6286ce..1ef0e08 100644
--- a/index.html
+++ b/index.html
@@ -1,12 +1,16 @@
1<!--
2 This File is part of SalmonPage
3 Copyright (C) 2025 Salmon
4 https://codeberg.org/salmonik/site
5 License: GPL-3.0
6-->
7
1<!DOCTYPE html> 8<!DOCTYPE html>
2<html lang="en"> 9<html lang="en">
3<head> 10<head>
4 <meta charset="UTF-8"> 11 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 12 <meta name="viewport" content="width=device-width, initial-scale=1.0">
6 <title>SalmonPage</title> 13 <title>SalmonPage</title>
7 <link rel="preconnect" href="https://fonts.googleapis.com">
8 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
9 <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
10 <link rel="stylesheet" href="styles.css"> 14 <link rel="stylesheet" href="styles.css">
11</head> 15</head>
12<body> 16<body>
@@ -15,9 +19,8 @@
15 <nav> 19 <nav>
16 <a href="#" class="logo">SalmonPage</a> 20 <a href="#" class="logo">SalmonPage</a>
17 <div class="nav-links"> 21 <div class="nav-links">
18 <a href="#about">About</a> 22 <a href="projects.html">Projects</a>
19 <a href="#projects">Projects</a> 23 <a href="contact.html">Contact</a>
20 <a href="#contact">Contact</a>
21 </div> 24 </div>
22 </nav> 25 </nav>
23 </div> 26 </div>
@@ -27,109 +30,12 @@
27 <section class="hero"> 30 <section class="hero">
28 <div class="container"> 31 <div class="container">
29 <div class="hero-content"> 32 <div class="hero-content">
30 <div class="hero-text"> 33 <div class="hero-text">
31 <div class="greeting">Hi, my name is</div> 34 <div class="greeting">Hi, my name is</div>
32 <h1>Salmon. </h1> 35 <h1>Salmon. </h1>
33 <h2 class="tagline">I build things.</h2> 36 <h2 class="tagline">I am an open software enthusiast.</h2>
34 <p>I mainly do C++ and whatnot.</p>
35 <div class="cta-buttons">
36 <a href="#contact" class="btn btn-primary">Contacts</a>
37 <a href="#projects" class="btn btn-outline">What did I do</a>
38 </div>
39 </div>
40 <div class="hero-image">
41 <img src="resources/salmon.png" alt="Salmon" class="hero-img">
42 </div>
43 </div>
44 </div>
45 </section>
46
47 <section id="about" class="about">
48 <div class="container">
49 <h2 class="section-title">Who am I?</h2>
50 <div class="about-content">
51 <div>
52 <p>I am salmon, mainly known for SalmonPaste. Creator of SalmonPaste and a few discord bots.</p>
53 <p>This is my site, proudly hosted on my cheap ass server.</p>
54 <p>Things I work with:</p>
55 <div class="skills">
56 <span class="skill-tag">Linux</span>
57 <span class="skill-tag">C++</span>
58 <span class="skill-tag">Python</span>
59 <span class="skill-tag">Retards</span>
60 <span class="skill-tag">More Linux</span>
61 </div>
62 </div>
63 <div class="about-image">
64 <img src="resources/about.png" alt="About Me" class="about-img">
65 </div>
66 </div>
67 </div>
68 </section>
69
70 <section id="projects" class="projects">
71 <div class="container">
72 <h2 class="section-title">My Projects</h2>
73 <div class="projects-grid">
74 <!-- Project 1 -->
75 <div class="project-card">
76 <h3 class="project-title">SalmonPaste</h3>
77 <p class="project-description">Unmaintained TF2 x64 cheat. greatest.</p>
78 <div class="project-links">
79 <a href="https://discord.gg/hj5vUkUWfU" class="btn btn-outline" target="_blank"
80 rel="noopener noreferrer">Discord Server</a>
81 </div>
82 <div class="project-tags">
83 <span class="project-tag">C++</span>
84 <span class="project-tag">FWare based</span>
85 <span class="project-tag">Dead</span>
86 </div>
87 </div>
88
89 <!-- Project 2 -->
90 <div class="project-card">
91 <h3 class="project-title">Discord Bots</h3>
92 <p class="project-description">A few bots I made.</p>
93 <div class="project-links">
94 <a href="https://codeberg.org/salmonik" class="btn btn-outline" target="_blank"
95 rel="noopener noreferrer">My Codeberg</a>
96 </div>
97 <div class="project-tags">
98 <span class="project-tag">Python</span>
99 <span class="project-tag">Pycord</span>
100 <span class="project-tag">Open Source</span>
101 </div>
102 </div>
103
104 <!-- Project 3 -->
105 <div class="project-card">
106 <h3 class="project-title">FileSiever</h3>
107 <p class="project-description">Extremely fast C++ CLI app to filter out lines from files.</p>
108 <div class="project-links">
109 <a href="https://codeberg.org/salmonik/FileSiever" class="btn btn-outline" target="_blank"
110 rel="noopener noreferrer">Project's Codeberg page</a>
111 </div>
112 <div class="project-tags">
113 <span class="project-tag">C++</span>
114 <span class="project-tag">Open Source</span>
115 <span class="project-tag">CLI</span>
116 </div>
117 </div>
118 </div>
119 </div>
120 </section>
121
122 <section id="contact" class="contact">
123 <div class="container">
124 <div class="contact-content">
125 <h2 class="section-title">How to contact me</h2>
126 <div class="contact-methods">
127 <a href="mailto:raisersoft@proton.me" class="btn btn-primary">Email</a>
128 <a href="resources/public.gpg" class="btn btn-primary" download="salmon_public.asc">GPG Key</a>
129 <a href="https://discord.com/users/1204201769006145556" class="btn btn-primary">Discord</a>
130 <a href="https://t.me/salmonium" class="btn btn-primary">Telegram</a>
131 </div>
132 </div> 37 </div>
38 <img src="resources/salmon.png" alt="Salmon" class="hero-img">
133 </div> 39 </div>
134 </section> 40 </section>
135</main> 41</main>
@@ -137,8 +43,8 @@
137<footer> 43<footer>
138 <div class="container"> 44 <div class="container">
139 <p>Designed & Built by Salmon and AI</p> 45 <p>Designed & Built by Salmon and AI</p>
46 <p>Hosted under GPL-3.0</p>
140 </div> 47 </div>
141</footer> 48</footer>
142<script src="js/gradient.js"></script>
143</body> 49</body>
144</html> \ No newline at end of file 50</html> \ No newline at end of file
diff --git a/js/gradient.js b/js/gradient.js
deleted file mode 100644
index 28178f7..0000000
--- a/js/gradient.js
+++ /dev/null
@@ -1,53 +0,0 @@
1document.addEventListener('DOMContentLoaded', () => {
2 // Get the body element to update the cursor position
3 const body = document.documentElement;
4 let mouseX = 0;
5 let mouseY = 0;
6 let smoothX = 0;
7 let smoothY = 0;
8
9 // Smoothing factor (lower = smoother, higher = snappier)
10 const smoothing = 0.1;
11
12 // Handle mouse movement
13 const handleMouseMove = (e) => {
14 mouseY = e.clientY
15 mouseX = e.clientX
16
17 };
18
19 // Smooth the cursor movement
20 const updateCursorLight = () => {
21 // Apply smoothing
22 smoothX += (mouseX - smoothX) * smoothing;
23 smoothY += (mouseY - smoothY) * smoothing;
24
25 // Update CSS variables for the cursor position
26 body.style.setProperty('--cursor-x', `${smoothX}px`);
27 body.style.setProperty('--cursor-y', `${smoothY}px`);
28
29 // Continue the animation loop
30 requestAnimationFrame(updateCursorLight);
31 };
32
33 // Add event listeners
34 window.addEventListener('mousemove', handleMouseMove);
35
36 // Handle touch events for mobile
37 window.addEventListener('touchmove', (e) => {
38 const touch = e.touches[0];
39 handleMouseMove({
40 clientX: touch.clientX,
41 clientY: touch.clientY
42 });
43 }, { passive: false });
44
45 // Initialize cursor position to center of screen
46 mouseX = window.innerWidth / 2;
47 mouseY = window.innerHeight / 2;
48 smoothX = mouseX;
49 smoothY = mouseY;
50
51 // Start the animation loop
52 updateCursorLight();
53});
diff --git a/projects.html b/projects.html
new file mode 100644
index 0000000..1cb2dda
--- /dev/null
+++ b/projects.html
@@ -0,0 +1,49 @@
1<!--
2 This File is part of SalmonPage
3 Copyright (C) 2025 Salmon
4 https://codeberg.org/salmonik/site
5 License: GPL-3.0
6-->
7
8<!DOCTYPE html>
9<html lang="en">
10<head>
11 <meta charset="UTF-8">
12 <meta name="viewport" content="width=device-width, initial-scale=1.0">
13 <title>Projects - SalmonPage</title>
14 <link rel="stylesheet" href="styles.css">
15</head>
16<body>
17<header>
18 <div class="container">
19 <nav>
20 <a href="index.html" class="logo">SalmonPage</a>
21 <div class="nav-links">
22 <a href="projects.html">Projects</a>
23 <a href="contact.html">Contact</a>
24 </div>
25 </nav>
26 </div>
27</header>
28
29<main>
30 <div class="container">
31 <p>My Codeberg page where it all lives: <a href="https://codeberg.org/salmonik">https://codeberg.org/salmonik</a></p>
32 <p>This site source code is hosted on Codeberg: <a href="https://codeberg.org/salmonik/site">https://codeberg.org/salmonik/site</a></p>
33 <p>suckless st fork: <a href="https://codeberg.org/salmonik/suckless-term">https://codeberg.org/salmonik/suckless-term</a></p>
34 <p>dotfiles: <a href="https://codeberg.org/salmonik/dotfiles">https://codeberg.org/salmonik/dotfiles</a></p>
35 <p>senator sperma discord bot I made for my group chat: <a href="https://codeberg.org/salmonik/senator-sperma">https://codeberg.org/salmonik/senator-sperma</a></p>
36 <p>[dead] overlord discord bot made for my now-dead discord server: <a href="https://codeberg.org/salmonik/overlord">https://codeberg.org/salmonik/overlord</a></p>
37 <p>[dead] user installed bot for discord I made for fun: <a href="https://codeberg.org/salmonik/userbot">https://codeberg.org/salmonik/userbot</a></p>
38 <p>[dead] FileSiever: a bad attempt at grep: <a href="https://codeberg.org/salmonik/FileSiever">https://codeberg.org/salmonik/FileSiever</a></p>
39 </div>
40</main>
41
42<footer>
43 <div class="container">
44 <p>Designed & Built by Salmon and AI</p>
45 <p>Hosted under GPL-3.0</p>
46 </div>
47</footer>
48</body>
49</html>
diff --git a/styles.css b/styles.css
index 8a9dccd..7bdf11b 100644
--- a/styles.css
+++ b/styles.css
@@ -1,64 +1,42 @@
1/*
2 This File is part of SalmonPage
3 Copyright (C) 2025 Salmon
4 https://codeberg.org/salmonik/site
5 License: GPL-3.0
6*/
7
1/* Base Styles */ 8/* Base Styles */
2:root { 9:root {
3 --cursor-x: 50%; 10 --text-primary: #e0e0e0;
4 --cursor-y: 50%; 11 --text-secondary: #999999;
5 --bg: #111827; 12 --border: #333333;
6 --bg-secondary: #1f2937; 13 --accent: #3366ff;
7 --bg-tertiary: #374151; 14 --bg-primary: #0a0a0a;
8 --text: #f9fafb; 15 --bg-secondary: #000066;
9 --text-secondary: #d1d5db; 16 --bg-footer: #2e2e2e;
10 --primary: #3b82f6;
11 --primary-hover: #2563eb;
12 --border: #374151;
13 --shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
14 --white: #ffffff;
15 --black: #111827;
16} 17}
17 18
18/* Base background and cursor light effect */
19html { 19html {
20 scroll-behavior: smooth; 20 scroll-padding-top: 80px;
21 scroll-padding-top: 80px; /* Adjust this value based on your header height */
22} 21}
23 22
24html, body { 23html, body {
25 min-height: 100%;
26 margin: 0; 24 margin: 0;
27 padding: 0; 25 padding: 0;
28 background: #111827; /* Base dark background */ 26 background-color: var(--bg-primary);
29 overflow-x: hidden; 27 font-family: Arial, sans-serif;
30 /* Default cursor is now visible */ 28 line-height: 1.4;
31} 29 color: var(--text-primary);
32 30 min-height: 100vh;
33/* Cursor light effect */ 31 display: flex;
34body::before { 32 flex-direction: column;
35 content: '';
36 position: fixed;
37 top: 0;
38 left: 0;
39 width: 100%;
40 height: 100%;
41 background: radial-gradient(
42 circle at var(--cursor-x, 50%) var(--cursor-y, 50%),
43 rgba(31, 41, 55, 0.8) 0%,
44 rgba(17, 24, 39, 0.95) 70%,
45 #111827 100%
46 );
47 pointer-events: none;
48 z-index: 0;
49}
50
51/* Ensure content is above the cursor effect */
52body > * {
53 position: relative;
54 z-index: 1;
55} 33}
56 34
57body { 35main {
58 font-family: 'Inter', sans-serif; 36 flex: 1;
59 line-height: 1.6; 37 display: flex;
60 color: var(--text); 38 align-items: center;
61 background-color: var(--bg); 39 justify-content: center;
62} 40}
63 41
64.container { 42.container {
@@ -69,14 +47,12 @@ body {
69 47
70/* Header */ 48/* Header */
71header { 49header {
72 background: rgba(17, 24, 39, 0.8); 50 background: var(--bg-secondary);
73 backdrop-filter: blur(8px);
74 box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
75 position: fixed; 51 position: fixed;
76 width: 100%; 52 width: 100%;
77 top: 0; 53 top: 0;
78 z-index: 100; 54 z-index: 1000;
79 padding: 1.5rem 0; 55 padding: 1rem 0;
80 border-bottom: 1px solid var(--border); 56 border-bottom: 1px solid var(--border);
81} 57}
82 58
@@ -89,25 +65,23 @@ nav {
89.logo { 65.logo {
90 font-size: 1.5rem; 66 font-size: 1.5rem;
91 font-weight: 700; 67 font-weight: 700;
92 color: var(--primary); 68 color: var(--text-primary);
93 text-decoration: none; 69 text-decoration: none;
94} 70}
95 71
96.nav-links a { 72.nav-links a {
97 color: var(--text); 73 color: var(--text-primary);
98 text-decoration: none; 74 text-decoration: none;
99 margin-left: 2rem; 75 margin-left: 2rem;
100 font-weight: 500; 76 font-weight: 500;
101 transition: color 0.3s ease;
102} 77}
103 78
104.nav-links a:hover { 79.nav-links a:hover {
105 color: var(--primary); 80 color: var(--accent);
106} 81}
107 82
108/* Hero Section */ 83/* Hero Section */
109.hero { 84.hero {
110 min-height: 100vh;
111 display: flex; 85 display: flex;
112 align-items: center; 86 align-items: center;
113 padding: 8rem 0 4rem; 87 padding: 8rem 0 4rem;
@@ -119,7 +93,7 @@ nav {
119.hero-content { 93.hero-content {
120 display: grid; 94 display: grid;
121 grid-template-columns: 1fr 1fr; 95 grid-template-columns: 1fr 1fr;
122 gap: 4rem; 96 gap: 2rem;
123 align-items: center; 97 align-items: center;
124 width: 100%; 98 width: 100%;
125} 99}
@@ -128,292 +102,76 @@ nav {
128 max-width: 600px; 102 max-width: 600px;
129} 103}
130 104
131.hero-image { 105.hero-img {
132 display: flex; 106 max-width: 100%;
133 justify-content: center;
134 align-items: center;
135}
136
137.hero-image .hero-img {
138 width: 100%;
139 max-width: 300px;
140 height: auto; 107 height: auto;
141 border-radius: 1rem; 108 border-radius: 0.5rem;
142 border: none;
143 box-shadow: none;
144} 109}
145 110
146.greeting { 111.greeting {
147 font-size: 1.25rem; 112 font-size: 1.25rem;
148 color: var(--primary); 113 color: var(--accent);
149 margin-bottom: 1rem; 114 margin-bottom: 1rem;
150} 115}
151 116
152h1 { 117main h1 {
153 font-size: 3rem; 118 font-size: 3rem;
154 font-weight: 800; 119 font-weight: 800;
155 line-height: 1.2; 120 line-height: 1.2;
156 margin-bottom: 1.5rem; 121 margin: 0 0 1.5rem 0;
157 background: linear-gradient(90deg, #60a5fa, #3b82f6); 122 color: var(--text-primary);
158 -webkit-background-clip: text;
159 -webkit-text-fill-color: transparent;
160 background-clip: text;
161 color: transparent;
162}
163
164.tagline {
165 font-size: 1.25rem;
166 color: var(--text-secondary);
167 margin-bottom: 2rem;
168 max-width: 600px;
169}
170
171/* Buttons */
172.btn {
173 display: inline-block;
174 padding: 0.75rem 1.5rem;
175 border-radius: 0.375rem;
176 font-weight: 500;
177 text-decoration: none;
178 transition: all 0.3s ease;
179 margin-right: 1rem;
180}
181
182.btn-primary {
183 background-color: var(--primary);
184 color: white;
185 border: 2px solid var(--primary);
186}
187
188.btn-primary:hover {
189 background-color: var(--primary-hover);
190 border-color: var(--primary-hover);
191}
192
193.btn-outline {
194 background-color: transparent;
195 color: var(--primary);
196 border: 2px solid var(--primary);
197}
198
199.btn-outline:hover {
200 background-color: rgba(59, 130, 246, 0.1);
201 color: var(--primary-hover);
202 border-color: var(--primary-hover);
203}
204
205/* Sections */
206section {
207 padding: 6rem 0;
208 background-color: var(--bg);
209}
210
211.section-title {
212 text-align: center; 123 text-align: center;
213 font-size: 2.25rem;
214 margin-bottom: 3rem;
215} 124}
216 125
217/* About Section */ 126@media (max-width: 768px) {
218.about { 127 main h1 {
219 padding: 6rem 0; 128 font-size: 2.25rem;
220 background: transparent; 129 }
221 position: relative;
222 z-index: 1;
223}
224
225.about-content {
226 display: grid;
227 grid-template-columns: 1fr 1fr;
228 gap: 4rem;
229 align-items: center;
230}
231
232.about-image {
233 display: flex;
234 justify-content: center;
235 align-items: center;
236}
237
238.about-img {
239 max-width: 100%;
240 height: auto;
241 border-radius: 0.5rem;
242 box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
243}
244
245.skills {
246 display: flex;
247 flex-wrap: wrap;
248 gap: 0.75rem;
249 margin-top: 1.5rem;
250}
251
252.skill-tag {
253 background-color: rgba(59, 130, 246, 0.1);
254 color: #60a5fa;
255 padding: 0.375rem 0.75rem;
256 border-radius: 9999px;
257 font-size: 0.875rem;
258 border: 1px solid rgba(59, 130, 246, 0.2);
259}
260
261/* Projects Section */
262.projects {
263 background: transparent;
264 padding: 6rem 0;
265}
266
267.projects-grid {
268 display: grid;
269 grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
270 gap: 2rem;
271 margin-top: 2rem;
272}
273
274.project-card {
275 background: var(--bg-secondary);
276 border-radius: 0.5rem;
277 padding: 1.5rem;
278 transition: transform 0.3s ease, box-shadow 0.3s ease;
279 border: 1px solid var(--border);
280}
281
282.project-card:hover {
283 transform: translateY(-5px);
284 box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.2);
285} 130}
286 131
287.project-title { 132.tagline {
288 font-size: 1.25rem; 133 font-size: 1.25rem;
289 font-weight: 600;
290 color: var(--text);
291 margin-bottom: 0.75rem;
292}
293
294.project-description {
295 color: var(--text-secondary); 134 color: var(--text-secondary);
296 margin-bottom: 1.25rem; 135 margin-bottom: 2rem;
297 line-height: 1.6; 136 max-width: 600px;
298}
299
300.project-links {
301 margin-bottom: 1rem;
302}
303
304.project-tags {
305 display: flex;
306 flex-wrap: wrap;
307 gap: 0.5rem;
308 margin-top: 1rem;
309}
310
311.project-tag {
312 background: rgba(96, 165, 250, 0.1);
313 color: #60a5fa;
314 padding: 0.25rem 0.75rem;
315 border-radius: 9999px;
316 font-size: 0.75rem;
317 font-weight: 500;
318}
319
320/* Contact Section */
321.contact {
322 background-color: var(--bg-secondary);
323 text-align: center;
324 border-radius: 1rem;
325 margin: 2rem auto;
326 max-width: 1400px;
327 box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
328}
329
330.contact-content {
331 max-width: 1400px;
332 margin: 0 auto;
333 text-align: center;
334} 137}
335 138
336.contact-methods {
337 display: flex;
338 flex-wrap: wrap;
339 gap: 15px;
340 justify-content: center;
341 margin: 20px 0;
342 padding: 0 20px;
343}
344 139
345.contact-methods .btn {
346 margin: 5px;
347 flex: 0 0 auto;
348}
349 140
350/* Footer */ 141/* Footer */
351footer { 142footer {
352 text-align: center; 143 text-align: center;
353 padding: 2rem 0; 144 padding: 0.1rem 0;
354 color: var(--text-secondary); 145 color: var(--text-secondary);
355 font-size: 0.875rem; 146 font-size: 0.875rem;
356 background-color: var(--bg-secondary); 147 background-color: var(--bg-footer);
357 border-top: 1px solid var(--border); 148 border-top: 1px solid var(--border);
358} 149}
359 150
360/* Responsive */
361@media (max-width: 1024px) {
362 .hero-content {
363 grid-template-columns: 1fr;
364 gap: 3rem;
365 text-align: center;
366 }
367 151
368 .hero-text {
369 margin: 0 auto;
370 }
371 152
372 .cta-buttons { 153
373 justify-content: center; 154main p {
374 } 155 margin-bottom: 1rem;
156 line-height: 1.6;
375} 157}
376 158
377@media (max-width: 768px) { 159main ul {
378 .nav-links { 160 margin-bottom: 2rem;
379 display: none; 161 padding-left: 2rem;
380 }
381
382 h1 {
383 font-size: 2.25rem;
384 }
385
386 .about-content {
387 grid-template-columns: 1fr;
388 gap: 2rem;
389 text-align: center;
390 }
391
392 .skills {
393 justify-content: center;
394 }
395
396 .about-img {
397 max-width: 80%;
398 margin: 0 auto;
399 }
400} 162}
401 163
402/* Hover Effects */ 164main li {
403.btn-primary:hover { 165 margin-bottom: 0.5rem;
404 transform: translateY(-2px); 166 line-height: 1.6;
405 box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.3), 0 2px 4px -1px rgba(0, 0, 0, 0.2);
406} 167}
407 168
408.btn-outline:hover { 169main a {
409 transform: translateY(-2px); 170 color: #718096;
410 box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.2); 171 text-decoration: underline;
411} 172}
412 173
413/* Image Placeholder */ 174main a:hover {
414.image-placeholder { 175 color: #a0aec0;
415 background-color: var(--bg-tertiary);
416 height: 300px;
417 border-radius: 0.5rem;
418 border: 1px solid var(--border);
419} 176}
177