-
- 🍋
- lemonlink.eu
-
-
-
+
diff --git a/script.js b/script.js
index 8330d8d..cad4cb1 100644
--- a/script.js
+++ b/script.js
@@ -363,8 +363,6 @@ function initLimitedTerminalTyping() {
];
let currentCommand = 0;
- let cycleCount = 0;
- const maxCycles = 3;
let isTyping = false;
const typeCommand = () => {
@@ -416,13 +414,7 @@ function initLimitedTerminalTyping() {
terminal.scrollTop = terminal.scrollHeight;
isTyping = false;
- currentCommand++;
-
- // Count completed cycles
- if (currentCommand >= commands.length) {
- currentCommand = 0;
- cycleCount++;
- }
+ currentCommand = (currentCommand + 1) % commands.length;
}, 500);
}
};
@@ -430,18 +422,19 @@ function initLimitedTerminalTyping() {
typeChar();
};
- // Start typing effect every 5 seconds - loops forever, clears after 3 cycles
- setInterval(() => {
- // Reset terminal after 3 cycles
- if (cycleCount >= maxCycles) {
- // Clear all dynamic content
- const dynamicContent = terminal.querySelectorAll('.terminal-line:nth-child(n+4), .terminal-output');
- dynamicContent.forEach(el => el.remove());
- currentCommand = 0;
- cycleCount = 0;
+ // Start typing effect - only run 3 commands total, then stop
+ let commandsTyped = 0;
+ const maxCommands = 3;
+
+ const intervalId = setInterval(() => {
+ if (commandsTyped >= maxCommands) {
+ clearInterval(intervalId);
+ // Just keep the cursor blinking on last line
+ return;
}
typeCommand();
- }, 5000);
+ commandsTyped++;
+ }, 4000);
}
/**
diff --git a/styles.css b/styles.css
index f7e5228..e1a421e 100644
--- a/styles.css
+++ b/styles.css
@@ -1709,13 +1709,23 @@ body {
.category-title {
font-family: 'Space Grotesk', sans-serif;
- font-size: 1.25rem;
+ font-size: 1.1rem;
font-weight: 600;
- color: var(--color-text);
+ color: var(--color-text-muted);
margin-bottom: 1.5rem;
display: flex;
align-items: center;
- gap: 0.75rem;
+ gap: 0.5rem;
+ text-transform: uppercase;
+ letter-spacing: 1px;
+}
+
+.category-title .category-icon {
+ font-size: 1.2rem;
+}
+
+.category-title-text {
+ color: var(--color-text);
}
.category-icon {
@@ -1766,3 +1776,78 @@ body {
width: 20px;
height: 20px;
}
+
+
+/* ========================================
+ Skills Section
+ ======================================== */
+.skills-section {
+ background: linear-gradient(180deg, transparent 0%, rgba(99, 102, 241, 0.05) 50%, transparent 100%);
+}
+
+.skills-grid {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ gap: 1.5rem;
+}
+
+.skill-category {
+ background: var(--color-bg-card);
+ backdrop-filter: blur(20px);
+ border: 1px solid var(--color-border);
+ border-radius: var(--radius-lg);
+ padding: 1.5rem;
+ transition: var(--transition-normal);
+}
+
+.skill-category:hover {
+ transform: translateY(-3px);
+ border-color: rgba(234, 179, 8, 0.3);
+ box-shadow: var(--shadow-card);
+}
+
+.skill-cat-title {
+ font-family: 'Space Grotesk', sans-serif;
+ font-size: 0.9rem;
+ font-weight: 600;
+ color: var(--color-text-muted);
+ text-transform: uppercase;
+ letter-spacing: 1px;
+ margin-bottom: 1rem;
+ padding-bottom: 0.5rem;
+ border-bottom: 1px solid var(--color-border);
+}
+
+.skill-tags {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 0.5rem;
+}
+
+.skill-tag {
+ padding: 0.4rem 0.8rem;
+ background: rgba(255, 255, 255, 0.05);
+ border: 1px solid var(--color-border);
+ border-radius: 100px;
+ font-size: 0.85rem;
+ color: var(--color-text);
+ transition: var(--transition-fast);
+}
+
+.skill-tag:hover {
+ background: rgba(234, 179, 8, 0.1);
+ border-color: rgba(234, 179, 8, 0.3);
+ color: var(--color-primary);
+}
+
+@media (max-width: 1024px) {
+ .skills-grid {
+ grid-template-columns: repeat(2, 1fr);
+ }
+}
+
+@media (max-width: 768px) {
+ .skills-grid {
+ grid-template-columns: 1fr;
+ }
+}