feat: Emberwake, Crucible phases, Linux agent, musical dashboard, e2e
Emberwake spread/waterhole UI, campaign DB, spread handler, spread-kit web publisher, and SPREAD_TECHNIQUES doc. Crucible Phase A-C: expanded ops, port-forward matrix, remote dir browser, crucible help/tests. Linux agent hardening: credential vault, persistence audit, firewall/defender deploy, SMB spread status, CPU stats, screenshots/crypt/file-ops split. Docker compose and agent/server images with e2e validation script and docs. Musical dashboard: ambient music player, hover SFX, SoundContext/AmbientMusicContext, steampunk polish. Public builds API, dropper handler updates, SessionGate and fleet UX. README and PROBLEMS.md refresh.
This commit is contained in:
@@ -2,31 +2,31 @@
|
||||
@import url('https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@400;700&family=Orbitron:wght@400;500;600;700&family=Rajdhani:wght@400;500;600;700&display=swap');
|
||||
|
||||
:root {
|
||||
--bg-void: #060504;
|
||||
--bg-deep: #0c0a08;
|
||||
--bg-panel: rgba(18, 14, 10, 0.85);
|
||||
--bg-panel-solid: #14100c;
|
||||
--bg-hover: rgba(40, 32, 24, 0.9);
|
||||
--bg-void: #030308;
|
||||
--bg-deep: #08080f;
|
||||
--bg-panel: rgba(10, 10, 18, 0.9);
|
||||
--bg-panel-solid: #0e0e16;
|
||||
--bg-hover: rgba(28, 26, 40, 0.92);
|
||||
|
||||
--brass: #c9a227;
|
||||
--brass-light: #e8c547;
|
||||
--brass-dark: #6b4f12;
|
||||
--copper: #b87333;
|
||||
--copper-glow: rgba(184, 115, 51, 0.4);
|
||||
--brass: #9a8538;
|
||||
--brass-light: #c4ad5a;
|
||||
--brass-dark: #4a3d18;
|
||||
--copper: #8a5a42;
|
||||
--copper-glow: rgba(120, 80, 120, 0.35);
|
||||
|
||||
--neon-cyan: #00f5ff;
|
||||
--neon-magenta: #ff2da6;
|
||||
--neon-amber: #ffb020;
|
||||
--neon-green: #39ff14;
|
||||
--neon-purple: #b24bf3;
|
||||
--neon-cyan: #00e8f5;
|
||||
--neon-magenta: #e828a8;
|
||||
--neon-amber: #e89830;
|
||||
--neon-green: #2ee810;
|
||||
--neon-purple: #a83ef0;
|
||||
|
||||
--text-primary: #f4ebe0;
|
||||
--text-secondary: #c4b5a0;
|
||||
--text-muted: #7a6f62;
|
||||
--text-primary: #e8e4f0;
|
||||
--text-secondary: #a8a0b8;
|
||||
--text-muted: #5e5868;
|
||||
|
||||
--border-brass: rgba(201, 162, 39, 0.35);
|
||||
--border-neon: rgba(0, 245, 255, 0.25);
|
||||
--shadow-panel: 0 8px 32px rgba(0, 0, 0, 0.6), 0 0 1px rgba(201, 162, 39, 0.3);
|
||||
--border-brass: rgba(140, 120, 60, 0.28);
|
||||
--border-neon: rgba(0, 232, 245, 0.22);
|
||||
--shadow-panel: 0 10px 36px rgba(0, 0, 0, 0.72), 0 0 1px rgba(80, 60, 140, 0.25);
|
||||
--shadow-neon-cyan: 0 0 20px rgba(0, 245, 255, 0.35), 0 0 60px rgba(0, 245, 255, 0.1);
|
||||
--shadow-neon-magenta: 0 0 20px rgba(255, 45, 166, 0.3);
|
||||
|
||||
@@ -76,7 +76,7 @@ h1, h2, h3, .font-display {
|
||||
.card,
|
||||
.neon-card {
|
||||
position: relative;
|
||||
background: linear-gradient(145deg, rgba(28, 22, 16, 0.95) 0%, rgba(12, 10, 8, 0.98) 100%);
|
||||
background: linear-gradient(145deg, rgba(16, 14, 24, 0.96) 0%, rgba(6, 6, 12, 0.99) 100%);
|
||||
border: 1px solid var(--border-brass);
|
||||
border-radius: 4px;
|
||||
box-shadow: var(--shadow-panel);
|
||||
@@ -90,13 +90,14 @@ h1, h2, h3, .font-display {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
background:
|
||||
radial-gradient(ellipse 80% 50% at 50% -20%, rgba(0, 245, 255, 0.08), transparent 50%),
|
||||
radial-gradient(ellipse 80% 50% at 50% -20%, rgba(0, 232, 245, 0.06), transparent 50%),
|
||||
radial-gradient(ellipse 60% 40% at 100% 100%, rgba(168, 62, 240, 0.04), transparent 55%),
|
||||
repeating-linear-gradient(
|
||||
90deg,
|
||||
transparent,
|
||||
transparent 48px,
|
||||
rgba(201, 162, 39, 0.03) 48px,
|
||||
rgba(201, 162, 39, 0.03) 49px
|
||||
rgba(80, 70, 120, 0.025) 48px,
|
||||
rgba(80, 70, 120, 0.025) 49px
|
||||
);
|
||||
pointer-events: none;
|
||||
z-index: 0;
|
||||
@@ -129,7 +130,7 @@ h1, h2, h3, .font-display {
|
||||
position: absolute;
|
||||
inset: 8px;
|
||||
border: 1px solid transparent;
|
||||
border-image: linear-gradient(135deg, var(--brass) 0%, transparent 30%, transparent 70%, var(--neon-cyan) 100%) 1;
|
||||
border-image: linear-gradient(135deg, rgba(120, 100, 180, 0.6) 0%, transparent 30%, transparent 70%, var(--neon-cyan) 100%) 1;
|
||||
pointer-events: none;
|
||||
opacity: 0.5;
|
||||
}
|
||||
@@ -178,7 +179,7 @@ h1, h2, h3, .font-display {
|
||||
.btn-outline {
|
||||
border: 1px solid var(--border-brass);
|
||||
color: var(--brass-light);
|
||||
background: rgba(20, 16, 12, 0.6);
|
||||
background: rgba(12, 12, 20, 0.72);
|
||||
}
|
||||
|
||||
.btn-outline:hover {
|
||||
@@ -190,7 +191,7 @@ h1, h2, h3, .font-display {
|
||||
/* Form inputs — gauge panel style */
|
||||
.input,
|
||||
.select {
|
||||
background: rgba(8, 6, 4, 0.9);
|
||||
background: rgba(6, 6, 12, 0.92);
|
||||
border: 1px solid var(--border-brass);
|
||||
border-radius: 2px;
|
||||
font-family: var(--font-body);
|
||||
|
||||
@@ -11,9 +11,9 @@
|
||||
|
||||
body {
|
||||
background:
|
||||
radial-gradient(ellipse 120% 80% at 50% -30%, rgba(0, 245, 255, 0.07), transparent 55%),
|
||||
radial-gradient(ellipse 90% 60% at 100% 50%, rgba(255, 45, 166, 0.04), transparent 50%),
|
||||
radial-gradient(ellipse 70% 50% at 0% 80%, rgba(201, 162, 39, 0.06), transparent 45%),
|
||||
radial-gradient(ellipse 120% 80% at 50% -30%, rgba(0, 232, 245, 0.05), transparent 55%),
|
||||
radial-gradient(ellipse 90% 60% at 100% 50%, rgba(168, 62, 240, 0.05), transparent 50%),
|
||||
radial-gradient(ellipse 70% 50% at 0% 80%, rgba(40, 30, 80, 0.08), transparent 45%),
|
||||
var(--bg-void);
|
||||
text-rendering: optimizeLegibility;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
@@ -52,9 +52,9 @@ a:hover {
|
||||
background: linear-gradient(
|
||||
90deg,
|
||||
transparent,
|
||||
rgba(201, 162, 39, 0.35) 15%,
|
||||
rgba(0, 245, 255, 0.5) 50%,
|
||||
rgba(255, 45, 166, 0.25) 85%,
|
||||
rgba(80, 60, 140, 0.3) 15%,
|
||||
rgba(0, 232, 245, 0.45) 50%,
|
||||
rgba(168, 62, 240, 0.22) 85%,
|
||||
transparent
|
||||
);
|
||||
opacity: 0.85;
|
||||
|
||||
Reference in New Issue
Block a user