website_designs

Geometric Modernism Design Reference

Overview

Geometric Modernism is a design aesthetic rooted in the conviction that pure geometric forms – circles, squares, triangles, lines, and their mathematically derived compounds – constitute a universal visual language capable of transcending cultural and linguistic boundaries. Drawing from the foundational work of the Bauhaus school (1919–1933), the De Stijl movement (1917–1931), Russian Constructivism, and the Swiss International Typographic Style, Geometric Modernism distills design to its most elemental components: strong shapes, primary colors, and compositions governed by mathematical precision rather than intuition or ornament.

Where the original Bauhaus and De Stijl movements were tied to specific historical contexts and ideological programs, Geometric Modernism represents their enduring synthesis – an applied philosophy that treats geometry as the backbone of visual communication. The aesthetic inherits Piet Mondrian’s restriction to primary colors and orthogonal grids, Wassily Kandinsky’s color-shape correspondences (yellow-triangle, red-square, blue-circle), Theo van Doesburg’s dynamic diagonal compositions, and Paul Renner’s geometric typeface Futura (1927), which rejected historicist letterforms in favor of shapes built from near-perfect circles, triangles, and straight lines.

In contemporary web and interface design, Geometric Modernism manifests as bold, grid-locked layouts with uncompromising structural clarity. Color palettes center on the three primaries – red, yellow, and blue – anchored by black and white, with secondary and tertiary hues used sparingly and deliberately. Typography is geometric sans-serif: Futura, its digital descendants, or Google Fonts equivalents like Jost and Poppins. Every element snaps to an underlying modular grid; whitespace is treated as an active compositional force, not empty leftovers. The resulting designs communicate authority, intellectual rigor, and a crystalline rationality that feels both timeless and decisively modern. There is no room for ambiguity, sentimentality, or decorative excess – every pixel earns its place through functional and geometric justification.


Visual Characteristics

Core Design Traits

Design Principles


Color Palette

The Geometric Modernism palette is anchored in the three primary colors as defined by Kandinsky’s Bauhaus color theory and Mondrian’s De Stijl compositions: a bold, warm red; a luminous cadmium yellow; and a deep, authoritative blue. These are framed by absolute black and white, with a small range of grays for structural support. The palette resists secondary and tertiary colors – when they appear, they are deliberate and functionally justified.

Swatch Hex Role / Usage
#DD0100 #DD0100 Primary red – CTAs, active states, square-associated accents
#B30009 #B30009 Deep red – hover/pressed states for red elements
#FAC901 #FAC901 Primary yellow – highlights, warnings, triangle-associated accents
#D4A800 #D4A800 Dark yellow – hover/pressed states for yellow elements
#225095 #225095 Primary blue – links, informational elements, circle-associated accents
#1A3D72 #1A3D72 Deep blue – hover/pressed states for blue elements
#000000 #000000 Pure black – text, rules, outlines, structural framework
#1A1A1A #1A1A1A Near-black – dark backgrounds, footer surfaces
#3C3C3C #3C3C3C Dark gray – secondary text, muted structural elements
#B0B0B0 #B0B0B0 Medium gray – borders, dividers, inactive states
#E8E8E8 #E8E8E8 Light gray – secondary backgrounds, card surfaces
#F5F5F5 #F5F5F5 Off-white – page backgrounds, content areas
#FFFFFF #FFFFFF Pure white – primary backgrounds, text on dark surfaces
#FF6B35 #FF6B35 Accent orange – sparingly used tertiary accent for emphasis
#2E8B57 #2E8B57 Accent green – success states, validation feedback only

CSS Custom Properties

:root {
  /* Primary colors */
  --gm-red: #DD0100;
  --gm-yellow: #FAC901;
  --gm-blue: #225095;

  /* Hover / active states */
  --gm-red-dark: #B30009;
  --gm-yellow-dark: #D4A800;
  --gm-blue-dark: #1A3D72;

  /* Neutrals */
  --gm-black: #000000;
  --gm-near-black: #1A1A1A;
  --gm-dark-gray: #3C3C3C;
  --gm-medium-gray: #B0B0B0;
  --gm-light-gray: #E8E8E8;
  --gm-off-white: #F5F5F5;
  --gm-white: #FFFFFF;

  /* Functional accents */
  --gm-accent-orange: #FF6B35;
  --gm-accent-green: #2E8B57;

  /* Backgrounds */
  --gm-bg-primary: #FFFFFF;
  --gm-bg-secondary: #F5F5F5;
  --gm-bg-dark: #1A1A1A;
  --gm-bg-accent: #E8E8E8;

  /* Text */
  --gm-text-primary: #000000;
  --gm-text-secondary: #3C3C3C;
  --gm-text-muted: #B0B0B0;
  --gm-text-inverse: #FFFFFF;

  /* Borders */
  --gm-border-heavy: 4px solid #000000;
  --gm-border-medium: 3px solid #000000;
  --gm-border-light: 1px solid #B0B0B0;
}

Typography

Geometric Modernism demands typefaces built from geometric primitives – circles, straight lines, and consistent stroke widths. The archetype is Paul Renner’s Futura (1927), designed at the height of the New Typography movement: its lowercase o is a near-perfect circle, its a and e derive from circular arcs, and its uppercase letters are built from triangles and rectangles. Headings are bold, uppercase, tightly tracked, and assertive. Body text is clean, functional, and readable at sustained lengths. The typographic system communicates rationality, precision, and confident modernity.

Font Style Best For
Jost Geometric sans-serif (Futura-inspired) Headings, display text; closest web equivalent to Futura
Poppins Pure geometric sans-serif Headings, UI elements, buttons
Raleway Elegant geometric sans Display text, lighter-weight headings
DM Sans Low-contrast geometric Body text, UI labels, form elements
Work Sans Geometric grotesque Body text, editorial layouts, paragraphs
Inter Humanist with geometric underpinnings Screen-optimized body text, small sizes
Archivo Grotesque with geometric leanings Versatile headings and body
Barlow Slightly condensed geometric Navigation, labels, compact layouts
Nunito Sans Rounded geometric Softer interpretation; friendly body text
Exo 2 Geometric with contemporary edge Tech-oriented headings, data displays

Font Pairing Suggestions

Heading Font Body Font Character
Jost (700/900) Work Sans (400) Authentic Bauhaus-Futura spirit; rigorous and authoritative
Poppins (700) DM Sans (400) Clean geometric consistency; approachable precision
Raleway (600) Inter (400) Elegant geometry; excellent screen legibility at all sizes
Archivo (700) Work Sans (400) Modern grotesque energy; editorial and versatile
Barlow (700) Barlow (400) Monofamily condensed efficiency; space-conscious layouts
Jost (900) DM Sans (400) Maximum display impact paired with quiet, readable body

Typography CSS Example

/* Import fonts */
@import url('https://fonts.googleapis.com/css2?family=Jost:wght@400;500;700;900&family=Work+Sans:wght@400;500&display=swap');

/* Base typography */
body {
  font-family: 'Work Sans', 'Helvetica Neue', sans-serif;
  font-weight: 400;
  font-size: 1rem;
  line-height: 1.7;
  color: var(--gm-text-secondary);
}

/* Headings */
h1, h2, h3, h4, h5, h6 {
  font-family: 'Jost', 'Futura', 'Century Gothic', sans-serif;
  font-weight: 700;
  color: var(--gm-text-primary);
  line-height: 1.05;
  letter-spacing: -0.01em;
  text-transform: uppercase;
}

/* Display / Hero text */
.gm-display {
  font-family: 'Jost', sans-serif;
  font-size: clamp(3rem, 8vw, 6.5rem);
  font-weight: 900;
  letter-spacing: -0.03em;
  line-height: 0.92;
  text-transform: uppercase;
}

/* Subheading */
.gm-subheading {
  font-family: 'Jost', sans-serif;
  font-weight: 500;
  font-size: 1.25rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--gm-dark-gray);
}

/* Labels */
.gm-label {
  font-family: 'Jost', sans-serif;
  font-weight: 500;
  font-size: 0.8rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

/* Caption */
.gm-caption {
  font-family: 'Work Sans', sans-serif;
  font-weight: 400;
  font-size: 0.85rem;
  color: var(--gm-dark-gray);
  line-height: 1.5;
}

/* Blockquote */
.gm-quote {
  font-family: 'Jost', sans-serif;
  font-weight: 700;
  font-size: clamp(1.5rem, 3vw, 2.5rem);
  line-height: 1.2;
  text-transform: uppercase;
  border-left: 6px solid var(--gm-red);
  padding-left: 24px;
}

Layout Principles


CSS / Design Techniques

Card Component

.gm-card {
  background: var(--gm-white);
  border: 3px solid var(--gm-black);
  padding: 32px;
  position: relative;
  transition: transform 0.2s ease;
}

/* Geometric accent -- colored square in top-left corner */
.gm-card::before {
  content: '';
  position: absolute;
  top: -3px;
  left: -3px;
  width: 36px;
  height: 36px;
  background: var(--gm-red);
}

/* Alternate accent colors */
.gm-card--blue::before { background: var(--gm-blue); }
.gm-card--yellow::before { background: var(--gm-yellow); }

.gm-card:hover {
  transform: translateY(-4px);
}

.gm-card__title {
  font-family: 'Jost', sans-serif;
  font-weight: 700;
  font-size: 1.15rem;
  text-transform: uppercase;
  margin-bottom: 12px;
  color: var(--gm-text-primary);
}

.gm-card__body {
  font-size: 0.95rem;
  color: var(--gm-dark-gray);
  line-height: 1.65;
}

.gm-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 32px;
}

Button Component

.gm-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--gm-black);
  color: var(--gm-white);
  border: 3px solid var(--gm-black);
  border-radius: 0;
  padding: 14px 40px;
  font-family: 'Jost', sans-serif;
  font-weight: 700;
  font-size: 0.9rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.gm-button:hover {
  background: var(--gm-red);
  border-color: var(--gm-red);
}

/* Primary color variants */
.gm-button--red {
  background: var(--gm-red);
  border-color: var(--gm-red);
}
.gm-button--red:hover {
  background: var(--gm-red-dark);
  border-color: var(--gm-red-dark);
}

.gm-button--blue {
  background: var(--gm-blue);
  border-color: var(--gm-blue);
}
.gm-button--blue:hover {
  background: var(--gm-blue-dark);
  border-color: var(--gm-blue-dark);
}

.gm-button--yellow {
  background: var(--gm-yellow);
  border-color: var(--gm-yellow);
  color: var(--gm-black);
}
.gm-button--yellow:hover {
  background: var(--gm-yellow-dark);
  border-color: var(--gm-yellow-dark);
}

/* Outline variant */
.gm-button--outline {
  background: transparent;
  color: var(--gm-black);
}
.gm-button--outline:hover {
  background: var(--gm-black);
  color: var(--gm-white);
}

/* Small variant */
.gm-button--sm {
  padding: 10px 24px;
  font-size: 0.8rem;
}
.gm-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 1200px;
  margin: 0 auto;
  padding: 24px 40px;
  border-bottom: 4px solid var(--gm-black);
}

.gm-nav__logo {
  display: flex;
  align-items: center;
  gap: 14px;
  font-family: 'Jost', sans-serif;
  font-weight: 900;
  font-size: 1.5rem;
  color: var(--gm-black);
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.gm-nav__logo-shape {
  width: 30px;
  height: 30px;
  background: var(--gm-red);
}

.gm-nav__logo-shape--circle {
  border-radius: 50%;
  background: var(--gm-blue);
}

.gm-nav__links {
  display: flex;
  gap: 32px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.gm-nav__links a {
  font-family: 'Jost', sans-serif;
  font-weight: 500;
  font-size: 0.85rem;
  color: var(--gm-black);
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  position: relative;
  transition: color 0.2s ease;
}

.gm-nav__links a::after {
  content: '';
  position: absolute;
  bottom: -6px;
  left: 0;
  width: 0;
  height: 3px;
  background: var(--gm-red);
  transition: width 0.2s ease;
}

.gm-nav__links a:hover {
  color: var(--gm-red);
}

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

@media (max-width: 768px) {
  .gm-nav {
    padding: 20px 24px;
  }
  .gm-nav__links {
    gap: 18px;
  }
}

Hero Section

.gm-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 1200px;
  margin: 0 auto;
  padding: 100px 40px;
  gap: 60px;
  position: relative;
  overflow: hidden;
}

.gm-hero__content {
  flex: 1;
  max-width: 560px;
  z-index: 2;
}

.gm-hero__content h1 {
  font-size: clamp(3rem, 8vw, 6rem);
  font-weight: 900;
  text-transform: uppercase;
  line-height: 0.92;
  margin-bottom: 1.5rem;
}

.gm-hero__content h1 .red { color: var(--gm-red); }
.gm-hero__content h1 .blue { color: var(--gm-blue); }
.gm-hero__content h1 .yellow { color: var(--gm-yellow); }

.gm-hero__content p {
  font-size: 1.15rem;
  color: var(--gm-dark-gray);
  margin-bottom: 2.5rem;
  max-width: 440px;
  line-height: 1.7;
}

.gm-hero__visual {
  flex: 1;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 1;
}

/* Background geometric accent */
.gm-hero::before {
  content: '';
  position: absolute;
  top: -80px;
  right: -80px;
  width: 300px;
  height: 300px;
  background: var(--gm-yellow);
  opacity: 0.15;
  z-index: 0;
  transform: rotate(15deg);
}

@media (max-width: 768px) {
  .gm-hero {
    flex-direction: column;
    text-align: center;
    padding: 60px 24px;
    gap: 40px;
  }
  .gm-hero__content p {
    margin-left: auto;
    margin-right: auto;
  }
}

Feature Grid Section

.gm-features {
  background: var(--gm-bg-secondary);
  padding: 80px 0;
  border-top: 4px solid var(--gm-black);
  border-bottom: 4px solid var(--gm-black);
}

.gm-features__header {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 40px 56px;
}

.gm-features__header h2 {
  font-size: 2.5rem;
  text-transform: uppercase;
}

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

.gm-feature {
  background: var(--gm-white);
  border: 3px solid var(--gm-black);
  padding: 32px;
  position: relative;
}

.gm-feature__shape {
  width: 48px;
  height: 48px;
  margin-bottom: 20px;
}

.gm-feature__shape--circle {
  background: var(--gm-blue);
  border-radius: 50%;
}

.gm-feature__shape--square {
  background: var(--gm-red);
}

.gm-feature__shape--triangle {
  width: 0;
  height: 0;
  border-left: 24px solid transparent;
  border-right: 24px solid transparent;
  border-bottom: 48px solid var(--gm-yellow);
  background: transparent;
}

.gm-feature h3 {
  font-size: 1.15rem;
  margin-bottom: 10px;
  text-transform: uppercase;
}

.gm-feature p {
  font-size: 0.95rem;
  color: var(--gm-dark-gray);
  line-height: 1.65;
}

Geometric Composition Block

.gm-composition {
  position: relative;
  width: 400px;
  height: 400px;
}

.gm-composition__circle {
  position: absolute;
  width: 180px;
  height: 180px;
  background: var(--gm-blue);
  border-radius: 50%;
  top: 20px;
  right: 30px;
}

.gm-composition__square {
  position: absolute;
  width: 150px;
  height: 150px;
  background: var(--gm-red);
  bottom: 40px;
  left: 10px;
}

.gm-composition__triangle {
  position: absolute;
  width: 0;
  height: 0;
  border-left: 70px solid transparent;
  border-right: 70px solid transparent;
  border-bottom: 120px solid var(--gm-yellow);
  top: 160px;
  left: 140px;
}

.gm-composition__line-h {
  position: absolute;
  height: 4px;
  width: 320px;
  background: var(--gm-black);
  top: 200px;
  left: 40px;
}

.gm-composition__line-v {
  position: absolute;
  width: 4px;
  height: 280px;
  background: var(--gm-black);
  top: 60px;
  left: 200px;
}

.gm-composition__line-d {
  position: absolute;
  height: 4px;
  width: 260px;
  background: var(--gm-black);
  transform: rotate(-20deg);
  top: 300px;
  left: 80px;
}

Mondrian Grid Section

.gm-mondrian {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  grid-template-rows: 200px 120px 160px;
  gap: 4px;
  background: var(--gm-black);
  border: 4px solid var(--gm-black);
  max-width: 800px;
  margin: 0 auto;
}

.gm-mondrian__cell {
  background: var(--gm-white);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

.gm-mondrian__cell--red { background: var(--gm-red); color: var(--gm-white); }
.gm-mondrian__cell--blue { background: var(--gm-blue); color: var(--gm-white); }
.gm-mondrian__cell--yellow { background: var(--gm-yellow); color: var(--gm-black); }
.gm-mondrian__cell--span-rows { grid-row: span 2; }
.gm-mondrian__cell--span-cols { grid-column: span 2; }

Statement / Manifesto Banner

.gm-statement {
  background: var(--gm-red);
  color: var(--gm-white);
  text-align: center;
  padding: 100px 40px;
  position: relative;
  overflow: hidden;
}

.gm-statement h2 {
  font-size: clamp(2rem, 5vw, 4rem);
  font-weight: 900;
  margin-bottom: 1.5rem;
  color: var(--gm-white);
}

.gm-statement p {
  font-size: 1.2rem;
  max-width: 540px;
  margin: 0 auto 2.5rem;
  opacity: 0.9;
  line-height: 1.7;
}

/* Decorative circle behind text */
.gm-statement::before {
  content: '';
  position: absolute;
  width: 300px;
  height: 300px;
  border: 4px solid rgba(255, 255, 255, 0.2);
  border-radius: 50%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
}

.gm-statement .gm-button {
  background: var(--gm-white);
  color: var(--gm-red);
  border-color: var(--gm-white);
}

.gm-statement .gm-button:hover {
  background: var(--gm-black);
  color: var(--gm-white);
  border-color: var(--gm-black);
}

Design Do’s and Don’ts

Do

Don’t


Aesthetic Relationship to Geometric Modernism
Bauhaus Direct ancestor; Geometric Modernism inherits its shape-color theory, grid discipline, and “form follows function” philosophy
De Stijl Foundational influence; Mondrian’s primary-color, grid-locked compositions are a core reference for the entire aesthetic
Constructivism Parallel avant-garde; shares the integration of art and industry with bold geometric compositions and propagandistic energy
Swiss International Style Direct successor; formalized the Bauhaus grid and sans-serif typography into a systematic, objective design methodology
Flat Design Digital descendant; applies Geometric Modernism’s flat-color, geometric, function-first principles to modern UI design
Minimalism Philosophical sibling; shares the reductive impulse but takes it further, often eliminating color and shape variety
Material Design Google’s system borrows grid discipline and flat color but reintroduces shadow and motion for hierarchy
Neubrutalism Shares bold graphic presence and raw honesty but deliberately violates Modernist refinement with roughness and irony
Memphis Design Postmodern reaction against Geometric Modernism; deliberately breaks every rule with pattern, decoration, and pastels
Op Art Geometric sibling; uses precise geometric patterns but pursues optical illusion and perceptual effects rather than clarity

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>Geometric Modernism</title>
  <link href="https://fonts.googleapis.com/css2?family=Jost:wght@400;500;700;900&family=Work+Sans:wght@400;500&display=swap" rel="stylesheet">
  <style>
    :root {
      /* Primary colors */
      --gm-red: #DD0100;
      --gm-yellow: #FAC901;
      --gm-blue: #225095;

      /* Hover states */
      --gm-red-dark: #B30009;
      --gm-yellow-dark: #D4A800;
      --gm-blue-dark: #1A3D72;

      /* Neutrals */
      --gm-black: #000000;
      --gm-near-black: #1A1A1A;
      --gm-dark-gray: #3C3C3C;
      --gm-medium-gray: #B0B0B0;
      --gm-light-gray: #E8E8E8;
      --gm-off-white: #F5F5F5;
      --gm-white: #FFFFFF;
    }

    /* =============================================
       RESET & BASE
    ============================================= */

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

    body {
      background: var(--gm-white);
      color: var(--gm-black);
      font-family: 'Work Sans', 'Helvetica Neue', Arial, sans-serif;
      font-weight: 400;
      line-height: 1.7;
      -webkit-font-smoothing: antialiased;
    }

    h1, h2, h3, h4, h5, h6 {
      font-family: 'Jost', 'Futura', 'Century Gothic', sans-serif;
      font-weight: 700;
      text-transform: uppercase;
      line-height: 1.05;
      letter-spacing: -0.01em;
    }

    a { color: inherit; }
    img { max-width: 100%; display: block; }

    /* =============================================
       NAVIGATION
    ============================================= */

    nav {
      display: flex;
      align-items: center;
      justify-content: space-between;
      max-width: 1200px;
      margin: 0 auto;
      padding: 24px 40px;
      border-bottom: 4px solid var(--gm-black);
    }

    .logo {
      display: flex;
      align-items: center;
      gap: 14px;
      font-family: 'Jost', sans-serif;
      font-weight: 900;
      font-size: 1.5rem;
      color: var(--gm-black);
      text-decoration: none;
      text-transform: uppercase;
      letter-spacing: 0.04em;
    }

    .logo-mark {
      display: flex;
      gap: 4px;
      align-items: flex-end;
    }

    .logo-mark .sq {
      width: 14px;
      height: 14px;
      background: var(--gm-red);
    }

    .logo-mark .ci {
      width: 14px;
      height: 14px;
      background: var(--gm-blue);
      border-radius: 50%;
    }

    .logo-mark .tr {
      width: 0;
      height: 0;
      border-left: 7px solid transparent;
      border-right: 7px solid transparent;
      border-bottom: 14px solid var(--gm-yellow);
    }

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

    nav ul a {
      font-family: 'Jost', sans-serif;
      font-weight: 500;
      font-size: 0.85rem;
      color: var(--gm-black);
      text-decoration: none;
      text-transform: uppercase;
      letter-spacing: 0.06em;
      position: relative;
      transition: color 0.2s;
    }

    nav ul a::after {
      content: '';
      position: absolute;
      bottom: -6px;
      left: 0;
      width: 0;
      height: 3px;
      background: var(--gm-red);
      transition: width 0.25s ease;
    }

    nav ul a:hover { color: var(--gm-red); }
    nav ul a:hover::after { width: 100%; }

    /* =============================================
       HERO
    ============================================= */

    .hero {
      display: flex;
      align-items: center;
      justify-content: space-between;
      max-width: 1200px;
      margin: 0 auto;
      padding: 100px 40px;
      gap: 60px;
      position: relative;
    }

    .hero-content {
      flex: 1;
      max-width: 560px;
      z-index: 2;
    }

    .hero h1 {
      font-size: clamp(3rem, 8vw, 6rem);
      font-weight: 900;
      margin-bottom: 1.5rem;
      line-height: 0.92;
    }

    .hero h1 .red { color: var(--gm-red); }
    .hero h1 .blue { color: var(--gm-blue); }
    .hero h1 .yellow { color: var(--gm-yellow); }

    .hero p {
      font-size: 1.15rem;
      color: var(--gm-dark-gray);
      margin-bottom: 2.5rem;
      max-width: 440px;
    }

    .hero-visual {
      flex: 1;
      display: flex;
      justify-content: center;
      align-items: center;
    }

    /* =============================================
       BUTTONS
    ============================================= */

    .btn {
      display: inline-block;
      background: var(--gm-black);
      color: var(--gm-white);
      border: 3px solid var(--gm-black);
      padding: 14px 40px;
      font-family: 'Jost', sans-serif;
      font-weight: 700;
      font-size: 0.9rem;
      text-transform: uppercase;
      letter-spacing: 0.08em;
      text-decoration: none;
      cursor: pointer;
      transition: background 0.2s, color 0.2s, border-color 0.2s;
    }

    .btn:hover {
      background: var(--gm-red);
      border-color: var(--gm-red);
    }

    .btn--outline {
      background: transparent;
      color: var(--gm-black);
    }

    .btn--outline:hover {
      background: var(--gm-black);
      color: var(--gm-white);
    }

    .btn--blue {
      background: var(--gm-blue);
      border-color: var(--gm-blue);
    }

    .btn--blue:hover {
      background: var(--gm-blue-dark);
      border-color: var(--gm-blue-dark);
    }

    .btn-group {
      display: flex;
      gap: 16px;
      flex-wrap: wrap;
    }

    /* =============================================
       DIVIDER
    ============================================= */

    .divider {
      max-width: 1200px;
      margin: 0 auto;
      height: 4px;
      background: var(--gm-black);
    }

    /* =============================================
       FEATURES
    ============================================= */

    .features {
      background: var(--gm-off-white);
      padding: 80px 0;
      border-top: 4px solid var(--gm-black);
      border-bottom: 4px solid var(--gm-black);
    }

    .features-header {
      max-width: 1200px;
      margin: 0 auto;
      padding: 0 40px 56px;
    }

    .features-header h2 {
      font-size: 2.5rem;
    }

    .features-header p {
      margin-top: 12px;
      color: var(--gm-dark-gray);
      max-width: 540px;
    }

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

    .feature {
      background: var(--gm-white);
      border: 3px solid var(--gm-black);
      padding: 32px;
      position: relative;
    }

    /* Corner geometric accent */
    .feature::before {
      content: '';
      position: absolute;
      top: -3px;
      left: -3px;
      width: 32px;
      height: 32px;
    }

    .feature:nth-child(3n+1)::before { background: var(--gm-red); }
    .feature:nth-child(3n+2)::before { background: var(--gm-blue); }
    .feature:nth-child(3n+3)::before { background: var(--gm-yellow); }

    .feature .shape {
      width: 48px;
      height: 48px;
      margin-bottom: 20px;
    }

    .shape-circle {
      background: var(--gm-blue);
      border-radius: 50%;
    }

    .shape-square {
      background: var(--gm-red);
    }

    .shape-triangle {
      width: 0 !important;
      height: 0 !important;
      border-left: 24px solid transparent;
      border-right: 24px solid transparent;
      border-bottom: 48px solid var(--gm-yellow);
      background: transparent !important;
    }

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

    .feature p {
      color: var(--gm-dark-gray);
      font-size: 0.95rem;
      line-height: 1.65;
    }

    /* =============================================
       MONDRIAN GRID
    ============================================= */

    .mondrian-section {
      padding: 80px 40px;
      max-width: 1200px;
      margin: 0 auto;
    }

    .mondrian-section h2 {
      font-size: 2.5rem;
      margin-bottom: 48px;
    }

    .mondrian-grid {
      display: grid;
      grid-template-columns: 2fr 1fr 1fr;
      grid-template-rows: 180px 100px 140px;
      gap: 4px;
      background: var(--gm-black);
      border: 4px solid var(--gm-black);
    }

    .m-cell {
      background: var(--gm-white);
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 24px;
      font-family: 'Jost', sans-serif;
      font-weight: 700;
      font-size: 0.85rem;
      text-transform: uppercase;
      letter-spacing: 0.06em;
    }

    .m-cell--red {
      background: var(--gm-red);
      color: var(--gm-white);
      grid-row: span 2;
    }

    .m-cell--blue {
      background: var(--gm-blue);
      color: var(--gm-white);
    }

    .m-cell--yellow {
      background: var(--gm-yellow);
      color: var(--gm-black);
      grid-column: span 2;
    }

    .m-cell--tall {
      grid-row: span 2;
    }

    .m-cell--wide {
      grid-column: span 2;
    }

    /* =============================================
       STATEMENT BANNER
    ============================================= */

    .statement {
      background: var(--gm-blue);
      color: var(--gm-white);
      text-align: center;
      padding: 100px 40px;
      position: relative;
      overflow: hidden;
    }

    .statement::before {
      content: '';
      position: absolute;
      width: 320px;
      height: 320px;
      border: 4px solid rgba(255, 255, 255, 0.15);
      border-radius: 50%;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      pointer-events: none;
    }

    .statement::after {
      content: '';
      position: absolute;
      width: 200px;
      height: 200px;
      border: 4px solid rgba(255, 255, 255, 0.08);
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%) rotate(45deg);
      pointer-events: none;
    }

    .statement h2 {
      font-size: clamp(2rem, 5vw, 4rem);
      font-weight: 900;
      margin-bottom: 1.5rem;
      color: var(--gm-white);
      position: relative;
      z-index: 1;
    }

    .statement p {
      font-size: 1.2rem;
      max-width: 520px;
      margin: 0 auto 2.5rem;
      opacity: 0.9;
      position: relative;
      z-index: 1;
    }

    .statement .btn {
      background: var(--gm-white);
      color: var(--gm-blue);
      border-color: var(--gm-white);
      position: relative;
      z-index: 1;
    }

    .statement .btn:hover {
      background: var(--gm-black);
      color: var(--gm-white);
      border-color: var(--gm-black);
    }

    /* =============================================
       PRINCIPLES LIST
    ============================================= */

    .principles {
      padding: 80px 0;
      border-bottom: 4px solid var(--gm-black);
    }

    .principles-inner {
      max-width: 1200px;
      margin: 0 auto;
      padding: 0 40px;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 60px;
      align-items: start;
    }

    .principles h2 {
      font-size: 2.5rem;
      margin-bottom: 1.5rem;
    }

    .principles p.lead {
      color: var(--gm-dark-gray);
      font-size: 1.1rem;
      line-height: 1.7;
    }

    .principles-list {
      list-style: none;
      counter-reset: principle;
    }

    .principles-list li {
      counter-increment: principle;
      padding: 20px 0;
      border-bottom: 2px solid var(--gm-light-gray);
      display: flex;
      gap: 20px;
      align-items: baseline;
    }

    .principles-list li::before {
      content: counter(principle, decimal-leading-zero);
      font-family: 'Jost', sans-serif;
      font-weight: 900;
      font-size: 1.5rem;
      color: var(--gm-red);
      flex-shrink: 0;
    }

    .principles-list li strong {
      font-family: 'Jost', sans-serif;
      text-transform: uppercase;
      letter-spacing: 0.02em;
    }

    /* =============================================
       COLOR BLOCKS ROW
    ============================================= */

    .color-row {
      display: flex;
      border-top: 4px solid var(--gm-black);
      border-bottom: 4px solid var(--gm-black);
    }

    .color-block {
      flex: 1;
      padding: 60px 40px;
      display: flex;
      flex-direction: column;
      justify-content: center;
    }

    .color-block--red { background: var(--gm-red); color: var(--gm-white); }
    .color-block--yellow { background: var(--gm-yellow); color: var(--gm-black); }
    .color-block--blue { background: var(--gm-blue); color: var(--gm-white); }

    .color-block h3 {
      font-size: 1.3rem;
      margin-bottom: 8px;
      color: inherit;
    }

    .color-block p {
      font-size: 0.95rem;
      opacity: 0.85;
      line-height: 1.6;
    }

    /* =============================================
       FOOTER
    ============================================= */

    footer {
      background: var(--gm-near-black);
      color: var(--gm-medium-gray);
      border-top: 4px solid var(--gm-black);
    }

    .footer-inner {
      max-width: 1200px;
      margin: 0 auto;
      padding: 48px 40px;
      display: grid;
      grid-template-columns: 2fr 1fr 1fr 1fr;
      gap: 40px;
    }

    .footer-brand .logo {
      color: var(--gm-white);
      margin-bottom: 16px;
    }

    .footer-brand p {
      font-size: 0.9rem;
      line-height: 1.6;
      max-width: 280px;
    }

    .footer-col h4 {
      font-family: 'Jost', sans-serif;
      font-size: 0.85rem;
      color: var(--gm-white);
      margin-bottom: 16px;
      letter-spacing: 0.06em;
    }

    .footer-col ul {
      list-style: none;
    }

    .footer-col ul li {
      margin-bottom: 8px;
    }

    .footer-col ul a {
      font-size: 0.85rem;
      color: var(--gm-medium-gray);
      text-decoration: none;
      transition: color 0.2s;
    }

    .footer-col ul a:hover {
      color: var(--gm-white);
    }

    .footer-bottom {
      max-width: 1200px;
      margin: 0 auto;
      padding: 20px 40px;
      border-top: 1px solid var(--gm-dark-gray);
      display: flex;
      justify-content: space-between;
      font-size: 0.8rem;
    }

    /* =============================================
       RESPONSIVE
    ============================================= */

    @media (max-width: 768px) {
      nav { padding: 20px 24px; }
      nav ul { gap: 16px; }

      .hero {
        flex-direction: column;
        text-align: center;
        padding: 60px 24px;
        gap: 40px;
      }

      .hero p {
        margin-left: auto;
        margin-right: auto;
      }

      .features-header { padding: 0 24px 40px; }
      .features-grid { padding: 0 24px; }

      .mondrian-grid {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto;
      }

      .m-cell--tall { grid-row: auto; }
      .m-cell--wide { grid-column: auto; }

      .principles-inner {
        grid-template-columns: 1fr;
        gap: 32px;
        padding: 0 24px;
      }

      .color-row {
        flex-direction: column;
      }

      .footer-inner {
        grid-template-columns: 1fr 1fr;
        padding: 40px 24px;
      }

      .statement { padding: 60px 24px; }
    }

    @media (max-width: 480px) {
      nav ul { gap: 12px; }
      nav ul a { font-size: 0.75rem; }

      .footer-inner { grid-template-columns: 1fr; }

      .mondrian-grid {
        grid-template-columns: 1fr;
      }
    }
  </style>
</head>
<body>

  <!-- NAVIGATION -->
  <nav>
    <a href="#" class="logo">
      <span class="logo-mark">
        <span class="sq"></span>
        <span class="ci"></span>
        <span class="tr"></span>
      </span>
      Geometrik
    </a>
    <ul>
      <li><a href="#principles">Principles</a></li>
      <li><a href="#work">Work</a></li>
      <li><a href="#manifesto">Manifesto</a></li>
      <li><a href="#contact">Contact</a></li>
    </ul>
  </nav>

  <!-- HERO -->
  <section class="hero">
    <div class="hero-content">
      <h1><span class="red">Shape.</span> <span class="blue">Color.</span> <span class="yellow">Order.</span></h1>
      <p>Design reduced to geometric essence. Every circle, every square, every line exists because mathematics and function demand it.</p>
      <div class="btn-group">
        <a href="#" class="btn">Explore</a>
        <a href="#" class="btn btn--outline">Learn More</a>
      </div>
    </div>
    <div class="hero-visual">
      <svg width="380" height="380" viewBox="0 0 380 380" fill="none" xmlns="http://www.w3.org/2000/svg">
        <!-- Blue circle -->
        <circle cx="210" cy="110" r="95" fill="#225095"/>
        <!-- Red square -->
        <rect x="30" y="190" width="150" height="150" fill="#DD0100"/>
        <!-- Yellow triangle -->
        <polygon points="250,370 330,210 410,370" fill="#FAC901"/>
        <!-- Structural lines -->
        <line x1="10" y1="180" x2="370" y2="180" stroke="#000000" stroke-width="4"/>
        <line x1="190" y1="10" x2="190" y2="370" stroke="#000000" stroke-width="4"/>
        <!-- Diagonal -->
        <line x1="40" y1="340" x2="340" y2="60" stroke="#000000" stroke-width="3"/>
        <!-- Small accent circle -->
        <circle cx="320" cy="320" r="30" fill="none" stroke="#000000" stroke-width="3"/>
      </svg>
    </div>
  </section>

  <div class="divider"></div>

  <!-- FEATURES -->
  <section class="features">
    <div class="features-header">
      <h2>Foundations</h2>
      <p>Three shapes. Three colors. Infinite compositions built on mathematical precision.</p>
    </div>
    <div class="features-grid">
      <div class="feature">
        <div class="shape shape-circle"></div>
        <h3>Unity</h3>
        <p>Art and technology united into a single discipline. Design that serves industry without sacrificing geometric beauty.</p>
      </div>
      <div class="feature">
        <div class="shape shape-square"></div>
        <h3>Function</h3>
        <p>Every element justified by purpose. Ornament is eliminated; only honest, rational structure remains.</p>
      </div>
      <div class="feature">
        <div class="shape shape-triangle"></div>
        <h3>Precision</h3>
        <p>Circle, square, triangle. The universal geometric vocabulary reduced to its mathematical fundamentals.</p>
      </div>
      <div class="feature">
        <div class="shape shape-circle"></div>
        <h3>Balance</h3>
        <p>Asymmetric equilibrium through calculated weight distribution. Dynamic tension within ordered composition.</p>
      </div>
      <div class="feature">
        <div class="shape shape-square"></div>
        <h3>Grid</h3>
        <p>The modular grid is architecture. Every pixel aligns to the structural backbone of mathematical proportion.</p>
      </div>
      <div class="feature">
        <div class="shape shape-triangle"></div>
        <h3>Clarity</h3>
        <p>Communication without distraction. The message speaks through form, not decoration or embellishment.</p>
      </div>
    </div>
  </section>

  <!-- COLOR ROW -->
  <section class="color-row">
    <div class="color-block color-block--red">
      <h3>Red / Square</h3>
      <p>Energy, physicality, action. The commanding warmth of pure red anchors the material world.</p>
    </div>
    <div class="color-block color-block--yellow">
      <h3>Yellow / Triangle</h3>
      <p>Light, intellect, sharpness. Yellow radiates outward with angular, penetrating intensity.</p>
    </div>
    <div class="color-block color-block--blue">
      <h3>Blue / Circle</h3>
      <p>Depth, spirit, infinity. Blue recedes into contemplative, circular completeness.</p>
    </div>
  </section>

  <!-- MONDRIAN GRID -->
  <section class="mondrian-section">
    <h2>Composition</h2>
    <div class="mondrian-grid">
      <div class="m-cell m-cell--red">Structure</div>
      <div class="m-cell">Form</div>
      <div class="m-cell m-cell--blue">Rhythm</div>
      <div class="m-cell">Balance</div>
      <div class="m-cell m-cell--yellow">Proportion</div>
      <div class="m-cell">Tension</div>
      <div class="m-cell">Harmony</div>
      <div class="m-cell">Order</div>
      <div class="m-cell">Grid</div>
    </div>
  </section>

  <!-- PRINCIPLES -->
  <section class="principles" id="principles">
    <div class="principles-inner">
      <div>
        <h2>Principles</h2>
        <p class="lead">Geometric Modernism is not a style to be applied. It is a discipline to be practiced -- a commitment to rational beauty through mathematical order and chromatic honesty.</p>
      </div>
      <ol class="principles-list">
        <li><strong>Reduce</strong> -- strip to geometric essentials; if it cannot be justified, eliminate it</li>
        <li><strong>Construct</strong> -- build from circles, squares, and triangles; compound forms emerge from primitives</li>
        <li><strong>Align</strong> -- every element snaps to the grid; mathematical precision governs placement</li>
        <li><strong>Balance</strong> -- achieve dynamic equilibrium through asymmetry, not mirror reflection</li>
        <li><strong>Color</strong> -- red, yellow, blue, black, white; each hue carries functional meaning</li>
        <li><strong>Communicate</strong> -- the design speaks through clarity, not decoration or excess</li>
      </ol>
    </div>
  </section>

  <!-- STATEMENT -->
  <section class="statement" id="manifesto">
    <h2>Less Decoration. More Geometry.</h2>
    <p>Every pixel is a decision. Every shape is a statement. Geometric Modernism demands that design earn its existence through mathematical precision and functional honesty.</p>
    <a href="#" class="btn">Read the Manifesto</a>
  </section>

  <!-- FOOTER -->
  <footer id="contact">
    <div class="footer-inner">
      <div class="footer-brand">
        <a href="#" class="logo">
          <span class="logo-mark">
            <span class="sq"></span>
            <span class="ci"></span>
            <span class="tr"></span>
          </span>
          Geometrik
        </a>
        <p>Design built on geometric fundamentals. Circles, squares, triangles, and primary colors -- nothing more, nothing less.</p>
      </div>
      <div class="footer-col">
        <h4>Navigate</h4>
        <ul>
          <li><a href="#">Principles</a></li>
          <li><a href="#">Work</a></li>
          <li><a href="#">Manifesto</a></li>
          <li><a href="#">Archive</a></li>
        </ul>
      </div>
      <div class="footer-col">
        <h4>Resources</h4>
        <ul>
          <li><a href="#">Style Guide</a></li>
          <li><a href="#">Grid System</a></li>
          <li><a href="#">Color Theory</a></li>
          <li><a href="#">Typography</a></li>
        </ul>
      </div>
      <div class="footer-col">
        <h4>Connect</h4>
        <ul>
          <li><a href="#">GitHub</a></li>
          <li><a href="#">Dribbble</a></li>
          <li><a href="#">Behance</a></li>
          <li><a href="#">Contact</a></li>
        </ul>
      </div>
    </div>
    <div class="footer-bottom">
      <span>Built on geometric principles.</span>
      <span>Shape. Color. Order.</span>
    </div>
  </footer>

</body>
</html>

Implementation Tips