website_designs

Organic Modern Design Reference

Overview

Organic Modern is a contemporary design aesthetic that harmonizes the clean, uncluttered lines of modern minimalism with the warmth, texture, and irregularity of the natural world. It emerged in the late 2010s as a reaction against cold, sterile minimalism and overly curated industrial interiors, drawing influence from Scandinavian functionalism, Japanese wabi-sabi philosophy, mid-century organic architecture (particularly the work of Frank Lloyd Wright and Alvar Aalto), and the broader biophilic design movement. The style prioritizes natural materials – wood, stone, linen, clay, rattan, and wool – and softens rigid modern geometry with curved silhouettes, organic shapes, and tactile surfaces that invite touch.

At its core, Organic Modern is about creating spaces and interfaces that feel both refined and lived-in: sophisticated enough to convey intentionality, yet warm enough to feel like a place you want to linger. Color palettes are drawn from the landscape – warm sand, soft clay, weathered stone, dried sage, and muted terracotta – layered with creamy whites and deep charcoals rather than harsh pure black or pure white. Typography is clean and humanist, favoring soft serifs and rounded sans-serifs over geometric or mechanical typefaces. Layouts breathe with generous whitespace, asymmetric compositions, and a preference for horizontal, grounded proportions over tall, dramatic structures.

On the web, Organic Modern translates into interfaces that combine the usability rigor of flat and minimal design with subtle textural depth, soft shadows, rounded corners, and nature-inspired imagery. It rejects ornamentation for its own sake but welcomes visual warmth through material-honest textures, muted gradients, and biophilic photography. Buttons feel smooth and tactile, cards sit gently on surfaces with barely-there shadows, and transitions are slow and deliberate rather than snappy or bouncy. The overall impression is one of quiet luxury – a digital environment that feels handcrafted, grounded, and deeply connected to the physical world.


Visual Characteristics

Core Design Traits

Design Principles


Color Palette

Organic Modern palettes are drawn directly from the natural landscape: the warm sand of a riverbed, the soft gray of weathered stone, the muted green of dried sage, the rich brown of raw clay. Colors are desaturated, warm-leaning, and tonal – building depth through value shifts within a narrow hue range rather than through bold chromatic contrast. Avoid pure black (#000) and pure white (#FFF); substitute with deep charcoal-brown and warm off-white to maintain the organic warmth throughout.

Swatch Hex Role/Usage
#FAF6F0 #FAF6F0 Page background – warm parchment white
#F0EBE3 #F0EBE3 Surface / card background – soft linen
#E4DCD3 #E4DCD3 Alternate surface – warm sand
#D4C9BD #D4C9BD Borders and dividers – pale driftwood
#B8A99A #B8A99A Secondary text / muted elements – river stone
#A47864 #A47864 Primary warm accent – mocha clay
#8B6F5E #8B6F5E Warm brown – walnut wood
#6B5445 #6B5445 Deep warm brown – dark timber
#C2A68C #C2A68C Warm gold accent – raw honey
#8A9A7B #8A9A7B Muted sage green – dried herb
#6B7F5E #6B7F5E Deep sage – forest moss
#BFA98F #BFA98F Soft terracotta – sun-dried clay
#C4AE96 #C4AE96 Light warm tan – sandstone
#3B332D #3B332D Primary text – deep charcoal-brown
#5C534B #5C534B Secondary text – warm dark gray

CSS Custom Properties

:root {
  /* Backgrounds */
  --om-bg-primary: #FAF6F0;
  --om-bg-surface: #F0EBE3;
  --om-bg-surface-alt: #E4DCD3;

  /* Neutrals */
  --om-sand: #D4C9BD;
  --om-stone: #B8A99A;
  --om-sandstone: #C4AE96;

  /* Warm browns */
  --om-clay: #A47864;
  --om-walnut: #8B6F5E;
  --om-timber: #6B5445;
  --om-honey: #C2A68C;
  --om-terracotta: #BFA98F;

  /* Greens */
  --om-sage: #8A9A7B;
  --om-moss: #6B7F5E;

  /* Text */
  --om-text-primary: #3B332D;
  --om-text-secondary: #5C534B;
  --om-text-muted: #B8A99A;

  /* Borders */
  --om-border: #D4C9BD;
  --om-border-light: #E4DCD3;

  /* Functional aliases */
  --om-accent: var(--om-clay);
  --om-accent-secondary: var(--om-sage);
  --om-heading: var(--om-timber);

  /* Radii */
  --om-radius-sm: 8px;
  --om-radius-md: 12px;
  --om-radius-lg: 20px;
  --om-radius-xl: 28px;
  --om-radius-pill: 50px;
  --om-radius-round: 50%;
}

Typography

Organic Modern typography is clean, humanist, and quietly warm. Headings use refined serifs or soft humanist sans-serifs that convey natural elegance without stiffness. Body text favors highly readable, open sans-serifs with generous x-heights and rounded terminals. The overall typographic tone is one of calm confidence – neither cold and geometric nor overly decorative. Weight usage is restrained: light to regular for body, medium for headings, and bold used only sparingly for emphasis. Line heights are generous (1.6-1.8 for body) to create a spacious, breathable reading experience.

Font Style Usage
DM Serif Display Warm, refined serif Display headlines, hero text
Lora Humanist calligraphic serif Headlines, subheadings
Source Serif 4 Organic, warm serif Long-form body text, editorials
DM Sans Geometric humanist sans Body text, UI elements
Inter Neutral humanist sans Body text, interfaces
Outfit Soft geometric sans Headlines, navigation, labels
Nunito Rounded sans-serif Buttons, captions, friendly UI
Cormorant Garamond Elegant light serif Pull quotes, accent text
Josefin Sans Thin geometric sans Display text, uppercase labels
Caveat Casual handwritten Annotations, personal accents

Suggested Font Pairings

Heading Font Body Font Character
DM Serif Display DM Sans Warm elegance with clean readability
Lora Inter Classic organic warmth, modern body
Outfit Source Serif 4 Soft modern headings, rich readable body
Josefin Sans Nunito Airy minimal headings, friendly body text
Cormorant Garamond DM Sans Refined editorial display, clean UI body

Typography CSS Example

/* Import from Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display&family=DM+Sans:wght@300;400;500&family=Lora:ital,wght@0,400;0,500;1,400&family=Outfit:wght@300;400;500&family=Nunito:wght@400;600&display=swap');

/* Headings -- warm, organic serif */
h1, h2, h3 {
  font-family: 'DM Serif Display', 'Lora', Georgia, serif;
  color: var(--om-heading);
  font-weight: 400;
  line-height: 1.25;
  letter-spacing: -0.01em;
}

h1 {
  font-size: clamp(2.5rem, 5vw, 4rem);
  line-height: 1.15;
}

h2 {
  font-size: clamp(1.75rem, 3vw, 2.5rem);
}

h3 {
  font-size: clamp(1.25rem, 2vw, 1.5rem);
  font-family: 'Outfit', 'DM Sans', sans-serif;
  font-weight: 500;
  letter-spacing: 0.01em;
}

/* Body text -- clean, humanist sans */
body {
  font-family: 'DM Sans', 'Inter', -apple-system, sans-serif;
  font-weight: 400;
  font-size: 1rem;
  line-height: 1.75;
  color: var(--om-text-primary);
  letter-spacing: 0.01em;
}

/* Uppercase labels */
.label-organic {
  font-family: 'Outfit', 'DM Sans', sans-serif;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--om-text-muted);
}

/* Pull quote / accent text */
.organic-quote {
  font-family: 'Lora', 'Cormorant Garamond', Georgia, serif;
  font-style: italic;
  font-size: 1.3rem;
  line-height: 1.6;
  color: var(--om-walnut);
}

Layout Principles


CSS / Design Techniques

Card Component

/* Organic Modern card -- soft, grounded, tactile */
.om-card {
  background: var(--om-bg-surface);
  border: 1px solid var(--om-border-light);
  border-radius: var(--om-radius-lg);
  padding: 2rem;
  box-shadow:
    0 1px 3px rgba(59, 51, 45, 0.04),
    0 4px 16px rgba(59, 51, 45, 0.03);
  transition: box-shadow 0.4s ease, transform 0.4s ease;
}

.om-card:hover {
  box-shadow:
    0 2px 6px rgba(59, 51, 45, 0.06),
    0 8px 24px rgba(59, 51, 45, 0.05);
  transform: translateY(-2px);
}

/* Card with organic accent border */
.om-card--accent {
  border-left: 3px solid var(--om-clay);
  border-radius: 4px var(--om-radius-lg) var(--om-radius-lg) 4px;
}

/* Card with image -- rounded image top */
.om-card img {
  width: 100%;
  border-radius: var(--om-radius-md) var(--om-radius-md) 0 0;
  margin: -2rem -2rem 1.5rem -2rem;
  width: calc(100% + 4rem);
  object-fit: cover;
}

Button Styles

/* Primary button -- warm, tactile, rounded */
.om-btn {
  font-family: 'Outfit', 'DM Sans', sans-serif;
  font-weight: 500;
  font-size: 0.9rem;
  letter-spacing: 0.04em;
  padding: 0.8rem 2rem;
  border: none;
  border-radius: var(--om-radius-pill);
  cursor: pointer;
  transition: all 0.35s ease;
}

.om-btn--primary {
  background: var(--om-timber);
  color: var(--om-bg-primary);
}

.om-btn--primary:hover {
  background: var(--om-clay);
  box-shadow: 0 4px 16px rgba(107, 84, 69, 0.2);
  transform: translateY(-1px);
}

/* Secondary button -- soft outline */
.om-btn--secondary {
  background: transparent;
  color: var(--om-timber);
  border: 1.5px solid var(--om-border);
}

.om-btn--secondary:hover {
  border-color: var(--om-clay);
  background: rgba(164, 120, 100, 0.06);
  color: var(--om-clay);
}

/* Subtle text button */
.om-btn--ghost {
  background: transparent;
  color: var(--om-clay);
  border: none;
  padding: 0.6rem 1rem;
  text-decoration: underline;
  text-decoration-color: var(--om-border);
  text-underline-offset: 4px;
}

.om-btn--ghost:hover {
  text-decoration-color: var(--om-clay);
}
/* Organic Modern navigation -- warm, understated, grounded */
.om-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.25rem 2.5rem;
  background: var(--om-bg-primary);
  border-bottom: 1px solid var(--om-border-light);
  font-family: 'Outfit', 'DM Sans', sans-serif;
  position: sticky;
  top: 0;
  z-index: 100;
  backdrop-filter: blur(12px);
  background: rgba(250, 246, 240, 0.9);
}

.om-nav__brand {
  font-family: 'DM Serif Display', serif;
  font-size: 1.4rem;
  color: var(--om-heading);
  text-decoration: none;
}

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

.om-nav__links a {
  color: var(--om-text-secondary);
  text-decoration: none;
  font-weight: 400;
  font-size: 0.9rem;
  letter-spacing: 0.03em;
  transition: color 0.3s ease;
  position: relative;
}

.om-nav__links a:hover {
  color: var(--om-clay);
}

.om-nav__links a::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 0;
  height: 1.5px;
  background: var(--om-clay);
  transition: width 0.3s ease;
}

.om-nav__links a:hover::after {
  width: 100%;
}

Hero Section

/* Organic Modern hero -- calm, spacious, nature-grounded */
.om-hero {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  min-height: 70vh;
  padding: 6rem 2rem;
  text-align: center;
  position: relative;
  overflow: hidden;
  background: linear-gradient(
    170deg,
    var(--om-bg-primary) 0%,
    var(--om-bg-surface) 50%,
    rgba(138, 154, 123, 0.06) 100%
  );
}

/* Decorative organic blob */
.om-hero::before {
  content: '';
  position: absolute;
  width: 600px;
  height: 600px;
  border-radius: 47% 53% 61% 39% / 45% 51% 49% 55%;
  background: radial-gradient(
    ellipse at 30% 40%,
    rgba(164, 120, 100, 0.06) 0%,
    rgba(164, 120, 100, 0.02) 50%,
    transparent 70%
  );
  top: -150px;
  right: -100px;
  pointer-events: none;
  animation: organic-float 20s ease-in-out infinite;
}

.om-hero::after {
  content: '';
  position: absolute;
  width: 400px;
  height: 400px;
  border-radius: 53% 47% 39% 61% / 55% 45% 55% 45%;
  background: radial-gradient(
    ellipse at 60% 50%,
    rgba(138, 154, 123, 0.05) 0%,
    transparent 60%
  );
  bottom: -100px;
  left: -80px;
  pointer-events: none;
  animation: organic-float 25s ease-in-out infinite reverse;
}

@keyframes organic-float {
  0%, 100% { transform: translate(0, 0) rotate(0deg); }
  33% { transform: translate(10px, -10px) rotate(2deg); }
  66% { transform: translate(-5px, 5px) rotate(-1deg); }
}

.om-hero h1 {
  font-size: clamp(2.5rem, 6vw, 4.5rem);
  color: var(--om-heading);
  margin-bottom: 1.25rem;
  position: relative;
  z-index: 1;
}

.om-hero p {
  font-size: 1.15rem;
  color: var(--om-text-secondary);
  max-width: 540px;
  margin: 0 auto 2rem;
  position: relative;
  z-index: 1;
}

Organic Texture Overlay

/* Subtle linen texture for backgrounds */
.om-linen-texture {
  position: relative;
}

.om-linen-texture::after {
  content: '';
  position: absolute;
  inset: 0;
  opacity: 0.02;
  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='0' fill='%235C534B' opacity='0.5'/%3E%3Crect width='1' height='1' x='4' y='4' fill='%235C534B' opacity='0.3'/%3E%3Crect width='1' height='1' x='2' y='6' fill='%235C534B' opacity='0.4'/%3E%3Crect width='1' height='1' x='6' y='2' fill='%235C534B' opacity='0.2'/%3E%3C/svg%3E");
  background-size: 8px 8px;
  pointer-events: none;
  border-radius: inherit;
}

Organic Shape Divider

/* Wavy SVG section divider */
.om-wave-divider {
  width: 100%;
  height: 60px;
  overflow: hidden;
  position: relative;
}

.om-wave-divider svg {
  display: block;
  width: 100%;
  height: 100%;
}

/* Simple CSS organic divider */
.om-organic-divider {
  border: none;
  height: auto;
  text-align: center;
  margin: 4rem auto;
}

.om-organic-divider::before {
  content: '';
  display: inline-block;
  width: 80px;
  height: 2px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    var(--om-sand) 30%,
    var(--om-clay) 50%,
    var(--om-sand) 70%,
    transparent 100%
  );
  border-radius: 2px;
}

Warm Gradient Backgrounds

/* Sunrise warmth -- default organic modern atmosphere */
.om-gradient-sunrise {
  background: linear-gradient(
    170deg,
    #FAF6F0 0%,
    #F0EBE3 40%,
    rgba(191, 169, 143, 0.12) 100%
  );
}

/* Forest breath -- subtle sage undertone */
.om-gradient-forest {
  background: linear-gradient(
    175deg,
    #FAF6F0 0%,
    rgba(138, 154, 123, 0.06) 50%,
    #F0EBE3 100%
  );
}

/* Clay earth -- warm grounded footer/section */
.om-gradient-earth {
  background: linear-gradient(
    180deg,
    #F0EBE3 0%,
    #E4DCD3 60%,
    rgba(164, 120, 100, 0.1) 100%
  );
}

Input Fields

/* Organic Modern form inputs */
.om-input {
  font-family: 'DM Sans', sans-serif;
  font-size: 0.95rem;
  padding: 0.85rem 1.25rem;
  border: 1.5px solid var(--om-border);
  border-radius: var(--om-radius-md);
  background: var(--om-bg-primary);
  color: var(--om-text-primary);
  transition: all 0.3s ease;
  width: 100%;
}

.om-input:focus {
  outline: none;
  border-color: var(--om-clay);
  background: #FFFFFF;
  box-shadow: 0 0 0 4px rgba(164, 120, 100, 0.08);
}

.om-input::placeholder {
  color: var(--om-stone);
  letter-spacing: 0.02em;
}

/* Textarea with organic feel */
.om-textarea {
  min-height: 120px;
  resize: vertical;
  border-radius: var(--om-radius-lg);
}

Design Do’s and Don’ts

Do’s

Don’ts


Aesthetic Relationship to Organic Modern
Japandi Closest sibling; shares warm neutrals, natural materials, and minimalism, but Japandi leans more toward Japanese-Scandinavian cultural fusion and wabi-sabi imperfection
Earth Tones Shares the warm brown/beige/green palette but Earth Tones is more retro (1970s), bolder, and uses supergraphic shapes
Hygge Overlapping warmth and comfort; Hygge is cozier and more textile-focused, while Organic Modern is cleaner and more architectural
Scandinavian Design The modern, functional foundation that Organic Modern softens with natural warmth and curved forms
Wabi-Sabi Philosophical ancestor; Organic Modern adopts the embrace of imperfection and natural materials but applies them in a more refined, contemporary framework
Biophilic Design Shares the commitment to nature integration; Biophilic is a broader architectural movement while Organic Modern is a specific visual aesthetic
Minimalism Organic Modern’s structural skeleton; pure Minimalism is colder and more austere, while Organic Modern adds warmth and texture
Cottagecore Both celebrate natural materials and warmth, but Cottagecore is nostalgic, rural, and maximalist where Organic Modern is contemporary and restrained
Coastal Style Shares the calm, light, natural palette; Coastal is more blue/white and beach-specific, while Organic Modern is landlocked and earth-focused
Craftcore Overlapping appreciation for handmade textures and material honesty; Craftcore is more visibly artisanal and rustic
Mid-Century Modern Organic Modern borrows the organic furniture forms and clean lines of MCM but replaces its bold color confidence with warmer, more muted tones

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>Organic Modern</title>
  <link href="https://fonts.googleapis.com/css2?family=DM+Serif+Display&family=DM+Sans:wght@300;400;500&family=Outfit:wght@300;400;500&family=Lora:ital,wght@0,400;1,400&display=swap" rel="stylesheet">
  <style>
    /* ============================================
       ORGANIC MODERN -- Quick-Start Template
       ============================================ */

    :root {
      /* Backgrounds */
      --om-bg-primary: #FAF6F0;
      --om-bg-surface: #F0EBE3;
      --om-bg-surface-alt: #E4DCD3;

      /* Neutrals */
      --om-sand: #D4C9BD;
      --om-stone: #B8A99A;
      --om-sandstone: #C4AE96;

      /* Warm browns */
      --om-clay: #A47864;
      --om-walnut: #8B6F5E;
      --om-timber: #6B5445;
      --om-honey: #C2A68C;
      --om-terracotta: #BFA98F;

      /* Greens */
      --om-sage: #8A9A7B;
      --om-moss: #6B7F5E;

      /* Text */
      --om-text-primary: #3B332D;
      --om-text-secondary: #5C534B;
      --om-text-muted: #B8A99A;

      /* Borders */
      --om-border: #D4C9BD;
      --om-border-light: #E4DCD3;

      /* Aliases */
      --om-accent: var(--om-clay);
      --om-heading: var(--om-timber);

      /* Radii */
      --om-radius-sm: 8px;
      --om-radius-md: 12px;
      --om-radius-lg: 20px;
      --om-radius-xl: 28px;
      --om-radius-pill: 50px;
    }

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

    /* ---- Base ---- */
    html {
      scroll-behavior: smooth;
    }

    body {
      font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif;
      font-weight: 400;
      font-size: 1rem;
      line-height: 1.75;
      color: var(--om-text-primary);
      background: var(--om-bg-primary);
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
    }

    h1, h2, h3 {
      font-family: 'DM Serif Display', 'Lora', Georgia, serif;
      font-weight: 400;
      color: var(--om-heading);
      line-height: 1.2;
    }

    h1 { font-size: clamp(2.5rem, 5vw, 4rem); }
    h2 { font-size: clamp(1.75rem, 3.5vw, 2.5rem); margin-bottom: 1rem; }
    h3 { font-size: 1.25rem; font-family: 'Outfit', sans-serif; font-weight: 500; }

    p {
      max-width: 38em;
      margin-bottom: 1.5em;
      color: var(--om-text-secondary);
    }

    a {
      color: var(--om-clay);
      text-decoration: underline;
      text-decoration-color: var(--om-sand);
      text-underline-offset: 3px;
      transition: color 0.3s ease, text-decoration-color 0.3s ease;
    }

    a:hover {
      color: var(--om-timber);
      text-decoration-color: var(--om-clay);
    }

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

    /* ---- Navigation ---- */
    .nav {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 1.25rem 2.5rem;
      background: rgba(250, 246, 240, 0.92);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border-bottom: 1px solid var(--om-border-light);
      position: sticky;
      top: 0;
      z-index: 100;
    }

    .nav__brand {
      font-family: 'DM Serif Display', serif;
      font-size: 1.4rem;
      color: var(--om-heading);
      text-decoration: none;
    }

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

    .nav__links a {
      color: var(--om-text-secondary);
      text-decoration: none;
      font-family: 'Outfit', sans-serif;
      font-size: 0.9rem;
      font-weight: 400;
      letter-spacing: 0.03em;
      transition: color 0.3s ease;
    }

    .nav__links a:hover {
      color: var(--om-clay);
    }

    /* ---- Hero Section ---- */
    .hero {
      display: flex;
      align-items: center;
      justify-content: center;
      flex-direction: column;
      text-align: center;
      min-height: 75vh;
      padding: 6rem 2rem;
      position: relative;
      overflow: hidden;
      background: linear-gradient(
        170deg,
        var(--om-bg-primary) 0%,
        var(--om-bg-surface) 50%,
        rgba(138, 154, 123, 0.05) 100%
      );
    }

    /* Decorative organic blobs */
    .hero::before {
      content: '';
      position: absolute;
      width: 550px;
      height: 550px;
      border-radius: 47% 53% 61% 39% / 45% 51% 49% 55%;
      background: radial-gradient(
        ellipse at 30% 40%,
        rgba(164, 120, 100, 0.06) 0%,
        rgba(164, 120, 100, 0.02) 50%,
        transparent 70%
      );
      top: -120px;
      right: -80px;
      pointer-events: none;
      animation: blob-drift 22s ease-in-out infinite;
    }

    .hero::after {
      content: '';
      position: absolute;
      width: 400px;
      height: 400px;
      border-radius: 53% 47% 39% 61% / 55% 45% 55% 45%;
      background: radial-gradient(
        ellipse at 60% 50%,
        rgba(138, 154, 123, 0.05) 0%,
        transparent 60%
      );
      bottom: -80px;
      left: -60px;
      pointer-events: none;
      animation: blob-drift 28s ease-in-out infinite reverse;
    }

    @keyframes blob-drift {
      0%, 100% { transform: translate(0, 0) rotate(0deg); }
      33% { transform: translate(12px, -8px) rotate(2deg); }
      66% { transform: translate(-6px, 6px) rotate(-1deg); }
    }

    .hero h1 {
      margin-bottom: 1.25rem;
      position: relative;
      z-index: 1;
    }

    .hero p {
      font-size: 1.15rem;
      max-width: 520px;
      margin: 0 auto 2.5rem;
      position: relative;
      z-index: 1;
    }

    .hero__label {
      font-family: 'Outfit', sans-serif;
      font-size: 0.75rem;
      font-weight: 500;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: var(--om-text-muted);
      margin-bottom: 1.5rem;
      position: relative;
      z-index: 1;
    }

    .hero__actions {
      display: flex;
      gap: 1rem;
      position: relative;
      z-index: 1;
    }

    /* ---- Buttons ---- */
    .btn {
      font-family: 'Outfit', sans-serif;
      font-weight: 500;
      font-size: 0.9rem;
      letter-spacing: 0.04em;
      padding: 0.8rem 2rem;
      border: none;
      border-radius: var(--om-radius-pill);
      cursor: pointer;
      transition: all 0.35s ease;
      text-decoration: none;
      display: inline-flex;
      align-items: center;
      gap: 0.5rem;
    }

    .btn--primary {
      background: var(--om-timber);
      color: var(--om-bg-primary);
    }

    .btn--primary:hover {
      background: var(--om-clay);
      box-shadow: 0 4px 16px rgba(107, 84, 69, 0.2);
      transform: translateY(-1px);
    }

    .btn--secondary {
      background: transparent;
      color: var(--om-timber);
      border: 1.5px solid var(--om-border);
    }

    .btn--secondary:hover {
      border-color: var(--om-clay);
      background: rgba(164, 120, 100, 0.06);
      color: var(--om-clay);
    }

    /* ---- Section ---- */
    .section {
      max-width: 1100px;
      margin: 0 auto;
      padding: 5rem 2rem;
    }

    .section--narrow {
      max-width: 800px;
    }

    .section__label {
      font-family: 'Outfit', sans-serif;
      font-size: 0.75rem;
      font-weight: 500;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: var(--om-text-muted);
      margin-bottom: 0.75rem;
    }

    .section__header {
      margin-bottom: 3rem;
    }

    /* ---- Organic Divider ---- */
    .divider {
      border: none;
      text-align: center;
      margin: 0;
      padding: 2rem 0;
    }

    .divider::before {
      content: '';
      display: inline-block;
      width: 80px;
      height: 2px;
      background: linear-gradient(
        90deg,
        transparent 0%,
        var(--om-sand) 30%,
        var(--om-clay) 50%,
        var(--om-sand) 70%,
        transparent 100%
      );
      border-radius: 2px;
    }

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

    .card {
      background: var(--om-bg-surface);
      border: 1px solid var(--om-border-light);
      border-radius: var(--om-radius-lg);
      padding: 2rem;
      box-shadow:
        0 1px 3px rgba(59, 51, 45, 0.04),
        0 4px 16px rgba(59, 51, 45, 0.03);
      transition: box-shadow 0.4s ease, transform 0.4s ease;
    }

    .card:hover {
      box-shadow:
        0 2px 6px rgba(59, 51, 45, 0.06),
        0 8px 24px rgba(59, 51, 45, 0.05);
      transform: translateY(-2px);
    }

    .card__icon {
      width: 48px;
      height: 48px;
      border-radius: var(--om-radius-md);
      background: var(--om-bg-surface-alt);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1.4rem;
      margin-bottom: 1.25rem;
      color: var(--om-clay);
    }

    .card h3 {
      margin-bottom: 0.75rem;
      color: var(--om-timber);
    }

    .card p {
      font-size: 0.95rem;
      margin-bottom: 0;
      color: var(--om-text-secondary);
    }

    /* ---- Split Section (Asymmetric) ---- */
    .split {
      display: grid;
      grid-template-columns: 1fr 1.2fr;
      gap: 4rem;
      align-items: center;
      max-width: 1100px;
      margin: 0 auto;
      padding: 5rem 2rem;
    }

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

    .split__image {
      border-radius: var(--om-radius-xl);
      overflow: hidden;
      background: var(--om-bg-surface-alt);
      aspect-ratio: 4 / 3;
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--om-stone);
      font-family: 'Outfit', sans-serif;
      font-size: 0.85rem;
      letter-spacing: 0.06em;
    }

    .split__content h2 {
      margin-bottom: 1rem;
    }

    /* ---- Testimonial / Quote ---- */
    .quote-section {
      background: var(--om-bg-surface);
      padding: 5rem 2rem;
      text-align: center;
    }

    .quote {
      font-family: 'Lora', Georgia, serif;
      font-style: italic;
      font-size: clamp(1.2rem, 2.5vw, 1.6rem);
      line-height: 1.7;
      color: var(--om-walnut);
      max-width: 640px;
      margin: 0 auto 1.5rem;
    }

    .quote-author {
      font-family: 'Outfit', sans-serif;
      font-size: 0.8rem;
      font-weight: 500;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--om-text-muted);
    }

    /* ---- Contact / Form Section ---- */
    .form-section {
      max-width: 600px;
      margin: 0 auto;
      padding: 5rem 2rem;
      text-align: center;
    }

    .form-section form {
      display: flex;
      flex-direction: column;
      gap: 1.25rem;
      margin-top: 2rem;
      text-align: left;
    }

    .form-section label {
      font-family: 'Outfit', sans-serif;
      font-size: 0.8rem;
      font-weight: 500;
      letter-spacing: 0.06em;
      color: var(--om-text-secondary);
      margin-bottom: 0.25rem;
      display: block;
    }

    .form-section input,
    .form-section textarea {
      font-family: 'DM Sans', sans-serif;
      font-size: 0.95rem;
      padding: 0.85rem 1.25rem;
      border: 1.5px solid var(--om-border);
      border-radius: var(--om-radius-md);
      background: var(--om-bg-primary);
      color: var(--om-text-primary);
      transition: all 0.3s ease;
      width: 100%;
    }

    .form-section input:focus,
    .form-section textarea:focus {
      outline: none;
      border-color: var(--om-clay);
      box-shadow: 0 0 0 4px rgba(164, 120, 100, 0.08);
    }

    .form-section input::placeholder,
    .form-section textarea::placeholder {
      color: var(--om-stone);
    }

    .form-section textarea {
      min-height: 120px;
      resize: vertical;
      border-radius: var(--om-radius-lg);
    }

    .form-section button {
      align-self: flex-start;
    }

    /* ---- Footer ---- */
    .footer {
      background: var(--om-bg-surface);
      border-top: 1px solid var(--om-border-light);
      padding: 3rem 2rem;
      text-align: center;
    }

    .footer__inner {
      max-width: 1100px;
      margin: 0 auto;
      display: flex;
      justify-content: space-between;
      align-items: center;
    }

    .footer__brand {
      font-family: 'DM Serif Display', serif;
      font-size: 1.2rem;
      color: var(--om-heading);
    }

    .footer__links {
      display: flex;
      gap: 1.5rem;
      list-style: none;
    }

    .footer__links a {
      color: var(--om-text-muted);
      text-decoration: none;
      font-family: 'Outfit', sans-serif;
      font-size: 0.85rem;
      transition: color 0.3s ease;
    }

    .footer__links a:hover {
      color: var(--om-clay);
    }

    .footer__copy {
      font-size: 0.8rem;
      color: var(--om-text-muted);
      margin-top: 2rem;
    }

    /* ---- Linen Texture Overlay ---- */
    .linen-bg {
      position: relative;
    }

    .linen-bg::after {
      content: '';
      position: absolute;
      inset: 0;
      opacity: 0.02;
      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='0' fill='%235C534B' opacity='0.5'/%3E%3Crect width='1' height='1' x='4' y='4' fill='%235C534B' opacity='0.3'/%3E%3Crect width='1' height='1' x='2' y='6' fill='%235C534B' opacity='0.4'/%3E%3Crect width='1' height='1' x='6' y='2' fill='%235C534B' opacity='0.2'/%3E%3C/svg%3E");
      background-size: 8px 8px;
      pointer-events: none;
    }

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

      .nav__links {
        gap: 1.25rem;
      }

      .nav__links a {
        font-size: 0.8rem;
      }

      .hero {
        min-height: 60vh;
        padding: 4rem 1.5rem;
      }

      .hero__actions {
        flex-direction: column;
        align-items: center;
      }

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

      .split,
      .split--reverse {
        grid-template-columns: 1fr;
        gap: 2rem;
      }

      .split__image {
        order: -1;
      }

      .footer__inner {
        flex-direction: column;
        gap: 1.5rem;
      }
    }
  </style>
</head>
<body>

  <!-- ====== Navigation ====== -->
  <nav class="nav">
    <a href="#" class="nav__brand">Terraverde</a>
    <ul class="nav__links">
      <li><a href="#about">About</a></li>
      <li><a href="#features">Features</a></li>
      <li><a href="#philosophy">Philosophy</a></li>
      <li><a href="#contact">Contact</a></li>
    </ul>
  </nav>

  <!-- ====== Hero ====== -->
  <section class="hero linen-bg">
    <span class="hero__label">Organic Modern Living</span>
    <h1>Rooted in Nature,<br>Refined by Design</h1>
    <p>
      We create spaces where clean modern lines meet the warmth of
      natural materials -- wood, stone, linen, and light working
      in quiet harmony.
    </p>
    <div class="hero__actions">
      <a href="#features" class="btn btn--primary">Explore</a>
      <a href="#contact" class="btn btn--secondary">Get in Touch</a>
    </div>
  </section>

  <!-- ====== Divider ====== -->
  <hr class="divider">

  <!-- ====== About / Split ====== -->
  <div class="split" id="about">
    <div class="split__image">
      [ Natural wood + stone photograph ]
    </div>
    <div class="split__content">
      <span class="section__label">Our Approach</span>
      <h2>Design That Breathes</h2>
      <p>
        Organic Modern is born from the belief that beautiful spaces
        do not need to choose between warmth and sophistication. We
        pair the clarity of minimalist architecture with the tactile
        richness of natural materials -- raw timber, hand-thrown
        ceramics, woven linen, and living greenery.
      </p>
      <p>
        Every curve is intentional. Every texture is honest. The
        result is an environment that feels both curated and
        effortlessly inviting.
      </p>
    </div>
  </div>

  <!-- ====== Features / Cards ====== -->
  <section class="section" id="features">
    <div class="section__header">
      <span class="section__label">What Defines Us</span>
      <h2>Core Principles</h2>
    </div>
    <div class="card-grid">
      <div class="card">
        <div class="card__icon">&#9675;</div>
        <h3>Organic Forms</h3>
        <p>
          Curved silhouettes and flowing shapes replace rigid geometry,
          creating spaces that mirror the gentle irregularity of nature.
        </p>
      </div>
      <div class="card">
        <div class="card__icon">&#9652;</div>
        <h3>Natural Materials</h3>
        <p>
          Wood, stone, clay, and linen are celebrated in their honest
          state -- unvarnished, tactile, and beautifully imperfect.
        </p>
      </div>
      <div class="card">
        <div class="card__icon">&#10023;</div>
        <h3>Warm Minimalism</h3>
        <p>
          A restrained palette of warm neutrals creates calm without
          coldness. Every element earns its place through purpose and craft.
        </p>
      </div>
      <div class="card">
        <div class="card__icon">&#9702;</div>
        <h3>Biophilic Connection</h3>
        <p>
          Indoor plants, natural light, and earth-toned palettes create
          a persistent connection to the living world beyond the walls.
        </p>
      </div>
      <div class="card">
        <div class="card__icon">&#8942;</div>
        <h3>Tactile Surfaces</h3>
        <p>
          Textures you want to touch -- handwoven fabrics, rough-hewn
          stone, soft matte ceramics -- bring depth and sensory richness.
        </p>
      </div>
      <div class="card">
        <div class="card__icon">&#9711;</div>
        <h3>Quiet Luxury</h3>
        <p>
          Sophistication expressed through quality materials and careful
          proportions rather than ornamentation or visible branding.
        </p>
      </div>
    </div>
  </section>

  <!-- ====== Quote ====== -->
  <section class="quote-section">
    <p class="quote">
      "The best designs are the ones you feel before you see --
      spaces that settle you, surfaces that invite your hand,
      light that warms without glare."
    </p>
    <span class="quote-author">Design Philosophy</span>
  </section>

  <!-- ====== Split Reverse ====== -->
  <div class="split split--reverse" id="philosophy">
    <div class="split__content">
      <span class="section__label">Philosophy</span>
      <h2>Less, but Warmer</h2>
      <p>
        We believe minimalism should not mean austerity. By layering
        natural textures, softening geometric lines with curves, and
        grounding every surface in an earthy palette, we create spaces
        that are both uncluttered and deeply comforting.
      </p>
      <a href="#contact" class="btn btn--secondary">Learn More</a>
    </div>
    <div class="split__image">
      [ Ceramic vessels + dried botanicals ]
    </div>
  </div>

  <!-- ====== Divider ====== -->
  <hr class="divider">

  <!-- ====== Contact Form ====== -->
  <section class="form-section" id="contact">
    <span class="section__label">Say Hello</span>
    <h2>Get in Touch</h2>
    <p style="margin: 0 auto;">
      Interested in bringing organic warmth to your next project?
      We would love to hear from you.
    </p>
    <form>
      <div>
        <label for="name">Name</label>
        <input type="text" id="name" placeholder="Your name">
      </div>
      <div>
        <label for="email">Email</label>
        <input type="email" id="email" placeholder="you@example.com">
      </div>
      <div>
        <label for="message">Message</label>
        <textarea id="message" placeholder="Tell us about your project..."></textarea>
      </div>
      <button type="submit" class="btn btn--primary">Send Message</button>
    </form>
  </section>

  <!-- ====== Footer ====== -->
  <footer class="footer">
    <div class="footer__inner">
      <span class="footer__brand">Terraverde</span>
      <ul class="footer__links">
        <li><a href="#about">About</a></li>
        <li><a href="#features">Features</a></li>
        <li><a href="#philosophy">Philosophy</a></li>
        <li><a href="#contact">Contact</a></li>
      </ul>
    </div>
    <p class="footer__copy">Handcrafted with natural intention.</p>
  </footer>

</body>
</html>

Implementation Tips