:root{--ink-black: #101014;--burgundy: #651D2B;--blood-red: #D83B42;--aged-paper: #E8D9B7;--dirty-cream: #F5EBD7;--muted-gray: #8D8990;--neon-pink: #FF4E88}body{background-color:var(--ink-black);color:var(--dirty-cream);font-family:Plus Jakarta Sans,system-ui,sans-serif;overflow-x:hidden}.font-display{font-family:Bebas Neue,sans-serif;letter-spacing:.05em}.font-typewriter{font-family:Special Elite,monospace}.font-mono-code{font-family:Space Mono,monospace}.stamp-badge{font-family:Special Elite,monospace;text-transform:uppercase;border:2px dashed #D83B42;color:#d83b42;display:inline-block;padding:.25rem .75rem;font-weight:700;letter-spacing:.1em;transform:rotate(-3deg);box-shadow:0 0 10px #d83b4233;-webkit-user-select:none;user-select:none}.stamp-badge-green{font-family:Special Elite,monospace;text-transform:uppercase;border:2px dashed #34D399;color:#34d399;display:inline-block;padding:.25rem .75rem;font-weight:700;letter-spacing:.1em;transform:rotate(2deg);box-shadow:0 0 10px #34d39933;-webkit-user-select:none;user-select:none}.aged-paper-card{background-color:#e8d9b7;color:#1a1a20;background-image:radial-gradient(#d3c29c 1px,transparent 1px);background-size:16px 16px;box-shadow:0 10px 25px -5px #0009,0 8px 10px -6px #0009}.redacted-text{background-color:#101014;color:transparent;padding:.1rem .35rem;border-radius:2px;cursor:pointer;transition:all .25s ease;-webkit-user-select:none;user-select:none}.redacted-text:hover,.redacted-text.revealed{background-color:#d83b4226;color:#f5ebd7;border-bottom:1px dashed #D83B42}.grain-overlay{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.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.035'/%3E%3C/svg%3E")}@keyframes ticker{0%{transform:translate(0)}to{transform:translate(-50%)}}.animate-ticker{display:flex;width:max-content;animation:ticker 25s linear infinite}.animate-ticker:hover{animation-play-state:paused}@keyframes scanline{0%{transform:translateY(-100%)}to{transform:translateY(1000%)}}.animate-scanline{animation:scanline 2.5s linear infinite}@media(prefers-reduced-motion:reduce){.animate-ticker,.animate-scanline,*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
