>
@@ -134,6 +166,17 @@
HISTORISCHES ARCHIV
+
+
+
+
⚙
+
⚙
+
⚙
+
⚙
+
; ?>/assets/img/hp_muti_steampunk_02.jpg)
+
+
+
diff --git a/html/wp-content/themes/ki-labor/script.js b/html/wp-content/themes/ki-labor/script.js
index 6b0ab6d..f46d9a5 100644
--- a/html/wp-content/themes/ki-labor/script.js
+++ b/html/wp-content/themes/ki-labor/script.js
@@ -765,6 +765,105 @@
}
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();
+ }
+ });
+ }
+
});
})();
diff --git a/html/wp-content/themes/ki-labor/style.css b/html/wp-content/themes/ki-labor/style.css
index 929fbb2..31af035 100644
--- a/html/wp-content/themes/ki-labor/style.css
+++ b/html/wp-content/themes/ki-labor/style.css
@@ -279,11 +279,12 @@ body.mode-ghost .prompt {
color: #0f0;
font-family: 'Courier New', monospace;
padding: 15px;
- margin-top: 30px;
- height: 250px; /* Mehr Platz für Input */
+ margin-top: 0;
+ min-height: 250px;
display: flex;
flex-direction: column;
box-shadow: inset 0 0 10px #000;
+ transition: min-height 0.55s cubic-bezier(0.4,0,0.2,1);
}
#log-output {
@@ -709,6 +710,88 @@ body.mode-anarchy .hero-image {
}
#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 {
position: relative; max-width: 800px; margin: 40px auto;
}
@@ -908,3 +991,158 @@ body.mode-time-warp {
filter: blur(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);
+}