website_designs

Gradient Mesh Design Reference

Gradient Mesh is a contemporary design aesthetic built around complex, multi-point color gradients that flow organically across surfaces, creating rich, painterly fields of blended hues. Unlike simple linear or radial gradients that transition between two colors along a single axis, mesh gradients employ multiple color control points scattered across a two-dimensional plane, allowing colors to blend in every direction simultaneously. The result is a lush, almost liquid visual language reminiscent of aurora borealis, oil-on-water iridescence, or soft-focus watercolor washes. Popularized by brands like Stripe, Instagram, and Apple, and fueled by tools like Figma and dedicated mesh generators, this aesthetic has become a defining visual trend of the 2020s – conveying modernity, creativity, and premium quality. In web and UI design, Gradient Mesh translates to vibrant multi-hue backgrounds, softly glowing hero sections, translucent glassmorphic overlays atop color fields, and typography that either floats on these rich canvases or absorbs their colors through gradient text effects.


Visual Characteristics

Core Design Traits

Design Principles


Color Palette

Aurora Flow Palette

Color Name Hex Role / Usage
Electric Violet #7B2FFF Primary mesh anchor, hero gradient focal point
Hot Magenta #FF2D87 Secondary mesh point, accent buttons, active states
Coral Flame #FF6B4A Warm mesh anchor, hover highlights, warm accents
Sunset Amber #FFAA33 Warm gradient terminus, badges, notification dots
Vivid Teal #00D4AA Cool mesh anchor, success states, secondary CTAs
Ocean Blue #2E7CF6 Cool gradient midpoint, link color, informational elements
Deep Indigo #1A0A4B Dark mesh edge, deep backgrounds, footer surfaces
Soft Lavender #C4B5FD Muted text on dark backgrounds, secondary labels
Blush Pink #FFB5C8 Light mesh accent, soft highlights, decorative elements
Arctic White #F8F9FF Primary text on dark mesh, card backgrounds in light mode
Frosted Glass rgba(255,255,255,0.12) Glass panel surfaces, card overlays on mesh
Charcoal Base #0F0B1A Deepest background layer beneath mesh
Mist Gray #8B8DA3 Secondary text, captions, placeholder content
Warm Cream #FFF5E6 Light-mode background, soft contrast to vibrant mesh

CSS Custom Properties

:root {
  /* Mesh anchor colors */
  --mesh-violet: #7b2fff;
  --mesh-magenta: #ff2d87;
  --mesh-coral: #ff6b4a;
  --mesh-amber: #ffaa33;
  --mesh-teal: #00d4aa;
  --mesh-blue: #2e7cf6;

  /* Soft accents */
  --mesh-lavender: #c4b5fd;
  --mesh-blush: #ffb5c8;

  /* Backgrounds */
  --mesh-bg-deep: #0f0b1a;
  --mesh-bg-indigo: #1a0a4b;
  --mesh-bg-cream: #fff5e6;
  --mesh-bg-white: #f8f9ff;

  /* Glass */
  --mesh-glass: rgba(255, 255, 255, 0.12);
  --mesh-glass-border: rgba(255, 255, 255, 0.18);
  --mesh-glass-strong: rgba(255, 255, 255, 0.22);

  /* Text */
  --mesh-text-light: #f8f9ff;
  --mesh-text-muted: #8b8da3;
  --mesh-text-dark: #1a0a4b;

  /* Mesh gradient backgrounds */
  --mesh-gradient-aurora: radial-gradient(at 20% 30%, #7b2fff 0%, transparent 60%),
    radial-gradient(at 75% 20%, #ff2d87 0%, transparent 55%),
    radial-gradient(at 50% 80%, #00d4aa 0%, transparent 50%),
    radial-gradient(at 90% 70%, #ff6b4a 0%, transparent 55%),
    linear-gradient(135deg, #1a0a4b, #0f0b1a);

  --mesh-gradient-sunset: radial-gradient(at 30% 40%, #ff2d87 0%, transparent 55%),
    radial-gradient(at 70% 30%, #ff6b4a 0%, transparent 50%),
    radial-gradient(at 50% 70%, #ffaa33 0%, transparent 55%),
    radial-gradient(at 85% 80%, #7b2fff 0%, transparent 50%),
    linear-gradient(160deg, #1a0a4b, #0f0b1a);

  --mesh-gradient-ocean: radial-gradient(at 25% 25%, #2e7cf6 0%, transparent 55%),
    radial-gradient(at 70% 40%, #00d4aa 0%, transparent 50%),
    radial-gradient(at 40% 75%, #7b2fff 0%, transparent 55%),
    radial-gradient(at 90% 85%, #c4b5fd 0%, transparent 45%),
    linear-gradient(140deg, #0f0b1a, #1a0a4b);

  /* Shadows and glows */
  --mesh-shadow-soft: 0 8px 32px rgba(123, 47, 255, 0.15);
  --mesh-shadow-card: 0 4px 24px rgba(0, 0, 0, 0.12);
  --mesh-glow-violet: 0 0 20px rgba(123, 47, 255, 0.35), 0 0 60px rgba(123, 47, 255, 0.1);
  --mesh-glow-magenta: 0 0 20px rgba(255, 45, 135, 0.35), 0 0 60px rgba(255, 45, 135, 0.1);
}

Typography

Typeface Characteristics

Gradient Mesh typography is:

Font Style Best For
Inter Geometric, clean, variable Body text, UI elements, versatile workhorse
Sora Geometric, modern, friendly Headlines, subheadings, brand text
Plus Jakarta Sans Rounded geometric Headlines, body text, warm modern feel
Outfit Geometric, contemporary Headings, labels, clean UI text
Space Grotesk Geometric, slightly quirky Headlines, tech-forward contexts
DM Sans Clean, neutral geometric Body text, form labels, UI elements
Manrope Semi-rounded, modern Subheadings, body text, accessible feel
Satoshi Geometric grotesque Headlines, brand text (self-hosted)
Poppins Geometric, rounded Friendly headlines, approachable UI
General Sans Neutral geometric Body text, editorial content (self-hosted)

Font Pairing Suggestions

Heading Font Body Font Character
Sora (700) Inter (400) Modern, professional, tech-forward
Plus Jakarta Sans (700) DM Sans (400) Warm, approachable, rounded harmony
Space Grotesk (600) Inter (400) Quirky headlines, clean body text
Outfit (700) Manrope (400) Contemporary, balanced, editorial
Poppins (600) DM Sans (400) Friendly, soft geometry throughout

Typography CSS Example

/* Import fonts */
@import url('https://fonts.googleapis.com/css2?family=Sora:wght@400;600;700&family=Inter:wght@400;500;600&display=swap');

/* Headings */
h1, h2, h3, h4, h5, h6 {
  font-family: 'Sora', sans-serif;
  font-weight: 700;
  color: var(--mesh-text-light);
  line-height: 1.15;
  letter-spacing: -0.01em;
}

/* Display / Hero text with gradient fill */
.mesh-display {
  font-family: 'Sora', sans-serif;
  font-size: clamp(2.5rem, 6vw, 5rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.05;
  background: linear-gradient(135deg, var(--mesh-violet), var(--mesh-magenta), var(--mesh-coral));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Light text on mesh backgrounds */
.mesh-heading-light {
  font-family: 'Sora', sans-serif;
  color: var(--mesh-text-light);
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
}

/* Body text */
body {
  font-family: 'Inter', sans-serif;
  font-weight: 400;
  font-size: 1rem;
  line-height: 1.7;
  color: var(--mesh-text-light);
}

/* Labels and captions */
.mesh-label {
  font-family: 'Inter', sans-serif;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--mesh-text-muted);
}

/* Subtle mono for code or data */
.mesh-mono {
  font-family: 'JetBrains Mono', 'Fira Code', monospace;
  font-size: 0.875rem;
  letter-spacing: -0.01em;
}

Layout Principles

Grid and Structure

Section Organization

Responsive Approach


CSS / Design Techniques

Mesh Gradient Card Component

.mesh-card {
  background: var(--mesh-glass);
  border: 1px solid var(--mesh-glass-border);
  border-radius: 16px;
  padding: 32px;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.mesh-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--mesh-shadow-soft);
  border-color: rgba(255, 255, 255, 0.3);
}

/* Colored top accent */
.mesh-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 24px;
  right: 24px;
  height: 3px;
  border-radius: 0 0 3px 3px;
  background: linear-gradient(90deg, var(--mesh-violet), var(--mesh-magenta), var(--mesh-coral));
  opacity: 0;
  transition: opacity 0.3s ease;
}

.mesh-card:hover::before {
  opacity: 1;
}

/* Card grid layout */
.mesh-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 24px;
}

Mesh Gradient Button

.mesh-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 36px;
  border: none;
  border-radius: 12px;
  font-family: 'Sora', sans-serif;
  font-weight: 600;
  font-size: 0.9rem;
  letter-spacing: 0.01em;
  color: #ffffff;
  background: linear-gradient(135deg, var(--mesh-violet), var(--mesh-magenta));
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.3s ease, filter 0.2s ease;
  text-decoration: none;
}

.mesh-button:hover {
  transform: translateY(-2px);
  box-shadow: var(--mesh-glow-violet);
  filter: brightness(1.1);
}

.mesh-button:active {
  transform: translateY(0);
  filter: brightness(0.95);
}

/* Ghost / outline variant on mesh backgrounds */
.mesh-button--ghost {
  background: transparent;
  color: var(--mesh-text-light);
  border: 1.5px solid rgba(255, 255, 255, 0.3);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.mesh-button--ghost:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.5);
  box-shadow: none;
  filter: none;
}

/* Teal variant */
.mesh-button--teal {
  background: linear-gradient(135deg, var(--mesh-teal), var(--mesh-blue));
}

.mesh-button--teal:hover {
  box-shadow: 0 0 20px rgba(0, 212, 170, 0.35), 0 0 60px rgba(0, 212, 170, 0.1);
}
.mesh-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 1200px;
  margin: 0 auto;
  padding: 20px 40px;
  position: relative;
  z-index: 10;
}

.mesh-nav__logo {
  font-family: 'Sora', sans-serif;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--mesh-text-light);
  text-decoration: none;
  letter-spacing: -0.01em;
}

.mesh-nav__links {
  display: flex;
  align-items: center;
  gap: 32px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.mesh-nav__links a {
  font-family: 'Inter', sans-serif;
  font-weight: 500;
  font-size: 0.9rem;
  color: rgba(248, 249, 255, 0.65);
  text-decoration: none;
  transition: color 0.2s ease;
}

.mesh-nav__links a:hover {
  color: var(--mesh-text-light);
}

/* Frosted nav variant */
.mesh-nav--frosted {
  background: rgba(15, 11, 26, 0.4);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  max-width: 100%;
  padding: 16px 40px;
}

Hero Section with Mesh Background

.mesh-hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 100px 40px;
  overflow: hidden;
  background: var(--mesh-gradient-aurora);
  background-color: var(--mesh-bg-deep);
}

/* Noise texture overlay */
.mesh-hero::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.04'/%3E%3C/svg%3E");
  background-size: 256px 256px;
  opacity: 0.5;
  pointer-events: none;
  z-index: 1;
}

.mesh-hero__content {
  position: relative;
  z-index: 5;
  max-width: 720px;
}

.mesh-hero__content h1 {
  font-size: clamp(2.5rem, 6vw, 5rem);
  margin-bottom: 1.5rem;
  color: var(--mesh-text-light);
  text-shadow: 0 2px 20px rgba(0, 0, 0, 0.3);
}

.mesh-hero__content p {
  font-size: 1.15rem;
  color: rgba(248, 249, 255, 0.75);
  margin-bottom: 2.5rem;
  max-width: 560px;
  margin-left: auto;
  margin-right: auto;
}

@media (max-width: 768px) {
  .mesh-hero {
    min-height: auto;
    padding: 80px 20px;
  }
}

Multi-Point Mesh Gradient Background

/* The core technique: layering multiple radial gradients
   at different positions to create a mesh effect */
.mesh-background {
  background:
    radial-gradient(at 15% 25%, #7b2fff 0%, transparent 55%),
    radial-gradient(at 70% 15%, #ff2d87 0%, transparent 50%),
    radial-gradient(at 85% 60%, #ff6b4a 0%, transparent 45%),
    radial-gradient(at 40% 80%, #00d4aa 0%, transparent 50%),
    radial-gradient(at 60% 50%, #2e7cf6 0%, transparent 40%);
  background-color: var(--mesh-bg-deep);
}

/* Animated mesh -- subtle color drift */
.mesh-background--animated {
  background-size: 200% 200%;
  animation: meshDrift 20s ease-in-out infinite alternate;
}

@keyframes meshDrift {
  0% { background-position: 0% 0%; }
  25% { background-position: 50% 20%; }
  50% { background-position: 100% 50%; }
  75% { background-position: 50% 80%; }
  100% { background-position: 0% 100%; }
}

Glassmorphic Panel on Mesh

.mesh-glass-panel {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 20px;
  padding: 40px;
  backdrop-filter: blur(24px) saturate(1.2);
  -webkit-backdrop-filter: blur(24px) saturate(1.2);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
}

/* Light mode glass variant */
.mesh-glass-panel--light {
  background: rgba(255, 255, 255, 0.6);
  border-color: rgba(255, 255, 255, 0.5);
  backdrop-filter: blur(20px) saturate(1.5);
  -webkit-backdrop-filter: blur(20px) saturate(1.5);
}

/* @supports fallback for browsers without backdrop-filter */
@supports not (backdrop-filter: blur(1px)) {
  .mesh-glass-panel {
    background: rgba(15, 11, 26, 0.85);
  }
}

Noise Texture Overlay

/* SVG-based noise texture to add grain to smooth mesh gradients */
.mesh-noise {
  position: relative;
}

.mesh-noise::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E");
  background-size: 256px 256px;
  pointer-events: none;
  z-index: 2;
  border-radius: inherit;
  mix-blend-mode: overlay;
}

Gradient Text Effect

.mesh-gradient-text {
  font-family: 'Sora', sans-serif;
  font-weight: 700;
  background: linear-gradient(
    135deg,
    var(--mesh-violet) 0%,
    var(--mesh-magenta) 35%,
    var(--mesh-coral) 65%,
    var(--mesh-amber) 100%
  );
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Animated gradient text */
.mesh-gradient-text--animated {
  background-size: 200% 200%;
  animation: textShimmer 4s ease-in-out infinite alternate;
}

@keyframes textShimmer {
  0% { background-position: 0% 50%; }
  100% { background-position: 100% 50%; }
}

Design Do’s and Don’ts

Do

Don’t


Aesthetic Relationship to Gradient Mesh
Glassmorphism Natural companion; glass panels with backdrop-blur are the primary technique for overlaying content on mesh backgrounds
Aurora Design A close sibling specifically inspired by the northern lights; aurora tends toward cooler greens, teals, and purples with horizontal banding
Vaporwave Both use vivid color gradients, but Vaporwave is ironic and retro-nostalgic while Gradient Mesh is forward-looking and premium
Holographic Shares the iridescent, multi-hue quality; Holographic specifically mimics light-diffracting foil with rainbow spectral shifts
Neomorphism Both use soft visual treatments; Neomorphism uses subtle shadows on flat surfaces while Gradient Mesh uses rich color fields
Flat Design 2.0 Gradient Mesh emerged as flat design evolved to reintroduce depth and richness through color gradients rather than skeuomorphic textures
Brutalism Polar opposite: Brutalism embraces raw, stark contrast and visible structure, while Gradient Mesh is soft, flowing, and polished
Material Design Material uses subtle gradients for elevation and shadows; Gradient Mesh uses bold, artistic gradients as the primary visual language
Synthwave Both employ vivid color gradients; Synthwave follows strict warm-to-cool sunset logic while Gradient Mesh is freeform and multi-directional

Quick-Start: Minimal Gradient Mesh Page Template

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Gradient Mesh Page</title>
  <link href="https://fonts.googleapis.com/css2?family=Sora:wght@400;600;700&family=Inter:wght@400;500;600&display=swap" rel="stylesheet">
  <style>
    :root {
      --mesh-violet: #7b2fff;
      --mesh-magenta: #ff2d87;
      --mesh-coral: #ff6b4a;
      --mesh-amber: #ffaa33;
      --mesh-teal: #00d4aa;
      --mesh-blue: #2e7cf6;
      --mesh-lavender: #c4b5fd;
      --mesh-blush: #ffb5c8;
      --mesh-bg-deep: #0f0b1a;
      --mesh-bg-indigo: #1a0a4b;
      --mesh-text-light: #f8f9ff;
      --mesh-text-muted: #8b8da3;
      --mesh-glass: rgba(255, 255, 255, 0.08);
      --mesh-glass-border: rgba(255, 255, 255, 0.12);
    }

    * { margin: 0; padding: 0; box-sizing: border-box; }

    body {
      background: var(--mesh-bg-deep);
      color: var(--mesh-text-light);
      font-family: 'Inter', sans-serif;
      font-size: 1rem;
      line-height: 1.7;
    }

    h1, h2, h3 {
      font-family: 'Sora', sans-serif;
      font-weight: 700;
      line-height: 1.15;
      letter-spacing: -0.01em;
    }

    /* Navigation */
    nav {
      display: flex;
      align-items: center;
      justify-content: space-between;
      max-width: 1200px;
      margin: 0 auto;
      padding: 20px 40px;
      position: relative;
      z-index: 20;
    }

    nav a.logo {
      font-family: 'Sora', sans-serif;
      font-size: 1.2rem;
      font-weight: 700;
      color: var(--mesh-text-light);
      text-decoration: none;
    }

    nav ul {
      display: flex;
      gap: 32px;
      list-style: none;
    }

    nav ul a {
      font-family: 'Inter', sans-serif;
      font-weight: 500;
      font-size: 0.9rem;
      color: rgba(248, 249, 255, 0.6);
      text-decoration: none;
      transition: color 0.2s ease;
    }

    nav ul a:hover {
      color: var(--mesh-text-light);
    }

    /* Hero Section */
    .hero {
      position: relative;
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
      min-height: 92vh;
      padding: 100px 40px;
      overflow: hidden;
      background:
        radial-gradient(ellipse at 20% 30%, rgba(123, 47, 255, 0.7) 0%, transparent 55%),
        radial-gradient(ellipse at 75% 20%, rgba(255, 45, 135, 0.6) 0%, transparent 50%),
        radial-gradient(ellipse at 50% 80%, rgba(0, 212, 170, 0.5) 0%, transparent 50%),
        radial-gradient(ellipse at 90% 65%, rgba(255, 107, 74, 0.5) 0%, transparent 50%),
        radial-gradient(ellipse at 35% 55%, rgba(46, 124, 246, 0.3) 0%, transparent 45%);
      background-color: var(--mesh-bg-deep);
    }

    /* Noise overlay */
    .hero::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='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.05'/%3E%3C/svg%3E");
      background-size: 200px 200px;
      opacity: 0.6;
      pointer-events: none;
      z-index: 1;
    }

    .hero-content {
      position: relative;
      z-index: 5;
      max-width: 700px;
    }

    .hero h1 {
      font-size: clamp(2.5rem, 6vw, 4.5rem);
      margin-bottom: 1.5rem;
      color: var(--mesh-text-light);
      text-shadow: 0 2px 20px rgba(0, 0, 0, 0.25);
      letter-spacing: -0.02em;
    }

    .hero p {
      font-size: 1.1rem;
      color: rgba(248, 249, 255, 0.72);
      margin-bottom: 2.5rem;
      max-width: 520px;
      margin-left: auto;
      margin-right: auto;
    }

    .btn {
      display: inline-block;
      padding: 14px 36px;
      border: none;
      border-radius: 12px;
      font-family: 'Sora', sans-serif;
      font-weight: 600;
      font-size: 0.9rem;
      color: #ffffff;
      background: linear-gradient(135deg, var(--mesh-violet), var(--mesh-magenta));
      text-decoration: none;
      cursor: pointer;
      transition: transform 0.2s ease, box-shadow 0.3s ease, filter 0.2s ease;
    }

    .btn:hover {
      transform: translateY(-2px);
      box-shadow: 0 0 20px rgba(123, 47, 255, 0.4), 0 0 60px rgba(123, 47, 255, 0.1);
      filter: brightness(1.1);
    }

    .btn--ghost {
      background: transparent;
      border: 1.5px solid rgba(255, 255, 255, 0.3);
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
      margin-left: 12px;
    }

    .btn--ghost:hover {
      background: rgba(255, 255, 255, 0.1);
      border-color: rgba(255, 255, 255, 0.5);
      box-shadow: none;
      filter: none;
    }

    /* Features Section */
    .features {
      padding: 100px 0;
      background: var(--mesh-bg-deep);
    }

    .features h2 {
      text-align: center;
      font-size: 2rem;
      margin-bottom: 16px;
      background: linear-gradient(135deg, var(--mesh-violet), var(--mesh-magenta), var(--mesh-coral));
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
    }

    .features .subtitle {
      text-align: center;
      color: var(--mesh-text-muted);
      margin-bottom: 56px;
      font-size: 1.05rem;
    }

    .features-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
      gap: 24px;
      max-width: 1200px;
      margin: 0 auto;
      padding: 0 40px;
    }

    .feature {
      background: var(--mesh-glass);
      border: 1px solid var(--mesh-glass-border);
      border-radius: 16px;
      padding: 32px;
      position: relative;
      overflow: hidden;
      transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
    }

    .feature:hover {
      transform: translateY(-4px);
      box-shadow: 0 8px 32px rgba(123, 47, 255, 0.15);
      border-color: rgba(255, 255, 255, 0.22);
    }

    .feature-icon {
      width: 48px;
      height: 48px;
      border-radius: 12px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1.4rem;
      margin-bottom: 20px;
    }

    .feature-icon--violet {
      background: linear-gradient(135deg, rgba(123, 47, 255, 0.2), rgba(255, 45, 135, 0.2));
    }

    .feature-icon--teal {
      background: linear-gradient(135deg, rgba(0, 212, 170, 0.2), rgba(46, 124, 246, 0.2));
    }

    .feature-icon--coral {
      background: linear-gradient(135deg, rgba(255, 107, 74, 0.2), rgba(255, 170, 51, 0.2));
    }

    .feature h3 {
      font-size: 1.1rem;
      margin-bottom: 10px;
    }

    .feature p {
      color: var(--mesh-text-muted);
      font-size: 0.92rem;
      line-height: 1.65;
    }

    /* Showcase Section with Mesh Background */
    .showcase {
      position: relative;
      padding: 100px 40px;
      overflow: hidden;
      background:
        radial-gradient(ellipse at 30% 40%, rgba(255, 45, 135, 0.5) 0%, transparent 50%),
        radial-gradient(ellipse at 70% 30%, rgba(255, 107, 74, 0.4) 0%, transparent 45%),
        radial-gradient(ellipse at 50% 75%, rgba(255, 170, 51, 0.4) 0%, transparent 50%),
        radial-gradient(ellipse at 85% 80%, rgba(123, 47, 255, 0.4) 0%, transparent 45%);
      background-color: var(--mesh-bg-deep);
    }

    .showcase::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='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.05'/%3E%3C/svg%3E");
      background-size: 200px 200px;
      opacity: 0.6;
      pointer-events: none;
      z-index: 1;
    }

    .showcase-content {
      position: relative;
      z-index: 5;
      max-width: 1200px;
      margin: 0 auto;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 60px;
      align-items: center;
    }

    .showcase-text h2 {
      font-size: 2.2rem;
      color: var(--mesh-text-light);
      text-shadow: 0 2px 16px rgba(0, 0, 0, 0.25);
      margin-bottom: 1rem;
    }

    .showcase-text p {
      color: rgba(248, 249, 255, 0.72);
      font-size: 1.05rem;
      margin-bottom: 2rem;
    }

    .showcase-panel {
      background: rgba(255, 255, 255, 0.08);
      border: 1px solid rgba(255, 255, 255, 0.12);
      border-radius: 20px;
      padding: 40px;
      backdrop-filter: blur(24px) saturate(1.2);
      -webkit-backdrop-filter: blur(24px) saturate(1.2);
    }

    .stat-row {
      display: flex;
      justify-content: space-between;
      text-align: center;
      gap: 24px;
    }

    .stat {
      flex: 1;
    }

    .stat-number {
      font-family: 'Sora', sans-serif;
      font-size: 2.2rem;
      font-weight: 700;
      background: linear-gradient(135deg, var(--mesh-violet), var(--mesh-magenta));
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
      line-height: 1.1;
      margin-bottom: 6px;
    }

    .stat-label {
      font-size: 0.8rem;
      color: var(--mesh-text-muted);
      text-transform: uppercase;
      letter-spacing: 0.06em;
    }

    /* CTA Section */
    .cta {
      text-align: center;
      padding: 100px 40px;
      background: var(--mesh-bg-deep);
    }

    .cta h2 {
      font-size: 2.2rem;
      margin-bottom: 1rem;
      background: linear-gradient(135deg, var(--mesh-teal), var(--mesh-blue), var(--mesh-violet));
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
    }

    .cta p {
      color: var(--mesh-text-muted);
      font-size: 1.05rem;
      max-width: 480px;
      margin: 0 auto 2rem;
    }

    /* Divider */
    .divider {
      border: none;
      height: 1px;
      max-width: 1200px;
      margin: 0 auto;
      background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(123, 47, 255, 0.3) 20%,
        rgba(255, 45, 135, 0.3) 50%,
        rgba(0, 212, 170, 0.3) 80%,
        transparent 100%
      );
    }

    /* Footer */
    footer {
      background: #080510;
      text-align: center;
      padding: 32px 40px;
      color: var(--mesh-text-muted);
      font-size: 0.85rem;
    }

    footer a {
      color: var(--mesh-lavender);
      text-decoration: none;
    }

    footer a:hover {
      color: var(--mesh-text-light);
    }

    /* Responsive */
    @media (max-width: 768px) {
      nav { padding: 16px 20px; }
      nav ul { gap: 20px; }
      .hero { min-height: auto; padding: 80px 20px; }
      .features { padding: 60px 0; }
      .features-grid { padding: 0 20px; }
      .showcase { padding: 60px 20px; }
      .showcase-content { grid-template-columns: 1fr; gap: 32px; }
      .stat-row { flex-direction: column; gap: 16px; }
      .cta { padding: 60px 20px; }
    }
  </style>
</head>
<body>
  <nav>
    <a href="#" class="logo">Lumina</a>
    <ul>
      <li><a href="#">Canvas</a></li>
      <li><a href="#">Palette</a></li>
      <li><a href="#">Studio</a></li>
      <li><a href="#">About</a></li>
    </ul>
  </nav>

  <section class="hero">
    <div class="hero-content">
      <h1>Color in Motion</h1>
      <p>Where light bends and hues dissolve into one another. A living canvas of vibrant gradients that shift, breathe, and flow.</p>
      <a href="#" class="btn">Explore</a>
      <a href="#" class="btn btn--ghost">Learn More</a>
    </div>
  </section>

  <hr class="divider">

  <section class="features">
    <h2>Built for Brilliance</h2>
    <p class="subtitle">Every pixel blends with purpose. Every transition tells a story.</p>
    <div class="features-grid">
      <div class="feature">
        <div class="feature-icon feature-icon--violet">&#9670;</div>
        <h3>Fluid Color Fields</h3>
        <p>Multi-point gradients that flow organically across the canvas, creating depth and dimension through pure color interaction.</p>
      </div>
      <div class="feature">
        <div class="feature-icon feature-icon--teal">&#9656;</div>
        <h3>Glass Layers</h3>
        <p>Frosted panels float above vivid backgrounds, letting color wash through while keeping content crisp and readable.</p>
      </div>
      <div class="feature">
        <div class="feature-icon feature-icon--coral">&#9675;</div>
        <h3>Living Surfaces</h3>
        <p>Subtle animation brings the mesh to life. Colors drift and shift like light moving across water, always evolving.</p>
      </div>
    </div>
  </section>

  <section class="showcase">
    <div class="showcase-content">
      <div class="showcase-text">
        <h2>Designed to Captivate</h2>
        <p>Our mesh gradient approach creates immersive visual experiences that feel premium, modern, and alive. Each composition balances warmth and coolness for maximum impact.</p>
        <a href="#" class="btn">Get Started</a>
      </div>
      <div class="showcase-panel">
        <div class="stat-row">
          <div class="stat">
            <div class="stat-number">5M+</div>
            <div class="stat-label">Color Points</div>
          </div>
          <div class="stat">
            <div class="stat-number">360°</div>
            <div class="stat-label">Hue Range</div>
          </div>
          <div class="stat">
            <div class="stat-number"></div>
            <div class="stat-label">Variations</div>
          </div>
        </div>
      </div>
    </div>
  </section>

  <hr class="divider">

  <section class="cta">
    <h2>Start Creating</h2>
    <p>Step into a world where color has no boundaries. Build interfaces that feel alive with light and movement.</p>
    <a href="#" class="btn">Launch Studio</a>
  </section>

  <footer>
    <p>Lumina Studio &mdash; Crafted with flowing color and quiet precision</p>
  </footer>
</body>
</html>