Neoclassicism is a design movement rooted in the revival of ancient Greek and Roman classical ideals, emerging in the mid-18th century as a reaction against the ornamental excess of Baroque and Rococo styles. Fueled by Enlightenment rationalism and the rediscovery of Pompeii and Herculaneum, it championed symmetry, balanced proportions, geometric clarity, and restrained ornamentation as expressions of order, reason, and civic virtue. The aesthetic dominated European architecture, furniture, and graphic arts from roughly 1750 through the 1830s, producing landmarks from the Pantheon in Paris to the United States Capitol. In web and UI design, Neoclassicism translates to rigidly symmetrical layouts, classical serif typography with high stroke contrast, column and pediment motifs, marble and stone textures, gold and ivory color palettes, and a pervasive sense of dignified restraint. Where Brutalism strips away all decoration and Maximalism piles it on, Neoclassical web design applies ornamentation sparingly and structurally – every flourish (a Greek key border, a laurel wreath divider, a fluted column sidebar) must serve the composition’s balance and hierarchy rather than exist for its own sake.
The Neoclassical color palette draws from the materials and patinas of Greco-Roman architecture: white marble, warm limestone, aged bronze, gilded surfaces, and the deep pigments found in Pompeian frescoes. Colors are muted and dignified, with metallic accents providing controlled moments of luxury.
| Swatch | Hex | Role / Usage |
|---|---|---|
#FAF6F0 |
Primary background – warm parchment white | |
#F2EDE4 |
Secondary background – aged ivory | |
#E8E0D4 |
Tertiary surface – warm limestone | |
#D4C9B8 |
Borders, dividers – sandstone | |
#B8A99A |
Muted text, captions – weathered stone | |
#8C7B6B |
Secondary text – aged bronze | |
#4A3C2E |
Primary text – dark walnut | |
#2C1E10 |
Display headings – near-black sepia | |
#C6A96C |
Primary accent – classical gold | |
#D4AF37 |
Metallic accent – polished gold | |
#1B3A4B |
Deep accent – Pompeian blue | |
#8B2332 |
Warm accent – Pompeian red | |
#4A6741 |
Organic accent – laurel green | |
#F5F0E8 |
Card surfaces – polished marble | |
#FFFFFF |
Pure white – sculptural highlights |
:root {
/* Marble and Stone Neutrals */
--neo-parchment: #faf6f0;
--neo-ivory: #f2ede4;
--neo-limestone: #e8e0d4;
--neo-sandstone: #d4c9b8;
--neo-weathered: #b8a99a;
--neo-bronze: #8c7b6b;
--neo-walnut: #4a3c2e;
--neo-sepia: #2c1e10;
/* Classical Accents */
--neo-gold: #c6a96c;
--neo-gold-bright: #d4af37;
--neo-blue: #1b3a4b;
--neo-red: #8b2332;
--neo-green: #4a6741;
/* Surface Colors */
--neo-marble: #f5f0e8;
--neo-white: #ffffff;
/* Functional Tokens */
--neo-bg: var(--neo-parchment);
--neo-bg-alt: var(--neo-ivory);
--neo-surface: var(--neo-marble);
--neo-text: var(--neo-walnut);
--neo-text-display: var(--neo-sepia);
--neo-text-muted: var(--neo-bronze);
--neo-border: var(--neo-sandstone);
--neo-border-strong: var(--neo-bronze);
--neo-accent: var(--neo-gold);
--neo-accent-hover: var(--neo-gold-bright);
--neo-link: var(--neo-blue);
--neo-link-hover: var(--neo-red);
}
Neoclassical typography favors transitional and Didone serif typefaces that emerged during the 18th and early 19th centuries. These faces are characterized by high stroke contrast (thick verticals, thin horizontals), refined serifs, and vertical stress axes – qualities that echo the precision of Roman inscriptional lettering. Display text is often set in all-caps with generous letter-spacing to evoke carved stone inscriptions.
| Font | Weight(s) | Usage | Link |
|---|---|---|---|
| Playfair Display | 400, 500, 700, 900 | Display headings, hero titles – high-contrast Didone elegance | fonts.google.com/specimen/Playfair+Display |
| Cormorant Garamond | 300, 400, 500, 600, 700 | Body text, subheadings – refined calligraphic serif | fonts.google.com/specimen/Cormorant+Garamond |
| Libre Baskerville | 400, 700 | Body text, editorial content – sturdy transitional serif | fonts.google.com/specimen/Libre+Baskerville |
| Cinzel | 400, 500, 600, 700, 800, 900 | All-caps display, inscriptions – Roman capital letterforms | fonts.google.com/specimen/Cinzel |
| Cinzel Decorative | 400, 700, 900 | Ornamental display, monograms – decorated Roman capitals | fonts.google.com/specimen/Cinzel+Decorative |
| EB Garamond | 400, 500, 600, 700 | Long-form body text – classic old-style for readability | fonts.google.com/specimen/EB+Garamond |
| Italiana | 400 | Elegant display, subtitles – Didone-inspired Italian letterforms | fonts.google.com/specimen/Italiana |
| GFS Didot | 400 | Display text, titles – authentic Didone typeface from Greek Font Society | fonts.google.com/specimen/GFS+Didot |
| Heading | Body | Vibe |
|---|---|---|
| Cinzel (700) | Cormorant Garamond (400) | Carved Roman inscription meets refined calligraphy – the quintessential neoclassical pairing |
| Playfair Display (700) | Libre Baskerville (400) | High-contrast Didone drama with sturdy transitional readability – editorial elegance |
| Cinzel Decorative (700) | EB Garamond (400) | Ornamental grandeur paired with the most readable classical serif – formal institutions |
| GFS Didot (400) | Cormorant Garamond (300) | Greek typographic heritage meets refined French calligraphy – art and cultural contexts |
| Italiana (400) | Libre Baskerville (400) | Italian Didone sophistication with English transitional stability – luxury and fashion |
@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;700;900&family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400;1,500&display=swap');
/* === Base Typography === */
body {
font-family: 'Cormorant Garamond', 'Georgia', 'Times New Roman', serif;
font-size: 18px;
line-height: 1.75;
color: var(--neo-text);
background-color: var(--neo-bg);
font-weight: 400;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
h1, h2, h3, h4, h5, h6 {
font-family: 'Cinzel', 'Georgia', serif;
font-weight: 700;
color: var(--neo-text-display);
line-height: 1.2;
margin: 0 0 0.75em 0;
}
h1 {
font-size: clamp(2.5rem, 5vw, 4.5rem);
letter-spacing: 0.08em;
text-transform: uppercase;
}
h2 {
font-size: clamp(1.75rem, 3.5vw, 3rem);
letter-spacing: 0.06em;
text-transform: uppercase;
}
h3 {
font-size: clamp(1.25rem, 2.5vw, 2rem);
letter-spacing: 0.04em;
}
h4 {
font-size: clamp(1.1rem, 2vw, 1.5rem);
font-weight: 500;
letter-spacing: 0.03em;
}
p {
margin-bottom: 1.25em;
max-width: 65ch;
}
a {
color: var(--neo-link);
text-decoration: none;
border-bottom: 1px solid transparent;
transition: border-color 0.3s ease, color 0.3s ease;
}
a:hover {
color: var(--neo-link-hover);
border-bottom-color: var(--neo-link-hover);
}
blockquote {
font-style: italic;
font-size: 1.15em;
border-left: 3px solid var(--neo-gold);
margin: 2em 0;
padding: 1em 1.5em;
color: var(--neo-text-muted);
}
.small-caps {
font-variant: small-caps;
letter-spacing: 0.05em;
}
.inscription {
font-family: 'Cinzel', serif;
text-transform: uppercase;
letter-spacing: 0.15em;
font-size: 0.85em;
}
A content card with subtle marble texture, refined borders, and classical proportions. The card conveys permanence and structure through restrained styling.
.neo-card {
background-color: var(--neo-surface);
border: 1px solid var(--neo-border);
padding: 2.5rem 2rem;
margin: 1.5rem 0;
text-align: center;
position: relative;
transition: box-shadow 0.3s ease, border-color 0.3s ease;
}
.neo-card::before {
content: '';
position: absolute;
top: 6px;
left: 6px;
right: 6px;
bottom: 6px;
border: 1px solid var(--neo-border);
pointer-events: none;
}
.neo-card:hover {
border-color: var(--neo-gold);
box-shadow: 0 4px 20px rgba(74, 60, 46, 0.08);
}
.neo-card h3 {
font-family: 'Cinzel', serif;
font-size: 1.25rem;
letter-spacing: 0.1em;
text-transform: uppercase;
margin-bottom: 1rem;
color: var(--neo-text-display);
}
.neo-card p {
font-family: 'Cormorant Garamond', serif;
font-size: 1rem;
line-height: 1.7;
color: var(--neo-text-muted);
margin: 0 auto;
max-width: 40ch;
}
Buttons with refined borders, gold accents, and uppercase inscriptional lettering. Hover states introduce a dignified color shift rather than aggressive visual changes.
.neo-button {
display: inline-block;
font-family: 'Cinzel', serif;
font-size: 0.8rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.2em;
padding: 0.875rem 2.5rem;
border: 1px solid var(--neo-gold);
background-color: transparent;
color: var(--neo-gold);
cursor: pointer;
text-decoration: none;
transition: all 0.3s ease;
position: relative;
}
.neo-button:hover {
background-color: var(--neo-gold);
color: var(--neo-white);
border-color: var(--neo-gold);
}
.neo-button:active {
background-color: var(--neo-gold-bright);
border-color: var(--neo-gold-bright);
}
.neo-button--filled {
background-color: var(--neo-gold);
color: var(--neo-white);
}
.neo-button--filled:hover {
background-color: var(--neo-gold-bright);
border-color: var(--neo-gold-bright);
color: var(--neo-white);
}
.neo-button--dark {
border-color: var(--neo-text-display);
color: var(--neo-text-display);
}
.neo-button--dark:hover {
background-color: var(--neo-text-display);
color: var(--neo-parchment);
}
A classically inspired navigation bar with centered links, subtle gold underline accents, and inscriptional typography. The structure mirrors the entablature of a classical building.
.neo-nav {
background-color: var(--neo-bg);
border-bottom: 1px solid var(--neo-border);
padding: 1.25rem 2rem;
text-align: center;
position: relative;
}
.neo-nav::after {
content: '';
display: block;
width: 60%;
height: 1px;
background: linear-gradient(to right, transparent, var(--neo-gold), transparent);
margin: 0 auto;
position: absolute;
bottom: -1px;
left: 20%;
}
.neo-nav ul {
list-style: none;
padding: 0;
margin: 0;
display: flex;
justify-content: center;
gap: 2.5rem;
}
.neo-nav a {
font-family: 'Cinzel', serif;
font-size: 0.75rem;
font-weight: 500;
text-transform: uppercase;
letter-spacing: 0.2em;
color: var(--neo-text);
text-decoration: none;
padding: 0.5rem 0;
border-bottom: 2px solid transparent;
transition: color 0.3s ease, border-color 0.3s ease;
}
.neo-nav a:hover {
color: var(--neo-gold);
border-bottom-color: var(--neo-gold);
}
.neo-nav a.active {
color: var(--neo-gold);
border-bottom-color: var(--neo-gold);
}
A stately hero section with centered text, classical typography hierarchy, and a subtle marble texture background. The layout evokes the facade of a temple with content centered beneath a metaphorical pediment.
.neo-hero {
min-height: 85vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
padding: 4rem 2rem;
background-color: var(--neo-bg);
background-image:
radial-gradient(ellipse at 20% 50%, rgba(198, 169, 108, 0.03) 0%, transparent 50%),
radial-gradient(ellipse at 80% 50%, rgba(198, 169, 108, 0.03) 0%, transparent 50%);
position: relative;
}
.neo-hero::before,
.neo-hero::after {
content: '';
display: block;
width: 120px;
height: 1px;
background-color: var(--neo-gold);
margin: 0 auto;
}
.neo-hero::before {
position: absolute;
top: 3rem;
left: 50%;
transform: translateX(-50%);
}
.neo-hero::after {
position: absolute;
bottom: 3rem;
left: 50%;
transform: translateX(-50%);
}
.neo-hero h1 {
font-family: 'Cinzel', serif;
font-size: clamp(2.5rem, 6vw, 5rem);
font-weight: 700;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--neo-text-display);
margin: 0;
line-height: 1.15;
}
.neo-hero .subtitle {
font-family: 'Cormorant Garamond', serif;
font-size: clamp(1rem, 2vw, 1.4rem);
font-style: italic;
color: var(--neo-text-muted);
margin-top: 1.25rem;
letter-spacing: 0.03em;
}
.neo-hero .divider-ornament {
display: flex;
align-items: center;
justify-content: center;
gap: 1rem;
margin: 2rem 0;
color: var(--neo-gold);
font-size: 1.2rem;
}
.neo-hero .divider-ornament::before,
.neo-hero .divider-ornament::after {
content: '';
width: 60px;
height: 1px;
background-color: var(--neo-gold);
}
A CSS-only Greek key (meander) border pattern using repeating linear gradients. This technique creates the iconic right-angled spiral motif without any images.
.greek-key-border {
--gk-color: var(--neo-gold);
--gk-bg: var(--neo-bg);
--gk-size: 20px;
--gk-weight: 3px;
position: relative;
padding: 2rem;
border: var(--gk-weight) solid var(--gk-color);
}
.greek-key-border::before {
content: '';
position: absolute;
top: calc(var(--gk-weight) + 4px);
left: calc(var(--gk-weight) + 4px);
right: calc(var(--gk-weight) + 4px);
bottom: calc(var(--gk-weight) + 4px);
border: 1px solid var(--gk-color);
pointer-events: none;
}
/* Simplified Greek Key top/bottom strip using SVG data URI */
.greek-key-top,
.greek-key-bottom {
width: 100%;
height: 20px;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='20'%3E%3Cpath d='M0,10 L10,10 L10,0 L30,0 L30,10 L40,10 L40,20 L20,20 L20,10 L0,10 Z' fill='none' stroke='%23c6a96c' stroke-width='1.5'/%3E%3C/svg%3E");
background-repeat: repeat-x;
background-size: 40px 20px;
}
.greek-key-bottom {
transform: rotate(180deg);
}
/* Alternative: simple stepped border using box-shadow */
.greek-key-simple {
border-top: 3px solid var(--neo-gold);
border-bottom: 3px solid var(--neo-gold);
box-shadow:
inset 0 6px 0 0 var(--neo-bg),
inset 0 9px 0 0 var(--neo-gold),
inset 0 -6px 0 0 var(--neo-bg),
inset 0 -9px 0 0 var(--neo-gold);
padding: 1.5rem 2rem;
}
A decorative column-inspired sidebar or content frame using CSS to evoke the fluted columns of classical architecture. The vertical grooves are created with repeating gradients.
.column-frame {
display: flex;
gap: 0;
}
.column-frame .pilaster {
width: 40px;
flex-shrink: 0;
background: repeating-linear-gradient(
to right,
var(--neo-limestone) 0px,
var(--neo-ivory) 2px,
var(--neo-limestone) 4px,
var(--neo-sandstone) 5px,
var(--neo-limestone) 6px,
var(--neo-ivory) 8px
);
position: relative;
}
/* Capital (top ornament) */
.column-frame .pilaster::before {
content: '';
position: absolute;
top: 0;
left: -4px;
right: -4px;
height: 24px;
background-color: var(--neo-limestone);
border-bottom: 2px solid var(--neo-sandstone);
border-top: 2px solid var(--neo-sandstone);
}
/* Base (bottom ornament) */
.column-frame .pilaster::after {
content: '';
position: absolute;
bottom: 0;
left: -4px;
right: -4px;
height: 16px;
background-color: var(--neo-limestone);
border-top: 2px solid var(--neo-sandstone);
}
.column-frame .content-area {
flex: 1;
padding: 2.5rem;
border-top: 2px solid var(--neo-sandstone);
border-bottom: 2px solid var(--neo-sandstone);
background-color: var(--neo-surface);
}
A decorative section divider using CSS and a unicode/SVG laurel wreath motif to separate content sections with classical elegance.
.laurel-divider {
display: flex;
align-items: center;
justify-content: center;
gap: 1.5rem;
margin: 3rem auto;
max-width: 500px;
color: var(--neo-gold);
}
.laurel-divider::before,
.laurel-divider::after {
content: '';
flex: 1;
height: 1px;
background: linear-gradient(to var(--dir, right), var(--neo-gold), transparent);
}
.laurel-divider::after {
--dir: left;
}
.laurel-divider .ornament {
font-size: 1.5rem;
line-height: 1;
opacity: 0.8;
}
/* Variant with double lines */
.laurel-divider--double::before,
.laurel-divider--double::after {
height: 0;
border-top: 1px solid var(--neo-gold);
border-bottom: 1px solid var(--neo-gold);
padding-top: 3px;
background: none;
}
/* Variant with diamond ornament */
.laurel-divider--diamond .ornament {
width: 10px;
height: 10px;
background-color: var(--neo-gold);
transform: rotate(45deg);
font-size: 0;
}
/* Star ornament variant */
.laurel-divider--star .ornament::before {
content: '✦';
}
A pure-CSS marble texture using layered radial and linear gradients to simulate the veined appearance of classical marble without external images.
.marble-surface {
background-color: #f5f0e8;
background-image:
/* Primary veining */
radial-gradient(ellipse at 15% 25%, rgba(180, 170, 155, 0.15) 0%, transparent 50%),
radial-gradient(ellipse at 75% 60%, rgba(180, 170, 155, 0.12) 0%, transparent 45%),
radial-gradient(ellipse at 45% 80%, rgba(160, 150, 135, 0.1) 0%, transparent 40%),
/* Secondary veining */
linear-gradient(135deg, transparent 20%, rgba(212, 201, 184, 0.08) 25%, transparent 30%),
linear-gradient(225deg, transparent 40%, rgba(212, 201, 184, 0.06) 45%, transparent 50%),
linear-gradient(315deg, transparent 60%, rgba(212, 201, 184, 0.08) 65%, transparent 70%),
/* Subtle grain */
repeating-linear-gradient(
90deg,
transparent,
transparent 2px,
rgba(200, 190, 175, 0.02) 2px,
rgba(200, 190, 175, 0.02) 4px
);
}
/* Darker marble variant for contrast sections */
.marble-surface--dark {
background-color: var(--neo-text-display);
background-image:
radial-gradient(ellipse at 20% 30%, rgba(255, 255, 255, 0.03) 0%, transparent 50%),
radial-gradient(ellipse at 70% 70%, rgba(255, 255, 255, 0.02) 0%, transparent 45%),
linear-gradient(135deg, transparent 30%, rgba(255, 255, 255, 0.02) 35%, transparent 40%);
color: var(--neo-ivory);
}
| Aesthetic | Relationship |
|---|---|
| Art Deco | Shares geometric ornament and gold accents but pushes toward Modernist abstraction with zigzag patterns, sunburst motifs, and streamlined geometry that Neoclassicism would consider excessive |
| Light Academia | Draws from similar classical and scholarly visual language – warm neutrals, serif typography, parchment textures – but applies them with a softer, more romantic and nostalgic sensibility |
| Editorial Magazine Layout | Shares the emphasis on typographic hierarchy, structured grids, and restrained elegance, though Editorial design allows more asymmetry and photographic content |
| Material Design | Both pursue systematic order and consistent spatial rules, but Material Design’s geometric sans-serifs and flat color system are distinctly Modernist rather than classical |
| Minimalism | Shares the principle of restraint and whitespace, but Minimalism strips away all ornament while Neoclassicism retains deliberate, structural decoration |
| Wes Anderson | Both use symmetrical composition and warm muted palettes, but Wes Anderson applies these with whimsical irony and pastel eccentricity foreign to Neoclassical gravity |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Neoclassicism Design Template</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;700;900&family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400;1,500&display=swap" rel="stylesheet">
<style>
/* --- Custom Properties --- */
:root {
--neo-parchment: #faf6f0;
--neo-ivory: #f2ede4;
--neo-limestone: #e8e0d4;
--neo-sandstone: #d4c9b8;
--neo-weathered: #b8a99a;
--neo-bronze: #8c7b6b;
--neo-walnut: #4a3c2e;
--neo-sepia: #2c1e10;
--neo-gold: #c6a96c;
--neo-gold-bright: #d4af37;
--neo-blue: #1b3a4b;
--neo-red: #8b2332;
--neo-green: #4a6741;
--neo-marble: #f5f0e8;
--neo-white: #ffffff;
--neo-bg: var(--neo-parchment);
--neo-bg-alt: var(--neo-ivory);
--neo-surface: var(--neo-marble);
--neo-text: var(--neo-walnut);
--neo-text-display: var(--neo-sepia);
--neo-text-muted: var(--neo-bronze);
--neo-border: var(--neo-sandstone);
--neo-accent: var(--neo-gold);
}
/* --- Reset & Base --- */
*, *::before, *::after {
box-sizing: border-box;
margin: 0;
padding: 0;
}
html {
scroll-behavior: smooth;
}
body {
font-family: 'Cormorant Garamond', 'Georgia', 'Times New Roman', serif;
font-size: 18px;
line-height: 1.75;
color: var(--neo-text);
background-color: var(--neo-bg);
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
/* --- Typography --- */
h1, h2, h3, h4 {
font-family: 'Cinzel', 'Georgia', serif;
font-weight: 700;
color: var(--neo-text-display);
line-height: 1.2;
}
h1 {
font-size: clamp(2.5rem, 6vw, 5rem);
letter-spacing: 0.12em;
text-transform: uppercase;
}
h2 {
font-size: clamp(1.5rem, 3.5vw, 2.5rem);
letter-spacing: 0.08em;
text-transform: uppercase;
}
h3 {
font-size: clamp(1.1rem, 2vw, 1.5rem);
letter-spacing: 0.06em;
text-transform: uppercase;
}
p {
max-width: 65ch;
margin-bottom: 1.25em;
}
a {
color: var(--neo-blue);
text-decoration: none;
border-bottom: 1px solid transparent;
transition: color 0.3s ease, border-color 0.3s ease;
}
a:hover {
color: var(--neo-red);
border-bottom-color: var(--neo-red);
}
img {
max-width: 100%;
height: auto;
}
/* --- Navigation --- */
.nav {
background-color: var(--neo-bg);
border-bottom: 1px solid var(--neo-border);
padding: 1.25rem 2rem;
text-align: center;
position: sticky;
top: 0;
z-index: 100;
}
.nav::after {
content: '';
display: block;
width: 50%;
height: 1px;
background: linear-gradient(to right, transparent, var(--neo-gold), transparent);
margin: 0 auto;
position: absolute;
bottom: -1px;
left: 25%;
}
.nav ul {
list-style: none;
display: flex;
justify-content: center;
flex-wrap: wrap;
gap: 2rem;
}
.nav a {
font-family: 'Cinzel', serif;
font-size: 0.7rem;
font-weight: 500;
text-transform: uppercase;
letter-spacing: 0.2em;
color: var(--neo-text);
padding: 0.5rem 0;
border-bottom: 2px solid transparent;
}
.nav a:hover,
.nav a.active {
color: var(--neo-gold);
border-bottom-color: var(--neo-gold);
}
/* --- Hero --- */
.hero {
min-height: 85vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
padding: 5rem 2rem;
position: relative;
background-image:
radial-gradient(ellipse at 20% 50%, rgba(198, 169, 108, 0.03) 0%, transparent 50%),
radial-gradient(ellipse at 80% 50%, rgba(198, 169, 108, 0.03) 0%, transparent 50%);
}
.hero h1 {
margin: 0;
}
.hero .subtitle {
font-family: 'Cormorant Garamond', serif;
font-size: clamp(1rem, 2vw, 1.35rem);
font-style: italic;
color: var(--neo-text-muted);
margin-top: 1rem;
letter-spacing: 0.02em;
}
.hero .btn-row {
margin-top: 2.5rem;
display: flex;
gap: 1.25rem;
flex-wrap: wrap;
justify-content: center;
}
/* --- Ornamental Divider --- */
.ornament-divider {
display: flex;
align-items: center;
justify-content: center;
gap: 1.25rem;
margin: 2.5rem auto;
max-width: 400px;
color: var(--neo-gold);
}
.ornament-divider::before,
.ornament-divider::after {
content: '';
flex: 1;
height: 1px;
background: linear-gradient(to var(--dir, right), var(--neo-gold), transparent);
}
.ornament-divider::after {
--dir: left;
}
.ornament-divider span {
font-size: 1.25rem;
line-height: 1;
}
/* --- Greek Key Strip --- */
.greek-key-strip {
width: 100%;
height: 20px;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='20' viewBox='0 0 40 20'%3E%3Crect x='1' y='1' width='18' height='8' fill='none' stroke='%23c6a96c' stroke-width='1.2'/%3E%3Crect x='21' y='11' width='18' height='8' fill='none' stroke='%23c6a96c' stroke-width='1.2'/%3E%3Cline x1='10' y1='9' x2='10' y2='20' stroke='%23c6a96c' stroke-width='1.2'/%3E%3Cline x1='30' y1='0' x2='30' y2='11' stroke='%23c6a96c' stroke-width='1.2'/%3E%3C/svg%3E");
background-repeat: repeat-x;
background-size: 40px 20px;
margin: 0 auto;
}
/* --- Buttons --- */
.btn {
display: inline-block;
font-family: 'Cinzel', serif;
font-size: 0.75rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.2em;
padding: 0.875rem 2.25rem;
border: 1px solid var(--neo-gold);
background-color: transparent;
color: var(--neo-gold);
cursor: pointer;
text-decoration: none;
transition: all 0.3s ease;
}
.btn:hover {
background-color: var(--neo-gold);
color: var(--neo-white);
border-bottom-color: var(--neo-gold);
}
.btn--filled {
background-color: var(--neo-gold);
color: var(--neo-white);
}
.btn--filled:hover {
background-color: var(--neo-gold-bright);
border-color: var(--neo-gold-bright);
color: var(--neo-white);
}
/* --- Section Container --- */
.section {
padding: 5rem 2rem;
max-width: 1100px;
margin: 0 auto;
text-align: center;
}
.section h2 {
margin-bottom: 0.5rem;
}
.section .section-subtitle {
font-style: italic;
color: var(--neo-text-muted);
margin-bottom: 3rem;
font-size: 1.05rem;
}
.section p {
margin-left: auto;
margin-right: auto;
}
/* --- Card Grid --- */
.card-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 2rem;
margin-top: 2rem;
}
.card {
background-color: var(--neo-surface);
border: 1px solid var(--neo-border);
padding: 2.5rem 2rem;
text-align: center;
position: relative;
transition: box-shadow 0.3s ease, border-color 0.3s ease;
}
.card::before {
content: '';
position: absolute;
top: 6px;
left: 6px;
right: 6px;
bottom: 6px;
border: 1px solid var(--neo-border);
pointer-events: none;
transition: border-color 0.3s ease;
}
.card:hover {
border-color: var(--neo-gold);
box-shadow: 0 4px 24px rgba(74, 60, 46, 0.08);
}
.card:hover::before {
border-color: var(--neo-gold);
}
.card .card-icon {
font-size: 2rem;
color: var(--neo-gold);
margin-bottom: 1.25rem;
display: block;
}
.card h3 {
margin-bottom: 1rem;
}
.card p {
font-size: 0.95rem;
color: var(--neo-text-muted);
line-height: 1.7;
margin: 0 auto;
}
/* --- Feature Section with Column Frame --- */
.column-section {
background-color: var(--neo-bg-alt);
border-top: 1px solid var(--neo-border);
border-bottom: 1px solid var(--neo-border);
}
.column-frame {
display: flex;
max-width: 1100px;
margin: 0 auto;
min-height: 400px;
}
.pilaster {
width: 36px;
flex-shrink: 0;
background: repeating-linear-gradient(
to right,
var(--neo-limestone) 0px,
var(--neo-ivory) 2px,
var(--neo-limestone) 4px,
var(--neo-sandstone) 5px,
var(--neo-limestone) 6px,
var(--neo-ivory) 8px
);
position: relative;
}
.pilaster::before {
content: '';
position: absolute;
top: 0;
left: -3px;
right: -3px;
height: 20px;
background-color: var(--neo-limestone);
border-bottom: 2px solid var(--neo-sandstone);
border-top: 2px solid var(--neo-sandstone);
}
.pilaster::after {
content: '';
position: absolute;
bottom: 0;
left: -3px;
right: -3px;
height: 14px;
background-color: var(--neo-limestone);
border-top: 2px solid var(--neo-sandstone);
}
.column-content {
flex: 1;
padding: 4rem 3.5rem;
display: flex;
flex-direction: column;
justify-content: center;
text-align: center;
}
.column-content blockquote {
font-style: italic;
font-size: 1.3rem;
line-height: 1.8;
color: var(--neo-text-muted);
border: none;
padding: 0;
margin: 1.5rem auto;
max-width: 55ch;
}
.column-content .attribution {
font-family: 'Cinzel', serif;
font-size: 0.8rem;
letter-spacing: 0.15em;
text-transform: uppercase;
color: var(--neo-gold);
margin-top: 0.75rem;
}
/* --- Marble Band --- */
.marble-band {
padding: 5rem 2rem;
text-align: center;
background-color: var(--neo-marble);
background-image:
radial-gradient(ellipse at 15% 25%, rgba(180, 170, 155, 0.12) 0%, transparent 50%),
radial-gradient(ellipse at 75% 60%, rgba(180, 170, 155, 0.1) 0%, transparent 45%),
radial-gradient(ellipse at 50% 80%, rgba(160, 150, 135, 0.08) 0%, transparent 40%),
linear-gradient(135deg, transparent 20%, rgba(212, 201, 184, 0.06) 25%, transparent 30%),
linear-gradient(225deg, transparent 40%, rgba(212, 201, 184, 0.05) 45%, transparent 50%);
}
.marble-band h2 {
margin-bottom: 1rem;
}
.marble-band p {
margin-left: auto;
margin-right: auto;
color: var(--neo-text-muted);
}
.stats-row {
display: flex;
justify-content: center;
gap: 4rem;
margin-top: 3rem;
flex-wrap: wrap;
}
.stat {
text-align: center;
}
.stat .stat-number {
font-family: 'Cinzel', serif;
font-size: clamp(2rem, 4vw, 3.5rem);
font-weight: 700;
color: var(--neo-gold);
display: block;
line-height: 1.1;
}
.stat .stat-label {
font-family: 'Cinzel', serif;
font-size: 0.65rem;
text-transform: uppercase;
letter-spacing: 0.2em;
color: var(--neo-text-muted);
margin-top: 0.5rem;
display: block;
}
/* --- Dark Contrast Section --- */
.dark-section {
background-color: var(--neo-sepia);
background-image:
radial-gradient(ellipse at 20% 30%, rgba(255, 255, 255, 0.02) 0%, transparent 50%),
radial-gradient(ellipse at 70% 70%, rgba(255, 255, 255, 0.015) 0%, transparent 45%);
color: var(--neo-ivory);
padding: 5rem 2rem;
text-align: center;
}
.dark-section h2 {
color: var(--neo-ivory);
}
.dark-section p {
color: var(--neo-weathered);
margin-left: auto;
margin-right: auto;
}
.dark-section .ornament-divider {
color: var(--neo-gold);
}
.dark-section .ornament-divider::before {
background: linear-gradient(to right, var(--neo-gold), transparent);
}
.dark-section .ornament-divider::after {
background: linear-gradient(to left, var(--neo-gold), transparent);
}
.dark-section .btn {
border-color: var(--neo-gold);
color: var(--neo-gold);
}
.dark-section .btn:hover {
background-color: var(--neo-gold);
color: var(--neo-sepia);
}
/* --- Footer --- */
.footer {
background-color: var(--neo-bg-alt);
border-top: 1px solid var(--neo-border);
padding: 3rem 2rem;
text-align: center;
}
.footer .footer-brand {
font-family: 'Cinzel', serif;
font-size: 1.1rem;
font-weight: 700;
letter-spacing: 0.15em;
text-transform: uppercase;
color: var(--neo-text-display);
margin-bottom: 1rem;
}
.footer p {
font-size: 0.85rem;
color: var(--neo-text-muted);
margin: 0.5rem auto;
}
.footer-links {
list-style: none;
display: flex;
justify-content: center;
gap: 2rem;
margin-top: 1.5rem;
flex-wrap: wrap;
}
.footer-links a {
font-family: 'Cinzel', serif;
font-size: 0.65rem;
font-weight: 500;
text-transform: uppercase;
letter-spacing: 0.15em;
color: var(--neo-text-muted);
}
.footer-links a:hover {
color: var(--neo-gold);
border-bottom-color: var(--neo-gold);
}
.footer .copyright {
margin-top: 2rem;
font-size: 0.75rem;
color: var(--neo-weathered);
}
/* --- Responsive --- */
@media (max-width: 768px) {
.hero {
min-height: 70vh;
padding: 4rem 1.5rem;
}
.section {
padding: 3.5rem 1.5rem;
}
.nav ul {
gap: 1rem;
}
.nav a {
font-size: 0.6rem;
letter-spacing: 0.12em;
}
.card-grid {
grid-template-columns: 1fr;
}
.pilaster {
display: none;
}
.column-content {
padding: 3rem 1.5rem;
}
.stats-row {
gap: 2rem;
}
.hero .btn-row {
flex-direction: column;
align-items: center;
}
}
</style>
</head>
<body>
<!-- NAVIGATION -->
<nav class="nav">
<ul>
<li><a href="#about" class="active">About</a></li>
<li><a href="#virtues">Virtues</a></li>
<li><a href="#philosophy">Philosophy</a></li>
<li><a href="#legacy">Legacy</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
</nav>
<!-- HERO -->
<section class="hero" id="about">
<div class="ornament-divider">
<span>☙</span>
</div>
<h1>Ars Longa<br>Vita Brevis</h1>
<p class="subtitle">A celebration of order, proportion, and the enduring ideals of classical design</p>
<div class="btn-row">
<a href="#virtues" class="btn">Explore Virtues</a>
<a href="#legacy" class="btn btn--filled">View Legacy</a>
</div>
<div class="ornament-divider" style="margin-top: 3rem;">
<span>☙</span>
</div>
</section>
<!-- GREEK KEY STRIP -->
<div class="greek-key-strip"></div>
<!-- VIRTUES (CARD GRID) -->
<section class="section" id="virtues">
<h2>Classical Virtues</h2>
<p class="section-subtitle">The pillars upon which enduring design is built</p>
<div class="card-grid">
<div class="card">
<span class="card-icon">⚖</span>
<h3>Symmetry</h3>
<p>Balance in all things. Every element finds its mirror, creating compositions of serene equilibrium and visual harmony.</p>
</div>
<div class="card">
<span class="card-icon">⍑</span>
<h3>Proportion</h3>
<p>The golden ratio governs scale and spacing, ensuring that each part relates harmoniously to the whole.</p>
</div>
<div class="card">
<span class="card-icon">✶</span>
<h3>Restraint</h3>
<p>Every ornament must justify its presence. Decoration serves structure, never overwhelming the composition it adorns.</p>
</div>
</div>
</section>
<!-- GREEK KEY STRIP -->
<div class="greek-key-strip"></div>
<!-- PHILOSOPHY (COLUMN FRAME SECTION) -->
<section class="column-section" id="philosophy">
<div class="column-frame">
<div class="pilaster"></div>
<div class="column-content">
<h2>Philosophy</h2>
<div class="ornament-divider">
<span>✻</span>
</div>
<blockquote>
True elegance is not the accumulation of ornament, but the
perfection of proportion. In restraint, we discover refinement.
In order, we find beauty that endures beyond the fashions of any age.
</blockquote>
<p class="attribution">On Classical Design</p>
</div>
<div class="pilaster"></div>
</div>
</section>
<!-- MARBLE BAND (STATISTICS) -->
<section class="marble-band" id="legacy">
<h2>Enduring Legacy</h2>
<p class="section-subtitle" style="font-style: italic; color: var(--neo-text-muted);">
Neoclassical design has shaped the built world for centuries
</p>
<div class="stats-row">
<div class="stat">
<span class="stat-number">1750</span>
<span class="stat-label">Year of Origin</span>
</div>
<div class="stat">
<span class="stat-number">III</span>
<span class="stat-label">Classical Orders</span>
</div>
<div class="stat">
<span class="stat-number">1.618</span>
<span class="stat-label">Golden Ratio</span>
</div>
<div class="stat">
<span class="stat-number">∞</span>
<span class="stat-label">Timelessness</span>
</div>
</div>
</section>
<!-- GREEK KEY STRIP -->
<div class="greek-key-strip"></div>
<!-- DARK CONTRAST SECTION (CTA) -->
<section class="dark-section" id="contact">
<h2>Begin Your Journey</h2>
<div class="ornament-divider">
<span>☙</span>
</div>
<p>
Embrace the clarity of classical design. Let symmetry guide your compositions,
proportion govern your spaces, and restraint refine your craft.
</p>
<div style="margin-top: 2rem;">
<a href="#about" class="btn">Return to the Beginning</a>
</div>
</section>
<!-- FOOTER -->
<footer class="footer">
<div class="footer-brand">Neoclassicism</div>
<p>Order, proportion, and enduring elegance in design.</p>
<ul class="footer-links">
<li><a href="#about">About</a></li>
<li><a href="#virtues">Virtues</a></li>
<li><a href="#philosophy">Philosophy</a></li>
<li><a href="#legacy">Legacy</a></li>
</ul>
<p class="copyright">© MMXXVI · Designed in the classical tradition</p>
</footer>
</body>
</html>