// ─── Design Tokens ───────────────────────────────────────────────────
// Single source of truth for all design values.
// Changing a value here should update the entire site.
// CSS custom properties in globals.css mirror these for Tailwind usage.
// ─────────────────────────────────────────────────────────────────────

/** Color palette — use Tailwind classes (e.g. `bg-tenext-dark`) when possible */
export const colors = {
  // Backgrounds
  bgDark: "#1F1F1F",
  bgCardDark: "#282828",
  bgCardBorder: "#3F3F3F",
  bgWhite: "#FFFFFF",

  // Accent
  accentTeal: "#45D0BD",
  accentBlue: "#44B6E9",
  accentRed: "#EF6464",
  accentRedHover: "#F57E7E",

  // Purple palette
  purpleStart: "#8258C8",
  purpleMid: "#6766C8",
  purpleEnd: "#2C84C8",
  cardPurple: "#343F78",
  cardPurple2: "#56619E",
  cardLavender: "#AC8DE0",

  // Text
  textMuted: "#87899B",
  textWhite: "#FFFFFF",
  textDark: "#1F1F1F",

  // Surfaces
  surfaceMuted: "#ECF0F4",
} as const;

/** Spacing tokens — predefined values only, no arbitrary px */
export const spacing = {
  /** Vertical padding for page sections */
  sectionPaddingY: {
    sm: "60px",
    md: "80px",
    lg: "100px",
    xl: "120px",
  },
  /** Horizontal page gutter */
  pageGutter: "20px",
  /** Max width for boxed containers */
  containerMaxWidth: "1260px",
  /** Container inner padding */
  containerPaddingX: "15px",
  /** Gap between cards in grids */
  cardGap: "20px",
  /** Gap between components within a section */
  componentGap: {
    sm: "30px",
    md: "40px",
    lg: "50px",
  },
} as const;

/** Border radius tokens */
export const borderRadius = {
  card: "25px",
  button: "25px",
  buttonPill: "9999px",
  tag: "15px",
  navbar: "10px",
  section: "25px",
} as const;

/** Typography scale */
export const typography = {
  hero: {
    size: "clamp(38px, 5.9vw, 100px)",
    weight: 700,
    lineHeight: 1.1,
    letterSpacing: "-0.03em",
  },
  sectionTitle: {
    size: "clamp(32px, 4vw, 56px)",
    weight: 500,
    lineHeight: 1.1,
    letterSpacing: "-0.03em",
  },
  cardTitle: {
    size: "30px",
    weight: 500,
    lineHeight: "1.16666em",
    letterSpacing: "-0.03em",
  },
  body: {
    size: "16px",
    weight: 400,
    lineHeight: 1.6,
  },
  small: {
    size: "14px",
    weight: 500,
    lineHeight: 1,
  },
  tag: {
    size: "12px",
    weight: 600,
    lineHeight: 1,
    letterSpacing: "0.1em",
    textTransform: "uppercase" as const,
  },
} as const;

/** Shadow tokens */
export const shadows = {
  cardHover:
    "0 22px 55px rgba(31, 31, 31, 0.16), 0 0 0 1px rgba(69, 208, 189, 0.22)",
  buttonHover: "0 15px 30px rgba(239, 100, 100, 0.28)",
  scrollBtn: "0 12px 30px rgba(0, 0, 0, 0.14)",
} as const;

/** Animation presets */
export const animations = {
  /** Reveal-on-scroll */
  revealDuration: "0.72s",
  revealEase: "cubic-bezier(0.22, 1, 0.36, 1)",
  /** Card / button hover */
  hoverDuration: "0.32s",
  hoverEase: "ease",
  hoverLift: "-4px",
} as const;
