OlegXio commited on
Commit
d255648
·
verified ·
1 Parent(s): 9fe8eb2

Мне нужен сайт-визитка обо мне, я python разработчик. Там должно быть поле Контакты. Ну и вот моё резюме:

Browse files

🐍 Python-разработчик с уклоном в сторону кибербезопасности

🎓 Опыт (Python 5+ лет):
• Backend: FastAPI, SQLAlchemy (работа с СУБД).
• Разработка: Кроссплатформенный фреймворк Qt, Telegram-боты (telebot, он же pytelegrambotapi).
• А также: Работа с Raspberry Pi и платформой Arduino.

👆 Кибербезопасность:
• Криптографические методы и защита информации (использование различных методов шифрования в разработке; использование различных методов для защиты информации, в т. ч. использование спец. ПО)
• Работа с анонимными сетями Tor и I2P
• Частичное администрирование unix-подобных систем.
• OSINT и CSINT разведки

🔧 Волонтёрская деятельность -
• Telegram Support Force (TSF): Применяю навыки кибербезопасности для помощи сообществу (tsf.telegram.org)

❤️Мои проекты в Telegram (активные):
• @XioSoft (Разработка крупного любительского ПО)
• @XioNotesBot (РЕАЛЬНО анонимные заметки/сообщения)
• @useragentfinder_bot (Поиск информации по Telegram ID)
• @this_undefined_shits (щитпост канал, иногда с IT мемами, иногда с новостями из жизни)
• @tsfreborn
• @tg_news_insides (Инсайды обновлений телеграм)

Контакты:
✉️e-mail: sudosudo@i2pmail.org
Получить ссылку для связи: @contact_to_sudo_bot (Telegram)

Files changed (6) hide show
  1. README.md +8 -5
  2. components/footer.js +59 -0
  3. components/navbar.js +74 -0
  4. index.html +237 -19
  5. script.js +56 -0
  6. style.css +35 -18
README.md CHANGED
@@ -1,10 +1,13 @@
1
  ---
2
- title: Python Ninja Security Wizard
3
- emoji: 😻
4
- colorFrom: green
5
- colorTo: gray
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
1
  ---
2
+ title: Python Ninja Security Wizard 🐍🛡️
3
+ colorFrom: purple
4
+ colorTo: red
5
+ emoji: 🐳
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite-v3
10
  ---
11
 
12
+ # Welcome to your new DeepSite project!
13
+ This project was created with [DeepSite](https://huggingface.co/deepsite).
components/footer.js ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class CustomFooter extends HTMLElement {
2
+ connectedCallback() {
3
+ this.attachShadow({ mode: 'open' });
4
+ this.shadowRoot.innerHTML = `
5
+ <style>
6
+ footer {
7
+ background: rgba(17, 24, 39, 0.8);
8
+ backdrop-filter: blur(10px);
9
+ color: white;
10
+ padding: 2rem;
11
+ text-align: center;
12
+ border-top: 1px solid rgba(255, 255, 255, 0.1);
13
+ }
14
+ .footer-content {
15
+ max-width: 1200px;
16
+ margin: 0 auto;
17
+ display: flex;
18
+ flex-direction: column;
19
+ align-items: center;
20
+ }
21
+ .social-links {
22
+ display: flex;
23
+ gap: 1.5rem;
24
+ margin-bottom: 1.5rem;
25
+ }
26
+ .social-links a {
27
+ color: rgba(255, 255, 255, 0.7);
28
+ transition: color 0.2s;
29
+ }
30
+ .social-links a:hover {
31
+ color: #3a86ff;
32
+ }
33
+ p {
34
+ margin: 0;
35
+ color: rgba(255, 255, 255, 0.6);
36
+ font-size: 0.9rem;
37
+ }
38
+ </style>
39
+ <footer>
40
+ <div class="footer-content">
41
+ <div class="social-links">
42
+ <a href="https://t.me/XioSoft" target="_blank" aria-label="Telegram">
43
+ <i data-feather="send"></i>
44
+ </a>
45
+ <a href="mailto:sudosudo@i2pmail.org" aria-label="Email">
46
+ <i data-feather="mail"></i>
47
+ </a>
48
+ <a href="https://github.com" target="_blank" aria-label="GitHub">
49
+ <i data-feather="github"></i>
50
+ </a>
51
+ </div>
52
+ <p>&copy; ${new Date().getFullYear()} Python Security Wizard. All digital rights reserved.</p>
53
+ <p>Secured with ❤️ and cryptography</p>
54
+ </div>
55
+ </footer>
56
+ `;
57
+ }
58
+ }
59
+ customElements.define('custom-footer', CustomFooter);
components/navbar.js ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class CustomNavbar extends HTMLElement {
2
+ connectedCallback() {
3
+ this.attachShadow({ mode: 'open' });
4
+ this.shadowRoot.innerHTML = `
5
+ <style>
6
+ nav {
7
+ background: rgba(26, 32, 44, 0.8);
8
+ backdrop-filter: blur(10px);
9
+ padding: 1rem 2rem;
10
+ display: flex;
11
+ justify-content: space-between;
12
+ align-items: center;
13
+ position: fixed;
14
+ top: 0;
15
+ left: 0;
16
+ right: 0;
17
+ z-index: 1000;
18
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1);
19
+ }
20
+ .logo {
21
+ font-family: 'JetBrains Mono', monospace;
22
+ color: white;
23
+ font-weight: bold;
24
+ font-size: 1.25rem;
25
+ background: linear-gradient(135deg, #3a86ff 0%, #8338ec 100%);
26
+ -webkit-background-clip: text;
27
+ background-clip: text;
28
+ -webkit-text-fill-color: transparent;
29
+ }
30
+ ul {
31
+ display: flex;
32
+ gap: 1.5rem;
33
+ list-style: none;
34
+ margin: 0;
35
+ padding: 0;
36
+ align-items: center;
37
+ }
38
+ a {
39
+ color: rgba(255, 255, 255, 0.8);
40
+ text-decoration: none;
41
+ transition: color 0.2s;
42
+ font-weight: 500;
43
+ display: flex;
44
+ align-items: center;
45
+ }
46
+ a:hover {
47
+ color: #3a86ff;
48
+ }
49
+ .nav-link i {
50
+ margin-right: 0.5rem;
51
+ }
52
+ @media (max-width: 768px) {
53
+ nav {
54
+ flex-direction: column;
55
+ padding: 1rem;
56
+ }
57
+ ul {
58
+ margin-top: 1rem;
59
+ }
60
+ }
61
+ </style>
62
+ <nav>
63
+ <div class="logo">Python Security Wizard</div>
64
+ <ul>
65
+ <li><a href="#hero" class="nav-link"><i data-feather="home"></i> Home</a></li>
66
+ <li><a href="#about" class="nav-link"><i data-feather="user"></i> About</a></li>
67
+ <li><a href="#projects" class="nav-link"><i data-feather="code"></i> Projects</a></li>
68
+ <li><a href="#contact" class="nav-link"><i data-feather="mail"></i> Contact</a></li>
69
+ </ul>
70
+ </nav>
71
+ `;
72
+ }
73
+ }
74
+ customElements.define('custom-navbar', CustomNavbar);
index.html CHANGED
@@ -1,19 +1,237 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Python Security Developer</title>
7
+ <link rel="stylesheet" href="style.css">
8
+ <script src="https://cdn.tailwindcss.com"></script>
9
+ <script src="https://unpkg.com/feather-icons"></script>
10
+ <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
11
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
12
+ <script src="https://cdn.jsdelivr.net/npm/vanta@latest/dist/vanta.globe.min.js"></script>
13
+ </head>
14
+ <body class="bg-gray-900 text-gray-100 min-h-screen flex flex-col">
15
+ <custom-navbar></custom-navbar>
16
+
17
+ <main class="flex-grow container mx-auto px-4 py-12">
18
+ <div class="max-w-4xl mx-auto">
19
+ <!-- Hero Section -->
20
+ <section id="hero" class="mb-20">
21
+ <div class="text-center">
22
+ <h1 class="text-5xl md:text-7xl font-bold mb-6 bg-clip-text text-transparent bg-gradient-to-r from-green-400 to-blue-500">
23
+ Python Security Wizard
24
+ </h1>
25
+ <p class="text-xl md:text-2xl text-gray-300 mb-8 max-w-2xl mx-auto">
26
+ Developing secure solutions with Python and protecting digital frontiers
27
+ </p>
28
+ <div class="flex justify-center space-x-4">
29
+ <a href="#contact" class="px-6 py-3 bg-gradient-to-r from-green-500 to-blue-600 rounded-lg font-medium hover:opacity-90 transition">
30
+ Contact Me
31
+ </a>
32
+ <a href="#projects" class="px-6 py-3 border border-blue-500 rounded-lg font-medium hover:bg-blue-500/10 transition">
33
+ My Projects
34
+ </a>
35
+ </div>
36
+ </div>
37
+ </section>
38
+
39
+ <!-- About Section -->
40
+ <section id="about" class="mb-20">
41
+ <h2 class="text-3xl font-bold mb-8 flex items-center">
42
+ <i data-feather="user" class="mr-3"></i> About Me
43
+ </h2>
44
+ <div class="bg-gray-800/50 backdrop-blur-sm rounded-xl p-6 shadow-lg border border-gray-700">
45
+ <p class="text-lg mb-4">
46
+ 🐍 Python developer with 5+ years of experience specializing in cybersecurity and backend development.
47
+ </p>
48
+ <div class="grid md:grid-cols-2 gap-6">
49
+ <div class="space-y-4">
50
+ <h3 class="text-xl font-semibold text-blue-400">Development Expertise</h3>
51
+ <ul class="space-y-2">
52
+ <li class="flex items-start">
53
+ <i data-feather="check" class="mr-2 text-green-400 mt-1"></i>
54
+ <span>Backend: FastAPI, SQLAlchemy (DBMS)</span>
55
+ </li>
56
+ <li class="flex items-start">
57
+ <i data-feather="check" class="mr-2 text-green-400 mt-1"></i>
58
+ <span>Cross-platform Qt framework</span>
59
+ </li>
60
+ <li class="flex items-start">
61
+ <i data-feather="check" class="mr-2 text-green-400 mt-1"></i>
62
+ <span>Telegram bots (telebot/pytelegrambotapi)</span>
63
+ </li>
64
+ <li class="flex items-start">
65
+ <i data-feather="check" class="mr-2 text-green-400 mt-1"></i>
66
+ <span>Raspberry Pi & Arduino platform</span>
67
+ </li>
68
+ </ul>
69
+ </div>
70
+ <div class="space-y-4">
71
+ <h3 class="text-xl font-semibold text-red-400">Cybersecurity</h3>
72
+ <ul class="space-y-2">
73
+ <li class="flex items-start">
74
+ <i data-feather="shield" class="mr-2 text-green-400 mt-1"></i>
75
+ <span>Cryptographic methods & information protection</span>
76
+ </li>
77
+ <li class="flex items-start">
78
+ <i data-feather="shield" class="mr-2 text-green-400 mt-1"></i>
79
+ <span>Tor & I2P anonymous networks</span>
80
+ </li>
81
+ <li class="flex items-start">
82
+ <i data-feather="shield" class="mr-2 text-green-400 mt-1"></i>
83
+ <span>Unix-like systems administration</span>
84
+ </li>
85
+ <li class="flex items-start">
86
+ <i data-feather="shield" class="mr-2 text-green-400 mt-1"></i>
87
+ <span>OSINT & CSINT intelligence</span>
88
+ </li>
89
+ </ul>
90
+ </div>
91
+ </div>
92
+ </div>
93
+ </section>
94
+
95
+ <!-- Projects Section -->
96
+ <section id="projects" class="mb-20">
97
+ <h2 class="text-3xl font-bold mb-8 flex items-center">
98
+ <i data-feather="code" class="mr-3"></i> Active Projects
99
+ </h2>
100
+ <div class="grid md:grid-cols-2 gap-6">
101
+ <div class="bg-gray-800/50 backdrop-blur-sm rounded-xl p-6 shadow-lg border border-gray-700 hover:border-blue-500 transition">
102
+ <h3 class="text-xl font-semibold mb-3 text-blue-400">@XioSoft</h3>
103
+ <p class="text-gray-300 mb-4">Development of large-scale amateur software</p>
104
+ <a href="https://t.me/XioSoft" target="_blank" class="text-blue-400 hover:underline flex items-center">
105
+ <i data-feather="external-link" class="mr-1"></i> Visit Channel
106
+ </a>
107
+ </div>
108
+ <div class="bg-gray-800/50 backdrop-blur-sm rounded-xl p-6 shadow-lg border border-gray-700 hover:border-green-500 transition">
109
+ <h3 class="text-xl font-semibold mb-3 text-green-400">@XioNotesBot</h3>
110
+ <p class="text-gray-300 mb-4">REALLY anonymous notes/messages</p>
111
+ <a href="https://t.me/XioNotesBot" target="_blank" class="text-green-400 hover:underline flex items-center">
112
+ <i data-feather="external-link" class="mr-1"></i> Try Bot
113
+ </a>
114
+ </div>
115
+ <div class="bg-gray-800/50 backdrop-blur-sm rounded-xl p-6 shadow-lg border border-gray-700 hover:border-purple-500 transition">
116
+ <h3 class="text-xl font-semibold mb-3 text-purple-400">@useragentfinder_bot</h3>
117
+ <p class="text-gray-300 mb-4">Find information by Telegram ID</p>
118
+ <a href="https://t.me/useragentfinder_bot" target="_blank" class="text-purple-400 hover:underline flex items-center">
119
+ <i data-feather="external-link" class="mr-1"></i> Try Bot
120
+ </a>
121
+ </div>
122
+ <div class="bg-gray-800/50 backdrop-blur-sm rounded-xl p-6 shadow-lg border border-gray-700 hover:border-yellow-500 transition">
123
+ <h3 class="text-xl font-semibold mb-3 text-yellow-400">@this_undefined_shits</h3>
124
+ <p class="text-gray-300 mb-4">Shitpost channel with IT memes and life updates</p>
125
+ <a href="https://t.me/this_undefined_shits" target="_blank" class="text-yellow-400 hover:underline flex items-center">
126
+ <i data-feather="external-link" class="mr-1"></i> Visit Channel
127
+ </a>
128
+ </div>
129
+ </div>
130
+ </section>
131
+
132
+ <!-- Volunteer Section -->
133
+ <section id="volunteer" class="mb-20">
134
+ <h2 class="text-3xl font-bold mb-8 flex items-center">
135
+ <i data-feather="heart" class="mr-3"></i> Volunteer Work
136
+ </h2>
137
+ <div class="bg-gray-800/50 backdrop-blur-sm rounded-xl p-6 shadow-lg border border-gray-700">
138
+ <h3 class="text-2xl font-semibold mb-4 text-red-400">Telegram Support Force (TSF)</h3>
139
+ <p class="text-lg mb-4">
140
+ Applying cybersecurity skills to help the community at <a href="https://tsf.telegram.org" target="_blank" class="text-blue-400 hover:underline">tsf.telegram.org</a>
141
+ </p>
142
+ <div class="grid md:grid-cols-2 gap-6 mt-6">
143
+ <div>
144
+ <h4 class="text-xl font-semibold mb-3 text-red-400">@tsfreborn</h4>
145
+ <a href="https://t.me/tsfreborn" target="_blank" class="text-red-400 hover:underline flex items-center">
146
+ <i data-feather="external-link" class="mr-1"></i> Visit Channel
147
+ </a>
148
+ </div>
149
+ <div>
150
+ <h4 class="text-xl font-semibold mb-3 text-blue-400">@tg_news_insides</h4>
151
+ <p class="text-gray-300 mb-2">Telegram update insides</p>
152
+ <a href="https://t.me/tg_news_insides" target="_blank" class="text-blue-400 hover:underline flex items-center">
153
+ <i data-feather="external-link" class="mr-1"></i> Visit Channel
154
+ </a>
155
+ </div>
156
+ </div>
157
+ </div>
158
+ </section>
159
+
160
+ <!-- Contact Section -->
161
+ <section id="contact" class="mb-20">
162
+ <h2 class="text-3xl font-bold mb-8 flex items-center">
163
+ <i data-feather="mail" class="mr-3"></i> Contact Me
164
+ </h2>
165
+ <div class="bg-gray-800/50 backdrop-blur-sm rounded-xl p-6 shadow-lg border border-gray-700">
166
+ <div class="grid md:grid-cols-2 gap-8">
167
+ <div>
168
+ <h3 class="text-xl font-semibold mb-4 text-blue-400">Secure Communication</h3>
169
+ <div class="space-y-4">
170
+ <div class="flex items-start">
171
+ <i data-feather="mail" class="mr-3 text-green-400 mt-1"></i>
172
+ <div>
173
+ <p class="font-medium">Email (I2P):</p>
174
+ <p class="text-gray-300">sudosudo@i2pmail.org</p>
175
+ </div>
176
+ </div>
177
+ <div class="flex items-start">
178
+ <i data-feather="send" class="mr-3 text-blue-400 mt-1"></i>
179
+ <div>
180
+ <p class="font-medium">Telegram Contact Bot:</p>
181
+ <a href="https://t.me/contact_to_sudo_bot" target="_blank" class="text-blue-400 hover:underline">
182
+ @contact_to_sudo_bot
183
+ </a>
184
+ </div>
185
+ </div>
186
+ </div>
187
+ </div>
188
+ <div>
189
+ <h3 class="text-xl font-semibold mb-4 text-purple-400">Direct Message</h3>
190
+ <form class="space-y-4">
191
+ <div>
192
+ <label for="name" class="block mb-1">Your Name</label>
193
+ <input type="text" id="name" class="w-full bg-gray-700 border border-gray-600 rounded-lg px-4 py-2 focus:outline-none focus:ring-2 focus:ring-blue-500">
194
+ </div>
195
+ <div>
196
+ <label for="email" class="block mb-1">Your Email</label>
197
+ <input type="email" id="email" class="w-full bg-gray-700 border border-gray-600 rounded-lg px-4 py-2 focus:outline-none focus:ring-2 focus:ring-blue-500">
198
+ </div>
199
+ <div>
200
+ <label for="message" class="block mb-1">Message</label>
201
+ <textarea id="message" rows="4" class="w-full bg-gray-700 border border-gray-600 rounded-lg px-4 py-2 focus:outline-none focus:ring-2 focus:ring-blue-500"></textarea>
202
+ </div>
203
+ <button type="submit" class="px-6 py-2 bg-gradient-to-r from-blue-500 to-purple-600 rounded-lg font-medium hover:opacity-90 transition">
204
+ Send Securely
205
+ </button>
206
+ </form>
207
+ </div>
208
+ </div>
209
+ </div>
210
+ </section>
211
+ </div>
212
+ </main>
213
+
214
+ <custom-footer></custom-footer>
215
+
216
+ <script src="components/navbar.js"></script>
217
+ <script src="components/footer.js"></script>
218
+ <script src="script.js"></script>
219
+ <script>
220
+ feather.replace();
221
+ VANTA.GLOBE({
222
+ el: "body",
223
+ mouseControls: true,
224
+ touchControls: true,
225
+ gyroControls: false,
226
+ minHeight: 200.00,
227
+ minWidth: 200.00,
228
+ scale: 1.00,
229
+ scaleMobile: 1.00,
230
+ color: 0x3a86ff,
231
+ backgroundColor: 0x111827,
232
+ size: 0.8
233
+ });
234
+ </script>
235
+ <script src="https://huggingface.co/deepsite/deepsite-badge.js"></script>
236
+ </body>
237
+ </html>
script.js ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Intersection Observer for section animations
2
+ document.addEventListener('DOMContentLoaded', () => {
3
+ const sections = document.querySelectorAll('section');
4
+
5
+ const observer = new IntersersectionObserver((entries) => {
6
+ entries.forEach(entry => {
7
+ if (entry.isIntersecting) {
8
+ entry.target.classList.add('visible');
9
+ }
10
+ });
11
+ }, {
12
+ threshold: 0.1,
13
+ rootMargin: '0px 0px -50px 0px'
14
+ });
15
+
16
+ sections.forEach(section => {
17
+ observer.observe(section);
18
+ });
19
+
20
+ // Smooth scroll for anchor links
21
+ document.querySelectorAll('a[href^="#"]').forEach(anchor => {
22
+ anchor.addEventListener('click', function (e) {
23
+ e.preventDefault();
24
+
25
+ const targetId = this.getAttribute('href');
26
+ if (targetId === '#') return;
27
+
28
+ const targetElement = document.querySelector(targetId);
29
+ if (targetElement) {
30
+ targetElement.scrollIntoView({
31
+ behavior: 'smooth',
32
+ block: 'start'
33
+ });
34
+ }
35
+ });
36
+ });
37
+ });
38
+
39
+ // Form handling
40
+ document.querySelector('form')?.addEventListener('submit', (e) => {
41
+ e.preventDefault();
42
+
43
+ const name = document.getElementById('name').value;
44
+ const email = document.getElementById('email').value;
45
+ const message = document.getElementById('message').value;
46
+
47
+ if (!name || !email || !message) {
48
+ alert('Please fill all fields');
49
+ return;
50
+ }
51
+
52
+ // Here you would normally send the form data to a server
53
+ console.log('Form submitted:', { name, email, message });
54
+ alert('Message sent securely! I will contact you soon.');
55
+ e.target.reset();
56
+ });
style.css CHANGED
@@ -1,28 +1,45 @@
 
 
 
1
  body {
2
- padding: 2rem;
3
- font-family: -apple-system, BlinkMacSystemFont, "Arial", sans-serif;
 
 
 
 
 
 
 
 
 
 
 
 
4
  }
5
 
6
- h1 {
7
- font-size: 16px;
8
- margin-top: 0;
9
  }
10
 
11
- p {
12
- color: rgb(107, 114, 128);
13
- font-size: 15px;
14
- margin-bottom: 10px;
15
- margin-top: 5px;
16
  }
17
 
18
- .card {
19
- max-width: 620px;
20
- margin: 0 auto;
21
- padding: 16px;
22
- border: 1px solid lightgray;
23
- border-radius: 16px;
24
  }
25
 
26
- .card p:last-child {
27
- margin-bottom: 0;
 
 
 
28
  }
 
 
 
 
 
 
1
+ /* Custom styles */
2
+ @import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&family=Inter:wght@400;500;700&display=swap');
3
+
4
  body {
5
+ font-family: 'Inter', sans-serif;
6
+ }
7
+
8
+ code, pre {
9
+ font-family: 'JetBrains Mono', monospace;
10
+ }
11
+
12
+ /* Custom scrollbar */
13
+ ::-webkit-scrollbar {
14
+ width: 8px;
15
+ }
16
+
17
+ ::-webkit-scrollbar-track {
18
+ background: #1a202c;
19
  }
20
 
21
+ ::-webkit-scrollbar-thumb {
22
+ background: #3a86ff;
23
+ border-radius: 4px;
24
  }
25
 
26
+ ::-webkit-scrollbar-thumb:hover {
27
+ background: #2563eb;
 
 
 
28
  }
29
 
30
+ /* Smooth scrolling */
31
+ html {
32
+ scroll-behavior: smooth;
 
 
 
33
  }
34
 
35
+ /* Animation for sections */
36
+ section {
37
+ opacity: 0;
38
+ transform: translateY(20px);
39
+ transition: opacity 0.6s ease-out, transform 0.6s ease-out;
40
  }
41
+
42
+ section.visible {
43
+ opacity: 1;
44
+ transform: translateY(0);
45
+ }