Source of truth for typography, color, spacing, and every component used on the site. Updated with every change.
Five core tokens. No other colors introduced. Blue is for links only. Red is for CTAs and category pills only. Stats, headings, and body copy use black or white.
#000000--blackText, dark sections, borders#D63F18--accentCTAs and category pills only#0369fc--blueLinks only, minimal use#fafaf8--whitePage background#f2f1ed--gray-100Card backgrounds, alt sections#e0ded8--gray-200Borders, dividers#9e9b94--gray-400Labels, metadata, muted text#5a5854--gray-600Body copy minimum contrast#050505--darkHero bg, dark sections#0d0d0d--dark-surfaceCards within dark sections#1e1e1e--dark-borderBorders within dark sections--gradient-darkSubtle dark section variation--gradient-heroMain hero backgroundsRed is for action only. Never use it in headings, body copy, or decorative elements. Blue is for inline links only, not buttons, not borders. Stats are always black/white. Dark sections are pure dark, no color tints.
Three fonts, three purposes. Instrument Serif for headings. DM Mono for labels and metadata. Geist for body text. Headings are never colored: black on light, white on dark.
Predictable Software Delivery
Leaders who outsource need predictable outcomes
Italic emphasis on key words in headlines, one word maximum
--serif: 'Instrument Serif', Georgia, serifNolteOS turns 20 years of delivery data into predictable, fixed-price software delivery. Describe what you're building and get a delivery plan with 95% accuracy on scope, timeline, and cost.
Secondary body text at 15px for descriptions and supporting content.
--sans: 'Geist', system-ui, sans-serifCase Study · Healthcare · 2 Years
Insurance · Finance · Healthcare
Book Consultation →
--mono: 'DM Mono', monospaceclamp(2.5-2.75rem)Hero H1clamp(1.6-2.2rem)Section H21.5rem / 24pxCard H31.0625rem / 17pxBody0.9375rem / 15pxBody Secondary0.75rem / 12pxLabel0.6875rem / 11pxEyebrow / CategoryPrimary CTA is always Nolte Red. Text is "Book Consultation". Secondary is outlined white on dark backgrounds.
DM Mono, uppercase. Eyebrow labels are gray-400. Category pills have colored border matching industry. No filled background.
Used for value props in hero pillars section. Dark background, accent top border, white text.
Scope, cost, and timeline committed before work begins.
Monte Carlo simulation on 20 years of delivery data.
Pay per delivery. No hourly billing, no retainers.
Flow metrics, cycle time, throughput. NolteOS tracks everything.
Image top, client logo, category pill, serif heading, metrics footer. No rounded corners.
One-line description of the engagement and what was built.
Read case study →One-line description of the engagement and what was built.
Read case study →One-line description of the engagement and what was built.
Read case study →Large numbers, serif font, black. No color on the numbers themselves.
2×2 grid on dark background. Used in case study sidebars and the NolteOS page. Classes: .shot-metrics-grid, .shot-metric-card.
3-col grid on homepage. Image top (16:9), category pill, serif title, body excerpt, "Read article →" link.
Why most software projects miss deadlines and what data-driven delivery changes.
Read article →Cycle time, throughput, WIP, and work item age: the four metrics that predict delivery.
Read article →A decision framework for leaders considering their first outsourced engineering team.
Read article →3-col grid on dark background. Used in the "Who We Work With" section. Link to practice pages at /industries/[slug].
HIPAA compliance, EHR integrations, clinical workflow tools.
View practice →InsuranceMGA platforms, carrier portals, compliance-first engineering.
View practice →FinanceFintech platforms, KYC/AML systems, banking integrations.
View practice →Always on a dark background directly below the hero. Logo images: grayscale, brightness(0), opacity 0.5. No text fallbacks.
1100pxMax content width: .wide-wrap780pxBlog / prose max-width: .page-wrap100%Full-bleed sections (hero, trust bar, footer CTA)0.5remElement gap, small labels1remWithin-component spacing1.5remComponent internal padding2remContainer horizontal padding3remIntra-section gap5-6remSection spacing (vertical)CSS custom properties in :root (global.css). Prefer these over hardcoded values so new pages stay consistent.
--space-*xs .5rem · sm 1rem · md 1.5rem · lg 2rem · xl 3rem · 2xl 4rem · 3xl 5rem · 4xl 6rem--font-*h1 / h2 (fluid clamp) · h3 1.25rem · body 1rem · sm · label .75rem · eyebrow .6875rem--gray-*100 / 200 / 300 / 400 / 500 / 600 (full ramp: 300 & 500 now defined)--radius-*sharp 0 · circle 50%--shadow-*sm · md · lg--duration-*fast .15s · base .2s · slow .3s--z-*base 1 · nav 100 · modal 1000Form fields are styled globally. Wrap fields in .form-group / .form-row; inputs, labels, .form-status, and validation colors come from global.css. Pages only own their form's wrapper layout.
768pxNav collapses to hamburger. Case grid, footer grid, OS grids → single column. Hero font sizes reduce.600pxTrust logos wrap. Additional fine-tuning of spacing and typography.480pxHero h1 font size reduction. Blog grid collapses.Alternate dark and light sections. Never stack more than two dark sections consecutively. Dark sections: hero, trust bar, pillars, industry verticals, footer CTA.
Nolte Red (#D63F18) for CTAs, category pills, and accent top-borders on step cards only. Never in body copy, headings, or decorative elements.
DM Mono, uppercase, letter-spacing 0.08 to 0.12em, 0.6875 to 0.75rem. Used for: eyebrows, metadata, nav links, section numbers (01, 02...), category tags.
Cards, buttons, pills all use sharp corners (border-radius: 0). The only exception is team/founder photos which use 50% circle crop.
Real product screenshots in device frames. Team photography, not stock. Abstract geometric visuals for blog posts. No generic AI-generated imagery.
Say "predictable delivery," not "agile." Say "leaders who outsource," not "non-tech founders." Say "forecasting," not "estimation." Lead with data.
Primary CTA is always "Book Consultation" to /proof-of-partnership (the Proof of Partnership landing page, with the consultation form at the bottom). Secondary CTA is "Get a Delivery Forecast" to os.nolte.io, used only where a primary and secondary pair appears (page heroes), never in the header, footer, or pre-footer CTA. Avoid "product roadmap" wording: in this space "product" reads as the insurance product.
Use zero-padded numbers (01, 02, 03) for ordered sections via DM Mono labels. Use req-item counter pattern for requirement/process lists.
Dark hero with 2/3 : 1/3 split. Copy left aligned with the Nolte logo. Visual/graphic right-aligned to container edge. Eyebrow label → H1 → subtext → CTA buttons.
Styled HTML mock UIs, no images. All defined in global.css under /* ===== NOLTEOS MARKETING PAGE ===== */. See /about/nolteos for full examples.
.shot-windowBrowser chrome mockup (light).shot-window-darkBrowser chrome mockup (dark).shot-metrics-grid2×2 KPI card grid (dark).shot-kanbanKanban board (dark).shot-approvalsApprovals list (dark).shot-meetingMeeting/calendar block (dark).shot-delivery-colsDelivery status columns (dark).shot-progressProgress bar (used in case studies)The regression test script (scripts/regression-test.sh) is change-aware. It reads git diff and only runs tests relevant to what changed. Run --all to force the full suite.
src/styles/global.cssResponsive checks · Performancesrc/components/BaseHead.astroSEO · Analyticssrc/layouts/Base.astroSEO · Analytics · Availability · Contentsrc/pages/index.astroAvailability · Content Integrity · SEOsrc/pages/blog/* or src/content/blog/*Availability · Key Page Contentsrc/pages/work/* or src/content/work/*Availability · Key Page Contentastro.config.* / package.jsonFull suite (all 7 categories)No changes detectedFull suite (safety fallback)./scripts/regression-test.sh: auto-detect mode against production./scripts/regression-test.sh http://localhost:4321 --all: full suite against local./scripts/regression-test.sh https://nolte-site.netlify.app --all: full suite against staging