website_designs

Weirdcore - Design Reference

Overview

Weirdcore is an internet-born visual aesthetic rooted in the surreal distortion of early-2000s digital imagery, evoking feelings of confusion, disorientation, nostalgia, and existential dread. It weaponizes the low-fidelity artifacts of amateur photo editing, primitive computer graphics, JPEG compression, and forgotten web pages to construct environments that feel simultaneously familiar and deeply wrong. Recurring motifs include disembodied eyes, cryptic text fragments, warped perspectives, oversaturated or washed-out color shifts, and liminal spaces rendered through corrupted digital processes. Unlike its calmer sibling Dreamcore, Weirdcore is aggressively distorted, intentionally chaotic, and leans into the uncanny valley of digital memory – producing visuals that look like corrupted screenshots from a reality that never quite existed.

Visual Characteristics

Core Design Traits

Design Principles

Color Palette

Swatch Hex Role
Corrupted White #E8E4D8 Yellowed, aged background like a sun-damaged photograph
Static Grey #A3A3A3 Neutral noise, interface chrome, muted surfaces
Void Black #0A0A0F Deep shadows, text, pupil of the eye motif
Neon Bleed Green #39FF14 Toxic glow, matrix-style accents, terminal text
Glitch Magenta #FF00FF Channel splitting, chromatic aberration highlight
Warning Yellow #E8D44D Grainy filter tone, aged film, cautionary accents
Liminal Lavender #B8A9C9 Washed-out surreal haze, dreamlike midtone
Scan Blue #00BFFF CRT glow, hyperlink nostalgia, digital water
Flesh Pink #D4A0A0 Uncanny skin tones, organic unease
Error Red #CC2233 System failure, alert states, blood pixel
Compression Tan #C8B890 JPEG artifact tone, institutional wall color
VHS Purple #6B2D8B Tracking distortion, analog decay accent

CSS Custom Properties

:root {
  --weird-corrupted: #E8E4D8;
  --weird-static: #A3A3A3;
  --weird-void: #0A0A0F;
  --weird-neon-green: #39FF14;
  --weird-glitch-magenta: #FF00FF;
  --weird-warning: #E8D44D;
  --weird-lavender: #B8A9C9;
  --weird-scan-blue: #00BFFF;
  --weird-flesh: #D4A0A0;
  --weird-error: #CC2233;
  --weird-compression: #C8B890;
  --weird-vhs: #6B2D8B;
}

Typography

Typeface Characteristics

Weirdcore typography deliberately abuses type. Fonts are selected for their associations with early computing, system defaults, and cheap web design. They are then distorted, misaligned, overlaid, and set at inappropriate sizes. The goal is text that feels like a message left behind in a corrupted file system – legible enough to unsettle, broken enough to disorient. Comic Sans, Times New Roman, and Arial carry ironic weight here; pixel fonts and monospaced terminals evoke obsolete machines. WordArt-style gradients and embossing push type into the realm of garish early-web decoration.

Font Style Best For
VT323 Pixel monospace Terminal messages, error logs, system text, retro CRT displays
Press Start 2P Pixel display Headings with aggressive 8-bit energy, game-over screens
Creepster Horror display Unsettling headlines, dread-inducing labels (use sparingly)
Comic Neue Casual handwritten Ironic body text, naive-sinister captions (Comic Sans substitute)
Special Elite Typewriter Found-document text, institutional reports, degraded memos
Rubik Glitch Glitch display Headers with built-in distortion, corrupted titles
Space Mono Technical monospace Code-style body text, system interface labels
Bungee Shade Dimensional display WordArt-style decorative headers, retro 3D text effect

Font Pairing Suggestions

Heading Body Mood
Rubik Glitch 400 VT323 400 Corrupted system terminal, broken software
Press Start 2P 400 Comic Neue 400 Sinister game interface, ironic naivety
Creepster 400 Special Elite 400 Found horror document, unsettling report
Bungee Shade 400 Space Mono 400 Early web maximalism meets cold precision
VT323 400 Comic Neue 300 Old machine with childlike wrongness

Typography CSS Example

@import url('https://fonts.googleapis.com/css2?family=VT323&family=Press+Start+2P&family=Creepster&family=Comic+Neue:wght@300;400;700&family=Special+Elite&family=Rubik+Glitch&family=Space+Mono:wght@400;700&family=Bungee+Shade&display=swap');

body {
  font-family: 'Comic Neue', 'Comic Sans MS', cursive;
  font-size: 1rem;
  line-height: 1.6;
  color: var(--weird-void);
  -webkit-font-smoothing: none;
}

h1, h2 {
  font-family: 'Rubik Glitch', 'Impact', sans-serif;
  font-weight: 400;
  letter-spacing: 0.05em;
  color: var(--weird-neon-green);
  text-shadow:
    3px 0 var(--weird-glitch-magenta),
    -3px 0 var(--weird-scan-blue);
}

h3 {
  font-family: 'Press Start 2P', monospace;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--weird-error);
}

.system-text {
  font-family: 'VT323', monospace;
  font-size: 1.4rem;
  color: var(--weird-neon-green);
}

.found-text {
  font-family: 'Special Elite', 'Courier New', monospace;
  font-size: 0.95rem;
  color: var(--weird-static);
  transform: rotate(-0.5deg);
}

.wordart-text {
  font-family: 'Bungee Shade', cursive;
  font-size: 2.5rem;
  background: linear-gradient(180deg, var(--weird-warning), var(--weird-error), var(--weird-vhs));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

Layout Principles

Grid and Structure

Section Organization

Responsive Approach

CSS / Design Techniques

Glitch Card

.weird-card {
  background: var(--weird-corrupted);
  border: 2px solid var(--weird-static);
  padding: 32px;
  max-width: 480px;
  position: relative;
  overflow: hidden;
  transform: rotate(-0.3deg);
}

.weird-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background:
    repeating-linear-gradient(
      0deg,
      transparent,
      transparent 2px,
      rgba(57, 255, 20, 0.03) 2px,
      rgba(57, 255, 20, 0.03) 4px
    );
  pointer-events: none;
}

.weird-card::after {
  content: '';
  position: absolute;
  top: -2px;
  left: 10%;
  width: 80%;
  height: 4px;
  background: var(--weird-glitch-magenta);
  opacity: 0.6;
  animation: glitch-bar 3s infinite steps(1);
}

@keyframes glitch-bar {
  0%, 90% { top: -2px; opacity: 0; }
  91% { top: 20%; opacity: 0.6; }
  93% { top: 50%; opacity: 0.4; }
  95% { top: 80%; opacity: 0.7; }
  97% { top: 10%; opacity: 0.3; }
  100% { top: -2px; opacity: 0; }
}

Corrupted Button

.weird-button {
  background: var(--weird-void);
  color: var(--weird-neon-green);
  border: 1px solid var(--weird-neon-green);
  padding: 10px 24px;
  font-family: 'VT323', monospace;
  font-size: 1.1rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  cursor: pointer;
  position: relative;
  transition: none;
}

.weird-button:hover {
  background: var(--weird-neon-green);
  color: var(--weird-void);
  text-shadow:
    2px 0 var(--weird-glitch-magenta),
    -2px 0 var(--weird-scan-blue);
  animation: button-corrupt 0.15s infinite steps(1);
}

@keyframes button-corrupt {
  0% { transform: translate(0, 0); }
  25% { transform: translate(-2px, 1px); }
  50% { transform: translate(2px, -1px); }
  75% { transform: translate(-1px, -2px); }
  100% { transform: translate(1px, 2px); }
}

Distortion Navigation

.weird-nav {
  background: var(--weird-void);
  border-bottom: 2px solid var(--weird-neon-green);
  padding: 16px 32px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: relative;
}

.weird-nav::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--weird-glitch-magenta);
  clip-path: polygon(0 0, 15% 0, 15% 100%, 30% 100%, 30% 0, 60% 0, 60% 100%, 75% 100%, 75% 0, 100% 0, 100% 100%, 0 100%);
}

.weird-nav a {
  font-family: 'VT323', monospace;
  font-size: 1rem;
  color: var(--weird-neon-green);
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.2em;
}

.weird-nav a:hover {
  color: var(--weird-glitch-magenta);
  text-shadow:
    1px 0 var(--weird-scan-blue),
    -1px 0 var(--weird-error);
}

Corrupted Hero

.weird-hero {
  background: var(--weird-void);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
}

.weird-hero::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background:
    radial-gradient(ellipse at 30% 40%, rgba(107, 45, 139, 0.15) 0%, transparent 50%),
    radial-gradient(ellipse at 70% 60%, rgba(57, 255, 20, 0.08) 0%, transparent 50%),
    radial-gradient(ellipse at 50% 50%, rgba(255, 0, 255, 0.05) 0%, transparent 70%);
  pointer-events: none;
}

.weird-hero::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: repeating-linear-gradient(
    0deg,
    transparent 0px,
    transparent 2px,
    rgba(57, 255, 20, 0.015) 2px,
    rgba(57, 255, 20, 0.015) 4px
  );
  pointer-events: none;
}

.weird-hero h1 {
  font-family: 'Rubik Glitch', sans-serif;
  font-size: clamp(2rem, 8vw, 5rem);
  color: var(--weird-neon-green);
  text-shadow:
    4px 0 var(--weird-glitch-magenta),
    -4px 0 var(--weird-scan-blue),
    0 0 40px rgba(57, 255, 20, 0.3);
  position: relative;
  animation: hero-glitch 4s infinite steps(1);
}

@keyframes hero-glitch {
  0%, 85% { text-shadow: 4px 0 var(--weird-glitch-magenta), -4px 0 var(--weird-scan-blue), 0 0 40px rgba(57,255,20,0.3); transform: translate(0,0) skewX(0deg); }
  86% { text-shadow: -6px 0 var(--weird-error), 6px 0 var(--weird-scan-blue); transform: translate(3px,-1px) skewX(-2deg); }
  88% { text-shadow: 8px 2px var(--weird-glitch-magenta), -4px -2px var(--weird-neon-green); transform: translate(-2px,2px) skewX(1deg); }
  90% { text-shadow: 4px 0 var(--weird-glitch-magenta), -4px 0 var(--weird-scan-blue), 0 0 40px rgba(57,255,20,0.3); transform: translate(0,0) skewX(0deg); }
}

.weird-hero .subtitle {
  font-family: 'VT323', monospace;
  font-size: 1.2rem;
  color: var(--weird-static);
  margin-top: 24px;
  position: relative;
}

Eye Motif Element

.weird-eye {
  width: 120px;
  height: 120px;
  border-radius: 50%;
  border: 3px solid var(--weird-neon-green);
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 30px rgba(57, 255, 20, 0.2);
  animation: eye-pulse 3s ease-in-out infinite;
}

.weird-eye::before {
  content: '';
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: var(--weird-neon-green);
}

.weird-eye::after {
  content: '';
  position: absolute;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--weird-void);
}

@keyframes eye-pulse {
  0%, 100% { box-shadow: 0 0 30px rgba(57, 255, 20, 0.2); }
  50% { box-shadow: 0 0 60px rgba(57, 255, 20, 0.4), 0 0 100px rgba(255, 0, 255, 0.15); }
}

System Warning Message

.weird-system {
  font-family: 'VT323', monospace;
  font-size: 1.3rem;
  color: var(--weird-neon-green);
  background: rgba(10, 10, 15, 0.9);
  border-left: 3px solid var(--weird-error);
  padding: 16px 24px;
  margin: 32px 0;
  position: relative;
}

.weird-system::before {
  content: 'WARNING://';
  display: block;
  font-size: 0.9rem;
  color: var(--weird-error);
  margin-bottom: 8px;
  letter-spacing: 0.2em;
}

.weird-system::after {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  width: 60%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 0, 255, 0.03));
  pointer-events: none;
}

Scanline Overlay

.weird-scanlines {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
  z-index: 9999;
  background:
    repeating-linear-gradient(
      0deg,
      rgba(0, 0, 0, 0.03) 0px,
      rgba(0, 0, 0, 0.03) 1px,
      transparent 1px,
      transparent 3px
    );
  mix-blend-mode: multiply;
}

.weird-scanlines::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: radial-gradient(
    ellipse at center,
    transparent 50%,
    rgba(10, 10, 15, 0.15) 100%
  );
}

Corrupted Image Container

.weird-image {
  position: relative;
  overflow: hidden;
  filter: contrast(1.2) saturate(0.7) hue-rotate(10deg);
}

.weird-image::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background:
    linear-gradient(
      transparent 0%,
      rgba(255, 0, 255, 0.05) 30%,
      transparent 31%,
      transparent 60%,
      rgba(57, 255, 20, 0.05) 61%,
      transparent 62%
    );
  pointer-events: none;
  animation: image-corrupt 5s linear infinite;
}

@keyframes image-corrupt {
  0% { transform: translateY(-100%); }
  100% { transform: translateY(100%); }
}

.weird-image img {
  display: block;
  width: 100%;
  image-rendering: pixelated;
}

Design Do’s and Don’ts

Do

Don’t

Aesthetic Relationship
Dreamcore Closest sibling; shares liminal spaces and surreal nostalgia but Dreamcore is subtler, quieter, and more passively unsettling where Weirdcore is aggressive and chaotic
Vaporwave Both mine early internet and digital nostalgia; Vaporwave is ironic, consumer-culture-focused, and visually lush where Weirdcore is sinister and degraded
Liminal Spaces Overlapping subject matter (empty hallways, pools, malls); Liminal Spaces is photographic documentation while Weirdcore actively distorts and corrupts these images
Y2K Futurism Shares the late-90s/early-2000s digital source material; Y2K is optimistic, glossy, and forward-looking while Weirdcore treats the same era as a corrupted nightmare
Glitchcore Near-synonym in some contexts; Glitchcore emphasizes the technical process of digital corruption while Weirdcore focuses on the emotional and psychological effect
Backrooms Shares liminal space imagery and existential dread; Backrooms is more narrative and worldbuilding-focused while Weirdcore is purely visual and atmospheric
Cyberpunk Both feature neon-on-dark palettes and digital dystopia; Cyberpunk is narrative and worldbuilt while Weirdcore is abstract and ambiguous
Early Cyber Shares early internet visual DNA; Early Cyber celebrates the era with genuine enthusiasm while Weirdcore makes it feel haunted and corrupted

Quick-Start HTML Template

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>WEIRDCORE // LAYOUT_0x3F</title>
  <link href="https://fonts.googleapis.com/css2?family=VT323&family=Rubik+Glitch&family=Press+Start+2P&family=Comic+Neue:wght@300;400;700&family=Space+Mono:wght@400;700&display=swap" rel="stylesheet">
  <style>
    *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }

    :root {
      --weird-corrupted: #E8E4D8;
      --weird-static: #A3A3A3;
      --weird-void: #0A0A0F;
      --weird-neon-green: #39FF14;
      --weird-glitch-magenta: #FF00FF;
      --weird-warning: #E8D44D;
      --weird-lavender: #B8A9C9;
      --weird-scan-blue: #00BFFF;
      --weird-flesh: #D4A0A0;
      --weird-error: #CC2233;
      --weird-compression: #C8B890;
      --weird-vhs: #6B2D8B;
    }

    body {
      font-family: 'Comic Neue', 'Comic Sans MS', cursive;
      font-size: 1rem;
      line-height: 1.6;
      color: var(--weird-corrupted);
      background: var(--weird-void);
      min-height: 100vh;
      overflow-x: hidden;
      -webkit-font-smoothing: none;
    }

    /* Scanline overlay */
    body::after {
      content: '';
      position: fixed;
      top: 0; left: 0; right: 0; bottom: 0;
      pointer-events: none;
      z-index: 9999;
      background:
        repeating-linear-gradient(
          0deg,
          rgba(57, 255, 20, 0.015) 0px,
          rgba(57, 255, 20, 0.015) 1px,
          transparent 1px,
          transparent 3px
        );
    }

    /* CRT vignette */
    body::before {
      content: '';
      position: fixed;
      top: 0; left: 0; right: 0; bottom: 0;
      pointer-events: none;
      z-index: 9998;
      background: radial-gradient(ellipse at center, transparent 50%, rgba(10,10,15,0.4) 100%);
    }

    /* --- Navigation --- */
    .nav {
      background: var(--weird-void);
      border-bottom: 2px solid var(--weird-neon-green);
      padding: 14px 32px;
      display: flex;
      justify-content: space-between;
      align-items: center;
      position: relative;
      z-index: 100;
    }

    .nav::after {
      content: '';
      position: absolute;
      bottom: -4px;
      left: 0;
      right: 0;
      height: 2px;
      background: var(--weird-glitch-magenta);
      clip-path: polygon(0 0, 20% 0, 20% 100%, 35% 100%, 35% 0, 55% 0, 55% 100%, 70% 100%, 70% 0, 100% 0, 100% 100%, 0 100%);
    }

    .nav-logo {
      font-family: 'VT323', monospace;
      font-size: 1.2rem;
      color: var(--weird-neon-green);
      text-decoration: none;
      letter-spacing: 0.15em;
    }

    .nav-links a {
      font-family: 'VT323', monospace;
      font-size: 0.95rem;
      color: var(--weird-neon-green);
      text-decoration: none;
      text-transform: uppercase;
      letter-spacing: 0.15em;
      margin-left: 28px;
    }

    .nav-links a:hover {
      color: var(--weird-glitch-magenta);
      text-shadow: 1px 0 var(--weird-scan-blue), -1px 0 var(--weird-error);
    }

    /* --- Hero --- */
    .hero {
      min-height: 100vh;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      position: relative;
      overflow: hidden;
    }

    .hero::before {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0; bottom: 0;
      background:
        radial-gradient(ellipse at 25% 35%, rgba(107,45,139,0.12) 0%, transparent 50%),
        radial-gradient(ellipse at 75% 65%, rgba(57,255,20,0.06) 0%, transparent 50%),
        radial-gradient(ellipse at 50% 50%, rgba(255,0,255,0.04) 0%, transparent 70%);
      pointer-events: none;
    }

    .hero-title {
      font-family: 'Rubik Glitch', sans-serif;
      font-size: clamp(2.5rem, 10vw, 6rem);
      font-weight: 400;
      color: var(--weird-neon-green);
      text-shadow:
        5px 0 var(--weird-glitch-magenta),
        -5px 0 var(--weird-scan-blue),
        0 0 60px rgba(57,255,20,0.25);
      position: relative;
      z-index: 10;
      animation: title-glitch 5s infinite steps(1);
    }

    @keyframes title-glitch {
      0%, 88% { text-shadow: 5px 0 var(--weird-glitch-magenta), -5px 0 var(--weird-scan-blue), 0 0 60px rgba(57,255,20,0.25); transform: translate(0,0) skewX(0deg); }
      89% { text-shadow: -8px 2px var(--weird-error), 6px -2px var(--weird-scan-blue); transform: translate(4px,-2px) skewX(-3deg); }
      91% { text-shadow: 10px 3px var(--weird-glitch-magenta), -5px -1px var(--weird-neon-green); transform: translate(-3px,3px) skewX(2deg); }
      93% { text-shadow: 5px 0 var(--weird-glitch-magenta), -5px 0 var(--weird-scan-blue), 0 0 60px rgba(57,255,20,0.25); transform: translate(0,0) skewX(0deg); }
    }

    .hero-sub {
      font-family: 'VT323', monospace;
      font-size: 1.3rem;
      color: var(--weird-static);
      margin-top: 28px;
      letter-spacing: 0.3em;
      position: relative;
      z-index: 10;
    }

    /* Floating Eye */
    .eye {
      width: 100px;
      height: 100px;
      border-radius: 50%;
      border: 3px solid var(--weird-neon-green);
      position: absolute;
      display: flex;
      align-items: center;
      justify-content: center;
      box-shadow: 0 0 30px rgba(57,255,20,0.15);
      animation: eye-float 6s ease-in-out infinite;
      z-index: 5;
    }

    .eye.eye-1 { top: 15%; left: 10%; animation-delay: 0s; }
    .eye.eye-2 { bottom: 20%; right: 8%; animation-delay: -2s; width: 70px; height: 70px; border-color: var(--weird-glitch-magenta); box-shadow: 0 0 30px rgba(255,0,255,0.15); }
    .eye.eye-3 { top: 60%; left: 75%; animation-delay: -4s; width: 50px; height: 50px; border-color: var(--weird-error); box-shadow: 0 0 20px rgba(204,34,51,0.15); }

    .eye::before {
      content: '';
      width: 40%;
      height: 40%;
      border-radius: 50%;
      background: currentColor;
    }

    .eye::after {
      content: '';
      position: absolute;
      width: 15%;
      height: 15%;
      border-radius: 50%;
      background: var(--weird-void);
    }

    .eye.eye-1 { color: var(--weird-neon-green); }
    .eye.eye-2 { color: var(--weird-glitch-magenta); }
    .eye.eye-3 { color: var(--weird-error); }

    @keyframes eye-float {
      0%, 100% { transform: translateY(0) rotate(0deg); }
      33% { transform: translateY(-15px) rotate(3deg); }
      66% { transform: translateY(10px) rotate(-2deg); }
    }

    /* --- System Warning --- */
    .warning {
      font-family: 'VT323', monospace;
      font-size: 1.2rem;
      color: var(--weird-neon-green);
      background: rgba(10,10,15,0.85);
      border-left: 3px solid var(--weird-error);
      padding: 16px 24px;
      margin: 60px auto;
      max-width: 600px;
      position: relative;
    }

    .warning::before {
      content: 'WARNING://';
      display: block;
      font-size: 0.85rem;
      color: var(--weird-error);
      margin-bottom: 6px;
      letter-spacing: 0.2em;
    }

    /* --- Content Grid --- */
    .content {
      max-width: 800px;
      margin: 0 auto;
      padding: 60px 32px;
    }

    .section-label {
      font-family: 'Press Start 2P', monospace;
      font-size: 0.65rem;
      color: var(--weird-error);
      text-transform: uppercase;
      letter-spacing: 0.15em;
      margin-bottom: 32px;
    }

    .cards {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 24px;
    }

    .card {
      background: rgba(232,228,216,0.04);
      border: 1px solid rgba(163,163,163,0.2);
      padding: 28px;
      position: relative;
      overflow: hidden;
      transform: rotate(-0.3deg);
    }

    .card:nth-child(2) { transform: rotate(0.4deg); }
    .card:nth-child(3) { transform: rotate(0.2deg); }
    .card:nth-child(4) { transform: rotate(-0.5deg); }

    .card::before {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0; bottom: 0;
      background: repeating-linear-gradient(
        0deg, transparent, transparent 2px,
        rgba(57,255,20,0.02) 2px,
        rgba(57,255,20,0.02) 4px
      );
      pointer-events: none;
    }

    .card::after {
      content: '';
      position: absolute;
      top: -2px;
      left: 15%;
      width: 70%;
      height: 3px;
      background: var(--weird-glitch-magenta);
      opacity: 0;
      animation: card-glitch-bar 6s infinite steps(1);
    }

    .card:nth-child(2)::after { animation-delay: -1.5s; background: var(--weird-scan-blue); }
    .card:nth-child(3)::after { animation-delay: -3s; background: var(--weird-error); }
    .card:nth-child(4)::after { animation-delay: -4.5s; }

    @keyframes card-glitch-bar {
      0%, 92% { top: -2px; opacity: 0; }
      93% { top: 25%; opacity: 0.5; }
      95% { top: 60%; opacity: 0.3; }
      97% { top: 10%; opacity: 0.6; }
      100% { top: -2px; opacity: 0; }
    }

    .card h3 {
      font-family: 'Rubik Glitch', sans-serif;
      font-size: 1.1rem;
      font-weight: 400;
      color: var(--weird-neon-green);
      margin-bottom: 12px;
      text-shadow: 2px 0 var(--weird-glitch-magenta), -2px 0 var(--weird-scan-blue);
    }

    .card p {
      font-family: 'Comic Neue', cursive;
      font-size: 0.9rem;
      color: var(--weird-static);
      line-height: 1.5;
    }

    .card .tag {
      font-family: 'VT323', monospace;
      font-size: 0.85rem;
      color: var(--weird-warning);
      margin-top: 16px;
      display: inline-block;
    }

    /* --- Buttons --- */
    .button {
      display: inline-block;
      background: var(--weird-void);
      color: var(--weird-neon-green);
      border: 1px solid var(--weird-neon-green);
      padding: 10px 24px;
      font-family: 'VT323', monospace;
      font-size: 1.05rem;
      letter-spacing: 0.15em;
      text-transform: uppercase;
      text-decoration: none;
      cursor: pointer;
      margin-top: 16px;
    }

    .button:hover {
      background: var(--weird-neon-green);
      color: var(--weird-void);
      text-shadow: 2px 0 var(--weird-glitch-magenta), -2px 0 var(--weird-scan-blue);
      animation: button-shake 0.15s infinite steps(1);
    }

    @keyframes button-shake {
      0% { transform: translate(0,0); }
      25% { transform: translate(-2px,1px); }
      50% { transform: translate(2px,-1px); }
      75% { transform: translate(-1px,-2px); }
      100% { transform: translate(1px,2px); }
    }

    /* --- Marquee Banner --- */
    .marquee-wrap {
      overflow: hidden;
      border-top: 1px solid rgba(57,255,20,0.2);
      border-bottom: 1px solid rgba(57,255,20,0.2);
      padding: 12px 0;
      margin: 60px 0;
    }

    .marquee {
      font-family: 'Press Start 2P', monospace;
      font-size: 0.55rem;
      color: var(--weird-error);
      letter-spacing: 0.3em;
      text-transform: uppercase;
      white-space: nowrap;
      animation: scroll-left 20s linear infinite;
    }

    @keyframes scroll-left {
      0% { transform: translateX(100%); }
      100% { transform: translateX(-100%); }
    }

    /* --- Footer --- */
    .footer {
      text-align: center;
      padding: 60px 32px;
      border-top: 1px solid rgba(163,163,163,0.1);
    }

    .footer p {
      font-family: 'VT323', monospace;
      font-size: 0.95rem;
      color: rgba(163,163,163,0.4);
      letter-spacing: 0.2em;
    }

    .footer .blink {
      animation: blink 1.5s steps(1) infinite;
      color: var(--weird-neon-green);
    }

    @keyframes blink {
      0%, 50% { opacity: 1; }
      51%, 100% { opacity: 0; }
    }

    /* --- Responsive --- */
    @media (max-width: 640px) {
      .cards { grid-template-columns: 1fr; }
      .nav { padding: 12px 16px; }
      .nav-links a { margin-left: 16px; font-size: 0.8rem; }
      .content { padding: 40px 16px; }
      .warning { margin: 40px 16px; }
      .eye.eye-2, .eye.eye-3 { display: none; }
    }
  </style>
</head>
<body>
  <nav class="nav">
    <a href="#" class="nav-logo">SYS://WEIRD_0x3F</a>
    <div class="nav-links">
      <a href="#">VOID</a>
      <a href="#">MEMORY</a>
      <a href="#">EXIT?</a>
    </div>
  </nav>

  <header class="hero">
    <div class="eye eye-1"></div>
    <div class="eye eye-2"></div>
    <div class="eye eye-3"></div>
    <h1 class="hero-title">WEIRDCORE</h1>
    <div class="hero-sub">do you remember this place . . . you were never here</div>
  </header>

  <div class="warning">you are not supposed to be reading this. the file was marked for deletion on a date that has not occurred yet.</div>

  <main class="content">
    <div class="section-label">// RECOVERED_FILES</div>
    <div class="cards">
      <div class="card">
        <h3>Room 404</h3>
        <p>The hallway extends further than the building allows. The lights flicker at a frequency your eyes cannot track. You have been here before.</p>
        <span class="tag">[LOCATION: UNKNOWN]</span>
        <br>
        <a href="#" class="button">ENTER</a>
      </div>
      <div class="card">
        <h3>The Signal</h3>
        <p>A television displays static in a room with no power outlets. The static forms patterns if you watch long enough. Do not watch long enough.</p>
        <span class="tag">[STATUS: ACTIVE]</span>
        <br>
        <a href="#" class="button">RECEIVE</a>
      </div>
      <div class="card">
        <h3>Memory_03.jpg</h3>
        <p>This photograph was taken on a camera that does not exist, in a location that was demolished in 1998. The timestamp reads tomorrow.</p>
        <span class="tag">[CORRUPTION: 78%]</span>
        <br>
        <a href="#" class="button">RECOVER</a>
      </div>
      <div class="card">
        <h3>The Pool</h3>
        <p>Still water. No reflections. The depth gauge reads a negative number. Someone left a towel on a chair that is bolted to the ceiling.</p>
        <span class="tag">[DEPTH: -12m]</span>
        <br>
        <a href="#" class="button">DESCEND</a>
      </div>
    </div>

    <div class="marquee-wrap">
      <div class="marquee">/// THIS CONTENT HAS BEEN FLAGGED FOR REVIEW /// FILE ORIGIN: UNRESOLVED /// TIMESTAMP: ERR_OVERFLOW /// DO NOT DISTRIBUTE /// THIS CONTENT HAS BEEN FLAGGED FOR REVIEW ///</div>
    </div>

    <div class="warning">process terminated unexpectedly. 3 files were modified by an unknown user at 03:33:33. no login records exist for this session.</div>
  </main>

  <footer class="footer">
    <p>LAST MODIFIED: NEVER <span class="blink">_</span></p>
    <p style="margin-top: 12px; font-size: 0.8rem;">connection_status: unstable // user_count: 1 (unverified)</p>
  </footer>
</body>
</html>