Add files via upload

This commit is contained in:
Zane V
2025-09-24 15:46:35 -04:00
committed by GitHub
parent 72453d0eab
commit 8c2b3119f0
3 changed files with 66 additions and 7 deletions

View File

@@ -23,7 +23,8 @@
<!-- About Section --> <!-- About Section -->
<div class="about-section"> <div class="about-section">
<p class="about-text">Bored guy who likes to make random stuff.</p> <p class="about-text"> Bored guy who likes to make random stuff.</p>
<p class="not-for-hire-note">(not for hire btw)</p>
</div> </div>
<!-- Navigation Section --> <!-- Navigation Section -->
@@ -34,6 +35,9 @@
<a href="https://github.com/ZaneThePython" class="nav-button" target="_blank"> <a href="https://github.com/ZaneThePython" class="nav-button" target="_blank">
<span>GitHub</span> <span>GitHub</span>
</a> </a>
<a href="mailto:contact@zane.org" class="nav-button">
<span>Contact</span>
</a>
</div> </div>
<!-- Disclaimer --> <!-- Disclaimer -->

View File

@@ -91,6 +91,9 @@ document.addEventListener('DOMContentLoaded', function() {
// Add keyboard interactions // Add keyboard interactions
addKeyboardInteractions(); addKeyboardInteractions();
// Start automatic glitch mode: initial after 0.1s, then 1s every 20s
startAutoGlitch();
}); });
// Show specific content section // Show specific content section
@@ -606,6 +609,30 @@ function activateBrandEasterEgg() {
showNotification('⚡ Glitch Mode Activated!'); showNotification('⚡ Glitch Mode Activated!');
} }
// Auto Glitch Mode
function triggerGlitch(durationMs = 1000) {
const brandName = document.querySelector('.brand-name');
if (!brandName) return;
const originalText = brandName.textContent;
const glitchTexts = ['Z4n3D3v', 'Z@n3D3v', 'ZaneDev', 'ZANE_DEV', 'zanedev'];
let glitchIndex = 0;
const glitchInterval = setInterval(() => {
brandName.textContent = glitchTexts[glitchIndex];
glitchIndex = (glitchIndex + 1) % glitchTexts.length;
}, 100);
setTimeout(() => {
clearInterval(glitchInterval);
brandName.textContent = originalText;
}, durationMs);
}
function startAutoGlitch() {
// Initial trigger after 0.1s
setTimeout(() => triggerGlitch(1000), 100);
// Repeat every 20s
setInterval(() => triggerGlitch(1000), 20000);
}
// Sound Effects // Sound Effects
function addSoundEffects() { function addSoundEffects() {
const buttons = document.querySelectorAll('.nav-button'); const buttons = document.querySelectorAll('.nav-button');

View File

@@ -164,15 +164,29 @@ body::after {
height: 100%; height: 100%;
object-fit: cover; object-fit: cover;
border-radius: 50%; border-radius: 50%;
animation: slowSpin 60s linear infinite; animation: sway 45s ease-in-out infinite, pulseSlow 6s ease-in-out infinite;
} }
@keyframes slowSpin { @keyframes sway {
from { 0% {
transform: rotate(0deg); transform: rotate(-10deg);
} }
to { 50% {
transform: rotate(360deg); transform: rotate(10deg);
}
100% {
transform: rotate(-10deg);
}
}
@keyframes pulseSlow {
0%, 100% {
transform: scale(1);
filter: drop-shadow(0 0 0 rgba(0, 122, 204, 0));
}
50% {
transform: scale(1.05);
filter: drop-shadow(0 0 12px rgba(0, 122, 204, 0.25));
} }
} }
@@ -279,6 +293,20 @@ body::after {
font-weight: 400; font-weight: 400;
} }
.not-for-hire-note {
margin-top: 0.5rem;
font-size: 0.9rem;
color: rgba(128, 128, 128, 0.5);
opacity: 0;
animation: fadeInOpacity 0.3s ease forwards;
animation-delay: 10s;
}
@keyframes fadeInOpacity {
from { opacity: 0; }
to { opacity: 1; }
}
/* Navigation */ /* Navigation */
.navigation { .navigation {