website_designs

Neo Minimalism Design Reference

Overview

Neo Minimalism is a warmer, more textured evolution of stark minimalism that emerged prominently in the early 2020s and solidified as a dominant design philosophy by 2024-2026. Where traditional minimalism stripped interfaces down to cold, clinical abstractions – pure white backgrounds, rigid grids, and sterile sans-serifs – Neo Minimalism reintroduces the human qualities that were lost in the pursuit of reduction. It retains the discipline of “less is more” but reframes it as “less, but meaningful.” Every element that remains in a Neo Minimalist composition must earn its place not only through function but through emotional resonance.

The aesthetic draws from several converging influences: the Quiet Luxury movement in fashion (brands like The Row and Khaite demonstrating that restraint communicates sophistication), the Japanese philosophy of wabi-sabi (finding beauty in imperfection and transience), Scandinavian hygge (cozy contentment), and the broader cultural fatigue with soulless corporate minimalism that dominated tech interfaces throughout the 2010s. Neo Minimalism is the design world’s answer to the question: how do we keep things simple without making them feel empty?

Visually, Neo Minimalism replaces pure whites with warm off-whites, creams, and parchment tones. Hard geometric grids give way to breathing, asymmetric layouts. Surfaces gain subtle texture – linen weaves, paper grain, soft noise overlays – that invite the eye to linger rather than slide past. Typography becomes expressive and editorial, with confident serif headlines balanced by clean humanist body text. Color palettes ground themselves in warm neutrals (sand, oat, sage, clay, chocolate) with restrained accent hues that punctuate rather than dominate. Shadows are barely perceptible, suggesting weight rather than elevation. Animations are slow, deliberate, and purposeful – a gentle fade, a measured reveal – never flashy or attention-seeking.

The philosophy is one of intentional warmth. Neo Minimalism rejects both the maximalist chaos of Dopamine Design and the sterile emptiness of pure minimalism, finding a middle path where clarity serves emotion, where simplicity creates comfort, and where every design choice communicates care. It is minimalism that has learned to breathe, to feel, and to welcome.


Visual Characteristics

Core Design Traits

Design Principles


Color Palette

Neo Minimalism grounds itself in warm neutrals drawn from natural materials – sand, clay, oat, linen, stone – with muted organic accents that punctuate without overpowering. The palette avoids pure black and pure white, instead using deep warm charcoals and soft creams that feel approachable and human. Color is used with extreme restraint: the 70-20-10 rule applies, with 70% warm neutrals, 20% supporting tones, and 10% accent color.

Color Table

Swatch Hex Role / Usage
Warm Cream #FAF6F0 Primary page background; the warm canvas everything sits upon
Parchment #F0EBE3 Secondary backgrounds; card surfaces, section alternation
Oat #E8E0D4 Tertiary surface; subtle layering, sidebar backgrounds
Soft Clay #D5CABB Border color, divider lines, input field borders
Warm Sand #C7B9A5 Muted UI elements, disabled states, placeholder text color
Taupe #9E8E7E Secondary text, captions, metadata, subtle labels
Warm Stone #7A6F63 Body text alternative on light backgrounds
Deep Charcoal #2D2926 Primary text color; warm near-black
Chocolate #4A3728 Dark accents, footer backgrounds, deep contrast elements
Sage Green #8B9A7B Primary accent; buttons, links, active states, icons
Dusty Terracotta #C4907A Secondary accent; highlights, tags, warm interactive states
Muted Rose #C9A092 Tertiary accent; hover states, soft highlights, decorative touches
Warm Amber #D4A66A Accent for warnings, featured badges, warm callouts
Soft Slate #8E949A Cool neutral accent; balanced contrast, secondary icons
Ivory White #FDFCF9 Lightest surface; modal backgrounds, elevated card surfaces

CSS Custom Properties

:root {
  /* --- Backgrounds --- */
  --neo-bg:             #FAF6F0;
  --neo-bg-alt:         #F0EBE3;
  --neo-surface:        #E8E0D4;
  --neo-surface-elevated: #FDFCF9;

  /* --- Borders & Dividers --- */
  --neo-border:         #D5CABB;
  --neo-border-light:   #E8E0D4;
  --neo-divider:        #D5CABB;

  /* --- Text --- */
  --neo-text:           #2D2926;
  --neo-text-secondary: #7A6F63;
  --neo-text-muted:     #9E8E7E;
  --neo-text-placeholder: #C7B9A5;

  /* --- Accents --- */
  --neo-accent-primary:   #8B9A7B;
  --neo-accent-secondary: #C4907A;
  --neo-accent-tertiary:  #C9A092;
  --neo-accent-warm:      #D4A66A;
  --neo-accent-cool:      #8E949A;

  /* --- Darks --- */
  --neo-dark:           #2D2926;
  --neo-dark-deep:      #4A3728;

  /* --- Functional --- */
  --neo-success:        #8B9A7B;
  --neo-warning:        #D4A66A;
  --neo-error:          #C4907A;

  /* --- Radii --- */
  --neo-radius-sm:      6px;
  --neo-radius-md:      10px;
  --neo-radius-lg:      14px;
  --neo-radius-xl:      20px;

  /* --- Shadows --- */
  --neo-shadow-sm:      0 1px 3px rgba(45, 41, 38, 0.04);
  --neo-shadow-md:      0 2px 8px rgba(45, 41, 38, 0.06);
  --neo-shadow-lg:      0 4px 16px rgba(45, 41, 38, 0.08);
}

Typography

Neo Minimalism treats typography as the primary expressive element. With minimal imagery and restrained decoration, typefaces carry the emotional weight of the design. The approach pairs expressive, confident serifs for headlines with warm humanist sans-serifs for body text. Weights tend toward light and regular – heavy bold weights break the tranquil restraint. Letter-spacing is slightly open on headings, creating an airy, editorial feel. Line heights are generous (1.6-1.8 for body), giving text room to breathe in alignment with the philosophy of meaningful negative space.

Google Fonts

Font Name Category Weight Range Role
Fraunces Serif (Variable) 300-700 Display headlines; warm, expressive optical sizing
DM Serif Display Serif 400 Section headings; refined and approachable
Cormorant Garamond Serif 300-600 Editorial headlines, pull quotes, decorative text
Outfit Sans-serif 300-600 Primary body text; soft, humanist, highly readable
Albert Sans Sans-serif 300-600 Alternative body; contemporary warmth and openness
Manrope Sans-serif (Variable) 300-700 UI elements, navigation, labels; geometric-humanist balance
Crimson Text Serif 400-700 Long-form body text in editorial contexts
Work Sans Sans-serif 300-500 Functional text, metadata, captions, small labels

Font Pairing Table

Pairing Name Heading Font Body Font Character
Warm Editorial Fraunces (300) Outfit (400) Expressive yet approachable; ideal for lifestyle and brand sites
Classic Comfort Cormorant Garamond (300) Albert Sans (400) Elegant with contemporary warmth; suits portfolio and editorial
Modern Calm DM Serif Display (400) Manrope (400) Refined heading with clean body; works for product and SaaS
Readable Heritage Crimson Text (400) Work Sans (400) Traditional with functional clarity; long-form content and blogs

CSS Typography Example

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,300;9..144,400;9..144,500&family=Outfit:wght@300;400;500&family=DM+Serif+Display&family=Manrope:wght@300;400;500&display=swap');

body {
  font-family: 'Outfit', 'Albert Sans', system-ui, sans-serif;
  font-weight: 400;
  font-size: 1.05rem;
  line-height: 1.72;
  color: var(--neo-text);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4 {
  font-family: 'Fraunces', 'DM Serif Display', 'Georgia', serif;
  font-weight: 300;
  line-height: 1.2;
  color: var(--neo-text);
  letter-spacing: -0.01em;
}

h1 {
  font-size: clamp(2.4rem, 5vw, 3.6rem);
  font-weight: 300;
  letter-spacing: -0.02em;
}

h2 {
  font-size: clamp(1.6rem, 3.5vw, 2.2rem);
  font-weight: 400;
}

h3 {
  font-size: clamp(1.2rem, 2.5vw, 1.5rem);
  font-weight: 400;
  letter-spacing: 0.01em;
}

.label, .caption, .overline {
  font-family: 'Manrope', 'Work Sans', sans-serif;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--neo-text-muted);
}

blockquote {
  font-family: 'Cormorant Garamond', 'Crimson Text', serif;
  font-size: 1.4rem;
  font-weight: 300;
  font-style: italic;
  line-height: 1.6;
  color: var(--neo-text-secondary);
  border-left: 2px solid var(--neo-border);
  padding-left: 1.5rem;
  margin: 2rem 0;
}

Layout Principles


CSS / Design Techniques

Card Component

.neo-card {
  background: var(--neo-surface-elevated);
  border: 1px solid var(--neo-border-light);
  border-radius: var(--neo-radius-lg);
  padding: 2rem 2.25rem;
  transition: all 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  box-shadow: var(--neo-shadow-sm);
}

.neo-card:hover {
  box-shadow: var(--neo-shadow-md);
  transform: translateY(-2px);
  border-color: var(--neo-border);
}

.neo-card__overline {
  font-family: 'Manrope', sans-serif;
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--neo-accent-primary);
  margin-bottom: 0.75rem;
}

.neo-card__title {
  font-family: 'Fraunces', serif;
  font-size: 1.35rem;
  font-weight: 400;
  color: var(--neo-text);
  margin-bottom: 0.75rem;
  line-height: 1.3;
}

.neo-card__body {
  font-size: 0.95rem;
  color: var(--neo-text-secondary);
  line-height: 1.65;
}

Button Styles

/* Primary button -- warm and confident */
.neo-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: var(--neo-dark);
  color: var(--neo-bg);
  border: none;
  border-radius: var(--neo-radius-md);
  padding: 0.8rem 1.8rem;
  font-family: 'Outfit', sans-serif;
  font-weight: 400;
  font-size: 0.9rem;
  letter-spacing: 0.04em;
  cursor: pointer;
  transition: all 0.3s ease;
}

.neo-btn:hover {
  background: var(--neo-dark-deep);
  box-shadow: var(--neo-shadow-md);
  transform: translateY(-1px);
}

/* Secondary button -- outlined, subtle */
.neo-btn--secondary {
  background: transparent;
  color: var(--neo-text);
  border: 1px solid var(--neo-border);
  padding: 0.75rem 1.75rem;
}

.neo-btn--secondary:hover {
  border-color: var(--neo-text-secondary);
  background: var(--neo-bg-alt);
}

/* Accent button -- sage green for positive actions */
.neo-btn--accent {
  background: var(--neo-accent-primary);
  color: #FDFCF9;
}

.neo-btn--accent:hover {
  background: #7A8B6B;
  box-shadow: 0 2px 10px rgba(139, 154, 123, 0.2);
}

/* Ghost button -- minimal presence */
.neo-btn--ghost {
  background: transparent;
  color: var(--neo-text-secondary);
  border: none;
  padding: 0.75rem 1rem;
  text-decoration: underline;
  text-decoration-color: var(--neo-border);
  text-underline-offset: 3px;
}

.neo-btn--ghost:hover {
  color: var(--neo-text);
  text-decoration-color: var(--neo-text);
}
.neo-nav {
  position: sticky;
  top: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 2rem;
  background: rgba(250, 246, 240, 0.85);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(213, 202, 187, 0.4);
  transition: all 0.3s ease;
}

.neo-nav__logo {
  font-family: 'Fraunces', serif;
  font-size: 1.3rem;
  font-weight: 400;
  color: var(--neo-text);
  text-decoration: none;
  letter-spacing: -0.01em;
}

.neo-nav__links {
  display: flex;
  gap: 2rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.neo-nav__link {
  font-family: 'Manrope', sans-serif;
  font-size: 0.85rem;
  font-weight: 400;
  color: var(--neo-text-secondary);
  text-decoration: none;
  letter-spacing: 0.03em;
  transition: color 0.25s ease;
  position: relative;
}

.neo-nav__link:hover {
  color: var(--neo-text);
}

.neo-nav__link::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 0;
  height: 1px;
  background: var(--neo-accent-primary);
  transition: width 0.3s ease;
}

.neo-nav__link:hover::after {
  width: 100%;
}

Hero Section

.neo-hero {
  display: grid;
  grid-template-columns: 5fr 4fr;
  gap: 4rem;
  align-items: center;
  min-height: 85vh;
  padding: 6rem 2rem;
  max-width: 1200px;
  margin: 0 auto;
}

.neo-hero__content {
  max-width: 560px;
}

.neo-hero__overline {
  font-family: 'Manrope', sans-serif;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--neo-accent-primary);
  margin-bottom: 1.5rem;
}

.neo-hero__title {
  font-family: 'Fraunces', serif;
  font-size: clamp(2.6rem, 5.5vw, 4rem);
  font-weight: 300;
  line-height: 1.1;
  color: var(--neo-text);
  margin-bottom: 1.5rem;
  letter-spacing: -0.02em;
}

.neo-hero__description {
  font-size: 1.1rem;
  line-height: 1.7;
  color: var(--neo-text-secondary);
  margin-bottom: 2.5rem;
  max-width: 460px;
}

.neo-hero__image {
  border-radius: var(--neo-radius-xl);
  overflow: hidden;
  aspect-ratio: 4 / 5;
}

.neo-hero__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.85) contrast(0.95);
}

@media (max-width: 768px) {
  .neo-hero {
    grid-template-columns: 1fr;
    min-height: auto;
    padding: 4rem 1.5rem;
    gap: 2.5rem;
  }
}

Linen Texture Overlay

/* Subtle linen texture applied to any surface */
.neo-texture {
  position: relative;
}

.neo-texture::after {
  content: '';
  position: absolute;
  inset: 0;
  opacity: 0.03;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Crect width='1' height='1' x='0' y='1' fill='%237A6F63' opacity='0.4'/%3E%3Crect width='1' height='1' x='3' y='4' fill='%237A6F63' opacity='0.3'/%3E%3Crect width='1' height='1' x='6' y='0' fill='%237A6F63' opacity='0.35'/%3E%3Crect width='1' height='1' x='1' y='6' fill='%237A6F63' opacity='0.25'/%3E%3Crect width='1' height='1' x='5' y='7' fill='%237A6F63' opacity='0.3'/%3E%3C/svg%3E");
  background-size: 8px 8px;
  pointer-events: none;
  border-radius: inherit;
}

Warm Gradient Backgrounds

/* Parchment warmth -- default section gradient */
.neo-gradient-warm {
  background: linear-gradient(
    175deg,
    #FAF6F0 0%,
    #F0EBE3 45%,
    #E8E0D4 100%
  );
}

/* Sage breath -- subtle green undertone */
.neo-gradient-sage {
  background: linear-gradient(
    170deg,
    #FAF6F0 0%,
    rgba(139, 154, 123, 0.06) 50%,
    #F0EBE3 100%
  );
}

/* Clay warmth -- terracotta undertone for feature sections */
.neo-gradient-clay {
  background: linear-gradient(
    180deg,
    #F0EBE3 0%,
    rgba(196, 144, 122, 0.08) 50%,
    #FAF6F0 100%
  );
}

/* Dark mode -- warm charcoal gradient */
.neo-gradient-dark {
  background: linear-gradient(
    175deg,
    #2D2926 0%,
    #3A3430 45%,
    #4A3728 100%
  );
  color: #F0EBE3;
}

Section Dividers

/* Fade-in center divider */
.neo-divider {
  height: 1px;
  border: none;
  background: linear-gradient(
    90deg,
    transparent 0%,
    var(--neo-border) 25%,
    var(--neo-border) 75%,
    transparent 100%
  );
  margin: 5rem auto;
  max-width: 50%;
}

/* Dot accent divider */
.neo-divider--dot {
  height: auto;
  border: none;
  background: none;
  text-align: center;
  margin: 4rem auto;
}

.neo-divider--dot::before {
  content: '\2022  \2022  \2022';
  color: var(--neo-border);
  font-size: 0.6rem;
  letter-spacing: 0.8em;
}

Input Fields

.neo-input {
  width: 100%;
  background: var(--neo-surface-elevated);
  border: 1px solid var(--neo-border);
  border-radius: var(--neo-radius-md);
  padding: 0.85rem 1.1rem;
  font-family: 'Outfit', sans-serif;
  font-size: 0.95rem;
  color: var(--neo-text);
  transition: all 0.3s ease;
}

.neo-input:focus {
  outline: none;
  border-color: var(--neo-accent-primary);
  box-shadow: 0 0 0 3px rgba(139, 154, 123, 0.1);
  background: #FFFFFF;
}

.neo-input::placeholder {
  color: var(--neo-text-placeholder);
  font-weight: 300;
}

.neo-input-label {
  display: block;
  font-family: 'Manrope', sans-serif;
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: var(--neo-text-secondary);
  margin-bottom: 0.5rem;
}

Design Do’s and Don’ts

Do’s

Don’ts


Aesthetic Relationship
Minimalism Direct ancestor; Neo Minimalism evolves its reduction principles by adding warmth and texture
Japandi Close sibling; shares warm neutrals, natural textures, and wabi-sabi philosophy of meaningful imperfection
Quiet Luxury Fashion-world parallel; both reject excess while communicating sophistication through restraint and material quality
Hygge Shares the emphasis on cozy warmth and emotional comfort; Hygge is more overtly cozy while Neo Minimalism maintains clean lines
Scandinavian Design Functional simplicity and democratic design as shared foundations; Neo Minimalism adds more texture and editorial personality
Wabi-Sabi Philosophical influence; the Japanese concept of beauty in imperfection and transience underpins the organic, authentic character
Earth Tones Overlapping palette territory; both use warm browns, sages, and creams, though Earth Tones is more saturated and pattern-heavy
Flat Design Technical precursor; Neo Minimalism takes flat design’s clean interfaces and reintroduces depth through texture and warm shadows
Organic Modern Interior design sibling; both celebrate natural materials and curved forms, though Organic Modern is more sculptural
Light Skeuomorphism Shares the desire to reintroduce tactile depth to flat interfaces; both use subtle shadows and material references

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>Neo Minimalism -- Quick-Start Template</title>

  <!-- Google Fonts -->
  <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=Fraunces:opsz,wght@9..144,300;9..144,400;9..144,500&family=Outfit:wght@300;400;500&family=Manrope:wght@300;400;500&display=swap" rel="stylesheet">

  <style>
    /* ===================================================
       NEO MINIMALISM -- DESIGN TOKENS
       =================================================== */
    :root {
      /* Backgrounds */
      --neo-bg:               #FAF6F0;
      --neo-bg-alt:           #F0EBE3;
      --neo-surface:          #E8E0D4;
      --neo-surface-elevated: #FDFCF9;

      /* Borders */
      --neo-border:           #D5CABB;
      --neo-border-light:     #E8E0D4;

      /* Text */
      --neo-text:             #2D2926;
      --neo-text-secondary:   #7A6F63;
      --neo-text-muted:       #9E8E7E;
      --neo-text-placeholder: #C7B9A5;

      /* Accents */
      --neo-accent:           #8B9A7B;
      --neo-accent-secondary: #C4907A;
      --neo-accent-warm:      #D4A66A;

      /* Darks */
      --neo-dark:             #2D2926;
      --neo-dark-deep:        #4A3728;

      /* Radii */
      --neo-radius-sm:        6px;
      --neo-radius-md:        10px;
      --neo-radius-lg:        14px;
      --neo-radius-xl:        20px;

      /* Shadows */
      --neo-shadow-sm:  0 1px 3px rgba(45, 41, 38, 0.04);
      --neo-shadow-md:  0 2px 8px rgba(45, 41, 38, 0.06);
      --neo-shadow-lg:  0 4px 16px rgba(45, 41, 38, 0.08);

      /* Transitions */
      --neo-ease:       cubic-bezier(0.25, 0.46, 0.45, 0.94);
      --neo-duration:   0.35s;
    }

    /* ===================================================
       RESET & BASE
       =================================================== */
    *, *::before, *::after {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
    }

    html {
      scroll-behavior: smooth;
      -webkit-text-size-adjust: 100%;
    }

    body {
      font-family: 'Outfit', system-ui, -apple-system, sans-serif;
      font-weight: 400;
      font-size: 1.05rem;
      line-height: 1.72;
      color: var(--neo-text);
      background-color: var(--neo-bg);
      -webkit-font-smoothing: antialiased;
      text-rendering: optimizeLegibility;
    }

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

    a {
      color: var(--neo-accent);
      text-decoration: underline;
      text-decoration-color: var(--neo-border);
      text-underline-offset: 3px;
      transition: color var(--neo-duration) var(--neo-ease),
                  text-decoration-color var(--neo-duration) var(--neo-ease);
    }

    a:hover {
      color: var(--neo-text);
      text-decoration-color: var(--neo-text);
    }

    /* ===================================================
       TYPOGRAPHY
       =================================================== */
    h1, h2, h3, h4 {
      font-family: 'Fraunces', 'Georgia', serif;
      font-weight: 300;
      line-height: 1.15;
      color: var(--neo-text);
      letter-spacing: -0.01em;
    }

    h1 { font-size: clamp(2.4rem, 5vw, 3.8rem); letter-spacing: -0.02em; }
    h2 { font-size: clamp(1.6rem, 3.5vw, 2.2rem); font-weight: 400; }
    h3 { font-size: clamp(1.15rem, 2.5vw, 1.4rem); font-weight: 400; letter-spacing: 0.01em; }

    p {
      max-width: 42em;
      margin-bottom: 1.5em;
    }

    .overline {
      font-family: 'Manrope', sans-serif;
      font-size: 0.72rem;
      font-weight: 500;
      letter-spacing: 0.13em;
      text-transform: uppercase;
      color: var(--neo-accent);
      margin-bottom: 1rem;
      display: block;
    }

    .text-secondary {
      color: var(--neo-text-secondary);
    }

    .text-muted {
      color: var(--neo-text-muted);
    }

    /* ===================================================
       LAYOUT
       =================================================== */
    .container {
      max-width: 1140px;
      margin: 0 auto;
      padding: 0 2rem;
    }

    .container--narrow {
      max-width: 760px;
    }

    section {
      padding: 6rem 0;
    }

    /* ===================================================
       LINEN TEXTURE OVERLAY
       =================================================== */
    .texture::after {
      content: '';
      position: absolute;
      inset: 0;
      opacity: 0.025;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Crect width='1' height='1' x='0' y='1' fill='%237A6F63' opacity='0.4'/%3E%3Crect width='1' height='1' x='3' y='4' fill='%237A6F63' opacity='0.3'/%3E%3Crect width='1' height='1' x='6' y='0' fill='%237A6F63' opacity='0.35'/%3E%3Crect width='1' height='1' x='1' y='6' fill='%237A6F63' opacity='0.25'/%3E%3C/svg%3E");
      background-size: 8px 8px;
      pointer-events: none;
      border-radius: inherit;
    }

    /* ===================================================
       NAVIGATION
       =================================================== */
    .nav {
      position: sticky;
      top: 0;
      z-index: 100;
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 1.1rem 2rem;
      background: rgba(250, 246, 240, 0.88);
      backdrop-filter: blur(14px);
      -webkit-backdrop-filter: blur(14px);
      border-bottom: 1px solid rgba(213, 202, 187, 0.35);
    }

    .nav__logo {
      font-family: 'Fraunces', serif;
      font-size: 1.3rem;
      font-weight: 400;
      color: var(--neo-text);
      text-decoration: none;
      letter-spacing: -0.01em;
    }

    .nav__links {
      display: flex;
      gap: 2rem;
      list-style: none;
    }

    .nav__links a {
      font-family: 'Manrope', sans-serif;
      font-size: 0.85rem;
      font-weight: 400;
      color: var(--neo-text-secondary);
      text-decoration: none;
      letter-spacing: 0.03em;
      transition: color var(--neo-duration) var(--neo-ease);
    }

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

    /* ===================================================
       HERO SECTION
       =================================================== */
    .hero {
      display: grid;
      grid-template-columns: 5fr 4fr;
      gap: 4rem;
      align-items: center;
      min-height: 85vh;
      padding: 6rem 2rem 4rem;
      max-width: 1140px;
      margin: 0 auto;
    }

    .hero__content {
      max-width: 540px;
    }

    .hero__title {
      font-size: clamp(2.6rem, 5.5vw, 3.8rem);
      margin-bottom: 1.5rem;
      line-height: 1.08;
    }

    .hero__description {
      font-size: 1.1rem;
      line-height: 1.7;
      color: var(--neo-text-secondary);
      margin-bottom: 2.5rem;
      max-width: 440px;
    }

    .hero__actions {
      display: flex;
      gap: 1rem;
      flex-wrap: wrap;
    }

    .hero__image {
      border-radius: var(--neo-radius-xl);
      overflow: hidden;
      aspect-ratio: 4 / 5;
      position: relative;
    }

    .hero__image img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      filter: saturate(0.85) contrast(0.95);
    }

    /* ===================================================
       BUTTONS
       =================================================== */
    .btn {
      display: inline-flex;
      align-items: center;
      gap: 0.5rem;
      border: none;
      border-radius: var(--neo-radius-md);
      padding: 0.8rem 1.8rem;
      font-family: 'Outfit', sans-serif;
      font-weight: 400;
      font-size: 0.9rem;
      letter-spacing: 0.04em;
      cursor: pointer;
      transition: all var(--neo-duration) var(--neo-ease);
      text-decoration: none;
    }

    .btn--primary {
      background: var(--neo-dark);
      color: var(--neo-bg);
    }

    .btn--primary:hover {
      background: var(--neo-dark-deep);
      box-shadow: var(--neo-shadow-md);
      transform: translateY(-1px);
      color: var(--neo-bg);
    }

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

    .btn--secondary:hover {
      border-color: var(--neo-text-secondary);
      background: var(--neo-bg-alt);
      color: var(--neo-text);
    }

    .btn--accent {
      background: var(--neo-accent);
      color: #FDFCF9;
    }

    .btn--accent:hover {
      background: #7A8B6B;
      box-shadow: 0 2px 10px rgba(139, 154, 123, 0.2);
      color: #FDFCF9;
    }

    /* ===================================================
       DIVIDER
       =================================================== */
    .divider {
      height: 1px;
      border: none;
      background: linear-gradient(
        90deg,
        transparent 0%,
        var(--neo-border) 25%,
        var(--neo-border) 75%,
        transparent 100%
      );
      margin: 0 auto;
      max-width: 50%;
    }

    /* ===================================================
       FEATURE SECTION
       =================================================== */
    .features {
      background: var(--neo-bg-alt);
      position: relative;
    }

    .features__header {
      text-align: center;
      max-width: 560px;
      margin: 0 auto 4rem;
    }

    .features__grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 2rem;
    }

    /* ===================================================
       CARDS
       =================================================== */
    .card {
      background: var(--neo-surface-elevated);
      border: 1px solid var(--neo-border-light);
      border-radius: var(--neo-radius-lg);
      padding: 2rem 2rem 2.25rem;
      transition: all var(--neo-duration) var(--neo-ease);
      box-shadow: var(--neo-shadow-sm);
    }

    .card:hover {
      box-shadow: var(--neo-shadow-md);
      transform: translateY(-2px);
      border-color: var(--neo-border);
    }

    .card__icon {
      width: 40px;
      height: 40px;
      border-radius: var(--neo-radius-sm);
      background: rgba(139, 154, 123, 0.12);
      display: flex;
      align-items: center;
      justify-content: center;
      margin-bottom: 1.25rem;
      color: var(--neo-accent);
      font-size: 1.1rem;
    }

    .card__title {
      font-family: 'Fraunces', serif;
      font-size: 1.2rem;
      font-weight: 400;
      margin-bottom: 0.75rem;
      line-height: 1.3;
    }

    .card__body {
      font-size: 0.92rem;
      color: var(--neo-text-secondary);
      line-height: 1.65;
    }

    /* ===================================================
       QUOTE / TESTIMONIAL SECTION
       =================================================== */
    .quote-section {
      text-align: center;
      max-width: 720px;
      margin: 0 auto;
    }

    .quote-section blockquote {
      font-family: 'Fraunces', serif;
      font-size: clamp(1.3rem, 3vw, 1.8rem);
      font-weight: 300;
      font-style: italic;
      line-height: 1.55;
      color: var(--neo-text);
      border: none;
      padding: 0;
      margin: 0 auto 2rem;
      max-width: 600px;
    }

    .quote-section cite {
      display: block;
      font-family: 'Manrope', sans-serif;
      font-size: 0.8rem;
      font-style: normal;
      font-weight: 500;
      letter-spacing: 0.08em;
      color: var(--neo-text-muted);
    }

    /* ===================================================
       CONTENT SECTION (asymmetric split)
       =================================================== */
    .split {
      display: grid;
      grid-template-columns: 5fr 7fr;
      gap: 4rem;
      align-items: center;
      max-width: 1140px;
      margin: 0 auto;
      padding: 0 2rem;
    }

    .split--reverse {
      grid-template-columns: 7fr 5fr;
    }

    .split__image {
      border-radius: var(--neo-radius-lg);
      overflow: hidden;
      aspect-ratio: 5 / 4;
    }

    .split__image img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      filter: saturate(0.85) contrast(0.95);
    }

    /* ===================================================
       NEWSLETTER / CTA SECTION
       =================================================== */
    .cta {
      background: linear-gradient(
        175deg,
        var(--neo-bg-alt) 0%,
        rgba(139, 154, 123, 0.06) 50%,
        var(--neo-bg) 100%
      );
      text-align: center;
    }

    .cta__inner {
      max-width: 520px;
      margin: 0 auto;
    }

    .cta__form {
      display: flex;
      gap: 0.75rem;
      margin-top: 2rem;
    }

    .cta__input {
      flex: 1;
      background: var(--neo-surface-elevated);
      border: 1px solid var(--neo-border);
      border-radius: var(--neo-radius-md);
      padding: 0.85rem 1.1rem;
      font-family: 'Outfit', sans-serif;
      font-size: 0.95rem;
      color: var(--neo-text);
      transition: all 0.3s ease;
    }

    .cta__input:focus {
      outline: none;
      border-color: var(--neo-accent);
      box-shadow: 0 0 0 3px rgba(139, 154, 123, 0.1);
    }

    .cta__input::placeholder {
      color: var(--neo-text-placeholder);
      font-weight: 300;
    }

    /* ===================================================
       FOOTER
       =================================================== */
    .footer {
      background: var(--neo-dark);
      color: var(--neo-bg-alt);
      padding: 4rem 2rem 2.5rem;
    }

    .footer__inner {
      max-width: 1140px;
      margin: 0 auto;
      display: grid;
      grid-template-columns: 2fr 1fr 1fr 1fr;
      gap: 3rem;
    }

    .footer__brand {
      font-family: 'Fraunces', serif;
      font-size: 1.2rem;
      font-weight: 400;
      margin-bottom: 1rem;
      color: var(--neo-bg);
    }

    .footer__desc {
      font-size: 0.88rem;
      line-height: 1.6;
      color: var(--neo-text-muted);
      max-width: 280px;
    }

    .footer__heading {
      font-family: 'Manrope', sans-serif;
      font-size: 0.72rem;
      font-weight: 500;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: var(--neo-text-muted);
      margin-bottom: 1.25rem;
    }

    .footer__links {
      list-style: none;
    }

    .footer__links li {
      margin-bottom: 0.6rem;
    }

    .footer__links a {
      font-size: 0.88rem;
      color: #C7B9A5;
      text-decoration: none;
      transition: color 0.25s ease;
    }

    .footer__links a:hover {
      color: var(--neo-bg);
    }

    .footer__bottom {
      max-width: 1140px;
      margin: 3rem auto 0;
      padding-top: 2rem;
      border-top: 1px solid rgba(213, 202, 187, 0.15);
      display: flex;
      justify-content: space-between;
      align-items: center;
      font-size: 0.8rem;
      color: var(--neo-text-muted);
    }

    /* ===================================================
       RESPONSIVE
       =================================================== */
    @media (max-width: 900px) {
      .features__grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
      }

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

    @media (max-width: 768px) {
      .hero {
        grid-template-columns: 1fr;
        min-height: auto;
        padding: 4rem 1.5rem 3rem;
        gap: 2.5rem;
      }

      .split {
        grid-template-columns: 1fr;
        gap: 2.5rem;
      }

      .split--reverse {
        grid-template-columns: 1fr;
      }

      .nav__links {
        display: none; /* Mobile menu implementation left to developer */
      }

      .cta__form {
        flex-direction: column;
      }

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

      .footer__bottom {
        flex-direction: column;
        gap: 0.75rem;
        text-align: center;
      }
    }
  </style>
</head>
<body>

  <!-- ============================
       NAVIGATION
       ============================ -->
  <nav class="nav">
    <a href="#" class="nav__logo">Aura</a>
    <ul class="nav__links">
      <li><a href="#features">Features</a></li>
      <li><a href="#about">About</a></li>
      <li><a href="#testimonial">Stories</a></li>
      <li><a href="#newsletter">Subscribe</a></li>
    </ul>
  </nav>

  <!-- ============================
       HERO
       ============================ -->
  <section class="hero">
    <div class="hero__content">
      <span class="overline">Warmth in simplicity</span>
      <h1 class="hero__title">Design that feels<br>like coming home</h1>
      <p class="hero__description">
        We create spaces where simplicity meets soul -- where every element
        exists with purpose, and every surface invites you to stay a little longer.
      </p>
      <div class="hero__actions">
        <a href="#" class="btn btn--primary">Explore our work</a>
        <a href="#" class="btn btn--secondary">Learn more</a>
      </div>
    </div>
    <div class="hero__image">
      <img src="https://images.unsplash.com/photo-1600585154340-be6161a56a0c?w=800&h=1000&fit=crop&crop=center"
           alt="Warm minimalist interior with natural light and textured surfaces"
           loading="lazy">
    </div>
  </section>

  <hr class="divider">

  <!-- ============================
       FEATURES
       ============================ -->
  <section class="features" id="features">
    <div class="container">
      <div class="features__header">
        <span class="overline">Our principles</span>
        <h2>Less, but meaningful</h2>
        <p class="text-secondary" style="margin-top: 1rem;">
          Every choice we make is intentional. We strip away the unnecessary
          to reveal what truly matters -- warmth, clarity, and human connection.
        </p>
      </div>
      <div class="features__grid">
        <div class="card">
          <div class="card__icon">&#9675;</div>
          <h3 class="card__title">Intentional simplicity</h3>
          <p class="card__body">
            Every element earns its place through function or emotional
            contribution. What remains is essential and purposeful.
          </p>
        </div>
        <div class="card">
          <div class="card__icon">&#9674;</div>
          <h3 class="card__title">Tactile warmth</h3>
          <p class="card__body">
            Natural textures, warm neutrals, and organic forms create
            surfaces that feel alive and invite the sense of touch.
          </p>
        </div>
        <div class="card">
          <div class="card__icon">&#9725;</div>
          <h3 class="card__title">Breathing space</h3>
          <p class="card__body">
            Generous negative space gives every element room to exist
            without competition, creating a calm visual rhythm.
          </p>
        </div>
      </div>
    </div>
  </section>

  <hr class="divider">

  <!-- ============================
       ABOUT / SPLIT SECTION
       ============================ -->
  <section id="about">
    <div class="split">
      <div class="split__image">
        <img src="https://images.unsplash.com/photo-1586023492125-27b2c045efd7?w=700&h=560&fit=crop"
             alt="Natural textures -- clay, linen, and warm wood in soft light"
             loading="lazy">
      </div>
      <div>
        <span class="overline">Our philosophy</span>
        <h2>Simplicity that resonates</h2>
        <p class="text-secondary" style="margin-top: 1rem;">
          Neo Minimalism is not about emptiness. It is about finding the exact
          point where restraint becomes comfort -- where every texture tells a
          story and every space invites you to breathe. We believe the most
          powerful designs are the ones you feel before you see.
        </p>
        <a href="#" class="btn btn--accent" style="margin-top: 0.5rem;">Discover our process</a>
      </div>
    </div>
  </section>

  <hr class="divider">

  <!-- ============================
       TESTIMONIAL / QUOTE
       ============================ -->
  <section id="testimonial">
    <div class="container">
      <div class="quote-section">
        <span class="overline">What they say</span>
        <blockquote>
          &ldquo;They understood that minimalism is not about taking things
          away -- it is about making room for what matters. Every detail
          feels considered, every space feels intentional.&rdquo;
        </blockquote>
        <cite>Elena Vasquez, Creative Director</cite>
      </div>
    </div>
  </section>

  <hr class="divider">

  <!-- ============================
       NEWSLETTER / CTA
       ============================ -->
  <section class="cta" id="newsletter">
    <div class="container">
      <div class="cta__inner">
        <span class="overline">Stay connected</span>
        <h2>Quiet reflections,<br>delivered thoughtfully</h2>
        <p class="text-secondary" style="margin-top: 1rem;">
          A monthly letter on intentional design, warm minimalism,
          and the art of meaningful simplicity. No noise, just substance.
        </p>
        <form class="cta__form" onsubmit="return false;">
          <input type="email"
                 class="cta__input"
                 placeholder="your@email.com"
                 aria-label="Email address">
          <button type="submit" class="btn btn--primary">Subscribe</button>
        </form>
      </div>
    </div>
  </section>

  <!-- ============================
       FOOTER
       ============================ -->
  <footer class="footer">
    <div class="footer__inner">
      <div>
        <div class="footer__brand">Aura</div>
        <p class="footer__desc">
          Design studio practicing warm minimalism -- creating spaces and
          experiences where simplicity meets soul.
        </p>
      </div>
      <div>
        <div class="footer__heading">Studio</div>
        <ul class="footer__links">
          <li><a href="#">About</a></li>
          <li><a href="#">Work</a></li>
          <li><a href="#">Process</a></li>
          <li><a href="#">Careers</a></li>
        </ul>
      </div>
      <div>
        <div class="footer__heading">Resources</div>
        <ul class="footer__links">
          <li><a href="#">Journal</a></li>
          <li><a href="#">Guidelines</a></li>
          <li><a href="#">Newsletter</a></li>
          <li><a href="#">Press</a></li>
        </ul>
      </div>
      <div>
        <div class="footer__heading">Connect</div>
        <ul class="footer__links">
          <li><a href="#">Instagram</a></li>
          <li><a href="#">Dribbble</a></li>
          <li><a href="#">LinkedIn</a></li>
          <li><a href="#">Email</a></li>
        </ul>
      </div>
    </div>
    <div class="footer__bottom">
      <span>&copy; 2026 Aura Studio. All rights reserved.</span>
      <span>Crafted with intention</span>
    </div>
  </footer>

</body>
</html>

Implementation Tips