Western Frontier is a rugged, evocative design aesthetic rooted in the visual culture of the 19th-century American Old West – the era of dusty frontier towns, cattle drives, saloons, wanted posters, and wide-open desert landscapes. Its visual language draws directly from the wood-type display faces, hand-painted signage, and broadsheet printing traditions that defined communication on the frontier. Bold slab-serif typography, weathered leather textures, branded iron motifs, and a palette of sunbaked earth tones, deep saddle browns, and dusty reds form its unmistakable identity.
In web and UI design, the Western Frontier aesthetic translates into heavy slab-serif and fat-face display type, parchment and aged-paper background textures, rope and branded-iron border treatments, sepia-toned photography, and layouts inspired by wanted posters, saloon signage, and frontier newspaper broadsides. Desert landscapes, cacti, horseshoes, sheriff stars, and revolver silhouettes serve as recurring iconographic motifs. The palette stays grounded in warm, dusty earth tones – sandy tans, burnt sienna, raw umber, and oxblood red – punctuated by turquoise accents that reference Native American jewelry and the copper-rich mineral deposits of the Southwest.
Unlike nostalgic or kitschy cowboy themes, a well-executed Western Frontier design emphasizes authenticity, craft, and weight. Typography should feel carved, stamped, or printed with real physical pressure. Surfaces should feel tactile – sun-cracked leather, weathered barn wood, hammered metal, rough cotton canvas. The emotional register balances rugged self-reliance and quiet solitude with the boisterous energy of saloon culture. It channels the romance of the frontier: endless horizons, the golden hour light of the high desert, and the mythic individualism of the cowboy archetype. When applied with restraint and attention to material authenticity, Western Frontier design creates experiences that feel handcrafted, substantial, and timeless rather than costume-like or cartoonish.
The Western Frontier palette draws from the natural materials and landscapes of the American Southwest and Great Plains: sun-baked earth, desert sand, weathered leather, oxidized metal, and the dramatic skies of the high desert. Warm browns, dusty reds, and sandy neutrals dominate, with turquoise providing the signature cool-tone accent.
| Swatch | Hex | Role/Usage |
|---|---|---|
| Saddle Leather | #8B4513 |
Primary brown, headers, nav backgrounds, key surfaces |
| Rawhide Tan | #D2B48C |
Secondary surface, card backgrounds, parchment base |
| Desert Sand | #EDC9AF |
Light background, page base, content area fills |
| Parchment | #F5E6D0 |
Lightest neutral, paper texture base, body backgrounds |
| Burnt Sienna | #A0522D |
Warm accent, borders, decorative rules, link color |
| Oxblood Red | #800020 |
Deep accent, call-to-action elements, wanted-poster headlines |
| Dusty Red | #B5403D |
Secondary red, hover states, alert elements, star badges |
| Raw Umber | #704214 |
Dark brown, text color on light surfaces, shadow tones |
| Dark Sienna | #3A160E |
Deepest dark, primary text, dark-mode backgrounds |
| Frontier Turquoise | #40E0D0 |
Cool accent, jewelry-inspired details, highlight elements |
| Tarnished Turquoise | #5F9EA0 |
Muted cool accent, secondary links, subtle highlights |
| Rust Orange | #C1440E |
Warm bright accent, sunset tones, button highlights |
| Prairie Gold | #DAA520 |
Metallic accent, star badges, premium details, divider ornaments |
| Bone White | #F9F6F0 |
Lightest value, text on dark, high-contrast elements |
| Charcoal Smoke | #2C2C2C |
Near-black, dark text, footer backgrounds, deep contrast |
:root {
/* Primary browns */
--western-saddle: #8b4513;
--western-saddle-light: #a0602e;
--western-saddle-dark: #6b3410;
--western-rawhide: #d2b48c;
--western-raw-umber: #704214;
/* Sand and parchment */
--western-desert-sand: #edc9af;
--western-parchment: #f5e6d0;
--western-bone: #f9f6f0;
/* Reds */
--western-oxblood: #800020;
--western-dusty-red: #b5403d;
--western-burnt-sienna: #a0522d;
--western-rust: #c1440e;
/* Dark tones */
--western-dark-sienna: #3a160e;
--western-charcoal: #2c2c2c;
/* Accent cool tones */
--western-turquoise: #40e0d0;
--western-turquoise-muted: #5f9ea0;
/* Metallics */
--western-gold: #daa520;
--western-gold-light: #e8c24a;
--western-brass: #b5a642;
--western-iron: #48453e;
/* Effects and transparencies */
--western-leather-shadow: rgba(58, 22, 14, 0.5);
--western-dust: rgba(210, 180, 140, 0.15);
--western-parchment-overlay: rgba(245, 230, 208, 0.85);
--western-smoke: rgba(44, 44, 44, 0.6);
--western-brand-glow: rgba(193, 68, 14, 0.35);
/* Functional mappings */
--western-bg-primary: var(--western-parchment);
--western-bg-secondary: var(--western-desert-sand);
--western-bg-surface: var(--western-rawhide);
--western-bg-dark: var(--western-dark-sienna);
--western-text-primary: var(--western-dark-sienna);
--western-text-secondary: var(--western-raw-umber);
--western-text-on-dark: var(--western-bone);
--western-accent: var(--western-oxblood);
--western-accent-warm: var(--western-rust);
--western-accent-cool: var(--western-turquoise-muted);
--western-border: var(--western-saddle);
}
The Western Frontier aesthetic relies on bold, high-impact display typefaces descended from 19th-century American wood type. Slab serifs with heavy, blocky serifs dominate headlines, while sturdy, readable serif or sans-serif faces handle body text. The overall typographic impression should feel hand-set, physically printed, and commanding – as if each letter were carved from a wooden block and pressed into paper with force.
| Font | Weight(s) | Style | Usage |
|---|---|---|---|
| Rye | 400 | Decorative Western display slab with saloon character | Hero headlines, poster titles, section headers |
| Smokum | 400 | Bold, condensed Western wood-type display face | Display headlines, wanted-poster titles, banners |
| Sancreek | 400 | Old-style frontier display with strong personality | Section headings, decorative titles, badges |
| Ewert | 400 | Stylized, ornate Western display with carved quality | Feature headlines, special callouts, decorative type |
| Playfair Display | 400, 700, 900 | High-contrast Didone serif with editorial authority | Subheadings, pull quotes, formal text |
| Alfa Slab One | 400 | Heavy, modern slab serif with tremendous visual weight | Display headlines, banners, bold statements |
| Crete Round | 400 | Warm slab serif with rounded edges and friendly presence | Body headings, navigation labels, UI elements |
| Lora | 400, 500, 700 | Well-balanced transitional serif for extended reading | Body text, long-form content, descriptions |
| Source Serif 4 | 300, 400, 600, 700 | Versatile workhorse serif with excellent readability | Body text, captions, metadata, secondary content |
| Wellfleet | 400 | Geometric slab serif with rounded corners and frontier feel | Labels, badges, navigation, mid-weight headings |
| Heading | Body | Mood |
|---|---|---|
| Rye 400 | Lora 400 | Classic saloon signage with readable, warm body text |
| Alfa Slab One 400 | Source Serif 4 400 | Bold wanted-poster headlines with clean, professional body |
| Smokum 400 | Crete Round 400 | Dramatic frontier display with friendly, approachable body |
| Sancreek 400 | Lora 400 | Ornate Old West display with elegant, traditional body text |
| Playfair Display 900 | Source Serif 4 400 | Editorial authority meets frontier storytelling |
@import url('https://fonts.googleapis.com/css2?family=Rye&family=Alfa+Slab+One&family=Lora:ital,wght@0,400;0,500;0,700;1,400&family=Source+Serif+4:wght@300;400;600;700&family=Crete+Round&family=Playfair+Display:wght@400;700;900&display=swap');
body {
font-family: 'Lora', 'Source Serif 4', Georgia, serif;
font-weight: 400;
font-size: 1rem;
line-height: 1.75;
letter-spacing: 0.01em;
color: var(--western-text-primary);
-webkit-font-smoothing: antialiased;
}
h1, h2 {
font-family: 'Rye', 'Alfa Slab One', serif;
font-weight: 400;
letter-spacing: 0.04em;
text-transform: uppercase;
color: var(--western-dark-sienna);
}
h3, h4 {
font-family: 'Playfair Display', Georgia, serif;
font-weight: 700;
letter-spacing: 0.02em;
color: var(--western-raw-umber);
}
/* Wanted poster display text */
.western-display {
font-family: 'Rye', serif;
font-size: clamp(2.5rem, 8vw, 6rem);
line-height: 1.0;
text-transform: uppercase;
letter-spacing: 0.06em;
color: var(--western-oxblood);
text-shadow: 2px 2px 0 rgba(58, 22, 14, 0.3);
}
/* Stamped brand text effect */
.western-brand {
font-family: 'Alfa Slab One', serif;
font-size: 1.2rem;
text-transform: uppercase;
letter-spacing: 0.2em;
color: var(--western-saddle);
text-shadow:
1px 1px 0 rgba(245, 230, 208, 0.6),
-1px -1px 0 rgba(58, 22, 14, 0.15);
}
/* Frontier label text */
.western-label {
font-family: 'Crete Round', 'Wellfleet', serif;
font-size: 0.75rem;
text-transform: uppercase;
letter-spacing: 0.18em;
color: var(--western-burnt-sienna);
}
.western-card {
background:
linear-gradient(
135deg,
rgba(245, 230, 208, 0.95) 0%,
rgba(237, 201, 175, 0.9) 100%
);
border: 3px solid var(--western-saddle);
border-radius: 2px;
padding: 2rem 2.5rem;
position: relative;
box-shadow:
4px 4px 0 var(--western-raw-umber),
0 8px 24px rgba(58, 22, 14, 0.25);
max-width: 480px;
}
/* Aged corner pins */
.western-card::before,
.western-card::after {
content: '';
position: absolute;
width: 12px;
height: 12px;
border-radius: 50%;
background: radial-gradient(
circle,
var(--western-gold) 30%,
var(--western-saddle) 60%,
transparent 70%
);
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}
.western-card::before {
top: 10px;
left: 10px;
}
.western-card::after {
top: 10px;
right: 10px;
}
/* Double-rule top border */
.western-card-header {
text-align: center;
padding-bottom: 1rem;
margin-bottom: 1.5rem;
border-bottom: 3px double var(--western-saddle);
}
.western-card-header h3 {
font-family: 'Rye', serif;
text-transform: uppercase;
letter-spacing: 0.08em;
color: var(--western-oxblood);
margin: 0;
}
.western-card:hover {
box-shadow:
4px 4px 0 var(--western-raw-umber),
0 12px 32px rgba(58, 22, 14, 0.35);
transform: translateY(-2px);
transition: all 0.3s ease;
}
/* Primary slab button */
.western-button {
display: inline-block;
padding: 0.8rem 2.2rem;
border: 2px solid var(--western-saddle);
border-radius: 2px;
background: linear-gradient(
180deg,
#a0602e 0%,
#8b4513 40%,
#6b3410 100%
);
color: var(--western-bone);
font-family: 'Crete Round', 'Alfa Slab One', serif;
font-size: 0.85rem;
letter-spacing: 0.14em;
text-transform: uppercase;
text-decoration: none;
cursor: pointer;
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.15),
inset 0 -2px 0 rgba(0, 0, 0, 0.2),
0 3px 6px rgba(58, 22, 14, 0.35);
transition: all 0.25s ease;
}
.western-button:hover {
background: linear-gradient(
180deg,
#b57040 0%,
#a0602e 40%,
#8b4513 100%
);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.2),
inset 0 -2px 0 rgba(0, 0, 0, 0.2),
0 5px 12px rgba(58, 22, 14, 0.45);
transform: translateY(-1px);
}
.western-button:active {
transform: translateY(1px);
box-shadow:
inset 0 2px 4px rgba(0, 0, 0, 0.3),
0 1px 2px rgba(58, 22, 14, 0.3);
}
/* Oxblood danger/wanted variant */
.western-button--wanted {
background: linear-gradient(
180deg,
#9a1030 0%,
#800020 40%,
#600018 100%
);
border-color: var(--western-oxblood);
}
.western-button--wanted:hover {
background: linear-gradient(
180deg,
#b01840 0%,
#9a1030 40%,
#800020 100%
);
}
/* Parchment outline variant */
.western-button--outline {
background: transparent;
color: var(--western-saddle);
border: 2px solid var(--western-saddle);
box-shadow: none;
}
.western-button--outline:hover {
background: var(--western-saddle);
color: var(--western-bone);
}
.western-nav {
background:
linear-gradient(
180deg,
#5a3a1e 0%,
#4a2e14 50%,
#3a200a 100%
);
border-bottom: 4px solid var(--western-saddle-dark);
padding: 0.75rem 2rem;
display: flex;
align-items: center;
justify-content: center;
gap: 0.5rem;
position: sticky;
top: 0;
z-index: 100;
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.08),
0 4px 12px rgba(0, 0, 0, 0.5);
}
/* Branded nail heads on nav bar */
.western-nav::before,
.western-nav::after {
content: '';
width: 10px;
height: 10px;
border-radius: 50%;
background: radial-gradient(
circle at 35% 35%,
#b5a642 0%,
#8a7a30 50%,
#6a5a20 100%
);
box-shadow:
inset 0 -1px 2px rgba(0, 0, 0, 0.4),
0 1px 2px rgba(0, 0, 0, 0.3);
flex-shrink: 0;
}
.western-nav a {
color: var(--western-rawhide);
font-family: 'Crete Round', serif;
font-size: 0.8rem;
letter-spacing: 0.14em;
text-transform: uppercase;
text-decoration: none;
padding: 0.4rem 1rem;
transition: color 0.3s ease, text-shadow 0.3s ease;
}
.western-nav a:hover {
color: var(--western-gold-light);
text-shadow: 0 0 8px rgba(218, 165, 32, 0.3);
}
/* Bullet separator between nav items */
.western-nav a + a::before {
content: '\2726';
margin-right: 1rem;
color: var(--western-gold);
font-size: 0.5rem;
vertical-align: middle;
opacity: 0.6;
}
.western-hero {
min-height: 90vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
padding: 4rem 2rem;
position: relative;
background:
linear-gradient(
180deg,
rgba(58, 22, 14, 0.7) 0%,
rgba(58, 22, 14, 0.4) 40%,
rgba(139, 69, 19, 0.3) 70%,
rgba(218, 165, 32, 0.15) 100%
);
overflow: hidden;
}
/* Desert sunset gradient behind content */
.western-hero::before {
content: '';
position: absolute;
inset: 0;
background:
linear-gradient(
180deg,
#1a0a04 0%,
#3a160e 15%,
#8b4513 45%,
#c1440e 65%,
#daa520 80%,
#edc9af 95%
);
z-index: -1;
opacity: 0.6;
}
.western-hero h1 {
font-family: 'Rye', serif;
font-size: clamp(3rem, 10vw, 7rem);
text-transform: uppercase;
letter-spacing: 0.08em;
color: var(--western-bone);
text-shadow:
3px 3px 0 rgba(58, 22, 14, 0.6),
0 0 40px rgba(218, 165, 32, 0.2);
line-height: 1.0;
margin-bottom: 1rem;
}
.western-hero .subtitle {
font-family: 'Playfair Display', serif;
font-size: clamp(1rem, 2.5vw, 1.4rem);
font-style: italic;
color: var(--western-rawhide);
letter-spacing: 0.12em;
margin-bottom: 2rem;
}
/* Decorative double-rule divider */
.western-hero .rule {
width: min(300px, 80%);
height: 6px;
background:
linear-gradient(
180deg,
var(--western-gold) 0%,
var(--western-gold) 25%,
transparent 25%,
transparent 50%,
var(--western-gold) 50%,
var(--western-gold) 75%,
transparent 75%
);
border: none;
margin: 1.5rem auto;
opacity: 0.6;
}
/* Parchment / aged paper effect using pure CSS */
.western-parchment {
background-color: var(--western-parchment);
background-image:
repeating-linear-gradient(
0deg,
transparent,
transparent 2px,
rgba(139, 69, 19, 0.02) 2px,
rgba(139, 69, 19, 0.02) 4px
),
repeating-linear-gradient(
90deg,
transparent,
transparent 3px,
rgba(112, 66, 20, 0.015) 3px,
rgba(112, 66, 20, 0.015) 6px
),
radial-gradient(
ellipse at 20% 50%,
rgba(160, 82, 45, 0.08) 0%,
transparent 60%
),
radial-gradient(
ellipse at 80% 30%,
rgba(139, 69, 19, 0.06) 0%,
transparent 50%
);
position: relative;
}
/* Burned / darkened edges */
.western-parchment::after {
content: '';
position: absolute;
inset: 0;
pointer-events: none;
box-shadow:
inset 0 0 60px rgba(112, 66, 20, 0.2),
inset 0 0 120px rgba(58, 22, 14, 0.1);
}
.western-wanted {
background: var(--western-parchment);
border: 4px solid var(--western-dark-sienna);
outline: 2px solid var(--western-saddle);
outline-offset: 4px;
padding: 2.5rem 2rem;
max-width: 520px;
margin: 2rem auto;
text-align: center;
position: relative;
box-shadow:
0 8px 24px rgba(0, 0, 0, 0.35),
inset 0 0 40px rgba(112, 66, 20, 0.12);
}
.western-wanted h2 {
font-family: 'Rye', serif;
font-size: 3rem;
text-transform: uppercase;
letter-spacing: 0.12em;
color: var(--western-oxblood);
margin-bottom: 0.25rem;
}
.western-wanted .reward {
font-family: 'Alfa Slab One', serif;
font-size: 1.2rem;
text-transform: uppercase;
letter-spacing: 0.2em;
color: var(--western-dark-sienna);
border-top: 3px double var(--western-dark-sienna);
border-bottom: 3px double var(--western-dark-sienna);
padding: 0.5rem 0;
margin: 1rem auto;
display: inline-block;
}
/* Curled corner effect */
.western-wanted::before {
content: '';
position: absolute;
bottom: 0;
right: 0;
width: 30px;
height: 30px;
background: linear-gradient(
225deg,
var(--western-desert-sand) 50%,
rgba(112, 66, 20, 0.3) 50%
);
}
/* Rope / lasso border using repeating gradients */
.western-rope-border {
position: relative;
padding: 2rem;
border: 6px solid transparent;
border-image: repeating-linear-gradient(
90deg,
#b5903a 0px,
#d2b48c 4px,
#a07828 8px,
#c4a060 12px,
#b5903a 16px
) 6;
}
/* Alternative: twisted rope top/bottom borders */
.western-rope-divider {
height: 8px;
background: repeating-linear-gradient(
120deg,
#b5903a 0px,
#d2b48c 5px,
#a07828 10px,
#c4a060 15px,
#b5903a 20px
);
border-radius: 4px;
margin: 2rem auto;
max-width: 400px;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}
/* CSS-only sheriff star badge */
.western-badge {
display: inline-flex;
align-items: center;
justify-content: center;
width: 60px;
height: 60px;
background: var(--western-gold);
clip-path: polygon(
50% 0%, 63% 25%, 93% 25%,
72% 45%, 80% 75%, 50% 58%,
20% 75%, 28% 45%, 7% 25%,
37% 25%
);
color: var(--western-dark-sienna);
font-family: 'Crete Round', serif;
font-size: 0.55rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.05em;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}
/* Inner circle of badge */
.western-badge::after {
content: '';
position: absolute;
width: 28px;
height: 28px;
border-radius: 50%;
border: 2px solid var(--western-dark-sienna);
}
| Aesthetic | Relationship to Western Frontier |
|---|---|
| Vintage Americana | Shares patriotic nostalgia and Americana visual motifs; Vintage Americana is broader in era and scope while Western Frontier is specifically 19th-century frontier-focused |
| Rustic / Cottagecore | Overlaps in natural material textures (wood, leather, linen) and earth-tone palettes; Rustic leans pastoral-domestic while Western Frontier is arid, expansive, and rugged |
| Steampunk | Shares the 19th-century time period and industrial craft sensibility; Steampunk adds Victorian-era machinery and brass clockwork elements that Western Frontier does not |
| Grunge | Both use distressed, weathered, rough textures; Grunge is urban, rebellious, and 1990s-coded while Western Frontier is rural, historical, and romantically mythic |
| Art Deco Southwest | Shares Southwest color palettes and geometric pattern influences; Art Deco Southwest fuses Native American motifs with Jazz-Age glamour, while Western Frontier stays closer to frontier settler culture |
| Dark Academia | Both value warmth, aged textures, and traditional typographic structures; Dark Academia is literary and European-institutional while Western Frontier is American-frontier and action-oriented |
| Frontier Gothic | A darker, moodier offshoot that merges Western Frontier with Gothic atmosphere; deep charcoals, stormy skies, and haunted-prairie imagery replace the warmer, sunlit tones |
| Retro / Mid-Century | Both draw from specific periods of American culture; Mid-Century is post-war urban optimism while Western Frontier is pre-industrial frontier grit |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Western Frontier</title>
<link href="https://fonts.googleapis.com/css2?family=Rye&family=Alfa+Slab+One&family=Lora:ital,wght@0,400;0,500;0,700;1,400&family=Source+Serif+4:wght@300;400;600;700&family=Crete+Round&family=Playfair+Display:wght@400;700;900&display=swap" rel="stylesheet">
<style>
:root {
--western-saddle: #8b4513;
--western-saddle-light: #a0602e;
--western-saddle-dark: #6b3410;
--western-rawhide: #d2b48c;
--western-raw-umber: #704214;
--western-desert-sand: #edc9af;
--western-parchment: #f5e6d0;
--western-bone: #f9f6f0;
--western-oxblood: #800020;
--western-dusty-red: #b5403d;
--western-burnt-sienna: #a0522d;
--western-rust: #c1440e;
--western-dark-sienna: #3a160e;
--western-charcoal: #2c2c2c;
--western-turquoise: #40e0d0;
--western-turquoise-muted: #5f9ea0;
--western-gold: #daa520;
--western-gold-light: #e8c24a;
--western-iron: #48453e;
}
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
body {
background-color: var(--western-parchment);
background-image:
repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(139,69,19,0.02) 2px, rgba(139,69,19,0.02) 4px),
repeating-linear-gradient(90deg, transparent, transparent 3px, rgba(112,66,20,0.015) 3px, rgba(112,66,20,0.015) 6px),
radial-gradient(ellipse at 20% 50%, rgba(160,82,45,0.08) 0%, transparent 60%),
radial-gradient(ellipse at 80% 30%, rgba(139,69,19,0.06) 0%, transparent 50%);
color: var(--western-dark-sienna);
font-family: 'Lora', Georgia, serif;
font-size: 1rem;
line-height: 1.75;
min-height: 100vh;
overflow-x: hidden;
}
h1, h2 { font-family: 'Rye', serif; font-weight: 400; text-transform: uppercase; letter-spacing: 0.06em; }
h3, h4 { font-family: 'Playfair Display', Georgia, serif; font-weight: 700; }
a { color: var(--western-burnt-sienna); text-decoration: none; transition: color 0.3s ease; }
a:hover { color: var(--western-oxblood); }
/* Navigation */
nav {
background: linear-gradient(180deg, #5a3a1e 0%, #4a2e14 50%, #3a200a 100%);
border-bottom: 4px solid var(--western-saddle-dark);
padding: 0.75rem 2rem;
display: flex; align-items: center; justify-content: center; gap: 0.5rem;
position: sticky; top: 0; z-index: 100;
box-shadow: inset 0 1px 0 rgba(255,255,255,0.08), 0 4px 12px rgba(0,0,0,0.5);
}
nav::before, nav::after {
content: ''; width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0;
background: radial-gradient(circle at 35% 35%, #b5a642 0%, #8a7a30 50%, #6a5a20 100%);
box-shadow: inset 0 -1px 2px rgba(0,0,0,0.4), 0 1px 2px rgba(0,0,0,0.3);
}
nav a { color: var(--western-rawhide); font-family: 'Crete Round', serif; font-size: 0.8rem; letter-spacing: 0.14em; text-transform: uppercase; padding: 0.4rem 1rem; }
nav a:hover { color: var(--western-gold-light); text-shadow: 0 0 8px rgba(218,165,32,0.3); }
.nav-sep { color: var(--western-gold); font-size: 0.5rem; opacity: 0.5; }
/* Hero */
.hero {
min-height: 90vh; display: flex; flex-direction: column; align-items: center;
justify-content: center; text-align: center; padding: 4rem 2rem; position: relative; overflow: hidden;
}
.hero::before {
content: ''; position: absolute; inset: 0; z-index: -1; opacity: 0.55;
background: linear-gradient(180deg, #1a0a04 0%, #3a160e 15%, #8b4513 45%, #c1440e 65%, #daa520 80%, #edc9af 95%);
}
.hero::after {
content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 120px; z-index: 1;
background: linear-gradient(to top, var(--western-parchment), transparent);
}
.hero h1 {
font-size: clamp(3rem, 10vw, 7rem); color: var(--western-bone); line-height: 1.0;
text-shadow: 3px 3px 0 rgba(58,22,14,0.6), 0 0 40px rgba(218,165,32,0.2);
margin-bottom: 0.5rem; position: relative; z-index: 2;
}
.hero .tagline {
font-family: 'Playfair Display', serif; font-size: clamp(1rem, 2.5vw, 1.4rem);
font-style: italic; color: var(--western-rawhide); letter-spacing: 0.12em;
margin-bottom: 2rem; position: relative; z-index: 2;
}
.hero-rule {
width: min(300px, 80%); height: 6px; border: none; margin: 1rem auto 2rem;
opacity: 0.6; position: relative; z-index: 2;
background: linear-gradient(180deg, var(--western-gold) 0%, var(--western-gold) 25%, transparent 25%, transparent 50%, var(--western-gold) 50%, var(--western-gold) 75%, transparent 75%);
}
.hero .cta { position: relative; z-index: 2; }
/* Buttons */
.btn {
display: inline-block; padding: 0.8rem 2.2rem; border: 2px solid var(--western-saddle);
border-radius: 2px; color: var(--western-bone); font-family: 'Crete Round', serif;
font-size: 0.85rem; letter-spacing: 0.14em; text-transform: uppercase;
text-decoration: none; cursor: pointer; transition: all 0.25s ease;
background: linear-gradient(180deg, #a0602e 0%, #8b4513 40%, #6b3410 100%);
box-shadow: inset 0 1px 0 rgba(255,255,255,0.15), inset 0 -2px 0 rgba(0,0,0,0.2), 0 3px 6px rgba(58,22,14,0.35);
}
.btn:hover {
background: linear-gradient(180deg, #b57040 0%, #a0602e 40%, #8b4513 100%);
color: var(--western-bone); transform: translateY(-1px);
box-shadow: inset 0 1px 0 rgba(255,255,255,0.2), inset 0 -2px 0 rgba(0,0,0,0.2), 0 5px 12px rgba(58,22,14,0.45);
}
.btn--wanted { background: linear-gradient(180deg, #9a1030 0%, #800020 40%, #600018 100%); border-color: var(--western-oxblood); }
.btn--wanted:hover { background: linear-gradient(180deg, #b01840 0%, #9a1030 40%, #800020 100%); }
.btn--outline { background: transparent; color: var(--western-saddle); border: 2px solid var(--western-saddle); box-shadow: none; }
.btn--outline:hover { background: var(--western-saddle); color: var(--western-bone); }
/* Layout */
.container { max-width: 1100px; margin: 0 auto; padding: 0 2rem; }
section { padding: 4rem 0; }
.section-header { text-align: center; margin-bottom: 3rem; }
.section-header h2 { font-size: clamp(1.8rem, 4vw, 2.8rem); color: var(--western-oxblood); margin-bottom: 0.5rem; }
.section-header p { font-family: 'Playfair Display', serif; font-style: italic; color: var(--western-raw-umber); font-size: 1.05rem; }
.double-rule {
width: min(200px, 60%); height: 6px; border: none; margin: 1rem auto; opacity: 0.4;
background: linear-gradient(180deg, var(--western-saddle) 0%, var(--western-saddle) 30%, transparent 30%, transparent 55%, var(--western-saddle) 55%, var(--western-saddle) 100%);
}
/* Cards */
.card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; }
.card {
background: linear-gradient(135deg, rgba(245,230,208,0.95) 0%, rgba(237,201,175,0.9) 100%);
border: 3px solid var(--western-saddle); border-radius: 2px; padding: 2rem 1.5rem; position: relative;
box-shadow: 4px 4px 0 var(--western-raw-umber), 0 8px 24px rgba(58,22,14,0.2);
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.card::before, .card::after {
content: ''; position: absolute; width: 10px; height: 10px; border-radius: 50%;
background: radial-gradient(circle, var(--western-gold) 30%, var(--western-saddle) 60%, transparent 70%);
box-shadow: 0 1px 3px rgba(0,0,0,0.3);
}
.card::before { top: 8px; left: 8px; }
.card::after { top: 8px; right: 8px; }
.card:hover { transform: translateY(-3px); box-shadow: 4px 4px 0 var(--western-raw-umber), 0 14px 36px rgba(58,22,14,0.3); }
.card-title {
font-family: 'Rye', serif; font-size: 1.2rem; text-transform: uppercase; letter-spacing: 0.06em;
color: var(--western-oxblood); text-align: center; padding-bottom: 0.75rem; margin-bottom: 1rem;
border-bottom: 3px double var(--western-saddle);
}
.card p { color: var(--western-raw-umber); font-size: 0.95rem; line-height: 1.7; }
.card-badge {
display: inline-block; background: var(--western-saddle); color: var(--western-bone);
font-family: 'Crete Round', serif; font-size: 0.7rem; letter-spacing: 0.1em;
text-transform: uppercase; padding: 0.25rem 0.75rem; margin-top: 1rem;
}
/* Wanted Poster */
.wanted-poster {
background: var(--western-parchment); border: 4px solid var(--western-dark-sienna);
outline: 2px solid var(--western-saddle); outline-offset: 4px;
padding: 2.5rem 2rem; max-width: 520px; margin: 2rem auto; text-align: center; position: relative;
box-shadow: 0 8px 24px rgba(0,0,0,0.35), inset 0 0 40px rgba(112,66,20,0.12);
}
.wanted-poster h2 { font-size: clamp(2.4rem, 6vw, 3.5rem); color: var(--western-oxblood); letter-spacing: 0.14em; }
.wanted-poster .reward-line {
font-family: 'Alfa Slab One', serif; font-size: 1.1rem; text-transform: uppercase;
letter-spacing: 0.2em; color: var(--western-dark-sienna);
border-top: 3px double var(--western-dark-sienna); border-bottom: 3px double var(--western-dark-sienna);
padding: 0.5rem 0; margin: 1rem auto; display: inline-block;
}
.wanted-poster .amount { font-family: 'Rye', serif; font-size: 2rem; color: var(--western-oxblood); margin: 0.5rem 0; }
.wanted-poster .description { font-style: italic; color: var(--western-raw-umber); font-size: 0.95rem; line-height: 1.6; max-width: 380px; margin: 1rem auto; }
/* Rope Divider */
.rope-divider {
height: 8px; border-radius: 4px; margin: 3rem auto; max-width: 400px;
background: repeating-linear-gradient(120deg, #b5903a 0px, #d2b48c 5px, #a07828 10px, #c4a060 15px, #b5903a 20px);
box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}
/* Dark Section */
.dark-section {
background: linear-gradient(180deg, var(--western-dark-sienna) 0%, var(--western-charcoal) 100%);
color: var(--western-rawhide); padding: 5rem 0;
}
.dark-section h2 { color: var(--western-gold); }
.dark-section p { color: var(--western-rawhide); }
.dark-section .double-rule {
background: linear-gradient(180deg, var(--western-gold) 0%, var(--western-gold) 30%, transparent 30%, transparent 55%, var(--western-gold) 55%, var(--western-gold) 100%);
}
/* Features */
.features { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 2rem; margin-top: 2rem; }
.feature-item { display: flex; gap: 1rem; align-items: flex-start; }
.feature-icon {
flex-shrink: 0; width: 48px; height: 48px; display: flex; align-items: center; justify-content: center;
background: var(--western-gold); color: var(--western-dark-sienna); font-size: 1rem;
clip-path: polygon(50% 0%, 63% 25%, 93% 25%, 72% 45%, 80% 75%, 50% 58%, 20% 75%, 28% 45%, 7% 25%, 37% 25%);
}
.feature-item h4 { font-family: 'Crete Round', serif; font-size: 1rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--western-bone); margin-bottom: 0.25rem; }
.feature-item p { font-size: 0.9rem; line-height: 1.6; opacity: 0.85; }
/* Testimonial */
.testimonial { text-align: center; padding: 3rem 2rem; max-width: 700px; margin: 0 auto; }
.testimonial blockquote {
font-family: 'Playfair Display', serif; font-size: 1.4rem; font-style: italic;
color: var(--western-raw-umber); line-height: 1.6; position: relative; padding: 0 2rem;
}
.testimonial blockquote::before { content: '\201C'; font-family: 'Rye', serif; font-size: 4rem; color: var(--western-gold); position: absolute; top: -1rem; left: -0.5rem; opacity: 0.5; }
.testimonial cite { display: block; margin-top: 1rem; font-family: 'Crete Round', serif; font-size: 0.85rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--western-burnt-sienna); font-style: normal; }
/* Footer */
footer {
background: linear-gradient(180deg, var(--western-charcoal) 0%, #1a0e06 100%);
color: var(--western-rawhide); text-align: center; padding: 3rem 2rem 2rem; position: relative;
}
footer::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, transparent, var(--western-saddle) 20%, var(--western-gold) 50%, var(--western-saddle) 80%, transparent); }
.footer-brand { font-family: 'Rye', serif; font-size: 1.4rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--western-gold); margin-bottom: 0.5rem; }
footer p { font-size: 0.85rem; opacity: 0.7; margin-top: 1rem; }
footer nav { background: transparent; border: none; box-shadow: none; padding: 1rem 0; position: static; gap: 1.5rem; flex-wrap: wrap; }
footer nav::before, footer nav::after { display: none; }
footer nav a { font-size: 0.75rem; color: var(--western-rawhide); opacity: 0.7; }
footer nav a:hover { opacity: 1; color: var(--western-gold-light); }
/* Responsive */
@media (max-width: 768px) {
nav { gap: 0.25rem; padding: 0.6rem 1rem; flex-wrap: wrap; }
nav a { font-size: 0.7rem; letter-spacing: 0.08em; padding: 0.3rem 0.5rem; }
.hero h1 { font-size: clamp(2.2rem, 12vw, 4rem); }
.card-grid, .features { grid-template-columns: 1fr; }
.wanted-poster { margin: 2rem 1rem; padding: 1.5rem 1rem; }
}
</style>
</head>
<body>
<!-- Navigation -->
<nav>
<a href="#home">Home</a>
<span class="nav-sep">✦</span>
<a href="#about">About</a>
<span class="nav-sep">✦</span>
<a href="#services">Services</a>
<span class="nav-sep">✦</span>
<a href="#gallery">Gallery</a>
<span class="nav-sep">✦</span>
<a href="#contact">Contact</a>
</nav>
<!-- Hero Section -->
<section class="hero" id="home">
<h1>The Frontier</h1>
<p class="tagline">Forged in dust, tempered by the open sky</p>
<hr class="hero-rule">
<div class="cta">
<a href="#services" class="btn">Explore the Trail</a>
<a href="#about" class="btn btn--outline" style="margin-left:1rem; color:var(--western-bone); border-color:var(--western-rawhide);">Our Story</a>
</div>
</section>
<!-- About Section -->
<section id="about">
<div class="container">
<div class="section-header">
<h2>Our Heritage</h2>
<hr class="double-rule">
<p>Built on grit, guided by the compass of honest craftsmanship</p>
</div>
<div class="testimonial">
<blockquote>
There was no trail before we rode through. Every mile was earned,
every sunset a reward for the day's labor. This is the spirit
we carry in everything we build.
</blockquote>
<cite>-- The Founders, est. 1887</cite>
</div>
<div class="rope-divider"></div>
</div>
</section>
<!-- Wanted Poster Section -->
<section>
<div class="container">
<div class="wanted-poster">
<h2>Wanted</h2>
<div class="reward-line">Dead or Alive</div>
<div class="amount">$5,000 Reward</div>
<p class="description">
For the capture of exceptional design -- rugged, authentic, and
unforgettable. Known to leave a lasting impression on all who
encounter it across these territories.
</p>
<div class="reward-line">Contact the Sheriff</div>
</div>
</div>
</section>
<!-- Services Section (Cards) -->
<section id="services">
<div class="container">
<div class="section-header">
<h2>Services</h2>
<hr class="double-rule">
<p>What we bring to the frontier</p>
</div>
<div class="card-grid">
<div class="card">
<h3 class="card-title">Trail Blazing</h3>
<p>We chart the course through uncharted territory, crafting brand identities and visual systems that stake your claim with authority and authenticity.</p>
<span class="card-badge">Branding</span>
</div>
<div class="card">
<h3 class="card-title">Homesteading</h3>
<p>Building your digital homestead from the ground up -- websites and applications constructed with the same care and permanence as a frontier settlement.</p>
<span class="card-badge">Development</span>
</div>
<div class="card">
<h3 class="card-title">Prospecting</h3>
<p>Mining for the gold in your data and market position. Our strategy work uncovers opportunities hidden beneath the surface and maps a route to claim them.</p>
<span class="card-badge">Strategy</span>
</div>
</div>
</div>
</section>
<!-- Dark Feature Section -->
<section class="dark-section" id="gallery">
<div class="container">
<div class="section-header">
<h2>Why the Frontier</h2>
<hr class="double-rule">
<p style="color: var(--western-rawhide);">The principles that guide our craft</p>
</div>
<div class="features">
<div class="feature-item">
<div class="feature-icon">★</div>
<div>
<h4>Built to Endure</h4>
<p>Like frontier architecture, our work is engineered for permanence. No flimsy frameworks -- just solid, lasting craft.</p>
</div>
</div>
<div class="feature-item">
<div class="feature-icon">★</div>
<div>
<h4>Honest Materials</h4>
<p>Authentic textures, real typography, and grounded color palettes. No artificial gloss -- just genuine, tactile design.</p>
</div>
</div>
<div class="feature-item">
<div class="feature-icon">★</div>
<div>
<h4>Clear Authority</h4>
<p>Strong typographic hierarchy and bold visual weight ensure your message commands attention across the landscape.</p>
</div>
</div>
<div class="feature-item">
<div class="feature-icon">★</div>
<div>
<h4>Frontier Spirit</h4>
<p>Independence, resourcefulness, and the courage to forge a path where none existed. Every project is an expedition.</p>
</div>
</div>
</div>
</div>
</section>
<!-- Call to Action -->
<section id="contact">
<div class="container">
<div class="section-header">
<h2>Ride With Us</h2>
<hr class="double-rule">
<p>Ready to stake your claim? Let us saddle up together.</p>
</div>
<div style="text-align: center;">
<a href="#" class="btn btn--wanted">Start Your Journey</a>
</div>
</div>
</section>
<!-- Footer -->
<footer>
<div class="footer-brand">The Frontier Co.</div>
<nav>
<a href="#home">Home</a>
<a href="#about">About</a>
<a href="#services">Services</a>
<a href="#gallery">Gallery</a>
<a href="#contact">Contact</a>
</nav>
<p>© 1887 -- Present. All rights reserved across these territories.</p>
</footer>
</body>
</html>
4px 4px 0) rather than soft diffused shadows reinforce the physical, printed, block-like quality of frontier design--western-dark-sienna on --western-parchment maintains at least a 4.5:1 contrast ratio for body textborder-image for rope borders: The repeating-linear-gradient approach creates convincing rope textures without image assets, keeping the design lightweight and resolution-independent