/**
 * Theme: editorial-warm
 *
 * Reference: long-read magazines — Wired, NYT Magazine, The Atlantic.
 * Serif display + sans body; cream paper background with hairline
 * rules; sharp corners (no shadows); large breathing room; small
 * eyebrow labels above titles. Reads as "considered" and "literary".
 *
 * Best fit: research reports, design reviews, brand-story decks, any
 * narrative-driven presentation where the words carry the room.
 */
import { buildScale } from '../typography.js';

export default {
  id: 'editorial-warm',
  family: 'editorial',
  description: 'Magazine-style: serif display + sans body, generous whitespace, hairline rules, sharp corners.',
  defaults: {
    palette:    'cream-charcoal',
    spacing:    'airy',
    shape:      'sharp',
    background: 'noise',
  },
  typography: buildScale({
    display: 'Georgia',
    body:    'Calibri',
    mono:    'Consolas',
    // Sizes calibrated for "designed editorial" reading distance — the
    // hero title fills the slide; body copy is comfortably readable from
    // the back of a room. The previous scale was magazine-WEB; this is
    // magazine-CONFERENCE.
    sizes: {
      display:  96,
      title:    48,
      subtitle: 26,
      body:     20,
      caption:  13,
      stat:     220,
      eyebrow:  14,
    },
    weights: { subtitle: 'normal' },
    letterSpacing: { display: -3, title: -1.5, eyebrow: 3 },
  }),
  /** Archetype-specific tweaks. Each archetype reads `theme.archetypes[id]`
   *  with falls back to {}. Used to shift defaults without forking the
   *  whole archetype implementation. */
  archetypes: {
    hero: {
      align: 'left',
      eyebrowDivider: true,   // a tiny accent rule under the eyebrow
      drop: 'small-caps',     // titles are mixed-case, no all-caps
    },
    statCallout: {
      statColor: 'primary',
      labelStyle: 'eyebrow',
    },
    quote: {
      bigQuotes: true,        // huge serif quote marks
      attributionRule: true,  // hairline rule above attribution
    },
    sectionHeader: {
      ruleAbove: true,
    },
  },
  /** Generated-background tuning: noise opacity, mesh saturation, etc. */
  decoration: {
    noiseOpacity: 12,         // 0-100, applied to subtle dots over bg
    geometric: {
      style: 'editorial',     // small accent rules, blocks, no blobs
      density: 'sparse',
    },
    mesh: {
      stops: 3,
      saturation: 'muted',
    },
  },
};
