Preamble

0. The Five Design Commitments — Invariant Visual Axioms

These five commitments translate Project Aether's systems architecture into the visual domain. They are the ground from which every CSS category, design pathway, and visual gate grows. Change one and the design system shifts. Accept all five and the front-end architecture is fully determined.

Token-First Sovereignty

Every visual attribute originates from a design token — a CSS custom property. No hardcoded values. No magic numbers. The token system is the single source of truth for color, spacing, typography, elevation, motion, and breakpoints. The design system is self-contained; it ships as CSS, not as a Figma URL. SRC: Aether §I — Sovereign Artifact, applied to visual domain

Deterministic CSS Core

Every visual system works without JavaScript. Layout, typography, color, spacing, animation — all CSS-native. JS enhances (dark mode toggle, scroll spy, mouse tracking) but never replaces the CSS core. If JS fails, the page is complete: styled, readable, navigable, and beautiful. The CSS is the real UI. SRC: Aether §I — Core-First, applied to presentation layer

Accessibility-Native

Accessibility is not a checklist applied after the design. It is built into the tokens: contrast ratios are guaranteed by the color system, focus indicators are part of the reset, reduced-motion is the first animation query, and the DOM structure is semantic before it is styled. WCAG 2.1 AA is the floor, not the ceiling. SRC: Aether §I — Offline-Primary, extended: accessibility must work without JS, network, or assistive tech assumptions

User-Controlled Presentation

The user controls their experience: system preference detection for dark/light, respect for prefers-reduced-motion, prefers-contrast, forced-colors, and viewport/zoom preferences. The design adapts to the user — the user does not adapt to the design. No animation that cannot be disabled. No color scheme that overrides system preference without explicit user choice. SRC: Aether §I — User Sovereignty, applied to visual preferences

GPU Compositor as Render Pipeline

The browser's hardware compositor is treated as a parallel GPU pipeline. will-change, transform, opacity, and backdrop-filter are promoted to compositor layers for independent frame rates. UI overlays (modals, toasts, tooltips, navigation) render at 120fps on the compositor while content renders at its natural rate. CSS effects are shaders for free. SRC: Aether §I — Browser-as-OS; Pathway ⑨ — CSS Compositor Pipeline

📋 Relationship to Project Aether — The Two-File Architecture

Project Aether and this Design Systems Blueprint form a matched pair. They are architecturally isomorphic — same structure, same tier system, same gate philosophy — applied to different domains:

DimensionProject AetherDesign Systems Blueprint
DomainSystems architecture, computation, state, persistence, cross-processVisual architecture, CSS, layout, typography, animation, interaction
Layer 046-category software foundation24-category CSS foundation
Layers 1–319 derived pathways (computation, state, AI, mesh)6 derived pathways (visual systems, adaptive systems, design-to-code)
Layer 4Sovereign Mesh Kernel ProtocolDesign System Ecosystem & Handoff
Green Gates5 gates: foundation, core systems, cross-process, reality bridge, sovereign integrity5 gates: token compliance, accessibility, compositor budget, theme parity, visual regression
Economic Model3-lane: free files, one-time licenses, infrastructure subscriptionsOpen-source design system, premium component libraries, design tooling

Where Project Aether answers "How does the software work?" this blueprint answers "How does the software look, feel, and respond?" Together they form the complete architectural specification for sovereign software. SRC: Aether v2.0 §0; §III Categories 00–23

🧩 Logical Derivation — How Design Pathways Follow From Commitments

The 6 design pathways of Layers 1–3 are the necessary visual consequence of holding all five design commitments simultaneously. Each pathway is the only answer to the question posed by the commitments together.

The Derivation Chain (Visual Domain):

  • From Commitment ① (Token-First): Necessitates a single token file as source of truth, design token pipeline for Figma sync, and token documentation that is the design system's own UI. This produces Pathway DS-1 (Token-First Architecture).
  • From Commitment ② (Deterministic CSS): Necessitates CSS-only solutions for layout, animation, and interactivity. JS is enhancement only. This produces Pathway DS-2 (Deterministic Layout Engine) and governs the animation system.
  • From Commitment ③ (Accessibility-Native): Necessitates contrast-guaranteed color tokens, focus management built into reset, semantic HTML as the starting point, and screen-reader-only utilities as first-class citizens. This produces Pathway DS-5 (Accessibility as Architecture).
  • From Commitment ④ (User-Controlled): Necessitates system preference detection, theme engine with persistence, reduced-motion as default query, and forced-colors compatibility. This produces Pathway DS-4 (Theme Engine).
  • From Commitment ⑤ (GPU Compositor): Necessitates layer promotion strategy, independent frame rates for overlays, backdrop-filter for glass effects, and transform-only animations. This produces Pathway DS-3 (CSS Compositor Pipeline).
Layer -1

I. Meta-Architecture — Design Governance & Evolution

The layer below the 24 categories. How the design system itself is governed, versioned, and evolved. The CSS file is the written record of a visual architecture designed in full before implementation begins.

🎨 The Stylesheet Is Not the Design System

The CSS file is the compiled expression of a design system architected in full before any component is built — all tokens, all states, all breakpoints, all interaction modes. The 24 categories are the specification of that system, not the system itself. The design system exists in the relationship between tokens, components, patterns, and principles. SRC: Aether v2.0 §I — Meta-Architecture; applied to design domain

The CSS architect is the decision authority before any stylesheet is drafted and the resolution authority when visual specifications encounter unexpected complexity. LLM collaborators are execution partners — specifications → implementation → validation → refinement. AI amplifies implementation speed; it does not replace visual judgment.

📋 Evolution Under Governance — Design Token Versioning

Design tokens are the atomic unit of change. Every visual change is a token change. Token changes are versioned, documented, and traceable to a design commitment. A color shift is not a "visual tweak" — it is a token mutation that propagates through every component that references it.

Governance rules:

  • Token addition: Backward-compatible. Existing components unaffected. Semantic tokens preferred over literal tokens.
  • Token modification: Requires visual regression testing. All affected components must be reviewed. Document the rationale.
  • Token removal: Breaking change. Major version bump. Migration path required.
  • Category addition: New CSS category must trace to a design commitment. No "nice-to-have" categories without architectural justification.

📋 Adaptive Design — Continuous Visual Improvement

This design system operates under the principle that CSS capabilities continuously expand and user expectations continuously rise. Container queries, view transitions, scroll-driven animations, and cascade layers are not future work — they are current platform capabilities waiting for architectural integration. The design system is a living standard. SRC: Aether v2.0 §I — Adaptive Architecture

The benchmark is not a finish line. It is a snapshot of a living visual standard. As CSS evolves, the 24 categories evolve to capture new capabilities. The architect's role is to keep the design system current as the platform advances, while maintaining backward compatibility with the existing token structure.

📋 Design System Handoff Instruction — For LLM Sessions

"You are implementing a CSS architecture from this Design Systems Blueprint. Every visual decision must comply with the 24-category foundation. The five design commitments are non-negotiable visual constraints. Apply Deterministic CSS Core: every interactive visual state must have a CSS-only implementation. JavaScript enhances — it does not replace. Pass all applicable Design Green Gates before declaring phase complete. The stylesheet must be a sovereign artifact: zero external dependencies, token-first, WCAG 2.1 AA, GPU-compositor-aware, dark/light parity verified."

SRC: Aether v2.0 §XII — Handoff Protocol; Design Systems Blueprint §I

Layer 0

II. Foundation — 24-Category CSS Architecture

The non-negotiable visual baseline. Every Aether-compliant front-end inherits these 24 categories. Tiered by scope: CORE = always present. STANDARD = present, exemption requires rationale. PREMIUM = flagship visual parity. OPTIONAL = when demanded.

📋 Category Index 00–24

RangeDomainsStatus
00Ambient Atmosphere — CSS-only orbs, noise overlays, orbital gradientsPREMIUM
01–04Design Tokens, CSS Reset, Accessibility Utilities, Layout SystemCORE
05–07Animation Keyframes, Typography Scale, Button SystemCORE
08–10Badge Hierarchy, Sticky Navigation, Floating Rail NavSTANDARD
11Hero System — dot grid, audience router, IDE preview, parallaxPREMIUM
12–21About, Case Studies, Services, Philosophy, Employers, Product Spotlight, FAQ, Research, CTA Band, FooterSTANDARD
22–24Utility Shell, Print Styles, Security & PolishCORE

Category 00 — 🌌 Ambient Atmosphere

CSS-only atmospheric effects. No canvas. No WebGL. No JavaScript. Pure CSS orbs, gradients, and noise overlays that create depth and visual interest without performance cost. PREMIUM Aether Cat 00

#RequirementSpecificationTier
00.1Orbital GradientsRadial gradients positioned off-viewport creating soft glow pools. radial-gradient(ellipse X% Y% at X% Y%, color, transparent). At least 2 overlapping orbs. Pure CSS — no canvas, no WebGL, no JS.PREMIUM
00.2SVG Noise Overlay<svg><filter><feTurbulence type="fractalNoise"> applied as background-image with mix-blend-mode: overlay and low opacity (0.015–0.04). Creates film-grain texture at zero runtime cost.PREMIUM
00.3CSS-Only AnimationOrb position animation via @keyframes with large durations (20–40s), subtle movement only. No JS timers. Reduced-motion: orbs become static. No position animation.PREMIUM
00.4Mobile DegradationReduce orb count on mobile (1 orb vs 2–3 on desktop). Noise overlay preserved — it costs nothing across viewport sizes. Reduced-motion: all orbital movement disabled. Static gradients only.STANDARD
00.5Z-Index ContainmentAll atmospheric elements at z-index: 0 with pointer-events: none. Must not interfere with content interaction. Must sit behind all content layers.CORE
🎛️ View Category 00 Live Demonstration

The atmospheric orbs and noise overlay are now visible in the background of this page. This demonstration shows:

  • Orb 1 (Purple): 600px, positioned top-left, 25s animation cycle
  • Orb 2 (Purple-dim): 500px, positioned bottom-right, 30s animation cycle
  • Orb 3 (Green): 400px, positioned center-right, 35s animation cycle (hidden on mobile)
  • Noise Overlay: SVG fractalNoise at 3.5% opacity with overlay blend mode

Mobile: Orb 3 hidden, orbs 1-2 reduced in size.
Reduced Motion: All orb animations disabled, static positioning.

/* HTML Structure */
<div class="atmosphere" aria-hidden="true">
  <div class="orb orb-1"></div>
  <div class="orb orb-2"></div>
  <div class="orb orb-3"></div>
</div>
<div class="noise-overlay" aria-hidden="true"></div>

/* Key CSS — Orbital Gradient */
.orb-1 {
  width: 600px;
  height: 600px;
  background: radial-gradient(ellipse at center, 
    rgba(200,128,232,0.3) 0%, transparent 70%);
  animation: orbFloat1 25s ease-in-out infinite;
}

/* Key CSS — Noise Overlay */
.noise-overlay {
  opacity: 0.035;
  background-image: url("data:image/svg+xml,...");
  mix-blend-mode: overlay;
}

Category 01 — 🎨 Design Token System

CSS custom properties as the single source of visual truth. Every color, spacing unit, radius, shadow, font, and easing curve originates from a token. No hardcoded values anywhere in the stylesheet. CORE Aether Cat 01

#RequirementSpecificationTier
01.1Custom Property NamespaceAll tokens defined in :root. Naming: --category-property-variant. Examples: --bg, --surface, --text, --accent, --radius, --shadow. No vendor prefix in token names.CORE
01.2Color TokensSemantic color tokens: --bg, --bg-elevated, --card, --card-alt, --border (×3: default, soft, bright), --fg (×3: primary, dim, muted), --accent (×2: base + dim/glow), --green, --purple, --orange, --red, --yellow. The three-level border hierarchy (--border, --border-soft, --border-bright) enables spatial depth cues at zero cost. Minimum: 20 color tokens.CORE
01.3Dark-First, Light-ParityTokens defined for dark theme in :root. Light overrides in [data-theme="light"]. Every token must have a light variant. No "dark-only" or "light-only" tokens.CORE
01.4Fluid TypographyFont-size tokens use clamp() for fluid scaling. Heading tokens: clamp(min, vw, max). Body token: fixed rem base. Monospace token: system mono stack.CORE
01.5Spacing & Elevation ScaleConsistent spacing scale via tokens: --space-1 through --space-24 (4px–96px). Radius tokens: --radius-sm (6px), --radius-md (10px), --radius-lg (14px), --radius-xl (20px), --radius-pill (999px). Shadow tokens: multi-layered diffused shadows--shadow-card (resting), --shadow-float (elevated), --shadow-hover (lifted + accent glow). Each shadow token is a compound value: 3–4 stacked box-shadow layers creating realistic depth. Not single-drop-shadow approximations.CORE
01.6Easing Curves — Apple/Linear PhysicsAnimation easing tokens using Apple/Linear custom physics curves. --transition-fast: 0.15s cubic-bezier(0.32, 0.72, 0, 1). --transition-base: 0.25s same curve. --transition-slow: 0.5s same curve. --transition-spring: 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.15) for bouncy reveals. Tokenized and consistent — never hardcoded. These specific curves produce the characteristic "silicon" feel: fast start, gentle settle, no overshoot (except spring).CORE
01.7Font Stack Tokens--font-sans: system-ui stack with font-feature-settings: 'kern' 1, 'liga' 1 for kerning and ligature optimization. --font-mono: ui-monospace stack. Body: letter-spacing: -0.01em for tightened rendering. No external font dependencies. System fonts only for zero-dependency sovereignty.CORE
01.8FOUC Prevention TokenFlash of Unstyled Content prevention pattern: html { visibility: hidden; } at stylesheet start, then html[data-theme], html.ready { visibility: visible; } after theme tokens are applied. The .ready class is added via blocking script in <head> after theme resolution. This ensures the page renders with the correct theme on first paint — never flashes light mode before dark mode is applied. Aether Cat 37.6CORE

Category 02 — 📐 CSS Reset + Base Styles

Cross-browser normalization. Zeroes margins/padding, sets box-sizing, establishes scroll behavior, text rendering, selection styling, scrollbar styling, and global focus-visible. CORE Aether Cat 02

#RequirementSpecificationTier
02.1Box-Sizing Reset*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}. Universal. Non-negotiable. Prevents the single most common CSS bug across all browsers.CORE
02.2Scroll Behaviorhtml{scroll-behavior:smooth}. Disabled in prefers-reduced-motion. Smooth scrolling is a progressive enhancement — not a requirement.CORE
02.3Text Size Adjust-webkit-text-size-adjust:100%; text-size-adjust:100%. Prevents iOS Safari from inflating text on orientation change. Both prefixed and standard.CORE
02.4Overflow-X Hiddenbody{overflow-x:hidden}. Prevents horizontal scrollbar from atmospheric elements. Tested: does not interfere with sticky positioning or viewport units. Pairs with html, body { max-width: 100vw; position: relative; box-sizing: border-box; } for complete horizontal overflow containment.CORE
02.4aScroll Padding for Fixed Headershtml { scroll-padding-top: NAV_HEIGHT + BUFFER; }. Set to sticky navigation height plus breathing room (~80px typical). Prevents anchor-targeted sections from being obscured by the fixed/sticky header. CSS-only — no JS scroll offset required for in-page navigation. Related: Category 04.6 (Layout System).CORE
02.5Font Smoothing-webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale. Standard antialiasing for all text. Non-negotiable for visual quality.CORE
02.6Text Renderingtext-rendering:optimizeLegibility. Enables kerning and ligatures. Small performance cost, large readability gain. Acceptable trade-off.CORE
02.7Selection Styling::selection{background:var(--accent);color:var(--bg)}. High-contrast selection. Token-based — adapts to theme automatically.CORE
02.8Scrollbar StylingWebkit scrollbar: 8px width, track matches --bg, thumb matches --border-accent. Firefox: scrollbar-width:thin; scrollbar-color: var(--border-accent) var(--bg). Both browsers covered.CORE
02.9Global Focus-Visible:focus-visible{outline:2px solid var(--accent);outline-offset:2px}. Visible, high-contrast focus ring. Must pass WCAG 2.4.7 (Focus Visible).CORE

Category 03 — ♿ Accessibility Utilities

Screen-reader-only content, skip links, focus management, forced-colors support, ARIA landmark enforcement, and reduced-motion handling. Accessibility is not a layer — it is woven into every category. This category provides the utility classes that make it explicit. CORE Aether Cat 03

#RequirementSpecificationTier
03.1Screen-Reader-Only.sr-only: clip-rect, 1px dimensions, hidden overflow, absolute position. Content visible to screen readers, invisible visually. Must not break layout flow.CORE
03.2Skip LinkSkip-to-main-content link. Positioned off-screen (top:-40px), slides in on focus. Must be first focusable element. Must have href="#main-content".CORE
03.3Focus-Visible GlobalAlready covered in Category 02.9. Re-referenced here for accessibility audit completeness. All interactive elements must show visible focus indicator.CORE
03.4Forced ColorsAll UI visible in Windows High Contrast Mode. Test: forced-colors:active. Borders, icons, text must remain visible. No color-only information conveyance.CORE
03.5ARIA LandmarksSemantic HTML elements with appropriate ARIA roles: <header role="banner">, <main role="main">, <footer>, <nav>. All sections labeled via aria-labelledby.CORE
03.6Live RegionsDynamic content containers use aria-live="polite" or aria-live="assertive". Toast container: aria-live="polite" aria-atomic="true". Offline indicator: role="status".CORE
03.7Reduced Motion@media (prefers-reduced-motion:reduce) disables ALL animations, transitions, and scroll-behavior. Animation duration forced to 0.01ms. Iteration count forced to 1. Must be in every stylesheet.CORE
03.8Modal Accessibility — Full SpecificationModal containers: role="dialog", aria-modal="true", aria-labelledby referencing modal title. Focus trap: on open, focus moves to first focusable element. Tab cycles through all focusable elements within modal. Shift+Tab reverses. When Tab is pressed on the last focusable element, focus wraps to the first. When Shift+Tab is pressed on the first, focus wraps to the last. Elements outside the modal must not receive focus while modal is open. Escape closes modal. Click on backdrop closes modal. Focus restoration: on close, focus returns to the element that triggered the modal open. Body scroll lock: document.body.style.overflow = 'hidden' while open. Animation: spring/scale entrance (0.3s), fade exit (0.2s). Respects reduced-motion (instant).

Note: This document does not include a modal. The specification is verified in the portfolio reference implementation (brandonbellsystems.com). Implementations must validate against this spec using the portfolio as the test fixture.
CORE

Category 04 — 📏 Layout System

Container constraints, section spacing, responsive grid, and flexbox utilities. The layout system ensures consistent horizontal rhythm across all sections without dictating internal component layout. CORE Aether Cat 04

#RequirementSpecificationTier
04.1Content Container.content{max-width:1040px;margin:0 auto;padding:0 28px 80px}. Fixed max-width. Auto margins for centering. Responsive padding that narrows on mobile.CORE
04.2Section Spacing.sect{margin-top:56px}. Consistent vertical rhythm between major sections. Section header with bottom border separator.CORE
04.3Responsive GridAuto-fit grids: grid-template-columns:repeat(auto-fit,minmax(260px,1fr)). Cards flow naturally. No media queries needed for column count. Orphan prevention.CORE
04.4Flexbox UtilitiesCommon flex patterns: display:flex;flex-wrap:wrap;gap:Xpx for badge lists, tag groups, action rows, meta strips. No dedicated grid framework — native CSS Grid and Flexbox only.CORE
04.5Mobile BreakpointsSingle major breakpoint at 700px. Content padding narrows to 18px. Grids collapse to single column. Font sizes reduce. Navigation adapts. No multi-breakpoint complexity.CORE
04.6Scroll Offset for Fixed Navigationhtml { scroll-padding-top: NAV_HEIGHT + BUFFER; } applied to <html>. Ensures anchor-linked sections (e.g., #work, #services) scroll to a position below the sticky navigation bar rather than being partially obscured by it. The buffer (~16px) provides visual breathing room. This is a CSS-only solution — no JS offset calculation needed for anchor navigation.CORE

Category 05 — 🎬 Animation Keyframes

Reusable animation keyframes for UI micro-interactions. CSS-only. No JavaScript animation libraries. Every animation respects reduced-motion and uses compositor-friendly properties (transform, opacity) exclusively. CORE Aether Cat 05

#RequirementSpecificationTier
05.1fadeInUpEntrance animation: translateY(20px) + opacity(0)translateY(0) + opacity(1). Used for cards, sections, content blocks. Spring curve on reveal.CORE
05.2shimmerLoading skeleton animation: horizontal gradient sweep across surface. background-position shift via keyframes. GPU-composited. No JS.CORE
05.3gradientFlowAnimated gradient text: background-size:200% + background-position shift. Applied to headings, accent text. Pure CSS.STANDARD
05.4pulseGlowAttention pulse: box-shadow opacity oscillation. Used for status indicators, new badges, live dots. will-change:box-shadow for compositor promotion.STANDARD
05.5spinLoading spinner: 360° rotation via transform:rotate(). Infinite, linear. will-change:transform. Compositor-only — never touches layout or paint.CORE
05.6toastSlideIn + toastProgressToast notification: slide in from right + progress bar countdown animation. Slide uses transform:translateX. Progress uses width animation (acceptable — toast is temporary).STANDARD
05.7Scroll Reveal — BasicIntersectionObserver + CSS class toggle. Elements gain .visible class when entering viewport. CSS transition on transform:translateY(24px) + opacity. JS only adds class — animation is pure CSS. This is the STANDARD tier: functional, clean, works everywhere.STANDARD
05.7bScroll Reveal — Silicon Valley Blur-In (Premium)Enhanced entrance animation: translateY(40px) scale(0.985) + filter:blur(2px) → fully visible. Uses cubic-bezier(0.16, 1, 0.3, 1) spring curve over 0.8s. will-change: opacity, transform, filter for compositor promotion. The blur clears and the element scales into place simultaneously — creating a "focus-pull" effect. Respects reduced-motion (instant visible, no animation). This is the PREMIUM tier. Portfolio Reference ImplementationPREMIUM
05.8Stagger DelayTwo implementation tiers:
STANDARD: Child elements receive incremental transition-delay via nth-child in CSS. Cascade entrance effect. Pure CSS. No JS needed.
PREMIUM (Portfolio Implementation): Elements carry data-delay attributes (slot identifiers, not millisecond values). CSS maps each slot to a staggered transition-delay. JS assigns attributes based on DOM position. This decouples delay logic from document order — useful when grid layouts don't follow source order. The attribute value is a label ("0", "80", "160"), not a time value — the CSS owns the timing.
STANDARD / PREMIUM
🎛️ View Category 05 Live Demonstration

05.1 — fadeInUp

Entrance animation: translateY(20px) + opacity(0) → translateY(0) + opacity(1)

This box animates in with fadeInUp. Uses spring curve for bouncy settle.

05.2 — shimmer (Loading Skeleton)

Horizontal gradient sweep indicating loading state.

05.3 — gradientFlow

Animated gradient for text and borders. Background-size: 300% with position shift.

Gradient Flow Text
Gradient border using mask-composite technique

05.4 — pulseGlow

Attention pulse via box-shadow oscillation. Used for status indicators.

Live Status
Always Pulsing

05.5 — spin (Loading Spinner)

360° rotation, infinite, linear. Uses transform for compositor-only animation.

Small / Standard / Large

05.6 — toastSlideIn + toastProgress

Toast entrance from right + auto-dismiss progress bar.

Toast notification with info styling

Keyframes: toastSlideIn (translateX) + toastProgress (width 100% → 0%)

05.7 — Scroll Reveal (Standard)

IntersectionObserver adds .visible class. CSS handles translateY(24px) + opacity transition.

Standard reveal: smooth translateY + opacity transition (0.5s base curve)

05.7b — Scroll Reveal (Premium Blur-In)

Silicon Valley focus-pull: translateY(40px) + scale(0.985) + blur(2px) → clear. Spring curve 0.8s.

Premium blur-in: focus-pull effect with scale + filter blur

05.8 — Stagger Delay

nth-child incremental transition-delay creates cascade entrance. Pure CSS, no JS per-item.

Item 1 (0ms)
Item 2 (80ms)
Item 3 (160ms)
Item 4 (240ms)
Item 5 (320ms)
Item 6 (400ms)
/* 05.1 — fadeInUp Keyframe */
@keyframes fadeInUp{
  from{opacity:0;transform:translateY(20px)}
  to{opacity:1;transform:translateY(0)}
}

/* 05.2 — shimmer Keyframe */
@keyframes shimmer{
  0%{background-position:-200% 0}
  100%{background-position:200% 0}
}

/* 05.3 — gradientFlow Keyframe */
@keyframes gradientFlow{
  0%{background-position:0% 50%}
  50%{background-position:100% 50%}
  100%{background-position:0% 50%}
}

/* 05.4 — pulseGlow Keyframe */
@keyframes pulseGlow{
  0%,100%{box-shadow:0 0 0 0 var(--accent-glow)}
  50%{box-shadow:0 0 0 8px var(--accent-glow)}
}

/* 05.5 — spin Keyframe */
@keyframes spin{
  from{transform:rotate(0deg)}
  to{transform:rotate(360deg)}
}

/* 05.7b — Blur-In Reveal */
.blur-reveal{
  opacity:0;
  transform:translateY(40px) scale(0.985);
  filter:blur(2px);
  transition:opacity 0.8s cubic-bezier(0.16,1,0.3,1),
             transform 0.8s cubic-bezier(0.16,1,0.3,1),
             filter 0.8s cubic-bezier(0.16,1,0.3,1);
}
.blur-reveal.visible{
  opacity:1;
  transform:translateY(0) scale(1);
  filter:blur(0);
}

/* 05.8 — Stagger via nth-child */
.stagger>*:nth-child(1){transition-delay:0ms}
.stagger>*:nth-child(2){transition-delay:80ms}
.stagger>*:nth-child(3){transition-delay:160ms}
/* ... continues to nth-child(8) */

Category 06 — 🔤 Typography Scale

Fluid, responsive type system using clamp(). Headings, body, monospace, and utility text sizes. Line-height tightening for headings. Letter-spacing for legibility. Text-wrap for balanced rendering. CORE Aether Cat 06

#RequirementSpecificationTier
06.1Fluid HeadingsAll headings use clamp(min, vw, max). Example: font-size:clamp(28px,5vw,40px) for h1. Scales smoothly between mobile and desktop without breakpoints.CORE
06.2Line-Height TighteningHeadings: line-height:1.15. Body: line-height:1.7. Smaller text gets tighter line-height. Larger text gets proportionally tighter.CORE
06.3Letter-SpacingHeadings: letter-spacing:-0.02em (tight, modern). Labels: letter-spacing:0.08em (expanded, legible uppercase). Body: default. Negative tracking only on large display text.CORE
06.4Text-WrapHeadings: text-wrap:balance. Body: text-wrap:pretty. Prevents orphans and ragged lines. Progressive enhancement — degrades to normal wrap on older browsers.STANDARD
06.5Monospace StackCode blocks, flow diagrams, pre elements use --font-mono token. ui-monospace, 'SFMono-Regular', 'SF Mono', 'Consolas', monospace. System fonts only.CORE
06.6Gradient TextHeadings with background:linear-gradient(...); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text. Fallback: solid color when background-clip unsupported.STANDARD
06.7Body Font Sizefont-size:15px base. Never below 14px. Line-height 1.7 for readability. Antialiased. OptimizeLegibility. System font stack.CORE

Category 07 — 🔘 Button System

Tactile button physics with rim-highlight glow, hover lift, active press, and disabled state. Variants for primary, accent, and ghost. Sizes for standard and compact contexts. CORE Aether Cat 07

#RequirementSpecificationTier
07.1Variant SystemPrimary: filled accent background + light text. Accent: filled purple background + light text. Green: filled green background + light text (for purchase/conversion CTAs). Ghost: transparent, border on hover. Minimum 4 variants. Each filled variant uses the Apple/Vercel top-rim highlight: inset 0 1px 0 rgba(255,255,255,0.2) for tactile dimensionality.CORE
07.2Size VariantsSmall (compact CTAs, inline actions). Standard (default). Large (hero CTAs, primary conversion). Padding and font-size scale proportionally.CORE
07.3Hover PhysicsHover: transform:translateY(-1px). Subtle lift. Rim glow via inset box-shadow or border-color transition. Apple/Vercel-style top-rim highlight on filled buttons.PREMIUM
07.4Active PressActive: transform:scale(0.96). Tactile press-down feedback. 40ms transition for snappy response. Must feel immediate.CORE
07.5Disabled StateReduced opacity (0.5–0.6). cursor:not-allowed. No hover effects. No transform. No pointer events on disabled buttons within forms.CORE
07.6Touch TargetMinimum 44×44px touch target (WCAG 2.5.5). Padding ensures target size even on compact buttons. touch-action:manipulation for no double-tap zoom delay.CORE
07.7User Selectuser-select:none on all buttons. Prevents text selection during rapid clicking. Standard for interactive controls.CORE
07.8Focus RingInherits global :focus-visible from Category 02.9. Additional: subtle ring offset for button-specific context. Must pass contrast check against all button backgrounds.CORE
07.9Form Controls — Input & TextareaForm elements share the interactive control foundation:
Base: padding: var(--space-3) var(--space-4), background: var(--card-alt), border: 1px solid var(--border), border-radius: var(--radius-sm), color: var(--fg), font: inherit
Focus: outline: none; border-color: var(--accent) (border shift replaces outline for cleaner visual)
Placeholder: color: var(--muted)
Labels: font-size: 0.8125rem; font-weight: 600; color: var(--fg-dim)
Group: Flex-column container with gap: var(--space-2) between label and input
Submit button: Inherits all button system properties (07.1–07.8). Includes loading spinner state: .submit-loader with animation: spin 0.6s linear infinite, hidden by default, revealed via .active class
No-JS fallback: <noscript> block with direct email link when form JS is unavailable
Honeypot: Hidden field (see Category 24.2) with position: absolute; opacity: 0; height: 0
CORE
🎛️ View Category 07 Live Demonstration

07.1 — Button Variants

Four variants: Primary (accent), Accent (purple), Green (conversion CTA), Ghost (transparent). Each has Apple/Vercel top-rim highlight.

07.2 — Button Sizes

Three sizes: Small (compact), Standard (default), Large (hero CTAs). Padding and font-size scale proportionally.

36px / 44px / 52px min-height

07.3 — Hover Physics (Lift)

Hover: transform:translateY(-1px). Creates tactile lift sensation. Hover over buttons to see.

07.4 — Active Press (Scale Down)

Active: transform:scale(0.96) + 40ms transition. Click and hold to feel the press-down feedback.

07.5 — Disabled State

Disabled: opacity 0.55, cursor not-allowed, no hover/transform effects. Keyboard accessible but non-interactive.

07.6 — Touch Target (44×44px minimum)

All buttons meet WCAG 2.5.5 touch target requirements. Standard buttons are 44px min-height. Small buttons still maintain 36px but should only be used in space-constrained non-critical contexts.

07.7 — User Select None

Buttons have user-select:none. Prevents text selection during rapid clicking. Try selecting button text — it won't highlight.

07.8 — Focus Ring (Inherited)

Focus ring: outline:2px solid var(--accent);outline-offset:2px from Category 02.9. Tab through buttons to see focus indicator.

Buttons with Icons

07.9 — Form Controls (Input & Textarea)

Form elements share the interactive control foundation. Focus state uses border-color shift instead of outline for cleaner visual.

Disabled Form Controls

/* 07.0 — Button base */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:12px 24px;
  font-size:14px;
  font-weight:600;
  border-radius:var(--radius-sm);
  border:1px solid transparent;
  cursor:pointer;
  user-select:none;
  touch-action:manipulation;
  min-height:44px; /* 07.6 touch target */
  transition:transform 0.15s,background 0.2s,border-color 0.2s;
}

/* 07.1 — Variants */
.btn-primary{
  background:var(--accent);
  color:var(--bg);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.2);
}

.btn-ghost{
  background:transparent;
  border-color:var(--border);
  color:var(--fg);
}

/* 07.3 — Hover physics */
.btn:hover:not(:disabled){
  transform:translateY(-1px);
}

/* 07.4 — Active press */
.btn:active:not(:disabled){
  transform:scale(0.96);
  transition-duration:40ms;
}

/* 07.5 — Disabled */
.btn:disabled{
  opacity:0.55;
  cursor:not-allowed;
}

/* 07.9 — Form controls */
.form-input,.form-textarea{
  padding:var(--space-3) var(--space-4);
  background:var(--card-alt);
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  color:var(--fg);
  font:inherit;
}
.form-input:focus,.form-textarea:focus{
  outline:none;
  border-color:var(--accent);
  box-shadow:0 0 0 3px var(--accent-dim);
}

Category 08 — 🏷️ Badge Hierarchy

Semantic badge system for status, tier, availability, and version communication. Color-coded with consistent padding, radius, and typography. STANDARD Aether Cat 08

#RequirementSpecificationTier
08.1Semantic VariantsShipped/Production (green). Pro/Premium (gold). OSS/Open Source (blue). Available (green dot + pulse). Coming Soon (muted, dashed border). Flagship (accent + glow). Minimum 6 semantic variants.STANDARD
08.2Pulse DotLive/available badge includes ::before pseudo-element dot with pulseGlow animation. 6px circle, accent color, infinite pulse. Reduces to static dot in reduced-motion.STANDARD
08.3Tier BadgesCORE (purple/blue), STANDARD (accent), PREMIUM (gold), OPTIONAL (muted). Used throughout architectural documentation and product specification.STANDARD
08.4Badge LayoutInline-flex container. 2–8px padding. 3–4px border-radius. 10px font-size. 600 weight. Uppercase for labels. No text-transform for proper nouns.CORE

Category 09 — 🧭 Sticky Navigation

Sticky top navigation with backdrop-filter blur, scroll-state detection, and mobile hamburger menu with ARIA. CORE Aether Cat 09

#RequirementSpecificationTier
09.1Sticky Positionposition:sticky;top:0;z-index:900. Must stay at viewport top during scroll. Must not jump or flicker on scroll start.CORE
09.2Backdrop Blurbackdrop-filter:blur(12px) saturate(180%). Frosted glass effect. Content behind nav is softly blurred. GPU-composited — near-zero performance cost. -webkit-backdrop-filter for Safari.CORE
09.3Scroll StateJS adds .scrolled class when scroll position > 0. CSS: border-bottom appears, shadow deepens. Transition: 200ms. Pure visual enhancement — nav works without it.STANDARD
09.4Mobile HamburgerHamburger icon at mobile breakpoint. aria-expanded toggles. Menu slides in from right via transform:translateX. Body overflow locked when open. Backdrop overlay.CORE
09.5Logo + LinksLogo/wordmark left. Nav links center or right. Theme toggle right. Consistent spacing. Active page indicator. All links keyboard-accessible.CORE
🎛️ View Category 09 Live Demonstration

09.1–09.5 — Complete Navigation Demo

The navigation bar below demonstrates sticky positioning, backdrop blur, and scroll state. Scroll down slightly to see the border/shadow appear. Resize to mobile to test hamburger menu.

Scroll this container to see the navigation bar stick to the top and gain a border/shadow when scrolled. This demonstrates 09.1 Sticky Position and 09.3 Scroll State.

The navigation uses backdrop-filter:blur(12px) to create a frosted glass effect. Content behind it is softly blurred.

Resize your browser to below 700px width to see the mobile hamburger menu appear. The hamburger transforms into an X when expanded.

Scrollable content area

09.2 — Backdrop Blur Breakdown

The frosted glass effect uses two layers: a semi-transparent background and a GPU-composited blur filter.

/* Backdrop blur layer */
.nav-blur{
  position:absolute;
  inset:0;
  background:rgba(8,8,14,0.75);        /* Dark theme */
  backdrop-filter:blur(12px) saturate(180%);
  -webkit-backdrop-filter:blur(12px) saturate(180%);
}

[data-theme="light"] .nav-blur{
  background:rgba(244,244,249,0.8);  /* Light theme */
}

09.3 — Scroll State Detection

JavaScript adds .scrolled class when window.scrollY > 0. CSS applies border and shadow.

/* CSS — Scroll state */
.nav.scrolled{
  border-bottom-color:var(--border);
  box-shadow:0 2px 12px rgba(0,0,0,0.15);
}

/* JS — Scroll listener */
window.addEventListener('scroll', function(){
  if(window.scrollY > 0){
    nav.classList.add('scrolled');
  } else {
    nav.classList.remove('scrolled');
  }
}, {passive:true});

09.4 — Hamburger → X Transformation

Three spans transform via CSS when aria-expanded="true". Top/bottom rotate 45°, middle fades out.

Closed
Open
/* Hamburger → X animation */
.nav-hamburger span{
  transition:transform 0.3s,opacity 0.3s;
}

.nav-hamburger[aria-expanded="true"] span:nth-child(1){
  transform:rotate(45deg) translate(5px,5px);
}
.nav-hamburger[aria-expanded="true"] span:nth-child(2){
  opacity:0;
}
.nav-hamburger[aria-expanded="true"] span:nth-child(3){
  transform:rotate(-45deg) translate(5px,-5px);
}

09.5 — Layout Structure

Logo left, nav links center, theme toggle right. Consistent 64px height.

<nav class="nav">
  <div class="nav-blur"></div>
  <div class="nav-inner">
    
    <!-- Logo (left) -->
    <a href="/" class="nav-logo">
      <svg>...</svg>
      <span>Brand</span>
    </a>
    
    <!-- Nav links (center) -->
    <div class="nav-links">
      <a href="#" class="nav-link active">Home</a>
      <a href="#" class="nav-link">About</a>
      ...
    </div>
    
    <!-- Actions (right) -->
    <div class="nav-actions">
      <button class="btn btn-ghost btn-sm">Theme</button>
    </div>
    
    <!-- Hamburger (mobile only) -->
    <button class="nav-hamburger" aria-expanded="false">
      <span></span>
      <span></span>
      <span></span>
    </button>
    
  </div>
</nav>

Category 10 — 📍 Floating Rail Navigation

Fixed-position right-side section-spy dot navigation. Active section dot glows. Label appears on hover. Hidden below tablet breakpoint. STANDARD Aether Cat 10

#RequirementSpecificationTier
10.1Fixed PositionFixed to right viewport edge. Vertically centered. z-index:800. Hidden on mobile (display:none below tablet). No interference with content.STANDARD
10.2Scroll SpyIntersectionObserver monitors section visibility. Active dot updates via JS .active class. CSS: active dot has glow (box-shadow + accent background).STANDARD
10.3Hover LabelOn dot hover, section label fades in adjacent to dot. opacity transition. Pure CSS :hover + sibling selector. No JS for hover state.STANDARD
10.4Smooth ScrollClick triggers scrollIntoView({behavior:'smooth'}) with offset for sticky nav height. Respects reduced-motion (instant scroll).STANDARD
🎛️ View Category 10 Live Demonstration

10.1–10.4 — Complete Floating Rail Demo

The floating rail on the right demonstrates scroll spy. Click dots to jump to sections, or scroll to see active state update. Hover over dots to see section labels.

Overview

Section 1 — Dot active

Features

Section 2 — Scroll to see dot update

Pricing

Section 3 — IntersectionObserver at 50% threshold

Contact

Section 4 — Click dots to jump

10.1 — Fixed Position Behavior

The rail is fixed to the right viewport edge and vertically centered. Hidden below 900px breakpoint.

.rail{
  position:fixed;
  right:24px;
  top:50%;
  transform:translateY(-50%);
  z-index:800;
  display:flex;
  flex-direction:column;
  gap:12px;
}

@media (max-width:900px){
  .rail{display:none}
}

10.2 — Scroll Spy Implementation

IntersectionObserver monitors section visibility. When a section is 50% visible, its dot gains the .active class.

/* CSS — Active state */
.rail-dot.active{
  background:var(--accent);
  box-shadow:0 0 12px var(--accent-glow);
}

// JS — IntersectionObserver
var observer = new IntersectionObserver(function(entries){
  entries.forEach(function(entry){
    if(entry.isIntersecting){
      // Find matching dot and add .active
      var sectionId = entry.target.id;
      var dot = document.querySelector('[data-section="#' + sectionId + '"]');
      if(dot) dot.classList.add('active');
    }
  });
}, {
  threshold:0.5  /* 50% visible */
});

10.3 — Hover Label (Pure CSS)

Label appears on hover using sibling selector. No JavaScript required for hover state.

Hover Label
Hover over the dot Label fades in from right
/* Hover label — pure CSS */
.rail-label{
  position:absolute;
  right:24px;              /* Offset from dot */
  top:50%;
  transform:translateY(-50%);
  opacity:0;
  visibility:hidden;
  transition:opacity 0.2s,visibility 0.2s;
}

.rail-dot-wrapper:hover .rail-label{
  opacity:1;
  visibility:visible;
}

10.4 — Smooth Scroll with Offset

Click triggers scrollIntoView({behavior:'smooth'}). The CSS scroll-padding-top handles nav offset automatically.

/* CSS — Scroll offset for fixed nav (Category 02.4a) */
html{
  scroll-padding-top:72px;
}

// JS — Smooth scroll on dot click
railDot.addEventListener('click',function(e){
  e.preventDefault();
  var target = document.querySelector(this.dataset.section);
  if(target){
    target.scrollIntoView({
      behavior:'smooth',
      block:'center'
    });
  }
});

Accessibility Implementation

Each dot requires aria-label describing the target section. The nav container uses aria-label for screen reader context.

<nav class="rail" aria-label="Section navigation">
  <div class="rail-dot-wrapper">
    <button class="rail-dot" 
            data-section="#overview"
            aria-label="Go to Overview section">
    </button>
    <span class="rail-label">Overview</span>
  </div>
</nav>

Category 11 — 🦸 Hero System

Dot grid background pattern, audience router cards, 3D perspective tilt, trust strip, IDE preview window with Chrome dots, parallax on mouse move. PREMIUM Aether Cat 11

#RequirementSpecificationTier
11.1Dot Grid BackgroundCSS radial-gradient(circle,color 1px,transparent 1px) repeating pattern. Subtle. Non-distracting. Pure CSS — no SVG, no canvas.PREMIUM
11.2Audience Router Cards3–4 cards for different user segments. Each with icon, title, description, CTA. Horizontal layout on desktop, stack on mobile.PREMIUM
11.33D Perspective TiltCards respond to mouse position with transform:perspective(800px) rotateX() rotateY(). JS calculates rotation from cursor offset. CSS transition for return to neutral. Reduced-motion: disabled.PREMIUM
11.4Trust StripHorizontal row of logos/certifications/guarantees. Subtle. Above the fold. Grayscale or muted until hover. Conveys credibility without words.STANDARD
11.5IDE Preview WindowMock browser/IDE chrome: traffic light dots (red, yellow, green), title bar, code-like content area. Visual metaphor for developer tools. Dark theme with subtle border.PREMIUM
11.5aSyntax Highlighting ClassesFive semantic classes for code display within the IDE preview: .code-comment (italic, muted), .code-keyword (warm red/orange), .code-var (blue), .code-string (light blue), .code-prop (purple/pink). Each class has a dark-theme value and a [data-theme="light"] override. These colors are hardcoded hex values — not token-based — because syntax highlighting must remain visually stable independent of the design token system. The code preview must look like code regardless of theme context.PREMIUM
11.6Parallax on Mouse MovePreview window shifts opposite to cursor direction. Subtle effect (5–10px max). transform:translate() updated via JS mousemove. Passive listener. Disabled on mobile (no hover).PREMIUM
🎛️ View Category 11 Live Demonstration

11.1 — Dot Grid Background

CSS-only repeating radial-gradient pattern. No SVG, no canvas. Pure CSS.

Dot Grid Overlay

The subtle grid pattern creates depth without distracting from content.

/* 11.1 — Dot Grid Background */
.hero-dot-grid{
  position:absolute;
  inset:0;
  background-image:radial-gradient(
    circle,
    var(--border) 1px,
    transparent 1px
  );
  background-size:24px 24px;
  opacity:0.5;
  pointer-events:none;
}

11.2 — Audience Router Cards

3-4 cards for different user segments. Horizontal on desktop, stack on mobile. Equal visual weight — no dark patterns.

I'm Learning

Explore tutorials, documentation, and guided learning paths for front-end development.

Start Learning

I'm Building

Access design systems, component libraries, and production-ready code templates.

View Components

I'm Hiring

Review portfolio, case studies, and direct contact for collaboration opportunities.

Contact Me

11.3 — 3D Perspective Tilt

Cards respond to mouse position. Hover over the card below to see the effect. Reduced-motion: disabled. Touch devices: disabled.

← Click to see static tilt effect

Interactive Card

Hover over this card to see 3D tilt physics. The card rotates based on cursor position.

Hover Me
/* 11.3 — 3D Tilt CSS */
.hero-card[data-tilt="true"]{
  transform-style:preserve-3d;
  will-change:transform;
}

// 11.3 — 3D Tilt JS
card.addEventListener('mousemove',function(e){
  var rect = card.getBoundingClientRect();
  var x = e.clientX - rect.left;
  var y = e.clientY - rect.top;
  var centerX = rect.width / 2;
  var centerY = rect.height / 2;
  var rotateX = (y - centerY) / centerY * -8;
  var rotateY = (x - centerX) / centerX * 8;
  card.style.transform = 
    'perspective(800px) rotateX(' + rotateX + 'deg) rotateY(' + rotateY + 'deg) scale(1.02)';
});

11.4 — Trust Strip

Horizontal row of certifications, guarantees, or social proof. Grayscale by default, color on hover.

WCAG 2.1 AA
SSL Secured
<50KB CSS
Zero JS Deps

11.5 — IDE Preview Window

Mock browser chrome with traffic light dots, title bar, and syntax-highlighted code content.

design-system.css
/* Design Systems Blueprint v1.0 */
:root {
--accent: #c880e8;
--bg: #08080e;
--card: #10101e;
--radius-sm: 6px;
}

11.5a — Syntax Highlighting Classes

Five semantic classes with hardcoded hex values (not token-based) for stable code appearance across themes.

.code-comment
/* comment */
.code-keyword
function
.code-var
variable
.code-string
"text"
.code-prop
property
/* 11.5a — Syntax colors (hardcoded hex, not tokens) */
.code-comment{font-style:italic;color:#6a737d}
.code-keyword{color:#f97583}
.code-var{color:#79c0ff}
.code-string{color:#a5d6ff}
.code-prop{color:#d2a8ff}

/* Light theme overrides */
[data-theme="light"] .code-keyword{color:#d73a49}
[data-theme="light"] .code-var{color:#005cc5}
/* ... etc */

11.6 — Parallax on Mouse Move

IDE preview shifts opposite to cursor direction (5-15px max). Uses passive mousemove listener. Disabled on mobile (no hover).

// Parallax layer follows cursor
Mouse over this area to see parallax effect (not enabled in static demo)
/* 11.6 — Parallax CSS */
.parallax-layer{
  transition:transform 0.1s linear;
  will-change:transform;
}

// 11.6 — Parallax JS
container.addEventListener('mousemove',function(e){
  var rect = container.getBoundingClientRect();
  var centerX = rect.left + rect.width / 2;
  var centerY = rect.top + rect.height / 2;
  var offsetX = (e.clientX - centerX) / rect.width;
  var offsetY = (e.clientY - centerY) / rect.height;
  // Shift opposite to cursor direction
  layer.style.transform = 
    'translate(' + (-offsetX * 15) + 'px, ' + (-offsetY * 10) + 'px)';
});

Category 12 — 👤 About Section

Two-column grid: photo with accent ring treatment + text with badge stack. Responsive stacking. STANDARD Aether Cat 12

#RequirementSpecificationTier
12.1Two-Column GridPhoto column (left) + text column (right). grid-template-columns:auto 1fr or similar. Stacks to single column on mobile (photo top, text below).STANDARD
12.2Photo TreatmentRounded image with accent border ring. On hover: ring expands or changes color. Subtle transition. border:2px solid var(--accent) with border-radius:50% or rounded.STANDARD
12.3Badge StackSkill/role badges below bio text. Semantic badge variants from Category 08. Flexbox wrap layout with consistent gap.STANDARD
🎛️ View Category 12 Live Demonstration

12.1–12.3 — Complete About Section

Two-column grid with photo treatment and badge stack. Hover over the photo to see the accent ring expand.

Profile photo placeholder

Brandon Bell

Systems Architect & Design Engineer

I build sovereign software systems that prioritize user control, offline-first functionality, and deterministic behavior. My work spans from low-level WASM computation to GPU-compositor-optimized front-end architectures.

Current focus: Project Aether — a unified software architecture that treats the browser as a parallel computation platform.

Systems Architecture Design Systems GPU Compositor WASM CSS Architecture Rust

12.1 — Reversed Layout (Photo Right)

Add .reverse class to swap photo and content positions.

Profile photo placeholder

Reversed Layout

Photo on the Right

This variant places the photo column on the right side. Useful for alternating section layouts or when the visual flow calls for right-aligned imagery.

Layout Variant Responsive

12.2 — Photo Treatment Breakdown

Three-layer treatment: base image → accent border (3px) → glow ring on hover. Border width increases to 4px and color shifts.

Photo demo
Hover me
Default State:
  • 3px solid accent border
  • Circular clip (50% radius)
  • Ring opacity: 0
Hover State:
  • Border → 4px, color shifts to purple
  • Box-shadow: accent glow (24px)
  • Ring: opacity 1, scale 1.05
/* 12.2 — Photo treatment */
.about-img{
  width: 200px;
  height: 200px;
  border-radius: 50%;
  border: 3px solid var(--accent);
  transition: border-width 0.3s, border-color 0.3s, box-shadow 0.3s;
}

.about-img-wrapper:hover .about-img{
  border-width: 4px;
  border-color: var(--purple);
  box-shadow: 0 0 24px var(--accent-glow);
}

/* Glow ring (behind photo) */
.about-ring{
  position: absolute;
  inset: -12px;
  border: 2px solid var(--accent-dim);
  border-radius: 50%;
  opacity: 0;
  transition: opacity 0.3s, transform 0.3s;
}

.about-img-wrapper:hover .about-ring{
  opacity: 1;
  transform: scale(1.05);
}

12.3 — Badge Stack Implementation

Uses semantic badge variants from Category 08. Flexbox wrap layout with consistent gap.

Available badge variants:
CORE STANDARD PREMIUM OPTIONAL NEW SRC: Aether
/* 12.3 — Badge stack */
.about-badges{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 20px;
}

/* Mobile: center align */
@media (max-width: 700px){
  .about-badges{
    justify-content: center;
  }
}

12.1 — Mobile Stack Behavior

Below 700px, the grid collapses to single column. Photo appears above content, both centered.

Mobile photo

Mobile View

Single Column Stack

Photo on top, content below. Centered alignment for visual balance on narrow viewports.

Responsive Centered

Complete HTML Structure

<section class="about">
  <!-- Photo column -->
  <div class="about-photo">
    <div class="about-img-wrapper">
      <div class="about-ring"></div>
      <img 
        src="/path/to/photo.jpg" 
        alt="Your Name — Systems Architect" 
        class="about-img"
      >
    </div>
  </div>
  
  <!-- Content column -->
  <div class="about-content">
    <h3 class="about-name">Your Name</h3>
    <p class="about-title">Your Title</p>
    
    <div class="about-bio">
      <p>First paragraph of bio...</p>
      <p>Second paragraph...</p>
    </div>
    
    <!-- Badge stack (Cat 08) -->
    <div class="about-badges">
      <span class="badge core">Skill One</span>
      <span class="badge std">Skill Two</span>
      <span class="badge prem">Skill Three</span>
    </div>
  </div>
</section>

<!-- Reversed layout: add .reverse class -->
<section class="about reverse">...</section>

Category 13 — 🃏 Case Study Cards

Mouse-tracking glow effect via CSS custom properties, gradient borders via mask-composite, 3D tilt physics, badge hierarchy, and meta strip. PREMIUM Aether Cat 13

#RequirementSpecificationTier
13.1Mouse-Tracking GlowCSS custom properties (--mouse-x, --mouse-y) updated via JS mousemove. radial-gradient follows cursor position on card. Compositor-only: will-change:background. Pure visual enhancement — card works without it.PREMIUM
13.2Gradient Border — mask-composite TechniqueAnimated gradient border on flagship cards via ::before pseudo-element with mask-composite: exclude. The pseudo-element fills the card with a linear-gradient (multi-stop: accent → purple → green → accent) with background-size: 300% and animation: gradientFlow 4s ease infinite. The mask excludes the inner area, leaving only the border visible. -webkit-mask-composite: xor for Safari compatibility. Fallback: solid --border-bright on browsers without mask support. This is a GPU-composited effect — the gradient animation runs on the compositor, not the main thread.PREMIUM
13.3Structural SeparationCard scroll container separate from hover detection area. Scroll behavior independent of mouse tracking. No jank when scrolling through card list.PREMIUM
13.4Meta StripBottom section: date, tags, read time, category. Consistent typography (small, muted). Flexbox row with gap. Present on all cards for visual consistency.STANDARD
🎛️ View Category 13 Live Demonstration

Standard Case Study Card

Basic card with image, title, description, and meta strip. Hover to see lift effect.

Case Study
Image Placeholder

E-Commerce Platform Redesign

Complete redesign of checkout flow resulting in 42% conversion improvement and reduced cart abandonment.

Jan 2024 8 min read E-Commerce

13.1 — Mouse-Tracking Glow

CSS custom properties --mouse-x and --mouse-y are updated via JS. The radial-gradient follows cursor position.

← Hover over card when glow is active
Hover to see glow

Mouse-Tracking Demo

Move your cursor across this card to see the glow effect follow your mouse position.

/* 13.1 — CSS for glow layer */
.case-card-glow{
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0;
  background: radial-gradient(
    circle 200px at var(--mouse-x, 50%) var(--mouse-y, 50%),
    var(--accent-glow),
    transparent 60%
  );
}
.case-card:hover .case-card-glow{opacity:1}

// 13.1 — JS for mouse tracking
card.addEventListener('mousemove', function(e){
  var rect = card.getBoundingClientRect();
  var x = e.clientX - rect.left;
  var y = e.clientY - rect.top;
  card.style.setProperty('--mouse-x', x + 'px');
  card.style.setProperty('--mouse-y', y + 'px');
});

13.2 — Gradient Border (Flagship Cards)

Animated gradient border using mask-composite: exclude. The gradient animates via gradientFlow keyframes. GPU-composited.

Featured
Flagship Card

Gradient Border Animation

This flagship card features an animated gradient border that cycles through accent colors continuously.

/* 13.2 — Gradient border technique */
.case-card.flagship::before{
  content: '';
  position: absolute;
  inset: 0;
  border-radius: var(--radius);
  padding: 2px;                      /* Border width */
  background: linear-gradient(90deg,
    var(--accent), var(--purple), 
    var(--green), var(--accent)
  );
  background-size: 300% auto;       /* Animate position */
  animation: gradientFlow 4s ease infinite;
  
  /* Mask: content-box cuts out center */
  -webkit-mask: linear-gradient(#fff 0 0) content-box,
                linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;      /* Safari */
  mask-composite: exclude;          /* Standard */
}

/* Reuses gradientFlow keyframe from Category 05.3 */
@keyframes gradientFlow{
  0%{background-position:0% 50%}
  50%{background-position:100% 50%}
  100%{background-position:0% 50%}
}

13.3 — Structural Separation

The hover detection area is separate from the scroll container. This prevents jank when scrolling through card content while maintaining glow tracking.

❌ Without Separation
  • Scroll events interfere with mouse tracking
  • Glow position jumps during scroll
  • Hover state flickers
✓ With Separation
  • Card wrapper handles hover detection
  • Inner container handles scroll
  • Independent event handling
<!-- 13.3 — Structure with separation -->
<article class="case-card">          <!-- Hover detection layer -->
  <div class="case-card-glow"></div>
  <div class="case-card-inner">     <!-- Content container -->
    <div class="case-card-scroll">  <!-- Scrollable region -->
      ...content...
    </div>
  </div>
</article>

13.4 — Meta Strip Components

Bottom section with date, tags, read time, and category. Uses Flexbox with consistent gap. Typographically muted to not compete with card content.

Mar 15, 2024 12 min read Design Systems CSS Architecture
/* 13.4 — Meta strip */
.case-card-meta{
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 11px;
  color: var(--muted);
  padding-top: 14px;
  border-top: 1px solid var(--border-soft);
}

.case-card-meta-item{
  display: flex;
  align-items: center;
  gap: 4px;
}

.case-card-tag{
  padding: 2px 8px;
  background: var(--accent-dim);
  color: var(--accent);
  border-radius: 3px;
  font-weight: 500;
}

Complete Cards Grid

Responsive grid with auto-fill. Cards flow naturally without media query breakpoints.

Architecture
Project Image

Micro-Frontend Migration

Decomposed monolithic SPA into independent micro-frontends with shared design system.

Feb 2024 15 min Enterprise
Performance
Project Image

Core Web Vitals Optimization

Achieved 95+ Lighthouse scores through GPU-compositor optimization and critical path analysis.

Jan 2024 10 min Performance
Featured
Featured Project

Design Systems Blueprint

Complete design system architecture with 24-category CSS foundation and live documentation.

Now 20 min Design Systems

Category 14 — 🗂️ Services Matrix

Auto-fit grid of service cards. Flagship card with sub-layout. Specs checklist. Process steps. Evidence badges. Orphan prevention at desktop. STANDARD Aether Cat 14

#RequirementSpecificationTier
14.1Auto-Fit Gridgrid-template-columns:repeat(auto-fit,minmax(300px,1fr)). Cards fill available space. No media queries for column count. Natural wrapping.STANDARD
14.2Flagship CardOne card visually elevated: gradient background (dark: linear-gradient(135deg, var(--card), var(--purple-dim))), purple accent border, and an internal two-column grid — content (left, ~1.5fr) and spec checklist (right, ~1fr) separated by border-left: 1px solid var(--border-bright). Spec items use green checkmarks. On mobile, the internal grid collapses to a single column and the border separator shifts to a top border. Standard cards in the same grid remain single-column. Orphan prevention: at desktop widths where auto-fit would produce 3 columns, constrain to 2 columns to prevent single-card orphan rows.STANDARD
14.3Specs ChecklistEach service card includes feature checklist. Checkmark icons (CSS ::before or inline SVG). Included/not-included items visually distinct.STANDARD
14.4Process StepsNumbered process flow within relevant cards. Step numbers + descriptions. Vertical list with connecting line or horizontal flow. Consistent with overall typography.STANDARD
14.5Orphan Prevention2-col grid at desktop where appropriate. grid-column:span 2 for cards that would otherwise be alone on final row. No single-card rows.STANDARD
🎛️ View Category 14 Live Demonstration

14.1 — Auto-Fit Grid Layout

Cards flow naturally using grid-template-columns:repeat(auto-fit,minmax(300px,1fr)). No media queries for column count.

Design Systems Architecture

Complete CSS architecture from token foundation through component library. 24-category baseline, 6 design pathways, 5 green gates.

Front-End Performance

GPU-compositor optimization, Lighthouse 95+ scores, zero-render-blocking CSS, fluid typography, responsive continuum.

Accessibility Audit

WCAG 2.1 AA compliance verification, contrast ratio audit, screen reader testing, keyboard navigation validation.

/* 14.1 — Auto-fit grid */
.services-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 20px;
}

/* 14.5 — Orphan prevention at desktop */
@media (min-width: 960px){
  .services-grid{
    grid-template-columns: repeat(2, 1fr);
  }
  /* Last odd child spans full width */
  .services-grid.orphan-last > *:last-child:nth-child(odd){
    grid-column: span 2;
  }
}

14.2 — Flagship Card (Internal Two-Column Layout)

Gradient background, purple accent border, content + spec checklist columns. Internal grid collapses to single column on mobile.

PREMIUM

Complete Design System Build

Full design systems implementation from token definition through production deployment. Includes Figma sync, documentation, and visual regression testing.

What You Get

Token system, CSS architecture, component library, living documentation, visual regression pipeline, Figma integration, accessibility audit, performance optimization.

1
Discovery & Token Definition
Audit existing systems, define token hierarchy
2
CSS Architecture Build
24-category implementation, 6 pathways
3
Component Library & Docs
Storybook, visual regression, handoff protocol
4
Audit & Deployment
Green gates pass, production deployment

Includes

  • Token system definition
  • 24-category CSS architecture
  • Component library
  • Living documentation
  • Visual regression testing
  • Figma token sync
  • Accessibility audit
  • Ongoing maintenance
STANDARD

Design Systems Architecture

CSS architecture build without documentation or tooling. Token system, 24-category baseline, component library.

/* 14.2 — Flagship card */
.service-card.flagship{
  border-color: var(--purple);
  background: linear-gradient(135deg, 
    var(--card) 0%, 
    var(--purple-dim) 100%
  );
}

/* Internal two-column layout */
.service-card-inner-grid{
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 24px;
  border-top: 1px solid var(--border-bright);
}

.service-card-specs-col{
  padding-left: 20px;
  border-left: 1px solid var(--border-bright);
}

/* Mobile: collapse to single column */
@media (max-width: 700px){
  .service-card-inner-grid{
    grid-template-columns: 1fr;
  }
  .service-card-specs-col{
    padding-left: 0;
    border-left: none;
    border-top: 1px solid var(--border-bright);
    padding-top: 16px;
  }
}

14.3 — Specs Checklist

Green checkmark for included items. Muted/opacity for not-included. SVG icon inline with flex alignment.

Spec Checklist Demo

  • Included feature — green check
  • Another included feature
  • Not included — muted styling
  • Premium only — upgrade required
/* 14.3 — Specs checklist */
.spec-list{
  list-style: none;
  padding: 0;
  margin: 0;
}

.spec-item{
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 8px 0;
  font-size: 13px;
}

.spec-check{
  width: 18px;
  height: 18px;
  color: var(--green);  /* Included */
}

.spec-item.not-included{
  opacity: 0.5;
}

.spec-item.not-included .spec-check{
  color: var(--muted);  /* Not included */
}

14.4 — Process Steps (Numbered Flow)

Circular numbered badges, optional connecting line. Two accent color variants for visual rhythm.

1
Discovery Phase
Initial consultation and requirements gathering
2
Design Phase
Architecture planning and token definition
3
Implementation Phase
CSS build and component development
4
Delivery Phase
Audit, documentation, and handoff
/* 14.4 — Process steps */
.process-step{
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.process-num{
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--accent);
  color: var(--bg);
  font-weight: 700;
  border-radius: 50%;
}

.process-num.alt{
  background: var(--purple);  /* Variant for rhythm */
}

/* Connecting line between steps */
.process-list.connected::before{
  content: '';
  position: absolute;
  left: 13px;
  top: 28px;
  bottom: 28px;
  width: 2px;
  background: var(--border-bright);
}

14.5 — Orphan Prevention

At desktop (960px+), grid constrained to 2 columns. Last odd child spans full width to prevent single-card orphan rows.

❌ Without Prevention
Card 1 | Card 2
Card 3 | empty
← orphan row
✓ With Prevention
Card 1 | Card 2
Card 3 spans both
← no orphan
/* 14.5 — Orphan prevention */
@media (min-width: 960px){
  /* Constrain to 2 columns at desktop */
  .services-grid{
    grid-template-columns: repeat(2, 1fr);
  }
  
  /* Last odd child spans full width */
  .services-grid.orphan-last > *:last-child:nth-child(odd){
    grid-column: span 2;
  }
}

/* Usage: add .orphan-last class to grid container */
<div class="services-grid orphan-last">
  ...cards...
</div>

Complete Services Grid (All Features)

Full demonstration with flagship card, standard cards, spec checklists, and orphan prevention.

PREMIUM

Complete Design System Build

Full implementation: tokens, CSS, components, docs, testing, Figma sync.

1
Discovery
Requirements & token definition
2
Build
24-category CSS implementation
3
Deliver
Audit, docs, deployment
  • Token system
  • Component library
  • Documentation
  • Figma sync
STANDARD

CSS Architecture Only

24-category baseline without documentation or tooling.

STANDARD

Accessibility Audit

WCAG 2.1 AA verification, contrast audit, screen reader testing.

STANDARD

Performance Optimization

GPU-compositor tuning, Lighthouse 95+, zero render-blocking.

Category 15 — 💡 Philosophy Spec Cards

Principle-driven proof points. Icon + title + definition + proof structure. 3D tilt on hover for tactile engagement. STANDARD Aether Cat 15

#RequirementSpecificationTier
15.1Card StructureIcon (top), title (bold), definition paragraph, proof point (muted, smaller). Consistent internal spacing. Each card is a self-contained argument.STANDARD
15.23D TiltPerspective transform on hover (same engine as Hero cards, Category 11.3). Subtle. Respects reduced-motion. Disabled on touch devices.PREMIUM
15.3Icon TreatmentIcon in accent color. May use gradient text if icon is text/emoji. Consistent sizing across cards. Sits above title with adequate whitespace.STANDARD
🎛️ View Category 15 Live Demonstration

15.1 — Card Structure

Icon → Title → Definition → Proof Point. Each card is a self-contained argument. Consistent internal spacing across all cards.

Token-First Sovereignty

Every visual attribute originates from a design token — a CSS custom property. No hardcoded values. No magic numbers.

Proof: All colors, spacing, radii, shadows in :root. Component rules reference var(--token) only.

/* 15.1 — Card structure */
.philosophy-card{
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 24px;
}

.philosophy-card-icon{
  width: 40px;
  height: 40px;
  background: var(--accent-dim);
  color: var(--accent);
  border-radius: var(--radius-sm);
  margin-bottom: 16px;
}

.philosophy-card-title{
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 8px;
}

.philosophy-card-definition{
  font-size: 14px;
  color: var(--text-muted);
  line-height: 1.65;
  margin-bottom: 12px;
}

.philosophy-card-proof{
  font-size: 12px;
  color: var(--muted);
  padding-top: 12px;
  border-top: 1px solid var(--border-soft);
}

15.2 — 3D Perspective Tilt

Hover over the card to see 3D tilt physics. Same engine as Category 11.3. Respects reduced-motion. Disabled on touch devices.

Interactive Card

Hover to feel the 3D tilt. The card rotates based on cursor position using perspective transform.

Implementation: perspective(800px) rotateX() rotateY() via mousemove listener.

/* 15.2 — 3D Tilt (same engine as Category 11.3) */
.philosophy-card[data-tilt="true"]{
  transform-style: preserve-3d;
  will-change: transform;
}

// JS — shared with hero-card tilt
card.addEventListener('mousemove', function(e){
  var rect = card.getBoundingClientRect();
  var x = e.clientX - rect.left;
  var y = e.clientY - rect.top;
  var centerX = rect.width / 2;
  var centerY = rect.height / 2;
  var rotateX = (y - centerY) / centerY * -8;
  var rotateY = (x - centerX) / centerX * 8;
  card.style.transform = 
    'perspective(800px) rotateX(' + rotateX + 'deg) rotateY(' + rotateY + 'deg) scale(1.02)';
});

15.3 — Icon Treatment

Icon in accent color, consistent sizing, sits above title with adequate whitespace. May use emoji with gradient text for titles.

SVG Icon

Standard SVG icon in accent color background.

Size: 40×40px container, 20×20px icon.

🎨

Emoji + Gradient

Emoji icon with gradient text title for visual variety.

Note: Emoji icon has no background container.

Emoji Standard

Emoji icon without gradient text, standard title.

Font-size: 28px for emoji icons.

/* 15.3 — Icon treatment */
.philosophy-card-icon{
  width: 40px;
  height: 40px;
  background: var(--accent-dim);
  color: var(--accent);
  border-radius: var(--radius-sm);
  margin-bottom: 16px;
}

/* Emoji variant — no container */
.philosophy-card-icon.emoji{
  font-size: 28px;
  background: transparent;
  width: auto;
  height: auto;
  padding: 0;
}

/* Gradient text for titles (optional) */
.philosophy-card-title.gradient{
  background: linear-gradient(135deg, var(--fg) 0%, var(--accent) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

Numbered Variant

CSS counter for automatic numbering. Useful for ordered principle lists.

First Principle

Auto-numbered via CSS counter on the card.

Second Principle

Counter increments automatically for each card.

Third Principle

No manual numbering in HTML required.

/* Numbered variant */
.philosophy-grid{
  counter-reset: philosophy-counter;
}

.philosophy-card-numbered{
  counter-increment: philosophy-counter;
}

.philosophy-card-numbered::before{
  content: counter(philosophy-counter);
  position: absolute;
  top: 16px;
  right: 16px;
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: 50%;
  font-size: 12px;
  font-weight: 700;
  color: var(--text-dim);
}

Complete Philosophy Grid (All Features)

Full demonstration with 3D tilt, icons, definitions, proof points, and numbered variants.

Token-First Sovereignty

Every visual decision originates from a design token. No hardcoded values. The token system is the single source of truth.

Proof: All colors, spacing, radii, shadows in :root. Components reference var(--token) only.

Deterministic CSS Core

Every visual system works without JavaScript. Layout, typography, color — all CSS-native. JS enhances, never replaces.

Proof: Page renders complete with JS disabled. All layout via Grid/Flexbox, no JS measurement.

Accessibility-Native

Accessibility is built into tokens, not applied after. Contrast ratios guaranteed by token design. Focus management in reset.

Proof: All text/bg pairs pass WCAG AA. :focus-visible global. Semantic HTML baseline.

User-Controlled Presentation

The user controls their experience: dark/light, reduced-motion, forced-colors. Design adapts to user, not vice versa.

Proof: prefers-reduced-motion respected. forced-colors tested. Theme toggle persistent.

GPU Compositor Pipeline

The browser compositor is a GPU pipeline. CSS transform, opacity, backdrop-filter run at near-zero cost. UI at 120fps.

Proof: will-change on overlays. transform/opacity only in animations. backdrop-filter for glass.

Category 16 — 💼 For Employers Section

Two-column layout: qualification bullets + CTAs (résumé PDF, LinkedIn, contact). Professional, clean, conversion-oriented. STANDARD Aether Cat 16

#RequirementSpecificationTier
16.1Two-Column LayoutQualifications (left) + CTAs (right). Stacks on mobile. Consistent with overall layout system (Category 04).STANDARD
16.2Bullet PointsClean, scannable bullet list. Custom bullet via ::before pseudo-element or list-style. Accent color. Adequate line-height for readability.STANDARD
16.3CTA ButtonsRésumé download, LinkedIn profile, contact button. Button variants from Category 07. Clear visual hierarchy: primary action prominent, secondary actions subtle.STANDARD
🎛️ View Category 16 Live Demonstration

16.1–16.3 — Complete For Employers Section

Two-column layout: qualifications (left) + CTAs (right). Stacks on mobile. Clean, professional, conversion-oriented.

For Employers

What I bring to engineering teams building sovereign software systems.

  • 10+ years of experience in systems architecture, from low-level WASM computation to GPU-compositor-optimized front-end
  • Production track record: design systems serving 100K+ users with Lighthouse 95+ scores
  • Cross-functional: can work from token definition through deployment, not just one layer
  • Documentation-first: every system is self-explanatory, reducing onboarding time
  • Performance-obsessed: GPU-compositor awareness, zero-render-blocking, 60fps UI
  • Accessibility-native: WCAG 2.1 AA by construction, not remediation

16.1 — Two-Column Layout

Qualifications on the left, CTAs on the right. grid-template-columns: 1fr auto. Stacks to single column on mobile.

Desktop Layout
Qualifications
CTAs
Mobile Layout
Qualifications
CTA
CTA
/* 16.1 — Two-column layout */
.employers{
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 40px;
  align-items: start;
}

.employers-content{
  min-width: 0;
}

.employers-ctas{
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 200px;
}

/* Mobile: stack columns */
@media (max-width: 700px){
  .employers{
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .employers-ctas{
    flex-direction: row;
    flex-wrap: wrap;
    min-width: 0;
  }
}

16.2 — Bullet Points

Custom accent-colored bullet via ::before pseudo-element. Clean, scannable, professional.

  • Standard bullet point with accent dot
  • Bullet point with bold text for emphasis
  • Another qualification item
/* 16.2 — Bullet list */
.employers-list{
  list-style: none;
  padding: 0;
  margin: 0;
}

.employers-list li{
  position: relative;
  padding: 10px 0 10px 28px;
  font-size: 15px;
  border-bottom: 1px solid var(--border-soft);
}

/* Custom bullet via ::before */
.employers-list li::before{
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 8px;
  height: 8px;
  background: var(--accent);
  border-radius: 50%;
}

/* Bold text inside list items */
.employers-list li strong{
  color: var(--fg);
}

16.3 — CTA Buttons

Résumé (primary), LinkedIn (secondary), Contact (secondary). Button system from Category 07. Clear visual hierarchy.

/* 16.3 — CTA buttons (reuses Category 07 button system) */
.employers-ctas{
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* Full-width buttons in CTA column */
.employers-cta-primary,
.employers-cta-secondary{
  width: 100%;
  justify-content: center;
}

/* Button with icon */
.employers-cta-icon{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.employers-cta-icon svg{
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

/* HTML structure */
<div class="employers-ctas">
  <a href="#" class="btn btn-primary employers-cta-icon">
    <svg>...</svg>
    Download Résumé
  </a>
  <a href="#" class="btn btn-ghost employers-cta-icon">
    <svg>...</svg>
    LinkedIn Profile
  </a>
</div>

Mobile Stack Behavior

Below 700px, columns stack. CTAs become a horizontal row with wrapped buttons.

Mobile View

Stacked layout for narrow viewports

  • Qualification item
  • Another item

Complete HTML Structure

<section class="employers">
  <!-- Qualifications column -->
  <div class="employers-content">
    <h3 class="employers-title">For Employers</h3>
    <p class="employers-subtitle">What I bring to engineering teams.</p>
    
    <ul class="employers-list">
      <li><strong>10+ years</strong> of experience in systems architecture</li>
      <li><strong>Production track record:</strong> design systems serving 100K+ users</li>
      <li><strong>Cross-functional:</strong> token definition through deployment</li>
      <li><strong>Performance-obsessed:</strong> GPU-compositor, 60fps UI</li>
      <li><strong>Accessibility-native:</strong> WCAG 2.1 AA by construction</li>
    </ul>
  </div>
  
  <!-- CTA column -->
  <div class="employers-ctas">
    <a href="/resume.pdf" class="btn btn-primary employers-cta-icon">
      <svg viewBox="0 0 24 24">...</svg>
      Download Résumé
    </a>
    <a href="https://linkedin.com/in/..." class="btn btn-ghost employers-cta-icon">
      <svg viewBox="0 0 24 24">...</svg>
      LinkedIn Profile
    </a>
    <a href="mailto:..." class="btn btn-ghost employers-cta-icon">
      <svg viewBox="0 0 24 24">...</svg>
      Contact Me
    </a>
  </div>
</section>

Category 17 — ⭐ Product Spotlight

Flagship product highlight section. Metrics grid, trust strip, CTA buttons (visit + buy). STANDARD Aether Cat 17

#RequirementSpecificationTier
17.1Highlights GridKey metrics/features in auto-fit grid. Numbers large and bold. Labels small and muted. 3–6 highlight items.STANDARD
17.2Trust StripReused from Category 11.4 or simplified version. Testimonials, user counts, certifications. Consistent with hero trust strip.STANDARD
17.3CTA ButtonsVisit (primary) + Buy/Pricing (secondary or accent). Button system from Category 07. Clear conversion path without dark patterns.STANDARD
🎛️ View Category 17 Live Demonstration

17.1–17.3 — Complete Product Spotlight

Highlights grid, trust strip, and CTA buttons. Flagship product section for conversion-focused presentation.

⭐ Featured Product

Design Systems Blueprint

The canonical CSS architecture for sovereign software. 24 categories, 6 pathways, 5 green gates. Zero dependencies. Production-ready.

24
Categories
6
Pathways
5
Green Gates
<50
KB CSS
WCAG 2.1 AA
Accessible
Zero JS Deps
Sovereign
Single File
Portable

17.1 — Highlights Grid

Key metrics in auto-fit grid. Numbers large and bold (clamp for fluid scaling). Labels small and muted. 3–6 items recommended.

10K+
Users
99%
Uptime
4.9
Rating
/* 17.1 — Highlights grid */
.spotlight-highlights{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 24px;
}

.highlight-item{
  text-align: center;
  padding: 16px;
  background: var(--card);
  border-radius: var(--radius);
  border: 1px solid var(--border);
}

.highlight-value{
  font-size: clamp(28px, 5vw, 40px);
  font-weight: 800;
  color: var(--accent);
  line-height: 1;
  margin-bottom: 4px;
}

.highlight-value.gold{ color: var(--gold); }
.highlight-value.green{ color: var(--green); }

.highlight-label{
  font-size: 12px;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

17.2 — Trust Strip (Simplified)

Simplified version of Category 11.4 trust strip. Icon + value + label structure. Testimonials, user counts, certifications.

2,500+
Downloads
4.9/5
Rating
Verified
Quality
/* 17.2 — Trust strip (simplified) */
.spotlight-trust{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 20px 32px;
  padding: 24px 0;
  border-top: 1px solid var(--border-soft);
  border-bottom: 1px solid var(--border-soft);
}

.trust-stat{
  display: flex;
  align-items: center;
  gap: 8px;
}

.trust-stat-icon{
  width: 20px;
  height: 20px;
  color: var(--green);
}

.trust-stat-value{
  font-size: 14px;
  font-weight: 600;
  color: var(--fg);
}

.trust-stat-label{
  font-size: 12px;
  color: var(--muted);
}

17.3 — CTA Buttons

Visit (primary) + Buy/Pricing (green for conversion). Clear visual hierarchy. Button system from Category 07.

Alternative: Free + Premium
/* 17.3 — CTA buttons */
.spotlight-ctas{
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}

.spotlight-ctas .btn{
  min-width: 160px;
  justify-content: center;
}

/* Mobile: stack buttons */
@media (max-width: 700px){
  .spotlight-ctas{
    flex-direction: column;
  }
  .spotlight-ctas .btn{
    width: 100%;
  }
}

Price Indicator (Optional)

For product spotlights with pricing. Gold color for price value to draw attention.

$149 one-time purchase
Purchase Now
/* Price indicator */
.spotlight-price{
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 24px;
}

.spotlight-price-value{
  font-size: 28px;
  font-weight: 800;
  color: var(--gold);
}

.spotlight-price-label{
  font-size: 14px;
  color: var(--muted);
}

Complete HTML Structure

<section class="spotlight">
  <div class="spotlight-inner">
    <span class="spotlight-badge">⭐ Featured Product</span>
    <h3 class="spotlight-title">Product Name</h3>
    <p class="spotlight-desc">Brief description of the product.</p>
    
    <!-- 17.1 — Highlights grid -->
    <div class="spotlight-highlights">
      <div class="highlight-item">
        <div class="highlight-value">24</div>
        <div class="highlight-label">Categories</div>
      </div>
      <div class="highlight-item">
        <div class="highlight-value gold">6</div>
        <div class="highlight-label">Pathways</div>
      </div>
      <div class="highlight-item">
        <div class="highlight-value green">5</div>
        <div class="highlight-label">Green Gates</div>
      </div>
    </div>
    
    <!-- 17.2 — Trust strip -->
    <div class="spotlight-trust">
      <div class="trust-stat">
        <svg class="trust-stat-icon">...</svg>
        <div>
          <div class="trust-stat-value">WCAG 2.1 AA</div>
          <div class="trust-stat-label">Accessible</div>
        </div>
      </div>
    </div>
    
    <!-- 17.3 — CTA buttons -->
    <div class="spotlight-ctas">
      <a href="#" class="btn btn-primary">Visit Product</a>
      <a href="#" class="btn btn-green">Buy Now</a>
    </div>
  </div>
</section>

Category 18 — ❓ FAQ Accordion

Keyboard-navigable accordion with roving focus, chevron rotation, category grouping, and fade-in animation on expand. STANDARD Aether Cat 18

#RequirementSpecificationTier
18.1Category GroupingFAQs organized by category with uppercase section titles. Visual separation between groups. Consistent with overall typography system.STANDARD
18.2Trigger ButtonEach FAQ item has a <button> trigger with aria-expanded. Chevron icon rotates via CSS transform:rotate() on [aria-expanded="true"]. No JS for rotation — pure CSS attribute selector.CORE
18.3Close-All-SiblingsOpening one FAQ closes others in same group. JS manages aria-expanded toggling. CSS handles the visual transition. Accordion behavior, not toggle behavior.STANDARD
18.4Keyboard NavigationArrow keys move between items (roving focus). Home/End jump to first/last. Enter/Space toggle current. Full ARIA accordion pattern (WAI-ARIA 3.1).STANDARD
18.5Content AnimationExpanded content uses fadeInUp (Category 05.1). max-height or grid-template-rows transition for smooth expand. Reduced-motion: instant show/hide.STANDARD
18.6Focus-Within HighlightFAQ item with focused child gets subtle highlight via :focus-within. Helps keyboard users track position. Subtle border or background shift.STANDARD

Category 19 — 📄 Research & Publications

Container for academic papers, implementation guides, architectural essays, and trade publications. Two valid visual states that coexist: Placeholder (dashed border, muted treatment, tag pills, coming-soon badge) — used when content is forthcoming but the category slot must exist. Published (standard case card treatment with "Published" or "Shipped" badge) — used when content ships. The category transitions individual cards from placeholder to published without architectural change. Both states may appear simultaneously within the same grid. The category name reflects current state: the portfolio uses "Publications" because content has shipped; a new project begins at "Research Placeholder." STANDARD Aether Cat 19

#RequirementSpecificationTier
19.1Dashed Borderborder:1px dashed var(--border). Communicates "placeholder" / "forthcoming" without words. Muted color. Distinct from solid-border active cards.STANDARD
19.2Tag PillsTopic/category tags as small pill badges. Flexbox wrap. Muted color palette. Preview of content without revealing specifics.STANDARD
19.3Coming-Soon BadgeBadge from Category 08 (Coming Soon variant). Positioned prominently. Pulsing dot optional (reduced-motion: static).STANDARD
19.4Published State TransitionWhen research content is published, the dashed border is replaced with a solid border. The coming-soon badge is replaced with a "Published" or "Shipped" badge. Card treatment follows standard case card patterns from Category 13. The transition is visual only — the HTML structure is identical. This is the natural evolution: placeholder → published without architectural change.STANDARD
🎛️ View Category 19 Live Demonstration

19.1–19.4 — Complete Research & Publications Grid

Both placeholder (dashed border) and published (solid border) states coexist. Placeholder cards show coming-soon badge with pulse dot. Published cards show shipped badge with date.

Shipped

Design Systems Blueprint v1.0

Complete 24-category CSS architecture with token system, accessibility utilities, and GPU-compositor optimization patterns.

Design Systems CSS Architecture Tokens
Jun 2026 15 min read
Coming Soon

Sovereign Software Architecture

A unified approach to building software that prioritizes user control, offline-first functionality, and deterministic behavior.

Systems Architecture Sovereignty WASM

Research in progress — publication expected Q3 2026

Coming Soon

GPU Compositor Patterns

Advanced CSS techniques for 120fps UI overlays, backdrop-filter optimization, and layer promotion strategies.

Performance GPU

Draft complete — in review

19.1 — Dashed Border (Placeholder State)

border:1px dashed var(--border). Communicates "placeholder" / "forthcoming" without words. Muted color.

Placeholder Card

Dashed border indicates forthcoming content.

Published Card

Solid border indicates shipped content.

/* 19.1 — Placeholder state (dashed border) */
.research-card.placeholder{
  border: 1px dashed var(--border);
}

/* 19.4 — Published state (solid border) */
.research-card.published{
  border: 1px solid var(--border);
}

/* Placeholder text is muted */
.research-card.placeholder .research-card-title{
  color: var(--text-muted);
}

.research-card.placeholder .research-card-desc{
  color: var(--muted);
}

19.2 — Tag Pills

Topic/category tags as small pill badges. Flexbox wrap. Muted color palette. Preview of content without revealing specifics.

Design Systems CSS Architecture Tokens Accessibility Performance
/* 19.2 — Tag pills */
.research-tags{
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 16px;
}

.research-tag{
  padding: 3px 10px;
  background: var(--surface3);
  border: 1px solid var(--border);
  border-radius: var(--radius-pill);
  font-size: 11px;
  color: var(--text-dim);
  font-weight: 500;
}

/* Placeholder tags are slightly muted */
.research-card.placeholder .research-tag{
  opacity: 0.7;
}

19.3 — Coming-Soon Badge

Badge from Category 08. Positioned top-right. Pulsing dot optional. Reduced-motion: static.

Coming Soon
With pulse dot
Shipped
Published state
/* 19.3 — Coming-soon badge */
.research-badge{
  position: absolute;
  top: 16px;
  right: 16px;
}

.research-badge .badge{
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

/* Pulse dot */
.research-badge .badge .pulse-dot{
  width: 6px;
  height: 6px;
  background: var(--green);
  border-radius: 50%;
  animation: pulseGlow 2s ease-in-out infinite;
}

/* Published badge */
.research-badge .badge.published{
  background: var(--green-dim);
  color: var(--green);
  border-color: rgba(106, 170, 106, 0.2);
}

/* Reduced motion: static pulse dot */
@media (prefers-reduced-motion: reduce){
  .research-badge .badge .pulse-dot{
    animation: none;
  }
}

19.4 — Published State Transition

When research content is published, the dashed border is replaced with solid border. Coming-soon badge replaced with "Published" or "Shipped" badge. Transition is visual only — HTML structure is identical.

Before: Placeholder
Coming Soon
Research Title
After: Published
Shipped
Research Title
/* Transition is visual only — HTML structure is identical */

/* Placeholder → add .placeholder class */
<article class="research-card placeholder">
  <!-- dashed border, muted text, coming-soon badge -->
</article>

/* Published → change to .published class */
<article class="research-card published">
  <!-- solid border, normal text, shipped badge -->
</article>

/* No structural changes needed */

Complete HTML Structure

<!-- Published research card -->
<article class="research-card published">
  <div class="research-badge">
    <span class="badge published">Shipped</span>
  </div>
  <h4 class="research-card-title">Research Title</h4>
  <p class="research-card-desc">Description of the research...</p>
  <div class="research-tags">
    <span class="research-tag">Topic One</span>
    <span class="research-tag">Topic Two</span>
  </div>
  <div class="research-meta">
    <span class="research-meta-item">Jun 2026</span>
    <span class="research-meta-item">15 min read</span>
  </div>
</article>

<!-- Placeholder research card -->
<article class="research-card placeholder">
  <div class="research-badge">
    <span class="badge">
      <span class="pulse-dot"></span>
      Coming Soon
    </span>
  </div>
  <h4 class="research-card-title">Forthcoming Research</h4>
  <p class="research-card-desc">Description of planned research...</p>
  <div class="research-tags">
    <span class="research-tag">Topic</span>
  </div>
  <p class="research-placeholder-note">Research in progress</p>
</article>

Category 20 — 🎯 Conversion CTA Band

Three-path audience routing. Path cards with icons, descriptions, and CTAs. Segments users by intent without dark patterns. STANDARD Aether Cat 20

#RequirementSpecificationTier
20.1Three-Path Layout3 cards in a row (desktop) or stack (mobile). Each represents a user segment: "I want to learn", "I want to build", "I want to hire". Equal visual weight. No pre-selected "recommended" dark pattern.STANDARD
20.2Path CardsIcon + title + one-sentence description + CTA button. Consistent internal spacing. Hover: subtle lift (Category 07.3 physics). Clean, minimal, respectful.STANDARD
20.3Audience AwarenessCards address user intent, not product features. Language: "I want to..." framing. Empowering, not manipulating. Consistent with User Sovereignty commitment.STANDARD
🎛️ View Category 20 Live Demonstration

20.1–20.3 — Complete Conversion CTA Band

Three-path audience routing with equal visual weight. "I want to..." framing. No dark patterns. Hover cards to see lift effect.

What brings you here?

Choose your path. Every journey is equally valued.

I want to learn

Explore Documentation

Access tutorials, guides, and deep-dives into design systems architecture and implementation patterns.

Start Learning
I want to build

Get the Blueprint

Download the complete 24-category CSS architecture and start building production-ready design systems today.

Download Now
I want to hire

Work With Me

Review portfolio, case studies, and connect for collaboration on design systems and front-end architecture.

Contact Me

20.1 — Three-Path Layout

3 cards in a row on desktop, stack on mobile. grid-template-columns:repeat(3,1fr). Equal visual weight — no pre-selected "recommended" dark pattern.

Desktop (3 columns)
Path 1
Path 2
Path 3
Mobile (stack)
Path 1
Path 2
Path 3
/* 20.1 — Three-path grid */
.cta-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

/* Mobile: stack cards */
@media (max-width: 700px){
  .cta-grid{
    grid-template-columns: 1fr;
    gap: 16px;
  }
}

20.2 — Path Cards

Icon + title + one-sentence description + CTA button. Consistent internal spacing. Hover: subtle lift from Category 07.3 physics.

I want to...

Card Title

One-sentence description of what this path offers.

Action
/* 20.2 — Path card */
.cta-card{
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 28px 24px;
  transition: transform 0.3s, border-color 0.3s, box-shadow 0.3s;
}

.cta-card:hover{
  transform: translateY(-4px);
  border-color: var(--accent);
  box-shadow: 0 12px 40px rgba(0,0,0,0.2);
}

/* Card icon */
.cta-card-icon{
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--accent-dim);
  border-radius: var(--radius-sm);
  margin: 0 auto 16px;
  color: var(--accent);
}

/* Card content */
.cta-card-title{
  font-size: 18px;
  font-weight: 700;
  color: var(--fg);
  margin-bottom: 8px;
}

.cta-card-desc{
  font-size: 14px;
  color: var(--text-muted);
  line-height: 1.6;
  margin-bottom: 20px;
}

/* CTA button */
.cta-card .btn{
  width: 100%;
  justify-content: center;
}

20.3 — Audience Awareness

Cards address user intent, not product features. "I want to..." framing. Empowering, not manipulating. Consistent with User Sovereignty commitment.

I want to learn
User seeks knowledge
I want to build
User seeks tools
I want to hire
User seeks partnership
/* 20.3 — Audience-aware framing */
.audience-label{
  display: block;
  font-size: 12px;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 6px;
  font-weight: 500;
}

/* Usage in HTML */
<span class="audience-label">I want to learn</span>
<h4 class="cta-card-title">Explore Documentation</h4>

/* Addresses intent, not features */

No Dark Patterns

All three paths have equal visual weight. No "Recommended" badge, no larger primary button, no pre-selection. User sovereignty respected.

❌ Dark Pattern
One card larger, "Recommended" badge, different button styles, visual hierarchy manipulation
✓ User Sovereignty
Equal card sizes, same button prominence, user chooses based on intent

Complete HTML Structure

<section class="cta-band">
  <div class="cta-band-inner">
    <h3 class="cta-band-title">What brings you here?</h3>
    <p class="cta-band-subtitle">Choose your path.</p>
    
    <div class="cta-grid">
      <!-- Path 1 -->
      <article class="cta-card">
        <div class="cta-card-icon">
          <svg>...</svg>
        </div>
        <span class="audience-label">I want to learn</span>
        <h4 class="cta-card-title">Explore Documentation</h4>
        <p class="cta-card-desc">Description here.</p>
        <a href="#" class="btn btn-primary">Start Learning</a>
      </article>
      
      <!-- Path 2 -->
      <article class="cta-card">
        <div class="cta-card-icon">
          <svg>...</svg>
        </div>
        <span class="audience-label">I want to build</span>
        <h4 class="cta-card-title">Get the Blueprint</h4>
        <p class="cta-card-desc">Description here.</p>
        <a href="#" class="btn btn-accent">Download Now</a>
      </article>
      
      <!-- Path 3 -->
      <article class="cta-card">
        <div class="cta-card-icon">
          <svg>...</svg>
        </div>
        <span class="audience-label">I want to hire</span>
        <h4 class="cta-card-title">Work With Me</h4>
        <p class="cta-card-desc">Description here.</p>
        <a href="#" class="btn btn-green">Contact Me</a>
      </article>
    </div>
  </div>
</section>

Category 21 — 🦶 Footer

Three-column grid: logo/tagline, navigation columns, social links (8+ platforms). Bottom bar with copyright and attribution. Responsive stacking. STANDARD Aether Cat 21

#RequirementSpecificationTier
21.1Three-Column GridLogo + tagline (col 1), nav links (col 2), social links (col 3). grid-template-columns with responsive collapse to single column on mobile.STANDARD
21.2Identity LatticeLogo/wordmark + brief tagline. Consistent with masthead branding. Small, refined. Not competing with content above.STANDARD
21.3Social GraphLinks to 8+ platforms: GitHub, LinkedIn, Twitter/X, Discord, YouTube, etc. Icon + text or icon-only with aria-labels. Consistent spacing.STANDARD
21.4Bottom BarCopyright, attribution, build info. Top border separator. Small, muted typography. Centered or spanning full footer width.STANDARD
🎛️ View Category 21 Live Demonstration

21.1–21.4 — Complete Footer

Three-column grid with identity lattice, navigation, and social graph. Bottom bar with copyright and attribution. Responsive collapse to single column on mobile.

21.1 — Three-Column Grid

Logo + tagline (col 1), nav links (col 2), social links (col 3). grid-template-columns:1fr auto auto. Responsive collapse to single column.

Desktop Layout
Identity
Nav
Social
Mobile Layout
Identity
Nav
Social
/* 21.1 — Three-column grid */
.footer-grid{
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 40px;
  align-items: start;
}

/* Mobile: collapse to single column */
@media (max-width: 700px){
  .footer-grid{
    grid-template-columns: 1fr;
    gap: 32px;
    text-align: center;
  }
  .footer-identity{ max-width: none; }
  .footer-logo{ justify-content: center; }
  .footer-nav{ align-items: center; }
  .footer-social{ align-items: center; }
}

21.2 — Identity Lattice

Logo/wordmark + brief tagline. Consistent with masthead branding. Small, refined. Not competing with content.

/* 21.2 — Identity lattice */
.footer-identity{
  max-width: 280px;
}

.footer-logo{
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 16px;
  font-weight: 700;
  color: var(--fg);
  text-decoration: none;
  margin-bottom: 8px;
}

.footer-logo svg{
  width: 28px;
  height: 28px;
  color: var(--accent);
}

.footer-logo:hover{
  color: var(--accent);
}

.footer-tagline{
  font-size: 13px;
  color: var(--text-muted);
  line-height: 1.6;
}

21.3 — Social Graph

Links to 8+ platforms. Icon + text or icon-only with aria-label. Consistent spacing.

/* 21.3 — Social graph */
.footer-social-links{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.footer-social-link{
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  font-size: 12px;
  color: var(--text-muted);
  text-decoration: none;
  transition: border-color 0.2s, color 0.2s;
}

.footer-social-link:hover{
  border-color: var(--accent);
  color: var(--accent);
}

/* Icon-only variant */
.footer-social-link.icon-only{
  padding: 8px;
}

.footer-social-link.icon-only span{
  display: none;
}

/* Accessibility: aria-label required for icon-only */
<a href="#" class="footer-social-link icon-only" aria-label="Twitter">
  <svg>...</svg>
</a>

21.4 — Bottom Bar

Copyright, attribution, build info. Top border separator. Small, muted typography. Centered or spanning full footer width.

/* 21.4 — Bottom bar */
.footer-bottom{
  margin-top: 40px;
  padding-top: 20px;
  border-top: 1px solid var(--border-soft);
  text-align: center;
}

.footer-copyright{
  font-size: 12px;
  color: var(--muted);
  margin-bottom: 4px;
}

.footer-attribution{
  font-size: 11px;
  color: var(--text-dim);
}

.footer-attribution a{
  color: var(--text-muted);
  text-decoration: none;
}

.footer-attribution a:hover{
  color: var(--accent);
}

/* Build info */
.footer-build{
  font-size: 10px;
  color: var(--muted);
  opacity: 0.6;
  margin-top: 8px;
}

Complete HTML Structure

<footer class="footer-main">
  <div class="footer-grid-inner">
    <div class="footer-grid">
      
      <!-- 21.2 — Identity lattice -->
      <div class="footer-identity">
        <a href="/" class="footer-logo">
          <svg>...</svg>
          <span>Brand Name</span>
        </a>
        <p class="footer-tagline">Brief tagline...</p>
      </div>
      
      <!-- Navigation -->
      <nav class="footer-nav">
        <h4 class="footer-nav-title">Navigation</h4>
        <a href="#">Home</a>
        <a href="#">About</a>
        <a href="#">Work</a>
        <a href="#">Contact</a>
      </nav>
      
      <!-- 21.3 — Social graph -->
      <div class="footer-social">
        <h4 class="footer-social-title">Connect</h4>
        <div class="footer-social-links">
          <a href="#" class="footer-social-link">
            <svg>...</svg>
            <span>GitHub</span>
          </a>
          <a href="#" class="footer-social-link icon-only" aria-label="Twitter">
            <svg>...</svg>
          </a>
        </div>
      </div>
      
    </div>
    
    <!-- 21.4 — Bottom bar -->
    <div class="footer-bottom">
      <div class="footer-bottom-inner">
        <p class="footer-copyright">© 2026 Brand. All rights reserved.</p>
        <p class="footer-attribution">Built with <a href="#">Blueprint</a></p>
        <p class="footer-build">v1.0.0</p>
      </div>
    </div>
    
  </div>
</footer>

Category 22 — 🛠️ Utility Shell

Offline indicator, back-to-top button, toast notification container, and system status components. CORE Aether Cat 22

#RequirementSpecificationTier
22.1Offline IndicatorFixed banner: "You are offline. Changes saved locally." role="status". Slides in from top. Yellow/amber color. Auto-hides when online restored. CSS transition on transform.CORE
22.2Back-to-TopFixed button, bottom-right. 44×44px minimum touch target. Circular. Appears after scrolling 300px. Smooth scroll to top. aria-label="Back to top". Z-index above content, below modals.CORE
22.3Toast ContainerFixed container, top-right or bottom-right. aria-live="polite" aria-atomic="true". Toasts: success (green), error (red), info (blue), warning (amber). Include icon, message, optional action. Auto-dismiss after 4s with progress bar animation. Slide-in from right via transform:translateX.CORE
22.4Loading SpinnerCSS-only spinner. spin keyframe (Category 05.5). Centered in container. Accent color. will-change:transform. Reduced-motion: static dot or reduced animation.CORE
22.5Console BrandingStyled console.info() output with %c formatting. Displays project identity, version, contact, and repository URL. Uses the project's accent color on dark background. This is a trust signal for developers who inspect the page — it communicates that the site is intentionally architected, not generated. Include: project name, tagline, contact email, GitHub URL. Keep concise — 4–6 lines max.STANDARD
🎛️ View Category 22 Live Demonstration

22.1–22.5 — Complete Utility Shell

Four system-level components: offline indicator, back-to-top, toast notifications, and loading spinner. Plus console branding for developer trust signal.

22.1 — Offline Indicator

Fixed banner at top of viewport. Slides in when browser goes offline. Yellow/amber color. role="status" for screen readers.

You are offline. Changes saved locally.
Toggle your network to see the real indicator in action
/* 22.1 — Offline indicator */
.offline-indicator{
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  background: var(--orange);
  color: var(--bg);
  padding: 10px 20px;
  text-align: center;
  font-size: 14px;
  font-weight: 600;
  z-index: 9999;
  transform: translateY(-100%);
  transition: transform 0.3s;
}

.offline-indicator.visible{
  transform: translateY(0);
}

// JS — Network detection
window.addEventListener('offline', function(){
  offlineIndicator.classList.add('visible');
});
window.addEventListener('online', function(){
  offlineIndicator.classList.remove('visible');
});

22.2 — Back-to-Top Button

Fixed bottom-right. 44×44px touch target. Appears after scrolling 300px. Smooth scroll to top. The actual back-to-top button is visible on this page — scroll down to see it appear.

Hidden State
Visible State
Specifications:
  • Min-height: 44px × 44px
  • Appears at 300px scroll
  • z-index: 800
  • Smooth scroll on click
/* 22.2 — Back-to-top */
.back-to-top{
  position: fixed;
  bottom: 24px;
  right: 24px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--card);
  border: 1px solid var(--border);
  z-index: 800;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s, visibility 0.3s, transform 0.2s;
}

.back-to-top.visible{
  opacity: 1;
  visibility: visible;
}

// JS — Scroll detection
window.addEventListener('scroll', function(){
  if(window.scrollY > 300){
    backToTop.classList.add('visible');
  } else {
    backToTop.classList.remove('visible');
  }
}, {passive: true});

22.3 — Toast Notifications

Fixed container, top-right. aria-live="polite". Four variants: success (green), error (red), info (accent), warning (amber). Auto-dismiss with progress bar.

Toast Variants (Static Demo)
Success: Operation completed
Error: Something went wrong
Info: New feature available
Warning: Please review before proceeding
/* 22.3 — Toast container */
.toast-container{
  position: fixed;
  top: 24px;
  right: 24px;
  z-index: 900;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.toast{
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 14px 18px;
  min-width: 280px;
  max-width: 400px;
  animation: toastSlideIn 0.3s;
}

.toast.success{ border-left: 3px solid var(--green); }
.toast.error{ border-left: 3px solid var(--red); }
.toast.info{ border-left: 3px solid var(--accent); }
.toast.warning{ border-left: 3px solid var(--orange); }

.toast-progress{
  position: absolute;
  bottom: 0;
  left: 0;
  height: 3px;
  background: var(--accent);
  animation: toastProgress 4s linear forwards;
}

/* HTML */
<div class="toast-container" aria-live="polite" aria-atomic="true">
  <div class="toast success">
    <span class="toast-message">Message</span>
    <div class="toast-progress"></div>
  </div>
</div>

22.4 — Loading Spinner

CSS-only spinner using spin keyframe. Centered in container. Accent color. Three sizes: sm (16px), standard (24px), lg (40px).

Small (16px)
Standard (24px)
Large (40px)
Implementation: border + border-top-color + border-radius: 50% + spin animation
/* 22.4 — Loading spinner */
.spinner{
  width: 24px;
  height: 24px;
  border: 2px solid var(--border);
  border-top-color: var(--accent);
  border-radius: 50%;
  animation: spin 0.6s linear infinite;
  will-change: transform;
}

.spinner.sm{ width: 16px; height: 16px; border-width: 2px; }
.spinner.lg{ width: 40px; height: 40px; border-width: 3px; }

/* Uses spin keyframe from Category 05.5 */
@keyframes spin{
  from{ transform: rotate(0deg); }
  to{ transform: rotate(360deg); }
}

22.5 — Console Branding

Styled console.info() output with accent color. Trust signal for developers who inspect the page. Opens DevTools (F12) and check the Console tab — you'll see the branding message.

[ Design Systems Blueprint v1.0 ]
24-Layer CSS Architecture. Companion to Project Aether.
5 design commitments. 6 design pathways. 24 CSS categories. 5 design green gates.
Token-first. Accessibility-native. GPU-compositor-aware. WCAG 2.1 AA.
This document is the specification AND the demonstration.
// 22.5 — Console branding
console.info(
  '%c[ Design Systems Blueprint v1.0 ]%c\n\n' +
  '24-Layer CSS Architecture. Companion to Project Aether.\n' +
  '5 design commitments. 6 design pathways. 24 CSS categories.\n' +
  'Token-first. Accessibility-native. GPU-compositor-aware.\n\n' +
  'Reference: brandonbellsystems.com\n' +
  'Contact: bbell@brandonbellsystems.com',
  'color: #c880e8; font-weight: 700; font-size: 1.1em;',
  'color: #d4d4e0;'
);

Complete Utility Shell Integration

All four components work together without interference. Z-index hierarchy: toast (900) > back-to-top (800) > content.

🔴
Offline Indicator
z-index: 9999
📢
Toast Container
z-index: 900
⬆️
Back-to-Top
z-index: 800
Loading Spinner
inline element

Complete HTML Structure

<!-- 22.1 — Offline indicator -->
<div class="offline-indicator" role="status">
  You are offline. Changes saved locally.
</div>

<!-- 22.2 — Back-to-top -->
<button class="back-to-top" aria-label="Back to top">
  <svg viewBox="0 0 24 24">
    <path d="M5 15l7-7 7 7"/>
  </svg>
</button>

<!-- 22.3 — Toast container -->
<div class="toast-container" aria-live="polite" aria-atomic="true">
  <!-- Toasts injected here via JS -->
</div>

<!-- 22.4 — Loading spinner (inline) -->
<div class="spinner"></div>

<!-- 22.5 — Console branding (in JS) -->
<script>
console.info('%c[ Blueprint v1.0 ]...', 'color: #c880e8; font-weight: 700;');
</script>

Category 23 — 🖨️ Print Stylesheet

Résumé-quality print output. Force white background, black text, hide navigation/interactive elements, print link URLs, handle page breaks, gradient text fallback. STANDARD Aether Cat 23

#RequirementSpecificationTier
23.1Force White/Blackbody{background:#fff!important;color:#000!important}. Override all theme colors. Print is always light mode. Headings black. Links underlined.STANDARD
23.2Hide InteractiveNavigation, theme toggle, back-to-top, floating rail, hamburger menu — all display:none!important. Print is a document, not an application.STANDARD
23.3Print Link URLsLinks print their href after text: a[href]::after{content:" (" attr(href) ")"}. Exclude internal links, same-page anchors, and javascript: links.STANDARD
23.4Page Break ControlCards, sections, callouts: break-inside:avoid. Headings: break-after:avoid. Prevent orphans and widows. Keep related content together.STANDARD
23.5Gradient Text FallbackGradient text loses gradient in print. Force solid color: -webkit-text-fill-color:currentColor!important. Text remains readable — just loses decorative effect.STANDARD
23.6Card BordersCards retain subtle border in print (border:1px solid #ccc). Backgrounds muted to light gray. Shadows removed. Structure preserved without ink waste.STANDARD

Category 24 — 🔒 Security & Polish

Safe-area insets for notched devices, honeypot fields for bot detection, and visual polish that communicates security and attention to detail. CORE Aether Cat 24

#RequirementSpecificationTier
24.1Safe Area Insetsenv(safe-area-inset-*) applied to fixed elements (nav, floating rail, back-to-top, toast container) and body padding. Prevents content from being obscured by notches, dynamic island, or rounded corners. Requires <meta name="viewport" content="... viewport-fit=cover"> in <head> to enable. Without this meta tag, env() returns 0 on all devices. Apply to: body { padding-left: env(safe-area-inset-left); padding-right: env(safe-area-inset-right); } for general content, plus individual insets on fixed-position elements.STANDARD
24.2Honeypot FieldsHidden form field: position:absolute;opacity:0;height:0;width:0;tab-index:-1. Invisible to humans, detectable by bots. If filled, form submission rejected. Pure CSS/HTML — no JS required for hiding.CORE
24.3Security BadgeVisual indicator of encryption status, privacy guarantees, or audit results. Badge from Category 08. Trust signal placement from Category 11.4.STANDARD
24.4Content SecurityNo inline styles on production elements (all styles in stylesheet). No javascript: URLs. rel="noopener noreferrer" on external links. These are CSS-adjacent but affect the stylesheet's security posture.CORE
24.5Visual PolishConsistent border-radius, smooth transitions (200–300ms), subtle hover states, professional spacing. No visual "jank" — elements don't shift on state change unless intended. This is the "last 5%" that distinguishes production-grade CSS.PREMIUM
🎛️ View Category 24 Live Demonstration

24.1–24.5 — Security & Polish

Final category ensuring notched device support, bot protection, security signaling, and visual refinement. The "last 5%" that distinguishes production-grade CSS.

24.1 — Safe Area Insets

env(safe-area-inset-*) applied to fixed elements. Requires <meta name="viewport" content="...viewport-fit=cover"> in <head>. Without this meta tag, env() returns 0 on all devices.

Elements with safe-area-inset protection:
body
left, right, bottom
.nav, .nav-mobile
left, right (+ bottom on mobile)
.toast-container
right, top
.back-to-top
bottom, right
.rail
right
.offline-indicator
left, right, top
/* 24.1 — Safe Area Insets */
@supports (padding: max(0px)){
  body{
    padding-left: env(safe-area-inset-left);
    padding-right: env(safe-area-inset-right);
    padding-bottom: env(safe-area-inset-bottom);
  }
  
  .toast-container{
    right: calc(24px + env(safe-area-inset-right));
    top: calc(24px + env(safe-area-inset-top));
  }
  
  .back-to-top{
    bottom: calc(24px + env(safe-area-inset-bottom));
    right: calc(24px + env(safe-area-inset-right));
  }
}

/* Required meta tag in <head> */
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">

24.2 — Honeypot Fields

Hidden form field invisible to humans but visible to bots. If filled, form submission rejected. Pure CSS/HTML — no JS required for hiding.

Form with Honeypot Field:

Honeypot field exists but is invisible. Bots will see it and fill it. Humans won't.

/* 24.2 — Honeypot field */
.honeypot{
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
  tab-index: -1;
}

/* HTML implementation */
<input 
  type="text" 
  name="website" 
  class="honeypot" 
  tabindex="-1" 
  autocomplete="off" 
  aria-hidden="true"
>

/* Server-side check (pseudo-code) */
if (request.body.website !== '') {
  // Bot detected — reject submission
  return error;
}

24.3 — Security Badge

Visual indicator of encryption status, privacy guarantees, or audit results. Badge from Category 08. Trust signal placement.

SSL Secured
GDPR Compliant
No Tracking
/* 24.3 — Security badge */
.security-badge{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  background: var(--green-dim);
  border: 1px solid rgba(106,170,106,0.2);
  border-radius: var(--radius-sm);
  font-size: 12px;
  font-weight: 600;
  color: var(--green);
}

.security-badge svg{
  width: 16px;
  height: 16px;
}

24.4 — Content Security

No inline styles on production elements. No javascript: URLs. rel="noopener noreferrer" on external links. CSP header recommended.

Security Best Practices:
  • No inline styles: All styles in stylesheet, no style="" attributes
  • No javascript: URLs: All hrefs are valid URLs or fragments
  • External link safety: <a href="..." rel="noopener noreferrer">
  • CSP header: default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'
  • No external dependencies: Zero CDN fonts, zero third-party scripts
/* 24.4 — Content Security */

/* CSS: All styles in stylesheet — no inline styles */

/* HTML: External link safety */
<a href="https://external.com" rel="noopener noreferrer">
  External Link
</a>

/* HTTP Header: Content Security Policy */
Content-Security-Policy: 
  default-src 'self'; 
  script-src 'self' 'unsafe-inline'; 
  style-src 'self' 'unsafe-inline'; 
  object-src 'none'; 
  base-uri 'self'; 
  form-action 'self'; 
  upgrade-insecure-requests;

/* Already in this document's <meta> tag */

24.5 — Visual Polish

Consistent border-radius, smooth transitions, subtle hover states, professional spacing. No visual "jank" — elements don't shift on state change.

Polish Checklist:
✓ Border-radius
5 consistent tokens
✓ Transitions
4 easing curves
✓ Hover states
All interactive elements
✓ No layout shift
State changes don't reflow
✓ Compositor-only
transform/opacity
✓ Professional spacing
8 spacing tokens
/* 24.5 — Visual Polish */

/* Border-radius consistency */
--radius-sm: 6px;   /* buttons, inputs */
--radius-md: 10px;  /* cards */
--radius-lg: 14px;  /* large containers */
--radius-pill: 999px; /* badges */

/* Transition consistency */
--transition-fast: 0.15s cubic-bezier(0.32, 0.72, 0, 1);
--transition-base: 0.25s cubic-bezier(0.32, 0.72, 0, 1);

/* No jank policy */
/* State changes use transition or animation */
/* No width/height transitions (causes reflow) */
/* Transform and opacity preferred (compositor-only) */

/* Example: Button hover (no layout shift) */
.btn{
  transition: transform 0.15s, background 0.2s, border-color 0.2s;
}
.btn:hover{
  transform: translateY(-1px); /* No reflow */
}

Complete Security & Polish Integration

All five benchmarks work together to create production-grade CSS. The "last 5%" that distinguishes amateur from professional.

📱
Safe Areas
Notch support
🤖
Honeypot
Bot protection
🔒
Security
Trust signals
🛡️
Content
CSP headers
Polish
No visual jank

📋 Layer 0 Application Protocol — For Design Systems

For each project, every category must be classified: Applicable (must implement), Not Applicable (exempt with rationale), or Adapted (modified for domain). No category silently dropped. CORE = present. STANDARD = present, exemption requires rationale. PREMIUM = flagship visual parity. OPTIONAL = pull when demanded.

The 24-category CSS architecture maps directly to Project Aether's Categories 00–23 plus expanded security. Where Aether specifies what the UI must contain, this blueprint specifies how it must be styled. Both documents together provide complete coverage.

Layers 1–3

III. The 6 Derived Design Pathways

These pathways are not a menu of visual patterns. They are the necessary design consequence of holding all five design commitments simultaneously. Each pathway maps to one or more of Project Aether's 19 pathways, translating systems architecture into visual architecture.

LAYER 3: DESIGN-TO-CODE BRIDGEPathways DS-5–6 · 2 pathways
LAYER 2: CROSS-CONTEXT & ADAPTIVE SYSTEMSPathways DS-3–4 · 2 pathways
LAYER 1: CORE VISUAL SYSTEMSPathways DS-1–2 · 2 pathways

The core insight: CSS is not a styling language. It is a GPU-accelerated rendering engine with a declarative API. The 24 categories define the visual vocabulary. The 6 pathways define how that vocabulary composes into complete visual systems — from token to component to page to print. Aether Pathway ⑨

Layer 1 — Core Visual Systems

Two pathways from Token-First (①) × Deterministic CSS (②) × Accessibility-Native (③). Aether Layer 1

Token-First Architecture

Every Visual Decision Originates From a Token. No Exceptions.

Design TokensCSS Custom PropertiesSingle Source of TruthTheme-Agnostic

The design token file (:root block) is the single source of visual truth. Every color, spacing unit, radius, shadow, font stack, and easing curve is a named token. Components reference tokens — never raw values. A color change is a single-line token edit that propagates through the entire application. The token system enables dark/light parity, high-contrast mode, and brand theming from one file.

"Colors are hex codes scattered through the stylesheet. Changing the brand color requires find-and-replace across hundreds of rules. Dark mode is a separate stylesheet."→ One :root block. Semantic tokens. One change, universal propagation. Dark mode is a [data-theme] override, not a separate file.

Token Architecture Requirements

  • All visual values originate from CSS custom properties in :root
  • Semantic naming: purpose over presentation (--text-muted, not --gray-400)
  • Dark-first with light parity via [data-theme="light"]
  • Token documentation generated from the stylesheet itself
  • Design tool integration: tokens exportable to Figma, importable from Figma
  • No raw values in component CSS — only var(--token) references

Mapping to Aether

This pathway is the visual-domain equivalent of Aether's Pathway ① (Unified Computation Substrate). Where Pathway ① unifies all data operations in one WASM module, Token-First Architecture unifies all visual decisions in one token system. Both eliminate fragmentation at the architectural level. Aether PW-①

Deterministic Layout Engine

CSS Grid + Flexbox. No JavaScript for Layout. Ever.

CSS GridFlexboxContainer QueriesNo-JS Layout

Layout is a CSS concern — not a JavaScript concern. CSS Grid handles two-dimensional layouts. Flexbox handles one-dimensional flows. Container queries handle component-level responsiveness. Media queries handle page-level responsiveness. At no point does JavaScript calculate positions, measure elements, or set inline styles for layout purposes. The layout engine is deterministic: same HTML + same CSS = same layout on every device, every browser, every time.

"Modern layouts require JavaScript: Masonry grids, dynamic columns, responsive sidebars. CSS can't handle complex responsive layout without JS helpers."→ CSS Grid's auto-fill/auto-fit, Flexbox's flex-wrap, and container queries handle every layout pattern. JavaScript layout is a legacy workaround, not a requirement.

Key Requirements

  • CSS Grid for all two-dimensional layouts (card grids, page layouts, matrices)
  • Flexbox for all one-dimensional flows (nav bars, action rows, badge lists)
  • Container queries for component-level responsiveness
  • Media queries for page-level breakpoints
  • Zero JavaScript for layout calculation, measurement, or position setting
  • getBoundingClientRect() only for animation coordination — never for layout decisions

Mapping to Aether

This pathway is the visual-domain equivalent of Aether's Pathway ② (Deterministic State Engine). Where Pathway ② ensures every application state is a formal state machine, Deterministic Layout Engine ensures every layout state is a formal CSS declaration. Both eliminate "unexpected states" by construction. Aether PW-②

Layer 2 — Cross-Context & Adaptive Systems

Two pathways from GPU Compositor (⑤) × User-Controlled (④) × Accessibility-Native (③). Aether Layer 2

CSS Compositor Pipeline — The Browser's Hidden GPU

CSS Effects Are Shaders for Free. Two Independent Frame Rates. Zero JavaScript Cost.

will-changebackdrop-filterCompositor LayersIndependent Frame Rates60fps UI

The browser's hardware compositor is a parallel GPU pipeline — not a document renderer. CSS transform, opacity, and backdrop-filter are GPU-composited at virtually zero cost. The design system promotes UI overlays (navigation, modals, toasts, floating rail) to their own compositor layers via will-change:transform. These layers render at the display's native refresh rate (120fps) independent of the main content frame rate. CSS backdrop-filter:blur() is a GPU shader — it costs nothing compared to canvas or WebGL equivalents.

"Rich UI effects need JavaScript, canvas, or WebGL. Blur effects are expensive. Animations need requestAnimationFrame loops. CSS is for basic styling only."→ The browser compositor is a dedicated GPU pipeline. CSS transform, opacity, and backdrop-filter run on it at zero main-thread cost. UI renders at 120fps while content renders at its own rate. No JS required.

Compositor Strategy

  • Layer promotion: will-change:transform on fixed/sticky elements, modals, toasts, floating rail
  • Animate only compositor properties: transform and opacity. Never width, height, top, left, or margin in animations
  • backdrop-filter for glass: Navigation blur, modal scrim, overlay frosted glass. GPU-composited. Near-zero cost.
  • Independent frame rates: UI overlay at 120fps (compositor). Content at natural rate (main thread). No coupling.
  • Accessibility lives in DOM: UI rendered as DOM elements with ARIA, not canvas pixels. Screen readers see real content.

Mapping to Aether

This pathway IS Aether's Pathway ⑨ (CSS Compositor Pipeline), translated into the design systems domain. It is the direct visual implementation of Commitment ⑤ (GPU Compositor as Render Pipeline). Where Aether treats the compositor as a systems architecture concern, this pathway treats it as a design architecture concern — it's the same insight, applied to visual decisions. Aether PW-⑨

Theme Engine — User-Controlled Presentation

System Preference Detection. Persistent User Choice. Live Switching. FOUC Prevention.

prefers-color-schemedata-themelocalStorageFOUC PreventionSystem Preference Sync

The theme engine respects the user's system preference, remembers their explicit choice, and switches instantly without page reload. It prevents Flash of Unstyled Content (FOUC) during theme transitions. It listens for system preference changes and adapts live. Every visual token has a dark and light variant — no "theme-only" colors that break when the theme changes. The theme engine is not a feature; it is the architecture of color itself.

"Dark mode is a separate stylesheet. Toggling requires a page reload. System preference is ignored — the user must manually switch. FOUC is unavoidable."→ One stylesheet. Semantic tokens. data-theme attribute on <html>. System preference detected, user choice persisted. FOUC prevented via blocking script in <head>. Live switching via matchMedia listener.

Theme Engine Requirements

  • System detection: window.matchMedia('(prefers-color-scheme: dark)') at load time
  • User persistence: localStorage stores explicit choice; outranks system preference
  • FOUC prevention: Theme set via blocking <script> in <head> before first paint. CSS transition lock during theme swap
  • Live switching: matchMedia.addEventListener('change') for real-time system preference response
  • Token parity: Every token in :root has a corresponding value in [data-theme="light"]
  • Meta sync: <meta name="theme-color"> updated to match active theme for browser chrome
  • Toggle button: Accessible, labeled, with icon swap (sun/moon). Consistent placement across all views

Mapping to Aether

This pathway implements Aether's Category 37 (Theme Engine) and is the visual expression of Commitment ④ (User Sovereignty). Where Aether specifies the persistence and detection architecture, this pathway specifies the visual token architecture that makes theming possible without duplication. Aether Cat 37

Layer 3 — Design-to-Code Bridge

Two pathways that connect design tools to production CSS and ensure visual quality across the handoff. Aether Layer 3

Accessibility as Architecture — Built Into the Tokens

Contrast Ratios Guaranteed by Token Design. Focus Management in the Reset. Semantic HTML Before Styling.

WCAG 2.1 AAContrast RatiosFocus ManagementScreen ReaderForced Colors

Accessibility is not a testing phase. It is not an overlay widget. It is not a "fix at the end" concern. The design token system guarantees WCAG 2.1 AA contrast ratios by construction: every text-on-background token pair is verified at definition time. Focus indicators are in the CSS reset — not added per-component. Semantic HTML is the starting point — <button> not <div onclick>, <nav> not <div class="nav">. The design system is accessible before any component is built.

"Accessibility is checked at the end of development. Contrast issues are found by automated tools and fixed individually. Focus indicators are added per-component. ARIA labels are retrofitted onto divs."→ Token pairs are contrast-verified at definition. Focus-visible is global in the reset. Semantic HTML is mandated — divs are the last resort, not the first choice. Accessibility is architectural, not remedial.

Accessibility Architecture

  • Token-level contrast: Every --text/--bg pair meets WCAG AA (4.5:1 for normal text, 3:1 for large text)
  • Focus-visible in reset: Global :focus-visible rule. No component-by-component focus styling needed
  • Semantic-first: <button>, <nav>, <main>, <header>, <footer> are required. ARIA is supplementation, not replacement
  • Screen reader testing: Every interactive component tested with VoiceOver/NVDA. Live regions for dynamic content
  • Forced colors: All UI visible in Windows High Contrast Mode. No color-only information
  • Reduced motion: Global disable. Every animation has a static fallback
  • Touch targets: 44×44px minimum. Enforced in button and navigation systems

Mapping to Aether

This pathway spans Aether's Category 03 (Accessibility Utilities), Category 33 (Automated A11y Scanning), and Commitment ④ (User Sovereignty). It is the visual-domain implementation of the principle that accessibility is not a feature — it is the architecture. Aether Cat 03, 33

Responsive Architecture — Fluid by Default

Clamp-Based Typography. Auto-Fit Grids. Container Queries. Single Breakpoint. Mobile-First CSS.

clamp()auto-fitContainer QueriesMobile-FirstFluid

Responsive design is not a set of breakpoints. It is a continuum. Typography uses clamp() to scale smoothly between minimum and maximum sizes — no step changes at breakpoints. Layouts use auto-fit and auto-fill grids that reflow naturally — no column-count media queries. Container queries allow components to adapt to their container width, not the viewport width. The result: a single stylesheet that works on every device from 320px phones to 4K displays, with exactly one major breakpoint at 700px for structural changes (navigation collapse, padding reduction).

"Responsive design means multiple breakpoints: mobile, tablet, desktop, wide. Each breakpoint overrides styles. Components don't know their container width — only the viewport width. Typography jumps at each breakpoint."→ Fluid typography via clamp() scales continuously. Auto-fit grids reflow without breakpoints. Container queries let components adapt to their space. One structural breakpoint. Everything else is fluid.

Responsive Architecture Requirements

  • Fluid typography: clamp(min, vw, max) for all headings. Smooth scaling across all viewport widths
  • Auto-fit grids: Card layouts use repeat(auto-fit, minmax(Npx, 1fr)). No media queries for column count
  • Single breakpoint: 700px for structural changes only (navigation collapse, padding reduction)
  • Container queries: Component-level responsiveness based on parent width, not viewport width
  • Mobile-first CSS: Base styles target mobile. @media (min-width) adds complexity for larger screens
  • Viewport units: dvh, svh, lvh for full-screen sections that respect mobile browser chrome

Mapping to Aether

This pathway is the visual-domain implementation of Aether's Pathway ⑪ (Runtime Self-Optimization). Where Pathway ⑪ probes hardware and selects capability tiers, Responsive Architecture probes viewport dimensions and selects visual configurations — both are adaptive systems that reconfigure without reload. Aether PW-⑪

🔗 Design Systems Core Principle — Governing All Visual Decisions

At no point does CSS require JavaScript to produce a complete, styled, readable, navigable page. The CSS core runs at the browser's native rendering speed — before any script executes. JavaScript enhances: theme toggle persistence, scroll spy, mouse tracking, 3D tilt. But the page is complete without it. A user with JavaScript disabled sees a fully styled, fully accessible, fully navigable document.

This is not a technical constraint. It is a design principle: the visual experience is complete in CSS. Everything else is enhancement. Aether §VII — Core-First Architecture

⦿ Layer 1: CSS Core

Layout, typography, color, spacing, animation. Complete visual experience. No JS required.

◉ Layer 2: JS Enhancement

Theme toggle persistence, scroll spy, mouse tracking, 3D tilt, form validation. Optional. Non-blocking.

◎ Layer 3: Design Tooling

Token export/import, visual regression testing, documentation generation, Figma sync. Design system ecosystem.

Layer 4

IV. Design System Ecosystem — Beyond the Stylesheet

The design system is more than CSS. It includes the tooling, documentation, handoff protocols, and quality assurance that make the 24-category architecture usable by design and engineering teams. NEW

DS-A

Design Token Pipeline — Figma ↔ CSS Synchronization

Tokens are the interchange format between design and code. They flow in both directions.

Design TokensFigmaStyle DictionaryToken JSON

Specification

  • Token source of truth: CSS custom properties in :root are the canonical token definition. They are the runtime values.
  • Export path: CSS → token JSON (via Style Dictionary or custom extractor) → Figma Variables import
  • Import path: Figma Variables export → token JSON → CSS custom properties generation
  • Token categories: Color, spacing, radius, shadow, typography, easing. Each category maps to a CSS property domain.
  • Version control: Token JSON committed alongside CSS. Token changes are design changes and follow design governance (Layer -1).
  • Documentation: Token catalog auto-generated from CSS. Every token displayed with its value, swatch, and usage context.
DS-B

Component Specification — Design + Code Parity

Every component exists in both design tool and codebase. They stay in sync by construction.

Component LibraryStorybookFigma ComponentsParity

Specification

  • Component inventory: Every component in the 24 categories is documented: name, purpose, variants, states, tokens used, accessibility notes.
  • Design representation: Figma component with all variants and states. Uses the same token names as CSS.
  • Code representation: HTML + CSS snippet demonstrating the component. All states visible. Token references, not raw values.
  • Parity verification: Visual regression testing between Figma renders and browser renders. Automated where possible.
  • Storybook or equivalent: Living component catalog. Every component rendered in isolation. All states toggleable. Accessibility panel.
DS-C

Visual Regression Testing — Automated Design QA

Every CSS change is screenshot-tested against every component in every theme at every breakpoint.

Visual RegressionScreenshot TestingCI IntegrationCross-Browser

Specification

  • Screenshot baseline: Every component captured in dark + light theme, desktop + mobile, Chrome + Firefox + Safari.
  • Change detection: Pixel-diff on every CSS commit. Visual diff reviewed before merge.
  • CI integration: Fails the build if visual regression exceeds threshold. Prevents accidental visual breakage.
  • Cross-browser coverage: Minimum: Chrome, Firefox, Safari, Edge. Mobile: Safari iOS, Chrome Android.
  • Manual review: Automated diffs flagged for human review. Intentional changes approved with documentation.
DS-D

Documentation as System — Living Style Guide

The design system documents itself. Every token, component, and pattern is discoverable.

Living Style GuideAuto-GeneratedAccessibility DocsUsage Guidelines

Specification

  • Token catalog: Auto-generated from CSS. Every token: name, value, swatch, CSS variable, usage examples.
  • Component library: Every component: rendered example, HTML source, CSS source, token dependencies, accessibility audit, variants showcase.
  • Pattern library: Higher-level compositions: page layouts, card grids, navigation patterns, form layouts.
  • Accessibility guide: Per-component accessibility notes: ARIA attributes, keyboard navigation, screen reader behavior, contrast verification.
  • Usage guidelines: When to use each component, variant, or pattern. Anti-patterns documented alongside correct patterns.
  • Version history: Every design system version with changelog. Breaking changes highlighted. Migration guides provided.

🔗 Design System Ecosystem Governance

  • CSS is the runtime truth: Figma is a design tool. The stylesheet is the design system. They sync, but CSS is authoritative for what ships.
  • Documentation lives with the code: Style guide generated from the same CSS file that ships to production. No divergence between "docs" and "reality."
  • Visual regression is a gate: No CSS change merges without passing visual regression. Intentional changes are approved; unintentional changes are caught.
  • Design tokens are the contract: Designers and developers agree on tokens. Design delivers tokens. Development implements tokens. The token file is the handoff artifact.
Governance

V. Design Green Gates — Visual Production Readiness

No stylesheet is production-ready until every applicable design gate is passed. These gates validate the CSS architecture against the five design commitments. They are self-administered with evidence — not claims.

🟢 Gate 1: Token Compliance — The Stylesheet IS the Design System

  • All visual values originate from CSS custom properties. Zero hardcoded colors, spacing values, radii, shadows, or font sizes in component rules
  • Every :root token has a [data-theme="light"] counterpart. Token parity verified by automated scan
  • Semantic naming: tokens describe purpose, not presentation. --text-muted not --gray-400
  • Token documentation auto-generated and current
  • Design tool tokens match CSS tokens. Export/import round-trip verified
  • Zero !important except in print stylesheet and utility overrides (justified per instance)

🟡 Gate 2: Accessibility Architecture — WCAG 2.1 AA by Construction

  • All text/background token pairs pass WCAG AA contrast (4.5:1 normal, 3:1 large). Automated contrast audit passed
  • :focus-visible present and visible on all interactive elements. Keyboard navigation complete — every interactive element reachable and operable
  • Screen reader testing: all content announced correctly, all interactive elements have accessible names, live regions functional
  • prefers-reduced-motion: all animations disabled when active. Zero animation-only information conveyance
  • forced-colors:active: all UI visible. No color-only information
  • Skip link functional. ARIA landmarks present. Semantic HTML baseline
  • Touch targets ≥44×44px on all interactive elements
  • Automated a11y scan (axe-core) returns zero violations

🟠 Gate 3: Compositor Budget — 60fps UI, Independent Frame Rates

  • All animations use transform and opacity exclusively. Zero width, height, top, left, or margin animations in production UI
  • Fixed/sticky elements promoted to compositor layers via will-change:transform
  • backdrop-filter used for glass effects — no JS blur, no canvas blur
  • Scroll performance: zero jank on scroll. No layout-triggering properties in scroll handlers
  • Lighthouse Performance ≥90. No render-blocking CSS over 50KB
  • Reduced motion: compositor animations disabled, static rendering replaces animated states
  • Animation frame budget: no animation exceeds 16ms per frame (60fps target)

🔴 Gate 4: Responsive Continuum — Every Device, One Stylesheet

  • Typography: fluid clamp() scaling on all headings. No step-changes at breakpoints
  • Layout: auto-fit grids reflow without media queries. Single structural breakpoint at 700px
  • Mobile: 320px–428px. Content readable, navigation operable, touch targets adequate. No horizontal scroll
  • Tablet: 768px–1024px. Grid columns adjust. Navigation may expand. No layout breakage
  • Desktop: 1280px+. Full layout. All premium features visible. Max-width container prevents over-expansion
  • Dark/Light parity: every section, component, and state verified in both themes. No "dark-only" or "light-only" visual elements
  • Print: Stylesheet produces clean, readable, professional output. No interactive elements. Link URLs printed. Page breaks controlled
  • Cross-browser: Chrome, Firefox, Safari, Edge — visual parity within tolerance. Known differences documented

👑 Gate 5: Design System Integrity — The Sovereign Stylesheet

  • Single CSS file — no external dependencies, no CDN fonts, no framework imports. Opens in any browser, fully styled
  • Zero render-blocking external resources. All fonts system-native. All icons inline SVG or CSS-only
  • CSS works without JavaScript. Page is complete: styled, readable, navigable, beautiful — before any script executes
  • Design token system is the single source of visual truth. No divergence between "design file" and "production CSS"
  • CSS file size: core stylesheet under 100KB (uncompressed). Well under budget for single-file sovereignty
  • All 24 categories classified: Applicable, Not Applicable (with rationale), or Adapted. No category silently dropped
  • Design commitments trace: every category traces to at least one of the five design commitments
Build Order

VI. Design Implementation Roadmap

Each phase is a dependency for the next. Tokens before components, components before patterns, patterns before pages, pages before ecosystem. Aether §VIII — Implementation Roadmap

PhaseCore DeliverableCategoriesGate
Phase 0: Token Foundation:root token block. All color, spacing, radius, shadow, typography, easing tokens. Dark-first with light parity. Token documentation generated.01Gate 1 (partial)
Phase 1: CSS Reset & BaseReset stylesheet. Box-sizing, scroll-behavior, font-smoothing, selection, scrollbar, focus-visible. Accessibility utilities (sr-only, skip-link, forced-colors, reduced-motion).02, 03Gate 1, Gate 2 (partial)
Phase 2: Layout & TypographyContainer system. Section spacing. Auto-fit grid. Flexbox utilities. Fluid typography scale. Text-wrap. Gradient text. Monospace stack.04, 06Gate 4 (partial)
Phase 3: Core ComponentsButton system (all variants, sizes, states). Badge hierarchy. Animation keyframes. Theme engine with toggle.05, 07, 08Gate 2, Gate 3 (partial)
Phase 4: Navigation SystemsSticky navigation with backdrop-blur. Mobile hamburger. Floating rail nav with scroll spy. Skip link integration.09, 10Gate 3, Gate 4
Phase 5: Section ComponentsHero system. About section. Case study cards. Services matrix. Philosophy cards. Employers section. Product spotlight.11–17Gate 2, Gate 4
Phase 6: Interaction SystemsFAQ accordion (roving focus, keyboard nav). Conversion CTA band. Footer. Utility shell (toast, offline indicator, back-to-top).18, 20, 21, 22Gate 2, Gate 3
Phase 7: Print & SecurityPrint stylesheet. Safe-area insets. Honeypot fields. Visual polish pass. Research placeholder.19, 23, 24Gate 4, Gate 5
Phase 8: Ambient & PremiumAmbient atmosphere (CSS orbs, noise overlay). 3D tilt physics. Mouse-tracking glow. Premium visual polish.00Gate 3, Gate 5
Phase 9: EcosystemDesign token pipeline (Figma sync). Component documentation. Visual regression testing. Living style guide. Cross-browser validation.Ecosystem (L4)Gate 5
Phase 10: GoldFinal accessibility audit. Performance budget verification. Theme parity sweep. Reduced-motion verification. Forced-colors verification. Print output validation. CSS file size budget check.AllAll Gates
Reference

VII. Complete Cross-Reference — Aether ↔ Design Systems

Every Design Systems category and pathway maps to one or more Project Aether categories, pathways, or commitments. This cross-reference ensures the two blueprints function as a matched set.

Design SystemsMaps To (Aether)Relationship
Category 00 — Ambient AtmosphereCategory 00Identical specification. Visual domain implementation.
Category 01 — Design Token SystemCategory 01Identical specification. Token architecture is shared across systems and design.
Category 02 — CSS Reset + BaseCategory 02Identical specification. Reset is universal.
Category 03 — Accessibility UtilitiesCategory 03Identical specification. Accessibility is shared across domains.
Category 04 — Layout SystemCategory 04Identical specification. Layout is universal.
Category 05 — Animation KeyframesCategory 05Identical specification. Animation library is shared.
Category 06 — Typography ScaleCategory 06Identical specification. Typography is universal.
Category 07 — Button SystemCategory 07Identical specification. Interaction primitives are shared.
Category 08 — Badge HierarchyCategory 08Identical specification. Badges are shared.
Categories 09–24Categories 09–24Identical specifications. All UI categories are shared across both blueprints.
Pathway DS-1: Token-First ArchitecturePathway ① (Unified Computation Substrate)Visual-domain equivalent. Both unify fragmented systems into single sources of truth.
Pathway DS-2: Deterministic Layout EnginePathway ② (Deterministic State Engine)Visual-domain equivalent. Both eliminate "unexpected states" by construction.
Pathway DS-3: CSS Compositor PipelinePathway ⑨ (CSS Compositor Pipeline)Same pathway — systems view vs. design view.
Pathway DS-4: Theme EngineCategory 37 (Theme Engine)Visual implementation of Aether's theme persistence architecture.
Pathway DS-5: Accessibility as ArchitectureCategory 03, Category 33, Commitment ④Visual-domain implementation of accessibility-native principle.
Pathway DS-6: Responsive ArchitecturePathway ⑪ (Runtime Self-Optimization)Visual-domain equivalent. Both adapt to device capabilities without reload.
Design Green Gates 1–5Aether Green Gates 1–5Design-specific gates that complement the systems gates. Together they cover the full stack.
Design Implementation RoadmapAether Implementation RoadmapPhase 3 of Aether's roadmap is "UI Layer — 46-category CSS architecture." This blueprint is the expansion of that phase.
Governance

VIII. The Design Handoff Protocol

How design systems professionals use this blueprint with every project. The handoff from design to development is a structured protocol — not a "throw it over the wall" moment.

┌──────────────────────────────────────────────────────────────┐ │ DESIGN-TO-DEVELOPMENT HANDOFF FLOW │ │ │ │ ┌─────────────────────────┐ ┌─────────────────────────┐ │ │ │ PROJECT AETHER │ │ DESIGN SYSTEMS │ │ │ │ (Systems Architecture) │ │ BLUEPRINT (CSS Arch) │ │ │ │ │ │ │ │ │ │ 🔁 Reusable │ │ 🔁 Reusable │ │ │ │ 5 Commitments │ │ 5 Design Commitments │ │ │ │ 19 Pathways │ │ 6 Design Pathways │ │ │ │ 46 Categories │ │ 24 CSS Categories │ │ │ │ 5 Green Gates │ │ 5 Design Gates │ │ │ └───────────┬─────────────┘ └───────────┬─────────────┘ │ │ │ │ │ │ └────────────┬───────────────┘ │ │ │ │ │ ┌─────────▼──────────┐ │ │ │ SOFTWARE DESIGN │ │ │ │ SPECIFICATION │ │ │ │ (Per-Project) │ │ │ │ │ │ │ │ North Star Vision │ │ │ │ Data Models │ │ │ │ Workflows │ │ │ │ Promise Contract │ │ │ │ Freedom Contract │ │ │ └─────────┬──────────┘ │ │ │ │ │ ┌─────────▼──────────┐ │ │ │ DESIGN TOKENS │ │ │ │ (The Contract) │ │ │ │ │ │ │ │ Colors · Spacing │ │ │ │ Typography · │ │ │ │ Radii · Shadows │ │ │ │ Easing · Motion │ │ │ └─────────┬──────────┘ │ │ │ │ │ ┌─────────▼──────────┐ │ │ │ PRODUCTION CSS │ │ │ │ │ │ │ │ 24 Categories │ │ │ │ 6 Pathways │ │ │ │ 5 Gates Passed │ │ │ │ Sovereign │ │ │ │ Single File │ │ │ └────────────────────┘ │ └──────────────────────────────────────────────────────────────┘

📋 Three-File Handoff Protocol — Design Edition

The design handoff extends Aether's Two-File Protocol with a third artifact: the design token file.

FileContentOwnerFormat
File 1: Project AetherSystems architecture benchmark. Reusable across all projects.Systems ArchitectHTML (self-documenting)
File 2: Design Systems BlueprintCSS architecture benchmark. 24 categories, 6 pathways, 5 gates. Reusable across all projects.Design Systems ArchitectHTML (self-documenting)
File 3: Software Design SpecPer-project domain container. North Star vision, data models, workflows, features, contracts.Product Designer / ArchitectPer-project format
File 4: Design TokensPer-project token file. Extends the 24-category token system with project-specific tokens.Design Systems DesignerCSS Custom Properties + JSON

"Build the visual experience described in the design spec using the token system defined in the design tokens file. Comply with all 24 categories of the Design Systems Blueprint. Hold the five design commitments as invariant visual axioms. Pass all applicable Design Green Gates before declaring the front-end complete."

📋 Design Governance Cycle

1. Design Session: Designer produces the Software Design Specification following the blueprint template.

2. Token Definition: Design tokens extracted from Figma or defined in CSS. Token file committed to version control.

3. Handoff: Spec + Tokens + Blueprint → delivered to development / LLM production session.

4. Implementation: CSS built against the 24 categories, using the defined tokens, following the 6 pathways.

5. Audit: Design Green Gates applied. Visual regression tested. Accessibility scanned. Compositor budget verified.

6. Correction Loop: Failures → correction → re-audit → pass.

7. Resolution Authority: The design systems architect resolves visual conflicts. When a component implementation diverges from the token system, the token system wins — or the token system is updated with documented rationale.