# Design Language for undo.cafe

## Aesthetics and Tone
undo.cafe exists in the visual space of a time-traveler's parlor -- a place where spilled coffee unspills itself, where crumpled letters unfold back into perfect stationery, where the clock hands spin counterclockwise and the steam from your espresso descends back into the cup. The aesthetic is **playful futurism filtered through Art Deco grandeur**: imagine the lobby of a 1928 Chrysler Building elevator opening onto a laboratory where temporal mechanics are casually practiced between courses of petit fours.

The mood is simultaneously nostalgic and forward-looking -- a Janus-faced experience where every visual element carries the DNA of reversal. Animations run backward. Timelines scroll upward. Photographs develop in reverse, from image to blank. The tone is **futuristic-cutting-edge** but delivered with the casual confidence of someone who has already seen the future and found it charming enough to serve with biscotti. There is no anxiety here about tomorrow; undo.cafe has already been there, taken notes, and come back to tell you about it over a cortado.

The visual language borrows from 1920s Parisian cafe culture colliding with speculative design -- Tamara de Lempicka's gleaming geometries meet the retro-futurist optimism of Syd Mead's concept art. Everything is polished but warm, precise but inviting, ornamental but never fussy. The site feels like opening a vintage leather-bound journal only to discover it contains blueprints for a machine that hasn't been invented yet.

## Layout Motifs and Structure
The entire site is built on a **timeline-vertical** architecture -- a single continuous vertical axis that represents the passage of time, but inverted. The user scrolls downward but moves backward through time, from future to present to past. This is not a conventional scrolling page with sections; it is a literal timeline drawn as a sinuous Art Deco gilded line running down the center of the viewport, with content nodes branching alternately left and right like stations on a metro map rendered in the style of a 1930s travel poster.

**The Central Spine:**
A 2px line in warm gold (#C4973B) runs vertically through the exact center of the page, from top to bottom. At intervals of approximately 100vh, circular nodes (48px diameter) punctuate this line, each one a gilded rosette rendered in CSS with radial gradients and subtle box-shadow to simulate dimensional relief. These nodes are the temporal waypoints -- each one anchors a content panel that extends outward.

**Alternating Content Panels:**
Content panels extend from the central spine in an alternating left-right pattern. Odd-numbered panels extend leftward, occupying 42% of the viewport width from the spine. Even-numbered panels extend rightward, occupying the same 42%. Each panel has a subtle trapezoidal clip-path that tapers toward the spine, creating a sense of convergence toward the timeline -- as if content is being funneled into the temporal conduit.

**The Reverse-Scroll Indicator:**
A fixed element in the bottom-right corner shows a small Art Deco clock face with hands that rotate counterclockwise as the user scrolls. This is rendered as an SVG with animated `transform: rotate()` values driven by scroll position via `IntersectionObserver`. The clock has faceted numerals in the Poiret One typeface and golden hands against a dark umber (#3B1F0F) face.

**Parallax Depth Layers:**
Behind the timeline structure, three depth layers create atmospheric perspective:
- **Background (z: -3):** A slowly shifting gradient of deep espresso brown (#2A1810) to warm charcoal (#3D2B1F), moving at 0.1x scroll speed
- **Mid-ground (z: -2):** Faint geometric Art Deco fan patterns in semi-transparent ochre (#C4973B at 6% opacity), drifting at 0.3x scroll speed
- **Foreground (z: -1):** Barely visible floating golden dust particles (2px circles, #C4973B at 15% opacity) that drift upward -- against the scroll direction -- creating an uncanny sense of temporal reversal

**Section Breathing Space:**
Between timeline nodes, generous vertical margins of 30vh create breathing room. The space is not empty -- it is occupied by the continuous golden spine line and the background particle effects, making the emptiness feel charged rather than vacant.

## Typography and Palette
**Typography:**

- **Display / Headlines:** "Poiret One" (Google Fonts) -- a pure geometric Art Deco display face with perfectly circular O's, mathematically precise curves, and an unmistakable 1920s glamour. Used at 3.5rem to 6.5rem for primary headings, always in uppercase with `letter-spacing: 0.12em` and `font-weight: 400` (its only weight, which is part of its elegance -- it does not shout, it announces). The geometric purity of Poiret One creates headlines that feel like they belong etched into marble above a Parisian cafe entrance.

- **Sub-headlines / Navigation:** "Josefin Sans" (Google Fonts) at weight 300-400, sizes 1.2rem to 2rem. This typeface shares Poiret One's geometric DNA but adds enough body for functional text. Used with `letter-spacing: 0.08em` in uppercase for navigation labels and section subtitles. Its light weight creates elegant contrast with the bolder display text without introducing a completely foreign type language.

- **Body Text:** "Lora" (Google Fonts) at weight 400-500, sizes 1rem to 1.15rem, with `line-height: 1.75` for generous readability. Lora's brushed curves and wedge-shaped serifs introduce an organic warmth that counterbalances the mathematical precision of the display fonts. Its italic variant (used for pull-quotes and captions) has a calligraphic fluidity that evokes handwritten cafe menus.

- **Accent / Timestamps:** "IBM Plex Mono" (Google Fonts) at weight 300, sizes 0.75rem to 0.9rem, with `letter-spacing: 0.05em`. Used exclusively for timeline dates, technical annotations, and the reverse-clock readout. The monospace regularity creates a "data feed" quality that reinforces the futuristic-cutting-edge tone while remaining warm through its humanist proportions.

**Palette:**

The palette draws from espresso, aged leather, burnished gold, and the warm amber of vintage photograph paper -- earth tones that evoke both the cafe and the archive.

| Role | Color | Hex | Usage |
|------|-------|-----|-------|
| Deep Espresso | Rich dark brown | #2A1810 | Primary background, deep sections |
| Warm Umber | Mid-tone brown | #5C3D2E | Secondary backgrounds, card surfaces |
| Tarnished Gold | Antique gold | #C4973B | Timeline spine, accents, decorative elements |
| Cafe Cream | Warm off-white | #F2E8D5 | Primary text, headlines on dark backgrounds |
| Terracotta Blush | Muted red-brown | #B5654A | Hover states, active indicators, warmth accents |
| Oxidized Copper | Green-brown patina | #6B7F5E | Subtle accent for timestamps, secondary text |
| Parchment Glow | Light warm yellow | #ECD9A1 | Highlight moments, node glow, pull-quotes |
| Charcoal Smoke | Near-black warm gray | #1E1410 | Deepest shadows, overlay backgrounds |

**Gradient System:**
- Hero gradient: `linear-gradient(175deg, #2A1810 0%, #3B1F0F 40%, #5C3D2E 100%)` -- a subtle warm shift that creates depth without drama
- Node glow: `radial-gradient(circle, #C4973B 0%, #C4973B00 70%)` -- the golden halo around timeline waypoints
- Panel fade: `linear-gradient(to right, #5C3D2E 0%, #5C3D2E00 100%)` for left panels, reversed for right panels

## Imagery and Motifs
**Vintage Photography as Time Artifacts:**
The primary imagery mode is **vintage-photography** treated as temporal evidence -- photographs that appear to be documents retrieved from different points in time. These are not stock photos with a sepia filter; they are conceived as artifacts with specific visual treatments:

1. **Reverse-Development Effect:** Images appear to "develop" in reverse as the user scrolls past them. They begin as fully realized photographs and gradually dissolve into blank sepia rectangles, achieved through a CSS `filter` animation chain: `contrast()` drops from 1.0 to 0, `brightness()` rises from 1.0 to 1.8, and `sepia()` stays constant at 0.6. The `IntersectionObserver` drives these values based on the element's position relative to viewport center. The visual metaphor: the further back in time you scroll, the more the images "un-develop."

2. **Daguerreotype Borders:** Every image is framed in a CSS-generated Art Deco border -- not a simple solid line, but a layered frame with three nested borders: an outer 1px line in Tarnished Gold (#C4973B), a 6px gap, then a decorative inner border using `border-image` with a repeating linear gradient that simulates the beveled metal frames of daguerreotype portraits. Corner ornaments are rendered as rotated CSS pseudo-elements (`::before`, `::after`) with `clip-path: polygon()` forming small Art Deco fan shapes.

3. **Double-Exposure Layering:** At two points in the timeline, adjacent images overlap by 20% with `mix-blend-mode: multiply`, creating a double-exposure effect that suggests temporal superposition -- two moments existing simultaneously in the same frame.

**Flowing Curves as Decorative System:**
The **flowing-curves** motif manifests as Art Deco arabesques rendered in SVG, used as section dividers and background ornaments:

- **The Unspiral:** A custom SVG motif -- a spiral that unwinds as the user scrolls, drawn with `stroke-dashoffset` animation. It begins tightly coiled and gradually unfurls into a flowing S-curve, symbolizing the "undo" action. This motif repeats at each timeline section transition, each instance drawn in Tarnished Gold (#C4973B) at 20% opacity against the dark background.

- **Cafe Steam Curves:** Delicate rising curves (3-5 parallel sinusoidal paths with varying amplitudes) float upward from timeline nodes, evoking steam rising from a coffee cup. These are SVG `<path>` elements animated with CSS `@keyframes` that translate them upward while simultaneously reducing opacity, on a staggered 6-8 second loop.

- **Fan Radiants:** At each timeline node, a burst of thin golden lines radiates outward in a 120-degree arc (like an Art Deco sunrise motif), rendered as rotated `<line>` elements within an SVG. These fan radiants pulse subtly on hover, expanding by 10% with a 0.4s ease-out transition.

**Micro-Interaction Details:**
- Timeline nodes pulse with a soft golden glow (`box-shadow` animation cycling between `0 0 20px #C4973B40` and `0 0 40px #C4973B20`) on a 3-second infinite loop
- Content panels slide in from their respective sides with a `transform: translateX()` animation triggered by scroll intersection, using a custom cubic-bezier (0.23, 1.0, 0.32, 1.0) for an organic deceleration curve
- The reverse-clock's second hand ticks counterclockwise with a mechanical stepped animation (`steps(60)`) rather than smooth rotation, creating an audible-feeling mechanical quality
- Hovering over any vintage photograph triggers a brief "rewind grain" effect -- a CSS animation that overlays a semi-transparent noise texture that flickers for 0.3 seconds before settling, simulating film grain running backward

## Prompts for Implementation
**Full-Screen Narrative Experience:**
The site must function as a single unbroken temporal journey. The opening screen fills the entire viewport with Deep Espresso (#2A1810) and a centered "UNDO" in Poiret One at 8rem, with each letter staggered in a typewriter-reverse animation -- the full word appears instantly, then letters disappear one by one from right to left over 2 seconds, then reappear left to right over 1.5 seconds, settling into the final state. Below the title, a thin golden line (the beginning of the timeline spine) grows downward from the "U" in UNDO, accompanied by the text "scroll to reverse time" in IBM Plex Mono Light at 0.85rem, pulsing with a gentle opacity oscillation.

**Timeline Node Interaction Pattern:**
Each timeline node (the circular waypoints on the central spine) acts as a micro-narrative beat. When the node enters the viewport, three things happen simultaneously:
1. The node itself scales from 0.5 to 1.0 with a spring-physics easing
2. The associated content panel slides in from its side with the custom ease curve
3. The Art Deco fan radiant SVG draws itself outward using `stroke-dashoffset` over 0.8 seconds

When the node exits the viewport (scrolling past), the reverse occurs -- everything retracts, undoes itself, returns to hidden. This creates a living timeline that exists only in the present viewport, with past and future both hidden.

**The "Undo Action" Signature Interaction:**
At three specific points in the timeline, an interactive "undo button" appears -- a golden circle with a counterclockwise arrow rendered in SVG. Clicking this button triggers a local reversal: the preceding section's content panel plays its entrance animation in reverse, the images "un-develop" rapidly, and the timeline spine segment between the two nearest nodes temporarily fades to 30% opacity. After 2 seconds, everything restores itself forward again. This is purely decorative and delightful -- it has no functional purpose except to embody the "undo" concept physically.

**Storytelling Through Temporal Layers:**
The narrative arc moves through five epochs, each represented by 1-2 timeline nodes:
1. **Near Future** (top of page) -- clean, sharp imagery, high contrast, Josefin Sans labels
2. **Present Moment** -- the most visually rich section, full-color vintage photography, maximum detail
3. **Recent Past** -- images begin to desaturate, text becomes more serif-heavy (Lora dominates)
4. **Deep Past** -- heavy sepia, images nearly dissolved, flowing curves at maximum density
5. **Origin Point** (bottom of page) -- a single golden node with no content panel, just the word "BEGIN" in Poiret One, fading to transparency. The timeline spine terminates here.

**CSS Architecture Notes:**
- Use CSS custom properties for the entire palette, declared on `:root`
- All animations must respect `prefers-reduced-motion` by wrapping in `@media (prefers-reduced-motion: no-preference)`
- The timeline spine is a single `::after` pseudo-element on the main container, using `height: 100%` and `width: 2px`
- Content panel clip-paths use `clip-path: polygon(0% 0%, 100% 5%, 95% 95%, 0% 100%)` for left panels (reversed for right)
- The particle system uses 30-50 absolutely positioned `<span>` elements with randomized CSS animation delays, NOT canvas -- keeping the implementation pure CSS/HTML with minimal JS
- IntersectionObserver thresholds at `[0, 0.25, 0.5, 0.75, 1.0]` for granular scroll-linked animation control

**AVOID:** CTA-heavy layouts, pricing blocks, stat-grids, newsletter signup forms, testimonial carousels, cookie banners, hamburger menus. The site has no commerce, no conversion funnel, no user acquisition goal. It is a temporal experience.

## Uniqueness Notes
**Differentiators from other designs:**

1. **Reverse-Chronological Scroll Narrative:** No other design in the portfolio uses a timeline-vertical layout (0% frequency) where scrolling downward moves the user backward through time. The inversion of the expected temporal direction (most timelines go past-to-future top-to-bottom) creates cognitive delight and reinforces the "undo" concept at the structural level. This is not a timeline widget bolted onto a page -- the entire page IS the timeline.

2. **Vintage Photography with Reverse-Development Animation:** While vintage-photography appears at only 1% frequency elsewhere, no design uses the "un-developing" animation concept where photographs dissolve back into blank sepia paper as the user scrolls. This transforms static imagery into a temporal metaphor, making the scroll action itself feel like rewinding a film reel.

3. **Art Deco Temporal Mechanics Fusion:** The collision of 1920s Art Deco visual language (Poiret One typography, fan radiants, gilded geometric ornaments) with a futuristic-cutting-edge conceptual framework (temporal reversal, counterclockwise clocks, rewind interactions) is entirely unprecedented in the portfolio. Art-deco-display typography sits at 3% and futuristic-cutting-edge tone at 2% -- and they have never been combined. The resulting aesthetic -- "Gatsby's time machine" -- is a new category.

4. **The Undo Button as Pure Delight:** The decorative "undo" interaction (clicking a golden button to locally reverse animations) has no functional purpose. It exists solely to make the visitor smile. This kind of purposeless micro-interaction -- interaction as play, not as interface -- is absent from every other design in the collection, which all treat interactions as serving navigation, information architecture, or visual hierarchy. Here, interaction serves joy.

5. **Counterclockwise Fixed Clock Element:** The persistent reverse-clock in the corner is a unique ambient UI element that responds to scroll but serves no informational purpose. It transforms scroll position into a poetic metaphor (time moving backward) through a mechanical artifact (clock), bridging the physical and digital in a way no other design attempts.

**Chosen Seed:**
aesthetic: playful, layout: timeline-vertical, typography: art-deco-display, palette: earth-tones, patterns: micro-interactions, imagery: vintage-photography, motifs: flowing-curves, tone: futuristic-cutting-edge

**Avoided Overused Patterns:**
- centered layout (99%) -- used timeline-vertical (0%) instead
- scroll-triggered as primary pattern (96%) -- used micro-interactions as the defining pattern category, with scroll as a secondary driver
- warm palette as generic descriptor (100%) -- specified earth-tones (3%) with precise hex values
- mono typography (99%) -- used art-deco-display (3%) as primary type identity
- minimal imagery (95%) -- used vintage-photography (1%) as the core imagery strategy
- vintage motifs (89%) -- used flowing-curves (4%) as the dominant motif language
- friendly tone (99%) -- used futuristic-cutting-edge (2%) for the tonal register
<!-- DESIGN STAMP
  timestamp: 2026-03-10T23:28:23
  seed: seed:
  aesthetic: undo.cafe exists in the visual space of a time-traveler's parlor -- a place wher...
  content_hash: 3928194b58b6
-->
