website_designs

Afro Baroque Design Reference

Overview

Afro Baroque is a cultural fusion aesthetic that weaves together the exuberant maximalism of African design traditions with the theatrical opulence of European Baroque. It is not a historical period style but a contemporary design movement that celebrates the intersection of two of the world’s richest decorative legacies: the bold geometric patterns, symbolic storytelling, and vibrant color palettes of West and Southern African textile arts (kente, Ankara wax print, mudcloth, Shweshwe, Ndebele geometry, Adinkra symbols), and the dramatic grandeur, gilded ornamentation, chiaroscuro lighting, and layered depth of Baroque composition.

Where traditional Baroque relies on scrollwork, acanthus leaves, and Eurocentric religious iconography, Afro Baroque replaces or remixes these motifs with culturally rooted African symbols, hand-beaded textures, woven strip patterns, and bold geometric borders. Gold remains central to both lineages: in Ashanti culture, gold signifies royalty, wealth, and spiritual power, while in Baroque art it represents divine glory and aristocratic excess. The convergence of these two golden traditions creates a visual language that feels simultaneously ancestral and palatial.

In digital and web design, Afro Baroque translates into richly layered compositions with deep, warm backgrounds, abundant gold and bronze metallic accents, dramatic lighting gradients, culturally significant geometric patterns used as borders and textures, ornate serif and display typography, and an unapologetic embrace of visual density. The aesthetic follows a “more is more” philosophy, but with intentional cultural meaning behind every decorative choice. Each pattern, symbol, and color carries narrative weight drawn from centuries of African artistic tradition, elevated through the theatrical staging and monumental scale of the Baroque sensibility.

Pioneering examples of this fusion include the work of designers and artisans like Ithemba Creations, who combine raw silk, African wax print, and found fabrics into pieces that marry the colorful grandeur of Baroque art with the craftsmanship of African textile traditions. The result is an aesthetic that is powerful, texturally rich, and deeply rooted in cultural storytelling while projecting an unmistakable sense of luxury and drama.


Visual Characteristics

Core Design Traits

Design Principles


Color Palette

The Afro Baroque palette draws from two rich chromatic traditions. From African design: the bold primaries and earth tones of kente cloth, the deep indigo of Shweshwe and mudcloth, the warm terracotta of laterite soil, and the symbolic golds of Ashanti royal regalia. From Baroque: the deep burgundies and crimsons of velvet, the burnished metallics of gilded frames, and the dramatic contrast of shadow against illumination. Together they form a palette that is warm, saturated, and unmistakably luxurious.

Swatch Hex Role / Usage
Ashanti Gold #D4A017 Primary metallic accent, borders, headings, gilded elements
Burnished Bronze #8C6B3E Secondary metallic, warm frames, ornamental details
Royal Kente Yellow #E8B931 Bright gold accent, kente-inspired highlights, button hovers
Deep Burgundy #6B0F1A Rich background panels, dramatic depth, Baroque warmth
Ankara Crimson #B22234 Bold primary accent, call-to-action elements, vital energy
Shweshwe Indigo #1B2A4A Deep surface backgrounds, card panels, wisdom and depth
Mudcloth Earth #5C3A21 Warm mid-tone, earthy grounding, organic texture references
Laterite Terracotta #C65D3E Warm accent, African earth tones, decorative highlights
Ancestral Black #120E0A Deepest background, shadow areas, high-contrast base
Ivory Parchment #F5E6CA Primary text color, warm off-white, readable body copy
Palm Green #2D5A27 Accent for growth and vitality, secondary decorative element
Royal Purple #4B1D6B Regal accent, spiritual depth, ornamental highlights
Warm Cream #FDF0D5 Light section backgrounds, contrast panels, highlighted text
Copper Shimmer #B87333 Tertiary metallic, warm glow accents, hover states

CSS Custom Properties

:root {
  /* Metallics */
  --ab-gold: #D4A017;
  --ab-gold-bright: #E8B931;
  --ab-bronze: #8C6B3E;
  --ab-copper: #B87333;

  /* Deep Tones */
  --ab-black: #120E0A;
  --ab-burgundy: #6B0F1A;
  --ab-indigo: #1B2A4A;
  --ab-purple: #4B1D6B;

  /* Warm Accents */
  --ab-crimson: #B22234;
  --ab-terracotta: #C65D3E;
  --ab-earth: #5C3A21;
  --ab-green: #2D5A27;

  /* Light Tones */
  --ab-parchment: #F5E6CA;
  --ab-cream: #FDF0D5;

  /* Functional Aliases */
  --ab-bg-primary: var(--ab-black);
  --ab-bg-surface: var(--ab-indigo);
  --ab-bg-panel: var(--ab-burgundy);
  --ab-text-primary: var(--ab-parchment);
  --ab-text-heading: var(--ab-gold);
  --ab-accent: var(--ab-gold);
  --ab-accent-warm: var(--ab-terracotta);
  --ab-border: var(--ab-gold);
}

Typography

Afro Baroque typography bridges two worlds: the ornate, high-contrast serif traditions of Baroque lettering (elaborate swash capitals, flowing calligraphic curves, dramatic thick-thin stroke variation) and the bold geometric confidence found in contemporary African-inspired display typefaces. Headings should feel monumental and gilded, body text should be warm and readable with classical elegance, and accent text can incorporate decorative or display faces that evoke both cultural richness and theatrical grandeur.

Font Weight(s) Usage Link
Playfair Display 400, 600, 700, 800, 900 Primary display headings; high-contrast serif with Baroque drama Playfair Display
Cormorant Garamond 300, 400, 500, 600, 700 Body text and subheadings; elegant old-style serif Cormorant Garamond
Cinzel Decorative 400, 700, 900 Hero display text; ornamental Roman capitals Cinzel Decorative
Syne 400, 500, 600, 700, 800 Bold geometric headings; modern African-inspired feel Syne
Libre Baskerville 400, 700, 400i Readable body copy; refined transitional serif Libre Baskerville
Great Vibes 400 Decorative script accents; calligraphic flourishes Great Vibes

Font Pairing Suggestions

Heading Body Vibe
Playfair Display 800 Cormorant Garamond 400 Classical Afro Baroque opulence
Cinzel Decorative 700 Libre Baskerville 400 Monumental gilded grandeur
Syne 700 Cormorant Garamond 400 Contemporary African-meets-Baroque editorial
Playfair Display 700 Libre Baskerville 400 Refined cultural fusion

CSS Example

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;0,800;0,900;1,400&family=Cormorant+Garamond:ital,wght@0,400;0,600;0,700;1,400&family=Cinzel+Decorative:wght@400;700;900&family=Syne:wght@400;600;700;800&display=swap');

/* Body text */
body {
  font-family: 'Cormorant Garamond', 'Libre Baskerville', Georgia, serif;
  font-weight: 400;
  font-size: 1.1rem;
  letter-spacing: 0.02em;
  line-height: 1.8;
  color: var(--ab-parchment);
  -webkit-font-smoothing: antialiased;
}

/* Headings */
h1, h2, h3 {
  font-family: 'Playfair Display', 'Georgia', serif;
  color: var(--ab-gold);
  letter-spacing: 0.04em;
  font-weight: 800;
  text-shadow: 2px 2px 6px rgba(0, 0, 0, 0.5);
}

/* Hero display title */
.ab-display {
  font-family: 'Cinzel Decorative', 'Playfair Display', serif;
  font-size: clamp(2.5rem, 7vw, 6rem);
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.15;
  background: linear-gradient(
    135deg,
    #D4A017, #E8B931, #8C6B3E, #E8B931, #D4A017
  );
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Bold geometric subheading */
.ab-subheading {
  font-family: 'Syne', sans-serif;
  font-weight: 700;
  font-size: 1.3rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ab-terracotta);
}

/* Decorative script accent */
.ab-script {
  font-family: 'Great Vibes', cursive;
  font-size: 1.6em;
  color: var(--ab-gold-bright);
}

Layout Principles


CSS / Design Techniques

Gold Gilding and Metallic Gradients

/* Burnished gold gradient text */
.ab-gold-text {
  background: linear-gradient(
    135deg,
    #D4A017, #E8B931, #8C6B3E, #E8B931, #D4A017
  );
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Animated gold shimmer for headings */
.ab-gold-shimmer {
  background: linear-gradient(
    90deg,
    #D4A017 0%, #E8B931 25%, #FDF0D5 50%, #E8B931 75%, #D4A017 100%
  );
  background-size: 200% 100%;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: ab-shimmer 4s ease-in-out infinite;
}

@keyframes ab-shimmer {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}

/* Gold border with inner glow */
.ab-gold-border {
  border: 2px solid var(--ab-gold);
  box-shadow:
    inset 0 0 20px rgba(212, 160, 23, 0.08),
    0 0 15px rgba(212, 160, 23, 0.1);
}

Kente Pattern Background

/* Kente-inspired repeating strip pattern */
.ab-kente-bg {
  background-color: var(--ab-black);
  background-image:
    repeating-linear-gradient(
      0deg,
      transparent 0px,
      transparent 18px,
      rgba(212, 160, 23, 0.06) 18px,
      rgba(212, 160, 23, 0.06) 20px
    ),
    repeating-linear-gradient(
      90deg,
      transparent 0px,
      transparent 18px,
      rgba(178, 34, 52, 0.04) 18px,
      rgba(178, 34, 52, 0.04) 20px
    );
}

/* Bold kente strip divider */
.ab-kente-divider {
  height: 8px;
  background: repeating-linear-gradient(
    90deg,
    #D4A017 0px, #D4A017 12px,
    #B22234 12px, #B22234 24px,
    #2D5A27 24px, #2D5A27 36px,
    #1B2A4A 36px, #1B2A4A 48px,
    #D4A017 48px, #D4A017 60px
  );
  margin: 3rem 0;
}

/* Diamond / chevron kente-inspired pattern overlay */
.ab-kente-overlay {
  background-image: url("data:image/svg+xml,%3Csvg width='40' height='40' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 0 L40 20 L20 40 L0 20 Z' fill='none' stroke='%23D4A017' stroke-width='0.5' opacity='0.08'/%3E%3C/svg%3E");
}

Card / Panel

.ab-card {
  background: linear-gradient(
    160deg,
    rgba(27, 42, 74, 0.6) 0%,
    rgba(18, 14, 10, 0.9) 100%
  );
  border: 2px solid var(--ab-gold);
  border-radius: 4px;
  padding: 2.5rem;
  position: relative;
  box-shadow:
    0 6px 24px rgba(0, 0, 0, 0.5),
    inset 0 0 40px rgba(212, 160, 23, 0.04);
}

/* Top kente-strip accent bar */
.ab-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: repeating-linear-gradient(
    90deg,
    #D4A017 0px, #D4A017 8px,
    #B22234 8px, #B22234 16px,
    #2D5A27 16px, #2D5A27 24px,
    #D4A017 24px, #D4A017 32px
  );
  border-radius: 4px 4px 0 0;
}

/* Bottom decorative border using Adinkra-inspired element */
.ab-card::after {
  content: '\2726';
  position: absolute;
  bottom: -14px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 1.4rem;
  color: var(--ab-gold);
  background: var(--ab-black);
  padding: 0 0.6em;
}

.ab-card h3 {
  font-family: 'Playfair Display', serif;
  font-weight: 800;
  font-size: 1.4rem;
  color: var(--ab-gold);
  margin-bottom: 1rem;
  letter-spacing: 0.03em;
}

.ab-card p {
  color: var(--ab-parchment);
  line-height: 1.8;
}

Button

.ab-button {
  display: inline-block;
  background: linear-gradient(
    135deg,
    rgba(212, 160, 23, 0.15) 0%,
    rgba(140, 107, 62, 0.1) 100%
  );
  color: var(--ab-gold);
  border: 2px solid var(--ab-gold);
  border-radius: 2px;
  padding: 14px 40px;
  font-family: 'Playfair Display', serif;
  font-size: 0.9rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.35s ease;
  position: relative;
  overflow: hidden;
}

.ab-button:hover {
  background: linear-gradient(
    135deg,
    rgba(212, 160, 23, 0.3) 0%,
    rgba(232, 185, 49, 0.2) 100%
  );
  box-shadow:
    0 0 20px rgba(212, 160, 23, 0.25),
    0 0 40px rgba(212, 160, 23, 0.1);
  text-shadow: 0 0 10px rgba(212, 160, 23, 0.4);
  color: var(--ab-cream);
}

/* Shimmer sweep effect on hover */
.ab-button::after {
  content: '';
  position: absolute;
  top: -50%;
  left: -100%;
  width: 60%;
  height: 200%;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(232, 185, 49, 0.15),
    transparent
  );
  transform: skewX(-20deg);
  transition: left 0.6s ease;
}

.ab-button:hover::after {
  left: 120%;
}
.ab-nav {
  background: rgba(18, 14, 10, 0.96);
  border-bottom: 3px solid transparent;
  border-image: repeating-linear-gradient(
    90deg,
    #D4A017 0px, #D4A017 12px,
    transparent 12px, transparent 16px,
    #B22234 16px, #B22234 28px,
    transparent 28px, transparent 32px
  ) 3;
  padding: 18px 40px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.ab-nav .logo {
  font-family: 'Cinzel Decorative', serif;
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--ab-gold);
  text-decoration: none;
  letter-spacing: 0.06em;
}

.ab-nav-links {
  display: flex;
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.ab-nav a {
  font-family: 'Playfair Display', serif;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--ab-parchment);
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 8px 16px;
  transition: color 0.25s ease, text-shadow 0.25s ease;
}

.ab-nav a:hover {
  color: var(--ab-gold);
  text-shadow: 0 0 12px rgba(212, 160, 23, 0.35);
}

Hero Section

.ab-hero {
  text-align: center;
  padding: 100px 40px 80px;
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(
      ellipse at 50% 40%,
      rgba(212, 160, 23, 0.1) 0%,
      rgba(107, 15, 26, 0.06) 40%,
      rgba(18, 14, 10, 0) 70%
    );
}

/* Kente-inspired geometric frame around hero */
.ab-hero::before {
  content: '';
  position: absolute;
  inset: 20px;
  border: 2px solid rgba(212, 160, 23, 0.15);
  pointer-events: none;
}

/* Subtle diamond pattern overlay */
.ab-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg width='48' height='48' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M24 4 L44 24 L24 44 L4 24 Z' fill='none' stroke='%23D4A017' stroke-width='0.3' opacity='0.05'/%3E%3C/svg%3E");
  pointer-events: none;
}

.ab-hero h1 {
  font-family: 'Cinzel Decorative', serif;
  font-size: clamp(2.5rem, 7vw, 5.5rem);
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.15;
  background: linear-gradient(
    135deg,
    #D4A017, #E8B931, #8C6B3E, #E8B931, #D4A017
  );
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin-bottom: 1rem;
  position: relative;
}

.ab-hero .tagline {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.3rem;
  font-style: italic;
  color: var(--ab-parchment);
  max-width: 600px;
  margin: 0 auto;
  line-height: 1.8;
  position: relative;
}

Ornate Divider

/* Afro Baroque section divider */
.ab-divider {
  border: none;
  height: 0;
  border-top: 2px solid var(--ab-gold);
  margin: 3rem auto;
  width: 60%;
  position: relative;
}

.ab-divider::before {
  content: '\2726';
  position: absolute;
  top: -0.65em;
  left: 50%;
  transform: translateX(-50%);
  background: var(--ab-black);
  padding: 0 0.6em;
  color: var(--ab-gold);
  font-size: 1.3rem;
}

/* Kente strip section break */
.ab-strip-divider {
  border: none;
  height: 6px;
  background: repeating-linear-gradient(
    90deg,
    #D4A017 0px, #D4A017 10px,
    transparent 10px, transparent 14px,
    #B22234 14px, #B22234 24px,
    transparent 24px, transparent 28px,
    #2D5A27 28px, #2D5A27 38px,
    transparent 38px, transparent 42px
  );
  margin: 3rem 0;
}

Chiaroscuro Lighting and Depth

/* Warm baroque spotlight on dark background */
.ab-spotlight {
  background: radial-gradient(
    ellipse at 50% 30%,
    rgba(212, 160, 23, 0.12) 0%,
    rgba(107, 15, 26, 0.05) 40%,
    rgba(18, 14, 10, 0) 70%
  );
}

/* Vignette overlay for dramatic framing */
.ab-vignette::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(
    ellipse at center,
    transparent 40%,
    rgba(18, 14, 10, 0.65) 100%
  );
  pointer-events: none;
}

/* Deep layered shadow for cards and panels */
.ab-depth {
  box-shadow:
    0 2px 4px rgba(0, 0, 0, 0.3),
    0 6px 16px rgba(0, 0, 0, 0.25),
    0 12px 40px rgba(0, 0, 0, 0.2),
    inset 0 1px 0 rgba(212, 160, 23, 0.12);
}

Design Do’s and Don’ts

Do’s

Don’ts


Aesthetic Relationship to Afro Baroque
Baroque Direct parent aesthetic providing the ornate framing, chiaroscuro lighting, gilded metallic accents, and theatrical grandeur
Afrofuturism Fellow African-heritage aesthetic; shares gold metallics and geometric patterns but projects into sci-fi futures rather than opulent historical fusion
Art Deco Shares geometric precision and gold/black palettes; the Afro-Deco movement is a parallel cultural fusion cousin
Maximalism Shares the “more is more” philosophy and layered visual density; Afro Baroque is maximalism with specific cultural roots
Royalcore Both celebrate palatial luxury, rich textures, and gold accents, but Royalcore centers European monarchy
Rococo Successor to Baroque with lighter, more playful ornamentation; provides contrast to Afro Baroque’s heavier grandeur
Bohemian / Afrohemian Shares African textile celebration and pattern layering but with a more relaxed, free-spirited sensibility rather than dramatic opulence
Gothic Revival Both use dark palettes, ornate framing, and dramatic atmosphere, but Gothic draws from medieval rather than African and Baroque sources

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>Afro Baroque</title>
  <link rel="preconnect" href="https://fonts.googleapis.com">
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  <link href="https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;0,800;0,900;1,400&family=Cormorant+Garamond:ital,wght@0,400;0,600;0,700;1,400&family=Cinzel+Decorative:wght@400;700;900&family=Syne:wght@400;600;700;800&display=swap" rel="stylesheet">
  <style>
    /* ========================================
       CSS Custom Properties
       ======================================== */
    :root {
      /* Metallics */
      --ab-gold: #D4A017;
      --ab-gold-bright: #E8B931;
      --ab-bronze: #8C6B3E;
      --ab-copper: #B87333;

      /* Deep Tones */
      --ab-black: #120E0A;
      --ab-burgundy: #6B0F1A;
      --ab-indigo: #1B2A4A;
      --ab-purple: #4B1D6B;

      /* Warm Accents */
      --ab-crimson: #B22234;
      --ab-terracotta: #C65D3E;
      --ab-earth: #5C3A21;
      --ab-green: #2D5A27;

      /* Light Tones */
      --ab-parchment: #F5E6CA;
      --ab-cream: #FDF0D5;
    }

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

    html {
      scroll-behavior: smooth;
    }

    body {
      font-family: 'Cormorant Garamond', Georgia, serif;
      font-weight: 400;
      font-size: 1.1rem;
      line-height: 1.8;
      letter-spacing: 0.02em;
      color: var(--ab-parchment);
      background: var(--ab-black);
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
    }

    /* ========================================
       Kente Pattern Background Texture
       ======================================== */
    body::before {
      content: '';
      position: fixed;
      inset: 0;
      background-image:
        repeating-linear-gradient(
          0deg,
          transparent 0px, transparent 20px,
          rgba(212, 160, 23, 0.03) 20px, rgba(212, 160, 23, 0.03) 21px
        ),
        repeating-linear-gradient(
          90deg,
          transparent 0px, transparent 20px,
          rgba(178, 34, 52, 0.02) 20px, rgba(178, 34, 52, 0.02) 21px
        );
      pointer-events: none;
      z-index: 0;
    }

    /* ========================================
       Typography
       ======================================== */
    h1, h2, h3 {
      font-family: 'Playfair Display', Georgia, serif;
      color: var(--ab-gold);
      letter-spacing: 0.04em;
      font-weight: 800;
      text-shadow: 2px 2px 6px rgba(0, 0, 0, 0.5);
    }

    h2 {
      font-size: 2rem;
      margin-bottom: 0.8rem;
    }

    h3 {
      font-size: 1.4rem;
      margin-bottom: 0.6rem;
    }

    p {
      margin-bottom: 1rem;
    }

    a {
      color: var(--ab-gold-bright);
      text-decoration: none;
      transition: color 0.25s ease;
    }

    a:hover {
      color: var(--ab-cream);
      text-shadow: 0 0 8px rgba(212, 160, 23, 0.3);
    }

    /* ========================================
       Navigation
       ======================================== */
    .ab-nav {
      position: sticky;
      top: 0;
      z-index: 100;
      background: rgba(18, 14, 10, 0.96);
      border-bottom: 3px solid transparent;
      border-image: repeating-linear-gradient(
        90deg,
        #D4A017 0px, #D4A017 12px,
        transparent 12px, transparent 16px,
        #B22234 16px, #B22234 28px,
        transparent 28px, transparent 32px
      ) 3;
      padding: 16px 40px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
    }

    .ab-nav .logo {
      font-family: 'Cinzel Decorative', serif;
      font-size: 1.2rem;
      font-weight: 700;
      color: var(--ab-gold);
      text-decoration: none;
      letter-spacing: 0.06em;
    }

    .ab-nav-links {
      display: flex;
      gap: 4px;
      list-style: none;
    }

    .ab-nav-links a {
      font-family: 'Playfair Display', serif;
      font-size: 0.82rem;
      font-weight: 600;
      color: var(--ab-parchment);
      text-transform: uppercase;
      letter-spacing: 0.08em;
      padding: 8px 14px;
      transition: color 0.25s ease, text-shadow 0.25s ease;
    }

    .ab-nav-links a:hover {
      color: var(--ab-gold);
      text-shadow: 0 0 12px rgba(212, 160, 23, 0.35);
    }

    /* ========================================
       Hero Section
       ======================================== */
    .ab-hero {
      text-align: center;
      padding: 100px 40px 80px;
      position: relative;
      overflow: hidden;
      background:
        radial-gradient(
          ellipse at 50% 35%,
          rgba(212, 160, 23, 0.1) 0%,
          rgba(107, 15, 26, 0.05) 40%,
          rgba(18, 14, 10, 0) 70%
        );
    }

    /* Geometric border frame */
    .ab-hero::before {
      content: '';
      position: absolute;
      inset: 24px;
      border: 2px solid rgba(212, 160, 23, 0.12);
      pointer-events: none;
    }

    /* Diamond pattern overlay */
    .ab-hero::after {
      content: '';
      position: absolute;
      inset: 0;
      background-image: url("data:image/svg+xml,%3Csvg width='48' height='48' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M24 4 L44 24 L24 44 L4 24 Z' fill='none' stroke='%23D4A017' stroke-width='0.3' opacity='0.04'/%3E%3C/svg%3E");
      pointer-events: none;
    }

    .ab-hero .label {
      font-family: 'Syne', sans-serif;
      font-size: 0.75rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.25em;
      color: var(--ab-terracotta);
      margin-bottom: 20px;
      position: relative;
    }

    .ab-hero h1 {
      font-family: 'Cinzel Decorative', serif;
      font-size: clamp(2.5rem, 7vw, 5rem);
      font-weight: 700;
      letter-spacing: 0.06em;
      line-height: 1.15;
      background: linear-gradient(
        135deg,
        #D4A017, #E8B931, #8C6B3E, #E8B931, #D4A017
      );
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
      margin-bottom: 1.2rem;
      text-shadow: none;
      position: relative;
    }

    .ab-hero .tagline {
      font-family: 'Cormorant Garamond', serif;
      font-size: 1.25rem;
      font-style: italic;
      color: var(--ab-parchment);
      max-width: 580px;
      margin: 0 auto 2rem;
      line-height: 1.8;
      position: relative;
    }

    /* ========================================
       Kente Dividers
       ======================================== */
    .ab-kente-bar {
      height: 6px;
      background: repeating-linear-gradient(
        90deg,
        #D4A017 0px, #D4A017 10px,
        #B22234 10px, #B22234 20px,
        #2D5A27 20px, #2D5A27 30px,
        #1B2A4A 30px, #1B2A4A 40px,
        #D4A017 40px, #D4A017 50px
      );
      margin: 0;
    }

    .ab-divider {
      border: none;
      height: 0;
      border-top: 2px solid var(--ab-gold);
      margin: 2.5rem auto;
      width: 50%;
      position: relative;
    }

    .ab-divider::before {
      content: '\2726';
      position: absolute;
      top: -0.65em;
      left: 50%;
      transform: translateX(-50%);
      background: var(--ab-black);
      padding: 0 0.6em;
      color: var(--ab-gold);
      font-size: 1.2rem;
    }

    /* ========================================
       Layout Container
       ======================================== */
    .container {
      max-width: 960px;
      margin: 0 auto;
      padding: 0 24px;
      position: relative;
      z-index: 1;
    }

    section {
      padding: 60px 0;
    }

    /* ========================================
       Cards
       ======================================== */
    .card-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
      gap: 32px;
      margin-top: 2rem;
    }

    .ab-card {
      background: linear-gradient(
        160deg,
        rgba(27, 42, 74, 0.5) 0%,
        rgba(18, 14, 10, 0.9) 100%
      );
      border: 2px solid var(--ab-gold);
      border-radius: 4px;
      padding: 2.5rem 2rem;
      position: relative;
      box-shadow:
        0 6px 24px rgba(0, 0, 0, 0.5),
        inset 0 0 30px rgba(212, 160, 23, 0.03);
      transition: transform 0.3s ease, box-shadow 0.3s ease;
    }

    .ab-card:hover {
      transform: translateY(-4px);
      box-shadow:
        0 10px 36px rgba(0, 0, 0, 0.6),
        0 0 20px rgba(212, 160, 23, 0.08),
        inset 0 0 30px rgba(212, 160, 23, 0.05);
    }

    /* Kente strip top accent */
    .ab-card::before {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 4px;
      background: repeating-linear-gradient(
        90deg,
        #D4A017 0px, #D4A017 8px,
        #B22234 8px, #B22234 16px,
        #2D5A27 16px, #2D5A27 24px
      );
      border-radius: 4px 4px 0 0;
    }

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

    .ab-card h3 {
      font-family: 'Playfair Display', serif;
      font-weight: 800;
      font-size: 1.3rem;
      color: var(--ab-gold);
      margin-bottom: 0.8rem;
    }

    .ab-card p {
      font-size: 1rem;
      color: var(--ab-parchment);
      line-height: 1.75;
    }

    /* ========================================
       Buttons
       ======================================== */
    .ab-button {
      display: inline-block;
      background: linear-gradient(
        135deg,
        rgba(212, 160, 23, 0.12) 0%,
        rgba(140, 107, 62, 0.08) 100%
      );
      color: var(--ab-gold);
      border: 2px solid var(--ab-gold);
      border-radius: 2px;
      padding: 14px 40px;
      font-family: 'Playfair Display', serif;
      font-size: 0.88rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.12em;
      text-decoration: none;
      cursor: pointer;
      transition: all 0.35s ease;
      position: relative;
      overflow: hidden;
    }

    .ab-button:hover {
      background: linear-gradient(
        135deg,
        rgba(212, 160, 23, 0.28) 0%,
        rgba(232, 185, 49, 0.18) 100%
      );
      box-shadow:
        0 0 20px rgba(212, 160, 23, 0.25),
        0 0 40px rgba(212, 160, 23, 0.1);
      text-shadow: 0 0 10px rgba(212, 160, 23, 0.4);
      color: var(--ab-cream);
    }

    .ab-button::after {
      content: '';
      position: absolute;
      top: -50%;
      left: -100%;
      width: 60%;
      height: 200%;
      background: linear-gradient(
        90deg,
        transparent,
        rgba(232, 185, 49, 0.12),
        transparent
      );
      transform: skewX(-20deg);
      transition: left 0.6s ease;
    }

    .ab-button:hover::after {
      left: 120%;
    }

    .ab-button--secondary {
      background: transparent;
      border-color: var(--ab-terracotta);
      color: var(--ab-terracotta);
    }

    .ab-button--secondary:hover {
      background: rgba(198, 93, 62, 0.12);
      box-shadow: 0 0 20px rgba(198, 93, 62, 0.2);
      color: var(--ab-cream);
    }

    /* ========================================
       Feature / Highlight Panel
       ======================================== */
    .ab-panel {
      background: linear-gradient(
        160deg,
        rgba(107, 15, 26, 0.25) 0%,
        rgba(18, 14, 10, 0.85) 100%
      );
      border: 2px solid var(--ab-gold);
      padding: 3rem;
      position: relative;
      margin: 2rem 0;
    }

    /* Double-frame ornate border */
    .ab-panel::before {
      content: '';
      position: absolute;
      inset: 8px;
      border: 1px solid rgba(212, 160, 23, 0.2);
      pointer-events: none;
    }

    .ab-panel h2 {
      text-align: center;
      margin-bottom: 1.5rem;
    }

    .ab-panel p {
      text-align: center;
      max-width: 700px;
      margin: 0 auto;
      font-size: 1.15rem;
    }

    /* ========================================
       Footer
       ======================================== */
    .ab-footer {
      text-align: center;
      padding: 40px 24px;
      border-top: 3px solid transparent;
      border-image: repeating-linear-gradient(
        90deg,
        #D4A017 0px, #D4A017 12px,
        transparent 12px, transparent 16px,
        #B22234 16px, #B22234 28px,
        transparent 28px, transparent 32px
      ) 3;
      font-size: 0.9rem;
      color: rgba(245, 230, 202, 0.5);
    }

    .ab-footer .footer-symbol {
      font-size: 1.4rem;
      color: var(--ab-gold);
      margin-bottom: 0.8rem;
      display: block;
    }

    /* ========================================
       Responsive
       ======================================== */
    @media (max-width: 768px) {
      .ab-nav {
        flex-direction: column;
        gap: 12px;
        padding: 14px 20px;
      }

      .ab-nav-links {
        flex-wrap: wrap;
        justify-content: center;
      }

      .ab-hero {
        padding: 70px 20px 60px;
      }

      .ab-hero::before {
        inset: 12px;
      }

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

      .ab-panel {
        padding: 2rem 1.5rem;
      }

      section {
        padding: 40px 0;
      }
    }
  </style>
</head>
<body>

  <!-- Navigation -->
  <nav class="ab-nav">
    <a href="#" class="logo">Afro Baroque</a>
    <ul class="ab-nav-links">
      <li><a href="#heritage">Heritage</a></li>
      <li><a href="#craft">Craft</a></li>
      <li><a href="#gallery">Gallery</a></li>
      <li><a href="#contact">Contact</a></li>
    </ul>
  </nav>

  <!-- Kente Strip Bar -->
  <div class="ab-kente-bar"></div>

  <!-- Hero Section -->
  <header class="ab-hero">
    <p class="label">Where Heritage Meets Grandeur</p>
    <h1>Afro Baroque</h1>
    <p class="tagline">
      African design maximalism woven with Baroque opulence &mdash;
      bold patterns, ancestral gold, rich textures, cultural fusion.
    </p>
    <div style="margin-top: 2rem; position: relative;">
      <a href="#heritage" class="ab-button">Explore the Aesthetic</a>
    </div>
  </header>

  <!-- Kente Strip Bar -->
  <div class="ab-kente-bar"></div>

  <!-- Heritage Section -->
  <section id="heritage">
    <div class="container">
      <h2>Rooted in Heritage</h2>
      <hr class="ab-divider">
      <p style="text-align: center; max-width: 700px; margin: 0 auto 2rem; font-size: 1.15rem;">
        From the gold-weighted geometry of Ashanti kente cloth to the dramatic
        chiaroscuro of Caravaggio, Afro Baroque draws from centuries of artistic
        mastery across continents. Every pattern encodes a story. Every gilded
        surface reflects a legacy of craftsmanship.
      </p>

      <div class="card-grid">
        <div class="ab-card">
          <span class="card-icon">&#9670;</span>
          <h3>Kente Geometry</h3>
          <p>
            Originally the cloth of kings and queens in the Ashanti kingdom,
            kente weaving transforms narrow strips into bold geometric
            narratives of status, history, and aspiration.
          </p>
        </div>
        <div class="ab-card">
          <span class="card-icon">&#10022;</span>
          <h3>Baroque Grandeur</h3>
          <p>
            Born in 16th-century Rome, the Baroque tradition embraced
            dramatic light, monumental scale, and gilded ornamentation
            to create spaces of overwhelming beauty.
          </p>
        </div>
        <div class="ab-card">
          <span class="card-icon">&#10047;</span>
          <h3>Cultural Fusion</h3>
          <p>
            Afro Baroque is neither historical pastiche nor superficial
            blending. It is a living dialogue between two of the world's
            richest decorative traditions, creating something new.
          </p>
        </div>
      </div>
    </div>
  </section>

  <!-- Kente Strip Bar -->
  <div class="ab-kente-bar"></div>

  <!-- Craft Section -->
  <section id="craft">
    <div class="container">
      <div class="ab-panel">
        <h2>The Craft of Fusion</h2>
        <p>
          Raw silk meets African wax print. Mudcloth earth tones layer
          beneath burnished gold leaf. Hand-beaded Yoruba patterns frame
          Baroque cartouches. In Afro Baroque design, every texture tells
          two stories at once &mdash; ancestral and aspirational, rooted
          and reaching.
        </p>
      </div>

      <div class="card-grid" style="margin-top: 3rem;">
        <div class="ab-card">
          <h3>Adinkra Symbols</h3>
          <p>
            Ghanaian visual philosophy rendered in gold. Gye Nyame
            (supremacy of God), Sankofa (learn from the past),
            Dwennimmen (strength with humility) &mdash; each symbol
            carries generations of wisdom.
          </p>
        </div>
        <div class="ab-card">
          <h3>Gilded Ornamentation</h3>
          <p>
            Gold unites both traditions. In Ashanti culture it signifies
            royalty and spiritual power. In Baroque art it represents
            divine glory. Their convergence creates a shared language of
            reverence and magnificence.
          </p>
        </div>
      </div>

      <div style="text-align: center; margin-top: 3rem;">
        <a href="#gallery" class="ab-button">View the Gallery</a>
        <a href="#contact" class="ab-button ab-button--secondary" style="margin-left: 16px;">Get in Touch</a>
      </div>
    </div>
  </section>

  <!-- Kente Strip Bar -->
  <div class="ab-kente-bar"></div>

  <!-- Gallery Section -->
  <section id="gallery">
    <div class="container">
      <h2 style="text-align: center;">Gallery of Fusion</h2>
      <hr class="ab-divider">

      <div class="card-grid">
        <div class="ab-card">
          <h3>Textile Alchemy</h3>
          <p>
            Ankara wax-print cottons layered with Baroque brocade
            patterns, dyed in deep indigo and bordered with gold thread.
            The fabric itself becomes a canvas of cultural dialogue.
          </p>
        </div>
        <div class="ab-card">
          <h3>Beaded Cartouches</h3>
          <p>
            Traditional Zulu beadwork techniques applied to Baroque
            oval frames, creating ornate borders where every bead
            carries chromatic meaning and every curve echoes palatial halls.
          </p>
        </div>
        <div class="ab-card">
          <h3>Chiaroscuro Portraits</h3>
          <p>
            Dramatic Baroque lighting illuminates subjects adorned in
            kente cloth and gold jewelry, celebrating African beauty
            through the theatrical staging of Renaissance masters.
          </p>
        </div>
      </div>
    </div>
  </section>

  <!-- Footer -->
  <div class="ab-kente-bar"></div>
  <footer class="ab-footer">
    <span class="footer-symbol">&#10022;</span>
    <p>Afro Baroque &mdash; Heritage as Luxury, Pattern as Power</p>
    <p style="margin-top: 0.5rem;">&copy; 2026 &middot; A Celebration of Cultural Fusion</p>
  </footer>

</body>
</html>

Implementation Tips