# Design Language for prototype.rs

## Aesthetics and Tone
prototype.rs channels the visual culture of late-1990s/early-2000s Y2K futurism -- the era when the internet felt like a chrome-plated spaceship and every interface looked like it was designed for a fictional operating system from the year 2030. Think of the silver-and-blue product design language of the original iMac G3, the liquid-metal interfaces of Winamp skins circa 2001, the reflective CD-ROM surfaces that served as visual metaphors for "the future" in every tech magazine cover. But this is not a nostalgic recreation; it is a reinterpretation through the lens of a Rust developer's prototyping tool -- where the chrome surfaces carry the precision of systems programming, where the bubble motifs suggest the effervescence of rapid iteration, and where the marble textures ground the futurism in something ancient and permanent, as if to say: the prototypes built here are not throwaway sketches but artifacts with the permanence of carved stone.

The tone is elegant and sophisticated -- not the cold sophistication of a luxury fashion brand, but the refined confidence of an engineer who understands that beauty and function are not opposites. There is no shouting here. The chrome gleams quietly. The bubbles rise with deliberate grace. The marble veins trace paths that feel simultaneously geological and algorithmic.

## Layout Motifs and Structure
The layout follows a **stacked-sections** architecture -- a vertical sequence of full-width panels, each occupying 85-100vh, that the user moves through like flipping through slides in a presentation deck. There is no conventional navigation bar. Instead, a thin vertical progress indicator sits at the right edge of the viewport: a line of small chrome spheres (6px diameter), one per section, where the active section's sphere is inflated to 12px and pulses with a subtle radial gradient that shifts between #C0C0C0 and #E8E8F0.

**Section Architecture:**
- **Section 0 (Hero):** Full viewport. The domain name "prototype.rs" rendered at massive scale (clamp(4rem, 8vw, 9rem)) in the center, with each letter individually wrapped in a chrome-gradient treatment. Below it, a single tagline in smaller mono type. The background is a slow-moving marble texture that shifts imperceptibly (CSS background-position animation over 60 seconds). No scroll indicator -- the user discovers downward movement naturally.

- **Sections 1-4 (Content Panels):** Each panel is a self-contained visual unit. Content is arranged in a **two-third / one-third split** -- the larger portion contains the primary narrative text or visual element, the smaller portion contains a decorative or supporting element (a chrome sphere cluster, a marble slab detail, a code snippet rendered in mono). The split alternates sides: section 1 has content left / decoration right, section 2 reverses, and so on. Vertical padding is extreme: 12vh top and bottom within each section, creating generous breathing room.

- **Section 5 (Terminal):** The final section breaks the pattern entirely. It presents as a dark terminal window (background #0A0A0F) floating within the marble-textured page, with mono-spaced text that types itself out character by character -- a poetic statement about prototyping, iteration, and impermanence. The terminal window has a chrome bezel -- a 2px border with a linear gradient from #B8B8C8 to #DDDDE8 to #B8B8C8, mimicking brushed aluminum.

**Grid Details:**
- Max content width: 1140px, centered with auto margins
- Inner content uses a 12-column CSS Grid with 24px gutters
- The two-third/one-third split maps to 8/4 columns
- On viewports below 768px, the split collapses to full-width stacked blocks
- Section dividers are not lines but gradient fades: a 120px tall zone where the background transitions from one section's palette to the next

## Typography and Palette
**Typography:**

- **Display / Domain Name:** "Space Mono" (Google Fonts) at weight 700. This is the identity typeface -- used exclusively for the domain name rendering in the hero and for section numbers. Its rigid, mechanical quality embodies the "prototype" concept while its mono-spacing reinforces the Rust/systems-programming association. Rendered at 4rem-9rem for the hero, 2rem for section numbers. Letter-spacing: +0.08em to open up the characters and let the chrome gradient treatment breathe between letterforms.

- **Headings:** "Oxanium" (Google Fonts) at weights 500-600. A geometric, slightly futuristic sans-serif with rounded terminals that nod to the bubble motif without being cartoonish. Used for section titles at 2.2rem-3.2rem. Line-height: 1.15. Letter-spacing: +0.02em. Color: #E0E0EC on dark sections, #1A1A2E on light sections.

- **Body Text:** "IBM Plex Mono" (Google Fonts) at weight 400, with weight 300 for secondary/caption text. The mono-spacing is intentional throughout -- this is a site about prototyping in Rust, and the monospaced body text makes every paragraph feel like carefully composed code documentation. Size: clamp(0.9rem, 1vw + 0.4rem, 1.05rem). Line-height: 1.78 (generous, to compensate for mono's inherently dense feel). Letter-spacing: +0.005em. Color: #C8C8D8 on dark backgrounds, #2A2A3E on light.

- **Accent Text / Labels:** "Share Tech Mono" (Google Fonts) at weight 400, used for small labels, navigation indicators, and metadata. Size: 0.72rem-0.85rem. Text-transform: uppercase. Letter-spacing: +0.18em. Color: always #8888A0, regardless of background.

**Palette -- Chrome Metallic:**

| Role | Color | Description |
|------|-------|-------------|
| Chrome Highlight | #E8E8F0 | The brightest point of the chrome gradient -- used for active states, hover highlights, and the apex of metallic sheens |
| Chrome Mid | #B8B8C8 | The neutral chrome tone -- used for borders, dividers, and resting-state metallic elements |
| Chrome Shadow | #6A6A80 | The darkest chrome tone -- used for depth, shadows beneath chrome elements, and recessed surfaces |
| Marble White | #F2F0EC | The warm off-white of Carrara marble -- primary background for light sections |
| Marble Vein | #C4BAA8 | The grey-gold of marble veining -- used for decorative line work and subtle pattern overlays |
| Deep Void | #0A0A0F | Near-black with a blue-purple undertone -- background for dark sections and the terminal panel |
| Bubble Tint | #D0D8F0 | A pale blue-lavender -- the color of light refracting through soap bubbles, used sparingly for hover states and accent glows |
| Rust Accent | #E07040 | A warm burnt-orange that references the Rust programming language brand -- used extremely sparingly (links, one decorative element, the cursor in the terminal section) |

**Gradient Definitions:**
- **Chrome Linear:** `linear-gradient(135deg, #6A6A80 0%, #B8B8C8 30%, #E8E8F0 50%, #B8B8C8 70%, #6A6A80 100%)` -- applied to text via background-clip, to borders, and to decorative spheres
- **Marble Subtle:** `radial-gradient(ellipse at 30% 40%, #F2F0EC 0%, #E8E4DC 60%, #DDD8CC 100%)` -- background for light sections, gives the impression of light falling across marble
- **Void Gradient:** `linear-gradient(180deg, #0A0A0F 0%, #12121F 100%)` -- background for dark sections with subtle blue lift at the bottom

## Imagery and Motifs
**Marble Texture System:**
The primary visual texture is marble -- not photographic marble, but CSS-generated marble patterns using layered radial gradients and SVG noise filters. This is critical: no image files. The marble effect is achieved through:
1. A base color of #F2F0EC
2. Three overlapping `radial-gradient` layers at different scales and positions, using #C4BAA8 at 3-8% opacity
3. An SVG `<feTurbulence>` filter (baseFrequency: 0.015, numOctaves: 4) composited via `<feDisplacementMap>` at low intensity (scale: 8), applied to a full-viewport pseudo-element
4. The result: a living, slightly shifting marble surface that is purely code-generated and weighs zero bytes in image downloads

**Chrome Sphere Clusters:**
Decorative chrome spheres appear throughout the design as the primary motif element. Each sphere is a CSS-only construction: a circular div with the Chrome Linear gradient as background, a white radial highlight at top-left (15% size, 60% opacity), and a box-shadow that creates a contact shadow below. Spheres appear in clusters of 3-7, arranged in loose, organic groupings (not grids). They float at the edges of content sections, sometimes partially clipped by the viewport edge, creating the impression that the chrome world extends beyond the visible page.

- Large spheres: 80-140px diameter
- Medium spheres: 30-60px
- Small spheres: 8-18px
- Each sphere in a cluster has a slightly different gradient angle (randomized via CSS custom properties), preventing them from looking like copies

**Bubble Rise Animation:**
In the hero section and section transitions, translucent bubble elements rise slowly from the bottom of the viewport. These are circles with:
- Border: 1px solid rgba(208, 216, 240, 0.3) (Bubble Tint at low opacity)
- Background: radial-gradient with two color stops -- transparent center, rgba(208, 216, 240, 0.08) at the edge
- A subtle prismatic highlight: a small pseudo-element at the top-right of each bubble with a linear-gradient from #E8E8F0 to transparent, rotated 45deg
- Sizes range from 12px to 80px
- Rise speed: 20-45 seconds per bubble (CSS animation, ease-in-out)
- Horizontal drift: a secondary animation that moves each bubble left-right by 20-40px over a different duration (15-30s), creating non-repetitive paths
- Bubbles are generated via CSS only (using multiple background layers or pseudo-elements), no JavaScript required for the base animation

**Marble Vein Lines:**
Thin decorative lines (1px, color #C4BAA8 at 40% opacity) trace organic, slightly curved paths across sections. These are SVG `<path>` elements with hand-crafted bezier curves that suggest marble veining. They serve as visual connectors between content elements -- a vein might originate near a heading, curve gently downward, and terminate near a chrome sphere cluster. 3-4 veins per section, each unique.

## Prompts for Implementation
**Full-Screen Narrative Scroll Experience:**
The site must function as a single continuous scroll through 5-6 full-viewport sections. There is no traditional navigation. The experience is linear and intentional, like reading a manifesto or walking through a gallery. Each section transition should feel like turning a page in a premium book -- the current section's content fades slightly (opacity 1 to 0.3 over 200ms) as the next section's content fades in (opacity 0 to 1 over 400ms), triggered by scroll position via IntersectionObserver.

**Fade-Reveal Animation Pattern:**
All content elements enter via fade-reveal animations -- they begin at opacity 0 with a 30px upward offset (transform: translateY(30px)) and resolve to opacity 1 / translateY(0) over 600-900ms with a cubic-bezier(0.16, 1, 0.3, 1) easing. Elements within a section are staggered by 120ms delays. This is the ONLY entrance animation used -- no slides from left/right, no scale transforms, no rotation. The consistency of fade-reveal creates a meditative rhythm that reinforces the elegant tone.

**Chrome Text Treatment:**
The hero domain name uses `background: linear-gradient(...)` with `background-clip: text` and `color: transparent` to render the letterforms as chrome surfaces. On hover (or after 3 seconds on mobile), a subtle animation shifts the gradient position by 20%, creating the illusion of light moving across the chrome surface (background-position animation, 2s duration, ease-in-out).

**Terminal Section Implementation:**
The final section contains a simulated terminal window. The terminal has:
- A chrome bezel (border with Chrome Linear gradient)
- A dark background (#0A0A0F)
- Green-tinted text? No -- text in #C8C8D8 (Chrome Mid range) to maintain palette coherence
- A blinking cursor in #E07040 (Rust Accent) -- the only place this color dominates
- Text that types itself via a CSS animation: each line appears character by character using `steps()` timing function and `overflow: hidden` with animated `max-width`. 5-7 lines of text, each beginning after the previous finishes. Total animation duration: 8-12 seconds
- The typed content should be poetic/philosophical, not literal code -- something about prototypes, iteration, the space between idea and implementation

**Responsive Behavior:**
- Below 1024px: Chrome sphere clusters reduce to 2-4 spheres, sized smaller
- Below 768px: Two-third/one-third splits collapse to single column; section heights become auto (min-height: 100vh removed on mobile to prevent content overflow)
- Below 480px: Hero text scales down via clamp(); bubble animations are reduced to 4 bubbles (from 8-12) to preserve performance
- The marble texture SVG filter is disabled below 768px (replaced with a simple radial gradient approximation) for GPU performance

**AVOID:**
- CTA buttons, "Get Started" blocks, or any conversion-oriented elements
- Pricing tables, feature comparison grids, or stat-counters
- Testimonial carousels or social proof sections
- Stock photography or any raster images
- Hamburger menus or traditional navigation bars
- Border-radius on rectangular containers (keep sharp corners everywhere except spheres/bubbles -- the contrast between sharp rectangles and perfect circles is a key design tension)

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

1. **Y2K Chrome Futurism at 0% frequency:** This is the first design in the entire portfolio to use the y2k-futurism aesthetic. The chrome-metallic palette (1% frequency) and marble-texture imagery (2% frequency) are equally rare. The combination of these three elements -- Y2K chrome surfaces, marble geological textures, and bubble motifs -- creates a visual language that exists nowhere else in the portfolio. It is a collision of the hyper-digital (chrome, bubbles) and the geological (marble), unified by the concept of "prototyping" as an act that is both ephemeral and potentially permanent.

2. **Zero Raster Images -- Pure CSS/SVG Visual System:** While most designs in the portfolio rely on photography (72%) or minimal imagery (95%), this design achieves its entire visual identity through CSS gradients, SVG filters, and geometric shapes. Every marble texture, chrome sphere, bubble, and decorative element is code-generated. This is philosophically aligned with prototype.rs as a domain -- a site about prototyping should itself be a prototype, built from raw materials (code) rather than prefabricated components (images).

3. **Monospaced Body Text as Design Statement:** While mono typography appears at 99% frequency, it is almost always used for code snippets or accent text. Here, the ENTIRE body text is set in IBM Plex Mono, making the monospaced rhythm a defining characteristic of the reading experience rather than a decorative flourish. Every paragraph reads like carefully typeset documentation, reinforcing the Rust/systems-programming identity without any explicit code examples.

4. **Terminal-as-Poetry Closing Section:** The final section's terminal window that types out philosophical text (not code) subverts the expected developer-tool aesthetic. It uses the visual language of a command line but the content language of literature, creating a moment of cognitive dissonance that is memorable and distinct from any other design's closing section.

5. **Chrome-and-Marble Material Dialectic:** No other design juxtaposes industrial-digital materials (chrome, metallic gradients) with natural-geological materials (marble veining, stone textures). This pairing creates a unique tension -- the digital future meeting deep geological time -- that gives prototype.rs a conceptual depth beyond surface aesthetics.

**Chosen seed/style:** aesthetic: y2k-futurism, layout: stacked-sections, typography: mono, palette: chrome-metallic, patterns: fade-reveal, imagery: marble-texture, motifs: bubble-playful, tone: elegant-sophisticated

**Avoided overused patterns:** Deliberately avoided centered layout (99% frequency) in favor of stacked-sections (3%); avoided warm palette (100%) in favor of chrome-metallic (1%); avoided scroll-triggered animations (96%) as the primary pattern in favor of fade-reveal (8%); avoided photography imagery (72%) entirely in favor of marble-texture (2%) and pure CSS constructions; avoided friendly tone (98%) in favor of elegant-sophisticated (5%); avoided vintage motifs (87%) in favor of bubble-playful (3%).
<!-- DESIGN STAMP
  timestamp: 2026-03-10T22:50:37
  seed: seed
  aesthetic: prototype.rs channels the visual culture of late-1990s/early-2000s Y2K futurism ...
  content_hash: b329e373336e
-->
