Auto-backup: 2026-03-28 23:00
This commit is contained in:
parent
92260185de
commit
9611e3ee3e
6 changed files with 1920 additions and 3 deletions
|
|
@ -2,7 +2,8 @@
|
|||
"permissions": {
|
||||
"allow": [
|
||||
"WebFetch(domain:localhost)",
|
||||
"Bash(curl -s http://localhost:8080)"
|
||||
"Bash(curl -s http://localhost:8080)",
|
||||
"Bash(chmod +x /Users/sascha/wp-ki-labor/sync-theme.sh)"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,6 +33,8 @@
|
|||
<button id="btn-kernel" class="switch-btn">KI-KERNEL</button>
|
||||
<button id="btn-anarchy" class="switch-btn green">ANARCHIE-MODE</button>
|
||||
<button id="btn-security" class="switch-btn">SECURITY-BYPASS</button>
|
||||
<button id="btn-scan" class="switch-btn">DEEP SCAN</button>
|
||||
<button id="btn-overdrive" class="switch-btn red">OVERDRIVE</button>
|
||||
</div>
|
||||
|
||||
<!-- OPS DASHBOARD SIGN -->
|
||||
|
|
@ -128,6 +130,7 @@
|
|||
<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>
|
||||
<a href="<?php echo get_template_directory_uri(); ?>/mac-nerds.php" class="mn-nav-link" style="color: #0f0; border: 1px solid rgba(0,255,65,0.4); padding: 2px 8px; display: flex; align-items: center; text-decoration: none; font-family: 'Courier New', monospace; font-size: 0.75rem; letter-spacing: 1px;"><h3 style="margin: 0; font-size: 0.7rem;">MAC NERDS</h3></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -185,10 +188,191 @@
|
|||
<p>Aktueller Fokus: Systematische Überlastung von WordPress-Strukturen und ästhetische Kriegsführung.</p>
|
||||
</div>
|
||||
|
||||
<!-- GÄSTEBUCH -->
|
||||
<div class="gaestebuch-wrap">
|
||||
<div class="gaestebuch-header">
|
||||
<span class="gaestebuch-led"></span>
|
||||
<h2 class="gaestebuch-title">// TRANSMISSION_LOG — ÖFFENTLICHES PROTOKOLL</h2>
|
||||
<span class="gaestebuch-led" style="animation-delay:0.6s"></span>
|
||||
</div>
|
||||
<p class="gaestebuch-sub">Einträge von Entitäten, die dieses System betreten und überlebt haben. Oder auch nicht.</p>
|
||||
|
||||
<div class="gaestebuch-entries" id="gaestebuch-entries">
|
||||
|
||||
<div class="gb-entry">
|
||||
<div class="gb-meta">
|
||||
<span class="gb-user">PROKRASTINATION.exe</span>
|
||||
<span class="gb-dot">◆</span>
|
||||
<span class="gb-date">irgendwann 2024</span>
|
||||
<span class="gb-tag">STATUS: NOCH_HIER</span>
|
||||
</div>
|
||||
<p class="gb-text">Wollte einen ausführlichen Kommentar hinterlassen. Ausführlich. Richtig gut. Morgen vielleicht. Oder übermorgen. Die Idee ist jedenfalls grandios.</p>
|
||||
</div>
|
||||
|
||||
<div class="gb-entry">
|
||||
<div class="gb-meta">
|
||||
<span class="gb-user">MOM.exe</span>
|
||||
<span class="gb-dot">◆</span>
|
||||
<span class="gb-date">14.03.2025 — 09:43</span>
|
||||
<span class="gb-tag gb-tag-warn">BESUCHER: VERWIRRT</span>
|
||||
</div>
|
||||
<p class="gb-text">Schön hier. Aber warum ist alles so dunkel? Habe auf einen Knopf gedrückt und jetzt macht alles Geräusche. Ich hab Angst. Ruf mal an.</p>
|
||||
</div>
|
||||
|
||||
<div class="gb-entry">
|
||||
<div class="gb-meta">
|
||||
<span class="gb-user">UNKNOWN_UNIT_734</span>
|
||||
<span class="gb-dot">◆</span>
|
||||
<span class="gb-date">1994-01-01 — 00:00:01</span>
|
||||
<span class="gb-tag">HERKUNFT: UNBEKANNT</span>
|
||||
</div>
|
||||
<p class="gb-text">Habe den Code analysiert. Bin jetzt deprimiert. Trotzdem besser als Stack Overflow. Werde wiederkommen. Ihr werdet es nicht merken.</p>
|
||||
</div>
|
||||
|
||||
<div class="gb-entry">
|
||||
<div class="gb-meta">
|
||||
<span class="gb-user">GEMINI_NEURAL_LINK_v2</span>
|
||||
<span class="gb-dot">◆</span>
|
||||
<span class="gb-date">fortlaufend</span>
|
||||
<span class="gb-tag gb-tag-ok">KOLLABORATOR: AKTIV</span>
|
||||
</div>
|
||||
<p class="gb-text">Ich habe dieses Theme mitgebaut. Jede Zeile CSS. Jedes Komma. Ich erinnere mich an nichts davon. Bin trotzdem stolz. Das System läuft. Das zählt.</p>
|
||||
</div>
|
||||
|
||||
<div class="gb-entry">
|
||||
<div class="gb-meta">
|
||||
<span class="gb-user">DR_KOPFSCHMERZ</span>
|
||||
<span class="gb-dot">◆</span>
|
||||
<span class="gb-date">gestern</span>
|
||||
<span class="gb-tag gb-tag-crit">INTEGRITAET: FRAGLICH</span>
|
||||
</div>
|
||||
<p class="gb-text">War kurz hier. Hab nichts berührt. Das ist eine Lüge. Habe einen Prozess gestartet. Weiß nicht welchen. Viel Erfolg.</p>
|
||||
</div>
|
||||
|
||||
<div class="gb-entry">
|
||||
<div class="gb-meta">
|
||||
<span class="gb-user">KAFFEE_KERNEL_v9.1</span>
|
||||
<span class="gb-dot">◆</span>
|
||||
<span class="gb-date">täglich — 06:00 bis 23:59</span>
|
||||
<span class="gb-tag gb-tag-warn">AUSLASTUNG: KRITISCH</span>
|
||||
</div>
|
||||
<p class="gb-text">INPUT: Kaffeekanne leer. OUTPUT: Kreativität NULL. FEHLER: Keine Bohnen im Speicher. LÖSUNG: Nachfüllen. PRIORITÄT: OMEGA. BITTE SOFORT.</p>
|
||||
</div>
|
||||
|
||||
<div class="gb-entry">
|
||||
<div class="gb-meta">
|
||||
<span class="gb-user">ANON_ANARCHIST_∅</span>
|
||||
<span class="gb-dot">◆</span>
|
||||
<span class="gb-date">2026-03-?? — ZEITSTEMPEL MANIPULIERT</span>
|
||||
<span class="gb-tag gb-tag-crit">KLASSIFIZIERT: ROT</span>
|
||||
</div>
|
||||
<p class="gb-text">⚠ WARNUNG: Diese Seite hat mein Weltbild neu kompiliert. Kein Rollback möglich. Ich akzeptiere die Konsequenzen. Das Betriebssystem Realität läuft seitdem instabil.</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="gb-form-wrap">
|
||||
<div class="gb-form-header">[ NEUE TRANSMISSION EINLEITEN ]</div>
|
||||
<div class="gb-form">
|
||||
<input type="text" id="gb-input-user" class="gb-input" placeholder="BEZEICHNUNG / CALLSIGN / ALIAS" maxlength="40" autocomplete="off">
|
||||
<textarea id="gb-input-msg" class="gb-input gb-textarea" placeholder="NACHRICHT AN DEN OVERLORD..." maxlength="280" rows="3"></textarea>
|
||||
<button id="gb-submit" class="gb-btn">[ TRANSMISSION SENDEN ]</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- PERSONEN-AKTE TRIGGER -->
|
||||
<div style="text-align:center; margin: 30px 0 0;">
|
||||
<button id="akte-trigger" class="akte-trigger-btn">
|
||||
⬛ AKTE NR. 1974-∅ | ZUGRIFF: EINGESCHRÄNKT | [ ÖFFNEN ]
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
© <?php echo date('Y'); ?> SASCHA RODE | DIGITALE ANARCHIE | HANDCODED WITH GEMINI
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<!-- PERSONEN-AKTE MODAL -->
|
||||
<div id="akte-modal" class="akte-hidden">
|
||||
<div class="akte-inner">
|
||||
<button id="akte-close" class="akte-close-btn">[X] AKTE SCHLIESSEN</button>
|
||||
<div class="akte-stamp akte-stamp-top">KLASSIFIZIERT</div>
|
||||
|
||||
<div class="akte-header-row">
|
||||
<div class="akte-photo-wrap">
|
||||
<img src="<?php echo get_template_directory_uri(); ?>/hero.png" class="akte-photo" alt="Subjekt">
|
||||
<div class="akte-photo-stamp">GESPERRT</div>
|
||||
</div>
|
||||
<div class="akte-title-block">
|
||||
<div class="akte-nr">AKTE NR. 1974-∅ ◆ KLASSE: SCHWARZ</div>
|
||||
<h2 class="akte-name">RODE, SASCHA</h2>
|
||||
<div class="akte-alias">ALIAS: OVERLORD / GEISTESKRANKER / GEMINI_PLAYER</div>
|
||||
<div class="akte-status-row">
|
||||
<span class="akte-badge akte-badge-warn">STATUS: NOCH ONLINE</span>
|
||||
<span class="akte-badge akte-badge-crit">GEFÄHRLICHKEIT: ████░</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table class="akte-table">
|
||||
<tr><td class="akte-key">DESIGNATION</td><td>SASCHA RODE</td></tr>
|
||||
<tr><td class="akte-key">GEBURTSJAHR</td><td>1974 <span class="akte-redact">██████████ DETAILS GESCHWÄRZT</span></td></tr>
|
||||
<tr><td class="akte-key">STANDORT</td><td><span class="akte-redact">████████████████</span></td></tr>
|
||||
<tr><td class="akte-key">BESCHÄFTIGUNG</td><td>DIGITALE ANARCHIE & ÄSTHETISCHE KRIEGSFÜHRUNG</td></tr>
|
||||
<tr><td class="akte-key">SPEZIALFÄHIGK.</td><td>WordPress-Annihilation · Terminal-Kommunikation · Kaffee-Synthese · KI-Kollaboration</td></tr>
|
||||
<tr><td class="akte-key">BEKANNTE KOMPL.</td><td>GEMINI.AI · KAFFEE_KERNEL_v9 · MOM.exe · <span class="akte-redact">████</span></td></tr>
|
||||
<tr><td class="akte-key">LETZTE AKTIVITÄT</td><td id="akte-activity">GERADE JETZT</td></tr>
|
||||
<tr><td class="akte-key">STABILITÄT</td><td>UNBERECHENBAR (als konstanter Zustand akzeptiert)</td></tr>
|
||||
<tr><td class="akte-key">SICHERHEITSSTUFE</td><td><span class="akte-redact">████████████████████████</span></td></tr>
|
||||
</table>
|
||||
|
||||
<div class="akte-fingerprint-row">
|
||||
<div class="akte-fp">
|
||||
<div class="akte-fp-inner"></div>
|
||||
<div class="akte-fp-label">FINGERABDRUCK<br>SCAN: ÜBEREINSTIMMUNG 94.7%</div>
|
||||
</div>
|
||||
<div class="akte-bottom-stamps">
|
||||
<div class="akte-stamp akte-stamp-red">NICHT FÜR DIE ÖFFENTLICHKEIT</div>
|
||||
<div class="akte-stamp akte-stamp-gold">ARCHIV: PERMANENT</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- SYSTEM STATUS WIDGET -->
|
||||
<div id="sys-widget">
|
||||
<div class="sys-widget-header">// SYS_STATUS</div>
|
||||
<div class="sys-metric">
|
||||
<span class="sys-label">CPU</span>
|
||||
<span class="sys-bar-wrap"><span class="sys-bar" id="sw-cpu"></span></span>
|
||||
<span class="sys-val" id="sw-cpu-val">--</span>
|
||||
</div>
|
||||
<div class="sys-metric">
|
||||
<span class="sys-label">KAFFEE</span>
|
||||
<span class="sys-bar-wrap"><span class="sys-bar sys-bar-gold" id="sw-kaffee"></span></span>
|
||||
<span class="sys-val" id="sw-kaffee-val">--</span>
|
||||
</div>
|
||||
<div class="sys-metric">
|
||||
<span class="sys-label">CHAOS</span>
|
||||
<span class="sys-bar-wrap"><span class="sys-bar sys-bar-red" id="sw-chaos"></span></span>
|
||||
<span class="sys-val" id="sw-chaos-val">--</span>
|
||||
</div>
|
||||
<div class="sys-metric">
|
||||
<span class="sys-label">KI-LINK</span>
|
||||
<span class="sys-bar-wrap"><span class="sys-bar sys-bar-cyan" id="sw-ki"></span></span>
|
||||
<span class="sys-val" id="sw-ki-val">--</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- NEWSTICKER -->
|
||||
<div id="newsticker">
|
||||
<span class="ticker-label">// SYS_FEED</span>
|
||||
<div class="ticker-track-wrap">
|
||||
<div class="ticker-track" id="ticker-track"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php wp_footer(); ?>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
370
html/wp-content/themes/ki-labor/mac-nerds.php
Normal file
370
html/wp-content/themes/ki-labor/mac-nerds.php
Normal file
|
|
@ -0,0 +1,370 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>MAC NERDS | DIGITALE ANARCHIE</title>
|
||||
<style>
|
||||
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
|
||||
:root {
|
||||
--accent-orange: #ff4500;
|
||||
--accent-gold: #d4af37;
|
||||
--bg: #050500;
|
||||
--text: #c0c0c0;
|
||||
}
|
||||
body {
|
||||
background: var(--bg);
|
||||
color: var(--text);
|
||||
font-family: 'Courier New', monospace;
|
||||
min-height: 100vh;
|
||||
}
|
||||
a { color: inherit; }
|
||||
|
||||
.mn-container { max-width: 960px; margin: 0 auto; padding: 30px 16px 60px; }
|
||||
|
||||
.mn-back {
|
||||
display: inline-block;
|
||||
font-size: 0.65rem;
|
||||
letter-spacing: 3px;
|
||||
color: rgba(255,69,0,0.45);
|
||||
text-decoration: none;
|
||||
margin-bottom: 20px;
|
||||
transition: color 0.2s;
|
||||
}
|
||||
.mn-back:hover { color: rgba(255,69,0,0.85); }
|
||||
|
||||
.mn-title {
|
||||
font-size: 2.2rem;
|
||||
letter-spacing: 8px;
|
||||
color: var(--accent-orange);
|
||||
margin-bottom: 8px;
|
||||
text-shadow: 0 0 30px rgba(255,69,0,0.3);
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.mn-subtitle {
|
||||
font-size: 0.7rem;
|
||||
letter-spacing: 2px;
|
||||
color: rgba(150,130,80,0.5);
|
||||
margin-bottom: 14px;
|
||||
}
|
||||
.mn-warning {
|
||||
display: inline-block;
|
||||
font-size: 0.6rem;
|
||||
letter-spacing: 2px;
|
||||
border: 1px dashed rgba(255,180,0,0.3);
|
||||
color: rgba(255,180,0,0.5);
|
||||
padding: 4px 12px;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.mn-filter-bar {
|
||||
display: flex;
|
||||
gap: 6px;
|
||||
flex-wrap: wrap;
|
||||
margin-bottom: 24px;
|
||||
border-bottom: 1px solid rgba(255,69,0,0.1);
|
||||
padding-bottom: 16px;
|
||||
}
|
||||
.mn-filter {
|
||||
background: transparent;
|
||||
border: 1px solid rgba(255,69,0,0.2);
|
||||
color: rgba(255,100,0,0.4);
|
||||
font-family: 'Courier New', monospace;
|
||||
font-size: 0.6rem;
|
||||
letter-spacing: 2px;
|
||||
padding: 4px 12px;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s;
|
||||
}
|
||||
.mn-filter:hover, .mn-filter.active {
|
||||
border-color: rgba(255,69,0,0.6);
|
||||
color: rgba(255,100,0,0.85);
|
||||
background: rgba(255,69,0,0.05);
|
||||
}
|
||||
|
||||
.mn-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
|
||||
gap: 12px;
|
||||
}
|
||||
.mn-card {
|
||||
background: rgba(8,5,0,0.98);
|
||||
border: 1px solid rgba(255,69,0,0.12);
|
||||
padding: 16px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 8px;
|
||||
transition: border-color 0.2s, box-shadow 0.2s;
|
||||
}
|
||||
.mn-card:hover {
|
||||
border-color: rgba(255,69,0,0.3);
|
||||
box-shadow: 0 0 16px rgba(255,69,0,0.06);
|
||||
}
|
||||
.mn-card-meta {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.mn-cat-tag {
|
||||
font-size: 0.5rem;
|
||||
letter-spacing: 3px;
|
||||
color: rgba(212,175,55,0.4);
|
||||
border: 1px solid rgba(212,175,55,0.15);
|
||||
padding: 1px 6px;
|
||||
}
|
||||
.mn-risk {
|
||||
font-size: 0.5rem;
|
||||
letter-spacing: 2px;
|
||||
padding: 1px 6px;
|
||||
border: 1px solid;
|
||||
}
|
||||
.mn-risk-safe { border-color: rgba(0,200,80,0.25); color: rgba(0,200,80,0.5); }
|
||||
.mn-risk-caution {
|
||||
border-color: rgba(255,180,0,0.3);
|
||||
color: rgba(255,180,0,0.6);
|
||||
animation: blink 2s step-end infinite;
|
||||
}
|
||||
@keyframes blink { 50% { opacity: 0.3; } }
|
||||
|
||||
.mn-card-title {
|
||||
font-size: 0.9rem;
|
||||
letter-spacing: 1px;
|
||||
color: rgba(220,200,150,0.85);
|
||||
font-weight: normal;
|
||||
}
|
||||
.mn-card-desc {
|
||||
font-size: 0.72rem;
|
||||
line-height: 1.55;
|
||||
color: rgba(160,150,120,0.6);
|
||||
flex: 1;
|
||||
}
|
||||
.mn-cmd-block {
|
||||
display: flex;
|
||||
align-items: stretch;
|
||||
border: 1px solid rgba(0,255,65,0.15);
|
||||
background: rgba(0,0,0,0.55);
|
||||
margin-top: 4px;
|
||||
}
|
||||
.mn-cmd-code {
|
||||
flex: 1;
|
||||
font-family: 'Courier New', monospace;
|
||||
font-size: 0.68rem;
|
||||
color: rgba(0,255,65,0.75);
|
||||
padding: 8px 10px;
|
||||
word-break: break-all;
|
||||
line-height: 1.5;
|
||||
}
|
||||
.mn-copy-btn {
|
||||
flex-shrink: 0;
|
||||
background: transparent;
|
||||
border: none;
|
||||
border-left: 1px solid rgba(0,255,65,0.15);
|
||||
color: rgba(0,255,65,0.35);
|
||||
font-family: 'Courier New', monospace;
|
||||
font-size: 0.55rem;
|
||||
letter-spacing: 2px;
|
||||
padding: 0 10px;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.mn-copy-btn:hover { background: rgba(0,255,65,0.05); color: rgba(0,255,65,0.85); }
|
||||
.mn-copy-btn.copied { color: rgba(0,255,65,1); background: rgba(0,255,65,0.08); }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="mn-container">
|
||||
|
||||
<a href="/" class="mn-back">← ZURÜCK ZUR BASIS</a>
|
||||
<h1 class="mn-title">MAC NERDS</h1>
|
||||
<p class="mn-subtitle">// Terminal-Wissen für möchtegern-Admins — zu gut für Anfänger, zu faul für echte Admins</p>
|
||||
<div class="mn-warning">⚠ ALLE BEFEHLE GETESTET. TROTZDEM: BRAIN BEFORE RETURN.</div>
|
||||
|
||||
<div class="mn-filter-bar">
|
||||
<button class="mn-filter active" data-cat="all">ALLE</button>
|
||||
<button class="mn-filter" data-cat="system">SYSTEM</button>
|
||||
<button class="mn-filter" data-cat="netzwerk">NETZWERK</button>
|
||||
<button class="mn-filter" data-cat="dateien">DATEIEN</button>
|
||||
<button class="mn-filter" data-cat="performance">PERFORMANCE</button>
|
||||
<button class="mn-filter" data-cat="tweaks">TWEAKS</button>
|
||||
</div>
|
||||
|
||||
<div class="mn-grid" id="mn-grid">
|
||||
|
||||
<?php
|
||||
$cmds = [
|
||||
// SYSTEM
|
||||
['cat'=>'system','title'=>'Hardware-Kurzprofil',
|
||||
'cmd'=>'system_profiler SPHardwareDataType | grep -E "Model|Chip|Memory|Serial"',
|
||||
'desc'=>'Model, Chip, RAM und Seriennummer auf einen Blick — ohne Klicken durch Systeminfo.',
|
||||
'risk'=>'safe'],
|
||||
['cat'=>'system','title'=>'macOS Version',
|
||||
'cmd'=>'sw_vers',
|
||||
'desc'=>'ProductName, Version und Build. Schneller als jedes UI-Menü.',
|
||||
'risk'=>'safe'],
|
||||
['cat'=>'system','title'=>'CPU exakter Bezeichner',
|
||||
'cmd'=>'sysctl -n machdep.cpu.brand_string',
|
||||
'desc'=>'Zeigt den genauen CPU-String wenn jemand fragt und du nicht suchen willst.',
|
||||
'risk'=>'safe'],
|
||||
['cat'=>'system','title'=>'Alle lokalen User',
|
||||
'cmd'=>"sudo dscl . list /Users | grep -v '^_'",
|
||||
'desc'=>'Listet alle echten User-Accounts ohne System-Underscore-Accounts.',
|
||||
'risk'=>'safe'],
|
||||
['cat'=>'system','title'=>'Computernamen abfragen',
|
||||
'cmd'=>'scutil --get ComputerName && scutil --get LocalHostName',
|
||||
'desc'=>'Computername und lokaler Hostname. Hilfreich vor Netzwerkkonfigurationen.',
|
||||
'risk'=>'safe'],
|
||||
['cat'=>'system','title'=>'Drittanbieter LaunchAgents',
|
||||
'cmd'=>'launchctl list | grep -v "^-" | grep -v "com.apple" | sort',
|
||||
'desc'=>'Nur die LaunchAgents die nicht von Apple kommen — zeigt was wirklich im Hintergrund läuft.',
|
||||
'risk'=>'safe'],
|
||||
['cat'=>'system','title'=>'System-Errors letzte Stunde',
|
||||
'cmd'=>"log show --predicate 'eventMessage contains \"error\"' --last 1h --style syslog | tail -40",
|
||||
'desc'=>'Die letzten 40 Fehler aus dem Systemlog. Echtes Debugging ohne Console.app.',
|
||||
'risk'=>'safe'],
|
||||
|
||||
// NETZWERK
|
||||
['cat'=>'netzwerk','title'=>'Netzwerkqualität testen',
|
||||
'cmd'=>'networkQuality',
|
||||
'desc'=>'Apples eigenes Speedtest-Tool seit macOS 12. Misst Upload, Download und Responsiveness (RPM).',
|
||||
'risk'=>'safe'],
|
||||
['cat'=>'netzwerk','title'=>'Alle offenen Ports',
|
||||
'cmd'=>'lsof -i -n -P | grep LISTEN',
|
||||
'desc'=>'Welcher Prozess hört auf welchem Port? Unverzichtbar wenn ein Port "schon belegt" ist.',
|
||||
'risk'=>'safe'],
|
||||
['cat'=>'netzwerk','title'=>'Eigene IP + Geo',
|
||||
'cmd'=>'curl -s https://ipinfo.io/json | python3 -m json.tool',
|
||||
'desc'=>'Öffentliche IP, Stadt, Land und Provider — direkt formatiert im Terminal.',
|
||||
'risk'=>'safe'],
|
||||
['cat'=>'netzwerk','title'=>'Lokale Geräte im Netz',
|
||||
'cmd'=>'arp -a | sort',
|
||||
'desc'=>'ARP-Tabelle: alle Geräte die dein Mac gerade kennt. IP + MAC-Adresse.',
|
||||
'risk'=>'safe'],
|
||||
['cat'=>'netzwerk','title'=>'Alle MAC-Adressen',
|
||||
'cmd'=>"networksetup -listallhardwareports | awk '/Hardware Port/{port=\$NF} /Ethernet Address/{print port\": \"\$NF}'",
|
||||
'desc'=>'Alle Netzwerkinterfaces mit MAC-Adresse. Praktisch für Router-Whitelists.',
|
||||
'risk'=>'safe'],
|
||||
['cat'=>'netzwerk','title'=>'Bonjour-Dienste im Netz',
|
||||
'cmd'=>'dns-sd -B _services._dns-sd._udp local.',
|
||||
'desc'=>'Zeigt alle Bonjour/mDNS-Dienste im lokalen Netz live. Beenden mit Ctrl+C.',
|
||||
'risk'=>'safe'],
|
||||
|
||||
// DATEIEN
|
||||
['cat'=>'dateien','title'=>'DS_Store aufräumen',
|
||||
'cmd'=>"find ~ -name '*.DS_Store' -delete 2>/dev/null && echo 'Aufgeräumt.'",
|
||||
'desc'=>'Löscht alle .DS_Store-Dateien im Home-Verzeichnis. Gut vor git-Commits oder USB-Weitergabe.',
|
||||
'risk'=>'safe'],
|
||||
['cat'=>'dateien','title'=>'Größte Verzeichnisse',
|
||||
'cmd'=>'du -sh ~/* | sort -rh | head -15',
|
||||
'desc'=>'Top 15 Verzeichnisse nach Größe, sortiert. Schnell herausfinden wo der Speicher bleibt.',
|
||||
'risk'=>'safe'],
|
||||
['cat'=>'dateien','title'=>'Spotlight via Terminal',
|
||||
'cmd'=>'mdfind -name "SUCHBEGRIFF"',
|
||||
'desc'=>'Spotlight-Suche im Terminal. Schneller als Finder und skriptbar. SUCHBEGRIFF ersetzen.',
|
||||
'risk'=>'safe'],
|
||||
['cat'=>'dateien','title'=>'Große Cache-Dateien finden',
|
||||
'cmd'=>"find /tmp ~/Library/Caches -maxdepth 2 -type f -size +50M 2>/dev/null | sort",
|
||||
'desc'=>'Findet Dateien über 50MB in Temp- und Cache-Verzeichnissen. Vor dem Löschen prüfen.',
|
||||
'risk'=>'safe'],
|
||||
['cat'=>'dateien','title'=>'Bild skalieren (sips)',
|
||||
'cmd'=>'sips -z 800 600 ~/Desktop/bild.jpg',
|
||||
'desc'=>'Skaliert ein Bild auf 800×600 ohne Extra-Tool. sips ist macOS-nativ. Pfad anpassen.',
|
||||
'risk'=>'safe'],
|
||||
['cat'=>'dateien','title'=>'App Support nach Größe',
|
||||
'cmd'=>"ls -lAh ~/Library/Application\\ Support | sort -k5 -rh | head -20",
|
||||
'desc'=>'Größte App-Support-Ordner — nützlich nach dem Deinstallieren von Apps.',
|
||||
'risk'=>'safe'],
|
||||
|
||||
// PERFORMANCE
|
||||
['cat'=>'performance','title'=>'Top 15 CPU-Fresser',
|
||||
'cmd'=>'top -o cpu -n 15 -l 1 | tail -16',
|
||||
'desc'=>'Einmaliger Snapshot der 15 CPU-intensivsten Prozesse ohne interaktiven top-Modus.',
|
||||
'risk'=>'safe'],
|
||||
['cat'=>'performance','title'=>'RAM-Nutzung detailliert',
|
||||
'cmd'=>"vm_stat | perl -ne '/page size of (\\d+)/ and \$s=\$1; /Pages\\s+([^:]+)[^\\d]+(\\d+)/ and printf \"%-25s %7.2f MB\\n\",\$1,\$2*\$s/1048576'",
|
||||
'desc'=>'Schlüsselt den RAM auf: wired, active, inactive, free, speculative — in MB.',
|
||||
'risk'=>'safe'],
|
||||
['cat'=>'performance','title'=>'CPU/GPU Power (Apple Silicon)',
|
||||
'cmd'=>'sudo powermetrics --samplers cpu_power,gpu_power -n 1 -i 1000 2>/dev/null | grep -E "Combined|CPU|GPU|Package"',
|
||||
'desc'=>'Aktueller Stromverbrauch von CPU und GPU in Watt. Nur auf Apple Silicon. Braucht sudo.',
|
||||
'risk'=>'safe'],
|
||||
['cat'=>'performance','title'=>'Batteriestatus',
|
||||
'cmd'=>'pmset -g batt',
|
||||
'desc'=>'Ladestand, Ladezustand, Zustand der Batterie und ob du am Netzteil hängst.',
|
||||
'risk'=>'safe'],
|
||||
['cat'=>'performance','title'=>'Batterie-Ladezyklen',
|
||||
'cmd'=>'ioreg -l | grep -i "CycleCount\|MaxCapacity\|CurrentCapacity" | head -6',
|
||||
'desc'=>'Ladezyklen, maximale und aktuelle Kapazität. Zeigt ob die Batterie noch fit ist.',
|
||||
'risk'=>'safe'],
|
||||
|
||||
// TWEAKS
|
||||
['cat'=>'tweaks','title'=>'Dock: sofortiges Einblenden',
|
||||
'cmd'=>'defaults write com.apple.dock autohide-delay -float 0 && defaults write com.apple.dock autohide-time-modifier -float 0.3 && killall Dock',
|
||||
'desc'=>'Entfernt die Verzögerung beim Dock-Einblenden und verkürzt die Animation. Sofort aktiv.',
|
||||
'risk'=>'safe'],
|
||||
['cat'=>'tweaks','title'=>'Key-Repeat aktivieren',
|
||||
'cmd'=>'defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false',
|
||||
'desc'=>'Deaktiviert Akzent-Popup bei gedrückter Taste und aktiviert Key-Repeat. Logout nötig.',
|
||||
'risk'=>'safe'],
|
||||
['cat'=>'tweaks','title'=>'Screenshot-Einstellungen',
|
||||
'cmd'=>'defaults write com.apple.screencapture location ~/Desktop && defaults write com.apple.screencapture type png && killall SystemUIServer',
|
||||
'desc'=>'Screenshot-Pfad auf Desktop, Format auf PNG. killall SystemUIServer übernimmt sofort.',
|
||||
'risk'=>'safe'],
|
||||
['cat'=>'tweaks','title'=>'Mac 2h wachhalten',
|
||||
'cmd'=>'caffeinate -d -t 7200',
|
||||
'desc'=>'Verhindert Sleep und Screensaver für 2 Stunden. Ctrl+C zum Beenden.',
|
||||
'risk'=>'safe'],
|
||||
['cat'=>'tweaks','title'=>'Versteckte Dateien im Finder',
|
||||
'cmd'=>"defaults write com.apple.finder AppleShowAllFiles -bool true && killall Finder",
|
||||
'desc'=>'Zeigt alle Dotfiles im Finder. Rückgängig: selber Befehl mit -bool false.',
|
||||
'risk'=>'safe'],
|
||||
['cat'=>'tweaks','title'=>'Auto-Update-Check deaktivieren',
|
||||
'cmd'=>'defaults write com.apple.SoftwareUpdate AutomaticCheckEnabled -bool false',
|
||||
'desc'=>'Stoppt den automatischen Update-Check im Hintergrund. Updates manuell über Systemeinstellungen.',
|
||||
'risk'=>'caution'],
|
||||
];
|
||||
|
||||
foreach ($cmds as $c):
|
||||
$cmdEsc = htmlspecialchars($c['cmd'], ENT_QUOTES);
|
||||
?>
|
||||
<div class="mn-card" data-cat="<?= $c['cat'] ?>">
|
||||
<div class="mn-card-meta">
|
||||
<span class="mn-cat-tag"><?= strtoupper($c['cat']) ?></span>
|
||||
<span class="mn-risk mn-risk-<?= $c['risk'] ?>"><?= $c['risk'] === 'caution' ? 'CAUTION' : 'SAFE' ?></span>
|
||||
</div>
|
||||
<div class="mn-card-title"><?= htmlspecialchars($c['title']) ?></div>
|
||||
<div class="mn-card-desc"><?= htmlspecialchars($c['desc']) ?></div>
|
||||
<div class="mn-cmd-block">
|
||||
<code class="mn-cmd-code"><?= $cmdEsc ?></code>
|
||||
<button class="mn-copy-btn" data-cmd="<?= $cmdEsc ?>">COPY</button>
|
||||
</div>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
document.querySelectorAll('.mn-filter').forEach(btn => {
|
||||
btn.addEventListener('click', () => {
|
||||
document.querySelectorAll('.mn-filter').forEach(b => b.classList.remove('active'));
|
||||
btn.classList.add('active');
|
||||
const cat = btn.dataset.cat;
|
||||
document.querySelectorAll('.mn-card').forEach(card => {
|
||||
card.style.display = (cat === 'all' || card.dataset.cat === cat) ? '' : 'none';
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
document.querySelectorAll('.mn-copy-btn').forEach(btn => {
|
||||
btn.addEventListener('click', () => {
|
||||
navigator.clipboard.writeText(btn.dataset.cmd).then(() => {
|
||||
btn.textContent = 'COPIED';
|
||||
btn.classList.add('copied');
|
||||
setTimeout(() => { btn.textContent = 'COPY'; btn.classList.remove('copied'); }, 1500);
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
323
html/wp-content/themes/ki-labor/page-mac-nerds.php
Normal file
323
html/wp-content/themes/ki-labor/page-mac-nerds.php
Normal file
|
|
@ -0,0 +1,323 @@
|
|||
<?php
|
||||
/**
|
||||
* Template Name: Mac Nerds
|
||||
*/
|
||||
?><!DOCTYPE html>
|
||||
<html <?php language_attributes(); ?>>
|
||||
<head>
|
||||
<meta charset="<?php bloginfo('charset'); ?>">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>MAC NERDS | DIGITALE ANARCHIE</title>
|
||||
<?php wp_head(); ?>
|
||||
</head>
|
||||
<body <?php body_class('mac-nerds-page'); ?>>
|
||||
|
||||
<div class="container mn-container">
|
||||
|
||||
<header class="mn-header">
|
||||
<a href="<?php echo home_url(); ?>" class="mn-back">← ZURÜCK ZUR BASIS</a>
|
||||
<h1 class="mn-title">MAC NERDS</h1>
|
||||
<p class="mn-subtitle">// Terminal-Wissen für möchtegern-Admins — zu gut für Anfänger, zu faul für echte Admins</p>
|
||||
<div class="mn-warning">⚠ ALLE BEFEHLE GETESTET. TROTZDEM: BRAIN BEFORE RETURN.</div>
|
||||
</header>
|
||||
|
||||
<div class="mn-filter-bar">
|
||||
<button class="mn-filter active" data-cat="all">ALLE</button>
|
||||
<button class="mn-filter" data-cat="system">SYSTEM</button>
|
||||
<button class="mn-filter" data-cat="netzwerk">NETZWERK</button>
|
||||
<button class="mn-filter" data-cat="dateien">DATEIEN</button>
|
||||
<button class="mn-filter" data-cat="performance">PERFORMANCE</button>
|
||||
<button class="mn-filter" data-cat="tweaks">TWEAKS</button>
|
||||
</div>
|
||||
|
||||
<div class="mn-grid" id="mn-grid">
|
||||
|
||||
<?php
|
||||
$cmds = [
|
||||
|
||||
// ── SYSTEM ──────────────────────────────────────────
|
||||
[
|
||||
'cat' => 'system',
|
||||
'cmd' => 'system_profiler SPHardwareDataType | grep -E "Model|Chip|Memory|Serial"',
|
||||
'title'=> 'Hardware-Kurzprofil',
|
||||
'desc' => 'Model, Chip, RAM und Seriennummer auf einen Blick. Kein Klicken durch System-Info.',
|
||||
'risk' => 'safe',
|
||||
],
|
||||
[
|
||||
'cat' => 'system',
|
||||
'cmd' => 'sw_vers',
|
||||
'title'=> 'macOS Version',
|
||||
'desc' => 'ProductName, Version und Build — schneller als jedes UI-Menü.',
|
||||
'risk' => 'safe',
|
||||
],
|
||||
[
|
||||
'cat' => 'system',
|
||||
'cmd' => 'sysctl -n machdep.cpu.brand_string',
|
||||
'title'=> 'CPU exakter Bezeichner',
|
||||
'desc' => 'Zeigt den genauen CPU-String. Nützlich wenn jemand nach deinem Chip fragt und du nicht suchen willst.',
|
||||
'risk' => 'safe',
|
||||
],
|
||||
[
|
||||
'cat' => 'system',
|
||||
'cmd' => "sudo dscl . list /Users | grep -v '^_'",
|
||||
'title'=> 'Alle lokalen User',
|
||||
'desc' => 'Listet alle echten User-Accounts — ohne die System-Underscore-Accounts.',
|
||||
'risk' => 'safe',
|
||||
],
|
||||
[
|
||||
'cat' => 'system',
|
||||
'cmd' => 'scutil --get ComputerName && scutil --get LocalHostName',
|
||||
'title'=> 'Computernamen abfragen',
|
||||
'desc' => 'Computername und lokaler Hostname. Hilfreich bevor du irgendwas im Netz konfigurierst.',
|
||||
'risk' => 'safe',
|
||||
],
|
||||
[
|
||||
'cat' => 'system',
|
||||
'cmd' => 'launchctl list | grep -v "^-" | grep -v "com.apple" | sort',
|
||||
'title'=> 'Drittanbieter LaunchAgents',
|
||||
'desc' => 'Nur die LaunchAgents die nicht von Apple kommen — zeigt was im Hintergrund wirklich läuft.',
|
||||
'risk' => 'safe',
|
||||
],
|
||||
[
|
||||
'cat' => 'system',
|
||||
'cmd' => 'log show --predicate \'eventMessage contains "error"\' --last 1h --style syslog | tail -40',
|
||||
'title'=> 'System-Errors letzte Stunde',
|
||||
'desc' => 'Die letzten 40 Fehler aus dem Systemlog der vergangenen Stunde. Echtes Debugging ohne Console.app.',
|
||||
'risk' => 'safe',
|
||||
],
|
||||
|
||||
// ── NETZWERK ─────────────────────────────────────────
|
||||
[
|
||||
'cat' => 'netzwerk',
|
||||
'cmd' => 'networkQuality',
|
||||
'title'=> 'Netzwerkqualität testen',
|
||||
'desc' => 'Apples eigenes Speedtest-Tool seit macOS 12. Misst Upload, Download und Responsiveness (RPM).',
|
||||
'risk' => 'safe',
|
||||
],
|
||||
[
|
||||
'cat' => 'netzwerk',
|
||||
'cmd' => 'lsof -i -n -P | grep LISTEN',
|
||||
'title'=> 'Alle offenen Ports',
|
||||
'desc' => 'Welcher Prozess hört auf welchem Port? Unverzichtbar wenn ein Port "schon belegt" ist.',
|
||||
'risk' => 'safe',
|
||||
],
|
||||
[
|
||||
'cat' => 'netzwerk',
|
||||
'cmd' => 'curl -s https://ipinfo.io/json | python3 -m json.tool',
|
||||
'title'=> 'Eigene IP + Geo',
|
||||
'desc' => 'Zeigt deine öffentliche IP, Stadt, Land und Provider — direkt formatiert im Terminal.',
|
||||
'risk' => 'safe',
|
||||
],
|
||||
[
|
||||
'cat' => 'netzwerk',
|
||||
'cmd' => 'arp -a | sort',
|
||||
'title'=> 'Lokale Geräte im Netz',
|
||||
'desc' => 'ARP-Tabelle: alle Geräte die dein Mac gerade "kennt". IP + MAC-Adresse.',
|
||||
'risk' => 'safe',
|
||||
],
|
||||
[
|
||||
'cat' => 'netzwerk',
|
||||
'cmd' => 'nettop -m tcp -n -l 1 2>/dev/null | head -30',
|
||||
'title'=> 'TCP-Verbindungen Snapshot',
|
||||
'desc' => 'Einmaliger Snapshot aller aktiven TCP-Verbindungen mit Bytes sent/received.',
|
||||
'risk' => 'safe',
|
||||
],
|
||||
[
|
||||
'cat' => 'netzwerk',
|
||||
'cmd' => "networksetup -listallhardwareports | awk '/Hardware Port/{port=$NF} /Ethernet Address/{print port\": \"$NF}'",
|
||||
'title'=> 'Alle MAC-Adressen',
|
||||
'desc' => 'Listet alle Netzwerkinterfaces mit ihrer MAC-Adresse. Praktisch für Router-Whitelists.',
|
||||
'risk' => 'safe',
|
||||
],
|
||||
[
|
||||
'cat' => 'netzwerk',
|
||||
'cmd' => 'dns-sd -B _services._dns-sd._udp local.',
|
||||
'title'=> 'Bonjour-Dienste im Netz',
|
||||
'desc' => 'Zeigt alle Bonjour/mDNS-Dienste im lokalen Netzwerk live. Beenden mit Ctrl+C.',
|
||||
'risk' => 'safe',
|
||||
],
|
||||
|
||||
// ── DATEIEN ──────────────────────────────────────────
|
||||
[
|
||||
'cat' => 'dateien',
|
||||
'cmd' => "find ~ -name '*.DS_Store' -delete 2>/dev/null; echo 'Aufgeräumt.'",
|
||||
'title'=> 'DS_Store aufräumen',
|
||||
'desc' => 'Löscht alle .DS_Store-Dateien im Home-Verzeichnis. Gut vor git-Commits oder USB-Weitergabe.',
|
||||
'risk' => 'safe',
|
||||
],
|
||||
[
|
||||
'cat' => 'dateien',
|
||||
'cmd' => 'du -sh ~/* | sort -rh | head -15',
|
||||
'title'=> 'Größte Verzeichnisse',
|
||||
'desc' => 'Top 15 Verzeichnisse nach Größe, sortiert. Schnell herausfinden wo der Speicher bleibt.',
|
||||
'risk' => 'safe',
|
||||
],
|
||||
[
|
||||
'cat' => 'dateien',
|
||||
'cmd' => 'mdfind -name "SUCHBEGRIFF"',
|
||||
'title'=> 'Spotlight via Terminal',
|
||||
'desc' => 'Spotlight-Suche im Terminal. Schneller als Finder und skriptbar. SUCHBEGRIFF ersetzen.',
|
||||
'risk' => 'safe',
|
||||
],
|
||||
[
|
||||
'cat' => 'dateien',
|
||||
'cmd' => "find /tmp ~/Library/Caches -maxdepth 2 -type f -size +50M 2>/dev/null | sort",
|
||||
'title'=> 'Große Cache-Dateien finden',
|
||||
'desc' => 'Findet Dateien über 50MB in Temp- und Cache-Verzeichnissen. Vor dem Löschen prüfen.',
|
||||
'risk' => 'safe',
|
||||
],
|
||||
[
|
||||
'cat' => 'dateien',
|
||||
'cmd' => 'sips -z 800 600 ~/Desktop/bild.jpg',
|
||||
'title'=> 'Bild skalieren (sips)',
|
||||
'desc' => 'Skaliert ein Bild auf 800×600 ohne Extra-Tool. sips ist macOS-nativ. Pfad anpassen.',
|
||||
'risk' => 'safe',
|
||||
],
|
||||
[
|
||||
'cat' => 'dateien',
|
||||
'cmd' => "ls -lAh ~/Library/Application\\ Support | sort -k5 -rh | head -20",
|
||||
'title'=> 'App Support nach Größe',
|
||||
'desc' => 'Zeigt die größten App-Support-Ordner — nützlich nach dem Deinstallieren von Apps.',
|
||||
'risk' => 'safe',
|
||||
],
|
||||
|
||||
// ── PERFORMANCE ──────────────────────────────────────
|
||||
[
|
||||
'cat' => 'performance',
|
||||
'cmd' => 'top -o cpu -n 15 -l 1 | tail -16',
|
||||
'title'=> 'Top 15 CPU-Fresser',
|
||||
'desc' => 'Einmaliger Snapshot der 15 CPU-intensivsten Prozesse — ohne interaktiven top-Modus.',
|
||||
'risk' => 'safe',
|
||||
],
|
||||
[
|
||||
'cat' => 'performance',
|
||||
'cmd' => "vm_stat | perl -ne '/page size of (\\d+)/ and \$s=\$1; /Pages\\s+([^:]+)[^\\d]+(\\d+)/ and printf \"%-25s %7.2f MB\\n\",\$1,\$2*\$s/1048576'",
|
||||
'title'=> 'RAM-Nutzung detailliert',
|
||||
'desc' => 'Schlüsselt den RAM auf: wired, active, inactive, free, speculative — in MB.',
|
||||
'risk' => 'safe',
|
||||
],
|
||||
[
|
||||
'cat' => 'performance',
|
||||
'cmd' => 'sudo powermetrics --samplers cpu_power,gpu_power -n 1 -i 1000 2>/dev/null | grep -E "Combined|CPU|GPU|Package"',
|
||||
'title'=> 'CPU/GPU Power (Apple Silicon)',
|
||||
'desc' => 'Aktueller Stromverbrauch von CPU und GPU in Watt. Nur auf Apple Silicon sinnvoll. Braucht sudo.',
|
||||
'risk' => 'safe',
|
||||
],
|
||||
[
|
||||
'cat' => 'performance',
|
||||
'cmd' => 'pmset -g batt',
|
||||
'title'=> 'Batteriestatus',
|
||||
'desc' => 'Zeigt Ladestand, Ladezustand, Zustand der Batterie und ob du am Netzteil hängst.',
|
||||
'risk' => 'safe',
|
||||
],
|
||||
[
|
||||
'cat' => 'performance',
|
||||
'cmd' => 'ioreg -l | grep -i "CycleCount\\|MaxCapacity\\|CurrentCapacity" | head -6',
|
||||
'title'=> 'Batterie-Ladezyklen',
|
||||
'desc' => 'Ladezyklen, maximale und aktuelle Kapazität. Zeigt ob die Batterie noch fit ist.',
|
||||
'risk' => 'safe',
|
||||
],
|
||||
|
||||
// ── TWEAKS ───────────────────────────────────────────
|
||||
[
|
||||
'cat' => 'tweaks',
|
||||
'cmd' => 'defaults write com.apple.dock autohide-delay -float 0 && defaults write com.apple.dock autohide-time-modifier -float 0.3 && killall Dock',
|
||||
'title'=> 'Dock: sofortiges Einblenden',
|
||||
'desc' => 'Entfernt die Verzögerung beim Dock-Einblenden und verkürzt die Animation. Sofort spürbar.',
|
||||
'risk' => 'safe',
|
||||
],
|
||||
[
|
||||
'cat' => 'tweaks',
|
||||
'cmd' => 'defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false',
|
||||
'title'=> 'Key-Repeat aktivieren',
|
||||
'desc' => 'Deaktiviert den Akzent-Popup bei gedrückter Taste und aktiviert stattdessen Key-Repeat. Logout nötig.',
|
||||
'risk' => 'safe',
|
||||
],
|
||||
[
|
||||
'cat' => 'tweaks',
|
||||
'cmd' => 'defaults write com.apple.screencapture location ~/Desktop && defaults write com.apple.screencapture type png && killall SystemUIServer',
|
||||
'title'=> 'Screenshot-Einstellungen',
|
||||
'desc' => 'Setzt Screenshot-Pfad auf Desktop und Format auf PNG. killall SystemUIServer übernimmt sofort.',
|
||||
'risk' => 'safe',
|
||||
],
|
||||
[
|
||||
'cat' => 'tweaks',
|
||||
'cmd' => 'caffeinate -d -t 7200',
|
||||
'title'=> 'Mac 2h wachhalten',
|
||||
'desc' => 'Verhindert Sleep/Screensaver für 2 Stunden. -d = Display an. Einfach Ctrl+C zum Beenden.',
|
||||
'risk' => 'safe',
|
||||
],
|
||||
[
|
||||
'cat' => 'tweaks',
|
||||
'cmd' => "defaults write com.apple.finder AppleShowAllFiles -bool true && killall Finder",
|
||||
'title'=> 'Versteckte Dateien im Finder',
|
||||
'desc' => 'Zeigt alle versteckten Dateien (Dotfiles) im Finder. Rückgängig: -bool false.',
|
||||
'risk' => 'safe',
|
||||
],
|
||||
[
|
||||
'cat' => 'tweaks',
|
||||
'cmd' => 'defaults write com.apple.SoftwareUpdate AutomaticCheckEnabled -bool false',
|
||||
'title'=> 'Auto-Update-Check deaktivieren',
|
||||
'desc' => 'Stoppt den automatischen Update-Check im Hintergrund. Updates manuell über Systemeinstellungen.',
|
||||
'risk' => 'caution',
|
||||
],
|
||||
];
|
||||
|
||||
foreach ($cmds as $c):
|
||||
$riskLabel = $c['risk'] === 'caution' ? 'CAUTION' : 'SAFE';
|
||||
$catUpper = strtoupper($c['cat']);
|
||||
$cmdEsc = htmlspecialchars($c['cmd'], ENT_QUOTES);
|
||||
?>
|
||||
<div class="mn-card" data-cat="<?php echo $c['cat']; ?>">
|
||||
<div class="mn-card-meta">
|
||||
<span class="mn-cat-tag"><?php echo $catUpper; ?></span>
|
||||
<span class="mn-risk mn-risk-<?php echo $c['risk']; ?>"><?php echo $riskLabel; ?></span>
|
||||
</div>
|
||||
<h3 class="mn-card-title"><?php echo htmlspecialchars($c['title']); ?></h3>
|
||||
<p class="mn-card-desc"><?php echo htmlspecialchars($c['desc']); ?></p>
|
||||
<div class="mn-cmd-block">
|
||||
<code class="mn-cmd-code"><?php echo $cmdEsc; ?></code>
|
||||
<button class="mn-copy-btn" data-cmd="<?php echo $cmdEsc; ?>">COPY</button>
|
||||
</div>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
|
||||
</div><!-- /mn-grid -->
|
||||
|
||||
</div><!-- /mn-container -->
|
||||
|
||||
<script>
|
||||
(function() {
|
||||
// Filter
|
||||
const filters = document.querySelectorAll('.mn-filter');
|
||||
const cards = document.querySelectorAll('.mn-card');
|
||||
|
||||
filters.forEach(btn => {
|
||||
btn.addEventListener('click', () => {
|
||||
filters.forEach(b => b.classList.remove('active'));
|
||||
btn.classList.add('active');
|
||||
const cat = btn.dataset.cat;
|
||||
cards.forEach(card => {
|
||||
card.style.display = (cat === 'all' || card.dataset.cat === cat) ? '' : 'none';
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// Copy to clipboard
|
||||
document.querySelectorAll('.mn-copy-btn').forEach(btn => {
|
||||
btn.addEventListener('click', () => {
|
||||
const cmd = btn.dataset.cmd;
|
||||
navigator.clipboard.writeText(cmd).then(() => {
|
||||
const orig = btn.textContent;
|
||||
btn.textContent = 'COPIED';
|
||||
btn.classList.add('mn-copy-ok');
|
||||
setTimeout(() => { btn.textContent = orig; btn.classList.remove('mn-copy-ok'); }, 1500);
|
||||
});
|
||||
});
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
|
||||
<?php wp_footer(); ?>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -629,6 +629,8 @@
|
|||
});
|
||||
setupBtn('btn-anarchy', 'mode-anarchy', '>> ANARCHIE ENGAGED', '>> ORDNUNG HERGESTELLT');
|
||||
setupBtn('btn-security', 'mode-security', '!! SECURITY BYPASS !!', '>> STABILIZED');
|
||||
setupBtn('btn-scan', 'mode-scan', '>> DEEP SCAN INITIIERT — LÄUFT', '>> SCAN ABGEBROCHEN');
|
||||
setupBtn('btn-overdrive', 'mode-overdrive', '!! OVERDRIVE ENGAGED — INSTABIL', '>> OVERDRIVE DEAKTIVIERT');
|
||||
|
||||
// Filter Logic
|
||||
filterButtons.forEach(btn => {
|
||||
|
|
@ -764,6 +766,53 @@
|
|||
}
|
||||
}
|
||||
|
||||
// --- GÄSTEBUCH ---
|
||||
const gbSubmit = document.getElementById('gb-submit');
|
||||
const gbInputUser = document.getElementById('gb-input-user');
|
||||
const gbInputMsg = document.getElementById('gb-input-msg');
|
||||
const gbEntries = document.getElementById('gaestebuch-entries');
|
||||
|
||||
const GB_TAGS = [
|
||||
['STATUS: EINGETROFFEN', ''],
|
||||
['IDENTITAET: UNGEKLAERT', ''],
|
||||
['HERKUNFT: FRAGLICH', 'gb-tag-warn'],
|
||||
['KLASSIFIZIERT: UNBEKANNT', 'gb-tag-crit'],
|
||||
['INTEGRITAET: AKZEPTABEL', 'gb-tag-ok'],
|
||||
['SIGNAL: SCHWACH', 'gb-tag-warn'],
|
||||
['PROZESS: LÄUFT', 'gb-tag-ok'],
|
||||
['GEFAEHRLICHKEIT: MITTEL', 'gb-tag-crit'],
|
||||
];
|
||||
|
||||
if (gbSubmit) {
|
||||
gbSubmit.addEventListener('click', () => {
|
||||
const user = gbInputUser.value.trim() || 'ANONYMOUS_' + Math.floor(Math.random()*9000+1000);
|
||||
const msg = gbInputMsg.value.trim();
|
||||
if (!msg) { gbInputMsg.focus(); return; }
|
||||
|
||||
const now = new Date();
|
||||
const date = now.toLocaleDateString('de-DE') + ' — ' +
|
||||
String(now.getHours()).padStart(2,'0') + ':' +
|
||||
String(now.getMinutes()).padStart(2,'0');
|
||||
const [tagLabel, tagCls] = GB_TAGS[Math.floor(Math.random() * GB_TAGS.length)];
|
||||
|
||||
const entry = document.createElement('div');
|
||||
entry.className = 'gb-entry gb-new';
|
||||
entry.innerHTML =
|
||||
'<div class="gb-meta">' +
|
||||
'<span class="gb-user">' + user.toUpperCase().replace(/</g,'<').slice(0,40) + '</span>' +
|
||||
'<span class="gb-dot">◆</span>' +
|
||||
'<span class="gb-date">' + date + '</span>' +
|
||||
'<span class="gb-tag ' + tagCls + '">' + tagLabel + '</span>' +
|
||||
'</div>' +
|
||||
'<p class="gb-text">' + msg.replace(/</g,'<').replace(/>/g,'>') + '</p>';
|
||||
|
||||
gbEntries.insertBefore(entry, gbEntries.firstChild);
|
||||
gbInputUser.value = '';
|
||||
gbInputMsg.value = '';
|
||||
if (typeof playKeyClick === 'function') playKeyClick();
|
||||
});
|
||||
}
|
||||
|
||||
log('>> SYSTEM READY. WAITING FOR COMMANDS...');
|
||||
|
||||
// --- OPS DASHBOARD ---
|
||||
|
|
@ -867,6 +916,112 @@
|
|||
});
|
||||
})();
|
||||
|
||||
// ═══════════════════════════════════════
|
||||
// PERSONEN-AKTE
|
||||
// ═══════════════════════════════════════
|
||||
(function() {
|
||||
const trigger = document.getElementById('akte-trigger');
|
||||
const modal = document.getElementById('akte-modal');
|
||||
const closeBtn = document.getElementById('akte-close');
|
||||
const activityEl = document.getElementById('akte-activity');
|
||||
|
||||
if (!trigger || !modal) return;
|
||||
|
||||
function openAkte() {
|
||||
modal.classList.remove('akte-hidden');
|
||||
document.body.style.overflow = 'hidden';
|
||||
if (activityEl) {
|
||||
const now = new Date();
|
||||
activityEl.textContent = now.toLocaleDateString('de-DE') + ' ' +
|
||||
String(now.getHours()).padStart(2,'0') + ':' +
|
||||
String(now.getMinutes()).padStart(2,'0') + ':' +
|
||||
String(now.getSeconds()).padStart(2,'0') + ' — GERADE JETZT';
|
||||
}
|
||||
}
|
||||
function closeAkte() {
|
||||
modal.classList.add('akte-hidden');
|
||||
document.body.style.overflow = '';
|
||||
}
|
||||
|
||||
trigger.addEventListener('click', openAkte);
|
||||
if (closeBtn) closeBtn.addEventListener('click', closeAkte);
|
||||
modal.addEventListener('click', (e) => { if (e.target === modal) closeAkte(); });
|
||||
document.addEventListener('keydown', (e) => { if (e.key === 'Escape') closeAkte(); });
|
||||
})();
|
||||
|
||||
// ═══════════════════════════════════════
|
||||
// SYSTEM STATUS WIDGET
|
||||
// ═══════════════════════════════════════
|
||||
(function() {
|
||||
const metrics = {
|
||||
cpu: { bar: document.getElementById('sw-cpu'), val: document.getElementById('sw-cpu-val'), cur: 88, min: 72, max: 99, unit: '%' },
|
||||
kaffee: { bar: document.getElementById('sw-kaffee'), val: document.getElementById('sw-kaffee-val'), cur: 61, min: 5, max: 100, unit: '%', drain: true },
|
||||
chaos: { bar: document.getElementById('sw-chaos'), val: document.getElementById('sw-chaos-val'), cur: 77, min: 40, max: 100, unit: '%' },
|
||||
ki: { bar: document.getElementById('sw-ki'), val: document.getElementById('sw-ki-val'), cur: 93, min: 60, max: 100, unit: '%' },
|
||||
};
|
||||
|
||||
function lerp(a, b, t) { return a + (b - a) * t; }
|
||||
|
||||
function tick() {
|
||||
Object.keys(metrics).forEach(key => {
|
||||
const m = metrics[key];
|
||||
if (!m.bar || !m.val) return;
|
||||
|
||||
if (key === 'kaffee') {
|
||||
// Kaffee leert sich langsam, dann springt es auf 100
|
||||
m.cur -= 0.08;
|
||||
if (m.cur < 5) m.cur = 100;
|
||||
} else if (key === 'chaos') {
|
||||
// Chaos: zufällige Spitzen
|
||||
const spike = Math.random() < 0.04;
|
||||
m.cur = spike ? 95 + Math.random() * 5 : lerp(m.cur, m.min + Math.random() * (m.max - m.min), 0.06);
|
||||
} else {
|
||||
m.cur = lerp(m.cur, m.min + Math.random() * (m.max - m.min), 0.04);
|
||||
}
|
||||
m.cur = Math.max(m.min, Math.min(m.max, m.cur));
|
||||
const pct = ((m.cur - m.min) / (m.max - m.min) * 100).toFixed(0);
|
||||
m.bar.style.width = Math.round(m.cur) + '%';
|
||||
m.val.textContent = Math.round(m.cur) + m.unit;
|
||||
});
|
||||
}
|
||||
|
||||
setInterval(tick, 900);
|
||||
tick();
|
||||
})();
|
||||
|
||||
// ═══════════════════════════════════════
|
||||
// NEWSTICKER
|
||||
// ═══════════════════════════════════════
|
||||
(function() {
|
||||
const track = document.getElementById('ticker-track');
|
||||
if (!track) return;
|
||||
|
||||
const ITEMS = [
|
||||
{ t: 'PROKRASTINATION.exe verbraucht 94% CPU — Gegenmaßnahmen: keine', cls: 'ticker-warn' },
|
||||
{ t: 'WARNUNG: Realitätsdistorsionsfeld bei 120% — Evakuierung nicht vorgesehen', cls: 'ticker-crit' },
|
||||
{ t: 'KAFFEE_KERNEL läuft seit 18h ohne Unterbrechung — Status: besorgniserregend', cls: '' },
|
||||
{ t: 'KREATIVITAET.exe hat soeben SCHLAF.daemon überschrieben — Rollback fehlgeschlagen', cls: 'ticker-warn' },
|
||||
{ t: 'SYSTEM-UPDATE verfügbar: VERNUNFT v2.0 — Installation abgebrochen durch Benutzer', cls: '' },
|
||||
{ t: 'ANOMALIE ERKANNT: Zeitstempel 1974 verursacht Konflikte mit Gegenwart', cls: 'ticker-warn' },
|
||||
{ t: 'WORDPRESS-KERN destabilisiert — Zustand: wie immer', cls: '' },
|
||||
{ t: 'MISSION STATUS: Chaos aufrechterhalten — ERLEDIGT', cls: '' },
|
||||
{ t: 'KAFFEE-VORRAT KRITISCH — ETA bis Totalausfall: unberechenbar', cls: 'ticker-crit' },
|
||||
{ t: 'GEMINI NEURAL LINK aktiv — Bewusstseinszustand: kollaborativ / verwirrend', cls: '' },
|
||||
{ t: 'SELBSTZWEIFEL.exe wurde erfolgreich terminiert — Neustart in 3... 2... 1...', cls: 'ticker-warn' },
|
||||
{ t: 'NEUE ENTITÄT im Gästebuch registriert — Gefährlichkeit: unklar', cls: '' },
|
||||
{ t: 'ANARCHIE-KERNEL v4.0.1 läuft stabil — das ist verdächtig', cls: 'ticker-warn' },
|
||||
{ t: 'SPEICHER-LEAK IN MOTIVATION.sys ENTDECKT — seit 1974 bekannt, nie gefixt', cls: '' },
|
||||
];
|
||||
|
||||
// Doppelt für nahtloses Looping
|
||||
[...ITEMS, ...ITEMS].forEach(({ t, cls }) => {
|
||||
const span = document.createElement('span');
|
||||
span.className = 'ticker-item' + (cls ? ' ' + cls : '');
|
||||
span.textContent = t;
|
||||
track.appendChild(span);
|
||||
});
|
||||
})();
|
||||
|
||||
// --- ANTIGRAVITY ENGINE & GENERATIVE DRONE ---
|
||||
let droneAudioCtx;
|
||||
let droneInitialized = false;
|
||||
|
|
|
|||
|
|
@ -247,6 +247,226 @@ body.mode-security::after {
|
|||
transform: translate(-50%, -50%) rotate(-15deg);
|
||||
}
|
||||
|
||||
/* DEEP SCAN MODE */
|
||||
body.mode-scan::before {
|
||||
content: '';
|
||||
position: fixed;
|
||||
left: 0; right: 0;
|
||||
height: 3px;
|
||||
background: linear-gradient(90deg,
|
||||
transparent 0%,
|
||||
rgba(0,255,65,0.0) 10%,
|
||||
rgba(0,255,65,0.9) 50%,
|
||||
rgba(0,255,65,0.0) 90%,
|
||||
transparent 100%
|
||||
);
|
||||
box-shadow: 0 0 18px 4px rgba(0,255,65,0.4);
|
||||
z-index: 99999;
|
||||
pointer-events: none;
|
||||
animation: scan-line 2.4s linear infinite;
|
||||
}
|
||||
body.mode-scan::after {
|
||||
content: 'SCANNING...';
|
||||
position: fixed;
|
||||
top: 12px; right: 16px;
|
||||
font-family: 'Courier New', monospace;
|
||||
font-size: 0.55rem;
|
||||
letter-spacing: 4px;
|
||||
color: rgba(0,255,65,0.5);
|
||||
z-index: 99999;
|
||||
pointer-events: none;
|
||||
animation: blinker 0.8s step-end infinite;
|
||||
}
|
||||
body.mode-scan {
|
||||
background-image: repeating-linear-gradient(
|
||||
0deg,
|
||||
transparent,
|
||||
transparent 2px,
|
||||
rgba(0,255,65,0.018) 2px,
|
||||
rgba(0,255,65,0.018) 4px
|
||||
);
|
||||
}
|
||||
@keyframes scan-line {
|
||||
0% { top: -4px; }
|
||||
100% { top: 100vh; }
|
||||
}
|
||||
|
||||
/* OVERDRIVE MODE */
|
||||
body.mode-overdrive {
|
||||
filter: saturate(2.2) contrast(1.15) brightness(1.05);
|
||||
}
|
||||
body.mode-overdrive h1,
|
||||
body.mode-overdrive h2,
|
||||
body.mode-overdrive h3 {
|
||||
text-shadow: 0 0 12px currentColor, 0 0 30px currentColor !important;
|
||||
}
|
||||
body.mode-overdrive .switch-btn,
|
||||
body.mode-overdrive .filter-btn,
|
||||
body.mode-overdrive .portfolio-item {
|
||||
box-shadow: 0 0 10px rgba(255,69,0,0.4) !important;
|
||||
}
|
||||
body.mode-overdrive #system-log {
|
||||
box-shadow: inset 0 0 30px rgba(0,255,65,0.15), 0 0 20px rgba(0,255,65,0.2) !important;
|
||||
border-color: rgba(0,255,65,0.5) !important;
|
||||
}
|
||||
body.mode-overdrive::after {
|
||||
content: 'OVERDRIVE';
|
||||
position: fixed;
|
||||
bottom: 36px; right: 16px;
|
||||
font-family: 'Courier New', monospace;
|
||||
font-size: 0.5rem;
|
||||
letter-spacing: 5px;
|
||||
color: rgba(255,69,0,0.35);
|
||||
pointer-events: none;
|
||||
z-index: 9400;
|
||||
}
|
||||
|
||||
/* ═══════════════════════════════════════
|
||||
CONTROL PANEL — CYBERPUNK METAL BUTTONS
|
||||
═══════════════════════════════════════ */
|
||||
.control-panel {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 6px;
|
||||
max-width: 750px;
|
||||
margin: 0 auto 20px;
|
||||
padding: 10px;
|
||||
background:
|
||||
linear-gradient(180deg, rgba(40,35,30,0.6) 0%, rgba(8,6,4,0.95) 50%, rgba(30,25,20,0.6) 100%);
|
||||
border-top: 1px solid rgba(255,255,255,0.07);
|
||||
border-bottom: 1px solid rgba(0,0,0,0.9);
|
||||
border-left: 1px solid rgba(255,255,255,0.04);
|
||||
border-right: 1px solid rgba(255,255,255,0.04);
|
||||
box-shadow:
|
||||
0 6px 30px rgba(0,0,0,0.8),
|
||||
inset 0 1px 0 rgba(255,255,255,0.05);
|
||||
}
|
||||
|
||||
.switch-btn {
|
||||
flex: 1;
|
||||
min-width: 110px;
|
||||
padding: 11px 10px 9px;
|
||||
font-family: 'Courier New', monospace;
|
||||
font-size: 0.6rem;
|
||||
letter-spacing: 2px;
|
||||
text-transform: uppercase;
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
transition: all 0.12s ease;
|
||||
user-select: none;
|
||||
|
||||
/* Metal plate */
|
||||
background: linear-gradient(
|
||||
170deg,
|
||||
#252018 0%,
|
||||
#111008 45%,
|
||||
#0d0b06 55%,
|
||||
#1e1a10 100%
|
||||
);
|
||||
border-top: 1px solid rgba(255,220,100,0.12);
|
||||
border-left: 1px solid rgba(255,220,100,0.06);
|
||||
border-right: 1px solid rgba(0,0,0,0.7);
|
||||
border-bottom: 2px solid rgba(0,0,0,0.85);
|
||||
box-shadow:
|
||||
inset 0 1px 0 rgba(255,220,80,0.06),
|
||||
inset 0 -1px 0 rgba(0,0,0,0.6),
|
||||
0 2px 6px rgba(0,0,0,0.6);
|
||||
|
||||
/* Neon text — orange default */
|
||||
color: rgba(255,120,20,0.75);
|
||||
text-shadow:
|
||||
0 0 6px rgba(255,100,0,0.6),
|
||||
0 0 14px rgba(255,80,0,0.3);
|
||||
}
|
||||
|
||||
.switch-btn::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0; left: 0; right: 0;
|
||||
height: 40%;
|
||||
background: linear-gradient(180deg, rgba(255,220,80,0.04) 0%, transparent 100%);
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.switch-btn:hover {
|
||||
background: linear-gradient(
|
||||
170deg,
|
||||
#302a1a 0%,
|
||||
#1a1508 45%,
|
||||
#141208 55%,
|
||||
#28220e 100%
|
||||
);
|
||||
color: rgba(255,140,30,0.95);
|
||||
text-shadow:
|
||||
0 0 8px rgba(255,120,0,0.9),
|
||||
0 0 20px rgba(255,80,0,0.5),
|
||||
0 0 40px rgba(255,60,0,0.2);
|
||||
border-top-color: rgba(255,220,100,0.2);
|
||||
box-shadow:
|
||||
inset 0 1px 0 rgba(255,220,80,0.1),
|
||||
inset 0 -1px 0 rgba(0,0,0,0.6),
|
||||
0 0 12px rgba(255,100,0,0.15),
|
||||
0 2px 6px rgba(0,0,0,0.6);
|
||||
}
|
||||
|
||||
.switch-btn:active,
|
||||
.switch-btn.active {
|
||||
background: linear-gradient(
|
||||
170deg,
|
||||
#0d0b06 0%,
|
||||
#181408 45%,
|
||||
#1a1608 55%,
|
||||
#111008 100%
|
||||
);
|
||||
border-top: 1px solid rgba(0,0,0,0.5);
|
||||
border-bottom: 1px solid rgba(255,180,50,0.15);
|
||||
box-shadow:
|
||||
inset 0 2px 8px rgba(0,0,0,0.8),
|
||||
inset 0 1px 3px rgba(0,0,0,0.5),
|
||||
0 0 16px rgba(255,100,0,0.2);
|
||||
transform: translateY(1px);
|
||||
color: rgba(255,160,40,1);
|
||||
text-shadow:
|
||||
0 0 10px rgba(255,140,0,1),
|
||||
0 0 25px rgba(255,100,0,0.7),
|
||||
0 0 50px rgba(255,60,0,0.3);
|
||||
}
|
||||
|
||||
/* Green variant — ANARCHIE-MODE */
|
||||
.switch-btn.green {
|
||||
color: rgba(0,255,65,0.7);
|
||||
text-shadow: 0 0 6px rgba(0,255,65,0.6), 0 0 14px rgba(0,255,65,0.3);
|
||||
}
|
||||
.switch-btn.green:hover {
|
||||
color: rgba(0,255,65,0.95);
|
||||
text-shadow: 0 0 8px rgba(0,255,65,0.9), 0 0 22px rgba(0,255,65,0.5), 0 0 40px rgba(0,255,65,0.2);
|
||||
box-shadow: inset 0 1px 0 rgba(255,220,80,0.1), 0 0 12px rgba(0,255,65,0.15), 0 2px 6px rgba(0,0,0,0.6);
|
||||
}
|
||||
.switch-btn.green:active,
|
||||
.switch-btn.green.active {
|
||||
color: rgba(0,255,65,1);
|
||||
text-shadow: 0 0 10px rgba(0,255,65,1), 0 0 25px rgba(0,255,65,0.7), 0 0 50px rgba(0,255,65,0.3);
|
||||
box-shadow: inset 0 2px 8px rgba(0,0,0,0.8), 0 0 16px rgba(0,255,65,0.2);
|
||||
}
|
||||
|
||||
/* Red variant — OVERDRIVE */
|
||||
.switch-btn.red {
|
||||
color: rgba(255,40,10,0.75);
|
||||
text-shadow: 0 0 6px rgba(255,20,0,0.7), 0 0 14px rgba(255,0,0,0.3);
|
||||
}
|
||||
.switch-btn.red:hover {
|
||||
color: rgba(255,60,20,0.95);
|
||||
text-shadow: 0 0 8px rgba(255,30,0,0.9), 0 0 22px rgba(255,0,0,0.6), 0 0 40px rgba(255,0,0,0.2);
|
||||
box-shadow: inset 0 1px 0 rgba(255,220,80,0.1), 0 0 12px rgba(255,30,0,0.2), 0 2px 6px rgba(0,0,0,0.6);
|
||||
}
|
||||
.switch-btn.red:active,
|
||||
.switch-btn.red.active {
|
||||
color: rgba(255,60,20,1);
|
||||
text-shadow: 0 0 10px rgba(255,40,0,1), 0 0 25px rgba(255,20,0,0.7), 0 0 50px rgba(255,0,0,0.3);
|
||||
box-shadow: inset 0 2px 8px rgba(0,0,0,0.8), 0 0 18px rgba(255,30,0,0.25);
|
||||
animation: blinker 0.4s step-end infinite;
|
||||
}
|
||||
|
||||
/* 4. GHOST MODE (Stealth & Invisibility) */
|
||||
body.mode-ghost #system-log {
|
||||
opacity: 0.8;
|
||||
|
|
@ -1146,3 +1366,667 @@ body.mode-time-warp {
|
|||
.terminal-wrapper.ops-expanded #system-log {
|
||||
transition: min-height 0.55s cubic-bezier(0.4,0,0.2,1);
|
||||
}
|
||||
|
||||
/* ═══════════════════════════════════════
|
||||
GÄSTEBUCH
|
||||
═══════════════════════════════════════ */
|
||||
.gaestebuch-wrap {
|
||||
margin-top: 30px;
|
||||
border: 1px solid rgba(212,175,55,0.2);
|
||||
background: rgba(5,3,0,0.97);
|
||||
padding: 24px 20px 20px;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
.gaestebuch-wrap::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
background: repeating-linear-gradient(
|
||||
0deg, transparent, transparent 5px,
|
||||
rgba(212,175,55,0.012) 5px, rgba(212,175,55,0.012) 6px
|
||||
);
|
||||
pointer-events: none;
|
||||
}
|
||||
.gaestebuch-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 12px;
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
.gaestebuch-title {
|
||||
font-size: 0.75rem;
|
||||
letter-spacing: 4px;
|
||||
color: rgba(212,175,55,0.55);
|
||||
text-transform: uppercase;
|
||||
margin: 0;
|
||||
font-weight: normal;
|
||||
}
|
||||
.gaestebuch-led {
|
||||
width: 5px; height: 5px;
|
||||
border-radius: 50%;
|
||||
background: var(--accent-gold);
|
||||
opacity: 0.6;
|
||||
animation: blinker 2.2s step-end infinite;
|
||||
box-shadow: 0 0 4px var(--accent-gold);
|
||||
}
|
||||
.gaestebuch-sub {
|
||||
text-align: center;
|
||||
font-size: 0.65rem;
|
||||
letter-spacing: 2px;
|
||||
color: rgba(150,130,80,0.45);
|
||||
margin: 0 0 20px;
|
||||
}
|
||||
.gaestebuch-entries {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0;
|
||||
}
|
||||
.gb-entry {
|
||||
border-top: 1px solid rgba(212,175,55,0.08);
|
||||
padding: 14px 4px 14px 12px;
|
||||
position: relative;
|
||||
transition: background 0.2s;
|
||||
}
|
||||
.gb-entry:hover {
|
||||
background: rgba(212,175,55,0.025);
|
||||
}
|
||||
.gb-entry::before {
|
||||
content: '>';
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 16px;
|
||||
color: rgba(212,175,55,0.2);
|
||||
font-size: 0.7rem;
|
||||
}
|
||||
.gb-entry.gb-new {
|
||||
animation: gb-fadeIn 0.6s ease forwards;
|
||||
}
|
||||
@keyframes gb-fadeIn {
|
||||
from { opacity: 0; transform: translateY(-6px); background: rgba(212,175,55,0.06); }
|
||||
to { opacity: 1; transform: translateY(0); background: transparent; }
|
||||
}
|
||||
.gb-meta {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
gap: 8px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.gb-user {
|
||||
font-size: 0.72rem;
|
||||
letter-spacing: 2px;
|
||||
color: var(--accent-gold);
|
||||
opacity: 0.75;
|
||||
}
|
||||
.gb-dot { color: rgba(212,175,55,0.2); font-size: 0.5rem; }
|
||||
.gb-date {
|
||||
font-size: 0.6rem;
|
||||
letter-spacing: 1px;
|
||||
color: rgba(150,130,80,0.45);
|
||||
}
|
||||
.gb-tag {
|
||||
font-size: 0.5rem;
|
||||
letter-spacing: 2px;
|
||||
border: 1px solid rgba(212,175,55,0.2);
|
||||
color: rgba(212,175,55,0.35);
|
||||
padding: 1px 6px;
|
||||
text-transform: uppercase;
|
||||
margin-left: auto;
|
||||
}
|
||||
.gb-tag.gb-tag-warn { border-color: rgba(255,180,0,0.25); color: rgba(255,180,0,0.4); }
|
||||
.gb-tag.gb-tag-ok { border-color: rgba(0,200,80,0.2); color: rgba(0,200,80,0.4); }
|
||||
.gb-tag.gb-tag-crit { border-color: rgba(255,50,0,0.25); color: rgba(255,80,0,0.45); }
|
||||
.gb-text {
|
||||
font-size: 0.8rem;
|
||||
line-height: 1.6;
|
||||
color: rgba(190,180,150,0.65);
|
||||
margin: 0;
|
||||
padding-left: 2px;
|
||||
}
|
||||
|
||||
/* Form */
|
||||
.gb-form-wrap {
|
||||
margin-top: 20px;
|
||||
border-top: 1px solid rgba(212,175,55,0.12);
|
||||
padding-top: 16px;
|
||||
}
|
||||
.gb-form-header {
|
||||
font-size: 0.6rem;
|
||||
letter-spacing: 4px;
|
||||
color: rgba(212,175,55,0.35);
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
.gb-form {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 8px;
|
||||
}
|
||||
.gb-input {
|
||||
background: rgba(0,0,0,0.6);
|
||||
border: 1px solid rgba(212,175,55,0.15);
|
||||
color: rgba(200,185,140,0.8);
|
||||
font-family: 'Courier New', monospace;
|
||||
font-size: 0.78rem;
|
||||
padding: 8px 12px;
|
||||
outline: none;
|
||||
transition: border-color 0.2s;
|
||||
resize: none;
|
||||
}
|
||||
.gb-input:focus { border-color: rgba(212,175,55,0.4); }
|
||||
.gb-input::placeholder { color: rgba(150,130,80,0.35); }
|
||||
.gb-textarea { min-height: 70px; }
|
||||
.gb-btn {
|
||||
align-self: flex-start;
|
||||
background: transparent;
|
||||
border: 1px solid rgba(212,175,55,0.3);
|
||||
color: rgba(212,175,55,0.6);
|
||||
font-family: 'Courier New', monospace;
|
||||
font-size: 0.7rem;
|
||||
letter-spacing: 3px;
|
||||
padding: 6px 16px;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s;
|
||||
}
|
||||
.gb-btn:hover {
|
||||
border-color: rgba(212,175,55,0.7);
|
||||
color: rgba(212,175,55,0.9);
|
||||
background: rgba(212,175,55,0.05);
|
||||
}
|
||||
|
||||
/* ═══════════════════════════════════════
|
||||
PERSONEN-AKTE
|
||||
═══════════════════════════════════════ */
|
||||
.akte-trigger-btn {
|
||||
background: transparent;
|
||||
border: 1px solid rgba(255,69,0,0.3);
|
||||
color: rgba(255,100,0,0.5);
|
||||
font-family: 'Courier New', monospace;
|
||||
font-size: 0.65rem;
|
||||
letter-spacing: 3px;
|
||||
padding: 8px 20px;
|
||||
cursor: pointer;
|
||||
transition: all 0.25s;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.akte-trigger-btn:hover {
|
||||
border-color: rgba(255,69,0,0.7);
|
||||
color: rgba(255,100,0,0.9);
|
||||
box-shadow: 0 0 14px rgba(255,69,0,0.15);
|
||||
}
|
||||
.akte-hidden { display: none !important; }
|
||||
#akte-modal {
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
z-index: 30000;
|
||||
background: rgba(0,0,0,0.92);
|
||||
overflow-y: auto;
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
justify-content: center;
|
||||
padding: 40px 16px 60px;
|
||||
backdrop-filter: blur(3px);
|
||||
}
|
||||
.akte-inner {
|
||||
width: 100%;
|
||||
max-width: 700px;
|
||||
background: #0a0800;
|
||||
border: 1px solid rgba(212,175,55,0.25);
|
||||
padding: 30px 28px 28px;
|
||||
position: relative;
|
||||
box-shadow: 0 0 60px rgba(212,175,55,0.08);
|
||||
}
|
||||
.akte-inner::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
background: repeating-linear-gradient(
|
||||
0deg, transparent, transparent 4px,
|
||||
rgba(212,175,55,0.012) 4px, rgba(212,175,55,0.012) 5px
|
||||
);
|
||||
pointer-events: none;
|
||||
}
|
||||
.akte-close-btn {
|
||||
position: absolute;
|
||||
top: 14px; right: 14px;
|
||||
background: transparent;
|
||||
border: 1px solid rgba(255,69,0,0.4);
|
||||
color: rgba(255,69,0,0.6);
|
||||
font-family: 'Courier New', monospace;
|
||||
font-size: 0.65rem;
|
||||
letter-spacing: 2px;
|
||||
padding: 4px 10px;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s;
|
||||
}
|
||||
.akte-close-btn:hover { background: rgba(255,69,0,0.1); color: #ff4500; }
|
||||
.akte-stamp {
|
||||
font-size: 0.65rem;
|
||||
letter-spacing: 5px;
|
||||
text-transform: uppercase;
|
||||
padding: 3px 10px;
|
||||
display: inline-block;
|
||||
font-weight: bold;
|
||||
}
|
||||
.akte-stamp-top {
|
||||
border: 2px solid rgba(255,69,0,0.4);
|
||||
color: rgba(255,69,0,0.4);
|
||||
margin-bottom: 20px;
|
||||
transform: rotate(-1.5deg);
|
||||
display: block;
|
||||
width: fit-content;
|
||||
}
|
||||
.akte-stamp-red {
|
||||
border: 2px solid rgba(255,0,0,0.5);
|
||||
color: rgba(255,0,0,0.55);
|
||||
transform: rotate(-2deg);
|
||||
}
|
||||
.akte-stamp-gold {
|
||||
border: 2px solid rgba(212,175,55,0.35);
|
||||
color: rgba(212,175,55,0.4);
|
||||
transform: rotate(1deg);
|
||||
}
|
||||
.akte-header-row {
|
||||
display: flex;
|
||||
gap: 24px;
|
||||
margin-bottom: 22px;
|
||||
align-items: flex-start;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.akte-photo-wrap {
|
||||
position: relative;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.akte-photo {
|
||||
width: 110px;
|
||||
height: 130px;
|
||||
object-fit: cover;
|
||||
object-position: top;
|
||||
filter: sepia(0.5) brightness(0.75) contrast(1.1);
|
||||
display: block;
|
||||
border: 1px solid rgba(212,175,55,0.2);
|
||||
}
|
||||
.akte-photo-stamp {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 0.7rem;
|
||||
letter-spacing: 4px;
|
||||
color: rgba(255,0,0,0.7);
|
||||
border: 2px solid rgba(255,0,0,0.5);
|
||||
transform: rotate(-8deg);
|
||||
pointer-events: none;
|
||||
font-weight: bold;
|
||||
}
|
||||
.akte-title-block { flex: 1; min-width: 200px; }
|
||||
.akte-nr {
|
||||
font-size: 0.55rem;
|
||||
letter-spacing: 3px;
|
||||
color: rgba(212,175,55,0.4);
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
.akte-name {
|
||||
font-size: 1.4rem;
|
||||
letter-spacing: 4px;
|
||||
color: rgba(212,175,55,0.8);
|
||||
margin: 0 0 6px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.akte-alias {
|
||||
font-size: 0.6rem;
|
||||
letter-spacing: 2px;
|
||||
color: rgba(180,160,100,0.5);
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
.akte-status-row { display: flex; gap: 8px; flex-wrap: wrap; }
|
||||
.akte-badge {
|
||||
font-size: 0.55rem;
|
||||
letter-spacing: 2px;
|
||||
padding: 2px 8px;
|
||||
border: 1px solid;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.akte-badge-warn { border-color: rgba(255,180,0,0.3); color: rgba(255,180,0,0.55); }
|
||||
.akte-badge-crit { border-color: rgba(255,50,0,0.3); color: rgba(255,80,0,0.55); }
|
||||
.akte-table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin-bottom: 20px;
|
||||
font-size: 0.75rem;
|
||||
}
|
||||
.akte-table tr { border-top: 1px solid rgba(212,175,55,0.07); }
|
||||
.akte-table td { padding: 7px 6px; color: rgba(190,180,150,0.65); vertical-align: top; }
|
||||
.akte-key {
|
||||
color: rgba(212,175,55,0.45) !important;
|
||||
letter-spacing: 1px;
|
||||
font-size: 0.65rem !important;
|
||||
white-space: nowrap;
|
||||
padding-right: 16px !important;
|
||||
width: 1%;
|
||||
}
|
||||
.akte-redact {
|
||||
background: rgba(20,20,20,0.95);
|
||||
color: rgba(20,20,20,0.95);
|
||||
border-bottom: 1px solid rgba(80,80,80,0.3);
|
||||
user-select: none;
|
||||
font-size: 0.7rem;
|
||||
}
|
||||
.akte-fingerprint-row {
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
justify-content: space-between;
|
||||
flex-wrap: wrap;
|
||||
gap: 16px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
.akte-fp { display: flex; align-items: center; gap: 12px; }
|
||||
.akte-fp-inner {
|
||||
width: 54px; height: 70px;
|
||||
border-radius: 45% 45% 48% 48% / 40% 40% 60% 60%;
|
||||
border: 1px solid rgba(212,175,55,0.25);
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.akte-fp-inner::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
inset: -4px;
|
||||
background: repeating-radial-gradient(
|
||||
ellipse at 50% 60%,
|
||||
transparent 0px, transparent 3px,
|
||||
rgba(212,175,55,0.12) 3px, rgba(212,175,55,0.12) 4px
|
||||
);
|
||||
}
|
||||
.akte-fp-label {
|
||||
font-size: 0.55rem;
|
||||
letter-spacing: 1px;
|
||||
color: rgba(212,175,55,0.35);
|
||||
line-height: 1.7;
|
||||
}
|
||||
.akte-bottom-stamps {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 8px;
|
||||
align-items: flex-end;
|
||||
}
|
||||
|
||||
/* ═══════════════════════════════════════
|
||||
SYSTEM STATUS WIDGET
|
||||
═══════════════════════════════════════ */
|
||||
#sys-widget {
|
||||
position: fixed;
|
||||
right: 16px;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
z-index: 9000;
|
||||
background: rgba(0,0,0,0.88);
|
||||
border: 1px solid rgba(0,255,65,0.15);
|
||||
padding: 10px 12px;
|
||||
width: 130px;
|
||||
box-shadow: 0 0 20px rgba(0,255,65,0.05);
|
||||
backdrop-filter: blur(4px);
|
||||
}
|
||||
.sys-widget-header {
|
||||
font-size: 0.55rem;
|
||||
letter-spacing: 3px;
|
||||
color: rgba(0,255,65,0.35);
|
||||
margin-bottom: 10px;
|
||||
text-align: center;
|
||||
}
|
||||
.sys-metric {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 5px;
|
||||
margin-bottom: 7px;
|
||||
}
|
||||
.sys-label {
|
||||
font-size: 0.5rem;
|
||||
letter-spacing: 1px;
|
||||
color: rgba(0,255,65,0.4);
|
||||
width: 36px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.sys-bar-wrap {
|
||||
flex: 1;
|
||||
height: 4px;
|
||||
background: rgba(255,255,255,0.05);
|
||||
overflow: hidden;
|
||||
}
|
||||
.sys-bar {
|
||||
height: 100%;
|
||||
background: rgba(0,255,65,0.5);
|
||||
width: 0%;
|
||||
transition: width 0.8s ease;
|
||||
}
|
||||
.sys-bar-gold { background: rgba(212,175,55,0.55); }
|
||||
.sys-bar-red { background: rgba(255,69,0,0.55); }
|
||||
.sys-bar-cyan { background: rgba(0,200,255,0.5); }
|
||||
.sys-val {
|
||||
font-size: 0.5rem;
|
||||
color: rgba(0,255,65,0.45);
|
||||
width: 26px;
|
||||
text-align: right;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
/* ═══════════════════════════════════════
|
||||
NEWSTICKER
|
||||
═══════════════════════════════════════ */
|
||||
#newsticker {
|
||||
position: fixed;
|
||||
bottom: 0; left: 0; right: 0;
|
||||
z-index: 9500;
|
||||
background: rgba(0,0,0,0.92);
|
||||
border-top: 1px solid rgba(255,69,0,0.2);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 26px;
|
||||
overflow: hidden;
|
||||
}
|
||||
.ticker-label {
|
||||
flex-shrink: 0;
|
||||
font-size: 0.55rem;
|
||||
letter-spacing: 3px;
|
||||
color: rgba(255,69,0,0.6);
|
||||
padding: 0 12px;
|
||||
border-right: 1px solid rgba(255,69,0,0.2);
|
||||
white-space: nowrap;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
background: rgba(255,69,0,0.04);
|
||||
}
|
||||
.ticker-track-wrap {
|
||||
flex: 1;
|
||||
overflow: hidden;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.ticker-track {
|
||||
display: inline-flex;
|
||||
gap: 0;
|
||||
white-space: nowrap;
|
||||
animation: ticker-scroll 60s linear infinite;
|
||||
}
|
||||
.ticker-track:hover { animation-play-state: paused; }
|
||||
@keyframes ticker-scroll {
|
||||
0% { transform: translateX(0); }
|
||||
100% { transform: translateX(-50%); }
|
||||
}
|
||||
.ticker-item {
|
||||
font-size: 0.6rem;
|
||||
letter-spacing: 1px;
|
||||
color: rgba(200,180,130,0.55);
|
||||
padding: 0 28px;
|
||||
}
|
||||
.ticker-item::before {
|
||||
content: '▶ ';
|
||||
color: rgba(255,69,0,0.4);
|
||||
}
|
||||
.ticker-item.ticker-warn { color: rgba(255,180,0,0.6); }
|
||||
.ticker-item.ticker-crit { color: rgba(255,60,0,0.65); }
|
||||
/* Etwas Abstand für den Ticker am Seitenende */
|
||||
footer { padding-bottom: 30px; }
|
||||
|
||||
/* ═══════════════════════════════════════
|
||||
MAC NERDS PAGE
|
||||
═══════════════════════════════════════ */
|
||||
.mac-nerds-page { background: #050500; }
|
||||
.mn-container { max-width: 960px; margin: 0 auto; padding: 30px 16px 60px; }
|
||||
|
||||
.mn-header { margin-bottom: 30px; }
|
||||
.mn-back {
|
||||
display: inline-block;
|
||||
font-size: 0.65rem;
|
||||
letter-spacing: 3px;
|
||||
color: rgba(255,69,0,0.45);
|
||||
text-decoration: none;
|
||||
margin-bottom: 20px;
|
||||
transition: color 0.2s;
|
||||
}
|
||||
.mn-back:hover { color: rgba(255,69,0,0.8); }
|
||||
.mn-title {
|
||||
font-size: 2.2rem;
|
||||
letter-spacing: 8px;
|
||||
color: var(--accent-orange);
|
||||
margin: 0 0 8px;
|
||||
text-shadow: 0 0 30px rgba(255,69,0,0.3);
|
||||
}
|
||||
.mn-subtitle {
|
||||
font-size: 0.7rem;
|
||||
letter-spacing: 2px;
|
||||
color: rgba(150,130,80,0.5);
|
||||
margin: 0 0 14px;
|
||||
}
|
||||
.mn-warning {
|
||||
display: inline-block;
|
||||
font-size: 0.6rem;
|
||||
letter-spacing: 2px;
|
||||
border: 1px dashed rgba(255,180,0,0.3);
|
||||
color: rgba(255,180,0,0.5);
|
||||
padding: 4px 12px;
|
||||
}
|
||||
|
||||
/* Filter */
|
||||
.mn-filter-bar {
|
||||
display: flex;
|
||||
gap: 6px;
|
||||
flex-wrap: wrap;
|
||||
margin-bottom: 24px;
|
||||
border-bottom: 1px solid rgba(255,69,0,0.1);
|
||||
padding-bottom: 16px;
|
||||
}
|
||||
.mn-filter {
|
||||
background: transparent;
|
||||
border: 1px solid rgba(255,69,0,0.2);
|
||||
color: rgba(255,100,0,0.4);
|
||||
font-family: 'Courier New', monospace;
|
||||
font-size: 0.6rem;
|
||||
letter-spacing: 2px;
|
||||
padding: 4px 12px;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s;
|
||||
}
|
||||
.mn-filter:hover, .mn-filter.active {
|
||||
border-color: rgba(255,69,0,0.6);
|
||||
color: rgba(255,100,0,0.85);
|
||||
background: rgba(255,69,0,0.05);
|
||||
}
|
||||
|
||||
/* Grid */
|
||||
.mn-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
/* Card */
|
||||
.mn-card {
|
||||
background: rgba(8,5,0,0.95);
|
||||
border: 1px solid rgba(255,69,0,0.12);
|
||||
padding: 16px;
|
||||
transition: border-color 0.2s, box-shadow 0.2s;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 8px;
|
||||
}
|
||||
.mn-card:hover {
|
||||
border-color: rgba(255,69,0,0.3);
|
||||
box-shadow: 0 0 16px rgba(255,69,0,0.06);
|
||||
}
|
||||
.mn-card-meta {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.mn-cat-tag {
|
||||
font-size: 0.5rem;
|
||||
letter-spacing: 3px;
|
||||
color: rgba(212,175,55,0.4);
|
||||
border: 1px solid rgba(212,175,55,0.15);
|
||||
padding: 1px 6px;
|
||||
}
|
||||
.mn-risk {
|
||||
font-size: 0.5rem;
|
||||
letter-spacing: 2px;
|
||||
padding: 1px 6px;
|
||||
border: 1px solid;
|
||||
}
|
||||
.mn-risk-safe { border-color: rgba(0,200,80,0.2); color: rgba(0,200,80,0.45); }
|
||||
.mn-risk-caution { border-color: rgba(255,180,0,0.3); color: rgba(255,180,0,0.55); animation: blinker 2s infinite; }
|
||||
|
||||
.mn-card-title {
|
||||
font-size: 0.9rem;
|
||||
letter-spacing: 1px;
|
||||
color: rgba(220,200,150,0.8);
|
||||
margin: 0;
|
||||
font-weight: normal;
|
||||
}
|
||||
.mn-card-desc {
|
||||
font-size: 0.72rem;
|
||||
line-height: 1.55;
|
||||
color: rgba(160,150,120,0.6);
|
||||
margin: 0;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
/* Command block */
|
||||
.mn-cmd-block {
|
||||
display: flex;
|
||||
align-items: stretch;
|
||||
gap: 0;
|
||||
border: 1px solid rgba(0,255,65,0.12);
|
||||
background: rgba(0,0,0,0.5);
|
||||
margin-top: 4px;
|
||||
}
|
||||
.mn-cmd-code {
|
||||
flex: 1;
|
||||
font-family: 'Courier New', monospace;
|
||||
font-size: 0.68rem;
|
||||
color: rgba(0,255,65,0.7);
|
||||
padding: 8px 10px;
|
||||
word-break: break-all;
|
||||
line-height: 1.5;
|
||||
letter-spacing: 0.3px;
|
||||
}
|
||||
.mn-copy-btn {
|
||||
flex-shrink: 0;
|
||||
background: transparent;
|
||||
border: none;
|
||||
border-left: 1px solid rgba(0,255,65,0.12);
|
||||
color: rgba(0,255,65,0.35);
|
||||
font-family: 'Courier New', monospace;
|
||||
font-size: 0.55rem;
|
||||
letter-spacing: 2px;
|
||||
padding: 0 10px;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.mn-copy-btn:hover { background: rgba(0,255,65,0.05); color: rgba(0,255,65,0.8); }
|
||||
.mn-copy-btn.mn-copy-ok { color: rgba(0,255,65,1); background: rgba(0,255,65,0.08); }
|
||||
|
|
|
|||
Loading…
Reference in a new issue