OBS state snapshot: scene additions, dock geometry, landing tweaks
Captures the current OBS scene/window state after wiring Music Daemon, Project Loading, and Game scenes through the UI. Untitled.json now includes the new scenes and their browser sources. Landing index.html: reverted to the simpler pre-doomguard version (static signal bars, plain footer rig, no telemetry rotation, no watermark animation), keeping the SIGNAL grid centering and the small #rig opacity transition. OBS rewrites these files on shutdown — expect future commits to show similar dock-geometry diff noise.
This commit is contained in:
@@ -75,12 +75,10 @@ body {
|
||||
}
|
||||
.mark {
|
||||
width: 360px; height: 360px;
|
||||
/* Static glow only — animated drop-shadow is CPU-expensive in CEF.
|
||||
The static breathing feel comes from the rec-blink LED + cd-pulse
|
||||
elsewhere; the mark just has a steady halo. */
|
||||
filter: drop-shadow(0 0 22px rgba(58, 209, 255, 0.35));
|
||||
animation: mark-breathe 6s ease-in-out infinite;
|
||||
}
|
||||
@keyframes mark-breathe {
|
||||
0%, 100% { filter: drop-shadow(0 0 18px rgba(58, 209, 255, 0.30)); }
|
||||
50% { filter: drop-shadow(0 0 30px rgba(58, 209, 255, 0.50)); }
|
||||
}
|
||||
.bars {
|
||||
display: flex;
|
||||
@@ -134,67 +132,6 @@ body {
|
||||
.foot .warn { color: var(--warn); }
|
||||
#rig { transition: opacity 0.4s ease; }
|
||||
|
||||
/* ───────── Doomguard watermark ─────────
|
||||
Sits at z-index: -1 — below all flow content (HUD, standby, etc.)
|
||||
and below the static canvas, so the white noise paints on top of it.
|
||||
Mostly buried under noise (~4% opacity, blurred); periodic "tune-in"
|
||||
spikes raise opacity + sharpen blur briefly, like a CRT catching signal. */
|
||||
.watermark {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
width: 38vw;
|
||||
height: auto;
|
||||
transform: translate(-50%, -50%);
|
||||
pointer-events: none;
|
||||
user-select: none;
|
||||
z-index: -1;
|
||||
opacity: 0;
|
||||
filter: blur(2px) brightness(0.9);
|
||||
animation: logo-tune-in 27s linear infinite;
|
||||
}
|
||||
|
||||
/* Logo is invisible by default. Three irregular "almost-catches-signal"
|
||||
events per loop, each preceded by stutter (rapid opacity flips) and
|
||||
tiny vertical jitter — like a CRT trying to sync. Max opacity ~13%,
|
||||
always blurred — never crisp, always reads as buried in the noise. */
|
||||
@keyframes logo-tune-in {
|
||||
/* — Long quiet — */
|
||||
0%, 22% { opacity: 0; filter: blur(2px) brightness(0.9); transform: translate(-50%, -50%); }
|
||||
|
||||
/* Event 1: stutter in, brief soft hold (~9% peak), stutter out */
|
||||
22.3% { opacity: 0.06; filter: blur(1.4px) brightness(1.0); transform: translate(-50%, -50.3%); }
|
||||
22.6% { opacity: 0; filter: blur(2px) brightness(0.9); transform: translate(-50%, -49.8%); }
|
||||
23% { opacity: 0.09; filter: blur(0.8px) brightness(1.1); transform: translate(-50%, -50%); }
|
||||
24.6% { opacity: 0.09; filter: blur(0.8px) brightness(1.1); transform: translate(-50%, -50%); }
|
||||
25% { opacity: 0; filter: blur(2px) brightness(0.9); }
|
||||
25.3% { opacity: 0.04; }
|
||||
25.6% { opacity: 0; }
|
||||
|
||||
/* — Long quiet — */
|
||||
44% { opacity: 0; transform: translate(-50%, -50%); }
|
||||
|
||||
/* Event 2: split-second flutter, signal almost catches but loses it (~5% peak) */
|
||||
44.2% { opacity: 0.05; filter: blur(1.4px) brightness(1.0); transform: translate(-50.3%, -50%); }
|
||||
44.5% { opacity: 0; transform: translate(-50%, -50%); }
|
||||
|
||||
/* — Quiet — */
|
||||
68% { opacity: 0; transform: translate(-50%, -50%); filter: blur(2px) brightness(0.9); }
|
||||
|
||||
/* Event 3: stuttered emergence to longer hold (~13% peak), stuttered exit */
|
||||
68.3% { opacity: 0.05; filter: blur(2px) brightness(0.95); transform: translate(-49.7%, -50%); }
|
||||
68.6% { opacity: 0; }
|
||||
69% { opacity: 0.08; filter: blur(1px) brightness(1.05); transform: translate(-50%, -50.2%); }
|
||||
70.5% { opacity: 0.13; filter: blur(0.4px) brightness(1.15); transform: translate(-50%, -50%); }
|
||||
72% { opacity: 0.10; filter: blur(0.6px) brightness(1.1); }
|
||||
73% { opacity: 0; filter: blur(2px) brightness(0.9); }
|
||||
73.3% { opacity: 0.05; }
|
||||
73.6% { opacity: 0; }
|
||||
|
||||
/* — Quiet to end — */
|
||||
100% { opacity: 0; transform: translate(-50%, -50%); }
|
||||
}
|
||||
|
||||
/* ───────── Overlays ───────── */
|
||||
#static {
|
||||
position: absolute; inset: 0;
|
||||
@@ -248,11 +185,6 @@ body {
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<img class="watermark"
|
||||
src="file:///home/jin/cloud.jakubzych.com/_img/logos/dgw.png"
|
||||
alt=""
|
||||
aria-hidden="true">
|
||||
|
||||
<header class="hud">
|
||||
<div class="group">
|
||||
<span><span class="led"></span>TRANSMISSION</span>
|
||||
@@ -343,7 +275,8 @@ body {
|
||||
ctx.putImageData(img, 0, 0);
|
||||
};
|
||||
drawNoise();
|
||||
setInterval(drawNoise, 1000 / 12);
|
||||
// 8 fps — visually almost identical to 12 fps but ~33% less paint work.
|
||||
setInterval(drawNoise, 1000 / 8);
|
||||
|
||||
// ───────── Telemetry: rotating real-data subtitle ─────────
|
||||
// All lines derive from telemetry.js (window.__TEL), generated by telemetry.sh.
|
||||
|
||||
Reference in New Issue
Block a user