{
  "$description": "Brand: Codecademy — dark mode",
  "color": {
    "swatches": {
      "$description": "Source-of-truth color swatches from palette codecademy@1.0.0",
      "navy": {
        "$value": "#10162F",
        "$type": "color",
        "$description": "Codecademy's signature deep navy. Both the body text ink on light surfaces and the canvas in dark mode."
      },
      "navy-900": {
        "$value": "#0A0D1C",
        "$type": "color",
        "$description": "Deepest navy — pressed Navy / hero anchor."
      },
      "hyper": {
        "$value": "#3A10E5",
        "$type": "color",
        "$description": "Codecademy's signature electric purple-blue. The primary brand action color on marketing surfaces."
      },
      "hyper-light": {
        "$value": "#5533FF",
        "$type": "color",
        "$description": "Slightly brighter Hyper — hover and accent moment."
      },
      "blue": {
        "$value": "#1557FF",
        "$type": "color",
        "$description": "Mid-blue accent (Gamut blue-500) — link and focus state."
      },
      "blue-light": {
        "$value": "#3388FF",
        "$type": "color",
        "$description": "Brighter blue accent (Gamut blue-400)."
      },
      "blue-300": {
        "$value": "#66C4FF",
        "$type": "color",
        "$description": "Pale info-blue (Gamut blue-300)."
      },
      "blue-pale": {
        "$value": "#D3F2FF",
        "$type": "color",
        "$description": "Pale blue surface tint (Gamut blue-100)."
      },
      "blue-0": {
        "$value": "#F5FCFF",
        "$type": "color",
        "$description": "Faintest blue surface wash (Gamut blue-0)."
      },
      "green": {
        "$value": "#008A27",
        "$type": "color",
        "$description": "Codecademy's success green (Gamut green-700)."
      },
      "green-light": {
        "$value": "#AEE938",
        "$type": "color",
        "$description": "Lime green accent (Gamut green-400) — celebration and completion."
      },
      "green-pale": {
        "$value": "#EAFDC6",
        "$type": "color",
        "$description": "Pale green surface tint (Gamut green-100)."
      },
      "green-0": {
        "$value": "#F5FFE3",
        "$type": "color",
        "$description": "Faintest green wash (Gamut green-0)."
      },
      "yellow": {
        "$value": "#FFD300",
        "$type": "color",
        "$description": "Warning / streak yellow (Gamut yellow-500)."
      },
      "yellow-dark": {
        "$value": "#CCA900",
        "$type": "color",
        "$description": "Pressed yellow (Gamut yellow-400)."
      },
      "yellow-0": {
        "$value": "#FFFAE5",
        "$type": "color",
        "$description": "Faintest yellow surface wash (Gamut yellow-0)."
      },
      "red": {
        "$value": "#E91C11",
        "$type": "color",
        "$description": "Error / destructive red (Gamut red-500)."
      },
      "red-dark": {
        "$value": "#BE1809",
        "$type": "color",
        "$description": "Pressed error red (Gamut red-600)."
      },
      "red-soft": {
        "$value": "#DC5879",
        "$type": "color",
        "$description": "Soft rose-red (Gamut red-400)."
      },
      "red-0": {
        "$value": "#FBF1F0",
        "$type": "color",
        "$description": "Faintest red surface wash (Gamut red-0)."
      },
      "pink": {
        "$value": "#F966FF",
        "$type": "color",
        "$description": "Editorial pink (Gamut pink-400)."
      },
      "orange": {
        "$value": "#FF8C00",
        "$type": "color",
        "$description": "Editorial orange (Gamut orange-500)."
      },
      "beige": {
        "$value": "#FFF0E5",
        "$type": "color",
        "$description": "Warm beige surface tint (Gamut beige-100) — used in marketing hero washes."
      },
      "white": {
        "$value": "#FFFFFF",
        "$type": "color",
        "$description": "Pure white — marketing canvas."
      },
      "gray-100": {
        "$value": "#F5F5F5",
        "$type": "color",
        "$description": "Lightest grey surface (Gamut gray-100)."
      },
      "gray-200": {
        "$value": "#EEEEEE",
        "$type": "color",
        "$description": "Light grey surface (Gamut gray-200)."
      },
      "gray-300": {
        "$value": "#E0E0E0",
        "$type": "color",
        "$description": "Border / divider grey (Gamut gray-300)."
      },
      "gray-600": {
        "$value": "#9E9E9E",
        "$type": "color",
        "$description": "Tertiary text grey (Gamut gray-600)."
      },
      "gray-800": {
        "$value": "#616161",
        "$type": "color",
        "$description": "Secondary text grey (Gamut gray-800)."
      },
      "gray-900": {
        "$value": "#424242",
        "$type": "color",
        "$description": "Deep grey (Gamut gray-900)."
      }
    },
    "roles": {
      "$description": "Semantic color roles (dark mode) mapped to palette swatches",
      "background": {
        "$value": "{color.swatches.navy}",
        "$type": "color",
        "$description": "background role → Navy"
      },
      "surface": {
        "$value": "{color.swatches.navy-900}",
        "$type": "color",
        "$description": "surface role → Navy 900"
      },
      "surface-elevated": {
        "$value": "{color.swatches.navy}",
        "$type": "color",
        "$description": "surface-elevated role → Navy"
      },
      "text-primary": {
        "$value": "{color.swatches.white}",
        "$type": "color",
        "$description": "text-primary role → White"
      },
      "text-secondary": {
        "$value": "{color.swatches.gray-300}",
        "$type": "color",
        "$description": "text-secondary role → Gray 300"
      },
      "text-tertiary": {
        "$value": "{color.swatches.gray-600}",
        "$type": "color",
        "$description": "text-tertiary role → Gray 600"
      },
      "primary": {
        "$value": "{color.swatches.hyper-light}",
        "$type": "color",
        "$description": "primary role → Hyper Light"
      },
      "primary-hover": {
        "$value": "{color.swatches.hyper}",
        "$type": "color",
        "$description": "primary-hover role → Hyper"
      },
      "accent": {
        "$value": "{color.swatches.green-light}",
        "$type": "color",
        "$description": "accent role → Green Light"
      },
      "accent-hover": {
        "$value": "{color.swatches.green}",
        "$type": "color",
        "$description": "accent-hover role → Green"
      },
      "warning": {
        "$value": "{color.swatches.yellow}",
        "$type": "color",
        "$description": "warning role → Yellow"
      },
      "warning-hover": {
        "$value": "{color.swatches.yellow-dark}",
        "$type": "color",
        "$description": "warning-hover role → Yellow Dark"
      },
      "error": {
        "$value": "{color.swatches.red-soft}",
        "$type": "color",
        "$description": "error role → Red Soft"
      },
      "success": {
        "$value": "{color.swatches.green-light}",
        "$type": "color",
        "$description": "success role → Green Light"
      },
      "border": {
        "$value": "{color.swatches.gray-900}",
        "$type": "color",
        "$description": "border role → Gray 900"
      },
      "brand-overrides": {
        "$description": "Brand-level role overrides (take precedence over palette role mappings)",
        "identity": {
          "$value": "{color.swatches.navy}",
          "$type": "color",
          "$description": "Brand role identity → Navy"
        },
        "on-identity": {
          "$value": "{color.swatches.white}",
          "$type": "color",
          "$description": "Brand role on-identity → White"
        },
        "primary": {
          "$value": "{color.swatches.hyper}",
          "$type": "color",
          "$description": "Brand role primary → Hyper"
        },
        "primary-hover": {
          "$value": "{color.swatches.hyper-light}",
          "$type": "color",
          "$description": "Brand role primary-hover → Hyper Light"
        },
        "accent": {
          "$value": "{color.swatches.green-light}",
          "$type": "color",
          "$description": "Brand role accent → Green Light"
        },
        "accent-hover": {
          "$value": "{color.swatches.green}",
          "$type": "color",
          "$description": "Brand role accent-hover → Green"
        },
        "mark": {
          "$value": "{color.swatches.hyper}",
          "$type": "color",
          "$description": "Brand role mark → Hyper"
        },
        "success": {
          "$value": "{color.swatches.green}",
          "$type": "color",
          "$description": "Brand role success → Green"
        },
        "warning": {
          "$value": "{color.swatches.yellow}",
          "$type": "color",
          "$description": "Brand role warning → Yellow"
        },
        "error": {
          "$value": "{color.swatches.red}",
          "$type": "color",
          "$description": "Brand role error → Red"
        },
        "text-primary-light": {
          "$value": "{color.swatches.navy}",
          "$type": "color",
          "$description": "Brand role text-primary-light → Navy"
        },
        "text-primary-dark": {
          "$value": "{color.swatches.white}",
          "$type": "color",
          "$description": "Brand role text-primary-dark → White"
        },
        "background-light": {
          "$value": "{color.swatches.white}",
          "$type": "color",
          "$description": "Brand role background-light → White"
        },
        "background-dark": {
          "$value": "{color.swatches.navy}",
          "$type": "color",
          "$description": "Brand role background-dark → Navy"
        },
        "surface-light": {
          "$value": "{color.swatches.gray-100}",
          "$type": "color",
          "$description": "Brand role surface-light → Gray 100"
        },
        "surface-dark": {
          "$value": "{color.swatches.navy-900}",
          "$type": "color",
          "$description": "Brand role surface-dark → Navy 900"
        },
        "text-secondary-light": {
          "$value": "{color.swatches.gray-800}",
          "$type": "color",
          "$description": "Brand role text-secondary-light → Gray 800"
        },
        "text-tertiary-light": {
          "$value": "{color.swatches.gray-600}",
          "$type": "color",
          "$description": "Brand role text-tertiary-light → Gray 600"
        },
        "border-light": {
          "$value": "{color.swatches.gray-300}",
          "$type": "color",
          "$description": "Brand role border-light → Gray 300"
        },
        "border-dark": {
          "$value": "{color.swatches.gray-900}",
          "$type": "color",
          "$description": "Brand role border-dark → Gray 900"
        }
      }
    }
  },
  "font": {
    "$description": "Typography roles mapped to font atoms",
    "heading": {
      "family": {
        "$value": [
          "Inter",
          "-apple-system",
          "BlinkMacSystemFont",
          "Segoe UI",
          "Roboto",
          "Helvetica Neue",
          "Arial",
          "sans-serif"
        ],
        "$type": "fontFamily",
        "$description": "heading role → Inter (inter@1.0.0)"
      },
      "weight": {
        "100": {
          "$value": 100,
          "$type": "fontWeight"
        },
        "200": {
          "$value": 200,
          "$type": "fontWeight"
        },
        "300": {
          "$value": 300,
          "$type": "fontWeight"
        },
        "400": {
          "$value": 400,
          "$type": "fontWeight"
        },
        "500": {
          "$value": 500,
          "$type": "fontWeight"
        },
        "600": {
          "$value": 600,
          "$type": "fontWeight"
        },
        "700": {
          "$value": 700,
          "$type": "fontWeight"
        },
        "800": {
          "$value": 800,
          "$type": "fontWeight"
        },
        "900": {
          "$value": 900,
          "$type": "fontWeight"
        },
        "$description": "Available font weights"
      }
    },
    "body": {
      "family": {
        "$value": [
          "Inter",
          "-apple-system",
          "BlinkMacSystemFont",
          "Segoe UI",
          "Roboto",
          "Helvetica Neue",
          "Arial",
          "sans-serif"
        ],
        "$type": "fontFamily",
        "$description": "body role → Inter (inter@1.0.0)"
      },
      "weight": {
        "100": {
          "$value": 100,
          "$type": "fontWeight"
        },
        "200": {
          "$value": 200,
          "$type": "fontWeight"
        },
        "300": {
          "$value": 300,
          "$type": "fontWeight"
        },
        "400": {
          "$value": 400,
          "$type": "fontWeight"
        },
        "500": {
          "$value": 500,
          "$type": "fontWeight"
        },
        "600": {
          "$value": 600,
          "$type": "fontWeight"
        },
        "700": {
          "$value": 700,
          "$type": "fontWeight"
        },
        "800": {
          "$value": 800,
          "$type": "fontWeight"
        },
        "900": {
          "$value": 900,
          "$type": "fontWeight"
        },
        "$description": "Available font weights"
      }
    },
    "mono": {
      "family": {
        "$value": [
          "Geist Mono",
          "SFMono-Regular",
          "Menlo",
          "Monaco",
          "Consolas",
          "Liberation Mono",
          "Courier New",
          "monospace"
        ],
        "$type": "fontFamily",
        "$description": "mono role → Geist Mono (geist-mono@1.0.0)"
      },
      "weight": {
        "100": {
          "$value": 100,
          "$type": "fontWeight"
        },
        "200": {
          "$value": 200,
          "$type": "fontWeight"
        },
        "300": {
          "$value": 300,
          "$type": "fontWeight"
        },
        "400": {
          "$value": 400,
          "$type": "fontWeight"
        },
        "500": {
          "$value": 500,
          "$type": "fontWeight"
        },
        "600": {
          "$value": 600,
          "$type": "fontWeight"
        },
        "700": {
          "$value": 700,
          "$type": "fontWeight"
        },
        "800": {
          "$value": 800,
          "$type": "fontWeight"
        },
        "900": {
          "$value": 900,
          "$type": "fontWeight"
        },
        "$description": "Available font weights"
      }
    }
  }
}
