Thoughts Behind

Design

"Design is not just what it looks like and feels like. Design is how it works"
— Steve Jobs

Core Principles

The foundational design philosophy that guides every decision

Gallery Aesthetic

Inspired by museum and gallery design. Generous whitespace, minimal distractions, content as art.

Dramatic Typography

Massive display type with ultra-light weights (200-300). Negative letter-spacing for impact.

Restrained Color

Monochromatic base with a single accent color. Red used sparingly for maximum impact.

Smooth Animations

GSAP-powered animations with power easing curves. Damped, natural-feeling interactions.

Responsive Fluidity

Fluid typography using clamp(). Layouts that adapt gracefully from mobile to desktop.

Micro-interactions

Subtle hover states, color transitions, and movement that reward exploration.

Color Palette

Six carefully selected colors for a timeless, gallery-like aesthetic

#000000

Black

HEX#000000
RGBrgb(0, 0, 0)
OKLCHoklch(0% 0 0)

Primary background, text on light backgrounds

#ffffff

White

HEX#ffffff
RGBrgb(255, 255, 255)
OKLCHoklch(100% 0 0)

Primary text on dark backgrounds, clean accents

#f5f2eb

Cream

HEX#f5f2eb
RGBrgb(245, 242, 235)
OKLCHoklch(95.6% 0.007 80.4)

Secondary background, warm contrast sections

#e63946

Red

HEX#e63946
RGBrgb(230, 57, 70)
OKLCHoklch(58.7% 0.211 20.3)

Primary accent, interactive elements, emphasis

#8a8a8a

Gray

HEX#8a8a8a
RGBrgb(138, 138, 138)
OKLCHoklch(62.4% 0 0)

Muted text, labels, secondary information

#1a1a1a

Dark Gray

HEX#1a1a1a
RGBrgb(26, 26, 26)
OKLCHoklch(18.6% 0 0)

Body text on light backgrounds, subtle contrast

Typography

A single font throughout the entire website. Creating a uniform and cohesive look.

Outfit

A geometric sans-serif typeface with a modern, clean aesthetic. Used for all headings and body text.

Sans-serifGoogle FontsVariable Weights

Type Scale

Aa

Display XL

Size: clamp(6rem, 20vw, 20rem)Weight: 200

Hero titles, massive display type

Aa

Display L

Size: clamp(4rem, 12vw, 10rem)Weight: 200

Page headers, section titles

Aa

Display M

Size: clamp(3rem, 8vw, 6rem)Weight: 200

Large headings

Aa

Heading XL

Size: 3remWeight: 200

Major section headings

Aa

Heading L

Size: 2remWeight: 300

Card titles, subsection headings

Aa

Heading M

Size: 1.5remWeight: 300

Component headings

Aa

Body L

Size: 1.1remWeight: 300

Subheadings, introductions

Aa

Body

Size: 1remWeight: 300

Body text, descriptions

Aa

Body S

Size: 0.95remWeight: 300

Secondary text

Aa

Label

Size: 0.7remWeight: 400

Labels, eyebrows, uppercase text

Aa

Caption

Size: 0.65remWeight: 400

Captions, metadata

Spacing System

Consistent spacing values for rhythm and hierarchy

Section Padding

6rem 3rem

Main section containers

Section Margin

6rem

Between major sections

Card Padding

2.5rem

Inside cards and panels

Element Gap

1.5rem - 2rem

Between related elements

Tight Gap

0.5rem - 1rem

Between closely related items

Mobile Padding

2rem - 4rem

Reduced padding on mobile

Interaction & Animation

Smooth, natural-feeling interactions powered by GSAP

Easing Curves

Power easing (power2-power5) for smooth deceleration. Elastic easing for playful spring-back effects.

ease: 'power4.out', 'elastic.out(1, 0.5)'

Hover States

Subtle color transitions (0.3s), background changes, and red accent reveals on interactive elements.

transition: color 0.3s ease

Scroll Animations

GSAP ScrollTrigger for entrance animations. Staggered reveals with opacity and Y-axis movement.

stagger: 0.1, y: 80, opacity: 0

Damped Movement

Long durations (1.2s+) with strong easing for natural, physics-inspired interactions.

duration: 1.2, ease: 'power5.out'

Tuner

Advanced audio processing and synthesis running directly in the browser

Web Audio API

Core engine for low-latency audio capture, analysis, and synthesis without external plugins.

AudioContext, AnalyserNode, OscillatorNode

Autocorrelation

Pitch detection algorithm that compares the signal with time-shifted versions of itself to find the fundamental frequency.

RMS Thresholding, Zero-crossing refinement

Focus On Sustain

Smart filtering that ignores the initial transient attack and averages the stable sustain phase for a rock-steady readout.

Attack Lockout, Rolling Buffer Average

3D Visualization

Three.js powered waveform reacting to frequency analysis data with custom shaders for the liquid motion effect.

Vertex Displacement, Fragment Shaders