;;; subway-seat-theme.el --- A warm 1970s subway-car color theme -*- lexical-binding: t; -*-

;; Copyright (C) 2026 Oddur Sigurdsson

;; Author: Oddur Sigurdsson
;; URL: https://github.com/oddurs/subway-seat
;; Version: 0.3.0
;; Package-Requires: ((emacs "27.1"))
;; Keywords: faces, theme
;; SPDX-License-Identifier: MIT

;; This file is not part of GNU Emacs.

;; Permission is hereby granted, free of charge, to any person obtaining a copy
;; of this software and associated documentation files (the "Software"), to deal
;; in the Software without restriction, including without limitation the rights
;; to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
;; copies of the Software, and to permit persons to whom the Software is
;; furnished to do so, subject to the following conditions:
;;
;; The above copyright notice and this permission notice shall be included in all
;; copies or substantial portions of the Software.
;;
;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
;; IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
;; FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
;; AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
;; LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
;; SOFTWARE.

;;; Commentary:

;; Subway Seat: walnut-brown ground, parchment text, harvest gold, burnt
;; orange, avocado, sage and faded denim -- a 1970s subway car with shag
;; carpet, kept relaxed.  Three themes share one palette table and one face
;; list:
;;
;;   `subway-seat'         Walnut, the original dark
;;   `subway-seat-tunnel'  Tunnel, a deeper dark
;;   `subway-seat-enamel'  Enamel, the light one
;;
;; Put the three files in one folder on `load-path' and
;; `custom-theme-load-path' (or install the package), then enable one with
;;
;;   (load-theme 'subway-seat t)
;;
;; To tweak a face with the theme's colors, bind them with
;; `subway-seat-theme-with-colors':
;;
;;   (subway-seat-theme-with-colors 'subway-seat
;;     (set-face-attribute 'hl-line nil :background .surface1))
;;
;; Subway Seat — generated from palette.py by build.py. Edit the palette, not this file.

;;; Code:

(defgroup subway-seat-theme nil
  "The Subway Seat color themes."
  :group 'faces
  :prefix "subway-seat-theme-"
  :link '(url-link "https://github.com/oddurs/subway-seat"))

(defconst subway-seat-theme-palettes
  '(
    (subway-seat
     (crust           . "#20160E")
     (mantle          . "#2A1D13")
     (base            . "#362619")
     (surface0        . "#43301F")
     (surface1        . "#513B27")
     (surface2        . "#634932")
     (overlay0        . "#7B6047")
     (overlay1        . "#967B5C")
     (overlay2        . "#AE9575")
     (subtext0        . "#C4AE8C")
     (subtext1        . "#D9C6A3")
     (text            . "#EDDCBC")
     (text-hi         . "#F8ECD4")
     (yellow          . "#F3BF45")
     (yellow-hi       . "#FFD36B")
     (orange          . "#EC7F31")
     (orange-hi       . "#FF9D55")
     (red             . "#E05C45")
     (red-hi          . "#FF8373")
     (green           . "#ADB956")
     (green-hi        . "#BFCB63")
     (sage            . "#86AD95")
     (sage-hi         . "#A5C9B0")
     (denim           . "#7F9BAE")
     (denim-hi        . "#9DB6C6")
     (clay            . "#F4A87E")
     (ink             . "#20160E")
     (cursor          . "#F3BF45")
     (hl-line         . "#43301F")
     (region          . "#634932")
     (region-inactive . "#4F3927")
     (line-nr         . "#7B6047")
     (line-nr-cur     . "#F3BF45")
     (bracket         . "#FFD36B")
     (bracket-bg      . "#513B27")
     (paper           . "#43301F")
     (edge            . "#584532")
     (row             . "#584532")
     (bg-add          . "#3F3A1E")
     (bg-add-hl       . "#454121")
     (bg-add-emph     . "#504D26")
     (bg-del          . "#52281C")
     (bg-del-hl       . "#5B2C1F")
     (bg-del-emph     . "#6D3224")
     (bg-chg          . "#423117")
     (bg-chg-emph     . "#57421C")
     (bg-error        . "#4A2C1E")
     (bg-warning      . "#49351D")
     (bg-info         . "#40362E")
     (bg-hint         . "#41392A")
     (bg-search       . "#6F5426")
     (bg-search-cur   . "#915225")
     (bg-inlay        . "#3E2C1D")
     (ansi0           . "#513B27")
     (ansi1           . "#E05C45")
     (ansi2           . "#ADB956")
     (ansi3           . "#F3BF45")
     (ansi4           . "#7F9BAE")
     (ansi5           . "#EC7F31")
     (ansi6           . "#86AD95")
     (ansi7           . "#D9C6A3")
     (ansi8           . "#967B5C")
     (ansi9           . "#FF8373")
     (ansi10          . "#BFCB63")
     (ansi11          . "#FFD36B")
     (ansi12          . "#9DB6C6")
     (ansi13          . "#FF9D55")
     (ansi14          . "#A5C9B0")
     (ansi15          . "#F8ECD4"))
    (subway-seat-tunnel
     (crust           . "#140D07")
     (mantle          . "#1B120A")
     (base            . "#24180E")
     (surface0        . "#302115")
     (surface1        . "#3D2C1D")
     (surface2        . "#4F3927")
     (overlay0        . "#745B45")
     (overlay1        . "#917759")
     (overlay2        . "#AA9171")
     (subtext0        . "#C0AA88")
     (subtext1        . "#D6C3A0")
     (text            . "#E9D8B6")
     (text-hi         . "#F6EAD1")
     (yellow          . "#F3BF45")
     (yellow-hi       . "#FFD36B")
     (orange          . "#EC7F31")
     (orange-hi       . "#FF9D55")
     (red             . "#E05C45")
     (red-hi          . "#FF8373")
     (green           . "#ADB956")
     (green-hi        . "#BFCB63")
     (sage            . "#86AD95")
     (sage-hi         . "#A5C9B0")
     (denim           . "#7F9BAE")
     (denim-hi        . "#9DB6C6")
     (clay            . "#F4A87E")
     (ink             . "#140D07")
     (cursor          . "#F3BF45")
     (hl-line         . "#302115")
     (region          . "#4F3927")
     (region-inactive . "#3C2A1C")
     (line-nr         . "#745B45")
     (line-nr-cur     . "#F3BF45")
     (bracket         . "#FFD36B")
     (bracket-bg      . "#3D2C1D")
     (paper           . "#302115")
     (edge            . "#463729")
     (row             . "#463729")
     (bg-add          . "#363318")
     (bg-add-hl       . "#3C3A1C")
     (bg-add-emph     . "#484722")
     (bg-del          . "#492217")
     (bg-del-hl       . "#53261A")
     (bg-del-emph     . "#662D20")
     (bg-chg          . "#382911")
     (bg-chg-emph     . "#4E3B17")
     (bg-error        . "#3B2015")
     (bg-warning      . "#392914")
     (bg-info         . "#312A24")
     (bg-hint         . "#322D21")
     (bg-search       . "#624A1E")
     (bg-search-cur   . "#884C20")
     (bg-inlay        . "#2B1D12")
     (ansi0           . "#3D2C1D")
     (ansi1           . "#E05C45")
     (ansi2           . "#ADB956")
     (ansi3           . "#F3BF45")
     (ansi4           . "#7F9BAE")
     (ansi5           . "#EC7F31")
     (ansi6           . "#86AD95")
     (ansi7           . "#D6C3A0")
     (ansi8           . "#917759")
     (ansi9           . "#FF8373")
     (ansi10          . "#BFCB63")
     (ansi11          . "#FFD36B")
     (ansi12          . "#9DB6C6")
     (ansi13          . "#FF9D55")
     (ansi14          . "#A5C9B0")
     (ansi15          . "#F6EAD1"))
    (subway-seat-enamel
     (crust           . "#E4D8C0")
     (mantle          . "#EEE4D0")
     (base            . "#F8EFDF")
     (surface0        . "#DBCDB3")
     (surface1        . "#CBB898")
     (surface2        . "#BAA380")
     (overlay0        . "#A58D6D")
     (overlay1        . "#8C7254")
     (overlay2        . "#735C44")
     (subtext0        . "#654F3B")
     (subtext1        . "#54402F")
     (text            . "#3E2C1E")
     (text-hi         . "#2A1D13")
     (yellow          . "#976608")
     (yellow-hi       . "#A9720A")
     (orange          . "#A04800")
     (orange-hi       . "#BA4D0A")
     (red             . "#992418")
     (red-hi          . "#BF4233")
     (green           . "#66740F")
     (green-hi        . "#697813")
     (sage            . "#3E7157")
     (sage-hi         . "#4C8367")
     (denim           . "#3F6480")
     (denim-hi        . "#517791")
     (clay            . "#843811")
     (ink             . "#F8EFDF")
     (cursor          . "#A04800")
     (hl-line         . "#EEE4D0")
     (region          . "#CBB898")
     (region-inactive . "#DFD1B8")
     (line-nr         . "#A58D6D")
     (line-nr-cur     . "#A04800")
     (bracket         . "#A04800")
     (bracket-bg      . "#EBE1D1")
     (paper           . "#FCF7EF")
     (edge            . "#E1DAD1")
     (row             . "#E9E2DA")
     (bg-add          . "#D7DBC1")
     (bg-add-hl       . "#D0D4B5")
     (bg-add-emph     . "#C2C79F")
     (bg-del          . "#EBD3D1")
     (bg-del-hl       . "#E6CAC7")
     (bg-del-emph     . "#DEB9B5")
     (bg-chg          . "#E4D7BF")
     (bg-chg-emph     . "#DECEB0")
     (bg-error        . "#EDD7C7")
     (bg-warning      . "#EEE1CA")
     (bg-info         . "#DEDCD2")
     (bg-hint         . "#DEDDCC")
     (bg-search       . "#DBC69E")
     (bg-search-cur   . "#CC9C70")
     (bg-inlay        . "#E7DBC5")
     (ansi0           . "#54402F")
     (ansi1           . "#992418")
     (ansi2           . "#66740F")
     (ansi3           . "#976608")
     (ansi4           . "#3F6480")
     (ansi5           . "#A04800")
     (ansi6           . "#3E7157")
     (ansi7           . "#BAA380")
     (ansi8           . "#8C7254")
     (ansi9           . "#BF4233")
     (ansi10          . "#697813")
     (ansi11          . "#A9720A")
     (ansi12          . "#517791")
     (ansi13          . "#BA4D0A")
     (ansi14          . "#4C8367")
     (ansi15          . "#CBB898"))
    (london-moquette
     (crust           . "#121826")
     (mantle          . "#172032")
     (base            . "#1E2941")
     (surface0        . "#263451")
     (surface1        . "#303F61")
     (surface2        . "#3D4F72")
     (overlay0        . "#576685")
     (overlay1        . "#73819C")
     (overlay2        . "#8F9AB0")
     (subtext0        . "#A9B2C4")
     (subtext1        . "#C1C9D8")
     (text            . "#D8DEEA")
     (text-hi         . "#E9EDF5")
     (yellow          . "#F2C03F")
     (yellow-hi       . "#FFD36C")
     (orange          . "#DE8946")
     (orange-hi       . "#E5AA7F")
     (red             . "#DB6052")
     (red-hi          . "#FE8474")
     (green           . "#77C581")
     (green-hi        . "#9AD2A0")
     (sage            . "#54B4B5")
     (sage-hi         . "#72D1D3")
     (denim           . "#7595DA")
     (denim-hi        . "#8BB0FF")
     (clay            . "#AE9EDC")
     (ink             . "#121826")
     (cursor          . "#F2C03F")
     (hl-line         . "#263451")
     (region          . "#3D4F72")
     (region-inactive . "#2F3E5C")
     (line-nr         . "#576685")
     (line-nr-cur     . "#F2C03F")
     (bracket         . "#FFD36C")
     (bracket-bg      . "#303F61")
     (paper           . "#263451")
     (edge            . "#3C4964")
     (row             . "#3C4964")
     (bg-add          . "#283E3A")
     (bg-add-hl       . "#2C453E")
     (bg-add-emph     . "#345345")
     (bg-del          . "#462B31")
     (bg-del-hl       . "#502E33")
     (bg-del-emph     . "#623538")
     (bg-chg          . "#36332A")
     (bg-chg-emph     . "#4C442C")
     (bg-error        . "#353043")
     (bg-warning      . "#333841")
     (bg-info         . "#2A3856")
     (bg-hint         . "#263C51")
     (bg-search       . "#5E5640")
     (bg-search-cur   . "#7E5944")
     (bg-inlay        . "#23304B")
     (ansi0           . "#303F61")
     (ansi1           . "#DB6052")
     (ansi2           . "#77C581")
     (ansi3           . "#F2C03F")
     (ansi4           . "#7595DA")
     (ansi5           . "#DE8946")
     (ansi6           . "#54B4B5")
     (ansi7           . "#C1C9D8")
     (ansi8           . "#73819C")
     (ansi9           . "#FE8474")
     (ansi10          . "#9AD2A0")
     (ansi11          . "#FFD36C")
     (ansi12          . "#8BB0FF")
     (ansi13          . "#E5AA7F")
     (ansi14          . "#72D1D3")
     (ansi15          . "#E9EDF5"))
    (london-deep-level
     (crust           . "#0A0E18")
     (mantle          . "#0D1421")
     (base            . "#121A2D")
     (surface0        . "#1A243A")
     (surface1        . "#232F49")
     (surface2        . "#303E5B")
     (overlay0        . "#53617D")
     (overlay1        . "#6F7C97")
     (overlay2        . "#8B96AC")
     (subtext0        . "#A5AEC0")
     (subtext1        . "#BEC6D5")
     (text            . "#D4DAE7")
     (text-hi         . "#E7EBF3")
     (yellow          . "#F2C03F")
     (yellow-hi       . "#FFD36C")
     (orange          . "#DE8946")
     (orange-hi       . "#E5AA7F")
     (red             . "#DB6052")
     (red-hi          . "#FE8474")
     (green           . "#77C581")
     (green-hi        . "#9AD2A0")
     (sage            . "#54B4B5")
     (sage-hi         . "#72D1D3")
     (denim           . "#7595DA")
     (denim-hi        . "#8BB0FF")
     (clay            . "#AE9EDC")
     (ink             . "#0A0E18")
     (cursor          . "#F2C03F")
     (hl-line         . "#1A243A")
     (region          . "#303E5B")
     (region-inactive . "#222E46")
     (line-nr         . "#53617D")
     (line-nr-cur     . "#F2C03F")
     (bracket         . "#FFD36C")
     (bracket-bg      . "#232F49")
     (paper           . "#1A243A")
     (edge            . "#313A4F")
     (row             . "#313A4F")
     (bg-add          . "#22362F")
     (bg-add-hl       . "#273E34")
     (bg-add-emph     . "#2F4C3C")
     (bg-del          . "#402327")
     (bg-del-hl       . "#4A272A")
     (bg-del-emph     . "#5E2F2F")
     (bg-chg          . "#2F2A1E")
     (bg-chg-emph     . "#463C22")
     (bg-error        . "#2A2231")
     (bg-warning      . "#282B2F")
     (bg-info         . "#202B45")
     (bg-hint         . "#1B3040")
     (bg-search       . "#554C32")
     (bg-search-cur   . "#78523A")
     (bg-inlay        . "#172035")
     (ansi0           . "#232F49")
     (ansi1           . "#DB6052")
     (ansi2           . "#77C581")
     (ansi3           . "#F2C03F")
     (ansi4           . "#7595DA")
     (ansi5           . "#DE8946")
     (ansi6           . "#54B4B5")
     (ansi7           . "#BEC6D5")
     (ansi8           . "#6F7C97")
     (ansi9           . "#FE8474")
     (ansi10          . "#9AD2A0")
     (ansi11          . "#FFD36C")
     (ansi12          . "#8BB0FF")
     (ansi13          . "#E5AA7F")
     (ansi14          . "#72D1D3")
     (ansi15          . "#E7EBF3"))
    (london-portland
     (crust           . "#CCDAF2")
     (mantle          . "#DCE5F7")
     (base            . "#E8F0FF")
     (surface0        . "#BFCFF1")
     (surface1        . "#A8BBE2")
     (surface2        . "#93A7CF")
     (overlay0        . "#8192B4")
     (overlay1        . "#697794")
     (overlay2        . "#556179")
     (subtext0        . "#4A5469")
     (subtext1        . "#3C4557")
     (text            . "#293040")
     (text-hi         . "#1B202B")
     (yellow          . "#8D6C08")
     (yellow-hi       . "#9B770A")
     (orange          . "#A54300")
     (orange-hi       . "#AC5A00")
     (red             . "#9B211A")
     (red-hi          . "#CC2E25")
     (green           . "#0D8131")
     (green-hi        . "#008730")
     (sage            . "#007376")
     (sage-hi         . "#008688")
     (denim           . "#0019A8")
     (denim-hi        . "#4A6EBD")
     (clay            . "#755FA9")
     (ink             . "#E8F0FF")
     (cursor          . "#A54300")
     (hl-line         . "#DCE5F7")
     (region          . "#A8BBE2")
     (region-inactive . "#C5D3EF")
     (line-nr         . "#8192B4")
     (line-nr-cur     . "#A54300")
     (bracket         . "#A54300")
     (bracket-bg      . "#DBE2F2")
     (paper           . "#F4F8FF")
     (edge            . "#D7DCE4")
     (row             . "#DFE4EC")
     (bg-add          . "#C0DEC9")
     (bg-add-hl       . "#B4D8BF")
     (bg-add-emph     . "#9ECDAD")
     (bg-del          . "#EBD3D1")
     (bg-del-hl       . "#E7CAC8")
     (bg-del-emph     . "#DFB8B6")
     (bg-chg          . "#E1D9BF")
     (bg-chg-emph     . "#DBD0B0")
     (bg-error        . "#DFD7E4")
     (bg-warning      . "#DFE3E6")
     (bg-info         . "#C8D2F3")
     (bg-hint         . "#C8DEEC")
     (bg-search       . "#CDC8B5")
     (bg-search-cur   . "#C69A80")
     (bg-inlay        . "#CFDCF7")
     (ansi0           . "#3C4557")
     (ansi1           . "#9B211A")
     (ansi2           . "#0D8131")
     (ansi3           . "#8D6C08")
     (ansi4           . "#0019A8")
     (ansi5           . "#A54300")
     (ansi6           . "#007376")
     (ansi7           . "#93A7CF")
     (ansi8           . "#697794")
     (ansi9           . "#CC2E25")
     (ansi10          . "#008730")
     (ansi11          . "#9B770A")
     (ansi12          . "#4A6EBD")
     (ansi13          . "#AC5A00")
     (ansi14          . "#008688")
     (ansi15          . "#A8BBE2"))
    (paris-guimard
     (crust           . "#131A17")
     (mantle          . "#18241D")
     (base            . "#1E2E26")
     (surface0        . "#263930")
     (surface1        . "#30463B")
     (surface2        . "#3E554A")
     (overlay0        . "#586B61")
     (overlay1        . "#74857C")
     (overlay2        . "#909E96")
     (subtext0        . "#A9B5AE")
     (subtext1        . "#C2CBC5")
     (text            . "#D9E1DB")
     (text-hi         . "#E9EEEC")
     (yellow          . "#F1BF4B")
     (yellow-hi       . "#FFD57A")
     (orange          . "#CA9245")
     (orange-hi       . "#DFAA61")
     (red             . "#C7665B")
     (red-hi          . "#E7877B")
     (green           . "#70CAA9")
     (green-hi        . "#89DEBE")
     (sage            . "#549B9F")
     (sage-hi         . "#70B5B9")
     (denim           . "#709BC8")
     (denim-hi        . "#8DB6E2")
     (clay            . "#FAB49C")
     (ink             . "#131A17")
     (cursor          . "#F1BF4B")
     (hl-line         . "#263930")
     (region          . "#3E554A")
     (region-inactive . "#30433A")
     (line-nr         . "#586B61")
     (line-nr-cur     . "#F1BF4B")
     (bracket         . "#FFD57A")
     (bracket-bg      . "#30463B")
     (paper           . "#263930")
     (edge            . "#3C4D45")
     (row             . "#3C4D45")
     (bg-add          . "#274137")
     (bg-add-hl       . "#2B483D")
     (bg-add-emph     . "#335649")
     (bg-del          . "#422E29")
     (bg-del-hl       . "#4B322C")
     (bg-del-emph     . "#5B3832")
     (bg-chg          . "#37341F")
     (bg-chg-emph     . "#4D4525")
     (bg-error        . "#32352C")
     (bg-warning      . "#333C2A")
     (bg-info         . "#293D3D")
     (bg-hint         . "#263D37")
     (bg-search       . "#5D5A31")
     (bg-search-cur   . "#746036")
     (bg-inlay        . "#23352C")
     (ansi0           . "#30463B")
     (ansi1           . "#C7665B")
     (ansi2           . "#70CAA9")
     (ansi3           . "#F1BF4B")
     (ansi4           . "#709BC8")
     (ansi5           . "#CA9245")
     (ansi6           . "#549B9F")
     (ansi7           . "#C2CBC5")
     (ansi8           . "#74857C")
     (ansi9           . "#E7877B")
     (ansi10          . "#89DEBE")
     (ansi11          . "#FFD57A")
     (ansi12          . "#8DB6E2")
     (ansi13          . "#DFAA61")
     (ansi14          . "#70B5B9")
     (ansi15          . "#E9EEEC"))
    (paris-catacombes
     (crust           . "#0A100D")
     (mantle          . "#0D1711")
     (base            . "#121E19")
     (surface0        . "#1A2921")
     (surface1        . "#24342C")
     (surface2        . "#31433A")
     (overlay0        . "#54655C")
     (overlay1        . "#708178")
     (overlay2        . "#8C9A92")
     (subtext0        . "#A5B1AA")
     (subtext1        . "#BFC8C2")
     (text            . "#D4DDD7")
     (text-hi         . "#E7ECEA")
     (yellow          . "#F1BF4B")
     (yellow-hi       . "#FFD57A")
     (orange          . "#CA9245")
     (orange-hi       . "#DFAA61")
     (red             . "#C7665B")
     (red-hi          . "#E7877B")
     (green           . "#70CAA9")
     (green-hi        . "#89DEBE")
     (sage            . "#549B9F")
     (sage-hi         . "#70B5B9")
     (denim           . "#709BC8")
     (denim-hi        . "#8DB6E2")
     (clay            . "#FAB49C")
     (ink             . "#0A100D")
     (cursor          . "#F1BF4B")
     (hl-line         . "#1A2921")
     (region          . "#31433A")
     (region-inactive . "#23322B")
     (line-nr         . "#54655C")
     (line-nr-cur     . "#F1BF4B")
     (bracket         . "#FFD57A")
     (bracket-bg      . "#24342C")
     (paper           . "#1A2921")
     (edge            . "#313F37")
     (row             . "#313F37")
     (bg-add          . "#20392F")
     (bg-add-hl       . "#254136")
     (bg-add-emph     . "#2D4F42")
     (bg-del          . "#3B2621")
     (bg-del-hl       . "#442A25")
     (bg-del-emph     . "#56322C")
     (bg-chg          . "#2F2C17")
     (bg-chg-emph     . "#463E1D")
     (bg-error        . "#282721")
     (bg-warning      . "#282E1E")
     (bg-info         . "#1F3032")
     (bg-hint         . "#1B302C")
     (bg-search       . "#554E28")
     (bg-search-cur   . "#6E582F")
     (bg-inlay        . "#17251E")
     (ansi0           . "#24342C")
     (ansi1           . "#C7665B")
     (ansi2           . "#70CAA9")
     (ansi3           . "#F1BF4B")
     (ansi4           . "#709BC8")
     (ansi5           . "#CA9245")
     (ansi6           . "#549B9F")
     (ansi7           . "#BFC8C2")
     (ansi8           . "#708178")
     (ansi9           . "#E7877B")
     (ansi10          . "#89DEBE")
     (ansi11          . "#FFD57A")
     (ansi12          . "#8DB6E2")
     (ansi13          . "#DFAA61")
     (ansi14          . "#70B5B9")
     (ansi15          . "#E7ECEA"))
    (paris-carrelage
     (crust           . "#D5DBDA")
     (mantle          . "#E1E6E5")
     (base            . "#EEF2F1")
     (surface0        . "#C6D2CF")
     (surface1        . "#B0BFBB")
     (surface2        . "#99ABA6")
     (overlay0        . "#859792")
     (overlay1        . "#6C7C76")
     (overlay2        . "#56645F")
     (subtext0        . "#4A5752")
     (subtext1        . "#3B4742")
     (text            . "#27342F")
     (text-hi         . "#19221E")
     (yellow          . "#916D07")
     (yellow-hi       . "#A07A12")
     (orange          . "#764C00")
     (orange-hi       . "#885A00")
     (red             . "#88251E")
     (red-hi          . "#AC3B32")
     (green           . "#218366")
     (green-hi        . "#278D6E")
     (sage            . "#006267")
     (sage-hi         . "#027479")
     (denim           . "#25629B")
     (denim-hi        . "#3D75AD")
     (clay            . "#B36B51")
     (ink             . "#EEF2F1")
     (cursor          . "#764C00")
     (hl-line         . "#E1E6E5")
     (region          . "#B0BFBB")
     (region-inactive . "#CCD6D3")
     (line-nr         . "#859792")
     (line-nr-cur     . "#764C00")
     (bracket         . "#764C00")
     (bracket-bg      . "#E0E5E3")
     (paper           . "#F6F8F8")
     (edge            . "#D9DCDC")
     (row             . "#E1E4E4")
     (bg-add          . "#C5DFD7")
     (bg-add-hl       . "#BAD9D0")
     (bg-add-emph     . "#A6CDC2")
     (bg-del          . "#E7D3D2")
     (bg-del-hl       . "#E2CAC9")
     (bg-del-emph     . "#D9B9B7")
     (bg-chg          . "#E2D9BF")
     (bg-chg-emph     . "#DCD0B0")
     (bg-error        . "#E2D9D8")
     (bg-warning      . "#E5E5DA")
     (bg-info         . "#D2DEE5")
     (bg-hint         . "#CDDEDE")
     (bg-search       . "#D2CAAB")
     (bg-search-cur   . "#B29F78")
     (bg-inlay        . "#D6DFDD")
     (ansi0           . "#3B4742")
     (ansi1           . "#88251E")
     (ansi2           . "#218366")
     (ansi3           . "#916D07")
     (ansi4           . "#25629B")
     (ansi5           . "#764C00")
     (ansi6           . "#006267")
     (ansi7           . "#99ABA6")
     (ansi8           . "#6C7C76")
     (ansi9           . "#AC3B32")
     (ansi10          . "#278D6E")
     (ansi11          . "#A07A12")
     (ansi12          . "#3D75AD")
     (ansi13          . "#885A00")
     (ansi14          . "#027479")
     (ansi15          . "#B0BFBB")))
  "Colors for each Subway Seat theme, keyed by theme name.
Each entry maps a color key (a palette role such as `base' or
`orange', or a derived ground such as `hl-line' or `bg-add') to a
hex string.")

(defmacro subway-seat-theme-with-colors (theme &rest body)
  "Evaluate BODY with the colors of THEME bound as `.KEY' symbols.
THEME is a symbol such as `subway-seat'; see
`subway-seat-theme-palettes' for the keys, e.g. `.base' or `.orange'."
  (declare (indent 1))
  `(let-alist (alist-get ,theme subway-seat-theme-palettes) ,@body))

(defvar magit-diff-specify-hunk-foreground)

(defun subway-seat-theme--hunk-fg (color)
  "Return (:foreground COLOR) for a Magit hunk face, or nil.
Nil when `magit-diff-specify-hunk-foreground' is nil, so hunks fontified
with `magit-diff-fontify-hunk' keep their syntax colors on the diff grounds."
  (unless (and (boundp 'magit-diff-specify-hunk-foreground)
               (not magit-diff-specify-hunk-foreground))
    (list :foreground color)))

(defun subway-seat-theme--faces (theme)
  "Return face specs for THEME, as arguments to `custom-theme-set-faces'."
  (subway-seat-theme-with-colors theme
    `((default ((t (:foreground ,.text :background ,.base))))
      (cursor ((t (:background ,.cursor))))
      (region ((t (:background ,.region :extend t))))
      (secondary-selection ((t (:background ,.region-inactive :extend t))))
      (hl-line ((t (:background ,.hl-line :extend t))))
      (highlight ((t (:background ,.surface1))))
      (shadow ((t (:foreground ,.overlay1))))
      (fringe ((t (:foreground ,.overlay0 :background ,.base))))
      (line-number ((t (:foreground ,.line-nr :background ,.base))))
      (line-number-current-line ((t (:inherit line-number :foreground ,.line-nr-cur :weight bold))))
      (vertical-border ((t (:foreground ,.crust))))
      (window-divider ((t (:foreground ,.crust))))
      (window-divider-first-pixel ((t (:foreground ,.crust))))
      (window-divider-last-pixel ((t (:foreground ,.crust))))
      (internal-border ((t (:background ,.crust))))
      (child-frame-border ((t (:background ,.edge))))
      (separator-line ((t (:height 0.1 :background ,.surface2))))
      (minibuffer-prompt ((t (:foreground ,.orange :weight bold))))
      (minibuffer-nonselected ((t (:foreground ,.text-hi :background ,.region-inactive))))
      (mode-line ((t (:foreground ,.subtext1 :background ,.mantle))))
      (mode-line-inactive ((t (:foreground ,.overlay0 :background ,.crust))))
      (mode-line-buffer-id ((t (:foreground ,.text-hi :weight bold))))
      (mode-line-emphasis ((t (:foreground ,.yellow :weight bold))))
      (mode-line-highlight ((t (:foreground ,.text-hi :background ,.surface1))))
      (header-line ((t (:foreground ,.subtext0 :background ,.mantle))))
      (header-line-highlight ((t (:inherit mode-line-highlight))))
      (tooltip ((t (:foreground ,.text :background ,.paper))))
      (tty-menu-enabled-face ((t (:foreground ,.text :background ,.paper))))
      (tty-menu-disabled-face ((t (:foreground ,.overlay0 :background ,.paper))))
      (tty-menu-selected-face ((t (:foreground ,.text-hi :background ,.row :weight bold))))
      (tab-bar ((t (:foreground ,.overlay1 :background ,.crust))))
      (tab-bar-tab ((t (:foreground ,.text-hi :background ,.base :weight bold))))
      (tab-bar-tab-inactive ((t (:foreground ,.overlay1 :background ,.crust))))
      (tab-bar-tab-highlight ((t (:foreground ,.text-hi :background ,.surface1))))
      (tab-bar-tab-group-current ((t (:inherit tab-bar-tab :foreground ,.orange))))
      (tab-line ((t (:foreground ,.overlay1 :background ,.crust))))
      (tab-line-tab ((t (:foreground ,.subtext0 :background ,.mantle))))
      (tab-line-tab-current ((t (:foreground ,.text-hi :background ,.base :weight bold))))
      (tab-line-tab-inactive ((t (:foreground ,.overlay1 :background ,.crust))))
      (tab-line-highlight ((t (:background ,.surface0))))
      (link ((t (:foreground ,.denim :underline t))))
      (link-visited ((t (:foreground ,.denim-hi :underline t))))
      (button ((t (:inherit link))))
      (escape-glyph ((t (:foreground ,.clay))))
      (homoglyph ((t (:foreground ,.clay))))
      (nobreak-space ((t (:foreground ,.clay :underline t))))
      (nobreak-hyphen ((t (:foreground ,.clay))))
      (trailing-whitespace ((t (:background ,.bg-error))))
      (fill-column-indicator ((t (:foreground ,.surface0))))
      (error ((t (:foreground ,.red-hi :weight bold))))
      (warning ((t (:foreground ,.yellow :weight bold))))
      (success ((t (:foreground ,.green :weight bold))))
      (match ((t (:background ,.bg-search))))
      (isearch ((t (:foreground ,.text-hi :background ,.bg-search-cur :weight bold))))
      (isearch-fail ((t (:foreground ,.red-hi :background ,.bg-error))))
      (isearch-group-1 ((t (:foreground ,.text-hi :background ,.bg-add-emph :weight bold))))
      (isearch-group-2 ((t (:foreground ,.text-hi :background ,.bg-chg-emph :weight bold))))
      (lazy-highlight ((t (:background ,.bg-search))))
      (query-replace ((t (:inherit isearch))))
      (pulse-highlight-start-face ((t (:background ,.bg-search))))
      (pulse-highlight-face ((t (:background ,.bg-search))))
      (show-paren-match ((t (:foreground ,.bracket :background ,.bracket-bg :weight bold))))
      (show-paren-match-expression ((t (:background ,.bracket-bg))))
      (show-paren-mismatch ((t (:foreground ,.ink :background ,.red-hi :weight bold))))
      (completions-common-part ((t (:foreground ,.yellow :weight bold))))
      (completions-first-difference ((t (:foreground ,.text-hi :weight bold))))
      (completions-annotations ((t (:foreground ,.overlay1 :slant italic))))
      (completions-group-title ((t (:foreground ,.orange :slant italic))))
      (completions-highlight ((t (:background ,.surface1))))
      (completion-preview ((t (:foreground ,.overlay1))))
      (completion-preview-exact ((t (:inherit completion-preview-common :underline ,.green))))
      (icomplete-selected-match ((t (:background ,.surface1))))
      (help-key-binding ((t (:foreground ,.yellow :background ,.surface0 :box (:line-width -1 :color ,.surface1)))))
      (help-argument-name ((t (:foreground ,.subtext1 :slant italic))))
      (read-multiple-choice-face ((t (:inherit help-key-binding :weight bold :underline t))))
      (widget-field ((t (:foreground ,.text :background ,.surface0 :extend t))))
      (widget-single-line-field ((t (:inherit widget-field))))
      (widget-button ((t (:weight bold))))
      (widget-button-pressed ((t (:foreground ,.orange))))
      (widget-documentation ((t (:foreground ,.subtext0))))
      (custom-group-tag ((t (:foreground ,.orange :weight bold :height 1.2))))
      (custom-group-tag-1 ((t (:foreground ,.yellow :weight bold :height 1.2))))
      (custom-variable-tag ((t (:foreground ,.yellow :weight bold))))
      (custom-variable-obsolete ((t (:foreground ,.overlay1))))
      (custom-comment ((t (:foreground ,.subtext0 :background ,.surface0))))
      (custom-comment-tag ((t (:foreground ,.overlay1))))
      (custom-state ((t (:foreground ,.green))))
      (custom-button ((t (:foreground ,.text :background ,.surface1 :box (:line-width 1 :color ,.surface2)))))
      (custom-button-mouse ((t (:foreground ,.text-hi :background ,.surface2 :box (:line-width 1 :color ,.surface2)))))
      (custom-button-pressed ((t (:foreground ,.text-hi :background ,.surface2 :box (:line-width 1 :color ,.orange)))))
      (custom-changed ((t (:foreground ,.text-hi :background ,.bg-info))))
      (custom-modified ((t (:foreground ,.text-hi :background ,.bg-info))))
      (custom-themed ((t (:foreground ,.text-hi :background ,.bg-hint))))
      (custom-set ((t (:foreground ,.text-hi :background ,.bg-hint))))
      (custom-invalid ((t (:foreground ,.ink :background ,.red-hi))))
      (custom-rogue ((t (:foreground ,.red-hi :background ,.crust))))
      (whitespace-space ((t (:foreground ,.surface1))))
      (whitespace-hspace ((t (:foreground ,.surface1))))
      (whitespace-tab ((t (:foreground ,.surface1))))
      (whitespace-newline ((t (:foreground ,.surface1))))
      (whitespace-trailing ((t (:foreground ,.red-hi :background ,.bg-error))))
      (whitespace-line ((t (:background ,.bg-warning))))
      (whitespace-empty ((t (:background ,.bg-warning))))
      (whitespace-indentation ((t (:foreground ,.yellow :background ,.bg-warning))))
      (whitespace-space-before-tab ((t (:foreground ,.yellow :background ,.bg-warning))))
      (whitespace-space-after-tab ((t (:foreground ,.yellow :background ,.bg-warning))))
      (whitespace-big-indent ((t (:background ,.bg-error))))
      (whitespace-missing-newline-at-eof ((t (:background ,.bg-warning))))
      (font-lock-comment-face ((t (:foreground ,.overlay1 :slant italic))))
      (font-lock-comment-delimiter-face ((t (:inherit font-lock-comment-face))))
      (font-lock-doc-face ((t (:foreground ,.green :slant italic))))
      (font-lock-doc-markup-face ((t (:foreground ,.clay))))
      (font-lock-string-face ((t (:foreground ,.green))))
      (font-lock-keyword-face ((t (:foreground ,.orange))))
      (font-lock-builtin-face ((t (:foreground ,.yellow :slant italic))))
      (font-lock-function-name-face ((t (:foreground ,.yellow))))
      (font-lock-function-call-face ((t (:foreground ,.yellow))))
      (font-lock-variable-name-face ((t (:foreground ,.text))))
      (font-lock-variable-use-face ((t (:foreground ,.text))))
      (font-lock-type-face ((t (:foreground ,.sage))))
      (font-lock-constant-face ((t (:foreground ,.red-hi))))
      (font-lock-number-face ((t (:foreground ,.red-hi))))
      (font-lock-operator-face ((t (:foreground ,.overlay2))))
      (font-lock-property-name-face ((t (:foreground ,.subtext1))))
      (font-lock-property-use-face ((t (:foreground ,.subtext1))))
      (font-lock-punctuation-face ((t (:foreground ,.overlay2))))
      (font-lock-bracket-face ((t (:foreground ,.overlay2))))
      (font-lock-delimiter-face ((t (:foreground ,.overlay2))))
      (font-lock-misc-punctuation-face ((t (:foreground ,.clay))))
      (font-lock-escape-face ((t (:foreground ,.clay))))
      (font-lock-regexp-face ((t (:foreground ,.clay))))
      (font-lock-regexp-grouping-backslash ((t (:foreground ,.clay))))
      (font-lock-regexp-grouping-construct ((t (:foreground ,.clay))))
      (font-lock-preprocessor-face ((t (:foreground ,.clay))))
      (font-lock-negation-char-face ((t (:foreground ,.overlay2))))
      (font-lock-warning-face ((t (:foreground ,.yellow :weight bold))))
      (sh-heredoc ((t (:foreground ,.green))))
      (sh-quoted-exec ((t (:foreground ,.clay))))
      (elisp-shorthand-font-lock-face ((t (:foreground ,.subtext0))))
      (elisp-rx ((t (:foreground ,.clay))))
      (elisp-condition ((t (:foreground ,.red-hi))))
      (elisp-major-mode-name ((t (:foreground ,.sage))))
      (elisp-unknown-call ((t (:inherit elisp-function :foreground ,.subtext1))))
      (elisp-non-local-exit ((t (:inherit elisp-function :underline ,.red-hi))))
      (elisp-symbol-role ((t (:inherit font-lock-function-call-face))))
      (elisp-symbol-role-definition ((t (:inherit font-lock-function-name-face))))
      (elisp-symbol-at-mouse ((t (:background ,.surface1))))
      (eglot-semantic-macro ((t (:foreground ,.clay :slant italic))))
      (eglot-semantic-decorator ((t (:foreground ,.clay :slant italic))))
      (rainbow-delimiters-depth-1-face ((t (:foreground ,.yellow))))
      (rainbow-delimiters-depth-2-face ((t (:foreground ,.orange))))
      (rainbow-delimiters-depth-3-face ((t (:foreground ,.sage))))
      (rainbow-delimiters-depth-4-face ((t (:foreground ,.clay))))
      (rainbow-delimiters-depth-5-face ((t (:foreground ,.green))))
      (rainbow-delimiters-depth-6-face ((t (:foreground ,.subtext1))))
      (rainbow-delimiters-depth-7-face ((t (:foreground ,.yellow))))
      (rainbow-delimiters-depth-8-face ((t (:foreground ,.orange))))
      (rainbow-delimiters-depth-9-face ((t (:foreground ,.sage))))
      (rainbow-delimiters-unmatched-face ((t (:foreground ,.red-hi :weight bold))))
      (rainbow-delimiters-mismatched-face ((t (:foreground ,.red-hi :weight bold))))
      (hl-todo ((t (:weight bold))))
      (flyspell-incorrect ((t (:underline (:style wave :color ,.red-hi)))))
      (flyspell-duplicate ((t (:underline (:style wave :color ,.yellow)))))
      (flycheck-error ((t (:underline (:style wave :color ,.red-hi)))))
      (flycheck-warning ((t (:underline (:style wave :color ,.yellow)))))
      (flycheck-info ((t (:underline (:style wave :color ,.denim)))))
      (flycheck-fringe-error ((t (:foreground ,.red-hi))))
      (flycheck-fringe-warning ((t (:foreground ,.yellow))))
      (flycheck-fringe-info ((t (:foreground ,.denim))))
      (flycheck-error-list-error ((t (:foreground ,.red-hi))))
      (flycheck-error-list-warning ((t (:foreground ,.yellow))))
      (flycheck-error-list-info ((t (:foreground ,.denim))))
      (flycheck-error-list-highlight ((t (:background ,.surface1))))
      (flycheck-error-list-line-number ((t (:foreground ,.overlay0))))
      (flycheck-error-list-column-number ((t (:foreground ,.overlay0))))
      (flycheck-error-list-id ((t (:foreground ,.overlay1))))
      (flymake-error ((t (:underline (:style wave :color ,.red-hi)))))
      (flymake-warning ((t (:underline (:style wave :color ,.yellow)))))
      (flymake-note ((t (:underline (:style wave :color ,.denim)))))
      (flymake-error-echo-at-eol ((t (:foreground ,.red-hi :background ,.bg-error :height 0.85))))
      (flymake-warning-echo-at-eol ((t (:foreground ,.yellow :background ,.bg-warning :height 0.85))))
      (flymake-note-echo-at-eol ((t (:foreground ,.denim :background ,.bg-info :height 0.85))))
      (compilation-error ((t (:foreground ,.red-hi :weight bold))))
      (compilation-warning ((t (:foreground ,.yellow :weight bold))))
      (compilation-info ((t (:foreground ,.green))))
      (compilation-line-number ((t (:foreground ,.overlay1))))
      (compilation-column-number ((t (:foreground ,.overlay1))))
      (compilation-mode-line-exit ((t (:foreground ,.green :weight bold))))
      (compilation-mode-line-fail ((t (:foreground ,.red-hi :weight bold))))
      (compilation-mode-line-run ((t (:foreground ,.yellow))))
      (eglot-highlight-symbol-face ((t (:background ,.bracket-bg))))
      (eglot-inlay-hint-face ((t (:foreground ,.overlay1 :background ,.bg-inlay :slant italic))))
      (eglot-parameter-hint-face ((t (:inherit eglot-inlay-hint-face))))
      (eglot-type-hint-face ((t (:inherit eglot-inlay-hint-face))))
      (eglot-diagnostic-tag-unnecessary-face ((t (:foreground ,.overlay1))))
      (eglot-diagnostic-tag-deprecated-face ((t (:strike-through t))))
      (lsp-face-highlight-textual ((t (:background ,.bracket-bg))))
      (lsp-face-highlight-read ((t (:background ,.bracket-bg))))
      (lsp-face-highlight-write ((t (:background ,.bracket-bg :underline t))))
      (lsp-inlay-hint-face ((t (:foreground ,.overlay1 :background ,.bg-inlay :slant italic))))
      (lsp-ui-doc-background ((t (:background ,.paper))))
      (lsp-ui-doc-header ((t (:foreground ,.text-hi :background ,.row :weight bold))))
      (lsp-ui-doc-url ((t (:inherit link))))
      (lsp-ui-doc-highlight-hover ((t (:background ,.row))))
      (lsp-ui-peek-peek ((t (:background ,.paper))))
      (lsp-ui-peek-list ((t (:background ,.paper))))
      (lsp-ui-peek-header ((t (:foreground ,.text-hi :background ,.row :weight bold))))
      (lsp-ui-peek-footer ((t (:background ,.row))))
      (lsp-ui-peek-selection ((t (:foreground ,.text-hi :background ,.row :weight bold))))
      (lsp-ui-peek-filename ((t (:foreground ,.yellow :weight bold))))
      (lsp-ui-peek-line-number ((t (:foreground ,.line-nr))))
      (lsp-ui-peek-highlight ((t (:foreground ,.text-hi :background ,.bg-search-cur))))
      (lsp-ui-sideline-symbol ((t (:foreground ,.overlay1 :box (:line-width -1 :color ,.overlay0)))))
      (lsp-ui-sideline-current-symbol ((t (:foreground ,.yellow :weight bold :box (:line-width -1 :color ,.yellow)))))
      (lsp-ui-sideline-symbol-info ((t (:foreground ,.overlay1 :slant italic))))
      (lsp-ui-sideline-code-action ((t (:foreground ,.yellow))))
      (lsp-ui-sideline-global ((t (:background ,.hl-line))))
      (vertico-current ((t (:foreground ,.text-hi :background ,.surface1 :weight bold :extend t))))
      (vertico-group-title ((t (:foreground ,.orange :slant italic))))
      (vertico-group-separator ((t (:foreground ,.surface2 :strike-through t))))
      (vertico-multiline ((t (:foreground ,.overlay1))))
      (orderless-match-face-0 ((t (:foreground ,.yellow :weight bold))))
      (orderless-match-face-1 ((t (:foreground ,.orange :weight bold))))
      (orderless-match-face-2 ((t (:foreground ,.sage :weight bold))))
      (orderless-match-face-3 ((t (:foreground ,.clay :weight bold))))
      (marginalia-documentation ((t (:foreground ,.overlay1 :slant italic))))
      (marginalia-key ((t (:foreground ,.yellow))))
      (consult-preview-line ((t (:background ,.hl-line :extend t))))
      (consult-file ((t (:foreground ,.subtext1))))
      (corfu-default ((t (:foreground ,.subtext1 :background ,.paper))))
      (corfu-current ((t (:foreground ,.text-hi :background ,.row :weight bold :extend t))))
      (corfu-border ((t (:background ,.edge))))
      (corfu-bar ((t (:background ,.overlay0))))
      (corfu-annotations ((t (:foreground ,.overlay1 :slant italic))))
      (corfu-deprecated ((t (:foreground ,.overlay0 :strike-through t))))
      (company-tooltip ((t (:foreground ,.subtext1 :background ,.paper))))
      (company-tooltip-selection ((t (:foreground ,.text-hi :background ,.row :weight bold))))
      (company-tooltip-common ((t (:foreground ,.yellow :weight bold))))
      (company-tooltip-common-selection ((t (:foreground ,.yellow :weight bold))))
      (company-tooltip-annotation ((t (:foreground ,.overlay1 :slant italic))))
      (company-tooltip-annotation-selection ((t (:foreground ,.subtext0))))
      (company-tooltip-search ((t (:foreground ,.text-hi :background ,.bg-search))))
      (company-tooltip-search-selection ((t (:foreground ,.text-hi :background ,.bg-search-cur))))
      (company-tooltip-mouse ((t (:background ,.row))))
      (company-tooltip-scrollbar-thumb ((t (:background ,.overlay0))))
      (company-tooltip-scrollbar-track ((t (:background ,.edge))))
      (company-scrollbar-fg ((t (:background ,.overlay0))))
      (company-scrollbar-bg ((t (:background ,.edge))))
      (company-preview ((t (:foreground ,.overlay0 :slant italic))))
      (company-preview-common ((t (:foreground ,.overlay1 :slant italic))))
      (company-preview-search ((t (:foreground ,.text-hi :background ,.bg-search))))
      (company-echo-common ((t (:foreground ,.yellow))))
      (eldoc-box-body ((t (:foreground ,.text :background ,.paper))))
      (eldoc-box-border ((t (:background ,.edge))))
      (ivy-current-match ((t (:foreground ,.text-hi :background ,.surface1 :weight bold :extend t))))
      (ivy-minibuffer-match-face-1 ((t (:foreground ,.overlay1))))
      (ivy-minibuffer-match-face-2 ((t (:foreground ,.yellow :weight bold))))
      (ivy-minibuffer-match-face-3 ((t (:foreground ,.orange :weight bold))))
      (ivy-minibuffer-match-face-4 ((t (:foreground ,.sage :weight bold))))
      (ivy-subdir ((t (:foreground ,.yellow))))
      (ivy-remote ((t (:foreground ,.denim))))
      (helm-header ((t (:foreground ,.subtext0 :background ,.mantle :extend t))))
      (helm-source-header ((t (:foreground ,.orange :background ,.mantle :weight bold :extend t))))
      (helm-selection ((t (:foreground ,.text-hi :background ,.surface1 :weight bold :extend t))))
      (helm-visible-mark ((t (:foreground ,.text-hi :background ,.bg-search :extend t))))
      (helm-match ((t (:foreground ,.yellow :weight bold))))
      (helm-candidate-number ((t (:foreground ,.yellow))))
      (helm-separator ((t (:foreground ,.overlay0))))
      (helm-action ((t (:foreground ,.subtext1))))
      (helm-prefarg ((t (:foreground ,.orange))))
      (helm-minibuffer-prompt ((t (:foreground ,.orange :weight bold))))
      (helm-dim-prompt ((t (:foreground ,.overlay0))))
      (helm-ff-directory ((t (:foreground ,.yellow))))
      (helm-ff-dotted-directory ((t (:foreground ,.overlay1))))
      (helm-ff-file ((t (:foreground ,.subtext1))))
      (helm-ff-file-extension ((t (:foreground ,.overlay2))))
      (helm-ff-executable ((t (:foreground ,.green))))
      (helm-ff-symlink ((t (:foreground ,.denim))))
      (helm-ff-invalid-symlink ((t (:foreground ,.red-hi :background ,.bg-error))))
      (helm-ff-prefix ((t (:foreground ,.ink :background ,.yellow))))
      (which-key-key-face ((t (:foreground ,.yellow))))
      (which-key-separator-face ((t (:foreground ,.overlay0))))
      (which-key-group-description-face ((t (:foreground ,.orange))))
      (which-key-command-description-face ((t (:foreground ,.subtext1))))
      (which-key-local-map-description-face ((t (:foreground ,.sage))))
      (which-key-special-key-face ((t (:foreground ,.clay :weight bold))))
      (which-key-highlighted-command-face ((t (:foreground ,.text-hi :underline t))))
      (which-key-note-face ((t (:foreground ,.overlay1 :slant italic))))
      (which-key-docstring-face ((t (:foreground ,.overlay1 :slant italic))))
      (transient-heading ((t (:foreground ,.orange :weight bold))))
      (transient-key ((t (:foreground ,.yellow))))
      (transient-value ((t (:foreground ,.green))))
      (transient-inactive-argument ((t (:foreground ,.overlay0))))
      (transient-inactive-value ((t (:foreground ,.overlay0))))
      (transient-unreachable ((t (:foreground ,.overlay0))))
      (transient-enabled-suffix ((t (:foreground ,.ink :background ,.green :weight bold))))
      (transient-disabled-suffix ((t (:foreground ,.ink :background ,.red-hi :weight bold))))
      (avy-lead-face ((t (:foreground ,.ink :background ,.orange :weight bold))))
      (avy-lead-face-0 ((t (:foreground ,.ink :background ,.yellow :weight bold))))
      (avy-lead-face-1 ((t (:foreground ,.text-hi :background ,.surface2))))
      (avy-lead-face-2 ((t (:foreground ,.ink :background ,.clay :weight bold))))
      (avy-background-face ((t (:foreground ,.overlay0))))
      (evil-ex-search ((t (:inherit isearch))))
      (evil-ex-lazy-highlight ((t (:inherit lazy-highlight))))
      (evil-ex-substitute-matches ((t (:foreground ,.red-hi :strike-through t))))
      (evil-ex-substitute-replacement ((t (:foreground ,.green :weight bold))))
      (diff-added ((t (:background ,.bg-add :extend t))))
      (diff-removed ((t (:background ,.bg-del :extend t))))
      (diff-changed ((t (:background ,.bg-chg :extend t))))
      (diff-changed-unspecified ((t (:background ,.bg-chg :extend t))))
      (diff-refine-added ((t (:background ,.bg-add-emph))))
      (diff-refine-removed ((t (:background ,.bg-del-emph))))
      (diff-refine-changed ((t (:background ,.bg-chg-emph))))
      (diff-indicator-added ((t (:foreground ,.green :weight bold))))
      (diff-indicator-removed ((t (:foreground ,.red-hi :weight bold))))
      (diff-indicator-changed ((t (:foreground ,.yellow :weight bold))))
      (diff-header ((t (:foreground ,.subtext1 :background ,.mantle :extend t))))
      (diff-file-header ((t (:foreground ,.text-hi :background ,.mantle :weight bold :extend t))))
      (diff-hunk-header ((t (:foreground ,.denim :background ,.surface0 :extend t))))
      (diff-context ((t (:foreground ,.subtext0))))
      (diff-function ((t (:foreground ,.yellow))))
      (diff-nonexistent ((t (:foreground ,.overlay0))))
      (diff-error ((t (:foreground ,.red-hi :weight bold))))
      (magit-section-heading ((t (:foreground ,.yellow :weight bold))))
      (magit-section-heading-selection ((t (:foreground ,.orange :weight bold))))
      (magit-section-secondary-heading ((t (:foreground ,.sage :weight bold))))
      (magit-section-highlight ((t (:background ,.hl-line :extend t))))
      (magit-branch-local ((t (:foreground ,.yellow))))
      (magit-branch-current ((t (:foreground ,.yellow :weight bold))))
      (magit-branch-remote ((t (:foreground ,.sage))))
      (magit-branch-remote-head ((t (:foreground ,.sage :weight bold))))
      (magit-head ((t (:foreground ,.yellow :weight bold))))
      (magit-tag ((t (:foreground ,.clay))))
      (magit-hash ((t (:foreground ,.overlay1))))
      (magit-dimmed ((t (:foreground ,.overlay0))))
      (magit-filename ((t (:foreground ,.subtext1))))
      (magit-keyword ((t (:foreground ,.orange))))
      (magit-diff-added ((t (:background ,.bg-add :extend t ,@(subway-seat-theme--hunk-fg .green)))))
      (magit-diff-added-highlight ((t (:background ,.bg-add-hl :extend t ,@(subway-seat-theme--hunk-fg .green)))))
      (magit-diff-removed ((t (:background ,.bg-del :extend t ,@(subway-seat-theme--hunk-fg .red-hi)))))
      (magit-diff-removed-highlight ((t (:background ,.bg-del-hl :extend t ,@(subway-seat-theme--hunk-fg .red-hi)))))
      (magit-diff-base ((t (:background ,.bg-chg :extend t ,@(subway-seat-theme--hunk-fg .yellow)))))
      (magit-diff-base-highlight ((t (:background ,.bg-chg-emph :extend t ,@(subway-seat-theme--hunk-fg .yellow)))))
      (magit-diff-context ((t (:extend t ,@(subway-seat-theme--hunk-fg .overlay2)))))
      (magit-diff-context-highlight ((t (:background ,.mantle :extend t ,@(subway-seat-theme--hunk-fg .subtext0)))))
      (magit-diff-added-indicator ((t (:foreground ,.green :weight bold))))
      (magit-diff-removed-indicator ((t (:foreground ,.red-hi :weight bold))))
      (magit-diff-base-indicator ((t (:foreground ,.yellow :weight bold))))
      (magit-diff-hunk-heading ((t (:foreground ,.subtext1 :background ,.surface0 :extend t))))
      (magit-diff-hunk-heading-highlight ((t (:foreground ,.text-hi :background ,.surface1 :weight bold :extend t))))
      (magit-diff-hunk-heading-selection ((t (:inherit magit-diff-hunk-heading-highlight :foreground ,.orange))))
      (magit-diff-hunk-region ((t (:inherit bold :extend t))))
      (magit-diff-conflict-heading ((t (:inherit magit-diff-hunk-heading :foreground ,.orange))))
      (magit-diff-conflict-heading-highlight ((t (:inherit magit-diff-hunk-heading-highlight :foreground ,.orange))))
      (magit-diff-file-heading ((t (:foreground ,.text-hi :weight bold))))
      (magit-diff-file-heading-highlight ((t (:inherit magit-section-highlight))))
      (magit-diff-file-heading-selection ((t (:inherit magit-diff-file-heading-highlight :foreground ,.orange))))
      (magit-diff-lines-heading ((t (:foreground ,.ink :background ,.orange :extend t))))
      (magit-diff-lines-boundary ((t (:background ,.orange))))
      (magit-diff-revision-summary ((t (:inherit magit-diff-hunk-heading))))
      (magit-diff-revision-summary-highlight ((t (:inherit magit-diff-hunk-heading-highlight))))
      (magit-diff-whitespace-warning ((t (:background ,.bg-error))))
      (magit-diffstat-added ((t (:foreground ,.green))))
      (magit-diffstat-removed ((t (:foreground ,.red-hi))))
      (magit-log-author ((t (:foreground ,.clay))))
      (magit-log-date ((t (:foreground ,.overlay1))))
      (magit-log-graph ((t (:foreground ,.overlay1))))
      (magit-process-ok ((t (:foreground ,.green :weight bold))))
      (magit-process-ng ((t (:foreground ,.red-hi :weight bold))))
      (magit-blame-heading ((t (:foreground ,.subtext0 :background ,.surface0 :extend t))))
      (magit-blame-highlight ((t (:foreground ,.subtext0 :background ,.surface0 :extend t))))
      (magit-signature-good ((t (:foreground ,.green))))
      (magit-signature-bad ((t (:foreground ,.red-hi :weight bold))))
      (magit-signature-untrusted ((t (:foreground ,.yellow))))
      (magit-mode-line-process ((t (:foreground ,.yellow))))
      (smerge-upper ((t (:background ,.bg-del :extend t))))
      (smerge-lower ((t (:background ,.bg-add :extend t))))
      (smerge-base ((t (:background ,.bg-chg :extend t))))
      (smerge-markers ((t (:foreground ,.overlay1 :background ,.surface0 :extend t))))
      (smerge-refined-added ((t (:background ,.bg-add-emph))))
      (smerge-refined-removed ((t (:background ,.bg-del-emph))))
      (smerge-refined-changed ((t (:background ,.bg-chg-emph))))
      (ediff-current-diff-A ((t (:background ,.bg-del :extend t))))
      (ediff-current-diff-B ((t (:background ,.bg-add :extend t))))
      (ediff-current-diff-C ((t (:background ,.bg-chg :extend t))))
      (ediff-current-diff-Ancestor ((t (:background ,.bg-info :extend t))))
      (ediff-fine-diff-A ((t (:background ,.bg-del-emph))))
      (ediff-fine-diff-B ((t (:background ,.bg-add-emph))))
      (ediff-fine-diff-C ((t (:background ,.bg-chg-emph))))
      (ediff-fine-diff-Ancestor ((t (:background ,.bg-search))))
      (ediff-even-diff-A ((t (:background ,.surface0 :extend t))))
      (ediff-even-diff-B ((t (:background ,.surface0 :extend t))))
      (ediff-even-diff-C ((t (:background ,.surface0 :extend t))))
      (ediff-even-diff-Ancestor ((t (:background ,.surface0 :extend t))))
      (ediff-odd-diff-A ((t (:background ,.surface0 :extend t))))
      (ediff-odd-diff-B ((t (:background ,.surface0 :extend t))))
      (ediff-odd-diff-C ((t (:background ,.surface0 :extend t))))
      (ediff-odd-diff-Ancestor ((t (:background ,.surface0 :extend t))))
      (diff-hl-insert ((t (:foreground ,.green :background ,.green))))
      (diff-hl-delete ((t (:foreground ,.red-hi :background ,.red-hi))))
      (diff-hl-change ((t (:foreground ,.yellow :background ,.yellow))))
      (git-gutter:added ((t (:foreground ,.green))))
      (git-gutter:deleted ((t (:foreground ,.red-hi))))
      (git-gutter:modified ((t (:foreground ,.yellow))))
      (git-gutter-fr:added ((t (:foreground ,.green))))
      (git-gutter-fr:deleted ((t (:foreground ,.red-hi))))
      (git-gutter-fr:modified ((t (:foreground ,.yellow))))
      (vc-edited-state ((t (:foreground ,.yellow))))
      (vc-locally-added-state ((t (:foreground ,.green))))
      (vc-removed-state ((t (:foreground ,.red-hi))))
      (vc-missing-state ((t (:foreground ,.red-hi))))
      (vc-conflict-state ((t (:foreground ,.orange :weight bold))))
      (vc-needs-update-state ((t (:foreground ,.denim))))
      (vc-locked-state ((t (:foreground ,.clay))))
      (vc-ignored-state ((t (:foreground ,.overlay0))))
      (outline-1 ((t (:foreground ,.orange :weight bold))))
      (outline-2 ((t (:foreground ,.yellow :weight bold))))
      (outline-3 ((t (:foreground ,.green :weight bold))))
      (outline-4 ((t (:foreground ,.sage :weight bold))))
      (outline-5 ((t (:foreground ,.clay :weight bold))))
      (outline-6 ((t (:foreground ,.subtext1 :weight bold))))
      (outline-7 ((t (:foreground ,.orange :weight bold))))
      (outline-8 ((t (:foreground ,.yellow :weight bold))))
      (org-level-1 ((t (:foreground ,.orange :weight bold))))
      (org-level-2 ((t (:foreground ,.yellow :weight bold))))
      (org-level-3 ((t (:foreground ,.green :weight bold))))
      (org-level-4 ((t (:foreground ,.sage :weight bold))))
      (org-level-5 ((t (:foreground ,.clay :weight bold))))
      (org-level-6 ((t (:foreground ,.subtext1 :weight bold))))
      (org-level-7 ((t (:foreground ,.orange :weight bold))))
      (org-level-8 ((t (:foreground ,.yellow :weight bold))))
      (org-document-title ((t (:foreground ,.text-hi :weight bold))))
      (org-document-info ((t (:foreground ,.subtext0))))
      (org-document-info-keyword ((t (:foreground ,.overlay1))))
      (org-meta-line ((t (:foreground ,.overlay1 :slant italic))))
      (org-block ((t (:background ,.mantle :extend t))))
      (org-block-begin-line ((t (:foreground ,.overlay1 :background ,.mantle :slant italic :extend t))))
      (org-block-end-line ((t (:inherit org-block-begin-line))))
      (org-code ((t (:foreground ,.green))))
      (org-verbatim ((t (:foreground ,.clay))))
      (org-quote ((t (:inherit org-block :foreground ,.subtext0 :slant italic))))
      (org-verse ((t (:inherit org-quote))))
      (org-date ((t (:foreground ,.clay :underline t))))
      (org-sexp-date ((t (:foreground ,.clay))))
      (org-todo ((t (:foreground ,.red-hi :weight bold))))
      (org-done ((t (:foreground ,.green :weight bold))))
      (org-headline-todo ((t (:foreground ,.clay))))
      (org-headline-done ((t (:foreground ,.overlay1))))
      (org-priority ((t (:foreground ,.orange))))
      (org-link ((t (:inherit link))))
      (org-footnote ((t (:foreground ,.clay))))
      (org-target ((t (:underline t))))
      (org-table ((t (:foreground ,.subtext1))))
      (org-table-header ((t (:inherit org-table :foreground ,.text-hi :background ,.surface0 :weight bold))))
      (org-formula ((t (:foreground ,.clay))))
      (org-tag ((t (:foreground ,.overlay1 :weight normal))))
      (org-checkbox ((t (:foreground ,.yellow :weight bold))))
      (org-checkbox-statistics-todo ((t (:foreground ,.yellow))))
      (org-checkbox-statistics-done ((t (:foreground ,.green))))
      (org-list-dt ((t (:foreground ,.yellow :weight bold))))
      (org-special-keyword ((t (:foreground ,.overlay1))))
      (org-drawer ((t (:foreground ,.overlay1))))
      (org-property-value ((t (:foreground ,.subtext0))))
      (org-ellipsis ((t (:foreground ,.overlay0 :underline nil))))
      (org-hide ((t (:foreground ,.base))))
      (org-archived ((t (:foreground ,.overlay0))))
      (org-macro ((t (:foreground ,.clay))))
      (org-latex-and-related ((t (:foreground ,.clay))))
      (org-warning ((t (:foreground ,.yellow :weight bold))))
      (org-column ((t (:background ,.surface0 :weight normal :slant normal :strike-through nil :underline nil))))
      (org-column-title ((t (:background ,.surface1 :underline t :weight bold))))
      (org-clock-overlay ((t (:foreground ,.text-hi :background ,.surface1))))
      (org-dispatcher-highlight ((t (:foreground ,.yellow :background ,.surface0 :weight bold))))
      (org-mode-line-clock-overrun ((t (:inherit mode-line :foreground ,.ink :background ,.red-hi))))
      (org-scheduled ((t (:foreground ,.green))))
      (org-scheduled-today ((t (:foreground ,.green-hi :weight bold))))
      (org-scheduled-previously ((t (:foreground ,.yellow))))
      (org-upcoming-deadline ((t (:foreground ,.orange))))
      (org-time-grid ((t (:foreground ,.overlay0))))
      (org-agenda-structure ((t (:foreground ,.orange :weight bold))))
      (org-agenda-date ((t (:foreground ,.yellow))))
      (org-agenda-date-today ((t (:foreground ,.yellow-hi :weight bold))))
      (org-agenda-date-weekend ((t (:foreground ,.overlay2))))
      (org-agenda-date-weekend-today ((t (:foreground ,.yellow :weight bold))))
      (org-agenda-done ((t (:foreground ,.overlay1))))
      (org-agenda-current-time ((t (:foreground ,.orange))))
      (org-agenda-dimmed-todo-face ((t (:foreground ,.overlay0))))
      (org-agenda-restriction-lock ((t (:background ,.surface0))))
      (markdown-header-face ((t (:foreground ,.yellow :weight bold))))
      (markdown-header-face-1 ((t (:foreground ,.orange :weight bold))))
      (markdown-header-face-2 ((t (:foreground ,.yellow :weight bold))))
      (markdown-header-face-3 ((t (:foreground ,.green :weight bold))))
      (markdown-header-face-4 ((t (:foreground ,.sage :weight bold))))
      (markdown-header-face-5 ((t (:foreground ,.clay :weight bold))))
      (markdown-header-face-6 ((t (:foreground ,.subtext1 :weight bold))))
      (markdown-header-delimiter-face ((t (:foreground ,.overlay1))))
      (markdown-code-face ((t (:background ,.mantle :extend t))))
      (markdown-inline-code-face ((t (:foreground ,.green :background ,.mantle))))
      (markdown-pre-face ((t (:foreground ,.green))))
      (markdown-language-keyword-face ((t (:foreground ,.overlay1 :slant italic))))
      (markdown-link-face ((t (:foreground ,.denim))))
      (markdown-url-face ((t (:foreground ,.denim :underline t))))
      (markdown-plain-url-face ((t (:inherit markdown-url-face))))
      (markdown-bold-face ((t (:foreground ,.text-hi :weight bold))))
      (markdown-italic-face ((t (:foreground ,.text :slant italic))))
      (markdown-strike-through-face ((t (:foreground ,.overlay1 :strike-through t))))
      (markdown-blockquote-face ((t (:foreground ,.subtext0 :slant italic))))
      (markdown-list-face ((t (:foreground ,.orange))))
      (markdown-markup-face ((t (:foreground ,.overlay1))))
      (markdown-table-face ((t (:foreground ,.subtext1))))
      (markdown-hr-face ((t (:foreground ,.overlay0))))
      (markdown-gfm-checkbox-face ((t (:foreground ,.yellow))))
      (markdown-footnote-marker-face ((t (:foreground ,.clay))))
      (markdown-metadata-key-face ((t (:foreground ,.sage))))
      (markdown-metadata-value-face ((t (:foreground ,.subtext0))))
      (message-header-name ((t (:foreground ,.overlay1))))
      (message-header-subject ((t (:foreground ,.yellow :weight bold))))
      (message-header-to ((t (:foreground ,.orange :weight bold))))
      (message-header-cc ((t (:foreground ,.subtext1))))
      (message-header-newsgroups ((t (:foreground ,.sage))))
      (message-header-other ((t (:foreground ,.subtext0))))
      (message-header-xheader ((t (:foreground ,.overlay1))))
      (message-separator ((t (:foreground ,.overlay0))))
      (message-mml ((t (:foreground ,.clay))))
      (message-signature-separator ((t (:foreground ,.overlay1))))
      (message-cited-text-1 ((t (:foreground ,.sage))))
      (message-cited-text-2 ((t (:foreground ,.clay))))
      (message-cited-text-3 ((t (:foreground ,.denim))))
      (message-cited-text-4 ((t (:foreground ,.overlay2))))
      (dired-directory ((t (:foreground ,.yellow))))
      (dired-header ((t (:foreground ,.orange :weight bold))))
      (dired-symlink ((t (:foreground ,.denim))))
      (dired-broken-symlink ((t (:foreground ,.red-hi :background ,.bg-error))))
      (dired-mark ((t (:foreground ,.orange :weight bold))))
      (dired-marked ((t (:foreground ,.yellow-hi :weight bold))))
      (dired-flagged ((t (:foreground ,.red-hi :weight bold))))
      (dired-ignored ((t (:foreground ,.overlay0))))
      (dired-perm-write ((t (:foreground ,.clay))))
      (dired-set-id ((t (:foreground ,.clay))))
      (dired-special ((t (:foreground ,.clay))))
      (dired-warning ((t (:foreground ,.yellow))))
      (diredfl-dir-heading ((t (:foreground ,.orange :weight bold))))
      (diredfl-dir-name ((t (:foreground ,.yellow))))
      (diredfl-file-name ((t (:foreground ,.subtext1))))
      (diredfl-file-suffix ((t (:foreground ,.overlay2))))
      (diredfl-symlink ((t (:foreground ,.denim))))
      (diredfl-number ((t (:foreground ,.subtext0))))
      (diredfl-date-time ((t (:foreground ,.overlay1))))
      (diredfl-compressed-file-name ((t (:foreground ,.clay))))
      (diredfl-compressed-file-suffix ((t (:foreground ,.clay))))
      (diredfl-ignored-file-name ((t (:foreground ,.overlay0))))
      (diredfl-executable-tag ((t (:foreground ,.green))))
      (diredfl-flag-mark ((t (:foreground ,.yellow :weight bold))))
      (diredfl-flag-mark-line ((t (:background ,.bg-search :extend t))))
      (diredfl-deletion ((t (:foreground ,.ink :background ,.red-hi :weight bold))))
      (diredfl-deletion-file-name ((t (:foreground ,.red-hi))))
      (diredfl-autofile-name ((t (:foreground ,.sage))))
      (diredfl-tagged-autofile-name ((t (:foreground ,.sage))))
      (diredfl-dir-priv ((t (:foreground ,.yellow))))
      (diredfl-read-priv ((t (:foreground ,.green))))
      (diredfl-write-priv ((t (:foreground ,.orange))))
      (diredfl-exec-priv ((t (:foreground ,.red-hi))))
      (diredfl-link-priv ((t (:foreground ,.denim))))
      (diredfl-other-priv ((t (:foreground ,.clay))))
      (diredfl-rare-priv ((t (:foreground ,.clay :weight bold))))
      (diredfl-no-priv ((t (:foreground ,.overlay0))))
      (eshell-prompt ((t (:foreground ,.orange :weight bold))))
      (eshell-ls-directory ((t (:foreground ,.yellow :weight bold))))
      (eshell-ls-executable ((t (:foreground ,.green))))
      (eshell-ls-symlink ((t (:foreground ,.denim))))
      (eshell-ls-archive ((t (:foreground ,.clay))))
      (eshell-ls-backup ((t (:foreground ,.overlay0))))
      (eshell-ls-clutter ((t (:foreground ,.overlay0))))
      (eshell-ls-missing ((t (:foreground ,.red-hi))))
      (eshell-ls-product ((t (:foreground ,.overlay1))))
      (eshell-ls-readonly ((t (:foreground ,.overlay1))))
      (eshell-ls-special ((t (:foreground ,.clay))))
      (eshell-ls-unreadable ((t (:foreground ,.overlay0))))
      (comint-highlight-prompt ((t (:foreground ,.orange :weight bold))))
      (comint-highlight-input ((t (:weight bold))))
      (info-title-1 ((t (:foreground ,.orange :weight bold))))
      (info-title-2 ((t (:foreground ,.yellow :weight bold))))
      (info-title-3 ((t (:foreground ,.green :weight bold))))
      (info-title-4 ((t (:foreground ,.sage :weight bold))))
      (info-menu-header ((t (:foreground ,.orange :weight bold))))
      (info-menu-star ((t (:foreground ,.clay))))
      (info-node ((t (:foreground ,.yellow :weight bold))))
      (Info-quoted ((t (:foreground ,.green))))
      (treemacs-window-background-face ((t (:background ,.mantle))))
      (treemacs-hl-line-face ((t (:background ,.surface0 :extend t))))
      (treemacs-root-face ((t (:foreground ,.orange :weight bold))))
      (treemacs-root-unreadable-face ((t (:foreground ,.red-hi :strike-through t))))
      (treemacs-root-remote-face ((t (:foreground ,.denim :weight bold))))
      (treemacs-root-remote-unreadable-face ((t (:foreground ,.red-hi :strike-through t))))
      (treemacs-root-remote-disconnected-face ((t (:foreground ,.yellow))))
      (treemacs-directory-face ((t (:foreground ,.yellow))))
      (treemacs-directory-collapsed-face ((t (:foreground ,.yellow))))
      (treemacs-file-face ((t (:foreground ,.subtext1))))
      (treemacs-tags-face ((t (:foreground ,.sage))))
      (treemacs-term-node-face ((t (:foreground ,.clay))))
      (treemacs-help-title-face ((t (:foreground ,.orange :weight bold))))
      (treemacs-help-column-face ((t (:foreground ,.yellow :underline t))))
      (treemacs-header-button-face ((t (:foreground ,.overlay1))))
      (treemacs-marked-file-face ((t (:foreground ,.yellow-hi :weight bold))))
      (treemacs-fringe-indicator-face ((t (:foreground ,.orange))))
      (treemacs-async-loading-face ((t (:foreground ,.overlay1))))
      (treemacs-peek-mode-indicator-face ((t (:background ,.orange))))
      (treemacs-on-success-pulse-face ((t (:foreground ,.ink :background ,.green))))
      (treemacs-on-failure-pulse-face ((t (:foreground ,.ink :background ,.red-hi))))
      (treemacs-git-added-face ((t (:foreground ,.green))))
      (treemacs-git-modified-face ((t (:foreground ,.yellow))))
      (treemacs-git-renamed-face ((t (:foreground ,.sage))))
      (treemacs-git-untracked-face ((t (:foreground ,.green))))
      (treemacs-git-ignored-face ((t (:foreground ,.overlay0))))
      (treemacs-git-conflict-face ((t (:foreground ,.orange :weight bold))))
      (treemacs-git-unmodified-face ((t (:foreground ,.subtext1))))
      (treemacs-git-commit-diff-face ((t (:foreground ,.clay))))
      (neo-banner-face ((t (:foreground ,.orange :weight bold))))
      (neo-header-face ((t (:foreground ,.text-hi))))
      (neo-root-dir-face ((t (:foreground ,.orange :weight bold))))
      (neo-dir-link-face ((t (:foreground ,.yellow))))
      (neo-file-link-face ((t (:foreground ,.subtext1))))
      (neo-expand-btn-face ((t (:foreground ,.overlay1))))
      (neo-button-face ((t (:underline nil))))
      (neo-vc-default-face ((t (:foreground ,.subtext1))))
      (neo-vc-up-to-date-face ((t (:foreground ,.subtext1))))
      (neo-vc-user-face ((t (:foreground ,.clay))))
      (neo-vc-edited-face ((t (:foreground ,.yellow))))
      (neo-vc-added-face ((t (:foreground ,.green))))
      (neo-vc-removed-face ((t (:foreground ,.red-hi))))
      (neo-vc-missing-face ((t (:foreground ,.red-hi))))
      (neo-vc-conflict-face ((t (:foreground ,.orange :weight bold))))
      (neo-vc-needs-merge-face ((t (:foreground ,.orange))))
      (neo-vc-needs-update-face ((t (:foreground ,.denim))))
      (neo-vc-unlocked-changes-face ((t (:foreground ,.clay))))
      (neo-vc-unregistered-face ((t (:foreground ,.overlay1))))
      (neo-vc-ignored-face ((t (:foreground ,.overlay0))))
      (doom-modeline-bar ((t (:background ,.orange))))
      (doom-modeline-bar-inactive ((t (:background ,.crust))))
      (doom-modeline-buffer-file ((t (:foreground ,.text-hi :weight bold))))
      (doom-modeline-buffer-path ((t (:foreground ,.subtext0))))
      (doom-modeline-buffer-modified ((t (:foreground ,.yellow :weight bold))))
      (doom-modeline-buffer-major-mode ((t (:foreground ,.sage :weight bold))))
      (doom-modeline-buffer-minor-mode ((t (:foreground ,.overlay1))))
      (doom-modeline-project-dir ((t (:foreground ,.orange :weight bold))))
      (doom-modeline-project-name ((t (:foreground ,.orange))))
      (doom-modeline-project-parent-dir ((t (:foreground ,.overlay1))))
      (doom-modeline-project-root-dir ((t (:foreground ,.subtext0))))
      (doom-modeline-highlight ((t (:foreground ,.orange))))
      (doom-modeline-emphasis ((t (:foreground ,.yellow :weight bold))))
      (doom-modeline-panel ((t (:foreground ,.ink :background ,.orange))))
      (doom-modeline-info ((t (:foreground ,.green))))
      (doom-modeline-warning ((t (:foreground ,.yellow))))
      (doom-modeline-urgent ((t (:foreground ,.red-hi :weight bold))))
      (doom-modeline-notification ((t (:foreground ,.yellow))))
      (doom-modeline-unread-number ((t (:foreground ,.denim))))
      (doom-modeline-debug ((t (:foreground ,.clay))))
      (doom-modeline-lsp-success ((t (:foreground ,.green))))
      (doom-modeline-lsp-warning ((t (:foreground ,.yellow))))
      (doom-modeline-lsp-error ((t (:foreground ,.red-hi))))
      (doom-modeline-lsp-running ((t (:foreground ,.overlay1))))
      (doom-modeline-evil-normal-state ((t (:foreground ,.orange :weight bold))))
      (doom-modeline-evil-insert-state ((t (:foreground ,.green :weight bold))))
      (doom-modeline-evil-visual-state ((t (:foreground ,.yellow :weight bold))))
      (doom-modeline-evil-replace-state ((t (:foreground ,.red-hi :weight bold))))
      (doom-modeline-evil-motion-state ((t (:foreground ,.sage :weight bold))))
      (doom-modeline-evil-operator-state ((t (:foreground ,.sage :weight bold))))
      (doom-modeline-evil-emacs-state ((t (:foreground ,.clay :weight bold))))
      (nerd-icons-red ((t (:foreground ,.red-hi))))
      (nerd-icons-lred ((t (:foreground ,.red-hi))))
      (nerd-icons-dred ((t (:foreground ,.red))))
      (nerd-icons-red-alt ((t (:foreground ,.red))))
      (nerd-icons-orange ((t (:foreground ,.orange))))
      (nerd-icons-lorange ((t (:foreground ,.orange-hi))))
      (nerd-icons-dorange ((t (:foreground ,.orange))))
      (nerd-icons-yellow ((t (:foreground ,.yellow))))
      (nerd-icons-lyellow ((t (:foreground ,.yellow-hi))))
      (nerd-icons-dyellow ((t (:foreground ,.yellow))))
      (nerd-icons-green ((t (:foreground ,.green))))
      (nerd-icons-lgreen ((t (:foreground ,.green-hi))))
      (nerd-icons-dgreen ((t (:foreground ,.green))))
      (nerd-icons-cyan ((t (:foreground ,.sage))))
      (nerd-icons-lcyan ((t (:foreground ,.sage-hi))))
      (nerd-icons-dcyan ((t (:foreground ,.sage))))
      (nerd-icons-cyan-alt ((t (:foreground ,.sage-hi))))
      (nerd-icons-blue ((t (:foreground ,.denim))))
      (nerd-icons-lblue ((t (:foreground ,.denim-hi))))
      (nerd-icons-dblue ((t (:foreground ,.denim))))
      (nerd-icons-blue-alt ((t (:foreground ,.denim-hi))))
      (nerd-icons-maroon ((t (:foreground ,.clay))))
      (nerd-icons-lmaroon ((t (:foreground ,.clay))))
      (nerd-icons-dmaroon ((t (:foreground ,.clay))))
      (nerd-icons-purple ((t (:foreground ,.clay))))
      (nerd-icons-lpurple ((t (:foreground ,.clay))))
      (nerd-icons-dpurple ((t (:foreground ,.clay))))
      (nerd-icons-purple-alt ((t (:foreground ,.clay))))
      (nerd-icons-pink ((t (:foreground ,.clay))))
      (nerd-icons-lpink ((t (:foreground ,.clay))))
      (nerd-icons-dpink ((t (:foreground ,.clay))))
      (nerd-icons-silver ((t (:foreground ,.subtext0))))
      (nerd-icons-lsilver ((t (:foreground ,.subtext1))))
      (nerd-icons-dsilver ((t (:foreground ,.overlay1))))
      (ansi-color-black ((t (:foreground ,.ansi0 :background ,.ansi0))))
      (ansi-color-red ((t (:foreground ,.ansi1 :background ,.ansi1))))
      (ansi-color-green ((t (:foreground ,.ansi2 :background ,.ansi2))))
      (ansi-color-yellow ((t (:foreground ,.ansi3 :background ,.ansi3))))
      (ansi-color-blue ((t (:foreground ,.ansi4 :background ,.ansi4))))
      (ansi-color-magenta ((t (:foreground ,.ansi5 :background ,.ansi5))))
      (ansi-color-cyan ((t (:foreground ,.ansi6 :background ,.ansi6))))
      (ansi-color-white ((t (:foreground ,.ansi7 :background ,.ansi7))))
      (ansi-color-bright-black ((t (:foreground ,.ansi8 :background ,.ansi8))))
      (ansi-color-bright-red ((t (:foreground ,.ansi9 :background ,.ansi9))))
      (ansi-color-bright-green ((t (:foreground ,.ansi10 :background ,.ansi10))))
      (ansi-color-bright-yellow ((t (:foreground ,.ansi11 :background ,.ansi11))))
      (ansi-color-bright-blue ((t (:foreground ,.ansi12 :background ,.ansi12))))
      (ansi-color-bright-magenta ((t (:foreground ,.ansi13 :background ,.ansi13))))
      (ansi-color-bright-cyan ((t (:foreground ,.ansi14 :background ,.ansi14))))
      (ansi-color-bright-white ((t (:foreground ,.ansi15 :background ,.ansi15))))
      (term-color-black ((t (:foreground ,.ansi0 :background ,.ansi0))))
      (term-color-red ((t (:foreground ,.ansi1 :background ,.ansi1))))
      (term-color-green ((t (:foreground ,.ansi2 :background ,.ansi2))))
      (term-color-yellow ((t (:foreground ,.ansi3 :background ,.ansi3))))
      (term-color-blue ((t (:foreground ,.ansi4 :background ,.ansi4))))
      (term-color-magenta ((t (:foreground ,.ansi5 :background ,.ansi5))))
      (term-color-cyan ((t (:foreground ,.ansi6 :background ,.ansi6))))
      (term-color-white ((t (:foreground ,.ansi7 :background ,.ansi7))))
      (term-color-bright-black ((t (:foreground ,.ansi8 :background ,.ansi8))))
      (term-color-bright-red ((t (:foreground ,.ansi9 :background ,.ansi9))))
      (term-color-bright-green ((t (:foreground ,.ansi10 :background ,.ansi10))))
      (term-color-bright-yellow ((t (:foreground ,.ansi11 :background ,.ansi11))))
      (term-color-bright-blue ((t (:foreground ,.ansi12 :background ,.ansi12))))
      (term-color-bright-magenta ((t (:foreground ,.ansi13 :background ,.ansi13))))
      (term-color-bright-cyan ((t (:foreground ,.ansi14 :background ,.ansi14))))
      (term-color-bright-white ((t (:foreground ,.ansi15 :background ,.ansi15)))))))

(defun subway-seat-theme-apply (theme)
  "Record the faces and variables of THEME, one of the Subway Seat themes."
  (apply #'custom-theme-set-faces theme (subway-seat-theme--faces theme))
  (subway-seat-theme-with-colors theme
    (custom-theme-set-variables
     theme
     `(ansi-color-names-vector [,.ansi0 ,.ansi1 ,.ansi2 ,.ansi3 ,.ansi4 ,.ansi5 ,.ansi6 ,.ansi7])
     `(hl-todo-keyword-faces
       '(("TODO" . ,.yellow) ("NEXT" . ,.yellow) ("FIXME" . ,.red-hi) ("BUG" . ,.red-hi)
         ("XXX" . ,.red-hi) ("HACK" . ,.clay) ("KLUDGE" . ,.clay) ("NOTE" . ,.sage)
         ("DONE" . ,.green) ("OKAY" . ,.green) ("DEPRECATED" . ,.overlay1)))
     `(pdf-view-midnight-colors '(,.text . ,.base)))))

;; The Tunnel and Enamel files `require' this one, so all three themes are
;; known once any of them is loaded.
(deftheme subway-seat
  "Subway Seat: Walnut paneling and orange bucket seats. The original.")
(subway-seat-theme-apply 'subway-seat)

(deftheme subway-seat-tunnel
  "Subway Seat Tunnel: The late local after midnight: espresso-deep, same warm lights.")
(subway-seat-theme-apply 'subway-seat-tunnel)

(deftheme subway-seat-enamel
  "Subway Seat Enamel: Cream enamel panels in the morning sun. The light one.")
(subway-seat-theme-apply 'subway-seat-enamel)

(deftheme london-moquette
  "London Moquette: The seat you're sitting on. Corporate Blue, turned right down.")
(subway-seat-theme-apply 'london-moquette)

(deftheme london-deep-level
  "London Deep Level: Below the cut-and-cover lines. The ground drops; the signals don't.")
(subway-seat-theme-apply 'london-deep-level)

(deftheme london-portland
  "London Portland: Holden's Portland stone. Links are the exact Corporate Blue.")
(subway-seat-theme-apply 'london-portland)

(deftheme paris-guimard
  "Paris Guimard: Cast iron off a Metro entrance, which is nearly black. Brass leads.")
(subway-seat-theme-apply 'paris-guimard)

(deftheme paris-catacombes
  "Paris Catacombes: Under the quarries: the same green with the lights turned down.")
(subway-seat-theme-apply 'paris-catacombes)

(deftheme paris-carrelage
  "Paris Carrelage: Bevelled white tile under a vaulted platform. The light one.")
(subway-seat-theme-apply 'paris-carrelage)

;;;###autoload
(when (and (boundp 'custom-theme-load-path) load-file-name)
  (add-to-list 'custom-theme-load-path
               (file-name-as-directory (file-name-directory load-file-name))))

(provide-theme 'subway-seat)

;;; subway-seat-theme.el ends here
