Auto-backup: 2026-03-27 23:00

This commit is contained in:
Sascha 2026-03-27 23:00:02 +01:00
parent 0114e6fc99
commit 92260185de
5 changed files with 391 additions and 3 deletions

View file

@ -0,0 +1,8 @@
{
"permissions": {
"allow": [
"WebFetch(domain:localhost)",
"Bash(curl -s http://localhost:8080)"
]
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 MiB

View file

@ -35,12 +35,44 @@
<button id="btn-security" class="switch-btn">SECURITY-BYPASS</button> <button id="btn-security" class="switch-btn">SECURITY-BYPASS</button>
</div> </div>
<div class="terminal-wrapper" style="margin-top: 30px;"> <!-- OPS DASHBOARD SIGN -->
<div id="ops-dashboard-sign">
<div class="ops-sign-header">
<span class="ops-blink-dot"></span>
<span class="ops-title">CHIRURGISCHES OPS-DASHBOARD</span>
<span class="ops-blink-dot"></span>
</div>
<div class="ops-sign-stats">
<div class="ops-stat-block">
<span class="ops-stat-label">HEUTE</span>
<span class="ops-tally">|||</span>
<span class="ops-stat-val">3 OPS</span>
</div>
<span class="ops-divider">◈</span>
<div class="ops-stat-block">
<span class="ops-stat-label">ERFOLGE</span>
<span class="ops-tally ops-half">|½</span>
<span class="ops-stat-val ops-warn">1.5</span>
</div>
<span class="ops-divider">◈</span>
<div class="ops-stat-block">
<span class="ops-stat-label">RESTE</span>
<span class="ops-stat-val ops-crit">KUEHLHAUS C</span>
</div>
</div>
<div class="ops-sign-hint">[ PROTOKOLL EINSEHEN ]</div>
</div>
<div class="terminal-wrapper" style="margin-top: 0;">
<div class="terminal-topbar" style="display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 5px;"> <div class="terminal-topbar" style="display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 5px;">
<span style="color: var(--accent-gold); font-size: 0.8rem; letter-spacing: 1px;">// SECURE_TERMINAL_ACCESS</span> <span style="color: var(--accent-gold); font-size: 0.8rem; letter-spacing: 1px;">// SECURE_TERMINAL_ACCESS</span>
<button id="btn-sfx" style="background: transparent; border: 1px solid #0f0; color: #0f0; font-family: 'Courier New', monospace; font-size: 0.7rem; cursor: pointer; padding: 2px 8px; transition: all 0.2s;">[ SFX: ON ]</button> <button id="btn-sfx" style="background: transparent; border: 1px solid #0f0; color: #0f0; font-family: 'Courier New', monospace; font-size: 0.7rem; cursor: pointer; padding: 2px 8px; transition: all 0.2s;">[ SFX: ON ]</button>
</div> </div>
<div id="system-log" style="margin-top: 0;"> <div id="system-log" style="margin-top: 0;">
<div id="ops-panel">
<div id="ops-panel-vitals"></div>
<div id="ops-panel-log"></div>
</div>
<div id="log-output"></div> <div id="log-output"></div>
<div class="terminal-input-line"> <div class="terminal-input-line">
<span class="prompt">></span> <span class="prompt">></span>
@ -134,6 +166,17 @@
<div id="timeline-modal" class="timeline-hidden"> <div id="timeline-modal" class="timeline-hidden">
<button id="close-timeline">[X] CLOSE</button> <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> <h2 id="timeline-title" style="text-align: center; color: var(--accent-orange); margin-top: 20px;">HISTORISCHES ARCHIV</h2>
<div class="mutter-portrait-wrap">
<div class="mutter-mirror-frame">
<div class="mutter-mirror-inner">
<span class="mutter-mirror-deco top">⚙</span>
<span class="mutter-mirror-deco bottom">⚙</span>
<span class="mutter-mirror-deco left">⚙</span>
<span class="mutter-mirror-deco right">⚙</span>
<img src="<?php echo get_template_directory_uri(); ?>/assets/img/hp_muti_steampunk_02.jpg" alt="Die Matriarchin" class="mutter-mirror-img">
</div>
</div>
</div>
<div id="timeline-track" class="timeline-track"></div> <div id="timeline-track" class="timeline-track"></div>
</div> </div>

View file

@ -765,6 +765,105 @@
} }
log('>> SYSTEM READY. WAITING FOR COMMANDS...'); log('>> SYSTEM READY. WAITING FOR COMMANDS...');
// --- OPS DASHBOARD ---
const opsDashSign = document.getElementById('ops-dashboard-sign');
const opsPanel = document.getElementById('ops-panel');
const opsPanelLog = document.getElementById('ops-panel-log');
const opsPanelVital = document.getElementById('ops-panel-vitals');
const terminalWrap = document.querySelector('.terminal-wrapper');
let opsOpen = false;
let opsTyped = false;
let vitalInterval = null;
const OPS_LOG_LINES = [
{ t: '╔══════════════════════════════════════════════════╗', cls: 'ops-line-dim' },
{ t: '║ CHIRURGISCHES PROTOKOLL — KLASSIFIZIERT: ROT ║', cls: 'ops-line-section' },
{ t: '╚══════════════════════════════════════════════════╝', cls: 'ops-line-dim' },
{ t: '', cls: '' },
{ t: '─── OP ALFA-7 ─────────────────────────────────────', cls: 'ops-line-section' },
{ t: ' PATIENT : KREATIVITAET.exe (v4.2-beta)', cls: 'ops-line-label' },
{ t: ' EINGRIFF : Herz-Transplant — Donor: MOTIVATION.sys', cls: '' },
{ t: ' BEFUND : Herz läuft. Richtung unbekannt. Absicht fraglich.', cls: '' },
{ t: ' STATUS : ████████░░ 82% KAPAZITÄT', cls: 'ops-line-ok' },
{ t: ' ERGEBNIS : 0.5 ERFOLGE (zählt als halber Sieg, ganz nach Wunsch)', cls: 'ops-line-label' },
{ t: '', cls: '' },
{ t: '─── OP BETA-12 ─────────────────────────────────────', cls: 'ops-line-section' },
{ t: ' PATIENT : SCHLAFRHYTHMUS.daemon (Version: veraltet)', cls: 'ops-line-label' },
{ t: ' EINGRIFF : Herz-Transplant — Donor: KAFFEE-KERN v9.1', cls: '' },
{ t: ' BEFUND : Donor inkompatibel. Koffein ≠ Blut. Überraschung: keiner.', cls: '' },
{ t: ' STATUS : ██████████ 100% — ABGESCHLOSSEN', cls: 'ops-line-crit' },
{ t: ' ERGEBNIS : TECHNISCH FEHLGESCHLAGEN. Patient läuft trotzdem.', cls: 'ops-line-label' },
{ t: '', cls: '' },
{ t: '════════════════════════════════════════════════════', cls: 'ops-line-dim' },
{ t: ' OPS: ||| 3 ERFOLGE: |½ 1.5 FEHLSCHL: |½ 1.5', cls: 'ops-line-section' },
{ t: ' RESTE: KUEHLHAUS C — ZUSTAND: STABIL / NUTZBAR', cls: 'ops-line-crit' },
{ t: ' NÄCHSTE OP: PROKRASTINATION.exe — ETA: IRGENDWANN', cls: 'ops-line-dim' },
{ t: '════════════════════════════════════════════════════', cls: 'ops-line-dim' },
];
const VITAL_FRAMES = [
'VITALMONITOR ▁▂▃▂▁▃▂▁▁▁▁▁▁▁▁▁▁▁▁▁ FLATLINE',
'VITALMONITOR ▁▁▂▃▂▁▃▂▁▁▁▁▁▁▁▁▁▁▁▁ FLATLINE',
'VITALMONITOR ▁▁▁▂▃▂▁▃▂▁▁▁▁▁▁▁▁▁▁▁ FLATLINE',
'VITALMONITOR ▁▁▁▁▂▃▂▁▃▂▁▁▁▁▁▁▁▁▁▁ FLATLINE',
'VITALMONITOR ▁▁▁▁▁▂▃▂▁▁▁▂▃▂▁▁▁▁▁▁ FLATLINE',
'VITALMONITOR ▁▁▁▁▁▁▂▃▂▁▁▁▁▂▃▂▁▁▁▁ FLATLINE',
'VITALMONITOR ▁▁▁▁▁▁▁▂▃▂▁▁▁▁▁▂▃▂▁▁ FLATLINE',
'VITALMONITOR ▁▁▁▁▁▁▁▁▂▃▂▁▁▁▁▁▁▁▁▁ FLATLINE',
];
function typeOpsLog() {
if (opsTyped) return;
opsTyped = true;
opsPanelLog.innerHTML = '';
let i = 0;
function typeLine() {
if (i >= OPS_LOG_LINES.length) return;
const { t, cls } = OPS_LOG_LINES[i++];
const span = document.createElement('span');
if (cls) span.className = cls;
span.textContent = t + '\n';
opsPanelLog.appendChild(span);
opsPanelLog.scrollTop = opsPanelLog.scrollHeight;
setTimeout(typeLine, t === '' ? 30 : 55);
}
typeLine();
}
function startVitals() {
let frame = 0;
opsPanelVital.textContent = VITAL_FRAMES[0];
vitalInterval = setInterval(() => {
frame = (frame + 1) % VITAL_FRAMES.length;
opsPanelVital.textContent = VITAL_FRAMES[frame];
}, 220);
}
function stopVitals() {
clearInterval(vitalInterval);
vitalInterval = null;
}
if (opsDashSign) {
opsDashSign.addEventListener('click', () => {
opsOpen = !opsOpen;
if (opsOpen) {
opsPanel.classList.add('ops-open');
terminalWrap.classList.add('ops-expanded');
opsDashSign.querySelector('.ops-sign-hint').textContent = '[ PROTOKOLL SCHLIESSEN ]';
startVitals();
setTimeout(typeOpsLog, 300);
if (typeof playKeyClick === 'function') playKeyClick();
} else {
opsPanel.classList.remove('ops-open');
terminalWrap.classList.remove('ops-expanded');
opsDashSign.querySelector('.ops-sign-hint').textContent = '[ PROTOKOLL EINSEHEN ]';
stopVitals();
}
});
}
}); });
})(); })();

View file

@ -279,11 +279,12 @@ body.mode-ghost .prompt {
color: #0f0; color: #0f0;
font-family: 'Courier New', monospace; font-family: 'Courier New', monospace;
padding: 15px; padding: 15px;
margin-top: 30px; margin-top: 0;
height: 250px; /* Mehr Platz für Input */ min-height: 250px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
box-shadow: inset 0 0 10px #000; box-shadow: inset 0 0 10px #000;
transition: min-height 0.55s cubic-bezier(0.4,0,0.2,1);
} }
#log-output { #log-output {
@ -709,6 +710,88 @@ body.mode-anarchy .hero-image {
} }
#close-timeline:hover { background: var(--accent-orange); color: #000; } #close-timeline:hover { background: var(--accent-orange); color: #000; }
/* STEAMPUNK MIRROR PORTRAIT */
.mutter-portrait-wrap {
text-align: center;
margin: 24px 0 8px;
position: relative;
}
.mutter-mirror-frame {
display: inline-block;
position: relative;
padding: 18px;
background: radial-gradient(ellipse at center, rgba(212,175,55,0.08) 0%, transparent 70%);
}
.mutter-mirror-frame::before {
content: '⚙ ✦ ⚙ ✦ ⚙ ✦ ⚙';
display: block;
text-align: center;
color: rgba(212,175,55,0.35);
font-size: 0.65rem;
letter-spacing: 6px;
margin-bottom: 6px;
}
.mutter-mirror-frame::after {
content: '⚙ ✦ ⚙ ✦ ⚙ ✦ ⚙';
display: block;
text-align: center;
color: rgba(212,175,55,0.35);
font-size: 0.65rem;
letter-spacing: 6px;
margin-top: 6px;
}
.mutter-mirror-inner {
position: relative;
display: inline-block;
border-radius: 50%;
padding: 5px;
background: conic-gradient(
#3a2200 0deg, #b87333 30deg, #d4af37 60deg, #8b5e00 90deg,
#b87333 120deg, #5c3a21 150deg, #d4af37 180deg, #b87333 210deg,
#3a2200 240deg, #d4af37 270deg, #b87333 300deg, #5c3a21 330deg,
#3a2200 360deg
);
box-shadow:
0 0 0 2px rgba(212,175,55,0.15),
0 0 12px rgba(184,115,51,0.3),
inset 0 0 6px rgba(0,0,0,0.5);
}
.mutter-mirror-inner::before,
.mutter-mirror-inner::after {
content: '';
position: absolute;
border-radius: 50%;
pointer-events: none;
}
.mutter-mirror-inner::before {
inset: -9px;
border: 1px dashed rgba(212,175,55,0.2);
}
.mutter-mirror-inner::after {
inset: -16px;
border: 1px solid rgba(184,115,51,0.12);
}
.mutter-mirror-img {
display: block;
width: 150px;
height: 150px;
border-radius: 50%;
object-fit: cover;
opacity: 0.6;
filter: sepia(0.35) brightness(0.82) contrast(1.05);
}
.mutter-mirror-deco {
position: absolute;
color: rgba(212,175,55,0.4);
font-size: 1rem;
line-height: 1;
pointer-events: none;
}
.mutter-mirror-deco.top { top: 2px; left: 50%; transform: translateX(-50%); }
.mutter-mirror-deco.bottom { bottom: 2px; left: 50%; transform: translateX(-50%); }
.mutter-mirror-deco.left { left: 2px; top: 50%; transform: translateY(-50%); }
.mutter-mirror-deco.right { right: 2px; top: 50%; transform: translateY(-50%); }
.timeline-track { .timeline-track {
position: relative; max-width: 800px; margin: 40px auto; position: relative; max-width: 800px; margin: 40px auto;
} }
@ -908,3 +991,158 @@ body.mode-time-warp {
filter: blur(0); filter: blur(0);
transform: scale(1.02) translateZ(0); transform: scale(1.02) translateZ(0);
} }
/* ═══════════════════════════════════════
OPS DASHBOARD SIGN
═══════════════════════════════════════ */
#ops-dashboard-sign {
margin-top: 30px;
margin-bottom: 0;
cursor: pointer;
border: 1px solid rgba(255,69,0,0.4);
border-bottom: none;
background: linear-gradient(180deg, rgba(20,5,0,0.95) 0%, rgba(10,2,0,0.98) 100%);
padding: 10px 16px 12px;
position: relative;
overflow: hidden;
transition: border-color 0.3s, box-shadow 0.3s;
box-shadow: 0 0 18px rgba(255,69,0,0.08), inset 0 0 30px rgba(0,0,0,0.5);
}
#ops-dashboard-sign::before {
content: '';
position: absolute;
inset: 0;
background: repeating-linear-gradient(
0deg,
transparent,
transparent 3px,
rgba(255,69,0,0.015) 3px,
rgba(255,69,0,0.015) 4px
);
pointer-events: none;
}
#ops-dashboard-sign:hover {
border-color: rgba(255,69,0,0.7);
box-shadow: 0 0 28px rgba(255,69,0,0.18), inset 0 0 20px rgba(255,40,0,0.05);
}
.ops-sign-header {
display: flex;
align-items: center;
justify-content: center;
gap: 10px;
margin-bottom: 8px;
}
.ops-title {
font-size: 0.7rem;
letter-spacing: 4px;
color: rgba(255,100,0,0.7);
text-transform: uppercase;
}
.ops-blink-dot {
width: 6px;
height: 6px;
border-radius: 50%;
background: #ff2200;
display: inline-block;
animation: blinker 1.1s step-end infinite;
box-shadow: 0 0 5px #ff2200;
}
.ops-blink-dot:last-child { animation-delay: 0.55s; }
.ops-sign-stats {
display: flex;
align-items: center;
justify-content: center;
gap: 14px;
flex-wrap: wrap;
}
.ops-stat-block {
display: flex;
flex-direction: column;
align-items: center;
gap: 1px;
}
.ops-stat-label {
font-size: 0.5rem;
letter-spacing: 3px;
color: rgba(255,69,0,0.4);
text-transform: uppercase;
}
.ops-tally {
font-size: 1.1rem;
letter-spacing: 2px;
color: rgba(255,69,0,0.55);
line-height: 1;
}
.ops-stat-val {
font-size: 0.85rem;
letter-spacing: 2px;
color: rgba(200,200,200,0.6);
}
.ops-stat-val.ops-warn { color: rgba(255,200,0,0.65); }
.ops-stat-val.ops-crit { color: rgba(255,50,0,0.7); animation: blinker 2s infinite; }
.ops-divider {
color: rgba(255,69,0,0.2);
font-size: 0.7rem;
margin-top: 8px;
}
.ops-sign-hint {
text-align: center;
margin-top: 8px;
font-size: 0.55rem;
letter-spacing: 4px;
color: rgba(255,69,0,0.3);
transition: color 0.3s;
}
#ops-dashboard-sign:hover .ops-sign-hint { color: rgba(255,69,0,0.6); }
/* ═══════════════════════════════════════
OPS PANEL (inside terminal, expandable)
═══════════════════════════════════════ */
#ops-panel {
max-height: 0;
overflow: hidden;
transition: max-height 0.55s cubic-bezier(0.4, 0, 0.2, 1);
border-bottom: 0px solid rgba(255,69,0,0);
}
#ops-panel.ops-open {
max-height: 420px;
border-bottom: 1px solid rgba(255,69,0,0.2);
margin-bottom: 10px;
}
#ops-panel-vitals {
padding: 6px 0 2px;
font-size: 0.7rem;
letter-spacing: 1px;
color: rgba(255,60,0,0.5);
white-space: pre;
overflow: hidden;
text-align: center;
}
#ops-panel-log {
padding: 4px 0 8px;
font-size: 0.72rem;
line-height: 1.6;
color: rgba(200,180,130,0.75);
white-space: pre;
overflow-y: auto;
max-height: 340px;
}
#ops-panel-log .ops-line-section { color: rgba(255,69,0,0.55); }
#ops-panel-log .ops-line-label { color: rgba(212,175,55,0.6); }
#ops-panel-log .ops-line-crit { color: rgba(255,40,0,0.8); }
#ops-panel-log .ops-line-ok { color: rgba(0,220,80,0.6); }
#ops-panel-log .ops-line-dim { color: rgba(120,120,120,0.5); }
@keyframes vitals-scan {
0% { content: 'VITALMONITOR ▁▂▃▂▁▃▂▁▁▁▁▁▁▁▁▁▁▁▁▁ FLATLINE'; }
20% { content: 'VITALMONITOR ▁▁▂▃▂▁▃▂▁▁▁▁▁▁▁▁▁▁▁▁ FLATLINE'; }
40% { content: 'VITALMONITOR ▁▁▁▂▃▂▁▃▂▁▁▁▁▁▁▁▁▁▁▁ FLATLINE'; }
60% { content: 'VITALMONITOR ▁▁▁▁▂▃▂▁▃▂▁▁▁▁▁▁▁▁▁▁ FLATLINE'; }
80% { content: 'VITALMONITOR ▁▁▁▁▁▂▃▂▁▃▂▁▁▁▁▁▁▁▁▁ FLATLINE'; }
100% { content: 'VITALMONITOR ▁▁▁▁▁▁▂▃▂▁▃▂▁▁▁▁▁▁▁▁ FLATLINE'; }
}
/* terminal expands when ops panel is open */
.terminal-wrapper.ops-expanded #system-log {
transition: min-height 0.55s cubic-bezier(0.4,0,0.2,1);
}