website_designs

Lush Velvet Design Reference

Overview

Lush Velvet is a digital design aesthetic rooted in the sensory richness of crushed and plush velvet fabric. It translates the tactile depth, sumptuous weight, and light-absorbing warmth of velvet into screen-based experiences through deep jewel-tone color palettes, layered gradients that mimic pile direction, soft noise textures, and generous shadow work. The result is an interface that feels physically present – surfaces appear to have genuine material depth, colors shift subtly as if responding to touch, and every element conveys an unmistakable sense of curated luxury.

The aesthetic draws from interior design traditions where velvet has long signaled opulence: Victorian parlors draped in burgundy, Art Deco lounges upholstered in emerald, mid-century modern apartments accented with sapphire cushions, and contemporary luxury branding that leverages the fabric’s association with exclusivity and comfort. On the web, Lush Velvet occupies a space between dark-mode elegance and maximalist warmth. Unlike stark minimalism, it embraces richness without clutter. Unlike Baroque or Rococo excess, it maintains restraint through a carefully limited palette and deliberate negative space.

Key to the Lush Velvet identity is the interplay between matte and sheen. Velvet fabric’s defining characteristic is its pile – short, dense fibers that absorb light at certain angles and reflect it at others, producing that signature depth-shifting appearance. In CSS and UI terms, this translates to subtle radial gradients that simulate directional lighting, fine-grain noise overlays that prevent flat digital sameness, and carefully crafted box-shadows that suggest soft, pillowed depth rather than hard geometric edges. Colors are never flat; they breathe.

The emotional register of Lush Velvet is intimate, confident, and sensuous. It suits brands and projects that want to communicate quality, exclusivity, warmth, and sophistication – luxury fashion, fine dining, premium subscriptions, boutique hotels, curated collections, high-end portfolios, and artisanal product showcases. It rewards slow browsing, inviting the user to linger rather than skim, making it ideal for experiences where atmosphere and mood matter as much as information.


Visual Characteristics

Core Design Traits

Design Principles


Color Palette

The Lush Velvet palette centers on deeply saturated jewel tones drawn from precious stones and rich dye traditions. Every color should feel as though it has been steeped and concentrated – never washed out, never neon. Metallic accents in gold and champagne provide luminous contrast against the absorptive velvet grounds. Backgrounds favor warm near-blacks that read as very deep burgundy or plum rather than true neutral black.

Swatch Hex Role / Usage
#1A0A12 #1A0A12 Primary background – deep velvet noir with plum undertone
#2D1225 #2D1225 Secondary background – elevated surface panels and cards
#4A1942 #4A1942 Tertiary surface – modal overlays, active states
#6B1D4A #6B1D4A Plum accent – borders, dividers, subtle highlights
#8B1A3A #8B1A3A Ruby – primary call-to-action, key interactive elements
#6E2C6B #6E2C6B Amethyst – secondary accent, tags, badges
#1B4D3E #1B4D3E Deep emerald – success states, contrast accent
#0F3460 #0F3460 Sapphire – informational accent, link color alternative
#D4AF37 #D4AF37 Gold – primary metallic accent, headings, ornamental borders
#C9A96E #C9A96E Champagne – secondary metallic, muted gold for body accents
#B76E79 #B76E79 Rose gold – warm metallic highlights, decorative detail
#F5E6D3 #F5E6D3 Warm cream – primary text on dark backgrounds
#E8D5C4 #E8D5C4 Muted ivory – secondary text, descriptions, captions
#A89080 #A89080 Dusty taupe – tertiary text, metadata, timestamps
#3D2B1F #3D2B1F Bistre – dark warm neutral for subtle backgrounds and borders

CSS Custom Properties

:root {
  /* Velvet backgrounds */
  --velvet-noir: #1A0A12;
  --velvet-deep: #2D1225;
  --velvet-plum: #4A1942;
  --velvet-mauve: #6B1D4A;

  /* Jewel tones */
  --velvet-ruby: #8B1A3A;
  --velvet-amethyst: #6E2C6B;
  --velvet-emerald: #1B4D3E;
  --velvet-sapphire: #0F3460;

  /* Metallics */
  --velvet-gold: #D4AF37;
  --velvet-champagne: #C9A96E;
  --velvet-rose-gold: #B76E79;

  /* Text tones */
  --velvet-cream: #F5E6D3;
  --velvet-ivory: #E8D5C4;
  --velvet-taupe: #A89080;
  --velvet-bistre: #3D2B1F;

  /* Functional aliases */
  --bg-primary: var(--velvet-noir);
  --bg-surface: var(--velvet-deep);
  --bg-elevated: var(--velvet-plum);
  --text-primary: var(--velvet-cream);
  --text-secondary: var(--velvet-ivory);
  --text-muted: var(--velvet-taupe);
  --accent-primary: var(--velvet-gold);
  --accent-action: var(--velvet-ruby);
  --border-subtle: rgba(212, 175, 55, 0.15);
  --border-accent: rgba(212, 175, 55, 0.4);

  /* Shadows */
  --shadow-soft: 0 8px 32px rgba(26, 10, 18, 0.6);
  --shadow-pillowed: 0 4px 20px rgba(26, 10, 18, 0.4), 0 1px 4px rgba(26, 10, 18, 0.3);
  --shadow-glow: 0 0 30px rgba(139, 26, 58, 0.2);
}

Typography

Lush Velvet typography should feel refined, confident, and warm. Display headings use elegant high-contrast serifs with sweeping curves and generous proportions – typefaces that suggest calligraphic heritage and old-world craftsmanship. Body text uses clean, readable serifs or refined sans-serifs with light weight and generous letter-spacing to maintain an airy, luxurious reading experience. Avoid condensed, geometric, or overly modern typefaces; the goal is timeless sophistication with a touch of sensuality.

Font Category Weight Range Character
Playfair Display Serif, Display 400–900 High-contrast transitional serif with elegant thick-thin stroke variation
Cormorant Garamond Serif, Display 300–700 Refined Garamond revival with graceful curves and classical proportions
Bodoni Moda Serif, Display 400–900 Dramatic modern serif with extreme stroke contrast and sharp serifs
Literata Serif, Text 200–900 Contemporary serif optimized for screen reading with warm character
Lora Serif, Text 400–700 Calligraphy-rooted serif with moderate contrast, excellent for body text
Raleway Sans-serif 100–900 Elegant thin-weight sans-serif for secondary text and UI labels
Jost Sans-serif 100–900 Refined geometric sans with optical balance and luxury feel

Font Pairing Recommendations

Heading Font Body Font Mood
Playfair Display Raleway (300) Classic luxury, high contrast between display and text
Cormorant Garamond Jost (300) Old-world elegance meets modern clarity
Bodoni Moda Literata (300) High drama headings with comfortable extended reading
Playfair Display Lora (400) All-serif warmth, literary and intimate
Cormorant Garamond Raleway (300) Graceful traditional headings with clean modern body

Typography CSS Example

/* Import fonts */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400&family=Raleway:wght@300;400;500&display=swap');

/* Headings */
h1, h2, h3 {
  font-family: 'Playfair Display', Georgia, 'Times New Roman', serif;
  color: var(--velvet-gold);
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 1.2;
}

h1 {
  font-size: clamp(2.5rem, 6vw, 5rem);
  font-weight: 700;
  letter-spacing: -0.01em;
}

h2 {
  font-size: clamp(1.8rem, 4vw, 3rem);
  font-weight: 600;
}

h3 {
  font-size: clamp(1.2rem, 2.5vw, 1.8rem);
  font-weight: 400;
  font-style: italic;
  color: var(--velvet-champagne);
}

/* Display / Hero text */
.velvet-display {
  font-family: 'Playfair Display', serif;
  font-size: clamp(3rem, 8vw, 7rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.05;
  background: linear-gradient(135deg, var(--velvet-gold), var(--velvet-champagne), var(--velvet-gold));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Body text */
body {
  font-family: 'Raleway', 'Helvetica Neue', Arial, sans-serif;
  font-weight: 300;
  font-size: 1.05rem;
  letter-spacing: 0.03em;
  line-height: 1.8;
  color: var(--velvet-cream);
}

/* Accent / label text */
.velvet-label {
  font-family: 'Raleway', sans-serif;
  font-weight: 500;
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--velvet-champagne);
}

Layout Principles


CSS / Design Techniques

Velvet Texture Background

/* Base velvet texture using noise overlay and radial gradient */
.velvet-bg {
  background-color: var(--velvet-noir);
  background-image:
    radial-gradient(
      ellipse at 30% 20%,
      rgba(75, 25, 66, 0.3) 0%,
      transparent 60%
    ),
    radial-gradient(
      ellipse at 70% 80%,
      rgba(45, 18, 37, 0.4) 0%,
      transparent 50%
    );
  position: relative;
}

/* Noise overlay for fabric grain effect */
.velvet-bg::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E");
  background-repeat: repeat;
  background-size: 256px 256px;
  pointer-events: none;
  z-index: 1;
}

.velvet-bg > * {
  position: relative;
  z-index: 2;
}

Card Component

.velvet-card {
  background: linear-gradient(
    145deg,
    rgba(45, 18, 37, 0.9) 0%,
    rgba(45, 18, 37, 0.7) 100%
  );
  border: 1px solid var(--border-subtle);
  border-radius: 12px;
  padding: 2.5rem;
  box-shadow: var(--shadow-pillowed);
  backdrop-filter: blur(10px);
  transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  position: relative;
  overflow: hidden;
}

/* Subtle directional light sheen */
.velvet-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    var(--velvet-champagne) 20%,
    var(--velvet-gold) 50%,
    var(--velvet-champagne) 80%,
    transparent 100%
  );
  opacity: 0.4;
}

.velvet-card:hover {
  transform: translateY(-4px);
  box-shadow:
    var(--shadow-pillowed),
    var(--shadow-glow);
  border-color: var(--border-accent);
}

.velvet-card h3 {
  color: var(--velvet-gold);
  margin-bottom: 1rem;
}

.velvet-card p {
  color: var(--velvet-ivory);
  line-height: 1.8;
}

Button Styles

/* Primary button -- ruby velvet */
.velvet-btn {
  font-family: 'Raleway', sans-serif;
  font-weight: 500;
  font-size: 0.85rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--velvet-cream);
  background: linear-gradient(
    135deg,
    var(--velvet-ruby) 0%,
    #A02050 50%,
    var(--velvet-ruby) 100%
  );
  border: 1px solid rgba(212, 175, 55, 0.3);
  border-radius: 6px;
  padding: 1rem 2.5rem;
  cursor: pointer;
  transition: all 0.35s ease;
  position: relative;
  overflow: hidden;
}

.velvet-btn::after {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(212, 175, 55, 0.1),
    transparent
  );
  transition: left 0.5s ease;
}

.velvet-btn:hover {
  background: linear-gradient(
    135deg,
    #A02050 0%,
    #B82860 50%,
    #A02050 100%
  );
  border-color: var(--velvet-gold);
  box-shadow: 0 4px 20px rgba(139, 26, 58, 0.4);
  transform: translateY(-2px);
}

.velvet-btn:hover::after {
  left: 100%;
}

/* Secondary button -- outlined gold */
.velvet-btn-secondary {
  font-family: 'Raleway', sans-serif;
  font-weight: 500;
  font-size: 0.85rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--velvet-gold);
  background: transparent;
  border: 1px solid var(--velvet-gold);
  border-radius: 6px;
  padding: 1rem 2.5rem;
  cursor: pointer;
  transition: all 0.35s ease;
}

.velvet-btn-secondary:hover {
  background: rgba(212, 175, 55, 0.1);
  box-shadow: 0 0 20px rgba(212, 175, 55, 0.15);
}
.velvet-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.5rem 3rem;
  background: linear-gradient(
    180deg,
    rgba(26, 10, 18, 0.95) 0%,
    rgba(26, 10, 18, 0.85) 100%
  );
  backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--border-subtle);
  position: sticky;
  top: 0;
  z-index: 100;
}

.velvet-nav-brand {
  font-family: 'Playfair Display', serif;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--velvet-gold);
  text-decoration: none;
  letter-spacing: 0.05em;
}

.velvet-nav-links {
  display: flex;
  gap: 2.5rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.velvet-nav-links a {
  font-family: 'Raleway', sans-serif;
  font-weight: 400;
  font-size: 0.85rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--velvet-ivory);
  text-decoration: none;
  padding: 0.5rem 0;
  position: relative;
  transition: color 0.3s ease;
}

.velvet-nav-links a::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 0;
  height: 1px;
  background: var(--velvet-gold);
  transition: all 0.3s ease;
  transform: translateX(-50%);
}

.velvet-nav-links a:hover {
  color: var(--velvet-gold);
}

.velvet-nav-links a:hover::after {
  width: 100%;
}

Hero Section

.velvet-hero {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 4rem 2rem;
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(
      ellipse at 50% 30%,
      rgba(139, 26, 58, 0.2) 0%,
      transparent 50%
    ),
    radial-gradient(
      ellipse at 20% 80%,
      rgba(110, 44, 107, 0.15) 0%,
      transparent 40%
    ),
    radial-gradient(
      ellipse at 80% 70%,
      rgba(27, 77, 62, 0.1) 0%,
      transparent 35%
    ),
    var(--velvet-noir);
}

/* Animated ambient glow */
.velvet-hero::before {
  content: '';
  position: absolute;
  width: 600px;
  height: 600px;
  border-radius: 50%;
  background: radial-gradient(
    circle,
    rgba(139, 26, 58, 0.15) 0%,
    transparent 70%
  );
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  animation: velvet-breathe 8s ease-in-out infinite;
  pointer-events: none;
}

@keyframes velvet-breathe {
  0%, 100% { opacity: 0.5; transform: translate(-50%, -50%) scale(1); }
  50% { opacity: 1; transform: translate(-50%, -50%) scale(1.15); }
}

.velvet-hero-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(3rem, 8vw, 7rem);
  font-weight: 700;
  line-height: 1.05;
  margin-bottom: 1.5rem;
  background: linear-gradient(
    135deg,
    var(--velvet-gold) 0%,
    var(--velvet-champagne) 40%,
    var(--velvet-gold) 60%,
    var(--velvet-rose-gold) 100%
  );
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.velvet-hero-subtitle {
  font-family: 'Raleway', sans-serif;
  font-weight: 300;
  font-size: clamp(1rem, 2vw, 1.3rem);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--velvet-champagne);
  margin-bottom: 3rem;
}

Gold Ornamental Divider

.velvet-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  margin: 4rem auto;
  max-width: 400px;
}

.velvet-divider::before,
.velvet-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent,
    var(--velvet-gold),
    transparent
  );
}

.velvet-divider-diamond {
  width: 8px;
  height: 8px;
  background: var(--velvet-gold);
  transform: rotate(45deg);
  flex-shrink: 0;
}

Velvet Gradient Text

/* Gold shimmer text for headings */
.velvet-gold-text {
  background: linear-gradient(
    135deg,
    #D4AF37 0%,
    #F5E6D3 25%,
    #D4AF37 50%,
    #C9A96E 75%,
    #D4AF37 100%
  );
  background-size: 200% auto;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: velvet-shimmer 6s linear infinite;
}

@keyframes velvet-shimmer {
  0% { background-position: 0% center; }
  100% { background-position: 200% center; }
}

/* Ruby-to-amethyst gradient for accent text */
.velvet-jewel-text {
  background: linear-gradient(
    135deg,
    var(--velvet-ruby),
    var(--velvet-amethyst),
    var(--velvet-ruby)
  );
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

Image Treatment

/* Velvet-framed image with warm overlay */
.velvet-image {
  border-radius: 12px;
  border: 1px solid var(--border-subtle);
  box-shadow: var(--shadow-pillowed);
  overflow: hidden;
  position: relative;
}

.velvet-image img {
  display: block;
  width: 100%;
  height: auto;
  filter: saturate(0.85) contrast(1.05) brightness(0.95);
  transition: all 0.5s ease;
}

.velvet-image::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    transparent 60%,
    rgba(26, 10, 18, 0.7) 100%
  );
  pointer-events: none;
}

.velvet-image:hover img {
  filter: saturate(1) contrast(1.1) brightness(1);
  transform: scale(1.03);
}

Design Do’s and Don’ts

Do’s

Don’ts


Aesthetic Relationship to Lush Velvet
Art Deco Shares jewel-tone palette and gold metallic accents; Art Deco is more geometric and angular where Velvet is soft and organic
Dark Academia Both use warm dark palettes and serif typography; Dark Academia leans scholarly while Velvet leans sensuous
Baroque Shares opulence and richness; Baroque is maximally ornamental while Velvet exercises modern restraint
Hollywood Regency Both invoke mid-century glamour and plush materials; Regency is brighter and more theatrical
Glassmorphism Both use layered translucency and blur; Velvet substitutes warmth and texture for glass coldness
Dark Mode Neon Both operate on dark backgrounds; Neon is electric and edgy where Velvet is warm and intimate
Maximalism Velvet borrows from maximalism’s love of richness but applies it with greater discipline and restraint
Grandmillennial Shares traditional craft and fabric appreciation; Grandmillennial is lighter, more nostalgic, and more patterned
Earth Tones Both value warm, grounded color palettes; Earth Tones are lighter, more muted, and nature-focused

Quick-Start HTML Template

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Lush Velvet</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=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400&family=Raleway:wght@300;400;500&display=swap" rel="stylesheet">
  <style>
    /* ===================================================
       LUSH VELVET -- Design System Stylesheet
       =================================================== */

    :root {
      /* Velvet backgrounds */
      --velvet-noir: #1A0A12;
      --velvet-deep: #2D1225;
      --velvet-plum: #4A1942;
      --velvet-mauve: #6B1D4A;

      /* Jewel tones */
      --velvet-ruby: #8B1A3A;
      --velvet-amethyst: #6E2C6B;
      --velvet-emerald: #1B4D3E;
      --velvet-sapphire: #0F3460;

      /* Metallics */
      --velvet-gold: #D4AF37;
      --velvet-champagne: #C9A96E;
      --velvet-rose-gold: #B76E79;

      /* Text tones */
      --velvet-cream: #F5E6D3;
      --velvet-ivory: #E8D5C4;
      --velvet-taupe: #A89080;
      --velvet-bistre: #3D2B1F;

      /* Functional aliases */
      --bg-primary: var(--velvet-noir);
      --bg-surface: var(--velvet-deep);
      --bg-elevated: var(--velvet-plum);
      --text-primary: var(--velvet-cream);
      --text-secondary: var(--velvet-ivory);
      --text-muted: var(--velvet-taupe);
      --accent-primary: var(--velvet-gold);
      --accent-action: var(--velvet-ruby);
      --border-subtle: rgba(212, 175, 55, 0.15);
      --border-accent: rgba(212, 175, 55, 0.4);

      /* Shadows */
      --shadow-soft: 0 8px 32px rgba(26, 10, 18, 0.6);
      --shadow-pillowed: 0 4px 20px rgba(26, 10, 18, 0.4), 0 1px 4px rgba(26, 10, 18, 0.3);
      --shadow-glow: 0 0 30px rgba(139, 26, 58, 0.2);
    }

    /* ---- Reset ---- */
    *, *::before, *::after {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }

    html {
      scroll-behavior: smooth;
    }

    /* ---- Base ---- */
    body {
      font-family: 'Raleway', 'Helvetica Neue', Arial, sans-serif;
      font-weight: 300;
      font-size: 1.05rem;
      line-height: 1.8;
      letter-spacing: 0.03em;
      color: var(--text-primary);
      background-color: var(--bg-primary);
      overflow-x: hidden;
    }

    /* Velvet texture on body */
    body::before {
      content: '';
      position: fixed;
      inset: 0;
      background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");
      background-repeat: repeat;
      background-size: 256px 256px;
      pointer-events: none;
      z-index: 9999;
    }

    h1, h2, h3, h4 {
      font-family: 'Playfair Display', Georgia, 'Times New Roman', serif;
      color: var(--velvet-gold);
      font-weight: 400;
      letter-spacing: 0.02em;
      line-height: 1.2;
    }

    a {
      color: var(--velvet-champagne);
      text-decoration: none;
      transition: color 0.3s ease;
    }

    a:hover {
      color: var(--velvet-gold);
    }

    img {
      max-width: 100%;
      height: auto;
      display: block;
    }

    /* ---- Navigation ---- */
    .nav {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 1.5rem 3rem;
      background: linear-gradient(
        180deg,
        rgba(26, 10, 18, 0.95) 0%,
        rgba(26, 10, 18, 0.85) 100%
      );
      backdrop-filter: blur(20px);
      -webkit-backdrop-filter: blur(20px);
      border-bottom: 1px solid var(--border-subtle);
      position: sticky;
      top: 0;
      z-index: 100;
    }

    .nav-brand {
      font-family: 'Playfair Display', serif;
      font-size: 1.5rem;
      font-weight: 700;
      color: var(--velvet-gold);
      text-decoration: none;
      letter-spacing: 0.05em;
    }

    .nav-links {
      display: flex;
      gap: 2.5rem;
      list-style: none;
    }

    .nav-links a {
      font-family: 'Raleway', sans-serif;
      font-weight: 400;
      font-size: 0.82rem;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: var(--velvet-ivory);
      text-decoration: none;
      padding: 0.5rem 0;
      position: relative;
    }

    .nav-links a::after {
      content: '';
      position: absolute;
      bottom: 0;
      left: 50%;
      width: 0;
      height: 1px;
      background: var(--velvet-gold);
      transition: all 0.3s ease;
      transform: translateX(-50%);
    }

    .nav-links a:hover {
      color: var(--velvet-gold);
    }

    .nav-links a:hover::after {
      width: 100%;
    }

    /* ---- Hero ---- */
    .hero {
      min-height: 100vh;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      text-align: center;
      padding: 6rem 2rem;
      position: relative;
      overflow: hidden;
      background:
        radial-gradient(ellipse at 50% 30%, rgba(139, 26, 58, 0.2) 0%, transparent 50%),
        radial-gradient(ellipse at 20% 80%, rgba(110, 44, 107, 0.15) 0%, transparent 40%),
        radial-gradient(ellipse at 80% 70%, rgba(27, 77, 62, 0.1) 0%, transparent 35%),
        var(--bg-primary);
    }

    .hero::before {
      content: '';
      position: absolute;
      width: 600px;
      height: 600px;
      border-radius: 50%;
      background: radial-gradient(circle, rgba(139, 26, 58, 0.15) 0%, transparent 70%);
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      animation: breathe 8s ease-in-out infinite;
      pointer-events: none;
    }

    @keyframes breathe {
      0%, 100% { opacity: 0.5; transform: translate(-50%, -50%) scale(1); }
      50% { opacity: 1; transform: translate(-50%, -50%) scale(1.15); }
    }

    .hero-label {
      font-family: 'Raleway', sans-serif;
      font-weight: 500;
      font-size: 0.75rem;
      letter-spacing: 0.25em;
      text-transform: uppercase;
      color: var(--velvet-champagne);
      margin-bottom: 2rem;
      position: relative;
      z-index: 2;
    }

    .hero-title {
      font-family: 'Playfair Display', serif;
      font-size: clamp(3rem, 8vw, 7rem);
      font-weight: 700;
      line-height: 1.05;
      margin-bottom: 1.5rem;
      background: linear-gradient(
        135deg,
        var(--velvet-gold) 0%,
        var(--velvet-champagne) 40%,
        var(--velvet-gold) 60%,
        var(--velvet-rose-gold) 100%
      );
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
      position: relative;
      z-index: 2;
    }

    .hero-subtitle {
      font-family: 'Raleway', sans-serif;
      font-weight: 300;
      font-size: clamp(1rem, 2vw, 1.25rem);
      color: var(--velvet-ivory);
      max-width: 600px;
      margin: 0 auto 3rem;
      line-height: 1.8;
      position: relative;
      z-index: 2;
    }

    .hero-actions {
      display: flex;
      gap: 1.5rem;
      flex-wrap: wrap;
      justify-content: center;
      position: relative;
      z-index: 2;
    }

    /* ---- Buttons ---- */
    .btn {
      font-family: 'Raleway', sans-serif;
      font-weight: 500;
      font-size: 0.82rem;
      letter-spacing: 0.15em;
      text-transform: uppercase;
      border-radius: 6px;
      padding: 1rem 2.5rem;
      cursor: pointer;
      transition: all 0.35s ease;
      text-decoration: none;
      display: inline-block;
      position: relative;
      overflow: hidden;
    }

    .btn-primary {
      color: var(--velvet-cream);
      background: linear-gradient(135deg, var(--velvet-ruby) 0%, #A02050 50%, var(--velvet-ruby) 100%);
      border: 1px solid rgba(212, 175, 55, 0.3);
    }

    .btn-primary::after {
      content: '';
      position: absolute;
      top: 0;
      left: -100%;
      width: 100%;
      height: 100%;
      background: linear-gradient(90deg, transparent, rgba(212, 175, 55, 0.1), transparent);
      transition: left 0.5s ease;
    }

    .btn-primary:hover {
      background: linear-gradient(135deg, #A02050 0%, #B82860 50%, #A02050 100%);
      border-color: var(--velvet-gold);
      box-shadow: 0 4px 20px rgba(139, 26, 58, 0.4);
      transform: translateY(-2px);
      color: var(--velvet-cream);
    }

    .btn-primary:hover::after {
      left: 100%;
    }

    .btn-secondary {
      color: var(--velvet-gold);
      background: transparent;
      border: 1px solid var(--velvet-gold);
    }

    .btn-secondary:hover {
      background: rgba(212, 175, 55, 0.1);
      box-shadow: 0 0 20px rgba(212, 175, 55, 0.15);
      color: var(--velvet-gold);
    }

    /* ---- Divider ---- */
    .divider {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 1rem;
      margin: 0 auto;
      max-width: 400px;
      padding: 1rem 0;
    }

    .divider::before,
    .divider::after {
      content: '';
      flex: 1;
      height: 1px;
      background: linear-gradient(90deg, transparent, var(--velvet-gold), transparent);
    }

    .divider-diamond {
      width: 8px;
      height: 8px;
      background: var(--velvet-gold);
      transform: rotate(45deg);
      flex-shrink: 0;
    }

    /* ---- Sections ---- */
    .section {
      padding: 6rem 2rem;
      position: relative;
    }

    .section-alt {
      background: linear-gradient(
        180deg,
        var(--bg-primary) 0%,
        var(--bg-surface) 20%,
        var(--bg-surface) 80%,
        var(--bg-primary) 100%
      );
    }

    .container {
      max-width: 1100px;
      margin: 0 auto;
    }

    .section-header {
      text-align: center;
      margin-bottom: 4rem;
    }

    .section-header h2 {
      font-size: clamp(2rem, 4vw, 3rem);
      font-weight: 600;
      margin-bottom: 1rem;
    }

    .section-header p {
      color: var(--text-secondary);
      max-width: 600px;
      margin: 0 auto;
      font-size: 1.05rem;
    }

    /* ---- Cards Grid ---- */
    .cards-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
      gap: 2rem;
    }

    .card {
      background: linear-gradient(145deg, rgba(45, 18, 37, 0.9) 0%, rgba(45, 18, 37, 0.7) 100%);
      border: 1px solid var(--border-subtle);
      border-radius: 12px;
      padding: 2.5rem;
      box-shadow: var(--shadow-pillowed);
      transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
      position: relative;
      overflow: hidden;
    }

    .card::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 1px;
      background: linear-gradient(90deg, transparent 0%, var(--velvet-champagne) 20%, var(--velvet-gold) 50%, var(--velvet-champagne) 80%, transparent 100%);
      opacity: 0.4;
    }

    .card:hover {
      transform: translateY(-4px);
      box-shadow: var(--shadow-pillowed), var(--shadow-glow);
      border-color: var(--border-accent);
    }

    .card-icon {
      font-size: 2rem;
      margin-bottom: 1.25rem;
      display: block;
    }

    .card h3 {
      font-size: 1.4rem;
      font-weight: 600;
      margin-bottom: 0.75rem;
      color: var(--velvet-gold);
    }

    .card p {
      color: var(--velvet-ivory);
      font-size: 0.95rem;
      line-height: 1.75;
    }

    /* ---- Feature Section ---- */
    .feature {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 4rem;
      align-items: center;
    }

    .feature-reverse {
      direction: rtl;
    }

    .feature-reverse > * {
      direction: ltr;
    }

    .feature-image {
      border-radius: 12px;
      border: 1px solid var(--border-subtle);
      box-shadow: var(--shadow-pillowed);
      overflow: hidden;
      aspect-ratio: 4 / 3;
      background: linear-gradient(
        135deg,
        var(--velvet-deep) 0%,
        var(--velvet-plum) 50%,
        var(--velvet-deep) 100%
      );
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .feature-image-placeholder {
      font-family: 'Playfair Display', serif;
      font-size: 3rem;
      font-style: italic;
      color: var(--velvet-mauve);
      opacity: 0.6;
    }

    .feature-content h2 {
      font-size: clamp(1.8rem, 3vw, 2.5rem);
      font-weight: 600;
      margin-bottom: 1.25rem;
      text-align: left;
    }

    .feature-content p {
      color: var(--velvet-ivory);
      margin-bottom: 1.5rem;
      line-height: 1.8;
    }

    .feature-content .label {
      font-family: 'Raleway', sans-serif;
      font-weight: 500;
      font-size: 0.72rem;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: var(--velvet-rose-gold);
      margin-bottom: 0.75rem;
      display: block;
    }

    /* ---- Testimonial / Quote ---- */
    .quote-section {
      text-align: center;
      padding: 6rem 2rem;
      background:
        radial-gradient(ellipse at 50% 50%, rgba(110, 44, 107, 0.1) 0%, transparent 50%),
        var(--bg-primary);
    }

    blockquote {
      font-family: 'Playfair Display', serif;
      font-size: clamp(1.5rem, 3vw, 2.2rem);
      font-weight: 400;
      font-style: italic;
      color: var(--velvet-cream);
      max-width: 800px;
      margin: 0 auto 2rem;
      line-height: 1.5;
      position: relative;
    }

    blockquote::before {
      content: '\201C';
      font-family: 'Playfair Display', serif;
      font-size: 5rem;
      color: var(--velvet-gold);
      opacity: 0.3;
      position: absolute;
      top: -2rem;
      left: -1.5rem;
      line-height: 1;
    }

    .quote-author {
      font-family: 'Raleway', sans-serif;
      font-weight: 400;
      font-size: 0.85rem;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: var(--velvet-champagne);
    }

    /* ---- Color Swatches Demo ---- */
    .swatches {
      display: flex;
      flex-wrap: wrap;
      gap: 1rem;
      justify-content: center;
      margin-top: 2rem;
    }

    .swatch {
      width: 80px;
      height: 80px;
      border-radius: 50%;
      border: 2px solid var(--border-subtle);
      box-shadow: var(--shadow-pillowed);
      transition: transform 0.3s ease, box-shadow 0.3s ease;
      position: relative;
    }

    .swatch:hover {
      transform: scale(1.15);
      box-shadow: var(--shadow-pillowed), var(--shadow-glow);
    }

    .swatch-label {
      text-align: center;
      margin-top: 0.5rem;
      font-size: 0.7rem;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--text-muted);
    }

    .swatch-item {
      display: flex;
      flex-direction: column;
      align-items: center;
    }

    /* ---- Footer ---- */
    .footer {
      padding: 4rem 2rem 2rem;
      border-top: 1px solid var(--border-subtle);
      text-align: center;
      background: var(--bg-primary);
    }

    .footer-brand {
      font-family: 'Playfair Display', serif;
      font-size: 1.8rem;
      font-weight: 700;
      color: var(--velvet-gold);
      margin-bottom: 1rem;
    }

    .footer p {
      color: var(--text-muted);
      font-size: 0.9rem;
      margin-bottom: 2rem;
    }

    .footer-links {
      display: flex;
      justify-content: center;
      gap: 2rem;
      list-style: none;
      margin-bottom: 3rem;
    }

    .footer-links a {
      font-size: 0.8rem;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--velvet-ivory);
    }

    .footer-links a:hover {
      color: var(--velvet-gold);
    }

    .footer-bottom {
      padding-top: 2rem;
      border-top: 1px solid var(--border-subtle);
      font-size: 0.8rem;
      color: var(--text-muted);
    }

    /* ---- Responsive ---- */
    @media (max-width: 768px) {
      .nav {
        padding: 1rem 1.5rem;
      }

      .nav-links {
        gap: 1.25rem;
      }

      .nav-links a {
        font-size: 0.72rem;
      }

      .hero {
        padding: 4rem 1.5rem;
      }

      .section {
        padding: 4rem 1.5rem;
      }

      .feature {
        grid-template-columns: 1fr;
        gap: 2rem;
      }

      .feature-reverse {
        direction: ltr;
      }

      .cards-grid {
        grid-template-columns: 1fr;
      }

      .hero-actions {
        flex-direction: column;
        align-items: center;
      }
    }
  </style>
</head>
<body>

  <!-- Navigation -->
  <nav class="nav">
    <a href="#" class="nav-brand">Velour</a>
    <ul class="nav-links">
      <li><a href="#collection">Collection</a></li>
      <li><a href="#about">About</a></li>
      <li><a href="#palette">Palette</a></li>
      <li><a href="#contact">Contact</a></li>
    </ul>
  </nav>

  <!-- Hero Section -->
  <section class="hero">
    <span class="hero-label">Curated Luxury Experiences</span>
    <h1 class="hero-title">Lush Velvet</h1>
    <p class="hero-subtitle">
      Rich textured surfaces, deep jewel tones, and tactile depth
      woven into every detail. An aesthetic that invites you to linger.
    </p>
    <div class="hero-actions">
      <a href="#collection" class="btn btn-primary">Explore Collection</a>
      <a href="#about" class="btn btn-secondary">Our Story</a>
    </div>
  </section>

  <!-- Divider -->
  <div class="divider">
    <span class="divider-diamond"></span>
  </div>

  <!-- Cards Section -->
  <section id="collection" class="section">
    <div class="container">
      <div class="section-header">
        <h2>The Collection</h2>
        <p>Each piece is crafted with intention, layered with meaning, and finished with the reverence that fine materials deserve.</p>
      </div>
      <div class="cards-grid">
        <div class="card">
          <span class="card-icon">&#9830;</span>
          <h3>Ruby Parlour</h3>
          <p>Deep crimson surfaces that absorb light and release warmth. A space designed for intimate conversations and quiet confidence.</p>
        </div>
        <div class="card">
          <span class="card-icon">&#9827;</span>
          <h3>Emerald Chamber</h3>
          <p>Forest depths translated into fabric and form. Cool jewel tones balanced with gold accents create grounding sophistication.</p>
        </div>
        <div class="card">
          <span class="card-icon">&#9829;</span>
          <h3>Amethyst Suite</h3>
          <p>Purple twilight captured in plush surfaces. Where the boundary between comfort and artistry dissolves entirely.</p>
        </div>
      </div>
    </div>
  </section>

  <!-- Feature Section 1 -->
  <section id="about" class="section section-alt">
    <div class="container">
      <div class="feature">
        <div class="feature-image">
          <span class="feature-image-placeholder">I</span>
        </div>
        <div class="feature-content">
          <span class="label">Our Philosophy</span>
          <h2>Texture as Language</h2>
          <p>
            We believe that surfaces speak. The way light falls across
            crushed velvet, the depth that emerges when jewel tones meet
            shadow -- these are not mere decoration but a vocabulary of
            sensation and meaning.
          </p>
          <p>
            Every element in our design system carries tactile weight.
            Backgrounds breathe with subtle grain. Cards lift with
            pillowed shadows. Colors shift like fabric under changing light.
          </p>
          <a href="#" class="btn btn-primary">Learn More</a>
        </div>
      </div>
    </div>
  </section>

  <!-- Divider -->
  <div class="divider">
    <span class="divider-diamond"></span>
  </div>

  <!-- Feature Section 2 -->
  <section class="section">
    <div class="container">
      <div class="feature feature-reverse">
        <div class="feature-image">
          <span class="feature-image-placeholder">II</span>
        </div>
        <div class="feature-content">
          <span class="label">The Details</span>
          <h2>Gold as Punctuation</h2>
          <p>
            Metallic accents are never wallpaper -- they are jewelry.
            A thin gold rule here, a champagne highlight there. Each
            gleaming detail earns its place through restraint, making
            the moments of shimmer all the more precious.
          </p>
          <p>
            This is luxury through discipline. Richness through
            depth of material, not quantity of ornament.
          </p>
          <a href="#" class="btn btn-secondary">View Details</a>
        </div>
      </div>
    </div>
  </section>

  <!-- Quote Section -->
  <section class="quote-section">
    <div class="container">
      <blockquote>
        Luxury is not about the price tag. It is about the feeling
        of surfaces that have been considered, of colors steeped
        until they reach their truest depth.
      </blockquote>
      <span class="quote-author">The Velour Atelier</span>
    </div>
  </section>

  <!-- Color Palette Section -->
  <section id="palette" class="section section-alt">
    <div class="container">
      <div class="section-header">
        <h2>The Palette</h2>
        <p>Jewel tones drawn from precious stones, warmed by candlelight, and deepened by shadow.</p>
      </div>
      <div class="swatches">
        <div class="swatch-item">
          <div class="swatch" style="background: #1A0A12;"></div>
          <span class="swatch-label">Noir</span>
        </div>
        <div class="swatch-item">
          <div class="swatch" style="background: #2D1225;"></div>
          <span class="swatch-label">Deep</span>
        </div>
        <div class="swatch-item">
          <div class="swatch" style="background: #4A1942;"></div>
          <span class="swatch-label">Plum</span>
        </div>
        <div class="swatch-item">
          <div class="swatch" style="background: #8B1A3A;"></div>
          <span class="swatch-label">Ruby</span>
        </div>
        <div class="swatch-item">
          <div class="swatch" style="background: #6E2C6B;"></div>
          <span class="swatch-label">Amethyst</span>
        </div>
        <div class="swatch-item">
          <div class="swatch" style="background: #1B4D3E;"></div>
          <span class="swatch-label">Emerald</span>
        </div>
        <div class="swatch-item">
          <div class="swatch" style="background: #0F3460;"></div>
          <span class="swatch-label">Sapphire</span>
        </div>
        <div class="swatch-item">
          <div class="swatch" style="background: #D4AF37;"></div>
          <span class="swatch-label">Gold</span>
        </div>
        <div class="swatch-item">
          <div class="swatch" style="background: #C9A96E;"></div>
          <span class="swatch-label">Champagne</span>
        </div>
        <div class="swatch-item">
          <div class="swatch" style="background: #B76E79;"></div>
          <span class="swatch-label">Rose Gold</span>
        </div>
      </div>
    </div>
  </section>

  <!-- Footer -->
  <footer id="contact" class="footer">
    <div class="container">
      <div class="footer-brand">Velour</div>
      <p>Rich textured velvet luxury. Deep jewel tones, tactile depth, sensuous surfaces.</p>
      <ul class="footer-links">
        <li><a href="#">Collection</a></li>
        <li><a href="#">About</a></li>
        <li><a href="#">Contact</a></li>
        <li><a href="#">Press</a></li>
      </ul>
      <div class="footer-bottom">
        Lush Velvet Design System &mdash; A study in tactile digital luxury
      </div>
    </div>
  </footer>

</body>
</html>

Implementation Tips