website_designs

Stained Glass Design Reference

Overview

Stained Glass is a design aesthetic rooted in the centuries-old art of assembling small pieces of colored glass into patterns and pictures, held together by strips of lead called cames. Originating in the medieval period and reaching its zenith in the great Gothic cathedrals of Europe – Chartres, Notre-Dame, Sainte-Chapelle – the technique transforms sunlight into narrative color, turning walls into luminous storytelling surfaces. In a web design context, the Stained Glass aesthetic translates these principles into translucent colored panels, dark lead-line borders, jewel-tone palettes, and a distinctive light-through-color effect that makes interfaces glow as if backlit by daylight streaming through a rose window.

The hallmark of this aesthetic is the interplay between structure and luminosity. Lead cames – the dark, rigid lines separating each piece of glass – serve both a structural and compositional purpose, creating bold geometric or organic outlines that define every panel, card, and section boundary. The glass itself is never opaque; it carries the memory of transmitted light, rendered on screen through semi-transparent backgrounds, radial gradients that simulate illumination from behind, and saturated jewel-tone hues inspired by cobalt blue, ruby red, emerald green, and amethyst purple. Color in stained glass is not surface decoration – it is the material itself, and every hue carries symbolic weight: blue for the heavens and the Virgin Mary, red for the blood of Christ and sacrifice, green for rebirth and nature, gold for divine radiance.

On the web, the Stained Glass aesthetic occupies a space between the ornamental richness of Gothic Revival and the translucent layering of Glassmorphism, but distinguishes itself through its compartmentalized panel structure, its heavy dark borders (rather than soft frosted edges), and its use of deeply saturated, jewel-like color rather than pastel transparency. Typography draws from the blackletter, uncial, and inscriptional serif traditions of medieval manuscripts, lending a sense of sacred gravitas to headings and display text. Layouts echo the geometric tracery of Gothic windows – pointed arches, rosettes, quatrefoils, and grid-like panel arrangements – while maintaining modern responsiveness and readability. The result is a design language that feels simultaneously ancient and luminous, structural and ethereal, solemn and richly beautiful.


Visual Characteristics

Core Design Traits

Design Principles


Color Palette

The Stained Glass palette draws directly from the jewel-tone colors produced by medieval glass-making techniques: cobalt oxide for deep blue, copper oxide for green, gold chloride and selenium for ruby red, manganese for amethyst purple, and silver stain for golden yellow. These are not pastel or muted – they are richly saturated, deeply luminous hues that appear to glow against a dark background. Every color should feel as though light is passing through it.

Swatch Hex Role/Usage
#0F52BA #0F52BA Sapphire Blue – primary accent, header panels, heavenly/celestial associations
#1A3A6B #1A3A6B Cathedral Blue – secondary blue, deeper panels, navigation backgrounds
#9B111E #9B111E Ruby Red – call-to-action, emphasis, passion and sacrifice symbolism
#C41E3A #C41E3A Cardinal Red – lighter red accent, hover states, warm highlights
#009473 #009473 Emerald Green – nature, rebirth, secondary panels, success states
#1B5E20 #1B5E20 Forest Green – deep green accents, backgrounds, eternal life symbolism
#7B2D8E #7B2D8E Amethyst Purple – decorative accents, mystical/royal associations
#9966CC #9966CC Violet Glass – lighter purple, secondary accents, text highlights
#D4AF37 #D4AF37 Gold Stain – divine light, metallic accents, borders, sacred glow (mimics silver stain technique)
#B8860B #B8860B Dark Gold – secondary metallic, solder joints, warm border highlights
#E8A317 #E8A317 Topaz Yellow – warm accent, illumination effect, highlights
#1A1A2E #1A1A2E Cathedral Dark – primary background, the dark stone behind the glass
#2D2D3F #2D2D3F Lead Grey – border/came color, structural lines, separators
#F5F0E1 #F5F0E1 Parchment – light text, body copy on dark backgrounds, manuscript reference
#FAFAFA #FAFAFA Pure Light – brightest highlights, glow centers, maximum luminosity points

CSS Custom Properties

:root {
  /* Background & Structure */
  --glass-bg-dark: #1a1a2e;
  --glass-bg-deep: #12121f;
  --glass-lead: #2d2d3f;
  --glass-lead-dark: #1e1e30;
  --glass-solder: #b8860b;

  /* Blues */
  --glass-sapphire: #0f52ba;
  --glass-cathedral-blue: #1a3a6b;
  --glass-sapphire-glow: rgba(15, 82, 186, 0.7);

  /* Reds */
  --glass-ruby: #9b111e;
  --glass-cardinal: #c41e3a;
  --glass-ruby-glow: rgba(155, 17, 30, 0.7);

  /* Greens */
  --glass-emerald: #009473;
  --glass-forest: #1b5e20;
  --glass-emerald-glow: rgba(0, 148, 115, 0.7);

  /* Purples */
  --glass-amethyst: #7b2d8e;
  --glass-violet: #9966cc;
  --glass-amethyst-glow: rgba(123, 45, 142, 0.7);

  /* Golds & Yellows */
  --glass-gold: #d4af37;
  --glass-gold-dark: #b8860b;
  --glass-topaz: #e8a317;

  /* Light & Text */
  --glass-parchment: #f5f0e1;
  --glass-light: #fafafa;
  --glass-text-primary: #f5f0e1;
  --glass-text-secondary: rgba(245, 240, 225, 0.75);

  /* Functional Aliases */
  --glass-bg-primary: var(--glass-bg-dark);
  --glass-border: var(--glass-lead);
  --glass-accent: var(--glass-sapphire);
  --glass-accent-warm: var(--glass-ruby);
  --glass-highlight: var(--glass-gold);
}

Typography

Stained Glass typography draws from the manuscript and inscriptional traditions that accompanied medieval cathedral art. Display text uses blackletter, uncial, or heavily ornamented serif faces that evoke illuminated manuscripts, stone-carved inscriptions, and liturgical texts. Body text uses more readable serif faces with classical proportions, maintaining the sense of historical gravitas while ensuring legibility on screen. Text color is primarily warm parchment-toned against dark backgrounds, with gold used for accents and highlights. Letter-spacing tends to be generous, especially in headings, to echo the spaced-out inscriptional lettering found on cathedral facades.

Font Style Usage
UnifrakturCook Blackletter / Fraktur Decorative display titles, hero headings
MedievalSharp Medieval serif Subheadings, section titles, display text
Cinzel Inscriptional serif Primary headings, navigation labels
Cinzel Decorative Ornamental inscriptional Hero titles, special display moments
EB Garamond Classical humanist serif Body text, paragraphs, readable content
Cormorant Garamond Elegant high-contrast serif Body text alternative, pull quotes
Spectral Modern organic serif UI text, captions, smaller body copy
Uncial Antiqua Uncial / half-uncial Accent text, decorative labels, category names

Font Pairing Recommendations

Context Primary Font Secondary Font Notes
Hero / Display Cinzel Decorative Cormorant Garamond Ornamental heading with elegant serif body
Editorial / Article Cinzel EB Garamond Inscriptional headings with highly readable body
Decorative / Atmospheric UnifrakturCook Spectral Blackletter display with clean serif body for contrast
Modern Interpretation MedievalSharp EB Garamond Medieval-flavored headings with classic body text
Formal / Ceremonial Cinzel Decorative Cormorant Garamond italic Maximum gravitas with flowing italic body

Typography CSS Example

/* Import from Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;600;700&family=Cinzel+Decorative:wght@400;700&family=EB+Garamond:ital,wght@0,400;0,500;0,600;1,400&family=Cormorant+Garamond:ital,wght@0,300;0,400;1,400&family=UnifrakturCook:wght@700&display=swap');

/* Headlines */
h1, h2, h3 {
  font-family: 'Cinzel', 'Times New Roman', serif;
  color: var(--glass-parchment);
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1.2;
}

/* Display / Hero text */
.glass-display {
  font-family: 'Cinzel Decorative', 'Cinzel', serif;
  font-size: clamp(2.5rem, 7vw, 5.5rem);
  letter-spacing: 0.12em;
  line-height: 1.1;
  font-weight: 400;
  color: var(--glass-gold);
  text-shadow: 0 0 40px rgba(212, 175, 55, 0.3);
}

/* Blackletter decorative accent */
.glass-blackletter {
  font-family: 'UnifrakturCook', cursive;
  font-size: 1.6em;
  color: var(--glass-gold);
  letter-spacing: 0.05em;
}

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

/* Captions and small text */
.glass-caption {
  font-family: 'Spectral', 'EB Garamond', serif;
  font-size: 0.85rem;
  color: var(--glass-text-secondary);
  letter-spacing: 0.04em;
}

Layout Principles


CSS / Design Techniques

Stained Glass Card

/* Individual glass panel / card */
.glass-card {
  background: rgba(15, 82, 186, 0.15);
  border: 3px solid var(--glass-lead);
  padding: 2rem;
  position: relative;
  overflow: hidden;
  transition: all 0.4s ease;
}

/* Inner glow -- light-through-color effect */
.glass-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(
    ellipse at 50% 30%,
    rgba(15, 82, 186, 0.25) 0%,
    rgba(15, 82, 186, 0.08) 50%,
    transparent 80%
  );
  pointer-events: none;
}

/* Glass texture overlay */
.glass-card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100' height='100' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");
  pointer-events: none;
  mix-blend-mode: overlay;
}

.glass-card:hover {
  box-shadow:
    inset 0 0 30px rgba(15, 82, 186, 0.2),
    0 0 20px rgba(15, 82, 186, 0.15);
  border-color: var(--glass-sapphire);
}

/* Color variants */
.glass-card--ruby {
  background: rgba(155, 17, 30, 0.15);
}
.glass-card--ruby::before {
  background: radial-gradient(
    ellipse at 50% 30%,
    rgba(155, 17, 30, 0.25) 0%,
    rgba(155, 17, 30, 0.08) 50%,
    transparent 80%
  );
}

.glass-card--emerald {
  background: rgba(0, 148, 115, 0.15);
}
.glass-card--emerald::before {
  background: radial-gradient(
    ellipse at 50% 30%,
    rgba(0, 148, 115, 0.25) 0%,
    rgba(0, 148, 115, 0.08) 50%,
    transparent 80%
  );
}

.glass-card--amethyst {
  background: rgba(123, 45, 142, 0.15);
}
.glass-card--amethyst::before {
  background: radial-gradient(
    ellipse at 50% 30%,
    rgba(123, 45, 142, 0.25) 0%,
    rgba(123, 45, 142, 0.08) 50%,
    transparent 80%
  );
}

.glass-card--gold {
  background: rgba(212, 175, 55, 0.12);
}
.glass-card--gold::before {
  background: radial-gradient(
    ellipse at 50% 30%,
    rgba(212, 175, 55, 0.2) 0%,
    rgba(212, 175, 55, 0.06) 50%,
    transparent 80%
  );
}

Stained Glass Button

/* Base button -- jewel-tone glass with lead border */
.glass-btn {
  display: inline-block;
  padding: 0.8rem 2rem;
  font-family: 'Cinzel', serif;
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--glass-parchment);
  background: linear-gradient(
    135deg,
    rgba(15, 82, 186, 0.4) 0%,
    rgba(15, 82, 186, 0.6) 50%,
    rgba(15, 82, 186, 0.35) 100%
  );
  border: 2px solid var(--glass-lead);
  cursor: pointer;
  position: relative;
  overflow: hidden;
  transition: all 0.3s ease;
  text-decoration: none;
}

/* Simulated light catch */
.glass-btn::before {
  content: '';
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(
    circle at 40% 30%,
    rgba(255, 255, 255, 0.15) 0%,
    transparent 50%
  );
  pointer-events: none;
}

.glass-btn:hover {
  background: linear-gradient(
    135deg,
    rgba(15, 82, 186, 0.55) 0%,
    rgba(15, 82, 186, 0.75) 50%,
    rgba(15, 82, 186, 0.5) 100%
  );
  box-shadow:
    0 0 15px rgba(15, 82, 186, 0.3),
    inset 0 0 15px rgba(15, 82, 186, 0.15);
  border-color: var(--glass-sapphire);
}

.glass-btn:active {
  transform: scale(0.98);
  box-shadow: inset 0 0 20px rgba(0, 0, 0, 0.3);
}

/* Ruby variant */
.glass-btn--ruby {
  background: linear-gradient(
    135deg,
    rgba(155, 17, 30, 0.4) 0%,
    rgba(155, 17, 30, 0.6) 50%,
    rgba(155, 17, 30, 0.35) 100%
  );
}

/* Gold / highlight variant */
.glass-btn--gold {
  background: linear-gradient(
    135deg,
    rgba(212, 175, 55, 0.35) 0%,
    rgba(212, 175, 55, 0.55) 50%,
    rgba(212, 175, 55, 0.3) 100%
  );
  color: var(--glass-light);
}

Stained Glass Navigation

/* Navigation bar -- lead-bordered panel strip */
.glass-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  background: var(--glass-bg-deep);
  border-bottom: 3px solid var(--glass-lead);
  padding: 0;
  position: sticky;
  top: 0;
  z-index: 100;
}

/* Each nav item is a small glass panel */
.glass-nav a {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem 1.8rem;
  font-family: 'Cinzel', serif;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--glass-text-secondary);
  border-right: 2px solid var(--glass-lead);
  position: relative;
  transition: all 0.3s ease;
}

.glass-nav a:first-child {
  border-left: 2px solid var(--glass-lead);
}

/* Hover: glass panel lights up */
.glass-nav a:hover {
  color: var(--glass-parchment);
  background: rgba(15, 82, 186, 0.15);
  box-shadow: inset 0 0 20px rgba(15, 82, 186, 0.1);
}

/* Active state: fully illuminated */
.glass-nav a.active {
  color: var(--glass-gold);
  background: rgba(212, 175, 55, 0.1);
  box-shadow: inset 0 -3px 0 var(--glass-gold);
}

/* Solder dot at junctions */
.glass-nav a::after {
  content: '';
  position: absolute;
  right: -4px;
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
  width: 6px;
  height: 6px;
  background: var(--glass-solder);
  border-radius: 1px;
  z-index: 1;
}

.glass-nav a:last-child::after {
  display: none;
}

Stained Glass Hero Section

/* Hero: cathedral window with illuminated center */
.glass-hero {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 4rem 2rem;
  position: relative;
  overflow: hidden;
  background: var(--glass-bg-dark);
}

/* Rose window radial glow behind the content */
.glass-hero::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 800px;
  height: 800px;
  background: radial-gradient(
    circle,
    rgba(212, 175, 55, 0.08) 0%,
    rgba(15, 82, 186, 0.06) 25%,
    rgba(123, 45, 142, 0.04) 50%,
    rgba(155, 17, 30, 0.03) 70%,
    transparent 85%
  );
  border-radius: 50%;
  pointer-events: none;
}

/* Outer ring -- simulated rose window tracery */
.glass-hero::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 600px;
  height: 600px;
  border: 2px solid rgba(45, 45, 63, 0.6);
  border-radius: 50%;
  pointer-events: none;
  box-shadow:
    0 0 0 30px rgba(26, 26, 46, 0.3),
    0 0 0 32px rgba(45, 45, 63, 0.4);
}

.glass-hero h1 {
  font-family: 'Cinzel Decorative', serif;
  font-size: clamp(2.5rem, 8vw, 6rem);
  color: var(--glass-gold);
  letter-spacing: 0.12em;
  text-shadow:
    0 0 30px rgba(212, 175, 55, 0.3),
    0 0 60px rgba(212, 175, 55, 0.1);
  position: relative;
  z-index: 1;
}

.glass-hero .subtitle {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(1.1rem, 2.5vw, 1.5rem);
  font-style: italic;
  color: var(--glass-text-secondary);
  margin-top: 1rem;
  letter-spacing: 0.06em;
  position: relative;
  z-index: 1;
}

Lead-Line Grid Layout

/* Stained glass panel grid -- dark gaps simulate lead cames */
.glass-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 4px; /* lead line width */
  background: var(--glass-lead); /* lead color fills the gaps */
  border: 4px solid var(--glass-lead);
  padding: 0;
}

.glass-grid > * {
  background: var(--glass-bg-dark);
  padding: 2rem;
  position: relative;
}

/* Solder dots at intersections using a repeating pattern */
.glass-grid::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(
    circle 3px at center,
    var(--glass-solder) 0%,
    var(--glass-solder) 70%,
    transparent 71%
  );
  background-size: calc(100% / 3) calc(100% / 3);
  background-position: -2px -2px;
  pointer-events: none;
  z-index: 2;
  opacity: 0.6;
}

Gothic Arch Frame

/* Pointed arch container using clip-path */
.glass-arch {
  clip-path: polygon(
    0% 100%,
    0% 35%,
    15% 10%,
    50% 0%,
    85% 10%,
    100% 35%,
    100% 100%
  );
  background: var(--glass-lead);
  padding: 4px;
  display: inline-block;
}

.glass-arch-inner {
  clip-path: polygon(
    0% 100%,
    0% 35%,
    15% 10%,
    50% 0%,
    85% 10%,
    100% 35%,
    100% 100%
  );
  background: rgba(15, 82, 186, 0.2);
  padding: 4rem 2.5rem 2.5rem;
  position: relative;
}

/* Light effect within the arch */
.glass-arch-inner::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 60%;
  height: 60%;
  background: radial-gradient(
    ellipse at 50% 20%,
    rgba(212, 175, 55, 0.12) 0%,
    transparent 70%
  );
  pointer-events: none;
}

Rose Window Decorative Element

/* Circular rose window using layered radial gradients */
.glass-rose {
  width: 300px;
  height: 300px;
  border-radius: 50%;
  border: 4px solid var(--glass-lead);
  position: relative;
  overflow: hidden;
  margin: 2rem auto;
}

.glass-rose::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    /* Central medallion */
    radial-gradient(
      circle at 50% 50%,
      rgba(212, 175, 55, 0.4) 0%,
      rgba(212, 175, 55, 0.15) 15%,
      transparent 16%
    ),
    /* Inner ring segments */
    conic-gradient(
      from 0deg,
      rgba(15, 82, 186, 0.3) 0deg,
      rgba(155, 17, 30, 0.3) 60deg,
      rgba(0, 148, 115, 0.3) 120deg,
      rgba(123, 45, 142, 0.3) 180deg,
      rgba(15, 82, 186, 0.3) 240deg,
      rgba(155, 17, 30, 0.3) 300deg,
      rgba(15, 82, 186, 0.3) 360deg
    );
}

.glass-rose::after {
  content: '';
  position: absolute;
  inset: 0;
  /* Lead line cross pattern */
  background:
    linear-gradient(0deg, transparent 48%, var(--glass-lead) 48%, var(--glass-lead) 52%, transparent 52%),
    linear-gradient(90deg, transparent 48%, var(--glass-lead) 48%, var(--glass-lead) 52%, transparent 52%),
    linear-gradient(45deg, transparent 48.5%, var(--glass-lead) 48.5%, var(--glass-lead) 51.5%, transparent 51.5%),
    linear-gradient(-45deg, transparent 48.5%, var(--glass-lead) 48.5%, var(--glass-lead) 51.5%, transparent 51.5%);
  border-radius: 50%;
}

/* Inner circle lead line */
.glass-rose .inner-ring {
  position: absolute;
  top: 25%;
  left: 25%;
  width: 50%;
  height: 50%;
  border: 3px solid var(--glass-lead);
  border-radius: 50%;
  z-index: 1;
}

Illuminated Divider

/* Horizontal divider simulating a strip of decorative glass */
.glass-divider {
  width: 60%;
  max-width: 500px;
  height: 3px;
  margin: 3rem auto;
  position: relative;
  background: var(--glass-lead);
}

/* Central gold diamond ornament */
.glass-divider::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(45deg);
  width: 12px;
  height: 12px;
  background: var(--glass-gold);
  border: 2px solid var(--glass-lead);
}

/* Side accent dots */
.glass-divider::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 25%;
  transform: translateY(-50%);
  width: 6px;
  height: 6px;
  background: var(--glass-solder);
  border-radius: 50%;
  box-shadow:
    calc(50% * 2) 0 0 var(--glass-solder);
}

Design Do’s and Don’ts

Do’s

Don’ts


Aesthetic Relationship to Stained Glass
Gothic Revival Direct architectural ancestor; shares pointed arches, tracery patterns, ecclesiastical mood, and medieval references
Glassmorphism Shares translucent panel concept but differs fundamentally – glassmorphism uses frosted blur and soft edges; stained glass uses hard lead borders and saturated color
Art Nouveau Historical overlap through Tiffany and Art Nouveau stained glass; shares organic leading patterns and nature motifs, but Art Nouveau is lighter and more curvilinear
Art Deco Shares geometric panel structures and bold color blocking, but Art Deco uses metallic chrome and streamlined geometry rather than medieval tracery
Dark Mode / Dark UI Shares the dark background foundation, but Dark UI is utilitarian; Stained Glass adds ornament, symbolism, and luminous color
Jewel Tone Maximalism Shares the saturated gemstone palette, but Maximalism lacks the structured panel grid and lead-line borders that define stained glass
Medieval / Illuminated Manuscript Shares the historical period, typography traditions, gold leaf accents, and rich symbolic color language
Cathedral / Sacred Geometry Shares architectural geometry (arches, rose windows, tracery) and the spiritual-luminous quality of light as a design element

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>Stained Glass Page</title>
  <link href="https://fonts.googleapis.com/css2?family=Cinzel:wght@400;600;700&family=Cinzel+Decorative:wght@400;700&family=EB+Garamond:ital,wght@0,400;0,500;0,600;1,400&family=Cormorant+Garamond:ital,wght@0,300;0,400;1,400&family=UnifrakturCook:wght@700&display=swap" rel="stylesheet">
  <style>
    /* ============================
       CSS CUSTOM PROPERTIES
       ============================ */
    :root {
      --glass-bg-dark: #1a1a2e;
      --glass-bg-deep: #12121f;
      --glass-lead: #2d2d3f;
      --glass-lead-dark: #1e1e30;
      --glass-solder: #b8860b;

      --glass-sapphire: #0f52ba;
      --glass-cathedral-blue: #1a3a6b;
      --glass-ruby: #9b111e;
      --glass-cardinal: #c41e3a;
      --glass-emerald: #009473;
      --glass-forest: #1b5e20;
      --glass-amethyst: #7b2d8e;
      --glass-violet: #9966cc;

      --glass-gold: #d4af37;
      --glass-gold-dark: #b8860b;
      --glass-topaz: #e8a317;

      --glass-parchment: #f5f0e1;
      --glass-light: #fafafa;
      --glass-text-primary: #f5f0e1;
      --glass-text-secondary: rgba(245, 240, 225, 0.7);
    }

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

    html {
      scroll-behavior: smooth;
    }

    body {
      background: var(--glass-bg-dark);
      color: var(--glass-text-primary);
      font-family: 'EB Garamond', 'Georgia', serif;
      font-size: 1.1rem;
      line-height: 1.8;
      letter-spacing: 0.02em;
      min-height: 100vh;
    }

    h1, h2, h3, h4 {
      font-family: 'Cinzel', 'Times New Roman', serif;
      font-weight: 600;
      letter-spacing: 0.08em;
      line-height: 1.25;
      color: var(--glass-parchment);
    }

    a {
      color: var(--glass-gold);
      text-decoration: none;
      transition: color 0.3s ease;
    }

    a:hover {
      color: var(--glass-topaz);
    }

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

    /* ============================
       NAVIGATION
       ============================ */
    .glass-nav {
      display: flex;
      align-items: center;
      justify-content: center;
      background: var(--glass-bg-deep);
      border-bottom: 3px solid var(--glass-lead);
      position: sticky;
      top: 0;
      z-index: 100;
    }

    .glass-nav a {
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 1rem 1.8rem;
      font-family: 'Cinzel', serif;
      font-size: 0.75rem;
      font-weight: 600;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--glass-text-secondary);
      border-right: 2px solid var(--glass-lead);
      position: relative;
      transition: all 0.3s ease;
    }

    .glass-nav a:first-child {
      border-left: 2px solid var(--glass-lead);
    }

    .glass-nav a:hover {
      color: var(--glass-parchment);
      background: rgba(15, 82, 186, 0.12);
      box-shadow: inset 0 0 20px rgba(15, 82, 186, 0.08);
    }

    .glass-nav a.active {
      color: var(--glass-gold);
      background: rgba(212, 175, 55, 0.08);
      box-shadow: inset 0 -3px 0 var(--glass-gold);
    }

    /* Solder dot at nav junctions */
    .glass-nav a::after {
      content: '';
      position: absolute;
      right: -4px;
      top: 50%;
      transform: translateY(-50%) rotate(45deg);
      width: 5px;
      height: 5px;
      background: var(--glass-solder);
      border-radius: 1px;
      z-index: 1;
    }

    .glass-nav a:last-child::after {
      display: none;
    }

    /* ============================
       HERO SECTION
       ============================ */
    .glass-hero {
      min-height: 100vh;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      text-align: center;
      padding: 4rem 2rem;
      position: relative;
      overflow: hidden;
    }

    /* Rose window radial glow */
    .glass-hero::before {
      content: '';
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      width: 750px;
      height: 750px;
      background: radial-gradient(
        circle,
        rgba(212, 175, 55, 0.07) 0%,
        rgba(15, 82, 186, 0.05) 25%,
        rgba(123, 45, 142, 0.04) 45%,
        rgba(155, 17, 30, 0.03) 65%,
        transparent 85%
      );
      border-radius: 50%;
      pointer-events: none;
    }

    /* Rose window outer ring */
    .glass-hero::after {
      content: '';
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      width: 550px;
      height: 550px;
      border: 2px solid rgba(45, 45, 63, 0.5);
      border-radius: 50%;
      pointer-events: none;
      box-shadow:
        0 0 0 25px rgba(26, 26, 46, 0.25),
        0 0 0 27px rgba(45, 45, 63, 0.35);
    }

    .glass-hero h1 {
      font-family: 'Cinzel Decorative', serif;
      font-size: clamp(2.5rem, 8vw, 5.5rem);
      color: var(--glass-gold);
      letter-spacing: 0.12em;
      text-shadow:
        0 0 30px rgba(212, 175, 55, 0.25),
        0 0 60px rgba(212, 175, 55, 0.1);
      position: relative;
      z-index: 1;
    }

    .glass-hero .tagline {
      font-family: 'Cormorant Garamond', serif;
      font-size: clamp(1rem, 2.5vw, 1.4rem);
      font-style: italic;
      color: var(--glass-text-secondary);
      margin-top: 1rem;
      letter-spacing: 0.05em;
      position: relative;
      z-index: 1;
    }

    .glass-hero .scroll-hint {
      position: relative;
      z-index: 1;
      margin-top: 3rem;
      font-family: 'Cinzel', serif;
      font-size: 0.7rem;
      letter-spacing: 0.15em;
      text-transform: uppercase;
      color: var(--glass-text-secondary);
      opacity: 0.6;
      animation: pulseGlow 3s ease-in-out infinite;
    }

    @keyframes pulseGlow {
      0%, 100% { opacity: 0.4; }
      50% { opacity: 0.8; }
    }

    /* ============================
       DIVIDERS
       ============================ */
    .glass-divider {
      width: 50%;
      max-width: 400px;
      height: 3px;
      margin: 3rem auto;
      position: relative;
      background: var(--glass-lead);
    }

    .glass-divider::before {
      content: '';
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%) rotate(45deg);
      width: 10px;
      height: 10px;
      background: var(--glass-gold);
      border: 2px solid var(--glass-lead);
    }

    /* ============================
       SECTION HEADINGS
       ============================ */
    .section-heading {
      text-align: center;
      padding: 4rem 2rem 2rem;
    }

    .section-heading h2 {
      font-family: 'Cinzel', serif;
      font-size: clamp(1.5rem, 4vw, 2.5rem);
      letter-spacing: 0.1em;
      color: var(--glass-parchment);
    }

    .section-heading p {
      font-family: 'Cormorant Garamond', serif;
      font-style: italic;
      color: var(--glass-text-secondary);
      margin-top: 0.5rem;
      font-size: 1.1rem;
    }

    /* ============================
       GLASS PANEL GRID
       ============================ */
    .glass-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
      gap: 4px;
      background: var(--glass-lead);
      border: 4px solid var(--glass-lead);
      max-width: 1100px;
      margin: 0 auto 3rem;
      position: relative;
    }

    /* ============================
       GLASS CARDS
       ============================ */
    .glass-card {
      background: var(--glass-bg-dark);
      padding: 2.2rem;
      position: relative;
      overflow: hidden;
      transition: all 0.4s ease;
    }

    .glass-card::before {
      content: '';
      position: absolute;
      inset: 0;
      pointer-events: none;
      opacity: 1;
      transition: opacity 0.4s ease;
    }

    .glass-card:hover {
      z-index: 1;
    }

    /* Color variants -- radial glow + hover illumination */
    .glass-card--sapphire::before { background: radial-gradient(ellipse at 50% 30%, rgba(15,82,186,0.22) 0%, rgba(15,82,186,0.06) 55%, transparent 80%); }
    .glass-card--sapphire:hover { box-shadow: inset 0 0 30px rgba(15,82,186,0.15), 0 0 15px rgba(15,82,186,0.1); }
    .glass-card--ruby::before { background: radial-gradient(ellipse at 50% 30%, rgba(155,17,30,0.22) 0%, rgba(155,17,30,0.06) 55%, transparent 80%); }
    .glass-card--ruby:hover { box-shadow: inset 0 0 30px rgba(155,17,30,0.15), 0 0 15px rgba(155,17,30,0.1); }
    .glass-card--emerald::before { background: radial-gradient(ellipse at 50% 30%, rgba(0,148,115,0.22) 0%, rgba(0,148,115,0.06) 55%, transparent 80%); }
    .glass-card--emerald:hover { box-shadow: inset 0 0 30px rgba(0,148,115,0.15), 0 0 15px rgba(0,148,115,0.1); }
    .glass-card--amethyst::before { background: radial-gradient(ellipse at 50% 30%, rgba(123,45,142,0.22) 0%, rgba(123,45,142,0.06) 55%, transparent 80%); }
    .glass-card--amethyst:hover { box-shadow: inset 0 0 30px rgba(123,45,142,0.15), 0 0 15px rgba(123,45,142,0.1); }
    .glass-card--gold::before { background: radial-gradient(ellipse at 50% 30%, rgba(212,175,55,0.18) 0%, rgba(212,175,55,0.05) 55%, transparent 80%); }
    .glass-card--gold:hover { box-shadow: inset 0 0 30px rgba(212,175,55,0.12), 0 0 15px rgba(212,175,55,0.08); }

    .glass-card h3 {
      font-family: 'Cinzel', serif;
      font-size: 1.15rem;
      letter-spacing: 0.08em;
      margin-bottom: 0.8rem;
      position: relative;
    }

    .glass-card p {
      color: var(--glass-text-secondary);
      font-size: 1rem;
      line-height: 1.7;
      position: relative;
    }

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

    /* ============================
       BUTTONS
       ============================ */
    .glass-btn {
      display: inline-block;
      padding: 0.85rem 2.2rem;
      font-family: 'Cinzel', serif;
      font-size: 0.85rem;
      font-weight: 600;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: var(--glass-parchment);
      background: linear-gradient(
        135deg,
        rgba(15, 82, 186, 0.35) 0%,
        rgba(15, 82, 186, 0.55) 50%,
        rgba(15, 82, 186, 0.3) 100%
      );
      border: 2px solid var(--glass-lead);
      cursor: pointer;
      position: relative;
      overflow: hidden;
      transition: all 0.3s ease;
      text-decoration: none;
    }

    .glass-btn::before {
      content: '';
      position: absolute;
      top: -50%;
      left: -50%;
      width: 200%;
      height: 200%;
      background: radial-gradient(
        circle at 35% 25%,
        rgba(255, 255, 255, 0.12) 0%,
        transparent 50%
      );
      pointer-events: none;
    }

    .glass-btn:hover {
      background: linear-gradient(
        135deg,
        rgba(15, 82, 186, 0.5) 0%,
        rgba(15, 82, 186, 0.7) 50%,
        rgba(15, 82, 186, 0.45) 100%
      );
      box-shadow:
        0 0 15px rgba(15, 82, 186, 0.25),
        inset 0 0 15px rgba(15, 82, 186, 0.12);
      border-color: var(--glass-sapphire);
      color: var(--glass-light);
    }

    .glass-btn:active {
      transform: scale(0.98);
      box-shadow: inset 0 0 20px rgba(0, 0, 0, 0.25);
    }

    .glass-btn--ruby { background: linear-gradient(135deg, rgba(155,17,30,0.35) 0%, rgba(155,17,30,0.55) 50%, rgba(155,17,30,0.3) 100%); }
    .glass-btn--ruby:hover { background: linear-gradient(135deg, rgba(155,17,30,0.5) 0%, rgba(155,17,30,0.7) 50%, rgba(155,17,30,0.45) 100%); box-shadow: 0 0 15px rgba(155,17,30,0.25), inset 0 0 15px rgba(155,17,30,0.12); border-color: var(--glass-ruby); }
    .glass-btn--gold { background: linear-gradient(135deg, rgba(212,175,55,0.3) 0%, rgba(212,175,55,0.5) 50%, rgba(212,175,55,0.25) 100%); }
    .glass-btn--gold:hover { background: linear-gradient(135deg, rgba(212,175,55,0.45) 0%, rgba(212,175,55,0.65) 50%, rgba(212,175,55,0.4) 100%); box-shadow: 0 0 15px rgba(212,175,55,0.2), inset 0 0 15px rgba(212,175,55,0.1); border-color: var(--glass-gold); }

    /* ============================
       ABOUT SECTION
       ============================ */
    .about-section {
      max-width: 750px;
      margin: 0 auto;
      padding: 3rem 2rem;
      text-align: center;
    }

    .about-section p {
      color: var(--glass-text-secondary);
      margin-bottom: 1.5rem;
      font-size: 1.05rem;
      text-align: justify;
    }

    /* ============================
       FEATURE PANELS -- 2-column split */
    .feature-split {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 4px;
      background: var(--glass-lead);
      border: 4px solid var(--glass-lead);
      max-width: 1100px;
      margin: 0 auto 3rem;
    }

    .feature-panel {
      background: var(--glass-bg-dark);
      padding: 3rem 2.5rem;
      position: relative;
      overflow: hidden;
    }

    .feature-panel::before { content: ''; position: absolute; inset: 0; pointer-events: none; }
    .feature-panel--left::before { background: radial-gradient(ellipse at 30% 50%, rgba(155,17,30,0.15) 0%, transparent 70%); }
    .feature-panel--right::before { background: radial-gradient(ellipse at 70% 50%, rgba(0,148,115,0.15) 0%, transparent 70%); }

    .feature-panel h3 {
      font-family: 'Cinzel', serif;
      font-size: 1.3rem;
      margin-bottom: 1rem;
      position: relative;
    }

    .feature-panel p {
      color: var(--glass-text-secondary);
      position: relative;
      line-height: 1.75;
    }

    /* CTA Section */
    .cta-section { text-align: center; padding: 5rem 2rem; position: relative; overflow: hidden; }
    .cta-section::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 50%, rgba(212,175,55,0.05) 0%, transparent 60%); pointer-events: none; }
    .cta-section h2 { font-family: 'Cinzel Decorative', serif; font-size: clamp(1.8rem, 5vw, 3rem); color: var(--glass-gold); margin-bottom: 1rem; position: relative; }
    .cta-section p { color: var(--glass-text-secondary); max-width: 550px; margin: 0 auto 2rem; font-style: italic; position: relative; }

    /* Footer */
    .glass-footer { border-top: 3px solid var(--glass-lead); background: var(--glass-bg-deep); text-align: center; padding: 2.5rem 2rem; }
    .glass-footer p { font-family: 'Cinzel', serif; font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--glass-text-secondary); }
    .glass-footer .footer-accent { display: inline-block; width: 8px; height: 8px; background: var(--glass-gold); transform: rotate(45deg); margin: 0 0.8rem; vertical-align: middle; opacity: 0.7; }

    /* Responsive */
    @media (max-width: 768px) {
      .glass-nav { flex-wrap: wrap; }
      .glass-nav a { padding: 0.8rem 1.2rem; font-size: 0.65rem; }
      .glass-hero h1 { font-size: clamp(2rem, 10vw, 3.5rem); }
      .glass-hero::after { width: 350px; height: 350px; }
      .feature-split { grid-template-columns: 1fr; }
      .glass-grid { grid-template-columns: 1fr; }
    }
  </style>
</head>
<body>

  <!-- ======== NAVIGATION ======== -->
  <nav class="glass-nav">
    <a href="#home" class="active">Sanctum</a>
    <a href="#about">Chronicle</a>
    <a href="#features">Relics</a>
    <a href="#gallery">Gallery</a>
    <a href="#contact">Vespers</a>
  </nav>

  <!-- ======== HERO ======== -->
  <header id="home" class="glass-hero">
    <h1>Lux Aeterna</h1>
    <p class="tagline">Light eternal, rendered in glass and lead</p>
    <p class="scroll-hint">Descend into the nave</p>
  </header>

  <!-- ======== DIVIDER ======== -->
  <div class="glass-divider"></div>

  <!-- ======== ABOUT ======== -->
  <div id="about" class="section-heading">
    <h2>The Art of Light</h2>
    <p>Where color is not surface, but substance</p>
  </div>
  <div class="about-section">
    <p>
      For a thousand years, stained glass has transformed the interplay of
      light and color into a medium of storytelling and transcendence.
      Each jewel-toned panel, held fast by dark lines of lead, glows with
      an inner fire that shifts with the passing hours. This is not mere
      decoration -- it is architecture made luminous, stone walls dissolved
      into fields of sapphire, ruby, and gold.
    </p>
    <p>
      In the great cathedrals of Chartres and Sainte-Chapelle, the technique
      reached its zenith: narratives rendered in cobalt and crimson, saints
      haloed in silver-stained gold, the heavens themselves brought down
      to earth through panes of colored glass. This aesthetic carries that
      legacy forward into the digital realm.
    </p>
  </div>

  <!-- ======== DIVIDER ======== -->
  <div class="glass-divider"></div>

  <!-- ======== FEATURES GRID ======== -->
  <div id="features" class="section-heading">
    <h2>Sacred Relics</h2>
    <p>Panels of light, each bearing its own purpose</p>
  </div>
  <div class="glass-grid">
    <div class="glass-card glass-card--sapphire">
      <span class="card-icon">&#9670;</span>
      <h3>Sapphire Clarity</h3>
      <p>The blue of the heavens, symbol of divine truth and the mantle of the Virgin. Used where understanding must shine through.</p>
    </div>
    <div class="glass-card glass-card--ruby">
      <span class="card-icon">&#9670;</span>
      <h3>Ruby Devotion</h3>
      <p>The red of sacrifice and passion. This glass burns with the intensity of conviction, drawing the eye to what matters most.</p>
    </div>
    <div class="glass-card glass-card--emerald">
      <span class="card-icon">&#9670;</span>
      <h3>Emerald Renewal</h3>
      <p>The green of rebirth and eternal spring. A color of hope and growth, it brings life to every composition it touches.</p>
    </div>
    <div class="glass-card glass-card--amethyst">
      <span class="card-icon">&#9670;</span>
      <h3>Amethyst Wisdom</h3>
      <p>The purple of royalty and contemplation. Reserved for the sacred and the profound, it speaks in the language of mystery.</p>
    </div>
    <div class="glass-card glass-card--gold">
      <span class="card-icon">&#9670;</span>
      <h3>Gold Radiance</h3>
      <p>The warmth of divine light itself, achieved through the ancient silver stain technique. Gold illuminates and sanctifies.</p>
    </div>
    <div class="glass-card glass-card--sapphire">
      <span class="card-icon">&#9670;</span>
      <h3>Cathedral Blue</h3>
      <p>A deeper shade of the celestial, for quiet reverence and contemplative spaces where the light is soft and even.</p>
    </div>
  </div>

  <!-- ======== DIVIDER ======== -->
  <div class="glass-divider"></div>

  <!-- ======== FEATURE SPLIT ======== -->
  <div id="gallery" class="section-heading">
    <h2>The Twin Naves</h2>
    <p>Paired panels of contrasting light</p>
  </div>
  <div class="feature-split">
    <div class="feature-panel feature-panel--left">
      <h3>The Rose Window</h3>
      <p>
        Circular, radiating, and symmetrical -- the rose window is the
        crowning achievement of Gothic glaziers. Its geometry speaks of
        cosmic order, each petal of colored glass a meditation on the
        harmony between the earthly and the divine.
      </p>
    </div>
    <div class="feature-panel feature-panel--right">
      <h3>The Lancet</h3>
      <p>
        Tall, narrow, and pointed -- the lancet window draws the eye
        heavenward. Its vertical emphasis embodies the Gothic aspiration
        to transcend the material world, reaching ever upward through
        layers of luminous color.
      </p>
    </div>
  </div>

  <!-- ======== DIVIDER ======== -->
  <div class="glass-divider"></div>

  <!-- ======== CTA ======== -->
  <div id="contact" class="cta-section">
    <h2>Enter the Light</h2>
    <p>Step through the colored glass into a world where every surface glows with meaning.</p>
    <a href="#" class="glass-btn">Begin the Journey</a>
    <span style="display:inline-block; width:1rem;"></span>
    <a href="#" class="glass-btn glass-btn--ruby">Light a Candle</a>
    <span style="display:inline-block; width:1rem;"></span>
    <a href="#" class="glass-btn glass-btn--gold">Illuminate</a>
  </div>

  <!-- ======== FOOTER ======== -->
  <footer class="glass-footer">
    <p>
      <span class="footer-accent"></span>
      Lux Aeterna
      <span class="footer-accent"></span>
      Stained Glass Aesthetic
      <span class="footer-accent"></span>
    </p>
  </footer>

</body>
</html>

Implementation Tips