Maricopa
Remix this template to create a similar design — same sections, layout, animations, colors, and typography.
A landing page for a high-desert silent retreat. Bone-cream canvas, terracotta, plum and green accents, Spectral serif over Nunito Sans.
Palette
Typography
clamp(64px, 8vw, 100px)
clamp(44px, 5vw, 60px)
26px
15px
40px
11px
Spacing & Shape
| Token | Value | Preview |
|---|---|---|
| xs | 4px | |
| sm | 8px | |
| md | 16px | |
| lg | 24px | |
| xl | 40px | |
| xxl | 60px | |
| section | 140px |
Border Radius
| Token | Value | Preview |
|---|---|---|
| none | 0px | |
| full | 9999px |
design.md
tokens (raw)
name: maricopa-design
version: alpha
description: >
An editorial, scroll-driven landing page for a fictional high-desert silent
retreat. The surface is a warm bone parchment (#F0E8D8) carrying near-black
plum ink (#1C1018), with terracotta (#C4562A) as the single voltage and plum
(#5E3063) / forest green (#3D6B4F) as supporting accents. The type story is a
literary italic serif (Spectral) for every headline and pull-quote, a quiet
humanist sans (Nunito Sans, weight 300) for body, and a wide-tracked mono
(DM Mono) for eyebrows, meta, and coordinates. The geometry is uncompromisingly
flat — no radii, no shadows, only hairline rules — and the signature moves are
a three-layer masked parallax hero, pinned section swaps, a scroll-driven
bone-to-dark theme inversion, and giant ghosted italic numerals behind content.
colors:
# Brand / Voltage
terracotta: '#C4562A' # the single voltage — rules, prices, active dots, coord chip, hover, focus ring, ghost numerals
plum: '#5E3063' # secondary accent — image-wrap backings, bring-note text
green: '#3D6B4F' # tertiary accent — eyebrows, schedule labels, footer center rule, list bullets
dusk: '#A87DAB' # muted lilac — italic emphasis inside the dark dates heading
# Surface
bone: '#F0E8D8' # primary page surface (parchment) and light-on-dark text
dark: '#1C1018' # dark surface — dates section, footer, hero gradient floor
plum-tint: 'rgba(94, 48, 99, 0.10)' # faint plum wash on alternating guide panels (paired w/ #E8DFF0)
# Text
text-p: '#1C1018' # primary ink on bone (= dark)
text-l: '#F0E8D8' # light text on dark (= bone)
body-muted: 'rgba(28, 16, 24, 0.70)' # body copy on bone (panel-desc, guide-desc, policies-prose)
bone-60: 'rgba(240, 232, 216, 0.60)' # muted light text — hero meta, calendar, rate names
# Hairlines
hairline-dark: 'rgba(28, 16, 24, 0.20)' # 1px rules on bone surface
hairline-light: 'rgba(240, 232, 216, 0.25)' # 1px rules on dark surface
# Gradient
hero-gradient: 'linear-gradient(180deg, #8B5A7A 0%, #6B3D5E 40%, #3D2833 100%)' # hero base behind masked image layers
dates-glow: 'radial-gradient(ellipse 70% 50% at 20% 30%, rgba(94,48,99,0.35), transparent 60%), radial-gradient(ellipse 60% 40% at 80% 70%, rgba(196,86,42,0.15), transparent 55%)' # plum+terracotta nebula on dark dates section
typography:
display:
fontFamily: "'Spectral', Georgia, serif"
fontSize: clamp(64px, 8vw, 100px) # hero h1
fontWeight: 700
fontStyle: italic
lineHeight: 1.0
letterSpacing: -0.02em
display-thin:
fontFamily: "'Spectral', Georgia, serif"
fontSize: clamp(44px, 5vw, 60px) # land heading
fontWeight: 300
lineHeight: 1.05
pull-quote:
fontFamily: "'Spectral', Georgia, serif"
fontSize: 26px # prologue body
fontWeight: 400
fontStyle: italic
lineHeight: 1.85
body:
fontFamily: "'Nunito Sans', system-ui, sans-serif"
fontSize: 15px
fontWeight: 300
lineHeight: 1.85
price:
fontFamily: "'Spectral', Georgia, serif"
fontSize: 40px # rate price
fontWeight: 400
fontStyle: italic
lineHeight: 1.0
eyebrow:
fontFamily: "'DM Mono', 'Courier New', monospace"
fontSize: 11px
fontWeight: 400
lineHeight: 1.0
letterSpacing: 0.30em
textTransform: uppercase
rounded: # everything is sharp — flat editorial geometry
none: 0px
full: 9999px # only used for 6px calendar/nav dots
spacing: # base unit 4px; section padding on a coarse 20px rhythm
xs: 4px
sm: 8px
md: 16px
lg: 24px
xl: 40px
xxl: 60px
section: 140px
components:
eyebrow:
textColor: '{colors.green}'
typography: '{typography.eyebrow}'
# mono, 11px, 0.30em tracking, uppercase
hero-coord-chip:
backgroundColor: '{colors.terracotta}'
textColor: '{colors.bone}'
typography: '{typography.eyebrow}'
rounded: '{rounded.none}'
padding: '6px 20px 6px 12px'
# bleeds off the right edge of the hero
retreat-panel-heading:
textColor: '{colors.text-p}'
typography: '{typography.display}'
# clamp(38px,4vw,52px) italic 700, reveals via clip-path inset
rate-row:
textColor: '{colors.bone-60}'
typography: '{typography.body}'
rounded: '{rounded.none}'
padding: '14px 0'
# baseline flex row, 1px bottom hairline-light; price in terracotta italic 40px
calendar-day:
textColor: '{colors.bone}'
typography: '{typography.eyebrow}'
# available days underlined by a 2px terracotta bar that scales 1.4x on hover
retreats-dot:
backgroundColor: '{colors.hairline-dark}'
rounded: '{rounded.full}'
padding: '0'
# 6px dot; active state = terracotta fill
policies-cta:
textColor: '{colors.terracotta}'
typography: '{typography.pull-quote}'
rounded: '{rounded.none}'
padding: '0 0 2px 0'
# text link w/ 1px terracotta underline; hover swaps to plum
ghost-numeral:
textColor: '{colors.terracotta}'
typography: '{typography.display}'
# 260px italic serif at 0.05–0.07 opacity behind panels
motion:
hero-entrance: 'text/meta fade + de-blur + un-skew (translateY 36px, skewY 4deg, blur 10px) over 1.0s cubic-bezier(.2,.8,.2,1), 200ms after load'
hero-video: 'looping mp4 fades in over still poster, opacity 1.1s cubic-bezier(.2,.8,.2,1)'
parallax: 'RAF scroll engine — hero layers translateY -10% + scale; land/guide images translateY; depth layers via --depth'
theme-inversion: 'land section interpolates bg bone→dark and text dark→bone across 250vh scroll (JS rgb lerp)'
pinned-swap: 'retreats pinned 400vh, 4 image/text panels swap on scroll; panel text reveals via clip-path inset(0 100% 0 0)→0'
sticky-stack: 'guides 400vh, 4 sticky panels stack and scale prev down 0.96; names rise + un-skew on lock'
word-blur: 'prologue split into words, each de-blurs + rises with 35ms stagger'
tumble-line: 'manifesto lines translateY 110%→0 with 90ms stagger (authored; sections currently commented out)'
count-up: 'rate prices count from 0 to target over 1000ms on intersect (authored; dates section commented out)'
reduced-motion: '@media (scripting:none) reveals all content; reduceMotion flag wired but hardcoded false'
icons:
library: none
style: typographic — no icon set; UI marks are CSS rules, hairlines, dots, and the · interpunct
sizes: { rule: 1px, accent-bar: 2px, dot: 6px }
color: '{colors.terracotta}'Maricopa Silence
maricopa-design · alpha
Design spec — version alpha. Source: static HTML (
index.html); tokens read from inline styles +:rootCSS variables + class rules. Fictional/sample product; described factually.
Overview
Maricopa Silence is a long-form, scroll-cinematic page for a fictional high-desert
silent retreat, and it reads like a printed monograph more than a website. The
surface is a warm bone parchment (--bone #F0E8D8) printed with near-black plum
ink (--dark #1C1018); a single voltage of terracotta (--terracotta #C4562A)
draws every rule, price, active dot, and the coordinate chip that bleeds off the
hero's right edge. Plum (--plum #5E3063) and forest green (--green #3D6B4F)
play supporting roles — green owns the mono eyebrows and schedule labels, plum
backs the portrait wraps and tints alternating panels. The type story is the
spine of the design: Spectral, always italic for display, carries every headline,
pull-quote, price, and ghosted numeral; Nunito Sans at weight 300 keeps body copy
quiet; DM Mono with 0.22–0.32em tracking handles eyebrows, coordinates, schedules,
and footer meta. The geometry is deliberately austere — zero border-radius
anywhere except a handful of 6px dots, zero box-shadows, depth conveyed only by
hairlines, a masked-parallax hero, a scroll-driven bone-to-dark theme inversion,
and 260px ghost numerals floating at 5–7% opacity behind the content.
Colors
Brand / Voltage. terracotta #C4562A is the only saturated accent and it is
used sparingly and consistently: the prologue/land accent rules, rate prices,
calendar availability underlines, active nav dots, the bleeding coordinate chip,
the policies CTA underline, the focus-visible ring, and the giant ghost numerals
in the guides section. plum #5E3063 is the secondary accent — it backs the
retreats and guide image wraps and tints the bring-note text. green #3D6B4F
is tertiary, reserved for mono eyebrows, schedule/spec labels, list-bullet
interpuncts, and the 60px footer center rule. dusk #A87DAB appears only as the
italic emphasis inside the dark dates heading.
Surface. bone #F0E8D8 is the dominant page surface (prologue, retreats,
land start, guides, bring, policies) and doubles as light text on dark. dark #1C1018 is the inverse surface for the dates section and footer, and the floor
of the hero gradient. A pair of pale lilacs (#E8DFF0, #EDE4EA, and
plum-tint rgba(94,48,99,0.10)) softly differentiate alternating guide panels.
Text. Primary ink is text-p #1C1018 on bone; text-l #F0E8D8 is light text
on dark. Body copy is dialed back with rgba(28,16,24,0.70) on bone and
bone-60 rgba(240,232,216,0.60) on dark.
Hairlines. Two 1px rules carry all structural separation: rgba(28,16,24,0.20)
on bone and rgba(240,232,216,0.25) on dark; rate/spec rows use slightly fainter
0.15/0.12 variants.
Gradient. The hero base is a vertical #8B5A7A → #6B3D5E → #3D2833 plum-to-charcoal
gradient sitting behind masked photo layers. The dates section floats a two-stop
radial nebula of plum (0.35) and terracotta (0.15) over the dark ground.
Typography
Three Google Fonts, loaded via one css2 request (Spectral, Nunito Sans, DM Mono).
Spectral (a literary transitional serif) is the display and pull-quote face,
used almost exclusively in italic at weights 300/400/700 — it is the brand's voice.
Nunito Sans at weight 300 is the humanist body face, kept light and unobtrusive.
DM Mono is the structural/label face, always uppercase with wide tracking, for
eyebrows, coordinates, schedules, calendar, and footer meta. Fallbacks: Georgia
for the serif, system-ui for the sans, Courier New for the mono — all reasonable
open substitutes if the webfonts fail.
| Token | Size | Weight | Line-height | Tracking | Usage |
|---|---|---|---|---|---|
| display | clamp(64,8vw,100px) | 700 italic | 1.0 | -0.02em | Hero H1 |
| display (panel) | clamp(38,4vw,52px) | 700 italic | 1.05 | — | Retreat/guide names |
| display-thin | clamp(44,5vw,60px) | 300 | 1.05 | — | Land heading (italic 700 on <em>) |
| pull-quote | 26px | 400 italic | 1.85 | — | Prologue body |
| body | 15px | 300 | 1.85 | — | Guide/policies copy (14px desc, 13px schedule) |
| price | 40px | 400 italic | 1.0 | — | Rate prices (terracotta) |
| eyebrow | 11px | 400 | 1.0 | 0.30em | Mono labels, meta, coordinates (9–10px in calendar) |
Layout
Base unit is 4px; section vertical padding runs on a coarse rhythm of 120–160px
with 40px horizontal gutters. The page is a vertical sequence of full-viewport
acts. The hero is a 100vh stage with absolutely-positioned corner meta and a
lower-left headline. Editorial content sections (prologue, bring, policies, footer)
center on a 1100–1200px max-width with asymmetric two-column grids (e.g.
200px 1fr label/body). The scroll-cinematic sections allocate tall outer
wrappers (250–400vh) with a position:sticky 100vh inner stage: retreats splits
45% / 55% image/text and swaps four panels; the land splits 1fr 1fr and
inverts its theme on scroll; guides stack four sticky panels that alternate
40/60 ↔ 60/40 and order. Whitespace is generous and the rhythm unhurried;
giant 180–260px ghost numerals anchor sections visually. Below 768px every sticky
section un-sticks and stacks single-column.
Elevation & Depth
There are no box-shadows anywhere. Depth is built from (1) a three-layer masked
parallax hero — background photo, mid and foreground layers with mix-blend-mode: multiply and linear-gradient mask-image fades, plus a loop video — moving at
different --depth rates; (2) hairline rules (1px at 0.12–0.25 alpha) doing all
separation; (3) the scroll-driven bone↔dark theme inversion in the land section;
(4) radial-gradient glows on the dark dates section; and (5) ghosted oversized
italic numerals at 5–7% opacity behind content. Flat, paper-like, atmospheric
rather than dimensional.
Shapes
Aggressively flat. border-radius is 0 for every panel, image, chip, rule, and
CTA — the coordinate chip is a hard rectangle, headings reveal via rectangular
clip-path inset, rules and accent bars are crisp lines. The only curves are the
border-radius:50% 6px dots in the calendar legend and retreats nav. The result
is an editorial, print-grid feel with no softening.
Components
- Eyebrow — DM Mono 11px, 0.30em tracking, uppercase, color
green; numbered (i. Prologue,v. Guides). - Hero coordinate chip — terracotta fill, bone mono text,
6px 20px 6px 12pxpadding, bleeds off the right edge; reads34°N · 106°W · 7,200 ft. - Retreat panel — absolute stacked panels in the right column; mono
№ 01 · Seven nightsnum in terracotta, Spectral italic heading revealed by clip-path, muted body, and a two-column schedule/guide grid. - Rate row — baseline flex row, name in
bone-60sans, price in terracotta italic Spectral 40px, 1pxhairline-lightdivider,14px 0padding. - Calendar day — mono 12px; available days get a 2px terracotta underline bar that scales to 1.4x on hover; dimmed days at 0.25 opacity.
- Retreats nav dots — 6px round dots,
hairline-darkdefault, terracotta when active. - Policies CTA — Spectral italic 20px terracotta with a 1px terracotta
underline; hover recolors to plum (
Acknowledge & apply →). - Guide bio — eyebrow, Spectral italic name, green mono lineage, muted desc,
plus a 260px terracotta ghost numeral (
data-num) at 7% opacity. - Footer — dark surface, italic Spectral brand, terracotta mono "Est. 2014", mono link column, scaleX hairline reveal, 60px green center rule.
Motion
A custom RAF scroll engine drives all parallax; IntersectionObserver drives reveals.
Hero text/meta fade + de-blur + un-skew (translateY 36px → 0, skewY 4° → 0, blur
10px → 0) over 1.0s on a cubic-bezier(.2,.8,.2,1) ease used throughout. The loop
video fades in over the poster (1.1s). The prologue sentence splits into words that
de-blur and rise with a 35ms stagger. The retreats section swaps panels on a 400vh
pin, headings revealing via clip-path inset. The land section interpolates its
background bone→dark and text dark→bone over 250vh. Guides stack four sticky panels,
scaling the previous down ~4% and rising names on lock. Authored-but-currently-disabled:
the dates section (calendar stagger + price count-up) and policies section
(tumble-lines) are commented out in the markup, so their motion never runs. A
reduceMotion flag exists but is hardcoded false; only @media (scripting:none)
disables animation.
Iconography
No icon library. The visual marks are entirely typographic and geometric: the ·
interpunct as a separator and list bullet, mono numerals (№ 01, i.–vii.),
1px hairlines, 2px terracotta accent bars, 6px dots, and → arrows in CTAs. All
accent marks are terracotta or green; structural rules use the hairline alphas.
Do's and Don'ts
- Do keep terracotta as the lone saturated voltage — rules, prices, active states, focus ring — and let green/plum stay subordinate.
- Do set every headline and pull-quote in Spectral italic; it is the brand voice.
- Do keep geometry flat: no radii (beyond the 6px dots), no shadows, hairlines only.
- Do preserve the wide-tracked uppercase DM Mono for all labels and meta.
- Don't introduce rounded cards, drop shadows, or glassmorphism.
- Don't set Spectral upright for display, or use a second saturated accent.
- Don't crowd the layout — the generous 120–160px section rhythm and ghost numerals are load-bearing.
- Don't rely on the dates/policies sections; they are commented out in the current markup.
Known Gaps
- The dates & rates section (Section IV,
numeric-stat-wall) and the policies section (Section VII,manifesto-tumble-lines) are present in CSS/JS but their markup is commented out — values for calendar, rate rows ($ prices, count-up targets), and tumble lines are read from the styles, not from rendered content. - Hero mid/foreground parallax layers reference local
./assets/hero-mid.pngand./assets/hero-fg.png(not in repo); their masked multiply effect is described from CSS. - Spacing tokens are inferred from observed values (4px base; 40/60/140px section rhythm), not an explicit scale.
- Pale guide-panel tints
#E8DFF0/#EDE4EAare one-off backgrounds, grouped withplum-tintrather than tokenized individually.