// V6 — warmer, bolder theme. Adds paper/cream palette for light mode and
// stronger editorial weights, while keeping dark mode for toggle parity.

function makeTheme(mode) {
  const dark = mode === 'dark';
  return {
    mode,
    viola: '#8b5cf6',
    violaDeep: '#6d28d9',
    violaSoft:   dark ? 'rgba(139,92,246,0.14)'   : 'rgba(139,92,246,0.10)',
    violaBorder: dark ? 'rgba(139,92,246,0.30)'   : 'rgba(139,92,246,0.34)',
    corallo: '#f43f5e',
    coralloDeep: '#e11d48',

    // Warmer cream on light; keeps ink-dark for night
    ink:   dark ? '#0b0a10' : '#f6f1e8',
    ink2:  dark ? '#12111a' : '#fbf7ef',
    ink3:  dark ? '#1b1a26' : '#ede6d6',
    paperLine: dark ? 'rgba(255,255,255,0.10)' : 'rgba(20,15,30,0.12)',
    line:  dark ? 'rgba(255,255,255,0.08)' : 'rgba(20,15,30,0.10)',
    line2: dark ? 'rgba(255,255,255,0.14)' : 'rgba(20,15,30,0.18)',
    text:  dark ? '#f5f3ff' : '#14101c',
    muted: dark ? 'rgba(245,243,255,0.62)' : 'rgba(20,16,28,0.62)',
    faint: dark ? 'rgba(245,243,255,0.35)' : 'rgba(20,16,28,0.40)',

    // Editorial weights
    hBold: 800,
    hMid:  700,

    font: '"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, system-ui, sans-serif',
    mono: 'ui-monospace, "SF Mono", Menlo, monospace',
  };
}

const ThemeCtx = React.createContext(makeTheme('light'));
const useTheme = () => React.useContext(ThemeCtx);

const LangCtx = React.createContext('it');
const useLang = () => React.useContext(LangCtx);
const useT = () => I18N[React.useContext(LangCtx)];

function useViewport() {
  const [w, setW] = React.useState(() => (typeof window !== 'undefined' ? window.innerWidth : 1200));
  React.useEffect(() => {
    const onR = () => setW(window.innerWidth);
    window.addEventListener('resize', onR);
    return () => window.removeEventListener('resize', onR);
  }, []);
  const size = w < 480 ? 'xs' : w < 768 ? 'sm' : w < 1024 ? 'md' : 'lg';
  return { w, size, isMobile: w < 768, isTablet: w < 1024 };
}

Object.assign(window, { makeTheme, ThemeCtx, useTheme, LangCtx, useLang, useT, useViewport });
