body {
    background-color: #000000;
    color: #FF0000;
    overflow-x: hidden;
    cursor: crosshair;
}


.scanlines {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: linear-gradient(
        to bottom,
        rgba(255, 255, 255, 0),
        rgba(255, 255, 255, 0) 50%,
        rgba(0, 0, 0, 0.2) 50%,
        rgba(0, 0, 0, 0.2)
    );
    background-size: 100% 4px;
    pointer-events: none;
    z-index: 9999;
    opacity: 0.6;
}

.noise {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    pointer-events: none;
    z-index: 9998;
    opacity: 0.05;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
}


.glitch-wrapper {
    position: relative;
}

.glitch-text {
    position: relative;
    display: inline-block;
}

.glitch-text::before,
.glitch-text::after {
    content: attr(data-text);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: transparent;
}

.glitch-text::before {
    left: 3px;
    text-shadow: -2px 0 #fff;
    clip: rect(24px, 550px, 90px, 0);
    animation: glitch-anim-2 3s infinite linear alternate-reverse;
}

.glitch-text::after {
    left: -3px;
    text-shadow: -2px 0 #FF0000;
    clip: rect(85px, 550px, 140px, 0);
    animation: glitch-anim 2.5s infinite linear alternate-reverse;
}

@keyframes glitch-anim {
    0% { clip: rect(10px, 9999px, 83px, 0); }
    5% { clip: rect(66px, 9999px, 81px, 0); }
    10% { clip: rect(51px, 9999px, 9px, 0); }
    15% { clip: rect(11px, 9999px, 95px, 0); }
    20% { clip: rect(14px, 9999px, 4px, 0); }
    25% { clip: rect(13px, 9999px, 98px, 0); }
    30% { clip: rect(27px, 9999px, 12px, 0); }
    35% { clip: rect(41px, 9999px, 51px, 0); }
    40% { clip: rect(80px, 9999px, 80px, 0); }
    45% { clip: rect(16px, 9999px, 89px, 0); }
    50% { clip: rect(18px, 9999px, 7px, 0); }
    55% { clip: rect(43px, 9999px, 73px, 0); }
    60% { clip: rect(98px, 9999px, 14px, 0); }
    65% { clip: rect(74px, 9999px, 95px, 0); }
    70% { clip: rect(77px, 9999px, 79px, 0); }
    75% { clip: rect(13px, 9999px, 77px, 0); }
    80% { clip: rect(81px, 9999px, 100px, 0); }
    85% { clip: rect(9px, 9999px, 3px, 0); }
    90% { clip: rect(42px, 9999px, 55px, 0); }
    95% { clip: rect(78px, 9999px, 86px, 0); }
    100% { clip: rect(70px, 9999px, 20px, 0); }
}

@keyframes glitch-anim-2 {
    0% { clip: rect(65px, 9999px, 100px, 0); }
    5% { clip: rect(52px, 9999px, 74px, 0); }
    10% { clip: rect(79px, 9999px, 85px, 0); }
    15% { clip: rect(75px, 9999px, 5px, 0); }
    20% { clip: rect(67px, 9999px, 61px, 0); }
    25% { clip: rect(14px, 9999px, 79px, 0); }
    30% { clip: rect(1px, 9999px, 66px, 0); }
    35% { clip: rect(86px, 9999px, 30px, 0); }
    40% { clip: rect(23px, 9999px, 98px, 0); }
    45% { clip: rect(85px, 9999px, 72px, 0); }
    50% { clip: rect(71px, 9999px, 75px, 0); }
    55% { clip: rect(2px, 9999px, 48px, 0); }
    60% { clip: rect(30px, 9999px, 16px, 0); }
    65% { clip: rect(59px, 9999px, 50px, 0); }
    70% { clip: rect(41px, 9999px, 62px, 0); }
    75% { clip: rect(2px, 9999px, 82px, 0); }
    80% { clip: rect(47px, 9999px, 73px, 0); }
    85% { clip: rect(3px, 9999px, 27px, 0); }
    90% { clip: rect(26px, 9999px, 55px, 0); }
    95% { clip: rect(42px, 9999px, 97px, 0); }
    100% { clip: rect(38px, 9999px, 49px, 0); }
}

.pixel-border {
    border-style: solid;
    border-width: 4px;
    border-image-slice: 2;
    border-image-width: 2;
    border-image-repeat: stretch;
    border-image-source: url('data:image/svg+xml;utf8,<?xml version="1.0" encoding="UTF-8" ?><svg version="1.1" width="5" height="5" xmlns="http://www.w3.org/2000/svg"><path d="M2 1 h1 v1 h-1 z M1 2 h1 v1 h-1 z M3 2 h1 v1 h-1 z M2 3 h1 v1 h-1 z" fill="rgb(255,0,0)" /></svg>');
    border-image-outset: 2;
}

.pixel-border-black {
    border-style: solid;
    border-width: 4px;
    border-image-slice: 2;
    border-image-width: 2;
    border-image-repeat: stretch;
    border-image-source: url('data:image/svg+xml;utf8,<?xml version="1.0" encoding="UTF-8" ?><svg version="1.1" width="5" height="5" xmlns="http://www.w3.org/2000/svg"><path d="M2 1 h1 v1 h-1 z M1 2 h1 v1 h-1 z M3 2 h1 v1 h-1 z M2 3 h1 v1 h-1 z" fill="rgb(0,0,0)" /></svg>');
    border-image-outset: 2;
}

.marquee-container {
    overflow: hidden;
    white-space: nowrap;
}

.marquee-content {
    display: inline-block;
    animation: marquee 20s linear infinite;
}

@keyframes marquee {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}


.hover-invert:hover {
    background-color: #FF0000 !important;
    color: #000000 !important;
}
.hover-invert-black:hover {
    background-color: #000000 !important;
    color: #FF0000 !important;
}

::selection {
    background: #FF0000;
    color: #000000;
}


.dither-art {
    background-image: 
        repeating-linear-gradient(45deg, #FF0000 25%, transparent 25%, transparent 75%, #FF0000 75%, #FF0000),
        repeating-linear-gradient(45deg, #FF0000 25%, #000000 25%, #000000 75%, #FF0000 75%, #FF0000);
    background-position: 0 0, 4px 4px;
    background-size: 8px 8px;
}

.blinking {
    animation: blinker 1s linear infinite;
}
@keyframes blinker {
    50% { opacity: 0; }
}
