/* Oracle Video Module — placeholder styles for future WebM avatar */

.oracle-stage {
    position: relative;
    width: 100%;
    max-width: 640px;
    margin: 0 auto;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: transparent;
}

.oracle-video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    mix-blend-mode: screen;
    filter: contrast(1.15) saturate(0.8);
}

/* Scanlines */
.oracle-stage::after {
    content: "";
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(
        0deg,
        rgba(0, 0, 0, 0.22) 0px,
        rgba(0, 0, 0, 0.22) 1px,
        transparent 1px,
        transparent 3px
    );
    pointer-events: none;
    opacity: 0.55;
    animation: scanFlicker 0.12s steps(2) infinite;
}

@keyframes scanFlicker {
    0% { opacity: 0.52; }
    100% { opacity: 0.58; }
}

/* CRT distortion via SVG filter is applied inline or via class */
.oracle-crt {
    filter: url(#crt-distortion);
}

/* Signal noise overlay */
.oracle-noise {
    position: absolute;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.08'/%3E%3C/svg%3E");
    background-size: 128px 128px;
    mix-blend-mode: overlay;
    pointer-events: none;
    opacity: 0.35;
    animation: noiseShift 0.3s steps(3) infinite;
}

@keyframes noiseShift {
    0% { transform: translate(0, 0); }
    33% { transform: translate(-4px, 2px); }
    66% { transform: translate(3px, -3px); }
    100% { transform: translate(0, 0); }
}
