Auto-backup: 2026-03-26 23:00
This commit is contained in:
parent
373ca27bc5
commit
1a07f1feb0
12 changed files with 597 additions and 23 deletions
16
deploy.sh
Normal file
16
deploy.sh
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/bash
|
||||
echo ">> INITIATING SLIPSPACE DEPLOYMENT TO WEBSPACE..."
|
||||
|
||||
expect -c '
|
||||
set timeout -1
|
||||
spawn rsync -avz --exclude=".git" --exclude="node_modules" -e "ssh -o StrictHostKeyChecking=accept-new" /Users/sascha/wp-ki-labor/html/wp-content/themes/ki-labor/ su72785@access-5019642512.webspace-host.com:~/public/wp-content/themes/ki-labor/
|
||||
expect {
|
||||
"*?assword:*" {
|
||||
send "Jessilein@74\r"
|
||||
exp_continue
|
||||
}
|
||||
eof
|
||||
}
|
||||
'
|
||||
|
||||
echo ">> DEPLOYMENT COMPLETE. SYSTEM IN SYNC."
|
||||
81
flux.sh
Executable file
81
flux.sh
Executable file
|
|
@ -0,0 +1,81 @@
|
|||
#!/bin/bash
|
||||
|
||||
# ==========================================
|
||||
# FLUX CORE ENGINE - COMMAND LINE INTERFACE
|
||||
# ==========================================
|
||||
|
||||
# ANSI Colors
|
||||
GREEN='\033[0;32m'
|
||||
GOLD='\033[0;33m'
|
||||
RED='\033[0;31m'
|
||||
CYAN='\033[0;36m'
|
||||
NC='\033[0m'
|
||||
|
||||
# Check if deploy.sh exists
|
||||
if [ ! -f "deploy.sh" ]; then
|
||||
echo -e "${RED}FEHLER: deploy.sh nicht gefunden!${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
case "$1" in
|
||||
watch)
|
||||
clear
|
||||
echo -e "${CYAN}["$(date +'%H:%M:%S')"]${NC} ${GOLD}>> INITIATING SLIPSPACE AUTO-SYNC DAEMON...${NC}"
|
||||
say -v Anna "Auto-Deployment aktiviert. Überwache Sektoren auf Veränderungen."
|
||||
|
||||
LAST_HASH=""
|
||||
|
||||
# Loop to watch for file modifications
|
||||
while true; do
|
||||
# Generate a hash of all file modification timestamps in the theme folder
|
||||
CURRENT_HASH=$(find html/wp-content/themes/ki-labor -type f -print0 | xargs -0 stat -f "%m" | md5)
|
||||
|
||||
# If last hash is set and differs from current, a file was modified
|
||||
if [ "$LAST_HASH" != "" ] && [ "$CURRENT_HASH" != "$LAST_HASH" ]; then
|
||||
echo -e "\n${CYAN}["$(date +'%H:%M:%S')"]${NC} ${RED}>> SYSTEM ANOMALY DETECTED (FILE MODIFIED). COMPILING FLUX...${NC}"
|
||||
say -v Anna "Theme-Quellcode verändert. Slipspace-Tunnel wird geöffnet."
|
||||
|
||||
# Execute slipspace deployment
|
||||
./deploy.sh
|
||||
|
||||
echo -e "${CYAN}["$(date +'%H:%M:%S')"]${NC} ${GREEN}>> WEBSPACE IN SYNC. WAITING FOR NEXT ANOMALY...${NC}"
|
||||
say -v Anna "Synchronisation erfolgreich."
|
||||
fi
|
||||
|
||||
LAST_HASH=$CURRENT_HASH
|
||||
sleep 2
|
||||
done
|
||||
;;
|
||||
|
||||
glitch)
|
||||
clear
|
||||
echo -e "${GREEN}>> INITIATING MATRIX LOG DECRYPTION...${NC}"
|
||||
say -v Anna "Matrix-Datenstrom wird eingeleitet."
|
||||
# Generate random hex strings mimicking a deep-level hack, cascading down
|
||||
for i in {1..20}; do
|
||||
head -c 100 /dev/urandom | xxd -p | tr -d '\n' | awk '{print "\033[0;32m" $0 "\033[0m"}'
|
||||
sleep 0.05
|
||||
echo ""
|
||||
done
|
||||
echo -e "\n${RED}>> SYSTEM BREACH SUCCESSFUL. IDENTITY: SASCHA RODE.${NC}"
|
||||
say -v Anna "Zugriff gewährt, Overlord."
|
||||
;;
|
||||
|
||||
status)
|
||||
echo -e "\n${GOLD}[ FLUX CORE STATUS ]${NC}"
|
||||
echo -e "${CYAN}🧠 NPU USAGE:${NC} OVERCLOCKED (GLOWING RED)"
|
||||
echo -e "${CYAN}🔋 NEURAL LINK:${NC} ACTIVE (0ms LATENCY)"
|
||||
echo -e "${CYAN}📂 THEME STATUS:${NC} MINIMAL & FLAWLESS"
|
||||
echo -e "${CYAN}🚀 SLIPSPACE:${NC} ONLINE & PENDING COMMAND\n"
|
||||
;;
|
||||
|
||||
*)
|
||||
echo -e "${GOLD}FLUX CORE CLI v1.0${NC}\n"
|
||||
echo -e "Usage: ${GREEN}./flux.sh${NC} [command]\n"
|
||||
echo "Commands:"
|
||||
echo -e " ${CYAN}watch${NC} : Starts the Auto-Deploy Daemon (watches your code and deploys on save)"
|
||||
echo -e " ${CYAN}glitch${NC} : Triggers a terminal Matrix effect (pure visual anarchy)"
|
||||
echo -e " ${CYAN}status${NC} : Reads NPU and Neural Link state"
|
||||
echo ""
|
||||
;;
|
||||
esac
|
||||
BIN
html/wp-content/themes/ki-labor/assets/img/grid.png
Normal file
BIN
html/wp-content/themes/ki-labor/assets/img/grid.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 86 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.2 MiB |
BIN
html/wp-content/themes/ki-labor/assets/img/steampunk_bg.png
Normal file
BIN
html/wp-content/themes/ki-labor/assets/img/steampunk_bg.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 74 KiB |
|
|
@ -1,7 +1,13 @@
|
|||
<?php
|
||||
function ki_labor_scripts() {
|
||||
wp_enqueue_style('ki-labor-style', get_stylesheet_uri());
|
||||
$version = time();
|
||||
wp_enqueue_style('ki-labor-style', get_stylesheet_uri(), array(), $version);
|
||||
wp_enqueue_script('ki-labor-script', get_template_directory_uri() . '/script.js', array(), '1.0', true);
|
||||
|
||||
// Pass theme URL to script.js
|
||||
wp_localize_script('ki-labor-script', 'php_vars', array(
|
||||
'theme_url' => get_template_directory_uri()
|
||||
));
|
||||
}
|
||||
add_action('wp_enqueue_scripts', 'ki_labor_scripts');
|
||||
|
||||
|
|
@ -107,6 +113,8 @@ function ki_labor_init_content() {
|
|||
)
|
||||
);
|
||||
|
||||
$version = 'v5'; // Bump to trigger re-insert if needed
|
||||
if (!get_option('ki_labor_content_gen_' . $version)) {
|
||||
foreach ($projects as $project) {
|
||||
$existing_post = get_page_by_title($project['title'], OBJECT, 'post');
|
||||
$post_data = array(
|
||||
|
|
@ -129,6 +137,8 @@ function ki_labor_init_content() {
|
|||
update_post_meta($post_id, 'status_label', $project['label']);
|
||||
update_post_meta($post_id, 'project_thumb', $project['thumb']);
|
||||
}
|
||||
update_option('ki_labor_content_gen_' . $version, true);
|
||||
}
|
||||
}
|
||||
add_action('init', 'ki_labor_init_content');
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,10 @@
|
|||
<?php wp_head(); ?>
|
||||
</head>
|
||||
<body <?php body_class(); ?>>
|
||||
<!-- ANTIGRAVITY PARALLAX LAYERS -->
|
||||
<div class="ag-parallax-layer" data-speed="0.1" style="position:fixed; top:0; left:0; width:100%; height:100%; z-index:-1; background: radial-gradient(circle, rgba(0,255,65,0.05) 0%, transparent 70%); pointer-events:none;"></div>
|
||||
<div class="ag-parallax-layer" data-speed="0.3" style="position:fixed; top:0; left:0; width:100%; height:100%; z-index:-2; background: url('<?php echo get_template_directory_uri(); ?>/assets/img/grid.png'); opacity:0.1; pointer-events:none;"></div>
|
||||
|
||||
<div id="boot-screen">
|
||||
<div id="boot-log"></div>
|
||||
</div>
|
||||
|
|
@ -53,12 +57,16 @@
|
|||
<button class="filter-btn" data-filter="stable">STABIL</button>
|
||||
<button class="filter-btn" data-filter="corrupted">KRITISCH</button>
|
||||
<button class="filter-btn" data-filter="experimental">EXPERIMENTELL</button>
|
||||
<button class="steampunk-card filter-btn" style="color: var(--accent-gold); border-color: var(--accent-gold); padding: 2px 8px; background: transparent; cursor: pointer; display: flex; align-items: center;"><h3 style="margin: 0; font-size: 0.7rem;">MUTTER (TIMELINE)</h3></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="portfolio-grid" id="main-grid">
|
||||
|
||||
<?php if ( have_posts() ) : while ( have_posts() ) : the_post();
|
||||
<?php
|
||||
$args = array('post_type' => 'post', 'posts_per_page' => -1, 'orderby' => 'date', 'order' => 'ASC');
|
||||
$custom_query = new WP_Query($args);
|
||||
if ( $custom_query->have_posts() ) : while ( $custom_query->have_posts() ) : $custom_query->the_post();
|
||||
$status = get_post_meta(get_the_ID(), 'status_class', true) ?: 'stable';
|
||||
$thumb = get_post_meta(get_the_ID(), 'project_thumb', true);
|
||||
?>
|
||||
|
|
@ -78,11 +86,19 @@
|
|||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<?php endwhile; endif; ?>
|
||||
<?php endwhile; wp_reset_postdata(); endif; ?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- TIMELINE MODAL OVERLAY -->
|
||||
<div id="timeline-modal" class="timeline-hidden">
|
||||
<button id="close-timeline">[X] CLOSE</button>
|
||||
<h2 id="timeline-title" style="text-align: center; color: var(--accent-orange); margin-top: 20px;">HISTORISCHES ARCHIV</h2>
|
||||
<div id="timeline-track" class="timeline-track"></div>
|
||||
</div>
|
||||
|
||||
<div class="content-box" style="margin-top: 20px; border-left-color: var(--accent-gold);">
|
||||
<h2>STATUS: GEISTESKRANK & GEMINI PLAYER</h2>
|
||||
<p>Aktueller Fokus: Systematische Überlastung von WordPress-Strukturen und ästhetische Kriegsführung.</p>
|
||||
|
|
|
|||
|
|
@ -215,7 +215,11 @@
|
|||
}
|
||||
});
|
||||
|
||||
function executeCommand(cmd) {
|
||||
function executeCommand(fullCmd) {
|
||||
const parts = fullCmd.split(' ');
|
||||
const cmd = parts[0];
|
||||
const args = parts.slice(1).join(' ');
|
||||
|
||||
switch(cmd) {
|
||||
case 'help':
|
||||
log('VERFÜGBARE PROTOKOLLE:', 'info');
|
||||
|
|
@ -232,6 +236,68 @@
|
|||
log(' - destruct : System-Selbstzerstörung');
|
||||
log(' - reboot : Manueller System-Neustart');
|
||||
log(' - clear : Log-Speicher löschen');
|
||||
log(' - say : Text-to-Speech Synthesizer');
|
||||
log(' - kind: : Projekt-Filter (z.B. kind: all, kind: bash)');
|
||||
break;
|
||||
case 'say':
|
||||
if (!args) {
|
||||
log('FEHLER: "say" ERWARTET EINE EINGABE.', 'error');
|
||||
break;
|
||||
}
|
||||
log('>> INITIALIZING VOCAL TRACT...', 'info');
|
||||
if ('speechSynthesis' in window) {
|
||||
document.body.classList.add('mode-ghost');
|
||||
const synthMsg = new SpeechSynthesisUtterance(args);
|
||||
synthMsg.rate = 0.8 + Math.random() * 0.4;
|
||||
synthMsg.pitch = 0.4 + Math.random() * 1.5;
|
||||
synthMsg.onend = function() {
|
||||
document.body.classList.remove('mode-ghost');
|
||||
log('>> VOCAL TRANSMISSION COMPLETE.', 'ok');
|
||||
if (sfxEnabled) playKeyClick();
|
||||
};
|
||||
synthMsg.onerror = function() {
|
||||
document.body.classList.remove('mode-ghost');
|
||||
log('!! VOCAL MODULE ERROR !!', 'error');
|
||||
};
|
||||
log('>> SYNTHESIZING: [ ' + args + ' ]', 'ghost');
|
||||
window.speechSynthesis.speak(synthMsg);
|
||||
} else {
|
||||
log('FEHLER: DEIN BROWSER UNTERSTÜTZT KEINE AUDIO-SYNTHESE.', 'error');
|
||||
}
|
||||
break;
|
||||
case 'kind:':
|
||||
if (!args) {
|
||||
log('FEHLER: "kind:" ERWARTET EINEN FILTERWERT (Z.B. all, htmlkrabben, bash).', 'error');
|
||||
break;
|
||||
}
|
||||
const filterValue = args.toLowerCase();
|
||||
log('>> FILTERING DATABANKS BY CATEGORY: [' + filterValue + ']', 'info');
|
||||
|
||||
let foundAny = false;
|
||||
projectCards.forEach(card => {
|
||||
const cat = card.getAttribute('data-category');
|
||||
if (filterValue === 'all' || cat === filterValue) {
|
||||
card.style.display = 'flex';
|
||||
foundAny = true;
|
||||
} else {
|
||||
card.style.display = 'none';
|
||||
}
|
||||
});
|
||||
|
||||
filterButtons.forEach(b => {
|
||||
if (b.getAttribute('data-filter') === filterValue) {
|
||||
b.classList.add('active');
|
||||
} else {
|
||||
b.classList.remove('active');
|
||||
}
|
||||
});
|
||||
|
||||
if (foundAny) {
|
||||
log('>> FILTER APPLIED GALAXY-WIDE.', 'ok');
|
||||
} else {
|
||||
log('WARNUNG: KEINE DATENSÄTZE FÜR KATEGORIE "' + filterValue + '" GEFUNDEN.', 'warn');
|
||||
}
|
||||
if (sfxEnabled) playKeyClick();
|
||||
break;
|
||||
case 'ghost':
|
||||
if (document.body.classList.contains('mode-ghost')) {
|
||||
|
|
@ -443,6 +509,189 @@
|
|||
}
|
||||
});
|
||||
|
||||
// --- TIMELINE LOGIC ---
|
||||
const steampunkCards = document.querySelectorAll('.steampunk-card');
|
||||
const timelineModal = document.getElementById('timeline-modal');
|
||||
const closeTimeline = document.getElementById('close-timeline');
|
||||
const timelineTrack = document.getElementById('timeline-track');
|
||||
const timelineTitle = document.getElementById('timeline-title');
|
||||
|
||||
if (steampunkCards.length > 0 && timelineModal) {
|
||||
steampunkCards.forEach(card => {
|
||||
card.addEventListener('click', (e) => {
|
||||
e.preventDefault();
|
||||
if (typeof playErrorBeep === 'function') playErrorBeep();
|
||||
|
||||
document.body.classList.add('mode-time-warp');
|
||||
log('>> INITIATING TEMPORAL DISPLACEMENT...', 'warn');
|
||||
log('>> TARGET YEAR: 1955', 'ghost');
|
||||
|
||||
setTimeout(() => {
|
||||
document.body.classList.remove('mode-time-warp');
|
||||
const personName = card.querySelector('h3').innerText;
|
||||
timelineTitle.innerText = "HISTORISCHES ARCHIV: " + personName;
|
||||
generateTimeline();
|
||||
timelineModal.classList.remove('timeline-hidden');
|
||||
log('>> TEMPORAL SHIFT COMPLETE.', 'ok');
|
||||
}, 1200);
|
||||
});
|
||||
});
|
||||
|
||||
if (closeTimeline) {
|
||||
closeTimeline.addEventListener('click', () => {
|
||||
timelineModal.classList.add('timeline-hidden');
|
||||
if (typeof playKeyClick === 'function') playKeyClick();
|
||||
});
|
||||
}
|
||||
|
||||
function generateTimeline() {
|
||||
timelineTrack.innerHTML = '';
|
||||
|
||||
const specialEvents = {
|
||||
1974: "ARCHITEKTUR-UPDATE: Der zukünftige Overlord (Sascha) wird von der Kupfer-Matriarchin erfolgreich in die Biosphäre kompiliert. Initialer System-Schrei registriert.",
|
||||
1981: "SYSTEM-ERWEITERUNG: Ein neuer kybernetischer Bruder-Knoten geht online. Visuelles Sensoren-Update (Upload steht noch aus).",
|
||||
1983: "NETZWERK-UPDATE: AETHER-SIBLING V1.0 (Schwester Meli) bootet erfolgreich. Chaos-Protokolle und pneumatische Reflexe initialisiert."
|
||||
};
|
||||
|
||||
const events = [
|
||||
"Kritische Dampfdruck-Anomalie entdeckt.",
|
||||
"Erster erfolgreicher Test des kybernetischen Herzmuskels.",
|
||||
"System-Absturz aufgrund von überhitzten Kupferspulen.",
|
||||
"Neural-Link mit den Primär-Vorläufern hergestellt.",
|
||||
"Mechanische Gliedmaßen rüsten auf Hydraulik um.",
|
||||
"Prototyp V2 entkommt aus dem Testlabor.",
|
||||
"Verhandlungen mit dem KI-Mainframe gescheitert.",
|
||||
"Flucht in die äußeren Kolonien (Offline-Modus).",
|
||||
"Reboot der emotionalen Sub-Parameter.",
|
||||
"Wartungsarbeiten an den Exo-Skeletten abgeschlossen."
|
||||
];
|
||||
|
||||
let yearsToRender = [];
|
||||
for(let y = 1955; y <= new Date().getFullYear(); y += 5) {
|
||||
yearsToRender.push(y);
|
||||
}
|
||||
[1974, 1981, 1983].forEach(sy => {
|
||||
if(!yearsToRender.includes(sy)) yearsToRender.push(sy);
|
||||
});
|
||||
yearsToRender.sort((a,b) => a - b);
|
||||
|
||||
let isLeft = true;
|
||||
|
||||
yearsToRender.forEach(year => {
|
||||
const node = document.createElement('div');
|
||||
node.className = 'time-node ' + (isLeft ? 'left' : 'right');
|
||||
|
||||
const content = document.createElement('div');
|
||||
content.className = 'time-content';
|
||||
|
||||
if(specialEvents[year]) {
|
||||
content.classList.add('omega-node');
|
||||
content.innerHTML = '<h3 style="color:var(--accent-orange);">[ ' + year + ' ]</h3><p style="color:#fff;"><strong>⚡ OMEGA-KLASSE EREIGNIS ⚡</strong><br>' + specialEvents[year] + '</p>';
|
||||
} else {
|
||||
const bgStory = events[Math.floor(Math.random() * events.length)];
|
||||
content.innerHTML = '<h3>[ ' + year + ' ]</h3><p>KRITISCHER EINTRAG #' + (Math.floor(Math.random()*9000)+1000) + ': ' + bgStory + ' Weitere Datenquellen als OMEGA-KLASSE klassifiziert.</p>';
|
||||
}
|
||||
|
||||
node.appendChild(content);
|
||||
timelineTrack.appendChild(node);
|
||||
|
||||
isLeft = !isLeft;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
log('>> SYSTEM READY. WAITING FOR COMMANDS...');
|
||||
});
|
||||
})();
|
||||
|
||||
// --- ANTIGRAVITY ENGINE & GENERATIVE DRONE ---
|
||||
let droneAudioCtx;
|
||||
let droneInitialized = false;
|
||||
let droneShouldPlay = false;
|
||||
let mainDroneGain;
|
||||
|
||||
function initDroneEngine() {
|
||||
if (droneInitialized) return;
|
||||
droneAudioCtx = new (window.AudioContext || window.webkitAudioContext)();
|
||||
|
||||
mainDroneGain = droneAudioCtx.createGain();
|
||||
mainDroneGain.gain.setValueAtTime(0, droneAudioCtx.currentTime); // Start absolutely silent
|
||||
mainDroneGain.connect(droneAudioCtx.destination);
|
||||
|
||||
const filter = droneAudioCtx.createBiquadFilter();
|
||||
filter.type = 'lowpass';
|
||||
filter.frequency.setValueAtTime(150, droneAudioCtx.currentTime);
|
||||
filter.connect(mainDroneGain);
|
||||
|
||||
const freqs = [55, 56.5, 82.5];
|
||||
freqs.forEach(freq => {
|
||||
const osc = droneAudioCtx.createOscillator();
|
||||
const lfo = droneAudioCtx.createOscillator();
|
||||
const lfoGain = droneAudioCtx.createGain();
|
||||
osc.type = 'sawtooth';
|
||||
osc.frequency.setValueAtTime(freq, droneAudioCtx.currentTime);
|
||||
lfo.type = 'sine';
|
||||
lfo.frequency.setValueAtTime(0.1 + (Math.random() * 0.1), droneAudioCtx.currentTime);
|
||||
lfoGain.gain.setValueAtTime(3, droneAudioCtx.currentTime);
|
||||
lfo.connect(lfoGain);
|
||||
lfoGain.connect(osc.frequency);
|
||||
osc.connect(filter);
|
||||
osc.start(droneAudioCtx.currentTime);
|
||||
lfo.start(droneAudioCtx.currentTime);
|
||||
});
|
||||
|
||||
droneInitialized = true;
|
||||
console.log(">> GENERATIVE DRONE SYNTHESIZER PRE-LOADED.");
|
||||
checkDroneState();
|
||||
}
|
||||
|
||||
function checkDroneState() {
|
||||
if (droneInitialized && droneShouldPlay && droneAudioCtx.state === 'running') {
|
||||
const currTime = droneAudioCtx.currentTime;
|
||||
// Chrome-safe volume ramping (tends to 0.15 exponentially)
|
||||
mainDroneGain.gain.setTargetAtTime(0.15, currTime, 2.0);
|
||||
}
|
||||
}
|
||||
|
||||
// Master-Unlock für Chrome: Context MUSS während eines User-Gestures erstellt/resumed werden.
|
||||
const globalAudioUnlock = () => {
|
||||
initDroneEngine();
|
||||
if (droneAudioCtx && droneAudioCtx.state === 'suspended') {
|
||||
droneAudioCtx.resume().then(() => checkDroneState());
|
||||
} else {
|
||||
checkDroneState();
|
||||
}
|
||||
};
|
||||
|
||||
document.addEventListener('click', globalAudioUnlock);
|
||||
document.addEventListener('keydown', globalAudioUnlock);
|
||||
|
||||
function initAntigravity() {
|
||||
const layers = document.querySelectorAll('.ag-parallax-layer');
|
||||
let audioStarted = false;
|
||||
|
||||
window.addEventListener('scroll', () => {
|
||||
// Trigger Drone Volume Ramp
|
||||
if (!audioStarted && window.scrollY > 50) {
|
||||
droneShouldPlay = true;
|
||||
checkDroneState();
|
||||
audioStarted = true;
|
||||
}
|
||||
|
||||
// Parallax Effect
|
||||
const scrolled = window.scrollY;
|
||||
layers.forEach(layer => {
|
||||
const speed = layer.getAttribute('data-speed') || 0.2;
|
||||
const yPos = -(scrolled * speed);
|
||||
layer.style.transform = `translateY(${yPos}px) translateZ(0)`;
|
||||
});
|
||||
});
|
||||
|
||||
// Add floating effect to terminal if present
|
||||
const mainTerminal = document.getElementById('terminal-container');
|
||||
if (mainTerminal) {
|
||||
mainTerminal.classList.add('ag-floating');
|
||||
}
|
||||
}
|
||||
|
||||
document.addEventListener('DOMContentLoaded', initAntigravity);
|
||||
|
|
|
|||
|
|
@ -547,3 +547,186 @@ body.mode-anarchy .hero-image {
|
|||
|
||||
.status-tag.stable { color: #0f0; border-color: #0f0; }
|
||||
.status-tag.corrupted { color: #f00; border-color: #f00; animation: blinker 1s infinite; }
|
||||
|
||||
/* --- TIMELINE MODAL --- */
|
||||
#timeline-modal {
|
||||
position: fixed; top: 0; left: 0; width: 100%; height: 100%;
|
||||
background: url('assets/img/steampunk_bg.png') center/cover no-repeat, rgba(15, 10, 5, 0.95);
|
||||
background-blend-mode: multiply;
|
||||
z-index: 20000;
|
||||
overflow-y: auto;
|
||||
padding: 40px 20px;
|
||||
font-family: 'Courier New', monospace;
|
||||
opacity: 1; transition: opacity 0.5s;
|
||||
box-shadow: inset 0 0 100px #000;
|
||||
}
|
||||
#timeline-modal.timeline-hidden {
|
||||
opacity: 0; pointer-events: none;
|
||||
}
|
||||
#close-timeline {
|
||||
position: fixed; top: 20px; right: 30px;
|
||||
background: rgba(0,0,0,0.5); color: var(--accent-orange); border: 2px solid var(--accent-orange);
|
||||
padding: 10px 20px; font-weight: bold; cursor: pointer; z-index: 20001;
|
||||
box-shadow: 0 0 10px rgba(255,69,0,0.5);
|
||||
text-shadow: 0 0 5px #000;
|
||||
}
|
||||
#close-timeline:hover { background: var(--accent-orange); color: #000; }
|
||||
|
||||
.timeline-track {
|
||||
position: relative; max-width: 800px; margin: 40px auto;
|
||||
}
|
||||
/* Kupferrohr in der Mitte */
|
||||
.timeline-track::after {
|
||||
content: ''; position: absolute;
|
||||
width: 8px;
|
||||
background: linear-gradient(to right, #5c3a21 0%, #b87333 50%, #5c3a21 100%);
|
||||
top: 0; bottom: 0; left: 50%; margin-left: -4px;
|
||||
box-shadow: 2px 0 10px rgba(0,0,0,0.9);
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.time-node {
|
||||
padding: 10px 40px; position: relative; background: inherit; width: 50%; box-sizing: border-box;
|
||||
}
|
||||
.time-node.left { left: 0; text-align: right; }
|
||||
.time-node.right { left: 50%; text-align: left; }
|
||||
|
||||
/* Ventil / dicker Kupferknoten auf dem Rohr */
|
||||
.time-node::after {
|
||||
content: ''; position: absolute;
|
||||
width: 24px; height: 24px; right: -16px; top: 15px;
|
||||
background: radial-gradient(circle, #d4af37 20%, #8b5a2b 80%);
|
||||
border: 3px solid #3e2723; border-radius: 50%; z-index: 1;
|
||||
box-shadow: 0 0 15px rgba(0,0,0,0.9), inset 0 0 5px #000;
|
||||
}
|
||||
.time-node.right::after { left: -16px; }
|
||||
|
||||
/* Steampunk Kästchen */
|
||||
.time-content {
|
||||
padding: 25px;
|
||||
background: linear-gradient(135deg, rgba(50, 30, 15, 0.95), rgba(20, 10, 5, 0.95));
|
||||
border: 2px solid #b5a642;
|
||||
outline: 2px solid #2a1f18; /* Kabel-Base */
|
||||
outline-offset: 4px;
|
||||
box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 5px 5px 20px rgba(0,0,0,0.7);
|
||||
position: relative; border-radius: 3px;
|
||||
}
|
||||
/* Subtile Kabelverschlaufung (Kupferdraht) um normale Boxen */
|
||||
.time-content::after {
|
||||
content: ''; position: absolute; top: -6px; left: -6px; right: -6px; bottom: -6px;
|
||||
border: 1px dashed #b87333;
|
||||
border-radius: 5px;
|
||||
pointer-events: none;
|
||||
opacity: 0.6;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
/* Messing-Nieten in den Ecken */
|
||||
.time-content::before {
|
||||
content: ''; position: absolute; width: 100%; height: 100%; left: 0; top: 0; pointer-events: none;
|
||||
background-image:
|
||||
radial-gradient(circle at 10px 10px, #b5a642 3px, transparent 4px),
|
||||
radial-gradient(circle at calc(100% - 10px) 10px, #b5a642 3px, transparent 4px),
|
||||
radial-gradient(circle at 10px calc(100% - 10px), #b5a642 3px, transparent 4px),
|
||||
radial-gradient(circle at calc(100% - 10px) calc(100% - 10px), #b5a642 3px, transparent 4px);
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
.time-content h3 {
|
||||
margin-top: 0; color: #d4af37;
|
||||
border-bottom: 1px dashed #b5a642;
|
||||
padding-bottom: 5px;
|
||||
text-shadow: 1px 1px 2px #000;
|
||||
}
|
||||
.time-content p { font-size: 0.9rem; color: #e8dcc4; line-height: 1.5; text-shadow: 1px 1px 2px #000; }
|
||||
|
||||
/* OMEGA KNOTEN - Die Überraschung (Elektro-Arc) */
|
||||
.time-content.omega-node {
|
||||
border-color: #ff4500;
|
||||
outline: 2px solid #330000;
|
||||
box-shadow: inset 0 0 30px rgba(255, 69, 0, 0.5), 0 0 30px rgba(255, 0, 0, 0.8);
|
||||
background: linear-gradient(135deg, rgba(80, 20, 10, 0.95), rgba(30, 0, 0, 0.95));
|
||||
animation: omega-pulse 2s infinite alternate, omega-shake 0.5s infinite;
|
||||
}
|
||||
.time-content.omega-node::after {
|
||||
content: ''; position: absolute; top: -8px; left: -8px; right: -8px; bottom: -8px;
|
||||
border: 2px solid #0ff; /* Plasma cyan */
|
||||
border-radius: 6px;
|
||||
box-shadow: 0 0 15px #0ff, inset 0 0 10px #0ff;
|
||||
animation: electric-arc 0.15s infinite;
|
||||
pointer-events: none;
|
||||
opacity: 0.9;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
@keyframes omega-pulse {
|
||||
0% { box-shadow: inset 0 0 30px rgba(255, 69, 0, 0.4), 0 0 20px rgba(255, 0, 0, 0.6); }
|
||||
100% { box-shadow: inset 0 0 60px rgba(255, 69, 0, 0.9), 0 0 40px rgba(255, 0, 0, 1); }
|
||||
}
|
||||
|
||||
@keyframes omega-shake {
|
||||
0%, 100% { transform: translate(0, 0) rotate(0deg); }
|
||||
25% { transform: translate(0.5px, 0.5px) rotate(0.2deg); }
|
||||
50% { transform: translate(-0.5px, -0.5px) rotate(-0.2deg); }
|
||||
75% { transform: translate(0.5px, -0.5px) rotate(0.2deg); }
|
||||
}
|
||||
|
||||
@keyframes electric-arc {
|
||||
0% { clip-path: polygon(0 0, 100% 0, 100% 5%, 0 5%); border-color: #0ff; }
|
||||
25% { clip-path: polygon(95% 0, 100% 0, 100% 100%, 95% 100%); border-color: #fff; }
|
||||
50% { clip-path: polygon(0 95%, 100% 95%, 100% 100%, 0 100%); border-color: #0ff; }
|
||||
75% { clip-path: polygon(0 0, 5% 0, 5% 100%, 0 100%); border-color: #fff; }
|
||||
100% { clip-path: polygon(0 0, 100% 0, 100% 20%, 0 20%); border-color: #0ff; }
|
||||
}
|
||||
|
||||
@media screen and (max-width: 600px) {
|
||||
.timeline-track::after { left: 31px; }
|
||||
.time-node { width: 100%; padding-left: 70px; padding-right: 25px; }
|
||||
.time-node.left { text-align: left; }
|
||||
.time-node.right { left: 0; }
|
||||
.time-node.left::after, .time-node.right::after { left: 19px; }
|
||||
}
|
||||
|
||||
/* TIME WARP GLITCH */
|
||||
body.mode-time-warp {
|
||||
animation: shake 0.1s infinite;
|
||||
filter: sepia(100%) hue-rotate(-20deg) contrast(200%) brightness(0.8) blur(1px);
|
||||
}
|
||||
|
||||
/* --- ANTIGRAVITY PHASE --- */
|
||||
:root {
|
||||
--ag-float-duration: 6s;
|
||||
--ag-drift-offset: 15px;
|
||||
}
|
||||
|
||||
.ag-floating {
|
||||
animation: ag-float var(--ag-float-duration) ease-in-out infinite;
|
||||
will-change: transform;
|
||||
transform: translateZ(0); /* Force GPU Acceleration for M4 */
|
||||
}
|
||||
|
||||
@keyframes ag-float {
|
||||
0%, 100% {
|
||||
transform: translateY(0) translateZ(0);
|
||||
}
|
||||
50% {
|
||||
transform: translateY(calc(-1 * var(--ag-drift-offset))) translateZ(0);
|
||||
}
|
||||
}
|
||||
|
||||
.ag-parallax-layer {
|
||||
transition: transform 0.1s cubic-bezier(0.2, 0.8, 0.2, 1);
|
||||
will-change: transform;
|
||||
}
|
||||
|
||||
.ag-weightless {
|
||||
opacity: 0.85;
|
||||
filter: blur(0.5px);
|
||||
transition: all 0.5s ease;
|
||||
}
|
||||
|
||||
.ag-weightless:hover {
|
||||
opacity: 1;
|
||||
filter: blur(0);
|
||||
transform: scale(1.02) translateZ(0);
|
||||
}
|
||||
|
|
|
|||
0
html/wp-content/themes/ki-labor/test.php
Normal file
0
html/wp-content/themes/ki-labor/test.php
Normal file
19
ssh_connect.expect
Normal file
19
ssh_connect.expect
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
#!/usr/bin/expect -f
|
||||
set timeout 15
|
||||
|
||||
spawn ssh -o StrictHostKeyChecking=accept-new su72785@access-5019642512.webspace-host.com
|
||||
expect {
|
||||
"*?assword:*" {
|
||||
send "Jessilein@74\r"
|
||||
}
|
||||
timeout {
|
||||
puts "Timeout waiting for password prompt"
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
expect -re {[$#>] }
|
||||
send "find . -maxdepth 4 -name 'wp-content' -type d\r"
|
||||
|
||||
expect -re {[$#>] }
|
||||
send "exit\r"
|
||||
Loading…
Reference in a new issue