/**
 * Theme: mono-keynote
 *
 * Reference: Vercel Ship Week, Next.js Conf, Geist brand decks. Pure
 * black or pure white canvas, single accent colour, geometric sans
 * typography weight 500-600 at 120-180pt, code as hero content,
 * rule-of-thirds composition with vast diagonal negative space.
 *
 * Reads as "engineering-confident" and "Swiss-minimal". The fourth
 * theme in the system, sitting alongside editorial-warm (literary),
 * tech-bold (SaaS-keynote), data-heavy (analyst).
 */
import { buildScale } from '../typography.js';

export default {
  id: 'mono-keynote',
  family: 'mono',
  description: 'Vercel / Geist energy: pure black/white, single accent, geometric sans, code as hero.',
  defaults: {
    palette:    'mono-light',
    spacing:    'airy',
    shape:      'sharp',
    background: 'solid',
  },
  typography: buildScale({
    display: 'Calibri',
    body:    'Calibri',
    mono:    'Consolas',
    sizes: {
      display:  140,        // Vercel-class hero type
      title:    52,
      subtitle: 24,
      body:     18,
      caption:  12,
      stat:     240,
      eyebrow:  11,
    },
    weights: { display: 'bold', title: 'bold', subtitle: 'normal' },
    letterSpacing: { display: -3, title: -1, eyebrow: 4 },
  }),
  archetypes: {
    hero:           { align: 'left' },
    sectionHeader:  { ruleAbove: true },
    statCallout:    { statColor: 'primary' },
    bigStat:        {},
    twoColChart:    { gridlinesOnChart: false },
  },
  decoration: {
    // mono-keynote backgrounds are intentionally restrained — the
    // typography carries the slide. Solid is the default; mesh + grid
    // are available per-slide for moments where geometry adds value.
    mesh:   { stops: 2, saturation: 'muted' },
    grid:   { lineColor: 'subtle', lineOpacity: 4, spacing: 1.0 },
    geometric: { style: 'tech', density: 'minimal' },
    noiseOpacity: 0,
  },
};
