/* Requests 57/58: the soft 0.5.6 field behind dark pieces, without woven or diagonal texture. */
body:has(> .glyph-field)::before { content: none; }
html[data-theme="dusk"] body:has(> .glyph-field) { background: radial-gradient(120% 100% at 50% 35%, #655673 0%, #51445f 58%, #392e49 100%) fixed; }
html[data-theme="dusk"] { --muted: #b4abc1; --paper-2: #ded9e5; }
.glyph-field { animation: none; opacity: .85; }
html[data-theme="dusk"] .pad-label { background: rgba(12,8,20,.64); box-shadow: 0 0 14px 7px rgba(12,8,20,.18); }
.process-code { position: absolute; left: 24px; bottom: 100px; margin: 0; font: 12px/2 var(--mono); color: #bba1db; opacity: .36; pointer-events: none; white-space: pre-wrap; max-width: 360px; }
.process-stream path { animation: process-dash 2.8s linear infinite; opacity: .65; }
.process-stream.phase-1 path { animation-duration: 2.2s; }
.process-stream.phase-2 path { animation-duration: 1.8s; opacity: .85; }
.process-stream text { font: 14px var(--mono); opacity: .2; animation: process-glyph 2.8s var(--delay) linear infinite; }
@keyframes process-dash { to { stroke-dashoffset: -104; } }
@keyframes process-glyph { 35%, 60% { opacity: .8; } }
html[data-effects="off"] *, html[data-effects="off"] *::before, html[data-effects="off"] *::after { animation: none !important; transition: none !important; }
html[data-effects="off"] .process-stream, html[data-effects="off"] #fx-layer { display: none; }
@media (prefers-reduced-motion: reduce) { .process-stream path, .process-stream text { animation: none; } }
.ghost-slot { background: #100b19b8; backdrop-filter: none; }
.core-read::before { content: none; }
/* Request 52: threat signals hover over the field, without a red card container. */
.card.crisis-actor { background: radial-gradient(ellipse at 43% 38%, #ed163999, #8e102b33 60%, transparent 80%); box-shadow: none; }
.card.crisis-actor .art pre { filter: drop-shadow(3px 0 0 #ff28284a); }
.card.crisis-actor:hover .art pre { animation: threat-fracture 1.8s steps(1) infinite; }
.card.crisis-actor[data-urgent="true"] .threat-mark { color: #ff7b8c; }
@keyframes threat-fracture { 0%, 89%, 100% { transform: translateX(-4px); opacity: .6; } 90%, 93% { transform: translateX(1px); opacity: .9; } 94% { transform: translateX(-7px); } }
@media (prefers-reduced-motion:reduce) { .card.crisis-actor:hover .art pre { animation: none; } }
