# Design Language for historic.quest

## Aesthetics and Tone

historic.quest explodes history out of the museum glass case and into the sensory overload of a late-night illegal rave held inside a decommissioned Cold War bunker. The aesthetic is **maximalist glitch-archaeology** -- imagine the walls of a brutalist military installation plastered floor-to-ceiling with torn propaganda posters from every era (Roman mosaics layered over Soviet constructivism layered over Y2K-era GeoCities screenshots), all strobing under banks of malfunctioning LED panels that cast everything in violent neon pink, toxic green, and electric cyan. History is not quiet here. History is a living, screaming, over-saturated data stream, and the site treats every epoch as a frequency to be remixed, distorted, and broadcast at maximum volume.

The visual direction draws from the collision of **databending** (the practice of deliberately corrupting image files to create glitch art) applied to historical source material -- Renaissance paintings run through hex editors, cuneiform tablets with chromatic aberration, medieval manuscripts with scanline artifacts. The mood is confrontational and euphoric simultaneously: the intellectual weight of historical inquiry delivered with the adrenaline of a drum-and-bass drop. Nothing is reverent. Everything is alive. The tone refuses the dusty sepia palette that 100% of history-adjacent sites default to, instead treating the past as a neon-drenched future that already happened.

Every surface is layered. There is no negative space -- only space that hasn't been filled yet. Text overlaps text. Images bleed through other images. The scroll experience should feel like channel-surfing through every century at once on a television that is slowly melting.

## Layout Motifs and Structure

The layout operates on a **full-bleed layered-depth** system -- a deliberately overwhelming, edge-to-edge canvas where content panels exist on multiple visual z-planes, overlapping and intersecting like tectonic plates of information. There is no container max-width. Content runs from viewport edge to viewport edge with zero padding on the outermost layer, creating an immersive, inescapable visual field.

**Primary Structure -- The Stratum Stack:**
The page is organized as a series of "strata" -- full-viewport-width horizontal bands that represent different temporal layers. Each stratum occupies at minimum 100vh and uses `position: sticky` to create a geological excavation effect: as the user scrolls, new strata slide up from beneath, partially covering the previous layer while leaving 10-15% of it visible at the top edge, creating a literal stack of historical periods. After 4-5 strata accumulate, the earliest ones begin to `transform: scale(0.95)` and `filter: blur(2px)`, simulating depth-of-field as they recede into the "past."

**The Interference Grid:**
Within each stratum, content is placed on a 12-column CSS grid with deliberately broken alignment. Columns 1-4 might hold a massive typographic element. Columns 3-8 (overlapping!) hold an image panel with `mix-blend-mode: screen`. Columns 6-12 hold body text with a semi-transparent background. The overlap is intentional -- elements bleed into each other, creating visual interference patterns that echo the glitch aesthetic. Grid gaps vary: 0px where elements should collide, 2rem where breathing room serves the narrative.

**The Ticker Bar:**
A persistent, `position: fixed` horizontal ticker runs across the bottom 48px of the viewport at all times, scrolling historical dates, events, and fragments in a continuous loop (`@keyframes ticker` with `translateX` animation). The ticker uses `mix-blend-mode: difference` against whatever content sits behind it, ensuring it always remains visible while also creating unpredictable color inversions as the user scrolls through different strata.

**No Traditional Navigation:**
There is no hamburger menu, no sticky header nav. Instead, the site uses a "channel selector" -- a vertical strip of numbered buttons (styled as old CRT television channel selectors) fixed to the right edge of the viewport. Each "channel" jumps to a different stratum. The active channel number glitches and flickers using a CSS animation that rapidly alternates between 3 slightly offset `text-shadow` values in cyan, magenta, and yellow.

## Typography and Palette

**Typography:**

- **Display / Headlines:** "Bungee Shade" (Google Fonts) -- an extremely bold, layered display face with built-in dimensional shading that gives every headline the feeling of a jumbotron sign at a demolished stadium. Used at 4rem-12rem for stratum titles. The built-in shadow layers are colorized via CSS `background-clip: text` tricks: the front face in #FF00FF (Reactor Magenta), the shade layer in #00FFCC (Artifact Cyan). Letter-spacing: -0.04em for maximum density. Line-height: 0.85 for stacked headlines that crush into each other. The letters should feel like they're fighting for space.

- **Sub-headlines / Section Markers:** "Orbitron" (Google Fonts) -- a geometric, space-age sans-serif with sharp corners and a mechanical, digital feel. Used at 1.2rem-2.4rem. All-caps with `letter-spacing: 0.25em` and `font-weight: 700`. This font provides the "data readout" quality -- clinical and futuristic -- that contrasts with Bungee Shade's bombastic maximalism. Color: #BFFF00 (Isotope Chartreuse) against dark backgrounds.

- **Body Text:** "Space Grotesk" (Google Fonts) -- a proportional sans-serif with a mechanical skeleton derived from a monospace (Space Mono), giving it an unusual tension between readability and technical precision. Used at 1rem-1.2rem, `font-weight: 400`, `line-height: 1.65`. Set in #E0E0E0 (Ash) on dark backgrounds and #1A1A1A (Void) on neon backgrounds. Maximum width for body text blocks: 65ch, but these blocks are placed at varying positions within the interference grid, not centered.

- **Accent / Data / Labels:** "Share Tech Mono" (Google Fonts) -- a strict monospace with a techy, utilitarian character. Used for the ticker bar, channel numbers, date stamps, and inline code-style historical data callouts. Set at 0.85rem, `font-weight: 400`, `letter-spacing: 0.08em`. Color: variable, always matching the stratum's accent neon.

**Palette:**

The palette is **dopamine-neon** -- a high-voltage, deliberately uncomfortable color system designed to make the viewer's retinas protest. No muted tones. No pastels. Every color is cranked to maximum saturation.

| Name | Hex | Role |
|---|---|---|
| Void Black | #0A0A0F | Primary background, the darkness between strata |
| Reactor Magenta | #FF00FF | Primary accent, headline front-face, link hover state |
| Artifact Cyan | #00FFCC | Secondary accent, headline shade, border glow |
| Isotope Chartreuse | #BFFF00 | Tertiary accent, sub-headlines, active states |
| Meltdown Orange | #FF6B00 | Warning accent, used for the ticker bar text |
| Static White | #F0F0F5 | Body text on dark, rare usage for max contrast moments |
| Deep Interference | #12001E | Secondary background, semi-transparent overlay panels (at 85% opacity) |
| Burnout Red | #FF003C | Sparingly used for error states and "danger" historical event markers |

Gradients: The primary gradient is a diagonal sweep (`135deg`) from #FF00FF through #0A0A0F to #00FFCC, used as backgrounds for stratum transitions. A secondary radial gradient (`circle at 30% 70%`) from #BFFF00 at 0% to transparent at 60% is used as a spotlight effect layered over image panels.

## Imagery and Motifs

**Glitch-Corrupted Historical Fragments:**
The foundational imagery mode is **mixed-media glitch collage** -- historical source imagery (rendered as CSS-only approximations or SVG compositions, never photographic) that has been visually "corrupted" through CSS filter chains. Every image panel applies a base filter stack: `contrast(1.3) saturate(1.8) hue-rotate(var(--stratum-hue))`, where `--stratum-hue` varies per section (0deg for magenta-dominant strata, 120deg for cyan-dominant, 60deg for chartreuse-dominant). On top of this, a pseudo-element (`::after`) overlays horizontal scanlines using a repeating-linear-gradient: `repeating-linear-gradient(to bottom, transparent 0px, transparent 2px, rgba(0,0,0,0.3) 2px, rgba(0,0,0,0.3) 4px)`.

**The Chromatic Aberration Effect:**
All image panels and major typographic elements use a triple-layer `text-shadow` / `box-shadow` system that simulates RGB channel separation (chromatic aberration). The red channel offsets 2px left, the blue channel 2px right, the green channel 1px up. On scroll, these offsets animate to increase (up to 6px) and decrease (down to 0px) using CSS custom properties driven by a lightweight scroll listener, making the entire page feel like a malfunctioning CRT monitor that stabilizes and destabilizes as you move through it.

**Motif: The Data Stream:**
Abstract-tech motifs manifest as flowing streams of semi-transparent characters (dates, coordinates, binary fragments) that drift vertically across the viewport in narrow columns. These are implemented as CSS-animated `::before` pseudo-elements on section containers, using `@keyframes datastream` with `translateY` from -100% to 100%. The characters are set in Share Tech Mono at 0.7rem, color #00FFCC at 15% opacity, creating a Matrix-like rain of historical data that sits behind all content. Each stratum has different data content (Roman numerals for ancient strata, binary for modern strata, ideographic characters for East Asian strata).

**Motif: The Interference Pattern:**
Moire interference patterns are generated using two overlapping CSS `repeating-linear-gradient` layers rotated at slightly different angles (0deg and 3deg), creating a visual vibration effect. These patterns are applied as `::before` pseudo-elements on stratum containers at 8% opacity, adding a constant low-level visual noise that prevents any surface from feeling "clean" or static.

**Motif: The Broken Timeline:**
A thick horizontal line (4px, #FF00FF) runs across certain strata at an intentionally wrong angle (`transform: rotate(-2deg)`) representing a timeline. At irregular intervals, the line fragments -- `border-style: dashed` with `dash-array` values that create long gaps -- and each fragment shifts vertically by 8-16px, as though the timeline itself has been corrupted. Small circular nodes (12px diameter, `border: 2px solid #BFFF00`, `background: #0A0A0F`) mark events on this broken timeline, and on hover they explode into a `box-shadow: 0 0 20px 8px #BFFF00` glow.

**Decorative Element: Noise Overlay:**
The entire page has a `position: fixed` full-viewport SVG noise texture (generated using `<feTurbulence baseFrequency="0.9" numOctaves="4" />` and `<feColorMatrix>`) at 4% opacity with `pointer-events: none`. This adds a constant film-grain quality to every surface, ensuring that even solid color blocks have tactile visual texture.

## Prompts for Implementation

**Full-Screen Narrative Overload:**
The entire site is a single continuous vertical scroll that feels like falling through geological layers of history at terminal velocity. There is no landing page in the traditional sense -- the first viewport IS the experience. The site opens with 0.3 seconds of pure #0A0A0F black, then a violent flash of #FF00FF fills the entire viewport for 100ms (a single CSS animation keyframe), then the first stratum slams into view with a `transform: translateY(-100vh)` to `translateY(0)` animation over 0.4 seconds with an aggressive `cubic-bezier(0.16, 1, 0.3, 1)` easing. The domain name "historic.quest" renders in Bungee Shade at 10vw across the center of the first stratum with chromatic aberration already active, vibrating at a base amplitude of 1px.

**Stratum Transition Animations:**
As the user scrolls between strata, each new stratum enters with a distinct glitch animation. The CSS triggers (via Intersection Observer) one of three randomized entrance effects:
1. **Horizontal Tear:** The incoming stratum appears split into 5 horizontal strips that slide in from alternating directions (left, right, left, right, left) and snap together over 0.6 seconds.
2. **Channel Switch:** A 200ms burst of "static" (the SVG noise overlay jumps to 40% opacity, then 80%, then back to 4%) before the new stratum cuts in instantaneously, mimicking a television channel change.
3. **Melt Transition:** The bottom edge of the current stratum appears to drip downward (achieved via `clip-path: polygon()` animation with irregular, fluid-looking control points) as the new stratum is revealed beneath.

**The Ticker as Narrative Spine:**
The persistent bottom ticker is not decorative -- it is the narrative backbone. It continuously scrolls a single, unbroken sentence that tells the entire story of human history in condensed, punchy fragments: "3200 BCE cuneiform pressed into wet clay -- 1346 CE plague rats arrive in Messina -- 1969 CE boot print in lunar regolith -- 2024 CE language models begin to hallucinate." The ticker speed is 80px/second. On hover, the ticker pauses and the hovered text fragment scales to 1.2x and gains a `text-shadow: 0 0 12px #FF6B00` glow, making it readable.

**Interaction: The Glitch Hover:**
All interactive elements (links, channel buttons, timeline nodes) use a "glitch hover" effect: on `mouseenter`, the element's `transform` rapidly alternates between `translate(2px, -1px)`, `translate(-1px, 2px)`, and `translate(0,0)` over 150ms (3 keyframes at 50ms each), then settles. Simultaneously, the chromatic aberration offset doubles for 200ms. This makes every interaction feel like the interface is barely holding itself together.

**Scroll-Driven Corruption:**
As the user scrolls deeper into the page, the global SVG noise overlay gradually increases in opacity from 4% at the top to 12% at the bottom (driven by a CSS scroll-timeline or a lightweight JS scroll listener). Simultaneously, the base chromatic aberration offset increases from 1px to 4px. The effect is that the "deeper" you go into history, the more corrupted and unstable the visual experience becomes -- a metaphor for the degradation of historical records over time.

**AVOID:**
- CTA-heavy layouts, pricing blocks, stat-grids, testimonial carousels
- Any traditional header/footer structure
- Clean white space or breathing room between sections
- Sepia tones, parchment textures, or any "olde worlde" historical cliches
- Stock photography or realistic imagery of any kind
- Centered, symmetrical compositions
- Smooth, polished transitions (everything should feel jarring and intentional)

## Uniqueness Notes

**Differentiators from other designs:**

1. **Stratum-Based Sticky Layering:** No other design in the portfolio uses the geological-excavation sticky-scroll system where content layers physically accumulate on screen, creating a literal depth of history. Most layouts either scroll normally or use parallax. This creates a unique spatial relationship where the user can see 3-4 time periods simultaneously, stacked and partially visible, like looking at a cross-section of sedimentary rock.

2. **Deliberate Visual Corruption as Design System:** While glitch effects appear at 12% frequency in the aesthetic category, no existing design treats glitch as a full-spectrum design system applied to every element (typography, imagery, interaction, layout structure). Here, chromatic aberration, scanlines, noise, and data corruption are not decorative accents -- they ARE the design language, applied consistently from the 10vw headline down to the 0.85rem ticker text. The corruption deepens on scroll, creating a narrative arc through visual degradation.

3. **The Persistent Narrative Ticker:** No other design uses a fixed, continuously-scrolling text element that functions as both UI component and narrative device. The ticker transforms the passive scroll experience into an active reading experience -- the user is always absorbing historical fragments whether they want to or not. The `mix-blend-mode: difference` ensures it never disappears against any background, creating an inescapable information stream.

4. **Zero Negative Space Philosophy:** While maximalism appears at only 9% frequency across the portfolio, this design pushes it further by rejecting the concept of negative space entirely. Every pixel serves either content, texture, or atmospheric noise. The interference grid with intentional column overlap, the omnipresent SVG noise layer, the data-stream pseudo-elements, and the ticker bar combine to create a visual density unprecedented in the portfolio. Even the "background" is not a single color but a turbulence-textured, gradient-washed, data-rain-overlaid surface.

5. **CRT Television as Interaction Metaphor:** The channel-selector navigation, the channel-switch transitions, the scanline overlays, and the chromatic aberration all cohere around a single metaphor: the experience of watching history on a malfunctioning cathode-ray television. This metaphor is not surface-level -- it informs the layout (strata as channels), the interaction (channel switching), the typography (Bungee Shade as jumbotron display), and the color system (RGB channel separation). No other design commits to a single hardware metaphor this completely.

**Chosen seed/style:** aesthetic: maximalist, layout: full-bleed, typography: display-bold, palette: dopamine-neon, patterns: glitch, imagery: mixed-media, motifs: abstract-tech, tone: energetic

**Avoided overused patterns:** Rejected centered layout (99% frequency) in favor of full-bleed interference grid. Rejected mono typography (99%) in favor of display-bold Bungee Shade with Orbitron. Rejected warm palette (100%) in favor of dopamine-neon cold neons. Rejected friendly tone (97%) in favor of energetic confrontational tone. Rejected minimal imagery (95%) in favor of mixed-media glitch collage. Rejected vintage motifs (79%) -- despite the historical subject matter -- in favor of abstract-tech. Rejected parallax (81%) and stagger (57%) animation defaults in favor of glitch-specific transition effects (horizontal tear, channel switch, melt).
<!-- DESIGN STAMP
  timestamp: 2026-03-09T15:15:50
  domain: historic.quest
  seed: seed
  aesthetic: historic.quest explodes history out of the museum glass case and into the sensor...
  content_hash: 806bd259ef64
-->
