Fix persistent blink: scanline animation still active via base.css cascade

Root cause: removing 'animation' from dashboard.css body::before did NOT disable
the scanline — it just stopped overriding base.css which still had
'animation: scanline 8s linear infinite'. CSS cascade means the base.css value
remained active. Fixed by setting 'animation: none' explicitly in dashboard.css.

Also fix base.css (used by all pages including ticket page):
- Set body::before animation: none (removes GPU compositing layer from scanline)
- Change corner-pulse/subtle-pulse/pulse-glow/pulse-red keyframes from text-shadow
  and box-shadow animations to opacity (GPU composited, zero CPU repaint overhead)
- Change exec-running-pulse from box-shadow to opacity
- Remove box-shadow from .lt-table tr:hover, .lt-card:hover, .lt-stat-card:hover
- Remove text-shadow/box-shadow/transform from .lt-btn:hover and variants
- Remove text-shadow from a:hover

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-19 12:12:44 -04:00
parent 328c103460
commit 68ff89b48c
2 changed files with 13 additions and 24 deletions

View File

@@ -175,7 +175,6 @@ a {
}
a:hover {
color: var(--terminal-amber);
text-shadow: var(--glow-amber);
}
ul, ol { list-style: none; }
@@ -200,7 +199,7 @@ body::before {
);
pointer-events: none;
z-index: var(--z-overlay);
animation: scanline 8s linear infinite;
animation: none;
}
/* Binary data-stream watermark — bottom-right corner */
@@ -650,7 +649,6 @@ pre {
}
.lt-card:hover {
border-color: var(--terminal-green);
box-shadow: var(--box-glow-green);
}
.lt-card-title {
@@ -701,13 +699,9 @@ pre {
background: var(--terminal-green-dim);
color: var(--terminal-amber);
border-color: var(--terminal-amber);
text-shadow: var(--glow-amber-intense);
box-shadow: var(--box-glow-amber);
transform: translateY(-2px);
}
.lt-btn:active {
transform: translateY(0);
box-shadow: var(--box-glow-green);
opacity: 0.85;
}
.lt-btn:disabled {
opacity: 0.4;
@@ -725,7 +719,6 @@ pre {
.lt-btn-primary::before { content: '> '; }
.lt-btn-primary:hover {
background: var(--terminal-amber-dim);
box-shadow: var(--box-glow-amber);
}
/* Red (destructive / danger) */
@@ -737,8 +730,6 @@ pre {
background: var(--terminal-red-dim);
color: var(--terminal-red);
border-color: var(--terminal-red);
text-shadow: var(--glow-red);
box-shadow: var(--box-glow-red);
}
/* Small variant */
@@ -899,7 +890,6 @@ pre {
}
.lt-table tbody tr:hover {
background: rgba(0, 255, 65, 0.06);
box-shadow: inset 0 0 20px rgba(0, 255, 65, 0.05);
}
/* Data table — compact, row-only separators, good for dense data */
@@ -1357,8 +1347,6 @@ pre {
}
.lt-stat-card:hover {
border-color: var(--terminal-amber);
box-shadow: var(--box-glow-amber);
transform: translateY(-2px);
}
.lt-stat-card.active {
background: var(--terminal-amber-dim);
@@ -1560,23 +1548,23 @@ pre {
}
@keyframes corner-pulse {
0%, 100% { text-shadow: var(--glow-green); }
50% { text-shadow: var(--glow-green-intense); }
0%, 100% { opacity: 0.7; }
50% { opacity: 1; }
}
@keyframes subtle-pulse {
0%, 100% { text-shadow: var(--glow-amber); }
50% { text-shadow: var(--glow-amber-intense); }
0%, 100% { opacity: 0.75; }
50% { opacity: 1; }
}
@keyframes pulse-glow {
0%, 100% { text-shadow: 0 0 5px currentColor, 0 0 10px currentColor; }
50% { text-shadow: 0 0 10px currentColor, 0 0 20px currentColor, 0 0 30px currentColor; }
0%, 100% { opacity: 0.7; }
50% { opacity: 1; }
}
@keyframes pulse-red {
0%, 100% { box-shadow: 0 0 0 0 rgba(255, 68, 68, 0.5); }
50% { box-shadow: 0 0 6px 3px rgba(255, 68, 68, 0.2); }
0%, 100% { opacity: 0.6; }
50% { opacity: 1; }
}
@keyframes focus-pulse {
@@ -1615,8 +1603,8 @@ pre {
/* Item pulse for actively running tasks */
@keyframes exec-running-pulse {
0%, 100% { border-color: var(--terminal-green); }
50% { border-color: var(--status-running); box-shadow: 0 0 8px rgba(255, 193, 7, 0.35); }
0%, 100% { border-color: var(--terminal-green); opacity: 0.7; }
50% { border-color: var(--status-running); opacity: 1; }
}
.lt-item-running { animation: exec-running-pulse 2s ease-in-out infinite; }

View File

@@ -117,6 +117,7 @@ body::before {
);
pointer-events: none;
z-index: var(--z-overlay);
animation: none;
}
/* Screen Flicker Effect */