commit 36b3abc6722ddf8d841a72118e644e75c8124a7a (HEAD, refs/remotes/origin/master)
Author: Dmitry Gutov <dgutov@yandex.ru>
Date:   Thu Aug 27 11:32:50 2020 +0300

    ; Add the necessary argument (bug#42967)

diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el
index f5ea940a32..de2053c3c9 100644
--- a/lisp/progmodes/xref.el
+++ b/lisp/progmodes/xref.el
@@ -961,7 +961,7 @@ Accepts the same arguments as `xref-show-xrefs-function'."
 
 (defvar xref--read-pattern-history nil)
 
-(defun xref--show-xrefs (fetcher display-action)
+(defun xref--show-xrefs (fetcher display-action &optional _always-show-list)
   (xref--push-markers)
   (unless (functionp fetcher)
     ;; Old convention.

commit 90ce0421542bf2a983fdb65075c96fa9d7f5e6c9
Author: Andrew G Cohen <cohen@andy.bu.edu>
Date:   Thu Aug 27 13:14:26 2020 +0800

    Allow a function for the :secret in a plstore
    
    * lisp/auth-source.el (auth-source-plstore-search): If the :secret
    value is a function, call it on plist to obtain the real password.

diff --git a/lisp/auth-source.el b/lisp/auth-source.el
index 7a0e09b9e8..50795ce794 100644
--- a/lisp/auth-source.el
+++ b/lisp/auth-source.el
@@ -2073,7 +2073,9 @@ entries for git.gnus.org:
                                 (setcar
                                  (cdr secret)
                                  (let ((v (car (cdr secret))))
-                                   (lambda () v))))
+                                   (if (functionp v)
+                                       (lambda () (funcall v plist))
+                                   (lambda () v)))))
                             plist))
                         items))
          ;; ensure each item has each key in `returned-keys'

commit f8082a5ccae11508c7eb80ca4d9fabb341985419
Author: Stefan Kangas <stefankangas@gmail.com>
Date:   Thu Aug 27 06:57:52 2020 +0200

    ; * lisp/textmodes/flyspell.el (flyspell-mode-on): Fix typo.

diff --git a/lisp/textmodes/flyspell.el b/lisp/textmodes/flyspell.el
index 0af8ba872d..78a74de4e8 100644
--- a/lisp/textmodes/flyspell.el
+++ b/lisp/textmodes/flyspell.el
@@ -650,7 +650,7 @@ in your init file.
                                          nil 'non-ascii))
              (mouse-button (if flyspell-use-mouse-3-for-menu
                                "Mouse-3" "Mouse-2")))
-        (message "Welcome to Flyspell. Use %s to correct words"
+        (message "Welcome to Flyspell. Use %s to correct words."
                  (if binding
                      (format "%s or %s" (key-description binding) mouse-button)
                    (format "%s" mouse-button))))))

commit 15f6c07f15b59d4521cab2c2d6614915fea3cfbb
Author: Stefan Kangas <stefankangas@gmail.com>
Date:   Thu Aug 27 06:48:39 2020 +0200

    Refer to correct mouse button in flyspell message
    
    * lisp/textmodes/flyspell.el (make-flyspell-overlay)
    (flyspell-mode-on): Refer to mouse-3 in help messages when the
    variable 'flyspell-use-mouse-3-for-menu' is non-nil.  (Bug#11680)

diff --git a/lisp/textmodes/flyspell.el b/lisp/textmodes/flyspell.el
index 23f96d7e0e..0af8ba872d 100644
--- a/lisp/textmodes/flyspell.el
+++ b/lisp/textmodes/flyspell.el
@@ -645,14 +645,15 @@ in your init file.
   ;; the welcome message
   (if (and flyspell-issue-message-flag
 	   flyspell-issue-welcome-flag
-	   (called-interactively-p 'interactive))
-      (let ((binding (where-is-internal 'flyspell-auto-correct-word
-					nil 'non-ascii)))
-	(message "%s"
-	 (if binding
-	     (format "Welcome to flyspell. Use %s or Mouse-2 to correct words."
-		     (key-description binding))
-	   "Welcome to flyspell. Use Mouse-2 to correct words.")))))
+           (called-interactively-p 'interactive))
+      (let* ((binding (where-is-internal 'flyspell-auto-correct-word
+                                         nil 'non-ascii))
+             (mouse-button (if flyspell-use-mouse-3-for-menu
+                               "Mouse-3" "Mouse-2")))
+        (message "Welcome to Flyspell. Use %s to correct words"
+                 (if binding
+                     (format "%s or %s" (key-description binding) mouse-button)
+                   (format "%s" mouse-button))))))
 
 ;;*---------------------------------------------------------------------*/
 ;;*    flyspell-delay-commands ...                                      */
@@ -1802,7 +1803,9 @@ for the overlay."
     (overlay-put overlay 'mouse-face mouse-face)
     (overlay-put overlay 'flyspell-overlay t)
     (overlay-put overlay 'evaporate t)
-    (overlay-put overlay 'help-echo "mouse-2: correct word at point")
+    (overlay-put overlay 'help-echo (concat (if flyspell-use-mouse-3-for-menu
+                                                "mouse-3"
+                                              "mouse-2") ": correct word at point"))
     ;; If misspelled text has a 'keymap' property, let that remain in
     ;; effect for the bindings that flyspell-mouse-map doesn't override.
     (set-keymap-parent flyspell-mouse-map (get-char-property beg 'keymap))

commit 587a60cc0fb80e7be51707b75bc9e097714a250c
Author: Stefan Kangas <stefankangas@gmail.com>
Date:   Wed Aug 26 21:53:17 2020 +0200

    Signal error on Hunspell installation problem
    
    * lisp/textmodes/ispell.el (ispell-find-hunspell-dictionaries):
    Signal user-error when Hunspell warns that it "Can't open affix or
    dictionary files", and propagate this message.  (Bug#25825)

diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index 6eaa0582aa..86452ff1e8 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -1096,28 +1096,38 @@ to dictionaries found, and will remove aliases from the list
 in `ispell-dicts-name2locale-equivs-alist' if an explicit
 dictionary from that list was found."
   (let ((hunspell-found-dicts
-	 (split-string
-	  (with-temp-buffer
-	    (ispell-call-process ispell-program-name
-				 null-device
-				 t
-				 nil
-                                 "-D"
-                                 ;; Use -a to prevent Hunspell from
-                                 ;; trying to initialize its
-                                 ;; curses/termcap UI, which causes it
-                                 ;; to crash or fail to start in some
-                                 ;; MS-Windows ports.
-                                 "-a"
-                                 ;; Hunspell 1.7.0 (and later?) won't
-                                 ;; show LOADED DICTIONARY unless
-                                 ;; there's at least one file argument
-                                 ;; on the command line.  So we feed
-                                 ;; it with the null device.
-				 null-device)
-	    (buffer-string))
-	  "[\n\r]+"
-	  t))
+         (seq-filter
+          (lambda (str)
+            (when (string-match
+                   ;; Hunspell gives this error when there is some
+                   ;; installation problem, for example if $LANG is unset.
+                   (concat "^Can't open affix or dictionary files "
+                           "for dictionary named \"default\".$")
+                   str)
+              (user-error "Hunspell error (is $LANG unset?): %s" str))
+            (file-name-absolute-p str))
+          (split-string
+           (with-temp-buffer
+             (ispell-call-process ispell-program-name
+                            null-device
+                            t
+                            nil
+                            "-D"
+                            ;; Use -a to prevent Hunspell from
+                            ;; trying to initialize its
+                            ;; curses/termcap UI, which causes it
+                            ;; to crash or fail to start in some
+                            ;; MS-Windows ports.
+                            "-a"
+                            ;; Hunspell 1.7.0 (and later?) won't
+                            ;; show LOADED DICTIONARY unless
+                            ;; there's at least one file argument
+                            ;; on the command line.  So we feed
+                            ;; it with the null device.
+                            null-device)
+             (buffer-string))
+           "[\n\r]+"
+           t)))
 	hunspell-default-dict
 	hunspell-default-dict-entry
 	hunspell-multi-dict)

commit e24a93d1000b713067fae7049de3a7e66ebbfe3f
Author: Stefan Kangas <stefankangas@gmail.com>
Date:   Thu Aug 27 02:42:36 2020 +0200

    ; Fix license statements.

diff --git a/etc/themes/manoj-dark-theme.el b/etc/themes/manoj-dark-theme.el
index 5c76d6a1e9..ac395f993c 100644
--- a/etc/themes/manoj-dark-theme.el
+++ b/etc/themes/manoj-dark-theme.el
@@ -5,18 +5,20 @@
 ;; Author: Manoj Srivastava <srivasta@ieee.org>
 ;; Keywords: lisp, faces
 
-;; This program is free software; you can redistribute it and/or modify
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
diff --git a/lisp/emacs-lisp/nadvice.el b/lisp/emacs-lisp/nadvice.el
index 85a15c96be..b779aa2788 100644
--- a/lisp/emacs-lisp/nadvice.el
+++ b/lisp/emacs-lisp/nadvice.el
@@ -5,18 +5,20 @@
 ;; Author: Stefan Monnier <monnier@iro.umontreal.ca>
 ;; Keywords: extensions, lisp, tools
 
-;; This program is free software; you can redistribute it and/or modify
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
diff --git a/lisp/fileloop.el b/lisp/fileloop.el
index d52e35d886..458c25a49b 100644
--- a/lisp/fileloop.el
+++ b/lisp/fileloop.el
@@ -4,18 +4,20 @@
 
 ;; Author: Stefan Monnier <monnier@iro.umontreal.ca>
 
-;; This program is free software; you can redistribute it and/or modify
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
diff --git a/lisp/gnus/gnus-dbus.el b/lisp/gnus/gnus-dbus.el
index b6e8bb9c8b..dbfa7fb693 100644
--- a/lisp/gnus/gnus-dbus.el
+++ b/lisp/gnus/gnus-dbus.el
@@ -4,18 +4,20 @@
 
 ;; Author: Eric Abrahamsen <eric@ericabrahamsen.net>
 
-;; This program is free software; you can redistribute it and/or modify
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
diff --git a/lisp/gnus/gnus-icalendar.el b/lisp/gnus/gnus-icalendar.el
index da41b08c71..f624b9d032 100644
--- a/lisp/gnus/gnus-icalendar.el
+++ b/lisp/gnus/gnus-icalendar.el
@@ -5,18 +5,20 @@
 ;; Author: Jan Tatarik <Jan.Tatarik@gmail.com>
 ;; Keywords: mail, icalendar, org
 
-;; This program is free software; you can redistribute it and/or modify
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
diff --git a/lisp/progmodes/flymake-cc.el b/lisp/progmodes/flymake-cc.el
index bddd1a39fc..19565ef9b1 100644
--- a/lisp/progmodes/flymake-cc.el
+++ b/lisp/progmodes/flymake-cc.el
@@ -5,18 +5,20 @@
 ;; Author: JoÃ£o TÃ¡vora <joaotavora@gmail.com>
 ;; Keywords: languages, c
 
-;; This program is free software; you can redistribute it and/or modify
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
diff --git a/test/data/themes/faces-test-dark-theme.el b/test/data/themes/faces-test-dark-theme.el
index 2eb72d6b35..a5e2ca4362 100644
--- a/test/data/themes/faces-test-dark-theme.el
+++ b/test/data/themes/faces-test-dark-theme.el
@@ -2,18 +2,20 @@
 
 ;; Copyright (C) 2019-2020 Free Software Foundation, Inc.
 
-;; This program is free software; you can redistribute it and/or modify
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
diff --git a/test/data/themes/faces-test-light-theme.el b/test/data/themes/faces-test-light-theme.el
index 4a7c7f6877..b2f7ec6974 100644
--- a/test/data/themes/faces-test-light-theme.el
+++ b/test/data/themes/faces-test-light-theme.el
@@ -2,18 +2,20 @@
 
 ;; Copyright (C) 2019-2020 Free Software Foundation, Inc.
 
-;; This program is free software; you can redistribute it and/or modify
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
diff --git a/test/lisp/char-fold-tests.el b/test/lisp/char-fold-tests.el
index 0e55dfbb8e..599d9d614f 100644
--- a/test/lisp/char-fold-tests.el
+++ b/test/lisp/char-fold-tests.el
@@ -4,18 +4,20 @@
 
 ;; Author: Artur Malabarba <bruce.connor.am@gmail.com>
 
-;; This program is free software; you can redistribute it and/or modify
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Code:
 
diff --git a/test/lisp/electric-tests.el b/test/lisp/electric-tests.el
index 67f474cbd5..8b9c1c5fcb 100644
--- a/test/lisp/electric-tests.el
+++ b/test/lisp/electric-tests.el
@@ -5,18 +5,20 @@
 ;; Author: JoÃ£o TÃ¡vora <joaotavora@gmail.com>
 ;; Keywords:
 
-;; This program is free software; you can redistribute it and/or modify
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
diff --git a/test/lisp/emacs-lisp/rmc-tests.el b/test/lisp/emacs-lisp/rmc-tests.el
index 5dee206e93..5add24c479 100644
--- a/test/lisp/emacs-lisp/rmc-tests.el
+++ b/test/lisp/emacs-lisp/rmc-tests.el
@@ -5,18 +5,20 @@
 ;; Author: Tino Calancha <tino.calancha@gmail.com>
 ;; Keywords:
 
-;; This program is free software; you can redistribute it and/or modify
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
diff --git a/test/lisp/emacs-lisp/subr-x-tests.el b/test/lisp/emacs-lisp/subr-x-tests.el
index c702fdff6f..9d14a5ab7e 100644
--- a/test/lisp/emacs-lisp/subr-x-tests.el
+++ b/test/lisp/emacs-lisp/subr-x-tests.el
@@ -5,18 +5,20 @@
 ;; Author: FabiÃ¡n E. Gallina <fgallina@gnu.org>
 ;; Keywords:
 
-;; This program is free software; you can redistribute it and/or modify
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
diff --git a/test/lisp/emacs-lisp/text-property-search-tests.el b/test/lisp/emacs-lisp/text-property-search-tests.el
index 549c90d20d..83d4b95b76 100644
--- a/test/lisp/emacs-lisp/text-property-search-tests.el
+++ b/test/lisp/emacs-lisp/text-property-search-tests.el
@@ -5,18 +5,20 @@
 ;; Author: Lars Ingebrigtsen <larsi@gnus.org>
 ;; Keywords:
 
-;; This program is free software; you can redistribute it and/or modify
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
diff --git a/test/lisp/faces-tests.el b/test/lisp/faces-tests.el
index d5dc19349a..32dc1eea85 100644
--- a/test/lisp/faces-tests.el
+++ b/test/lisp/faces-tests.el
@@ -5,18 +5,20 @@
 ;; Author: Artur Malabarba <bruce.connor.am@gmail.com>
 ;; Keywords:
 
-;; This program is free software; you can redistribute it and/or modify
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Code:
 
diff --git a/test/lisp/hi-lock-tests.el b/test/lisp/hi-lock-tests.el
index 59f3e73b17..d30a6d0800 100644
--- a/test/lisp/hi-lock-tests.el
+++ b/test/lisp/hi-lock-tests.el
@@ -5,18 +5,20 @@
 ;; Author: Tino Calancha <tino.calancha@gmail.com>
 ;; Keywords:
 
-;; This program is free software; you can redistribute it and/or modify
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Code:
 
diff --git a/test/lisp/isearch-tests.el b/test/lisp/isearch-tests.el
index 3f430ab25f..516077ac1f 100644
--- a/test/lisp/isearch-tests.el
+++ b/test/lisp/isearch-tests.el
@@ -4,18 +4,20 @@
 
 ;; Author: Artur Malabarba <bruce.connor.am@gmail.com>
 
-;; This program is free software; you can redistribute it and/or modify
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Code:
 
diff --git a/test/lisp/json-tests.el b/test/lisp/json-tests.el
index a0e8c87c7b..8ac454467d 100644
--- a/test/lisp/json-tests.el
+++ b/test/lisp/json-tests.el
@@ -4,18 +4,20 @@
 
 ;; Author: Dmitry Gutov <dgutov@yandex.ru>
 
-;; This program is free software; you can redistribute it and/or modify
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Code:
 
diff --git a/test/lisp/jsonrpc-tests.el b/test/lisp/jsonrpc-tests.el
index 6c08023d4f..168a2c950c 100644
--- a/test/lisp/jsonrpc-tests.el
+++ b/test/lisp/jsonrpc-tests.el
@@ -5,18 +5,20 @@
 ;; Author: JoÃ£o TÃ¡vora <joaotavora@gmail.com>
 ;; Keywords: tests
 
-;; This program is free software; you can redistribute it and/or modify
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
diff --git a/test/lisp/mail/footnote-tests.el b/test/lisp/mail/footnote-tests.el
index 79f4807239..6594aa2b3e 100644
--- a/test/lisp/mail/footnote-tests.el
+++ b/test/lisp/mail/footnote-tests.el
@@ -5,18 +5,20 @@
 ;; Author: Stefan Monnier <monnier@iro.umontreal.ca>
 ;; Keywords:
 
-;; This program is free software; you can redistribute it and/or modify
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Code:
 
diff --git a/test/lisp/minibuffer-tests.el b/test/lisp/minibuffer-tests.el
index f4c840c117..5da86f3614 100644
--- a/test/lisp/minibuffer-tests.el
+++ b/test/lisp/minibuffer-tests.el
@@ -5,18 +5,20 @@
 ;; Author: Stefan Monnier <monnier@iro.umontreal.ca>
 ;; Keywords:
 
-;; This program is free software; you can redistribute it and/or modify
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
diff --git a/test/lisp/progmodes/subword-tests.el b/test/lisp/progmodes/subword-tests.el
index 86e905c869..6aeee76110 100644
--- a/test/lisp/progmodes/subword-tests.el
+++ b/test/lisp/progmodes/subword-tests.el
@@ -5,18 +5,20 @@
 ;; Author: Stefan Monnier <monnier@iro.umontreal.ca>
 ;; Keywords:
 
-;; This program is free software; you can redistribute it and/or modify
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
diff --git a/test/lisp/simple-tests.el b/test/lisp/simple-tests.el
index 63e504bbe1..457de91c14 100644
--- a/test/lisp/simple-tests.el
+++ b/test/lisp/simple-tests.el
@@ -4,18 +4,20 @@
 
 ;; Author: Artur Malabarba <bruce.connor.am@gmail.com>
 
-;; This program is free software; you can redistribute it and/or modify
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Code:
 
diff --git a/test/lisp/sort-tests.el b/test/lisp/sort-tests.el
index 21f483a23a..9033745e0d 100644
--- a/test/lisp/sort-tests.el
+++ b/test/lisp/sort-tests.el
@@ -4,18 +4,20 @@
 
 ;; Author: Artur Malabarba <bruce.connor.am@gmail.com>
 
-;; This program is free software; you can redistribute it and/or modify
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Code:
 
diff --git a/test/lisp/textmodes/conf-mode-tests.el b/test/lisp/textmodes/conf-mode-tests.el
index 7e87026995..7e094e8a7c 100644
--- a/test/lisp/textmodes/conf-mode-tests.el
+++ b/test/lisp/textmodes/conf-mode-tests.el
@@ -7,18 +7,18 @@
 
 ;; This file is part of GNU Emacs.
 
-;; This program is free software; you can redistribute it and/or modify
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
diff --git a/test/lisp/textmodes/css-mode-tests.el b/test/lisp/textmodes/css-mode-tests.el
index b57bbd8a9e..38cb73b355 100644
--- a/test/lisp/textmodes/css-mode-tests.el
+++ b/test/lisp/textmodes/css-mode-tests.el
@@ -7,18 +7,20 @@
 
 ;; This file is part of GNU Emacs.
 
-;; This program is free software; you can redistribute it and/or modify
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
diff --git a/test/lisp/url/url-handlers-test.el b/test/lisp/url/url-handlers-test.el
index bf574fcc1a..57692e53a7 100644
--- a/test/lisp/url/url-handlers-test.el
+++ b/test/lisp/url/url-handlers-test.el
@@ -4,18 +4,20 @@
 
 ;; Author: Nicolas Petton <nicolas@petton.fr>
 
-;; This program is free software; you can redistribute it and/or modify
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
diff --git a/test/lisp/wdired-tests.el b/test/lisp/wdired-tests.el
index 2cfabd1ee2..96e88f62fe 100644
--- a/test/lisp/wdired-tests.el
+++ b/test/lisp/wdired-tests.el
@@ -4,18 +4,18 @@
 
 ;; This file is part of GNU Emacs.
 
-;; This program is free software; you can redistribute it and/or modify
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Code:
 
diff --git a/test/manual/image-size-tests.el b/test/manual/image-size-tests.el
index 67d8f788c8..159e9025ae 100644
--- a/test/manual/image-size-tests.el
+++ b/test/manual/image-size-tests.el
@@ -4,18 +4,18 @@
 
 ;; This file is part of GNU Emacs.
 
-;; This program is free software; you can redistribute it and/or modify
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;; To test: Load the file and eval (image-size-tests).
 ;; A non-erroring result is a success.
diff --git a/test/manual/scroll-tests.el b/test/manual/scroll-tests.el
index 96a419a29d..937e0b1279 100644
--- a/test/manual/scroll-tests.el
+++ b/test/manual/scroll-tests.el
@@ -4,18 +4,18 @@
 
 ;; This file is part of GNU Emacs.
 
-;; This program is free software; you can redistribute it and/or modify
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
diff --git a/test/src/charset-tests.el b/test/src/charset-tests.el
index 9a1d0a46f9..86a0d6ffc1 100644
--- a/test/src/charset-tests.el
+++ b/test/src/charset-tests.el
@@ -2,18 +2,20 @@
 
 ;; Copyright 2017-2020 Free Software Foundation, Inc.
 
-;; This program is free software; you can redistribute it and/or modify
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Code:
 
diff --git a/test/src/chartab-tests.el b/test/src/chartab-tests.el
index 0ddea2b338..4d52dc367c 100644
--- a/test/src/chartab-tests.el
+++ b/test/src/chartab-tests.el
@@ -4,18 +4,20 @@
 
 ;; Author: Eli Zaretskii <eliz@gnu.org>
 
-;; This program is free software; you can redistribute it and/or modify
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Code:
 
diff --git a/test/src/cmds-tests.el b/test/src/cmds-tests.el
index e98e578460..302b00c676 100644
--- a/test/src/cmds-tests.el
+++ b/test/src/cmds-tests.el
@@ -5,18 +5,20 @@
 ;; Author: Nicolas Richard <youngfrog@members.fsf.org>
 ;; Keywords:
 
-;; This program is free software; you can redistribute it and/or modify
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
diff --git a/test/src/doc-tests.el b/test/src/doc-tests.el
index 50cf0144b8..797b9ba548 100644
--- a/test/src/doc-tests.el
+++ b/test/src/doc-tests.el
@@ -4,18 +4,20 @@
 
 ;; Author: Eli Zaretskii <eliz@gnu.org>
 
-;; This program is free software; you can redistribute it and/or modify
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Code:
 
diff --git a/test/src/editfns-tests.el b/test/src/editfns-tests.el
index 18f76afca9..d7c7aec17c 100644
--- a/test/src/editfns-tests.el
+++ b/test/src/editfns-tests.el
@@ -4,18 +4,18 @@
 
 ;; This file is part of GNU Emacs.
 
-;; This program is free software; you can redistribute it and/or modify
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Code:
 
diff --git a/test/src/lread-tests.el b/test/src/lread-tests.el
index 6efd8bed30..26fd6aa22a 100644
--- a/test/src/lread-tests.el
+++ b/test/src/lread-tests.el
@@ -6,18 +6,18 @@
 
 ;; This file is part of GNU Emacs.
 
-;; This program is free software; you can redistribute it and/or modify
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
diff --git a/test/src/print-tests.el b/test/src/print-tests.el
index 0f72996424..42e5962137 100644
--- a/test/src/print-tests.el
+++ b/test/src/print-tests.el
@@ -4,18 +4,18 @@
 
 ;; This file is part of GNU Emacs.
 
-;; This program is free software; you can redistribute it and/or modify
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Code:
 
diff --git a/test/src/process-tests.el b/test/src/process-tests.el
index 748afe41d2..e15ad47f96 100644
--- a/test/src/process-tests.el
+++ b/test/src/process-tests.el
@@ -2,18 +2,20 @@
 
 ;; Copyright (C) 2013-2020 Free Software Foundation, Inc.
 
-;; This program is free software; you can redistribute it and/or modify
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
diff --git a/test/src/timefns-tests.el b/test/src/timefns-tests.el
index 51dd1d1aeb..b35a528794 100644
--- a/test/src/timefns-tests.el
+++ b/test/src/timefns-tests.el
@@ -4,18 +4,20 @@
 
 ;; This file is part of GNU Emacs.
 
-;; This program is free software; you can redistribute it and/or modify
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
+
+;;; Code:
 
 (require 'ert)
 

commit a6539d81da910b4a0406207f21725bc96b156136
Author: Stefan Kangas <stefankangas@gmail.com>
Date:   Thu Aug 27 02:35:53 2020 +0200

    ; * lisp/info.el (Info-complete-menu-item): Fix wording of comment.

diff --git a/lisp/info.el b/lisp/info.el
index fb47cb4d18..ab678c26b6 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -2775,7 +2775,7 @@ Because of ambiguities, this should be concatenated with something like
               ;; Go back to the start node (for the next completion).
               (unless (equal Info-current-node orignode)
                 (Info-goto-node orignode))
-              ;; Sort list alphabetically.
+              ;; Arrange list to be in order found in node.
               (setq completions (nreverse completions))
               ;; Update the cache.
               (setq Info-complete-cache

commit c1b0515952c4d32933b4e3da30846a91db8868ee
Author: Protesilaos Stavrou <info@protesilaos.com>
Date:   Thu Aug 27 01:29:35 2020 +0200

    Add themes modus-operandi and modus-vivendi
    
    * etc/themes/modus-operandi-theme.el:
    * etc/themes/modus-vivendi-theme.el: New themes.  (Bug#43019)

diff --git a/etc/NEWS b/etc/NEWS
index 14a75ca75d..6e04a1cf89 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1029,6 +1029,11 @@ mode, as are other data files produced by Emacs.
 
 It's a library to create, query, navigate and display hierarchy structures.
 
+** New themes 'modus-vivendi' and 'modus-operandi'.
+These themes are designed for colour-contrast accessibility.  You can
+load the new themes using 'M-x customize-themes' or 'load-theme' from
+your init file.
+
 
 * Incompatible Editing Changes in Emacs 28.1
 
diff --git a/etc/themes/modus-operandi-theme.el b/etc/themes/modus-operandi-theme.el
new file mode 100644
index 0000000000..c1090eedef
--- /dev/null
+++ b/etc/themes/modus-operandi-theme.el
@@ -0,0 +1,4266 @@
+;;; modus-operandi-theme.el --- Accessible light theme (WCAG AAA) -*- lexical-binding:t -*-
+
+;; Copyright (c) 2019-2020 Free Software Foundation, Inc.
+
+;; Author: Protesilaos Stavrou <info@protesilaos.com>
+;; URL: https://gitlab.com/protesilaos/modus-themes
+;; Version: 0.12.0
+;; Package-Requires: ((emacs "26.1"))
+;; Keywords: faces, theme, accessibility
+
+;; This file is part of GNU Emacs.
+
+;; This program is free software; you can redistribute it and/or
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+;;
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+;;
+;; This theme is designed for colour-contrast accessibility.
+;;
+;; 1. Provide a consistent minimum contrast ratio between background and
+;; foreground values of 7:1 or higher.  This meets the highest such
+;; accessibility criterion per the guidelines of the Worldwide Web
+;; Consortium's Working Group on Accessibility (WCAG AAA standard).
+;;
+;; 2. Offer as close to full face coverage as possible.  The list is
+;; already quite long (see further below), with more additions to follow
+;; as part of the ongoing development process.
+;;
+;; The theme provides the following customisation options, all of which
+;; are disabled by default:
+;;
+;;     modus-operandi-theme-slanted-constructs             (boolean)
+;;     modus-operandi-theme-bold-constructs                (boolean)
+;;     modus-operandi-theme-variable-pitch-headings        (boolean)
+;;     modus-operandi-theme-rainbow-headings               (boolean)
+;;     modus-operandi-theme-section-headings               (boolean)
+;;     modus-operandi-theme-scale-headings                 (boolean)
+;;     modus-operandi-theme-fringes                        (choice)
+;;     modus-operandi-theme-org-blocks                     (choice)
+;;     modus-operandi-theme-prompts                        (choice)
+;;     modus-operandi-theme-3d-modeline                    (boolean)
+;;     modus-operandi-theme-subtle-diffs                   (boolean)
+;;     modus-operandi-theme-faint-syntax                   (boolean)
+;;     modus-operandi-theme-intense-hl-line                (boolean)
+;;     modus-operandi-theme-intense-paren-match            (boolean)
+;;     modus-operandi-theme-completions                    (choice)
+;;     modus-operandi-theme-override-colors-alist          (alist)
+;;
+;; The default scale is as follows (it can be customised as well):
+;;
+;;     modus-operandi-theme-scale-1 1.05
+;;     modus-operandi-theme-scale-2 1.1
+;;     modus-operandi-theme-scale-3 1.15
+;;     modus-operandi-theme-scale-4 1.2
+;;     modus-operandi-theme-scale-5 1.3
+;;
+;; What follows is the list of explicitly supported packages or face
+;; groups (there are implicitly supported packages as well, which
+;; inherit from font-lock or some basic group).  You are encouraged to
+;; notify me of any missing package or change you would like to see.
+;;
+;;     ace-window
+;;     ag
+;;     alert
+;;     all-the-icons
+;;     annotate
+;;     anzu
+;;     apropos
+;;     apt-sources-list
+;;     artbollocks-mode
+;;     auctex and TeX
+;;     auto-dim-other-buffers
+;;     avy
+;;     bm
+;;     bongo
+;;     boon
+;;     breakpoint (provided by built-in gdb-mi.el)
+;;     buffer-expose
+;;     calendar and diary
+;;     calfw
+;;     centaur-tabs
+;;     change-log and log-view (`vc-print-log' and `vc-print-root-log')
+;;     cider
+;;     circe
+;;     color-rg
+;;     column-enforce-mode
+;;     company-mode
+;;     company-posframe
+;;     compilation-mode
+;;     completions
+;;     counsel
+;;     counsel-css
+;;     counsel-notmuch
+;;     counsel-org-capture-string
+;;     cov
+;;     csv-mode
+;;     ctrlf
+;;     custom (M-x customize)
+;;     dap-mode
+;;     dashboard (emacs-dashboard)
+;;     deadgrep
+;;     debbugs
+;;     define-word
+;;     deft
+;;     dictionary
+;;     diff-hl
+;;     diff-mode
+;;     dim-autoload
+;;     dired
+;;     dired-async
+;;     dired-git
+;;     dired-git-info
+;;     dired-narrow
+;;     dired-subtree
+;;     diredfl
+;;     disk-usage
+;;     doom-modeline
+;;     dynamic-ruler
+;;     easy-jekyll
+;;     easy-kill
+;;     ebdb
+;;     ediff
+;;     eglot
+;;     el-search
+;;     eldoc-box
+;;     elfeed
+;;     elfeed-score
+;;     emms
+;;     enhanced-ruby-mode
+;;     epa
+;;     equake
+;;     erc
+;;     eros
+;;     ert
+;;     eshell
+;;     eshell-fringe-status
+;;     eshell-git-prompt
+;;     eshell-prompt-extras (epe)
+;;     evil (evil-mode)
+;;     evil-goggles
+;;     evil-visual-mark-mode
+;;     eww
+;;     eyebrowse
+;;     fancy-dabbrev
+;;     flycheck
+;;     flycheck-indicator
+;;     flycheck-posframe
+;;     flymake
+;;     flyspell
+;;     flyspell-correct
+;;     flx
+;;     freeze-it
+;;     frog-menu
+;;     focus
+;;     fold-this
+;;     font-lock (generic syntax highlighting)
+;;     forge
+;;     fountain (fountain-mode)
+;;     geiser
+;;     git-commit
+;;     git-gutter (and variants)
+;;     git-lens
+;;     git-rebase
+;;     git-timemachine
+;;     git-walktree
+;;     gnus
+;;     golden-ratio-scroll-screen
+;;     helm
+;;     helm-ls-git
+;;     helm-switch-shell
+;;     helm-xref
+;;     helpful
+;;     highlight-blocks
+;;     highlight-defined
+;;     highlight-escape-sequences (`hes-mode')
+;;     highlight-indentation
+;;     highlight-numbers
+;;     highlight-symbol
+;;     highlight-tail
+;;     highlight-thing
+;;     hl-defined
+;;     hl-fill-column
+;;     hl-line-mode
+;;     hl-todo
+;;     hydra
+;;     hyperlist
+;;     ibuffer
+;;     icomplete
+;;     ido-mode
+;;     iedit
+;;     iflipb
+;;     imenu-list
+;;     indium
+;;     info
+;;     info-colors
+;;     interaction-log
+;;     ioccur
+;;     isearch, occur, etc.
+;;     ivy
+;;     ivy-posframe
+;;     jira (org-jira)
+;;     journalctl-mode
+;;     js2-mode
+;;     julia
+;;     jupyter
+;;     kaocha-runner
+;;     keycast
+;;     line numbers (`display-line-numbers-mode' and global variant)
+;;     lsp-mode
+;;     lsp-ui
+;;     magit
+;;     magit-imerge
+;;     man
+;;     markdown-mode
+;;     markup-faces (`adoc-mode')
+;;     mentor
+;;     messages
+;;     minibuffer-line
+;;     minimap
+;;     modeline
+;;     mood-line
+;;     mu4e
+;;     mu4e-conversation
+;;     multiple-cursors
+;;     neotree
+;;     no-emoji
+;;     notmuch
+;;     num3-mode
+;;     nxml-mode
+;;     orderless
+;;     org
+;;     org-journal
+;;     org-noter
+;;     org-pomodoro
+;;     org-recur
+;;     org-roam
+;;     org-superstar
+;;     org-table-sticky-header
+;;     org-treescope
+;;     origami
+;;     outline-mode
+;;     outline-minor-faces
+;;     package (M-x list-packages)
+;;     page-break-lines
+;;     paradox
+;;     paren-face
+;;     parrot
+;;     pass
+;;     persp-mode
+;;     perspective
+;;     phi-grep
+;;     phi-search
+;;     pkgbuild-mode
+;;     pomidor
+;;     powerline
+;;     powerline-evil
+;;     proced
+;;     prodigy
+;;     rainbow-blocks
+;;     rainbow-identifiers
+;;     rainbow-delimiters
+;;     rcirc
+;;     regexp-builder (also known as `re-builder')
+;;     rg
+;;     ripgrep
+;;     rmail
+;;     ruler-mode
+;;     sallet
+;;     selectrum
+;;     semantic
+;;     sesman
+;;     shell-script-mode
+;;     show-paren-mode
+;;     side-notes
+;;     skewer-mode
+;;     smart-mode-line
+;;     smartparens
+;;     smerge
+;;     spaceline
+;;     speedbar
+;;     spell-fu
+;;     stripes
+;;     suggest
+;;     switch-window
+;;     swiper
+;;     swoop
+;;     sx
+;;     symbol-overlay
+;;     tab-bar-mode
+;;     tab-line-mode
+;;     syslog-mode
+;;     table (built-in table.el)
+;;     telephone-line
+;;     term
+;;     tomatinho
+;;     transient (pop-up windows like Magit's)
+;;     trashed
+;;     treemacs
+;;     tty-menu
+;;     tuareg
+;;     undo-tree
+;;     vc (built-in mode line status for version control)
+;;     vc-annotate (C-x v g)
+;;     vdiff
+;;     vimish-fold
+;;     visible-mark
+;;     visual-regexp
+;;     volatile-highlights
+;;     vterm
+;;     wcheck-mode
+;;     web-mode
+;;     wgrep
+;;     which-function-mode
+;;     which-key
+;;     whitespace-mode
+;;     window-divider-mode
+;;     winum
+;;     writegood-mode
+;;     woman
+;;     xah-elisp-mode
+;;     xref
+;;     xterm-color (and ansi-colors)
+;;     yaml-mode
+;;     yasnippet
+;;     ztree
+
+;;; Code:
+
+
+
+(deftheme modus-operandi
+  "Light theme that conforms with the highest accessibility
+  standard for colour contrast between background and
+  foreground elements (WCAG AAA).")
+
+;;; Custom faces
+
+;; These faces will be inherited by actual constructs.  They are meant
+;; for those cases where a face needs to distinguish its output from
+;; the rest of the text, such as `isearch' and `occur'â€¦  We define
+;; these separately in order to combine each colour with its
+;; appropriate foreground value.  This is to ensure a consistent
+;; contrast ratio of >= 7:1.
+(defgroup modus-theme ()
+  "Theme that ensures WCAG AAA accessibility (contrast ratio
+between foreground and background is >= 7:1)."
+  :group 'faces
+  :prefix "modus-theme-"
+  :link '(url-link :tag "GitLab" "https://gitlab.com/protesilaos/modus-themes")
+  :tag "Modus Operandi")
+
+(defface modus-theme-subtle-red nil nil)
+(defface modus-theme-subtle-green nil nil)
+(defface modus-theme-subtle-yellow nil nil)
+(defface modus-theme-subtle-blue nil nil)
+(defface modus-theme-subtle-magenta nil nil)
+(defface modus-theme-subtle-cyan nil nil)
+(defface modus-theme-subtle-neutral nil nil)
+(defface modus-theme-intense-red nil nil)
+(defface modus-theme-intense-green nil nil)
+(defface modus-theme-intense-yellow nil nil)
+(defface modus-theme-intense-blue nil nil)
+(defface modus-theme-intense-magenta nil nil)
+(defface modus-theme-intense-cyan nil nil)
+(defface modus-theme-intense-neutral nil nil)
+(defface modus-theme-refine-red nil nil)
+(defface modus-theme-refine-green nil nil)
+(defface modus-theme-refine-yellow nil nil)
+(defface modus-theme-refine-blue nil nil)
+(defface modus-theme-refine-magenta nil nil)
+(defface modus-theme-refine-cyan nil nil)
+(defface modus-theme-active-red nil nil)
+(defface modus-theme-active-green nil nil)
+(defface modus-theme-active-yellow nil nil)
+(defface modus-theme-active-blue nil nil)
+(defface modus-theme-active-magenta nil nil)
+(defface modus-theme-active-cyan nil nil)
+(defface modus-theme-fringe-red nil nil)
+(defface modus-theme-fringe-green nil nil)
+(defface modus-theme-fringe-yellow nil nil)
+(defface modus-theme-fringe-blue nil nil)
+(defface modus-theme-fringe-magenta nil nil)
+(defface modus-theme-fringe-cyan nil nil)
+(defface modus-theme-nuanced-red nil nil)
+(defface modus-theme-nuanced-green nil nil)
+(defface modus-theme-nuanced-yellow nil nil)
+(defface modus-theme-nuanced-blue nil nil)
+(defface modus-theme-nuanced-magenta nil nil)
+(defface modus-theme-nuanced-cyan nil nil)
+(defface modus-theme-special-cold nil nil)
+(defface modus-theme-special-mild nil nil)
+(defface modus-theme-special-warm nil nil)
+(defface modus-theme-special-calm nil nil)
+(defface modus-theme-diff-added nil nil)
+(defface modus-theme-diff-changed nil nil)
+(defface modus-theme-diff-removed nil nil)
+(defface modus-theme-diff-refine-added nil nil)
+(defface modus-theme-diff-refine-changed nil nil)
+(defface modus-theme-diff-refine-removed nil nil)
+(defface modus-theme-diff-focus-added nil nil)
+(defface modus-theme-diff-focus-changed nil nil)
+(defface modus-theme-diff-focus-removed nil nil)
+(defface modus-theme-diff-heading nil nil)
+(defface modus-theme-header nil nil)    ; Name is tentative
+(defface modus-theme-mark-alt nil nil)
+(defface modus-theme-mark-del nil nil)
+(defface modus-theme-mark-sel nil nil)
+(defface modus-theme-mark-symbol nil nil)
+(defface modus-theme-hl-line nil nil)
+
+;;; Customisation options
+
+;; User-facing customisation options.  They are all deactivated by
+;; default (users must opt in).
+(defcustom modus-operandi-theme-slanted-constructs nil
+  "Use slanted text in more code constructs (italics or oblique)."
+  :type 'boolean)
+
+(defcustom modus-operandi-theme-bold-constructs nil
+  "Use bold text in more code constructs."
+  :type 'boolean)
+
+(define-obsolete-variable-alias 'modus-operandi-theme-proportional-fonts
+  'modus-operandi-theme-variable-pitch-headings "`modus-operandi-theme' 0.11.0")
+
+(defcustom modus-operandi-theme-proportional-fonts nil
+  "Use proportional fonts (variable-pitch) in headings."
+  :type 'boolean)
+
+(defcustom modus-operandi-theme-variable-pitch-headings nil
+  "Use proportional fonts (variable-pitch) in headings."
+  :type 'boolean)
+
+(defcustom modus-operandi-theme-rainbow-headings nil
+  "Use more saturated colours for headings."
+  :type 'boolean)
+
+(defcustom modus-operandi-theme-section-headings nil
+  "Use a background and an overline in headings."
+  :type 'boolean)
+
+(defcustom modus-operandi-theme-scale-headings nil
+  "Use font scaling for headings."
+  :type 'boolean)
+
+(defcustom modus-operandi-theme-scale-1 1.05
+  "Font size that is slightly larger than the base value.
+The default is a floating point that is interpreted as a multiple
+of the base font size.  However, the variable also accepts an
+integer, understood as an absolute height (e.g. a value of 140 is
+the same as setting the font at 14 point size).
+
+For more on the matter, read the documentation of
+`set-face-attribute', specifically the ':height' section."
+  :type 'number)
+
+(defcustom modus-operandi-theme-scale-2 1.1
+  "Font size slightly larger than `modus-operandi-theme-scale-1'.
+The default is a floating point that is interpreted as a multiple
+of the base font size.  However, the variable also accepts an
+integer, understood as an absolute height (e.g. a value of 140 is
+the same as setting the font at 14 point size).
+
+For more on the matter, read the documentation of
+`set-face-attribute', specifically the ':height' section."
+  :type 'number)
+
+(defcustom modus-operandi-theme-scale-3 1.15
+  "Font size slightly larger than `modus-operandi-theme-scale-2'.
+The default is a floating point that is interpreted as a multiple
+of the base font size.  However, the variable also accepts an
+integer, understood as an absolute height (e.g. a value of 140 is
+the same as setting the font at 14 point size).
+
+For more on the matter, read the documentation of
+`set-face-attribute', specifically the ':height' section."
+  :type 'number)
+
+(defcustom modus-operandi-theme-scale-4 1.2
+  "Font size slightly larger than `modus-operandi-theme-scale-3'.
+The default is a floating point that is interpreted as a multiple
+of the base font size.  However, the variable also accepts an
+integer, understood as an absolute height (e.g. a value of 140 is
+the same as setting the font at 14 point size).
+
+For more on the matter, read the documentation of
+`set-face-attribute', specifically the ':height' section."
+  :type 'number)
+
+(defcustom modus-operandi-theme-scale-5 1.3
+  "Font size slightly larger than `modus-operandi-theme-scale-4'.
+The default is a floating point that is interpreted as a multiple
+of the base font size.  However, the variable also accepts an
+integer, understood as an absolute height (e.g. a value of 140 is
+the same as setting the font at 14 point size).
+
+For more on the matter, read the documentation of
+`set-face-attribute', specifically the ':height' section."
+  :type 'number)
+
+(define-obsolete-variable-alias 'modus-operandi-theme-visible-fringes
+  'modus-operandi-theme-fringes "`modus-operandi-theme' 0.12.0")
+
+(defcustom modus-operandi-theme-visible-fringes nil
+  "Use a visible style for fringes."
+  :type 'boolean)
+
+(defcustom modus-operandi-theme-fringes nil
+  "Define the visibility of fringes.
+
+Nil means the fringes have no background colour.  Option `subtle'
+will apply a greyscale value that is visible yet close to the
+main buffer background colour.  Option `intense' will use a more
+pronounced greyscale value."
+  :type '(choice
+          (const :tag "No visible fringes (default)" nil)
+          (const :tag "Subtle greyscale background" subtle)
+          (const :tag "Intense greyscale background" intense)))
+
+(define-obsolete-variable-alias 'modus-operandi-theme-distinct-org-blocks
+  'modus-operandi-theme-org-blocks "`modus-operandi-theme' 0.11.0")
+
+(defcustom modus-operandi-theme-distinct-org-blocks nil
+  "Use a distinct neutral background for `org-mode' blocks."
+  :type 'boolean)
+
+(define-obsolete-variable-alias 'modus-operandi-theme-rainbow-org-src-blocks
+  'modus-operandi-theme-org-blocks "`modus-operandi-theme' 0.11.0")
+
+(defcustom modus-operandi-theme-rainbow-org-src-blocks nil
+  "Use colour-coded backgrounds for `org-mode' source blocks.
+The colour in use depends on the language (send feedback to
+include more languages)."
+  :type 'boolean)
+
+(defcustom modus-operandi-theme-org-blocks nil
+  "Use a subtle grey or colour-coded background for Org blocks.
+
+Nil means that the block will have no background of its own and
+will use the default that applies to the rest of the buffer.
+
+Option `greyscale' will apply a subtle neutral grey background to
+the block's contents.  It also affects the begin and end lines of
+the block: their background will be extended to the edge of the
+window for Emacs version >= 27 where the ':extend' keyword is
+recognised by `set-face-attribute'.
+
+Option `rainbow' will use an accented background for the contents
+of the block.  The exact colour will depend on the programming
+language and is controlled by the `org-src-block-faces'
+variable (refer to the theme's source code for the current
+association list)."
+  :type '(choice
+          (const :tag "No Org block background (default)" nil)
+          (const :tag "Subtle grey block background" greyscale)
+          (const :tag "Colour-coded background per programming language" rainbow)))
+
+(defcustom modus-operandi-theme-3d-modeline nil
+  "Use a three-dimensional style for the active mode line."
+  :type 'boolean)
+
+(defcustom modus-operandi-theme-subtle-diffs nil
+  "Use fewer/dim backgrounds in `diff-mode', `ediff',`magit'."
+  :type 'boolean)
+
+(define-obsolete-variable-alias 'modus-operandi-theme-intense-standard-completions
+  'modus-operandi-theme-completions "`modus-operandi-theme' 0.12.0")
+
+(defcustom modus-operandi-theme-intense-standard-completions nil
+  "Use prominent backgrounds for Icomplete, Ido, or similar."
+  :type 'boolean)
+
+(defcustom modus-operandi-theme-completions nil
+  "Apply special styles to the UI of completion frameworks.
+This concerns Icomplete, Ivy, Helm, Selectrum, Ido, as well as
+any other tool meant to enhance their experience.  The effect
+will vary depending on the completion framework.
+
+Nil means to remain faithful to the metaphors that each UI
+establishes.  For example, Icomplete and Ido only use foreground
+colours to style their matches, whereas Ivy or Helm rely on an
+aesthetic that combines coloured backgrounds with appropriate
+text colour.
+
+Option `moderate' will apply a combination of background and
+foreground that is fairly subtle.  For Icomplete and the like,
+this constitutes a departure from their standard style.  While
+Ivy, Helm, and the others, will use less pronounced colours for
+applicable contexts.
+
+Option `opinionated' will apply colour combinations that
+refashion the completion UI.  So Icomplete et al will now use
+styles that resemble the defaults of Ivy and co., while the
+latter group will revert to an even more nuanced aesthetic."
+  :type '(choice
+          (const :tag "Respect the framework's established aesthetic (default)" nil)
+          (const :tag "Subtle backgrounds for various elements" moderate)
+          (const :tag "Radical alternative to the framework's looks" opinionated)))
+
+(defcustom modus-operandi-theme-prompts nil
+  "Use subtle or intense styles for minibuffer and REPL prompts.
+
+Nil means to only use an accented foreground colour.
+
+Options `subtle' and `intense' will change both the background
+and the foreground values.  The latter has a more pronounced
+effect than the former."
+  :type '(choice
+          (const :tag "No prompt background (default)" nil)
+          (const :tag "Subtle accented background for the prompt" subtle)
+          (const :tag "Intense background and foreground for the prompt" intense)))
+
+(defcustom modus-operandi-theme-intense-hl-line nil
+  "Use more prominent background for `hl-line-mode'."
+  :type 'boolean)
+
+(defcustom modus-operandi-theme-intense-paren-match nil
+  "Use more prominent colour for parenthesis matching."
+  :type 'boolean)
+
+(defcustom modus-operandi-theme-faint-syntax nil
+  "Use less saturated colours for code syntax highlighting."
+  :type 'boolean)
+
+;;; Internal functions
+
+;; Helper functions that are meant to ease the implementation of the
+;; above customisation options.
+(defun modus-operandi-theme-bold-weight ()
+  "Conditional use of a heavier text weight."
+  (when modus-operandi-theme-bold-constructs
+    (list :inherit 'bold)))
+
+(defun modus-operandi-theme-fringe (subtlebg intensebg)
+  "Conditional use of background colours for fringes.
+SUBTLEBG should be a subtle greyscale value.  INTENSEBG must be a
+more pronounced greyscale colour."
+  (pcase modus-operandi-theme-fringes
+    ('intense (list :background intensebg))
+    ('subtle (list :background subtlebg))
+    (_ (list :background nil))))
+
+(defun modus-operandi-theme-prompt (mainfg subtlebg subtlefg intensebg intensefg)
+  "Conditional use of background colours for prompts.
+MAINFG is the prompt's standard foreground.  SUBTLEBG should be a
+subtle accented background that works with SUBTLEFG.  INTENSEBG
+must be a more pronounced accented colour that should be
+combinable with INTENSEFG."
+  (pcase modus-operandi-theme-prompts
+    ('intense (list :background intensebg :foreground intensefg))
+    ('subtle (list :background subtlebg :foreground subtlefg))
+    (_ (list :background nil :foreground mainfg))))
+
+(defun modus-operandi-theme-paren (normalbg intensebg)
+  "Conditional use of intense colours for matching parentheses.
+NORMALBG should the special palette colour 'bg-paren-match' or
+something similar.  INTENSEBG must be easier to discern next to
+other backgrounds, such as the special palette colour
+'bg-paren-match-intense'."
+  (if modus-operandi-theme-intense-paren-match
+      (list :background intensebg)
+    (list :background normalbg)))
+
+(defun modus-operandi-theme-syntax-foreground (normal faint)
+  "Apply foreground value to code syntax.
+NORMAL is the more saturated colour, which should be the default.
+FAINT is the less saturated colour."
+  (if modus-operandi-theme-faint-syntax
+      (list :foreground faint)
+    (list :foreground normal)))
+
+(defun modus-operandi-theme-heading-foreground (subtle rainbow)
+  "Apply foreground value to headings.
+SUBTLE is the default aesthetic.  RAINBOW is the saturated one."
+  (if modus-operandi-theme-rainbow-headings
+      (list :foreground rainbow)
+    (list :foreground subtle)))
+
+(defun modus-operandi-theme-heading-block (bg fg)
+  "Conditionally extend heading styles.
+Apply BG to background and FG to overline."
+  (if modus-operandi-theme-section-headings
+      (append
+       (and (>= emacs-major-version 27) '(:extend t))
+       (list :background bg :overline fg))
+    (list :background nil :overline nil)))
+
+(defun modus-operandi-theme-org-todo-block (bgbox fgbox fg)
+  "Conditionally extend the styles of Org keywords.
+BGBOX applies to the background.  FGBOX applies to the foreground
+and the border.  FG is used when no block style is in effect."
+  (if modus-operandi-theme-section-headings
+      (list :background bgbox :foreground fgbox :box (list :color fgbox))
+    (list :foreground fg)))
+
+(defun modus-operandi-theme-org-block (bgblk)
+  "Conditionally set the background of Org blocks.
+BGBLK applies to a distinct neutral background.  Else blocks have
+no background of their own (the default), so they look the same
+as the rest of the buffer.
+
+`modus-operandi-theme-org-blocks' also accepts a `rainbow' option
+which is applied conditionally to `org-src-block-faces' (see the
+theme's source code)."
+  (if (eq modus-operandi-theme-org-blocks 'greyscale)
+      (append
+       (and (>= emacs-major-version 27) '(:extend t))
+       (list :background bgblk))
+    (list :background nil)))
+
+(defun modus-operandi-theme-org-block-delim (bgaccent fgaccent bg fg)
+  "Conditionally set the styles of Org block delimiters.
+BG, FG, BGACCENT, FGACCENT apply a background and foreground
+colour respectively.
+
+The former pair is a greyscale combination that should be more
+distinct than the background of the block.  It is applied to the
+default styles or when `modus-operandi-theme-org-blocks' is set
+to `greyscale'.
+
+The latter pair should be more subtle than the background of the
+block, as it is used when `modus-operandi-theme-org-blocks' is
+set to `rainbow'."
+  (pcase modus-operandi-theme-org-blocks
+    ('greyscale (append (and (>= emacs-major-version 27) '(:extend t))
+                        (list :background bg :foreground fg)))
+    ('rainbow (list :background bgaccent :foreground fgaccent))
+    (_ (list :background bg :foreground fg))))
+
+(defun modus-operandi-theme-modeline-box (col3d col &optional btn int)
+  "Control the box properties of the mode line.
+COL3D is the border that is intended for the three-dimensional
+modeline.  COL applies to the two-dimensional modeline.  Optional
+BTN provides the 3d button style.  Optional INT defines a border
+width."
+  (let* ((style (if btn 'released-button nil))
+         (int (if int int 1)))
+    (if modus-operandi-theme-3d-modeline
+        (list :line-width int :color col3d :style style)
+      (list :line-width 1 :color col :style nil))))
+
+(defun modus-operandi-theme-modeline-props (bg3d fg3d &optional bg fg)
+  "Control the background and foreground of the mode line.
+BG is the modeline's background.  FG is the modeline's
+foreground.  BG3D and FG3D apply to the three-dimensional
+modeline style."
+  (if modus-operandi-theme-3d-modeline
+      (list :background bg3d :foreground fg3d)
+    (list :background bg :foreground fg)))
+
+(defun modus-operandi-theme-diffs (subtle-bg subtle-fg intense-bg intense-fg)
+  "Colour combinations for `modus-operandi-theme-subtle-diffs'.
+
+SUBTLE-BG should be similar or the same as the main background.
+SUBTLE-FG should be an appropriate accent value.  INTENSE-BG
+should be one of the dedicated backgrounds for diffs.  INTENSE-FG
+should be one of the dedicated foregrounds for diffs"
+  (if modus-operandi-theme-subtle-diffs
+      (list :background subtle-bg :foreground subtle-fg)
+    (list :background intense-bg :foreground intense-fg)))
+
+(defun modus-operandi-theme-standard-completions (mainfg subtlebg intensebg intensefg)
+  "Combinations for `modus-operandi-theme-completions'.
+These are intended for Icomplete, Ido, and related.
+
+MAINFG is an accented foreground value.  SUBTLEBG is an accented
+background value that can be combined with MAINFG.  INTENSEBG and
+INTENSEFG are accented colours that are designed to be used in
+tandem."
+  (pcase modus-operandi-theme-completions
+    ('opinionated (list :background intensebg :foreground intensefg))
+    ('moderate (list :background subtlebg :foreground mainfg))
+    (_ (list :foreground mainfg))))
+
+(defun modus-operandi-theme-extra-completions (subtleface intenseface altface &optional altfg bold)
+  "Combinations for `modus-operandi-theme-completions'.
+These are intended for Helm, Ivy, Selectrum, etc.
+
+SUBTLEFACE and INTENSEFACE are custom theme faces that combine a
+background and foreground value.  The difference between the two
+is a matter of degree.
+
+ALTFACE is a combination of colours that represents a departure
+from the UI's default aesthetics.  Optional ALTFG is meant to be
+used in tandem with it.
+
+Optional BOLD will apply a heavier weight to the text."
+  (pcase modus-operandi-theme-completions
+    ('opinionated (list :inherit (list altface bold)
+                        :foreground (if altfg altfg 'unspecified)))
+    ('moderate (list :inherit (list subtleface bold)))
+    (_ (list :inherit (list intenseface bold)))))
+
+(defun modus-operandi-theme-scale (amount)
+  "Scale heading by AMOUNT.
+
+AMOUNT is a customisation option."
+  (when modus-operandi-theme-scale-headings
+    (list :height amount)))
+
+;;; Colour palette
+
+;; Define colour palette.  Each colour must have a >= 7:1 contrast
+;; ratio relative to the foreground/background colour it is rendered
+;; against.
+;;
+;; The design of the colour palette as a macro that maps it to faces is
+;; adapted from zenbern-theme.el, last seen at commit 7dd7968:
+;; https://github.com/bbatsov/zenburn-emacs
+(eval-and-compile
+  (defconst modus-operandi-theme-default-colors-alist
+    '(;; base values
+      ("bg-main" . "#ffffff") ("fg-main" . "#000000")
+      ("bg-alt" . "#f0f0f0") ("fg-alt" . "#505050")
+      ("bg-dim" . "#f8f8f8") ("fg-dim" . "#282828")
+      ;; specifically for on/off states (e.g. `mode-line')
+      ;;
+      ;; must be combined with themselves
+      ("bg-active" . "#e0e0e0") ("fg-active" . "#191919")
+      ("bg-inactive" . "#efedef") ("fg-inactive" . "#424242")
+      ;; special base values, used only for cases where the above
+      ;; fg-* or bg-* cannot or should not be used (to avoid confusion)
+      ;; must be combined with: {fg,bg}-{main,alt,dim}
+      ("bg-special-cold" . "#dde3f4") ("fg-special-cold" . "#093060")
+      ("bg-special-mild" . "#c4ede0") ("fg-special-mild" . "#184034")
+      ("bg-special-warm" . "#f0e0d4") ("fg-special-warm" . "#5d3026")
+      ("bg-special-calm" . "#f8ddea") ("fg-special-calm" . "#61284f")
+      ;; styles for the main constructs
+      ;;
+      ;; must be combined with: `bg-main', `bg-alt', `bg-dim'
+      ("red" . "#a60000") ("green" . "#005e00")
+      ("yellow" . "#813e00") ("blue" . "#0030a6")
+      ("magenta" . "#721045") ("cyan" . "#00538b")
+      ;; styles for common, but still specialised constructs
+      ;;
+      ;; must be combined with: `bg-main', `bg-alt', `bg-dim'
+      ("red-alt" . "#972500") ("green-alt" . "#315b00")
+      ("yellow-alt" . "#70480f") ("blue-alt" . "#223fbf")
+      ("magenta-alt" . "#8f0075") ("cyan-alt" . "#30517f")
+      ;; same purpose as above, just slight differences
+      ;;
+      ;; must be combined with: `bg-main', `bg-alt', `bg-dim'
+      ("red-alt-other" . "#a0132f") ("green-alt-other" . "#145c33")
+      ("yellow-alt-other" . "#863927") ("blue-alt-other" . "#0000bb")
+      ("magenta-alt-other" . "#5317ac") ("cyan-alt-other" . "#005a5f")
+      ;; styles for desaturated foreground text, intended for use with
+      ;; the `modus-operandi-theme-faint-syntax' option
+      ;;
+      ;; must be combined with: `bg-main', `bg-alt', `bg-dim'
+      ("red-faint" . "#7f1010") ("green-faint" . "#104410")
+      ("yellow-faint" . "#5f4400") ("blue-faint" . "#002f88")
+      ("magenta-faint" . "#752f50") ("cyan-faint" . "#12506f")
+
+      ("red-alt-faint" . "#702f00") ("green-alt-faint" . "#30440f")
+      ("yellow-alt-faint" . "#5d5000") ("blue-alt-faint" . "#003f78")
+      ("magenta-alt-faint" . "#702565") ("cyan-alt-faint" . "#354f6f")
+
+      ("red-alt-other-faint" . "#7f002f") ("green-alt-other-faint" . "#0f443f")
+      ("yellow-alt-other-faint" . "#5e3a20") ("blue-alt-other-faint" . "#1f2f6f")
+      ("magenta-alt-other-faint" . "#5f3f7f") ("cyan-alt-other-faint" . "#2e584f")
+      ;; styles for elements that should be very subtle, yet accented
+      ;;
+      ;; must be combined with: `bg-main', `bg-alt', `bg-dim' or any of
+      ;; the "nuanced" backgrounds
+      ("red-nuanced" . "#5f0000") ("green-nuanced" . "#004000")
+      ("yellow-nuanced" . "#3f3000") ("blue-nuanced" . "#201f55")
+      ("magenta-nuanced" . "#541f4f") ("cyan-nuanced" . "#0f3360")
+      ;; styles for slightly accented background
+      ;;
+      ;; must be combined with any of the above foreground values
+      ("red-nuanced-bg" . "#fff1f0") ("green-nuanced-bg" . "#ecf7ed")
+      ("yellow-nuanced-bg" . "#fff3da") ("blue-nuanced-bg" . "#f3f3ff")
+      ("magenta-nuanced-bg" . "#fdf0ff") ("cyan-nuanced-bg" . "#ebf6fa")
+      ;; styles for elements that should draw attention to themselves
+      ;;
+      ;; must be combined with: `bg-main'
+      ("red-intense" . "#b60000") ("green-intense" . "#006800")
+      ("yellow-intense" . "#904200") ("blue-intense" . "#1111ee")
+      ("magenta-intense" . "#7000e0") ("cyan-intense" . "#205b93")
+      ;; styles for background elements that should be visible yet
+      ;; subtle
+      ;;
+      ;; must be combined with: `fg-dim'
+      ("red-subtle-bg" . "#f2b0a2") ("green-subtle-bg" . "#aecf90")
+      ("yellow-subtle-bg" . "#e4c340") ("blue-subtle-bg" . "#b5d0ff")
+      ("magenta-subtle-bg" . "#f0d3ff") ("cyan-subtle-bg" . "#c0efff")
+      ;; styles for background elements that should be visible and
+      ;; distinguishable
+      ;;
+      ;; must be combined with: `fg-main'
+      ("red-intense-bg" . "#ff8892") ("green-intense-bg" . "#5ada88")
+      ("yellow-intense-bg" . "#f5df23") ("blue-intense-bg" . "#6aaeff")
+      ("magenta-intense-bg" . "#d5baff") ("cyan-intense-bg" . "#42cbd4")
+      ;; styles for refined contexts where both the foreground and the
+      ;; background need to have the same/similar hue
+      ;;
+      ;; must be combined with themselves OR the foregrounds can be
+      ;; combined with any of the base backgrounds
+      ("red-refine-bg" . "#ffcccc") ("red-refine-fg" . "#780000")
+      ("green-refine-bg" . "#aceaac") ("green-refine-fg" . "#004c00")
+      ("yellow-refine-bg" . "#fff29a") ("yellow-refine-fg" . "#604000")
+      ("blue-refine-bg" . "#8ac7ff") ("blue-refine-fg" . "#002288")
+      ("magenta-refine-bg" . "#ffccff") ("magenta-refine-fg" . "#770077")
+      ("cyan-refine-bg" . "#8eecf4") ("cyan-refine-fg" . "#004850")
+      ;; styles that are meant exclusively for the mode line
+      ;;
+      ;; must be combined with: `bg-active', `bg-inactive'
+      ("red-active" . "#930000") ("green-active" . "#005300")
+      ("yellow-active" . "#703700") ("blue-active" . "#0033c0")
+      ("magenta-active" . "#6320a0") ("cyan-active" . "#004882")
+      ;; styles that are meant exclusively for the fringes
+      ;;
+      ;; must have a minimum contrast ratio of 1.5:1 with `bg-inactive'
+      ;; and be combined with `fg-main' or `fg-dim'
+      ("red-fringe-bg" . "#ff9a9a") ("green-fringe-bg" . "#86cf86")
+      ("yellow-fringe-bg" . "#e0c050") ("blue-fringe-bg" . "#82afff")
+      ("magenta-fringe-bg" . "#f0a3ff") ("cyan-fringe-bg" . "#00d6e0")
+      ;; styles reserved for specific faces
+      ;;
+      ;; `bg-hl-line' is between `bg-dim' and `bg-alt', so it should
+      ;; work with all accents that cover those two, plus `bg-main'
+      ;;
+      ;; `bg-header' is between `bg-active' and `bg-inactive', so it
+      ;; can be combined with any of the "active" values, plus the
+      ;; "special" and base foreground colours
+      ;;
+      ;; `bg-paren-match', `bg-paren-match-intense', `bg-region' and
+      ;; `bg-tab-active' must be combined with `fg-main', while
+      ;; `bg-tab-inactive' should be combined with `fg-dim'
+      ;;
+      ;; `bg-tab-bar' is only intended for the bar that holds the tabs and
+      ;; can only be combined with `fg-main'
+      ;;
+      ;; `fg-tab-active' is meant to be combined with `bg-tab-active',
+      ;; though only for styling special elements, such as underlining
+      ;; the current tab
+      ;;
+      ;; `fg-escape-char-construct' and `fg-escape-char-backslash' can
+      ;; be combined `bg-main', `bg-dim', `bg-alt'
+      ;;
+      ;; `fg-lang-error', `fg-lang-warning', `fg-lang-note' can be
+      ;; combined with `bg-main', `bg-dim', `bg-alt'
+      ;;
+      ;; `fg-mark-sel', `fg-mark-del', `fg-mark-alt' can be combined
+      ;; with `bg-main', `bg-dim', `bg-alt', `bg-hl-line'
+      ;;
+      ;; `fg-unfocused' must be combined with `fg-main'
+      ;;
+      ;; the window divider colours apply to faces with just an fg value
+      ;;
+      ;; all pairs are combinable with themselves
+      ("bg-hl-line" . "#f2eff3")
+      ("bg-paren-match" . "#e0af82")
+      ("bg-paren-match-intense" . "#70af9f")
+      ("bg-region" . "#bcbcbc")
+
+      ("bg-tab-bar" . "#d5d5d5")
+      ("bg-tab-active" . "#f6f6f6")
+      ("bg-tab-inactive" . "#bdbdbd")
+      ("fg-tab-active" . "#30169e")
+
+      ("fg-escape-char-construct" . "#8b1030")
+      ("fg-escape-char-backslash" . "#654d0f")
+
+      ("fg-lang-error" . "#9f004f")
+      ("fg-lang-warning" . "#604f0f")
+      ("fg-lang-note" . "#4040ae")
+
+      ("fg-window-divider-inner" . "#888888")
+      ("fg-window-divider-outer" . "#585858")
+
+      ("fg-unfocused" . "#56576d")
+
+      ("bg-header" . "#e5e5e5") ("fg-header" . "#2a2a2a")
+
+      ("bg-whitespace" . "#fff8fc") ("fg-whitespace" . "#645060")
+
+      ("bg-diff-heading" . "#b7c2dd") ("fg-diff-heading" . "#043355")
+      ("bg-diff-added" . "#d4fad4") ("fg-diff-added" . "#004500")
+      ("bg-diff-changed" . "#fcefcf") ("fg-diff-changed" . "#524200")
+      ("bg-diff-removed" . "#ffe8ef") ("fg-diff-removed" . "#691616")
+
+      ("bg-diff-refine-added" . "#94cf94") ("fg-diff-refine-added" . "#002a00")
+      ("bg-diff-refine-changed" . "#cccf8f") ("fg-diff-refine-changed" . "#302010")
+      ("bg-diff-refine-removed" . "#daa2b0") ("fg-diff-refine-removed" . "#400000")
+
+      ("bg-diff-focus-added" . "#bbeabb") ("fg-diff-focus-added" . "#002c00")
+      ("bg-diff-focus-changed" . "#ecdfbf") ("fg-diff-focus-changed" . "#392900")
+      ("bg-diff-focus-removed" . "#efcbcf") ("fg-diff-focus-removed" . "#4a0000")
+
+      ("bg-diff-neutral-0" . "#979797") ("fg-diff-neutral-0" . "#040404")
+      ("bg-diff-neutral-1" . "#b0b0b0") ("fg-diff-neutral-1" . "#252525")
+      ("bg-diff-neutral-2" . "#cccccc") ("fg-diff-neutral-2" . "#3a3a3a")
+
+      ("bg-mark-sel" . "#a0f0cf") ("fg-mark-sel" . "#005040")
+      ("bg-mark-del" . "#ffccbb") ("fg-mark-del" . "#840040")
+      ("bg-mark-alt" . "#f5d88f") ("fg-mark-alt" . "#782900"))
+    "The entire palette of `modus-operandi-theme'.
+Each element has the form (NAME . HEX).")
+
+  (defcustom modus-operandi-theme-override-colors-alist '()
+    "Association list of palette colour overrides.
+Values can be mapped to variables, using the same syntax as the
+one present in `modus-operandi-theme-default-colors-alist'.
+
+This is only meant for do-it-yourself usage, with the
+understanding that the user is responsible for the resulting
+contrast ratio between new and existing colours."
+    :type '(alist
+            :key-type (string :tag "Name")
+            :value-type (string :tag " Hex")))
+
+  (defmacro modus-operandi-theme-with-color-variables (&rest body)
+    "`let' bind all colours around BODY.
+Also bind `class' to ((class color) (min-colors 89))."
+    (declare (indent 0))
+    `(let ((class '((class color) (min-colors 89)))
+           ,@(mapcar (lambda (cons)
+                       (list (intern (car cons)) (cdr cons)))
+                     (append modus-operandi-theme-default-colors-alist
+                             modus-operandi-theme-override-colors-alist))
+           ;; simple conditional styles that evaluate user-facing
+           ;; customisation options
+           (modus-theme-slant
+            (if modus-operandi-theme-slanted-constructs 'italic 'normal))
+           (modus-theme-variable-pitch
+            (if modus-operandi-theme-variable-pitch-headings 'variable-pitch 'default)))
+       ,@body)))
+
+
+
+;;; Faces
+
+(modus-operandi-theme-with-color-variables
+  (custom-theme-set-faces
+   'modus-operandi
+;;;; custom faces
+   ;; these bespoke faces are inherited by other constructs below
+;;;;; subtle coloured backgrounds
+   `(modus-theme-subtle-red ((,class :background ,red-subtle-bg :foreground ,fg-dim)))
+   `(modus-theme-subtle-green ((,class :background ,green-subtle-bg :foreground ,fg-dim)))
+   `(modus-theme-subtle-yellow ((,class :background ,yellow-subtle-bg :foreground ,fg-dim)))
+   `(modus-theme-subtle-blue ((,class :background ,blue-subtle-bg :foreground ,fg-dim)))
+   `(modus-theme-subtle-magenta ((,class :background ,magenta-subtle-bg :foreground ,fg-dim)))
+   `(modus-theme-subtle-cyan ((,class :background ,cyan-subtle-bg :foreground ,fg-dim)))
+   `(modus-theme-subtle-neutral ((,class :background ,bg-inactive :foreground ,fg-inactive)))
+;;;;; intense coloured backgrounds
+   `(modus-theme-intense-red ((,class :background ,red-intense-bg :foreground ,fg-main)))
+   `(modus-theme-intense-green ((,class :background ,green-intense-bg :foreground ,fg-main)))
+   `(modus-theme-intense-yellow ((,class :background ,yellow-intense-bg :foreground ,fg-main)))
+   `(modus-theme-intense-blue ((,class :background ,blue-intense-bg :foreground ,fg-main)))
+   `(modus-theme-intense-magenta ((,class :background ,magenta-intense-bg :foreground ,fg-main)))
+   `(modus-theme-intense-cyan ((,class :background ,cyan-intense-bg :foreground ,fg-main)))
+   `(modus-theme-intense-neutral ((,class :background ,bg-active :foreground ,fg-main)))
+;;;;; refined background and foreground combinations
+   ;; general purpose styles that use an accented foreground against an
+   ;; accented background
+   `(modus-theme-refine-red ((,class :background ,red-refine-bg :foreground ,red-refine-fg)))
+   `(modus-theme-refine-green ((,class :background ,green-refine-bg :foreground ,green-refine-fg)))
+   `(modus-theme-refine-yellow ((,class :background ,yellow-refine-bg :foreground ,yellow-refine-fg)))
+   `(modus-theme-refine-blue ((,class :background ,blue-refine-bg :foreground ,blue-refine-fg)))
+   `(modus-theme-refine-magenta ((,class :background ,magenta-refine-bg :foreground ,magenta-refine-fg)))
+   `(modus-theme-refine-cyan ((,class :background ,cyan-refine-bg :foreground ,cyan-refine-fg)))
+;;;;; "active" combinations, mostly for use on the mode line
+   `(modus-theme-active-red ((,class :background ,red-active :foreground ,bg-active)))
+   `(modus-theme-active-green ((,class :background ,green-active :foreground ,bg-active)))
+   `(modus-theme-active-yellow ((,class :background ,yellow-active :foreground ,bg-active)))
+   `(modus-theme-active-blue ((,class :background ,blue-active :foreground ,bg-active)))
+   `(modus-theme-active-magenta ((,class :background ,magenta-active :foreground ,bg-active)))
+   `(modus-theme-active-cyan ((,class :background ,cyan-active :foreground ,bg-active)))
+;;;;; nuanced backgrounds
+   ;; useful for adding an accented background that is suitable for all
+   ;; main foreground colours (intended for use in Org source blocks)
+   `(modus-theme-nuanced-red ((,class :background ,red-nuanced-bg
+                                      ,@(and (>= emacs-major-version 27) '(:extend t)))))
+   `(modus-theme-nuanced-green ((,class :background ,green-nuanced-bg
+                                        ,@(and (>= emacs-major-version 27) '(:extend t)))))
+   `(modus-theme-nuanced-yellow ((,class :background ,yellow-nuanced-bg
+                                         ,@(and (>= emacs-major-version 27) '(:extend t)))))
+   `(modus-theme-nuanced-blue ((,class :background ,blue-nuanced-bg
+                                       ,@(and (>= emacs-major-version 27) '(:extend t)))))
+   `(modus-theme-nuanced-magenta ((,class :background ,magenta-nuanced-bg
+                                          ,@(and (>= emacs-major-version 27) '(:extend t)))))
+   `(modus-theme-nuanced-cyan ((,class :background ,cyan-nuanced-bg
+                                       ,@(and (>= emacs-major-version 27) '(:extend t)))))
+;;;;; fringe-specific combinations
+   `(modus-theme-fringe-red ((,class :background ,red-fringe-bg :foreground ,fg-dim)))
+   `(modus-theme-fringe-green ((,class :background ,green-fringe-bg :foreground ,fg-dim)))
+   `(modus-theme-fringe-yellow ((,class :background ,yellow-fringe-bg :foreground ,fg-dim)))
+   `(modus-theme-fringe-blue ((,class :background ,blue-fringe-bg :foreground ,fg-dim)))
+   `(modus-theme-fringe-magenta ((,class :background ,magenta-fringe-bg :foreground ,fg-dim)))
+   `(modus-theme-fringe-cyan ((,class :background ,cyan-fringe-bg :foreground ,fg-dim)))
+;;;;; special base values
+   ;; these are closer to the grayscale than the accents defined above
+   ;; and should only be used when the next closest alternative would be
+   ;; a greyscale value than an accented one
+   `(modus-theme-special-cold ((,class :background ,bg-special-cold :foreground ,fg-special-cold)))
+   `(modus-theme-special-mild ((,class :background ,bg-special-mild :foreground ,fg-special-mild)))
+   `(modus-theme-special-warm ((,class :background ,bg-special-warm :foreground ,fg-special-warm)))
+   `(modus-theme-special-calm ((,class :background ,bg-special-calm :foreground ,fg-special-calm)))
+;;;;; diff-specific combinations
+   ;; intended for `diff-mode' or equivalent
+   `(modus-theme-diff-added ((,class :background ,bg-diff-added :foreground ,fg-diff-added)))
+   `(modus-theme-diff-changed ((,class :background ,bg-diff-changed :foreground ,fg-diff-changed)))
+   `(modus-theme-diff-removed ((,class :background ,bg-diff-removed :foreground ,fg-diff-removed)))
+   `(modus-theme-diff-refine-added ((,class :background ,bg-diff-refine-added :foreground ,fg-diff-refine-added)))
+   `(modus-theme-diff-refine-changed ((,class :background ,bg-diff-refine-changed :foreground ,fg-diff-refine-changed)))
+   `(modus-theme-diff-refine-removed ((,class :background ,bg-diff-refine-removed :foreground ,fg-diff-refine-removed)))
+   `(modus-theme-diff-focus-added ((,class :background ,bg-diff-focus-added :foreground ,fg-diff-focus-added)))
+   `(modus-theme-diff-focus-changed ((,class :background ,bg-diff-focus-changed :foreground ,fg-diff-focus-changed)))
+   `(modus-theme-diff-focus-removed ((,class :background ,bg-diff-focus-removed :foreground ,fg-diff-focus-removed)))
+   `(modus-theme-diff-heading ((,class :background ,bg-diff-heading :foreground ,fg-diff-heading)))
+;;;;; mark indicators
+   ;; colour combinations intended for Dired, Ibuffer, or equivalent
+   `(modus-theme-header ((,class :inherit bold :foreground ,fg-main)))
+   `(modus-theme-mark-alt ((,class :inherit bold :background ,bg-mark-alt :foreground ,fg-mark-alt)))
+   `(modus-theme-mark-del ((,class :inherit bold :background ,bg-mark-del :foreground ,fg-mark-del)))
+   `(modus-theme-mark-sel ((,class :inherit bold :background ,bg-mark-sel :foreground ,fg-mark-sel)))
+   `(modus-theme-mark-symbol ((,class :inherit bold :foreground ,blue-alt)))
+;;;;; other custom faces
+   `(modus-theme-hl-line ((,class :background ,(if modus-operandi-theme-intense-hl-line
+                                                   bg-active bg-hl-line)
+                                  (and (>= emacs-major-version 27) '(:extend t)))))
+;;;; standard faces
+;;;;; absolute essentials
+   `(default ((,class :background ,bg-main :foreground ,fg-main)))
+   `(cursor ((,class :background ,fg-main)))
+   `(fringe ((,class ,@(modus-operandi-theme-fringe bg-inactive bg-active)
+                     :foreground ,fg-main)))
+   `(vertical-border ((,class :foreground ,fg-window-divider-inner)))
+;;;;; basic and/or ungrouped styles
+   ;; Modify the `bold' face to change the weight of all "bold" elements
+   ;; defined by the theme.  You need a typeface that supports a
+   ;; multitude of heavier weights than the regular one and then you
+   ;; must specify the exact name of the one you wish to apply.  Example
+   ;; for your init.el:
+   ;;
+   ;; (set-face-attribute 'bold nil :weight 'semibold)
+   `(bold ((,class :weight bold)))
+   `(comint-highlight-input ((,class :inherit bold)))
+   `(comint-highlight-prompt ((,class ,@(modus-operandi-theme-bold-weight)
+                                      ,@(modus-operandi-theme-prompt cyan
+                                                                     blue-nuanced-bg
+                                                                     blue-alt
+                                                                     blue-refine-bg
+                                                                     fg-main))))
+   `(error ((,class :inherit bold :foreground ,red)))
+   `(escape-glyph ((,class :foreground ,fg-escape-char-construct)))
+   `(file-name-shadow ((,class :foreground ,fg-unfocused)))
+   `(header-line ((,class :background ,bg-header :foreground ,fg-header)))
+   `(header-line-highlight ((,class :inherit modus-theme-active-blue)))
+   `(homoglyph ((,class :foreground ,fg-escape-char-construct)))
+   `(ibuffer-locked-buffer ((,class :foreground ,yellow-alt-other)))
+   `(italic ((,class :slant italic)))
+   `(nobreak-hyphen ((,class :foreground ,fg-escape-char-construct)))
+   `(nobreak-space ((,class :foreground ,fg-escape-char-construct :underline t)))
+   `(minibuffer-prompt ((,class ,@(modus-operandi-theme-prompt cyan-alt-other
+                                                               cyan-nuanced-bg
+                                                               cyan
+                                                               cyan-refine-bg
+                                                               fg-main))))
+   `(mm-command-output ((,class :foreground ,red-alt-other)))
+   `(mm-uu-extract ((,class :background ,bg-dim :foreground ,fg-special-mild)))
+   `(next-error ((,class :inherit modus-theme-subtle-red)))
+   `(rectangle-preview ((,class :inherit modus-theme-special-mild)))
+   `(region ((,class :background ,bg-region :foreground ,fg-main)))
+   `(secondary-selection ((,class :inherit modus-theme-special-cold)))
+   `(shadow ((,class :foreground ,fg-alt)))
+   `(success ((,class :inherit bold :foreground ,green)))
+   `(trailing-whitespace ((,class :background ,red-intense-bg)))
+   `(warning ((,class :inherit bold :foreground ,yellow)))
+;;;;; buttons, links, widgets
+   `(button ((,class :foreground ,blue-alt-other :underline t)))
+   `(link ((,class :foreground ,blue-alt-other :underline t)))
+   `(link-visited ((,class :foreground ,magenta-alt-other :underline t)))
+   `(tooltip ((,class :background ,bg-special-cold :foreground ,fg-main)))
+   `(widget-button ((,class :inherit button)))
+   `(widget-button-pressed ((,class :inherit button :foreground ,magenta)))
+   `(widget-documentation ((,class :foreground ,green)))
+   `(widget-field ((,class :background ,bg-alt :foreground ,fg-dim)))
+   `(widget-inactive ((,class :background ,bg-inactive :foreground ,fg-inactive)))
+   `(widget-single-line-field ((,class :inherit widget-field)))
+;;;;; ag
+   `(ag-hit-face ((,class :foreground ,fg-special-cold)))
+   `(ag-match-face ((,class :inherit modus-theme-special-calm)))
+;;;;; alert
+   `(alert-high-face ((,class :inherit bold :foreground ,red-alt)))
+   `(alert-low-face ((,class :foreground ,fg-special-mild)))
+   `(alert-moderate-face ((,class :inherit bold :foreground ,yellow)))
+   `(alert-trivial-face ((,class :foreground ,fg-special-calm)))
+   `(alert-urgent-face ((,class :inherit bold :foreground ,red-intense)))
+;;;;; all-the-icons
+   `(all-the-icons-blue ((,class :foreground ,blue)))
+   `(all-the-icons-blue-alt ((,class :foreground ,blue-alt)))
+   `(all-the-icons-cyan ((,class :foreground ,cyan)))
+   `(all-the-icons-cyan-alt ((,class :foreground ,cyan-alt)))
+   `(all-the-icons-dblue ((,class :foreground ,blue-alt-other)))
+   `(all-the-icons-dcyan ((,class :foreground ,cyan-alt-other)))
+   `(all-the-icons-dgreen ((,class :foreground ,green-alt-other)))
+   `(all-the-icons-dired-dir-face ((,class :foreground ,blue)))
+   `(all-the-icons-dmaroon ((,class :foreground ,magenta-alt-other)))
+   `(all-the-icons-dorange ((,class :foreground ,red-alt-other)))
+   `(all-the-icons-dpink ((,class :foreground ,magenta)))
+   `(all-the-icons-dpurple ((,class :foreground ,magenta-alt)))
+   `(all-the-icons-dred ((,class :foreground ,red)))
+   `(all-the-icons-dsilver ((,class :foreground ,fg-special-cold)))
+   `(all-the-icons-dyellow ((,class :foreground ,yellow)))
+   `(all-the-icons-green ((,class :foreground ,green)))
+   `(all-the-icons-lblue ((,class :foreground ,blue-refine-fg)))
+   `(all-the-icons-lcyan ((,class :foreground ,cyan-refine-fg)))
+   `(all-the-icons-lgreen ((,class :foreground ,green-refine-fg)))
+   `(all-the-icons-lmaroon ((,class :foreground ,magenta-refine-fg)))
+   `(all-the-icons-lorange ((,class :foreground ,red-refine-fg)))
+   `(all-the-icons-lpink ((,class :foreground ,magenta-refine-fg)))
+   `(all-the-icons-lpurple ((,class :foreground ,magenta-refine-fg)))
+   `(all-the-icons-lred ((,class :foreground ,red-refine-fg)))
+   `(all-the-icons-lsilver ((,class :foreground ,fg-special-cold)))
+   `(all-the-icons-lyellow ((,class :foreground ,yellow-refine-fg)))
+   `(all-the-icons-maroon ((,class :foreground ,magenta)))
+   `(all-the-icons-orange ((,class :foreground ,red-alt)))
+   `(all-the-icons-pink ((,class :foreground ,magenta)))
+   `(all-the-icons-purple ((,class :foreground ,magenta-alt)))
+   `(all-the-icons-purple-alt ((,class :foreground ,magenta-alt-other)))
+   `(all-the-icons-red ((,class :foreground ,red)))
+   `(all-the-icons-red-alt ((,class :foreground ,red-alt)))
+   `(all-the-icons-silver ((,class :foreground ,fg-special-cold)))
+   `(all-the-icons-yellow ((,class :foreground ,yellow)))
+;;;;; annotate
+   `(annotate-annotation ((,class :inherit modus-theme-subtle-blue)))
+   `(annotate-annotation-secondary ((,class :inherit modus-theme-subtle-green)))
+   `(annotate-highlight ((,class :background ,blue-nuanced-bg :underline ,blue-intense)))
+   `(annotate-highlight-secondary ((,class :background ,green-nuanced-bg :underline ,green-intense)))
+;;;;; anzu
+   `(anzu-match-1 ((,class :inherit modus-theme-subtle-cyan)))
+   `(anzu-match-2 ((,class :inherit modus-theme-subtle-green)))
+   `(anzu-match-3 ((,class :inherit modus-theme-subtle-yellow)))
+   `(anzu-mode-line ((,class :inherit bold :foreground ,green-active)))
+   `(anzu-mode-line-no-match ((,class :inherit bold :foreground ,red-active)))
+   `(anzu-replace-highlight ((,class :inherit modus-theme-refine-yellow :underline t)))
+   `(anzu-replace-to ((,class :inherit (modus-theme-intense-green bold))))
+;;;;; apropos
+   `(apropos-function-button ((,class :foreground ,magenta-alt-other :underline t)))
+   `(apropos-keybinding ((,class :inherit bold :foreground ,cyan)))
+   `(apropos-misc-button ((,class :foreground ,cyan-alt-other :underline t)))
+   `(apropos-property ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,magenta-alt)))
+   `(apropos-symbol ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,blue-nuanced :underline t)))
+   `(apropos-user-option-button ((,class :foreground ,green-alt-other :underline t)))
+   `(apropos-variable-button ((,class :foreground ,blue :underline t)))
+;;;;; apt-sources-list
+   `(apt-sources-list-components ((,class :foreground ,cyan)))
+   `(apt-sources-list-options ((,class :foreground ,yellow)))
+   `(apt-sources-list-suite ((,class :foreground ,green)))
+   `(apt-sources-list-type ((,class :foreground ,magenta)))
+   `(apt-sources-list-uri ((,class :foreground ,blue)))
+;;;;; artbollocks-mode
+   `(artbollocks-face ((,class :foreground ,cyan-nuanced :underline ,fg-lang-note)))
+   `(artbollocks-lexical-illusions-face ((,class :background ,bg-alt :foreground ,red-alt :underline t)))
+   `(artbollocks-passive-voice-face ((,class :foreground ,yellow-nuanced :underline ,fg-lang-warning)))
+   `(artbollocks-weasel-words-face ((,class :foreground ,red-nuanced :underline ,fg-lang-error)))
+;;;;; auctex and Tex
+   `(font-latex-bold-face ((,class :inherit bold :foreground ,fg-special-calm)))
+   `(font-latex-doctex-documentation-face ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
+   `(font-latex-doctex-preprocessor-face ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,red-alt-other)))
+   `(font-latex-italic-face ((,class :foreground ,fg-special-calm :slant italic)))
+   `(font-latex-math-face ((,class :foreground ,cyan-alt-other)))
+   `(font-latex-script-char-face ((,class :foreground ,cyan-alt-other)))
+   `(font-latex-sectioning-0-face ((,class :inherit ,modus-theme-variable-pitch :foreground ,blue-nuanced)))
+   `(font-latex-sectioning-1-face ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,blue-nuanced)))
+   `(font-latex-sectioning-2-face ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,blue-nuanced)))
+   `(font-latex-sectioning-3-face ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,blue-nuanced)))
+   `(font-latex-sectioning-4-face ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,blue-nuanced)))
+   `(font-latex-sectioning-5-face ((,class :inherit ,modus-theme-variable-pitch :foreground ,blue-nuanced)))
+   `(font-latex-sedate-face ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,magenta-alt-other)))
+   `(font-latex-slide-title-face ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,cyan-nuanced
+                                          ,@(modus-operandi-theme-scale modus-operandi-theme-scale-4))))
+   `(font-latex-string-face ((,class :foreground ,blue-alt)))
+   `(font-latex-subscript-face ((,class :height 0.95)))
+   `(font-latex-superscript-face ((,class :height 0.95)))
+   `(font-latex-verbatim-face ((,class :background ,bg-dim :foreground ,fg-special-mild)))
+   `(font-latex-warning-face ((,class :foreground ,yellow-alt-other)))
+   `(tex-match ((,class :foreground ,blue-alt-other)))
+   `(tex-verbatim ((,class :background ,bg-dim :foreground ,fg-special-mild)))
+   `(texinfo-heading ((,class :foreground ,magenta)))
+   `(TeX-error-description-error ((,class :inherit bold :foreground ,red)))
+   `(TeX-error-description-help ((,class :foreground ,blue)))
+   `(TeX-error-description-tex-said ((,class :foreground ,blue)))
+   `(TeX-error-description-warning ((,class :inherit bold :foreground ,yellow)))
+;;;;; auto-dim-other-buffers
+   `(auto-dim-other-buffers-face ((,class :background ,bg-alt)))
+;;;;; avy
+   `(avy-background-face ((,class :background ,bg-dim :foreground ,fg-dim)))
+   `(avy-goto-char-timer-face ((,class :inherit (modus-theme-intense-yellow bold))))
+   `(avy-lead-face ((,class :inherit (modus-theme-intense-magenta bold))))
+   `(avy-lead-face-0 ((,class :inherit (modus-theme-intense-blue bold))))
+   `(avy-lead-face-1 ((,class :inherit (modus-theme-intense-red bold))))
+   `(avy-lead-face-2 ((,class :inherit (modus-theme-intense-green bold))))
+;;;;; aw (ace-window)
+   `(aw-background-face ((,class :background ,bg-dim :foreground ,fg-dim)))
+   `(aw-key-face ((,class :inherit bold :foreground ,blue-intense)))
+   `(aw-leading-char-face ((,class :inherit bold :height 1.5 :background ,bg-main :foreground ,red-intense)))
+   `(aw-minibuffer-leading-char-face ((,class :foreground ,magenta-active)))
+   `(aw-mode-line-face ((,class :inherit bold)))
+;;;;; bm
+   `(bm-face ((,class :inherit modus-theme-subtle-yellow
+                      ,@(and (>= emacs-major-version 27) '(:extend t)))))
+   `(bm-fringe-face ((,class :inherit modus-theme-fringe-yellow)))
+   `(bm-fringe-persistent-face ((,class :inherit modus-theme-fringe-blue)))
+   `(bm-persistent-face ((,class :inherit modus-theme-intense-blue
+                                 ,@(and (>= emacs-major-version 27) '(:extend t)))))
+;;;;; bongo
+   `(bongo-album-title ((,class :foreground ,cyan-active)))
+   `(bongo-artist ((,class :foreground ,magenta-active)))
+   `(bongo-currently-playing-track ((,class :inherit bold)))
+   `(bongo-elapsed-track-part ((,class :inherit modus-theme-subtle-magenta :underline t)))
+   `(bongo-filled-seek-bar ((,class :background ,blue-subtle-bg :foreground ,fg-main)))
+   `(bongo-marked-track ((,class :foreground ,fg-mark-alt)))
+   `(bongo-marked-track-line ((,class :background ,bg-mark-alt)))
+   `(bongo-played-track ((,class :foreground ,fg-unfocused :strike-through t)))
+   `(bongo-track-length ((,class :foreground ,blue-alt-other)))
+   `(bongo-track-title ((,class :foreground ,blue-active)))
+   `(bongo-unfilled-seek-bar ((,class :background ,blue-nuanced-bg :foreground ,fg-main)))
+;;;;; boon
+   `(boon-modeline-cmd ((,class :inherit modus-theme-active-blue)))
+   `(boon-modeline-ins ((,class :inherit modus-theme-active-red)))
+   `(boon-modeline-off ((,class :inherit modus-theme-active-yellow)))
+   `(boon-modeline-spc ((,class :inherit modus-theme-active-green)))
+;;;;; breakpoint (built-in gdb-mi.el)
+   `(breakpoint-disabled ((,class :foreground ,fg-alt)))
+   `(breakpoint-enabled ((,class :inherit bold :foreground ,red)))
+;;;;; buffer-expose
+   `(buffer-expose-ace-char-face ((,class :inherit bold :foreground ,red-active)))
+   `(buffer-expose-mode-line-face ((,class :foreground ,cyan-active)))
+   `(buffer-expose-selected-face ((,class :inherit modus-theme-special-mild)))
+;;;;; calendar and diary
+   `(calendar-month-header ((,class :inherit bold :foreground ,fg-main)))
+   `(calendar-today ((,class :underline t)))
+   `(calendar-weekday-header ((,class :foreground ,fg-dim)))
+   `(calendar-weekend-header ((,class :foreground ,fg-alt)))
+   `(diary ((,class :foreground ,cyan-alt-other)))
+   `(diary-anniversary ((,class :foreground ,red-alt-other)))
+   `(diary-time ((,class :foreground ,blue-alt)))
+   `(holiday ((,class :foreground ,magenta-alt)))
+;;;;; calfw
+   `(cfw:face-annotation ((,class :background ,bg-alt :foreground ,fg-alt)))
+   `(cfw:face-day-title ((,class :background ,bg-alt :foreground ,fg-main)))
+   `(cfw:face-default-content ((,class :foreground ,green-alt)))
+   `(cfw:face-default-day ((,class :inherit (cfw:face-day-title bold))))
+   `(cfw:face-disable ((,class :background ,bg-inactive :foreground ,fg-inactive)))
+   `(cfw:face-grid ((,class :foreground ,fg-inactive)))
+   `(cfw:face-header ((,class :inherit bold ::foreground ,fg-main)))
+   `(cfw:face-holiday ((,class :inherit bold :background ,bg-alt :foreground ,magenta)))
+   `(cfw:face-periods ((,class :foreground ,cyan-alt-other)))
+   `(cfw:face-saturday ((,class :inherit bold :background ,bg-alt :foreground ,magenta-alt)))
+   `(cfw:face-select ((,class :inherit modus-theme-intense-blue)))
+   `(cfw:face-sunday ((,class :inherit bold :background ,bg-alt :foreground ,magenta-alt-other)))
+   `(cfw:face-title ((,class :inherit ,modus-theme-variable-pitch
+                             :foreground ,fg-special-warm
+                             ,@(modus-operandi-theme-scale modus-operandi-theme-scale-4))))
+   `(cfw:face-today ((,class :inherit bold :foreground ,blue)))
+   `(cfw:face-today-title ((,class :inherit modus-theme-special-mild :box t)))
+   `(cfw:face-toolbar ((,class :background ,bg-active :foreground ,bg-active)))
+   `(cfw:face-toolbar-button-off ((,class :background ,bg-alt :foreground ,cyan)))
+   `(cfw:face-toolbar-button-on ((,class :inherit bold :background ,bg-main :foreground ,blue-intense)))
+;;;;; centaur-tabs
+   `(centaur-tabs-active-bar-face ((,class :background ,fg-tab-active)))
+   `(centaur-tabs-close-mouse-face ((,class :inherit bold :foreground ,red-active :underline t)))
+   `(centaur-tabs-close-selected ((,class :inherit centaur-tabs-selected)))
+   `(centaur-tabs-close-unselected ((,class :inherit centaur-tabs-unselected)))
+   `(centaur-tabs-modified-marker-selected ((,class :inherit centaur-tabs-selected)))
+   `(centaur-tabs-modified-marker-unselected ((,class :inherit centaur-tabs-unselected)))
+   `(centaur-tabs-default ((,class :background ,bg-main :foreground ,bg-main)))
+   `(centaur-tabs-selected ((,class :inherit bold :background ,bg-tab-active :foreground ,fg-main)))
+   `(centaur-tabs-selected-modified ((,class :background ,bg-tab-active :foreground ,fg-main :slant italic)))
+   `(centaur-tabs-unselected ((,class :background ,bg-tab-inactive :foreground ,fg-dim)))
+   `(centaur-tabs-unselected-modified ((,class :background ,bg-tab-inactive :foreground ,fg-dim :slant italic)))
+;;;;; change-log and log-view (`vc-print-log' and `vc-print-root-log')
+   `(change-log-acknowledgment ((,class :foreground ,fg-alt)))
+   `(change-log-conditionals ((,class :foreground ,magenta-alt)))
+   `(change-log-date ((,class :foreground ,cyan-alt-other)))
+   `(change-log-email ((,class :foreground ,cyan)))
+   `(change-log-file ((,class :foreground ,blue)))
+   `(change-log-function ((,class :foreground ,green-alt-other)))
+   `(change-log-list ((,class :foreground ,magenta-alt-other)))
+   `(change-log-name ((,class :foreground ,cyan)))
+   `(log-edit-header ((,class :inherit bold :foreground ,green-alt-other)))
+   `(log-edit-summary ((,class :foreground ,magenta-alt-other)))
+   `(log-edit-unknown-header ((,class :foreground ,fg-alt)))
+   `(log-view-file ((,class :inherit bold :foreground ,fg-special-cold)))
+   `(log-view-message ((,class :foreground ,fg-alt)))
+;;;;; cider
+   `(cider-debug-code-overlay-face ((,class :background ,bg-alt)))
+   `(cider-debug-prompt-face ((,class :foreground ,magenta-alt :underline t)))
+   `(cider-deprecated-face ((,class :inherit modus-theme-refine-yellow)))
+   `(cider-docview-emphasis-face ((,class :foreground ,fg-special-cold :slant italic)))
+   `(cider-docview-literal-face ((,class :foreground ,blue-alt)))
+   `(cider-docview-strong-face ((,class :inherit bold :foreground ,fg-special-cold)))
+   `(cider-docview-table-border-face ((,class :foreground ,fg-alt)))
+   `(cider-enlightened-face ((,class :box (:line-width -1 :color ,yellow-alt :style nil) :background ,bg-dim)))
+   `(cider-enlightened-local-face ((,class :inherit bold :foreground ,yellow-alt-other)))
+   `(cider-error-highlight-face ((,class :foreground ,red :underline t)))
+   `(cider-fragile-button-face ((,class :box (:line-width 3 :color ,fg-alt :style released-button) :foreground ,yellow)))
+   `(cider-fringe-good-face ((,class :foreground ,green-active)))
+   `(cider-instrumented-face ((,class :box (:line-width -1 :color ,red :style nil) :background ,bg-dim)))
+   `(cider-reader-conditional-face ((,class :foreground ,fg-special-warm :slant italic)))
+   `(cider-repl-input-face ((,class :inherit bold)))
+   `(cider-repl-prompt-face ((,class :foreground ,cyan-alt-other)))
+   `(cider-repl-stderr-face ((,class :inherit bold :foreground ,red)))
+   `(cider-repl-stdout-face ((,class :foreground ,blue)))
+   `(cider-result-overlay-face ((,class :box (:line-width -1 :color ,blue :style nil) :background ,bg-dim)))
+   `(cider-stacktrace-error-class-face ((,class :inherit bold :foreground ,red)))
+   `(cider-stacktrace-error-message-face ((,class :foreground ,red-alt-other :slant italic)))
+   `(cider-stacktrace-face ((,class :foreground ,fg-main)))
+   `(cider-stacktrace-filter-active-face ((,class :foreground ,cyan-alt :underline t)))
+   `(cider-stacktrace-filter-inactive-face ((,class :foreground ,cyan-alt)))
+   `(cider-stacktrace-fn-face ((,class :inherit bold :foreground ,fg-main)))
+   `(cider-stacktrace-ns-face ((,class :foreground ,fg-alt :slant italic)))
+   `(cider-stacktrace-promoted-button-face ((,class :box (:line-width 3 :color ,fg-alt :style released-button) :foreground ,red)))
+   `(cider-stacktrace-suppressed-button-face ((,class :box (:line-width 3 :color ,fg-alt :style pressed-button)
+                                                      :background ,bg-alt :foreground ,fg-alt)))
+   `(cider-test-error-face ((,class :inherit modus-theme-subtle-red)))
+   `(cider-test-failure-face ((,class :inherit (modus-theme-intense-red bold))))
+   `(cider-test-success-face ((,class :inherit modus-theme-intense-green)))
+   `(cider-traced-face ((,class :box (:line-width -1 :color ,cyan :style nil) :background ,bg-dim)))
+   `(cider-warning-highlight-face ((,class :foreground ,yellow :underline t)))
+;;;;; circe (and lui)
+   `(circe-fool-face ((,class :foreground ,fg-alt)))
+   `(circe-highlight-nick-face ((,class :inherit bold :foreground ,blue)))
+   `(circe-prompt-face ((,class :inherit bold :foreground ,cyan-alt-other)))
+   `(circe-server-face ((,class :foreground ,fg-unfocused)))
+   `(lui-button-face ((,class :foreground ,blue :underline t)))
+   `(lui-highlight-face ((,class :foreground ,magenta-alt)))
+   `(lui-time-stamp-face ((,class :foreground ,blue-nuanced)))
+;;;;; color-rg
+   `(color-rg-font-lock-column-number ((,class :foreground ,magenta-alt-other)))
+   `(color-rg-font-lock-command ((,class :inherit bold :foreground ,fg-main)))
+   `(color-rg-font-lock-file ((,class :inherit bold :foreground ,fg-special-cold)))
+   `(color-rg-font-lock-flash ((,class :inherit modus-theme-intense-blue)))
+   `(color-rg-font-lock-function-location ((,class :inherit modus-theme-special-calm)))
+   `(color-rg-font-lock-header-line-directory ((,class :foreground ,blue-active)))
+   `(color-rg-font-lock-header-line-edit-mode ((,class :foreground ,magenta-active)))
+   `(color-rg-font-lock-header-line-keyword ((,class :foreground ,green-active)))
+   `(color-rg-font-lock-header-line-text ((,class :foreground ,fg-active)))
+   `(color-rg-font-lock-line-number ((,class :foreground ,fg-special-warm)))
+   `(color-rg-font-lock-mark-changed ((,class :inherit bold :foreground ,blue)))
+   `(color-rg-font-lock-mark-deleted ((,class :inherit bold :foreground ,red)))
+   `(color-rg-font-lock-match ((,class :inherit modus-theme-special-calm)))
+   `(color-rg-font-lock-position-splitter ((,class :foreground ,fg-alt)))
+;;;;; column-enforce-mode
+   `(column-enforce-face ((,class :inherit modus-theme-refine-yellow)))
+;;;;; company-mode
+   `(company-echo-common ((,class :foreground ,magenta-alt-other)))
+   `(company-preview ((,class :background ,bg-dim :foreground ,fg-dim)))
+   `(company-preview-common ((,class :foreground ,blue-alt)))
+   `(company-preview-search ((,class :inherit modus-theme-special-calm)))
+   `(company-scrollbar-bg ((,class :background ,bg-active)))
+   `(company-scrollbar-fg ((,class :background ,fg-active)))
+   `(company-template-field ((,class :inherit modus-theme-intense-magenta)))
+   `(company-tooltip ((,class :background ,bg-alt :foreground ,fg-alt)))
+   `(company-tooltip-annotation ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
+   `(company-tooltip-annotation-selection ((,class :inherit bold :foreground ,fg-main)))
+   `(company-tooltip-common ((,class :inherit bold :foreground ,blue-alt)))
+   `(company-tooltip-common-selection ((,class :foreground ,fg-main)))
+   `(company-tooltip-mouse ((,class :inherit modus-theme-intense-blue)))
+   `(company-tooltip-search ((,class :inherit (modus-theme-refine-cyan bold))))
+   `(company-tooltip-search-selection ((,class :inherit (modus-theme-intense-green bold) :underline t)))
+   `(company-tooltip-selection ((,class :inherit (modus-theme-subtle-cyan bold))))
+;;;;; company-posframe
+   `(company-posframe-active-backend-name ((,class :inherit bold :background ,bg-active :foreground ,blue-active)))
+   `(company-posframe-inactive-backend-name ((,class :background ,bg-active :foreground ,fg-active)))
+   `(company-posframe-metadata ((,class :background ,bg-inactive :foreground ,fg-inactive)))
+;;;;; compilation feedback
+   `(compilation-column-number ((,class :foreground ,magenta-alt-other)))
+   `(compilation-error ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,red)))
+   `(compilation-info ((,class :foreground ,fg-special-cold)))
+   `(compilation-line-number ((,class :foreground ,fg-special-warm)))
+   `(compilation-mode-line-exit ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,blue-active)))
+   `(compilation-mode-line-fail ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,red-active)))
+   `(compilation-mode-line-run ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,magenta-active)))
+   `(compilation-warning ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,yellow)))
+;;;;; completions
+   `(completions-annotations ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
+   `(completions-common-part ((,class ,@(modus-operandi-theme-standard-completions
+                                         cyan-alt-other cyan-nuanced-bg
+                                         yellow-refine-bg yellow-refine-fg))))
+   `(completions-first-difference ((,class :inherit bold
+                                           ,@(modus-operandi-theme-standard-completions
+                                              blue-alt-other blue-nuanced-bg
+                                              cyan-subtle-bg fg-dim))))
+;;;;; counsel
+   `(counsel-active-mode ((,class :foreground ,magenta-alt-other)))
+   `(counsel-application-name ((,class :foreground ,red-alt-other)))
+   `(counsel-key-binding ((,class :inherit bold :foreground ,blue-alt-other)))
+   `(counsel-outline-1 ((,class :inherit outline-1)))
+   `(counsel-outline-2 ((,class :inherit outline-2)))
+   `(counsel-outline-3 ((,class :inherit outline-3)))
+   `(counsel-outline-4 ((,class :inherit outline-4)))
+   `(counsel-outline-5 ((,class :inherit outline-5)))
+   `(counsel-outline-6 ((,class :inherit outline-6)))
+   `(counsel-outline-7 ((,class :inherit outline-7)))
+   `(counsel-outline-8 ((,class :inherit outline-8)))
+   `(counsel-outline-default ((,class :inherit bold :foreground ,green-alt-other)))
+   `(counsel-variable-documentation ((,class :foreground ,yellow-alt-other :slant ,modus-theme-slant)))
+;;;;; counsel-css
+   `(counsel-css-selector-depth-face-1 ((,class :foreground ,blue)))
+   `(counsel-css-selector-depth-face-2 ((,class :foreground ,cyan)))
+   `(counsel-css-selector-depth-face-3 ((,class :foreground ,green)))
+   `(counsel-css-selector-depth-face-4 ((,class :foreground ,yellow)))
+   `(counsel-css-selector-depth-face-5 ((,class :foreground ,magenta)))
+   `(counsel-css-selector-depth-face-6 ((,class :foreground ,red)))
+;;;;; counsel-notmuch
+   `(counsel-notmuch-count-face ((,class :foreground ,cyan)))
+   `(counsel-notmuch-date-face ((,class :foreground ,blue)))
+   `(counsel-notmuch-people-face ((,class :foreground ,magenta)))
+   `(counsel-notmuch-subject-face ((,class :foreground ,magenta-alt-other)))
+;;;;; counsel-org-capture-string
+   `(counsel-org-capture-string-template-body-face ((,class :foreground ,fg-special-cold)))
+;;;;; cov
+   `(cov-coverage-not-run-face ((,class :foreground ,red-intense)))
+   `(cov-coverage-run-face ((,class :foreground ,green-intense)))
+   `(cov-heavy-face ((,class :foreground ,magenta-intense)))
+   `(cov-light-face ((,class :foreground ,blue-intense)))
+   `(cov-med-face ((,class :foreground ,yellow-intense)))
+   `(cov-none-face ((,class :foreground ,cyan-intense)))
+;;;;; csv-mode
+   `(csv-separator-face ((,class :background ,bg-special-cold :foreground ,fg-main)))
+;;;;; ctrlf
+   `(ctrlf-highlight-active ((,class :inherit (modus-theme-intense-green bold))))
+   `(ctrlf-highlight-line ((,class :inherit modus-theme-hl-line)))
+   `(ctrlf-highlight-passive ((,class :inherit modus-theme-refine-cyan)))
+;;;;; custom (M-x customize)
+   `(custom-button ((,class :box (:line-width 2 :color nil :style released-button)
+                            :background ,bg-active :foreground ,fg-main)))
+   `(custom-button-mouse ((,class :box (:line-width 2 :color nil :style released-button)
+                                  :background ,bg-active :foreground ,fg-active)))
+   `(custom-button-pressed ((,class :box (:line-width 2 :color nil :style pressed-button)
+                                    :background ,bg-active :foreground ,fg-main)))
+   `(custom-changed ((,class :inherit modus-theme-subtle-cyan)))
+   `(custom-comment ((,class :foreground ,fg-alt)))
+   `(custom-comment-tag ((,class :background ,bg-alt :foreground ,yellow-alt-other)))
+   `(custom-face-tag ((,class :inherit bold :foreground ,blue-intense)))
+   `(custom-group-tag ((,class :inherit bold :foreground ,green-intense)))
+   `(custom-group-tag-1 ((,class :inherit modus-theme-special-warm)))
+   `(custom-invalid ((,class :inherit (modus-theme-intense-red bold))))
+   `(custom-modified ((,class :inherit modus-theme-subtle-cyan)))
+   `(custom-rogue ((,class :inherit modus-theme-refine-magenta)))
+   `(custom-set ((,class :foreground ,blue-alt)))
+   `(custom-state ((,class :foreground ,cyan-alt-other)))
+   `(custom-themed ((,class :inherit modus-theme-subtle-blue)))
+   `(custom-variable-tag ((,class :inherit bold :foreground ,cyan)))
+;;;;; dap-mode
+   `(dap-mouse-eval-thing-face ((,class :box (:line-width -1 :color ,blue-active :style nil)
+                                        :background ,bg-active :foreground ,fg-main)))
+   `(dap-result-overlay-face ((,class :box (:line-width -1 :color ,bg-active :style nil)
+                                      :background ,bg-active :foreground ,fg-main)))
+   `(dap-ui-breakpoint-verified-fringe ((,class :inherit bold :foreground ,green-active)))
+   `(dap-ui-compile-errline ((,class :inherit bold :foreground ,red-intense)))
+   `(dap-ui-locals-scope-face ((,class :inherit bold :foreground ,magenta :underline t)))
+   `(dap-ui-locals-variable-face ((,class :inherit bold :foreground ,cyan)))
+   `(dap-ui-locals-variable-leaf-face ((,class :foreground ,cyan-alt-other :slant italic)))
+   `(dap-ui-marker-face ((,class :inherit modus-theme-subtle-blue)))
+   `(dap-ui-sessions-stack-frame-face ((,class :inherit bold :foreground ,magenta-alt)))
+   `(dap-ui-sessions-terminated-active-face ((,class :inherit bold :foreground ,fg-alt)))
+   `(dap-ui-sessions-terminated-face ((,class :foreground ,fg-alt)))
+;;;;; dashboard (emacs-dashboard)
+   `(dashboard-banner-logo-title ((,class :inherit bold :foreground ,fg-special-cold)))
+   `(dashboard-footer ((,class :inherit bold :foreground ,fg-special-mild)))
+   `(dashboard-heading ((,class :inherit bold :foreground ,fg-special-warm)))
+   `(dashboard-navigator ((,class :foreground ,cyan-alt-other)))
+   `(dashboard-text-banner ((,class :foreground ,fg-dim)))
+;;;;; deadgrep
+   `(deadgrep-filename-face ((,class :inherit bold :foreground ,fg-special-cold)))
+   `(deadgrep-match-face ((,class :inherit modus-theme-special-calm)))
+   `(deadgrep-meta-face ((,class :foreground ,fg-alt)))
+   `(deadgrep-regexp-metachar-face ((,class :inherit bold :foreground ,yellow-intense)))
+   `(deadgrep-search-term-face ((,class :inherit bold :foreground ,green-intense)))
+;;;;; debbugs
+   `(debbugs-gnu-archived ((,class :inverse-video t)))
+   `(debbugs-gnu-done ((,class :foreground ,fg-alt)))
+   `(debbugs-gnu-forwarded ((,class :foreground ,fg-special-warm)))
+   `(debbugs-gnu-handled ((,class :foreground ,green)))
+   `(debbugs-gnu-new ((,class :foreground ,red)))
+   `(debbugs-gnu-pending ((,class :foreground ,cyan)))
+   `(debbugs-gnu-stale-1 ((,class :foreground ,yellow-nuanced)))
+   `(debbugs-gnu-stale-2 ((,class :foreground ,yellow)))
+   `(debbugs-gnu-stale-3 ((,class :foreground ,yellow-alt)))
+   `(debbugs-gnu-stale-4 ((,class :foreground ,yellow-alt-other)))
+   `(debbugs-gnu-stale-5 ((,class :foreground ,red-alt)))
+   `(debbugs-gnu-tagged ((,class :foreground ,magenta-alt)))
+;;;;; define-word
+   `(define-word-face-1 ((,class :foreground ,yellow)))
+   `(define-word-face-2 ((,class :foreground ,fg-main)))
+;;;;; deft
+   `(deft-filter-string-error-face ((,class :inherit modus-theme-refine-red)))
+   `(deft-filter-string-face ((,class :foreground ,green-intense)))
+   `(deft-header-face ((,class :inherit bold :foreground ,fg-special-warm)))
+   `(deft-separator-face ((,class :foreground ,fg-alt)))
+   `(deft-summary-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
+   `(deft-time-face ((,class :foreground ,fg-special-cold)))
+   `(deft-title-face ((,class :inherit bold :foreground ,fg-main)))
+;;;;; dictionary
+   `(dictionary-button-face ((,class :inherit bold :foreground ,fg-special-cold)))
+   `(dictionary-reference-face ((,class :foreground ,blue-alt-other :underline t)))
+   `(dictionary-word-definition-face ((,class :foreground ,fg-main)))
+   `(dictionary-word-entry-face ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
+;;;;; diff-hl
+   `(diff-hl-change ((,class :inherit modus-theme-fringe-yellow)))
+   `(diff-hl-delete ((,class :inherit modus-theme-fringe-red)))
+   `(diff-hl-dired-change ((,class :inherit diff-hl-change)))
+   `(diff-hl-dired-delete ((,class :inherit diff-hl-delete)))
+   `(diff-hl-dired-ignored ((,class :inherit dired-ignored)))
+   `(diff-hl-dired-insert ((,class :inherit diff-hl-insert)))
+   `(diff-hl-dired-unknown ((,class :inherit dired-ignored)))
+   `(diff-hl-insert ((,class :inherit modus-theme-fringe-green)))
+   `(diff-hl-reverted-hunk-highlight ((,class :inherit (modus-theme-active-magenta bold))))
+;;;;; diff-mode
+   `(diff-added ((,class ,@(modus-operandi-theme-diffs
+                            bg-main green
+                            bg-diff-focus-added fg-diff-focus-added))))
+   `(diff-changed ((,class ,@(modus-operandi-theme-diffs
+                              bg-main yellow
+                              bg-diff-focus-changed fg-diff-focus-changed))))
+   `(diff-context ((,class :foreground ,fg-unfocused)))
+   `(diff-file-header ((,class :inherit bold :foreground ,blue)))
+   `(diff-function ((,class :foreground ,fg-special-cold)))
+   `(diff-header ((,class :foreground ,blue-nuanced)))
+   `(diff-hunk-header ((,class ,@(modus-operandi-theme-diffs
+                                  bg-alt blue-alt
+                                  bg-diff-heading fg-diff-heading))))
+   `(diff-index ((,class :inherit bold :foreground ,blue-alt)))
+   `(diff-indicator-added ((,class :inherit diff-added)))
+   `(diff-indicator-changed ((,class :inherit diff-changed)))
+   `(diff-indicator-removed ((,class :inherit diff-removed)))
+   `(diff-nonexistent ((,class :inherit (modus-theme-neutral bold))))
+   `(diff-refine-added ((,class ,@(modus-operandi-theme-diffs
+                                   bg-diff-added fg-diff-added
+                                   bg-diff-refine-added fg-diff-refine-added))))
+   `(diff-refine-changed ((,class ,@(modus-operandi-theme-diffs
+                                     bg-diff-changed fg-diff-changed
+                                     bg-diff-refine-changed fg-diff-refine-changed))))
+   `(diff-refine-removed ((,class ,@(modus-operandi-theme-diffs
+                                     bg-diff-removed fg-diff-removed
+                                     bg-diff-refine-removed fg-diff-refine-removed))))
+   `(diff-removed ((,class ,@(modus-operandi-theme-diffs
+                              bg-main red
+                              bg-diff-focus-removed fg-diff-focus-removed))))
+;;;;; dim-autoload
+   `(dim-autoload-cookie-line ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
+;;;;; dired
+   `(dired-directory ((,class :foreground ,blue)))
+   `(dired-flagged ((,class :inherit modus-theme-mark-del)))
+   `(dired-header ((,class :inherit modus-theme-header)))
+   `(dired-ignored ((,class :foreground ,fg-alt)))
+   `(dired-mark ((,class :inherit modus-theme-mark-symbol)))
+   `(dired-marked ((,class :inherit modus-theme-mark-sel)))
+   `(dired-perm-write ((,class :foreground ,fg-special-warm)))
+   `(dired-symlink ((,class :foreground ,cyan-alt :underline t)))
+   `(dired-warning ((,class :inherit bold :foreground ,yellow)))
+;;;;; dired-async
+   `(dired-async-failures ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,red-active)))
+   `(dired-async-message ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,green-active)))
+   `(dired-async-mode-message ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,cyan-active)))
+;;;;; dired-git
+   `(dired-git-branch-else ((,class :inherit bold :foreground ,magenta-alt)))
+   `(dired-git-branch-master ((,class :inherit bold :foreground ,magenta-alt-other)))
+;;;;; dired-git-info
+   `(dgi-commit-message-face ((,class :foreground ,fg-special-mild)))
+;;;;; dired-narrow
+   `(dired-narrow-blink ((,class :inherit (modus-theme-subtle-cyan bold))))
+;;;;; dired-subtree
+   ;; remove background from dired-subtree, else it breaks
+   ;; dired-{flagged,marked} and any other face that sets a background
+   ;; such as hl-line
+   `(dired-subtree-depth-1-face ((,class :background nil)))
+   `(dired-subtree-depth-2-face ((,class :background nil)))
+   `(dired-subtree-depth-3-face ((,class :background nil)))
+   `(dired-subtree-depth-4-face ((,class :background nil)))
+   `(dired-subtree-depth-5-face ((,class :background nil)))
+   `(dired-subtree-depth-6-face ((,class :background nil)))
+;;;;; diredfl
+   `(diredfl-autofile-name ((,class :inherit modus-theme-special-cold)))
+   `(diredfl-compressed-file-name ((,class :foreground ,green-alt-other)))
+   `(diredfl-compressed-file-suffix ((,class :foreground ,green-alt)))
+   `(diredfl-date-time ((,class :foreground ,fg-special-cold)))
+   `(diredfl-deletion ((,class :inherit modus-theme-mark-del)))
+   `(diredfl-deletion-file-name ((,class :inherit modus-theme-mark-del)))
+   `(diredfl-dir-heading ((,class :inherit modus-theme-header)))
+   `(diredfl-dir-name ((,class :inherit dired-directory)))
+   `(diredfl-dir-priv ((,class :foreground ,blue)))
+   `(diredfl-exec-priv ((,class :foreground ,red-alt-other)))
+   `(diredfl-executable-tag ((,class :foreground ,red-alt)))
+   `(diredfl-file-name ((,class :foreground ,fg-main)))
+   `(diredfl-file-suffix ((,class :foreground ,fg-special-warm)))
+   `(diredfl-flag-mark ((,class :inherit modus-theme-mark-sel)))
+   `(diredfl-flag-mark-line ((,class :inherit modus-theme-mark-sel)))
+   `(diredfl-ignored-file-name ((,class :foreground ,fg-inactive)))
+   `(diredfl-link-priv ((,class :foreground ,blue-alt-other)))
+   `(diredfl-no-priv ((,class :foreground ,fg-inactive)))
+   `(diredfl-number ((,class :foreground ,cyan)))
+   `(diredfl-other-priv ((,class :foreground ,yellow)))
+   `(diredfl-rare-priv ((,class :foreground ,magenta-alt-other)))
+   `(diredfl-read-priv ((,class :foreground ,magenta)))
+   `(diredfl-symlink ((,class :foreground ,cyan-alt :underline t)))
+   `(diredfl-tagged-autofile-name ((,class :inherit modus-theme-refine-magenta)))
+   `(diredfl-write-priv ((,class :foreground ,cyan-alt-other)))
+;;;;; disk-usage
+   `(disk-usage-children ((,class :foreground ,yellow)))
+   `(disk-usage-inaccessible ((,class :inherit bold :foreground ,red)))
+   `(disk-usage-percent ((,class :foreground ,green)))
+   `(disk-usage-size ((,class :foreground ,cyan)))
+   `(disk-usage-symlink ((,class :foreground ,blue :underline t)))
+   `(disk-usage-symlink-directory ((,class :inherit bold :foreground ,blue-alt)))
+;;;;; doom-modeline
+   `(doom-modeline-bar ((,class :inherit modus-theme-active-blue)))
+   `(doom-modeline-bar-inactive ((,class :background ,fg-inactive :foreground ,bg-main)))
+   `(doom-modeline-battery-charging ((,class :foreground ,green-active)))
+   `(doom-modeline-battery-critical ((,class :inherit bold :foreground ,red-active)))
+   `(doom-modeline-battery-error ((,class :inherit modus-theme-active-red)))
+   `(doom-modeline-battery-full ((,class :foreground ,blue-active)))
+   `(doom-modeline-battery-normal ((,class :foreground ,fg-active)))
+   `(doom-modeline-battery-warning ((,class :inherit bold :foreground ,yellow-active)))
+   `(doom-modeline-buffer-file ((,class :inherit bold :foreground ,fg-active)))
+   `(doom-modeline-buffer-major-mode ((,class :inherit bold :foreground ,cyan-active)))
+   `(doom-modeline-buffer-minor-mode ((,class :foreground ,fg-inactive)))
+   `(doom-modeline-buffer-modified ((,class :inherit bold :foreground ,magenta-active)))
+   `(doom-modeline-buffer-path ((,class :inherit bold :foreground ,fg-active)))
+   `(doom-modeline-debug ((,class :inherit bold :foreground ,yellow-active)))
+   `(doom-modeline-debug-visual ((,class :inherit bold :foreground ,red-active)))
+   `(doom-modeline-evil-emacs-state ((,class :inherit bold :foreground ,magenta-active)))
+   `(doom-modeline-evil-insert-state ((,class :inherit bold :foreground ,green-active)))
+   `(doom-modeline-evil-motion-state ((,class :inherit bold :foreground ,fg-inactive)))
+   `(doom-modeline-evil-normal-state ((,class :inherit bold :foreground ,fg-active)))
+   `(doom-modeline-evil-operator-state ((,class :inherit bold :foreground ,blue-active)))
+   `(doom-modeline-evil-replace-state ((,class :inherit bold :foreground ,red-active)))
+   `(doom-modeline-evil-visual-state ((,class :inherit bold :foreground ,cyan-active)))
+   `(doom-modeline-highlight ((,class :inherit bold :foreground ,blue-active)))
+   `(doom-modeline-host ((,class :slant italic)))
+   `(doom-modeline-info ((,class :foreground ,green-active)))
+   `(doom-modeline-lsp-error ((,class :inherit bold :foreground ,red-active)))
+   `(doom-modeline-lsp-success ((,class :inherit bold :foreground ,green-active)))
+   `(doom-modeline-lsp-warning ((,class :inherit bold :foreground ,yellow-active)))
+   `(doom-modeline-panel ((,class :inherit modus-theme-active-blue)))
+   `(doom-modeline-persp-buffer-not-in-persp ((,class :foreground ,yellow-active :slant italic)))
+   `(doom-modeline-persp-name ((,class :foreground ,fg-active)))
+   `(doom-modeline-project-dir ((,class :inherit bold :foreground ,blue-active)))
+   `(doom-modeline-project-parent-dir ((,class :foreground ,blue-active)))
+   `(doom-modeline-project-root-dir ((,class :foreground ,fg-active)))
+   `(doom-modeline-unread-number ((,class :foreground ,fg-active :slant italic)))
+   `(doom-modeline-urgent ((,class :inherit bold :foreground ,red-active)))
+   `(doom-modeline-warning ((,class :inherit bold :foreground ,yellow-active)))
+;;;;; dynamic-ruler
+   `(dynamic-ruler-negative-face ((,class :inherit modus-theme-intense-neutral)))
+   `(dynamic-ruler-positive-face ((,class :inherit modus-theme-intense-yellow)))
+;;;;; easy-jekyll
+   `(easy-jekyll-help-face ((,class :background ,bg-dim :foreground ,cyan-alt-other)))
+;;;;; easy-kill
+   `(easy-kill-origin ((,class :inherit modus-theme-subtle-red)))
+   `(easy-kill-selection ((,class :inherit modus-theme-subtle-yellow)))
+;;;;; ebdb
+   `(ebdb-address-default ((,class :foreground ,fg-main)))
+   `(ebdb-db-char ((,class :foreground ,fg-special-cold)))
+   `(ebdb-defunct ((,class :foreground ,fg-alt)))
+   `(ebdb-field-hidden ((,class :foreground ,magenta)))
+   `(ebdb-field-url ((,class :foreground ,blue)))
+   `(ebdb-label ((,class :foreground ,cyan-alt-other)))
+   `(ebdb-mail-default ((,class :foreground ,fg-main)))
+   `(ebdb-mail-primary ((,class :foreground ,blue-alt)))
+   `(ebdb-marked ((,class :background ,cyan-intense-bg)))
+   `(ebdb-organization-name ((,class :foreground ,fg-special-calm)))
+   `(ebdb-person-name ((,class :foreground ,magenta-alt-other)))
+   `(ebdb-phone-default ((,class :foreground ,fg-special-warm)))
+   `(ebdb-role-defunct ((,class :foreground ,fg-alt)))
+   `(eieio-custom-slot-tag-face ((,class :foreground ,red-alt)))
+;;;;; ediff
+   `(ediff-current-diff-A ((,class ,@(modus-operandi-theme-diffs
+                                      bg-alt red
+                                      bg-diff-removed fg-diff-removed))))
+   `(ediff-current-diff-Ancestor ((,class ,@(modus-operandi-theme-diffs
+                                             bg-alt fg-special-cold
+                                             bg-special-cold fg-special-cold))))
+   `(ediff-current-diff-B ((,class ,@(modus-operandi-theme-diffs
+                                      bg-alt green
+                                      bg-diff-added fg-diff-added))))
+   `(ediff-current-diff-C ((,class ,@(modus-operandi-theme-diffs
+                                      bg-alt yellow
+                                      bg-diff-changed fg-diff-changed))))
+   `(ediff-even-diff-A ((,class :background ,bg-diff-neutral-1 :foreground ,fg-diff-neutral-1)))
+   `(ediff-even-diff-Ancestor ((,class :background ,bg-diff-neutral-2 :foreground ,fg-diff-neutral-1)))
+   `(ediff-even-diff-B ((,class :background ,bg-diff-neutral-1 :foreground ,fg-diff-neutral-1)))
+   `(ediff-even-diff-C ((,class :background ,bg-diff-neutral-2 :foreground ,fg-diff-neutral-2)))
+   `(ediff-fine-diff-A ((,class :background ,bg-diff-focus-removed :foreground ,fg-diff-focus-removed)))
+   `(ediff-fine-diff-Ancestor ((,class :inherit modus-theme-refine-cyan)))
+   `(ediff-fine-diff-B ((,class :background ,bg-diff-focus-added :foreground ,fg-diff-focus-added)))
+   `(ediff-fine-diff-C ((,class :background ,bg-diff-focus-changed :foreground ,fg-diff-focus-changed)))
+   `(ediff-odd-diff-A ((,class :background ,bg-diff-neutral-2 :foreground ,fg-diff-neutral-2)))
+   `(ediff-odd-diff-Ancestor ((,class :background ,bg-diff-neutral-0 :foreground ,fg-diff-neutral-0)))
+   `(ediff-odd-diff-B ((,class :background ,bg-diff-neutral-2 :foreground ,fg-diff-neutral-2)))
+   `(ediff-odd-diff-C ((,class :background ,bg-diff-neutral-1 :foreground ,fg-diff-neutral-1)))
+;;;;; eglot
+   `(eglot-mode-line ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,magenta-active)))
+;;;;; el-search
+   `(el-search-highlight-in-prompt-face ((,class :inherit bold :foreground ,magenta-alt)))
+   `(el-search-match ((,class :inherit modus-theme-intense-green)))
+   `(el-search-other-match ((,class :inherit modus-theme-special-mild)))
+   `(el-search-occur-match ((,class :inherit modus-theme-special-calm)))
+;;;;; eldoc-box
+   `(eldoc-box-body ((,class :background ,bg-alt :foreground ,fg-main)))
+   `(eldoc-box-border ((,class :background ,fg-alt)))
+;;;;; elfeed
+   `(elfeed-log-date-face ((,class :foreground ,cyan-alt)))
+   `(elfeed-log-debug-level-face ((,class :foreground ,magenta)))
+   `(elfeed-log-error-level-face ((,class :foreground ,red)))
+   `(elfeed-log-info-level-face ((,class :foreground ,green)))
+   `(elfeed-log-warn-level-face ((,class :foreground ,yellow)))
+   `(elfeed-search-date-face ((,class :foreground ,cyan)))
+   `(elfeed-search-feed-face ((,class :foreground ,blue)))
+   `(elfeed-search-filter-face ((,class :foreground ,magenta-active)))
+   `(elfeed-search-last-update-face ((,class :foreground ,green-active)))
+   `(elfeed-search-tag-face ((,class :foreground ,cyan-alt-other)))
+   `(elfeed-search-title-face ((,class :foreground ,fg-main)))
+   `(elfeed-search-unread-count-face ((,class :foreground ,blue-active)))
+   `(elfeed-search-unread-title-face ((,class :inherit bold)))
+;;;;; elfeed-score
+   `(elfeed-score-date-face ((,class :foreground ,blue)))
+   `(elfeed-score-debug-level-face ((,class :foreground ,magenta-alt-other)))
+   `(elfeed-score-error-level-face ((,class :foreground ,red)))
+   `(elfeed-score-info-level-face ((,class :foreground ,cyan)))
+   `(elfeed-score-warn-level-face ((,class :foreground ,yellow)))
+;;;;; emms
+   `(emms-playlist-track-face ((,class :foreground ,blue)))
+   `(emms-playlist-selected-face ((,class :inherit bold :foreground ,magenta)))
+;;;;; enhanced-ruby-mode
+   `(enh-ruby-heredoc-delimiter-face ((,class :foreground ,blue-alt-other)))
+   `(enh-ruby-op-face ((,class :foreground ,fg-main)))
+   `(enh-ruby-regexp-delimiter-face ((,class :foreground ,green)))
+   `(enh-ruby-regexp-face ((,class :foreground ,magenta)))
+   `(enh-ruby-string-delimiter-face ((,class :foreground ,blue-alt)))
+   `(erm-syn-errline ((,class :foreground ,red :underline t)))
+   `(erm-syn-warnline ((,class :foreground ,yellow :underline t)))
+;;;;; epa
+   `(epa-field-body ((,class :foreground ,fg-main)))
+   `(epa-field-name ((,class :inherit bold :foreground ,fg-dim)))
+   `(epa-mark ((,class :inherit bold :foreground ,magenta)))
+   `(epa-string ((,class :foreground ,blue-alt)))
+   `(epa-validity-disabled ((,class :inherit modus-theme-refine-red)))
+   `(epa-validity-high ((,class :inherit bold :foreground ,green-alt-other)))
+   `(epa-validity-low ((,class :foreground ,fg-alt)))
+   `(epa-validity-medium ((,class :foreground ,green-alt)))
+;;;;; equake
+   `(equake-buffer-face ((,class :background ,bg-main :foreground ,fg-main)))
+   `(equake-shell-type-eshell ((,class :background ,bg-inactive :foreground ,green-active)))
+   `(equake-shell-type-rash ((,class :background ,bg-inactive :foreground ,red-active)))
+   `(equake-shell-type-shell ((,class :background ,bg-inactive :foreground ,cyan-active)))
+   `(equake-shell-type-term ((,class :background ,bg-inactive :foreground ,yellow-active)))
+   `(equake-shell-type-vterm ((,class :background ,bg-inactive :foreground ,magenta-active)))
+   `(equake-tab-active ((,class :background ,fg-alt :foreground ,bg-alt)))
+   `(equake-tab-inactive ((,class :foreground ,fg-inactive)))
+;;;;; erc
+   `(erc-action-face ((,class :inherit bold :foreground ,cyan)))
+   `(erc-bold-face ((,class :inherit bold)))
+   `(erc-button ((,class :inherit button)))
+   `(erc-command-indicator-face ((,class :inherit bold :foreground ,cyan-alt)))
+   `(erc-current-nick-face ((,class :foreground ,magenta-alt-other)))
+   `(erc-dangerous-host-face ((,class :inherit modus-theme-intense-red)))
+   `(erc-direct-msg-face ((,class :foreground ,magenta)))
+   `(erc-error-face ((,class :inherit bold :foreground ,red)))
+   `(erc-fool-face ((,class :foreground ,fg-inactive)))
+   `(erc-header-line ((,class :background ,bg-header :foreground ,fg-header)))
+   `(erc-input-face ((,class :foreground ,fg-special-calm)))
+   `(erc-inverse-face ((,class :inherit erc-default-face :inverse-video t)))
+   `(erc-keyword-face ((,class :inherit bold :foreground ,magenta-alt)))
+   `(erc-my-nick-face ((,class :inherit bold :foreground ,magenta)))
+   `(erc-my-nick-prefix-face ((,class :inherit erc-my-nick-face)))
+   `(erc-nick-default-face ((,class :inherit bold :foreground ,blue)))
+   `(erc-nick-msg-face ((,class :inherit bold :foreground ,green)))
+   `(erc-nick-prefix-face ((,class :inherit erc-nick-default-face)))
+   `(erc-notice-face ((,class :foreground ,fg-unfocused)))
+   `(erc-pal-face ((,class :inherit bold :foreground ,red-alt)))
+   `(erc-prompt-face ((,class :inherit bold :foreground ,cyan-alt-other)))
+   `(erc-timestamp-face ((,class :foreground ,blue-nuanced)))
+   `(erc-underline-face ((,class :underline t)))
+;;;;; eros
+   `(eros-result-overlay-face ((,class :box (:line-width -1 :color ,blue)
+                                       :background ,bg-dim :foreground ,fg-dim)))
+;;;;; ert
+   `(ert-test-result-expected ((,class :inherit modus-theme-intense-green)))
+   `(ert-test-result-unexpected ((,class :inherit modus-theme-intense-red)))
+;;;;; eshell
+   `(eshell-ls-archive ((,class :inherit bold :foreground ,cyan-alt)))
+   `(eshell-ls-backup ((,class :foreground ,yellow-alt)))
+   `(eshell-ls-clutter ((,class :foreground ,red-alt)))
+   `(eshell-ls-directory ((,class :inherit bold :foreground ,blue-alt)))
+   `(eshell-ls-executable ((,class :foreground ,magenta-alt)))
+   `(eshell-ls-missing ((,class :inherit modus-theme-intense-red)))
+   `(eshell-ls-product ((,class :foreground ,fg-special-warm)))
+   `(eshell-ls-readonly ((,class :foreground ,fg-special-cold)))
+   `(eshell-ls-special ((,class :inherit bold :foreground ,magenta)))
+   `(eshell-ls-symlink ((,class :foreground ,cyan :underline t)))
+   `(eshell-ls-unreadable ((,class :background ,bg-inactive :foreground ,fg-inactive)))
+   `(eshell-prompt ((,class ,@(modus-operandi-theme-bold-weight)
+                            ,@(modus-operandi-theme-prompt green-alt-other
+                                                           green-nuanced-bg
+                                                           green-alt
+                                                           green-refine-bg
+                                                           fg-main))))
+;;;;; eshell-fringe-status
+   `(eshell-fringe-status-failure ((,class :foreground ,red)))
+   `(eshell-fringe-status-success ((,class :foreground ,green)))
+;;;;; eshell-git-prompt
+   `(eshell-git-prompt-add-face ((,class :foreground ,fg-alt)))
+   `(eshell-git-prompt-branch-face ((,class :foreground ,fg-alt)))
+   `(eshell-git-prompt-directory-face ((,class :foreground ,cyan)))
+   `(eshell-git-prompt-exit-fail-face ((,class :foreground ,red)))
+   `(eshell-git-prompt-exit-success-face ((,class :foreground ,green)))
+   `(eshell-git-prompt-modified-face ((,class :foreground ,yellow)))
+   `(eshell-git-prompt-powerline-clean-face ((,class :background ,green-refine-bg)))
+   `(eshell-git-prompt-powerline-dir-face ((,class :background ,blue-refine-bg)))
+   `(eshell-git-prompt-powerline-not-clean-face ((,class :background ,magenta-refine-bg)))
+   `(eshell-git-prompt-robyrussell-branch-face ((,class :foreground ,red)))
+   `(eshell-git-prompt-robyrussell-git-dirty-face ((,class :foreground ,yellow)))
+   `(eshell-git-prompt-robyrussell-git-face ((,class :foreground ,blue)))
+;;;;; eshell-prompt-extras (epe)
+   `(epe-dir-face ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,blue)))
+   `(epe-git-dir-face ((,class :foreground ,red-alt-other)))
+   `(epe-git-face ((,class :foreground ,cyan-alt)))
+   `(epe-pipeline-delimiter-face ((,class :foreground ,green-alt)))
+   `(epe-pipeline-host-face ((,class :foreground ,blue)))
+   `(epe-pipeline-time-face ((,class :foreground ,fg-special-warm)))
+   `(epe-pipeline-user-face ((,class :foreground ,magenta)))
+   `(epe-remote-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
+   `(epe-status-face ((,class :foreground ,magenta-alt-other)))
+   `(epe-venv-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
+;;;;; evil-mode
+   `(evil-ex-commands ((,class :foreground ,magenta-alt-other)))
+   `(evil-ex-info ((,class :foreground ,cyan-alt-other)))
+   `(evil-ex-lazy-highlight ((,class :inherit modus-theme-refine-cyan)))
+   `(evil-ex-search ((,class :inherit modus-theme-intense-green)))
+   `(evil-ex-substitute-matches ((,class :inherit modus-theme-refine-yellow :underline t)))
+   `(evil-ex-substitute-replacement ((,class :inherit (modus-theme-intense-green bold))))
+;;;;; evil-goggles
+   `(evil-goggles-change-face ((,class :inherit modus-theme-refine-yellow)))
+   `(evil-goggles-commentary-face ((,class :inherit modus-theme-subtle-neutral :slant ,modus-theme-slant)))
+   `(evil-goggles-default-face ((,class :inherit modus-theme-subtle-neutral)))
+   `(evil-goggles-delete-face ((,class :inherit modus-theme-refine-red)))
+   `(evil-goggles-fill-and-move-face ((,class :inherit evil-goggles-default-face)))
+   `(evil-goggles-indent-face ((,class :inherit evil-goggles-default-face)))
+   `(evil-goggles-join-face ((,class :inherit modus-theme-subtle-green)))
+   `(evil-goggles-nerd-commenter-face ((,class :inherit evil-goggles-commentary-face)))
+   `(evil-goggles-paste-face ((,class :inherit modus-theme-subtle-cyan)))
+   `(evil-goggles-record-macro-face ((,class :inherit modus-theme-special-cold)))
+   `(evil-goggles-replace-with-register-face ((,class :inherit modus-theme-refine-magenta)))
+   `(evil-goggles-set-marker-face ((,class :inherit modus-theme-intense-magenta)))
+   `(evil-goggles-shift-face ((,class :inherit evil-goggles-default-face)))
+   `(evil-goggles-surround-face ((,class :inherit evil-goggles-default-face)))
+   `(evil-goggles-yank-face ((,class :inherit modus-theme-subtle-blue)))
+;;;;; evil-visual-mark-mode
+   `(evil-visual-mark-face ((,class :inherit modus-theme-intense-magenta)))
+;;;;; eww
+   `(eww-invalid-certificate ((,class :foreground ,red-active)))
+   `(eww-valid-certificate ((,class :foreground ,green-active)))
+   `(eww-form-checkbox ((,class :box (:line-width 1 :color ,fg-inactive :style released-button) :background ,bg-inactive :foreground ,fg-main)))
+   `(eww-form-file ((,class :box (:line-width 1 :color ,fg-inactive :style released-button) :background ,bg-active :foreground ,fg-main)))
+   `(eww-form-select ((,class :inherit eww-form-checkbox)))
+   `(eww-form-submit ((,class :inherit eww-form-file)))
+   `(eww-form-text ((,class :box (:line-width 1 :color ,fg-inactive :style none) :background ,bg-active :foreground ,fg-active)))
+   `(eww-form-textarea ((,class :background ,bg-alt :foreground ,fg-main)))
+;;;;; eyebrowse
+   `(eyebrowse-mode-line-active ((,class :inherit bold :foreground ,blue-active)))
+;;;;; fancy-dabbrev
+   `(fancy-dabbrev-menu-face ((,class :background ,bg-alt :foreground ,fg-alt)))
+   `(fancy-dabbrev-preview-face ((,class :foreground ,fg-alt :underline t)))
+   `(fancy-dabbrev-selection-face ((,class :inherit (modus-theme-intense-cyan bold))))
+;;;;; flycheck
+   `(flycheck-error
+     ((,(append '((supports :underline (:style wave))) class)
+       :underline (:color ,fg-lang-error :style wave))
+      (,class :foreground ,fg-lang-error :underline t)))
+   `(flycheck-error-list-checker-name ((,class :foreground ,magenta-active)))
+   `(flycheck-error-list-column-number ((,class :foreground ,fg-special-cold)))
+   `(flycheck-error-list-error ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,red)))
+   `(flycheck-error-list-filename ((,class :foreground ,blue)))
+   `(flycheck-error-list-highlight ((,class :inherit modus-theme-hl-line)))
+   `(flycheck-error-list-id ((,class :foreground ,magenta-alt-other)))
+   `(flycheck-error-list-id-with-explainer ((,class :inherit flycheck-error-list-id :box t)))
+   `(flycheck-error-list-info ((,class :foreground ,cyan)))
+   `(flycheck-error-list-line-number ((,class :foreground ,fg-special-warm)))
+   `(flycheck-error-list-warning ((,class :foreground ,yellow)))
+   `(flycheck-fringe-error ((,class :inherit modus-theme-fringe-red)))
+   `(flycheck-fringe-info ((,class :inherit modus-theme-fringe-cyan)))
+   `(flycheck-fringe-warning ((,class :inherit modus-theme-fringe-yellow)))
+   `(flycheck-info
+     ((,(append '((supports :underline (:style wave))) class)
+       :underline (:color ,fg-lang-note :style wave))
+      (,class :foreground ,fg-lang-note :underline t)))
+   `(flycheck-verify-select-checker ((,class :box (:line-width 1 :color nil :style released-button))))
+   `(flycheck-warning
+     ((,(append '((supports :underline (:style wave))) class)
+       :underline (:color ,fg-lang-warning :style wave))
+      (,class :foreground ,fg-lang-warning :underline t)))
+;;;;; flycheck-indicator
+   `(flycheck-indicator-disabled ((,class :foreground ,fg-inactive :slant ,modus-theme-slant)))
+   `(flycheck-indicator-error ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,red-active)))
+   `(flycheck-indicator-info ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,blue-active)))
+   `(flycheck-indicator-running ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,magenta-active)))
+   `(flycheck-indicator-success ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,green-active)))
+   `(flycheck-indicator-warning ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,yellow-active)))
+;;;;; flycheck-posframe
+   `(flycheck-posframe-background-face ((,class :background ,bg-alt)))
+   `(flycheck-posframe-border-face ((,class :foreground ,fg-alt)))
+   `(flycheck-posframe-error-face ((,class :inherit bold :foreground ,red)))
+   `(flycheck-posframe-face ((,class :foreground ,fg-main :slant ,modus-theme-slant)))
+   `(flycheck-posframe-info-face ((,class :inherit bold :foreground ,cyan)))
+   `(flycheck-posframe-warning-face ((,class :inherit bold :foreground ,yellow)))
+;;;;; flymake
+   `(flymake-error
+     ((,(append '((supports :underline (:style wave))) class)
+       :underline (:color ,fg-lang-error :style wave))
+      (,class :foreground ,fg-lang-error :underline t)))
+   `(flymake-note
+     ((,(append '((supports :underline (:style wave))) class)
+       :underline (:color ,fg-lang-note :style wave))
+      (,class :foreground ,fg-lang-note :underline t)))
+   `(flymake-warning
+     ((,(append '((supports :underline (:style wave))) class)
+       :underline (:color ,fg-lang-warning :style wave))
+      (,class :foreground ,fg-lang-warning :underline t)))
+;;;;; flyspell
+   `(flyspell-duplicate
+     ((,(append '((supports :underline (:style wave))) class)
+       :underline (:color ,fg-lang-warning :style wave))
+      (,class :foreground ,fg-lang-warning :underline t)))
+   `(flyspell-incorrect
+     ((,(append '((supports :underline (:style wave))) class)
+       :underline (:color ,fg-lang-error :style wave))
+      (,class :foreground ,fg-lang-error :underline t)))
+;;;;; flyspell-correct
+   `(flyspell-correct-highlight-face ((,class :inherit modus-theme-refine-green)))
+;;;;; flx
+   `(flx-highlight-face ((,class ,@(modus-operandi-theme-extra-completions
+                                    'modus-theme-subtle-magenta
+                                    'modus-theme-intense-magenta
+                                    'modus-theme-nuanced-magenta
+                                    magenta-alt-other
+                                    'bold))))
+;;;;; freeze-it
+   `(freeze-it-show ((,class :background ,bg-dim :foreground ,fg-special-warm)))
+;;;;; frog-menu
+   `(frog-menu-action-keybinding-face ((,class :foreground ,blue-alt-other)))
+   `(frog-menu-actions-face ((,class :foreground ,magenta)))
+   `(frog-menu-border ((,class :background ,bg-active)))
+   `(frog-menu-candidates-face ((,class :foreground ,fg-main)))
+   `(frog-menu-posframe-background-face ((,class :background ,bg-dim)))
+   `(frog-menu-prompt-face ((,class :foreground ,cyan)))
+;;;;; focus
+   `(focus-unfocused ((,class :foreground ,fg-unfocused)))
+;;;;; fold-this
+   `(fold-this-overlay ((,class :inherit modus-theme-special-mild)))
+;;;;; font-lock
+   `(font-lock-builtin-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                        magenta-alt magenta-alt-faint)
+                                     ,@(modus-operandi-theme-bold-weight))))
+   `(font-lock-comment-delimiter-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
+   `(font-lock-comment-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
+   `(font-lock-constant-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                         blue-alt-other blue-alt-other-faint))))
+   `(font-lock-doc-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                    fg-special-cold cyan-alt-other-faint)
+                                 :slant ,modus-theme-slant)))
+   `(font-lock-function-name-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                              magenta magenta-faint))))
+   `(font-lock-keyword-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                        magenta-alt-other magenta-alt-other-faint)
+                                     ,@(modus-operandi-theme-bold-weight))))
+   `(font-lock-negation-char-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                              yellow yellow-faint)
+                                           ,@(modus-operandi-theme-bold-weight))))
+   `(font-lock-preprocessor-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                             red-alt-other red-alt-other-faint))))
+   `(font-lock-regexp-grouping-backslash ((,class :inherit bold :foreground ,fg-escape-char-backslash)))
+   `(font-lock-regexp-grouping-construct ((,class :inherit bold :foreground ,fg-escape-char-construct)))
+   `(font-lock-string-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                       blue-alt blue-alt-faint))))
+   `(font-lock-type-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                     magenta-alt magenta-alt-faint))))
+   `(font-lock-variable-name-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                              cyan cyan-faint))))
+   `(font-lock-warning-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                        yellow-active yellow-alt-faint)
+                                     ,@(modus-operandi-theme-bold-weight))))
+;;;;; forge
+   `(forge-post-author ((,class :inherit bold :foreground ,fg-main)))
+   `(forge-post-date ((,class :foreground ,fg-special-cold)))
+   `(forge-topic-closed ((,class :foreground ,fg-alt)))
+   `(forge-topic-merged ((,class :foreground ,fg-alt)))
+   `(forge-topic-open ((,class :foreground ,fg-special-mild)))
+   `(forge-topic-unmerged ((,class :foreground ,magenta :slant ,modus-theme-slant)))
+   `(forge-topic-unread ((,class :inherit bold :foreground ,fg-main)))
+;;;;; fountain-mode
+   `(fountain-character ((,class :foreground ,blue-alt-other)))
+   `(fountain-comment ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
+   `(fountain-dialog ((,class :foreground ,blue-alt)))
+   `(fountain-metadata-key ((,class :foreground ,green-alt-other)))
+   `(fountain-metadata-value ((,class :foreground ,blue)))
+   `(fountain-non-printing ((,class :foreground ,fg-alt)))
+   `(fountain-note ((,class :foreground ,yellow :slant ,modus-theme-slant)))
+   `(fountain-page-break ((,class :inherit bold :foreground ,red-alt)))
+   `(fountain-page-number ((,class :inherit bold :foreground ,red-alt-other)))
+   `(fountain-paren ((,class :foreground ,cyan)))
+   `(fountain-scene-heading ((,class :inherit bold :foreground ,blue-nuanced)))
+   `(fountain-section-heading ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-main
+                                       ,@(modus-operandi-theme-scale modus-operandi-theme-scale-4))))
+   `(fountain-section-heading-1 ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-main
+                                         ,@(modus-operandi-theme-scale modus-operandi-theme-scale-4))))
+   `(fountain-section-heading-2 ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-special-warm
+                                         ,@(modus-operandi-theme-scale modus-operandi-theme-scale-3))))
+   `(fountain-section-heading-3 ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-special-mild
+                                         ,@(modus-operandi-theme-scale modus-operandi-theme-scale-2))))
+   `(fountain-section-heading-4 ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-special-calm
+                                         ,@(modus-operandi-theme-scale modus-operandi-theme-scale-1))))
+   `(fountain-section-heading-5 ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-special-calm)))
+   `(fountain-synopsis ((,class :foreground ,cyan-alt)))
+   `(fountain-trans ((,class :foreground ,yellow-alt-other)))
+;;;;; geiser
+   `(geiser-font-lock-autodoc-current-arg ((,class ,@(modus-operandi-theme-syntax-foreground
+                                                      magenta magenta-faint))))
+   `(geiser-font-lock-autodoc-identifier ((,class ,@(modus-operandi-theme-syntax-foreground
+                                                     blue blue-faint))))
+   `(geiser-font-lock-doc-button ((,class ,@(modus-operandi-theme-syntax-foreground
+                                             cyan-alt cyan-alt-faint)
+                                          :underline t)))
+   `(geiser-font-lock-doc-link ((,class :inherit link)))
+   `(geiser-font-lock-error-link ((,class ,@(modus-operandi-theme-syntax-foreground
+                                             red-alt red-alt-faint)
+                                          :underline t)))
+   `(geiser-font-lock-image-button ((,class ,@(modus-operandi-theme-syntax-foreground
+                                               green-alt green-alt-faint)
+                                            :underline t)))
+   `(geiser-font-lock-repl-input ((,class :inherit bold)))
+   `(geiser-font-lock-repl-output ((,class ,@(modus-operandi-theme-syntax-foreground
+                                              magenta-alt-other magenta-alt-other-faint))))
+   `(geiser-font-lock-repl-prompt ((,class ,@(modus-operandi-theme-syntax-foreground
+                                              cyan-alt-other cyan-alt-other-faint))))
+   `(geiser-font-lock-xref-header ((,class :inherit bold)))
+   `(geiser-font-lock-xref-link ((,class :inherit link)))
+;;;;; git-commit
+   `(git-commit-comment-action ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
+   `(git-commit-comment-branch-local ((,class :foreground ,blue-alt :slant ,modus-theme-slant)))
+   `(git-commit-comment-branch-remote ((,class :foreground ,magenta-alt :slant ,modus-theme-slant)))
+   `(git-commit-comment-detached ((,class :foreground ,cyan-alt :slant ,modus-theme-slant)))
+   `(git-commit-comment-file ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
+   `(git-commit-comment-heading ((,class :inherit bold :foreground ,fg-alt :slant ,modus-theme-slant)))
+   `(git-commit-keyword ((,class :foreground ,magenta)))
+   `(git-commit-known-pseudo-header ((,class :inherit bold :foreground ,fg-special-warm)))
+   `(git-commit-nonempty-second-line ((,class :inherit modus-theme-refine-yellow)))
+   `(git-commit-overlong-summary ((,class :inherit modus-theme-refine-yellow)))
+   `(git-commit-pseudo-header ((,class :inherit bold :foreground ,fg-alt)))
+   `(git-commit-summary ((,class :foreground ,magenta-alt-other)))
+;;;;; git-rebase
+   `(git-rebase-comment-hash ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
+   `(git-rebase-comment-heading ((,class :inherit bold :foreground ,fg-dim :slant ,modus-theme-slant)))
+   `(git-rebase-description ((,class :foreground ,fg-main)))
+   `(git-rebase-hash ((,class :foreground ,cyan-alt-other)))
+;;;;; git-gutter
+   `(git-gutter:added ((,class :inherit modus-theme-fringe-green)))
+   `(git-gutter:deleted ((,class :inherit modus-theme-fringe-red)))
+   `(git-gutter:modified ((,class :inherit modus-theme-fringe-yellow)))
+   `(git-gutter:separator ((,class :inherit modus-theme-fringe-cyan)))
+   `(git-gutter:unchanged ((,class :inherit modus-theme-fringe-magenta)))
+;;;;; git-gutter-fr
+   `(git-gutter-fr:added ((,class :inherit modus-theme-fringe-green)))
+   `(git-gutter-fr:deleted ((,class :inherit modus-theme-fringe-red)))
+   `(git-gutter-fr:modified ((,class :inherit modus-theme-fringe-yellow)))
+;;;;; git-{gutter,fringe}+
+   `(git-gutter+-added ((,class :inherit modus-theme-fringe-green)))
+   `(git-gutter+-deleted ((,class :inherit modus-theme-fringe-red)))
+   `(git-gutter+-modified ((,class :inherit modus-theme-fringe-yellow)))
+   `(git-gutter+-separator ((,class :inherit modus-theme-fringe-cyan)))
+   `(git-gutter+-unchanged ((,class :inherit modus-theme-fringe-magenta)))
+   `(git-gutter-fr+-added ((,class :inherit modus-theme-fringe-green)))
+   `(git-gutter-fr+-deleted ((,class :inherit modus-theme-fringe-red)))
+   `(git-gutter-fr+-modified ((,class :inherit modus-theme-fringe-yellow)))
+;;;;; git-lens
+   `(git-lens-added ((,class :inherit bold :foreground ,green)))
+   `(git-lens-deleted ((,class :inherit bold :foreground ,red)))
+   `(git-lens-header ((,class :inherit bold :height 1.1 :foreground ,cyan)))
+   `(git-lens-modified ((,class :inherit bold :foreground ,yellow)))
+   `(git-lens-renamed ((,class :inherit bold :foreground ,magenta)))
+;;;;; git-timemachine
+   `(git-timemachine-commit ((,class :inherit bold :foreground ,yellow-active)))
+   `(git-timemachine-minibuffer-author-face ((,class :foreground ,fg-special-warm)))
+   `(git-timemachine-minibuffer-detail-face ((,class :foreground ,red-alt)))
+;;;;; git-walktree
+   `(git-walktree-commit-face ((,class :foreground ,yellow)))
+   `(git-walktree-symlink-face ((,class :foreground ,cyan :underline t)))
+   `(git-walktree-tree-face ((,class :foreground ,magenta)))
+;;;;; gnus
+   `(gnus-button ((,class :inherit button)))
+   `(gnus-cite-1 ((,class :foreground ,blue-alt)))
+   `(gnus-cite-10 ((,class :foreground ,magenta-alt-other)))
+   `(gnus-cite-11 ((,class :foreground ,yellow-alt-other)))
+   `(gnus-cite-2 ((,class :foreground ,red-alt)))
+   `(gnus-cite-3 ((,class :foreground ,green-alt)))
+   `(gnus-cite-4 ((,class :foreground ,magenta-alt)))
+   `(gnus-cite-5 ((,class :foreground ,yellow-alt)))
+   `(gnus-cite-6 ((,class :foreground ,cyan-alt)))
+   `(gnus-cite-7 ((,class :foreground ,blue-alt-other)))
+   `(gnus-cite-8 ((,class :foreground ,red-alt-other)))
+   `(gnus-cite-9 ((,class :foreground ,green-alt-other)))
+   `(gnus-cite-attribution ((,class :foreground ,fg-main :slant italic)))
+   `(gnus-emphasis-highlight-words ((,class :inherit modus-theme-refine-yellow)))
+   `(gnus-group-mail-1 ((,class :inherit bold :foreground ,magenta-alt)))
+   `(gnus-group-mail-1-empty ((,class :foreground ,magenta-alt)))
+   `(gnus-group-mail-2 ((,class :inherit bold :foreground ,magenta)))
+   `(gnus-group-mail-2-empty ((,class :foreground ,magenta)))
+   `(gnus-group-mail-3 ((,class :inherit bold :foreground ,magenta-alt-other)))
+   `(gnus-group-mail-3-empty ((,class :foreground ,magenta-alt-other)))
+   `(gnus-group-mail-low ((,class :inherit bold :foreground ,magenta-nuanced)))
+   `(gnus-group-mail-low-empty ((,class :foreground ,magenta-nuanced)))
+   `(gnus-group-news-1 ((,class :inherit bold :foreground ,green)))
+   `(gnus-group-news-1-empty ((,class :foreground ,green)))
+   `(gnus-group-news-2 ((,class :inherit bold :foreground ,cyan)))
+   `(gnus-group-news-2-empty ((,class :foreground ,cyan)))
+   `(gnus-group-news-3 ((,class :inherit bold :foreground ,yellow-nuanced)))
+   `(gnus-group-news-3-empty ((,class :foreground ,yellow-nuanced)))
+   `(gnus-group-news-4 ((,class :inherit bold :foreground ,cyan-nuanced)))
+   `(gnus-group-news-4-empty ((,class :foreground ,cyan-nuanced)))
+   `(gnus-group-news-5 ((,class :inherit bold :foreground ,red-nuanced)))
+   `(gnus-group-news-5-empty ((,class :foreground ,red-nuanced)))
+   `(gnus-group-news-6 ((,class :inherit bold :foreground ,fg-alt)))
+   `(gnus-group-news-6-empty ((,class :foreground ,fg-alt)))
+   `(gnus-group-news-low ((,class :inherit bold :foreground ,green-nuanced)))
+   `(gnus-group-news-low-empty ((,class :foreground ,green-nuanced)))
+   `(gnus-header-content ((,class :foreground ,fg-special-calm)))
+   `(gnus-header-from ((,class :inherit bold :foreground ,cyan-alt :underline nil)))
+   `(gnus-header-name ((,class :foreground ,cyan-alt-other)))
+   `(gnus-header-newsgroups ((,class :inherit bold :foreground ,blue-alt)))
+   `(gnus-header-subject ((,class :inherit bold :foreground ,magenta-alt-other)))
+   `(gnus-server-agent ((,class :inherit bold :foreground ,cyan)))
+   `(gnus-server-closed ((,class :inherit bold :foreground ,magenta)))
+   `(gnus-server-cloud ((,class :inherit bold :foreground ,cyan-alt)))
+   `(gnus-server-cloud-host ((,class :inherit modus-theme-refine-cyan)))
+   `(gnus-server-denied ((,class :inherit bold :foreground ,red)))
+   `(gnus-server-offline ((,class :inherit bold :foreground ,yellow)))
+   `(gnus-server-opened ((,class :inherit bold :foreground ,green)))
+   `(gnus-signature ((,class :foreground ,fg-special-cold :slant italic)))
+   `(gnus-splash ((,class :foreground ,fg-alt)))
+   `(gnus-summary-cancelled ((,class :inherit modus-theme-mark-alt)))
+   `(gnus-summary-high-ancient ((,class :inherit bold :foreground ,fg-alt)))
+   `(gnus-summary-high-read ((,class :inherit bold :foreground ,fg-special-cold)))
+   `(gnus-summary-high-ticked ((,class :inherit bold :foreground ,red-alt-other)))
+   `(gnus-summary-high-undownloaded ((,class :inherit bold :foreground ,yellow)))
+   `(gnus-summary-high-unread ((,class :inherit bold :foreground ,fg-main)))
+   `(gnus-summary-low-ancient ((,class :foreground ,fg-alt :slant italic)))
+   `(gnus-summary-low-read ((,class :foreground ,fg-special-cold :slant italic)))
+   `(gnus-summary-low-ticked ((,class :foreground ,red-refine-fg :slant italic)))
+   `(gnus-summary-low-undownloaded ((,class :foreground ,yellow-refine-fg :slant italic)))
+   `(gnus-summary-low-unread ((,class :inherit bold :foreground ,fg-special-cold)))
+   `(gnus-summary-normal-ancient ((,class :foreground ,fg-special-calm)))
+   `(gnus-summary-normal-read ((,class :foreground ,fg-special-cold)))
+   `(gnus-summary-normal-ticked ((,class :foreground ,red-alt-other)))
+   `(gnus-summary-normal-undownloaded ((,class :foreground ,yellow)))
+   `(gnus-summary-normal-unread ((,class :foreground ,fg-main)))
+   `(gnus-summary-selected ((,class :inherit modus-theme-subtle-blue)))
+;;;;; golden-ratio-scroll-screen
+   `(golden-ratio-scroll-highlight-line-face ((,class :background ,cyan-subtle-bg :foreground ,fg-main)))
+;;;;; helm
+   `(helm-M-x-key ((,class :inherit bold :foreground ,magenta-alt-other)))
+   `(helm-action ((,class :underline t)))
+   `(helm-bookmark-addressbook ((,class :foreground ,green-alt)))
+   `(helm-bookmark-directory ((,class :inherit bold :foreground ,blue)))
+   `(helm-bookmark-file ((,class :foreground ,fg-main)))
+   `(helm-bookmark-file-not-found ((,class :background ,bg-alt :foreground ,fg-alt)))
+   `(helm-bookmark-gnus ((,class :foreground ,magenta)))
+   `(helm-bookmark-info ((,class :foreground ,cyan-alt)))
+   `(helm-bookmark-man ((,class :foreground ,yellow-alt)))
+   `(helm-bookmark-w3m ((,class :foreground ,blue-alt)))
+   `(helm-buffer-archive ((,class :inherit bold :foreground ,cyan)))
+   `(helm-buffer-directory ((,class :inherit bold :foreground ,blue)))
+   `(helm-buffer-file ((,class :foreground ,fg-main)))
+   `(helm-buffer-modified ((,class :foreground ,yellow-alt)))
+   `(helm-buffer-not-saved ((,class :foreground ,red-alt)))
+   `(helm-buffer-process ((,class :foreground ,magenta)))
+   `(helm-buffer-saved-out ((,class :inherit bold :background ,bg-alt :foreground ,red)))
+   `(helm-buffer-size ((,class :foreground ,fg-alt)))
+   `(helm-candidate-number ((,class :foreground ,cyan-active)))
+   `(helm-candidate-number-suspended ((,class :foreground ,yellow-active)))
+   `(helm-comint-prompts-buffer-name ((,class :foreground ,green-active)))
+   `(helm-comint-prompts-promptidx ((,class :foreground ,cyan-active)))
+   `(helm-delete-async-message ((,class :inherit bold :foreground ,magenta-active)))
+   `(helm-eob-line ((,class :background ,bg-main :foreground ,fg-main)))
+   `(helm-eshell-prompts-buffer-name ((,class :foreground ,green-active)))
+   `(helm-eshell-prompts-promptidx ((,class :foreground ,cyan-active)))
+   `(helm-etags-file ((,class :foreground ,fg-dim :underline t)))
+   `(helm-ff-backup-file ((,class :foreground ,fg-alt)))
+   `(helm-ff-denied ((,class ,@(modus-operandi-theme-extra-completions
+                                'modus-theme-subtle-red
+                                'modus-theme-intense-red
+                                'modus-theme-nuanced-red
+                                red))))
+   `(helm-ff-directory ((,class :inherit helm-buffer-directory)))
+   `(helm-ff-dirs ((,class :inherit bold :foreground ,blue-alt-other)))
+   `(helm-ff-dotted-directory ((,class :inherit bold :background ,bg-alt :foreground ,fg-alt)))
+   `(helm-ff-dotted-symlink-directory ((,class :inherit helm-ff-dotted-directory :underline t)))
+   `(helm-ff-executable ((,class :foreground ,magenta-alt)))
+   `(helm-ff-file ((,class :foreground ,fg-main)))
+   `(helm-ff-file-extension ((,class :foreground ,fg-special-warm)))
+   `(helm-ff-invalid-symlink ((,class :foreground ,red :underline t)))
+   `(helm-ff-pipe ((,class ,@(modus-operandi-theme-extra-completions
+                              'modus-theme-refine-magenta
+                              'modus-theme-subtle-magenta
+                              'modus-theme-nuanced-magenta
+                              magenta))))
+   `(helm-ff-prefix ((,class ,@(modus-operandi-theme-extra-completions
+                                'modus-theme-refine-yellow
+                                'modus-theme-subtle-yellow
+                                'modus-theme-nuanced-yellow
+                                yellow-alt-other))))
+   `(helm-ff-socket ((,class :foreground ,red-alt-other)))
+   `(helm-ff-suid ((,class ,@(modus-operandi-theme-extra-completions
+                              'modus-theme-subtle-red
+                              'modus-theme-refine-red
+                              'modus-theme-nuanced-yellow
+                              red-alt))))
+   `(helm-ff-symlink ((,class :foreground ,cyan :underline t)))
+   `(helm-ff-truename ((,class :foreground ,blue-alt-other)))
+   `(helm-grep-cmd-line ((,class :foreground ,yellow-alt-other)))
+   `(helm-grep-file ((,class :inherit bold :foreground ,fg-special-cold)))
+   `(helm-grep-finish ((,class :foreground ,green-active)))
+   `(helm-grep-lineno ((,class :foreground ,fg-special-warm)))
+   `(helm-grep-match ((,class :inherit modus-theme-special-calm)))
+   `(helm-header ((,class :inherit bold :foreground ,fg-special-cold)))
+   `(helm-header-line-left-margin ((,class :inherit bold :foreground ,yellow-intense)))
+   `(helm-history-deleted ((,class ,@(modus-operandi-theme-extra-completions
+                                      'modus-theme-subtle-red
+                                      'modus-theme-intense-red
+                                      'modus-theme-nuanced-red
+                                      red
+                                      'bold))))
+   `(helm-history-remote ((,class :foreground ,red-alt-other)))
+   `(helm-lisp-completion-info ((,class :foreground ,fg-special-warm)))
+   `(helm-lisp-show-completion ((,class ,@(modus-operandi-theme-extra-completions
+                                           'modus-theme-subtle-yellow
+                                           'modus-theme-refine-yellow
+                                           'modus-theme-nuanced-yellow
+                                           yellow
+                                           'bold))))
+   `(helm-locate-finish ((,class :foreground ,green-active)))
+   `(helm-match ((,class ,@(modus-operandi-theme-extra-completions
+                            'modus-theme-subtle-cyan
+                            'modus-theme-refine-cyan
+                            'modus-theme-nuanced-cyan
+                            cyan
+                            'bold))))
+   `(helm-match-item ((,class ,@(modus-operandi-theme-extra-completions
+                                 'modus-theme-subtle-neutral
+                                 'modus-theme-subtle-cyan
+                                 'modus-theme-nuanced-cyan
+                                 cyan-alt-other))))
+   `(helm-minibuffer-prompt ((,class :inherit minibuffer-prompt)))
+   `(helm-moccur-buffer ((,class :foreground ,cyan-alt-other :underline t)))
+   `(helm-mode-prefix ((,class ,@(modus-operandi-theme-extra-completions
+                                  'modus-theme-subtle-magenta
+                                  'modus-theme-intense-magenta
+                                  'modus-theme-nuanced-magenta
+                                  magenta-alt
+                                  'bold))))
+   `(helm-non-file-buffer ((,class :foreground ,fg-alt)))
+   `(helm-prefarg ((,class :foreground ,red-active)))
+   `(helm-resume-need-update ((,class ,@(modus-operandi-theme-extra-completions
+                                         'modus-theme-subtle-magenta
+                                         'modus-theme-refine-magenta
+                                         'modus-theme-nuanced-magenta
+                                         magenta-alt-other))))
+   `(helm-selection ((,class ,@(modus-operandi-theme-extra-completions
+                                'modus-theme-subtle-blue
+                                'modus-theme-refine-blue
+                                'modus-theme-special-cold
+                                nil
+                                'bold))))
+   `(helm-selection-line ((,class :inherit modus-theme-special-cold)))
+   `(helm-separator ((,class :foreground ,fg-special-mild)))
+   `(helm-time-zone-current ((,class :foreground ,green)))
+   `(helm-time-zone-home ((,class :foreground ,magenta)))
+   `(helm-source-header ((,class :inherit bold :foreground ,red-alt
+                                 ,@(modus-operandi-theme-scale modus-operandi-theme-scale-4))))
+   `(helm-top-columns ((,class :inherit helm-header)))
+   `(helm-ucs-char ((,class :foreground ,yellow-alt-other)))
+   `(helm-visible-mark ((,class :inherit modus-theme-subtle-cyan)))
+;;;;; helm-ls-git
+   `(helm-ls-git-added-copied-face ((,class :foreground ,green-intense)))
+   `(helm-ls-git-added-modified-face ((,class :foreground ,yellow-intense)))
+   `(helm-ls-git-conflict-face ((,class :inherit bold :foreground ,red-intense)))
+   `(helm-ls-git-deleted-and-staged-face ((,class :foreground ,red-nuanced)))
+   `(helm-ls-git-deleted-not-staged-face ((,class :foreground ,red)))
+   `(helm-ls-git-modified-and-staged-face ((,class :foreground ,yellow-nuanced)))
+   `(helm-ls-git-modified-not-staged-face ((,class :foreground ,yellow)))
+   `(helm-ls-git-renamed-modified-face ((,class :foreground ,magenta)))
+   `(helm-ls-git-untracked-face ((,class :foreground ,fg-special-cold)))
+;;;;; helm-switch-shell
+   `(helm-switch-shell-new-shell-face ((,class ,@(modus-operandi-theme-extra-completions
+                                                  'modus-theme-subtle-magenta
+                                                  'modus-theme-refine-magenta
+                                                  'modus-theme-nuanced-magenta
+                                                  magenta-alt-other
+                                                  'bold))))
+;;;;; helm-xref
+   `(helm-xref-file-name ((,class :inherit bold :foreground ,fg-special-cold)))
+   `(helm-xref-file-name ((,class :foreground ,fg-special-warm)))
+;;;;; helpful
+   `(helpful-heading  ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-main
+                               ,@(modus-operandi-theme-scale modus-operandi-theme-scale-4))))
+;;;;; highlight region or ad-hoc regexp
+   `(hi-black-b ((,class :background ,fg-main :foreground ,bg-main)))
+   `(hi-blue ((,class :background ,bg-alt :foreground ,blue :underline t)))
+   `(hi-blue-b ((,class :inherit modus-theme-intense-blue)))
+   `(hi-green ((,class :background ,bg-alt :foreground ,green :underline t)))
+   `(hi-green-b ((,class :inherit modus-theme-intense-green)))
+   `(hi-pink ((,class :background ,bg-alt :foreground ,magenta :underline t)))
+   `(hi-red-b ((,class :inherit modus-theme-intense-red)))
+   `(hi-yellow ((,class :background ,bg-alt :foreground ,yellow :underline t)))
+   `(highlight ((,class :inherit modus-theme-subtle-blue)))
+   `(highlight-changes ((,class :foreground ,yellow-alt-other)))
+   `(highlight-changes-delete ((,class :foreground ,red-alt-other :underline t)))
+   `(hl-line ((,class :inherit modus-theme-hl-line)))
+;;;;; highlight-blocks
+   `(highlight-blocks-depth-1-face ((,class :background ,bg-dim :foreground ,fg-main)))
+   `(highlight-blocks-depth-2-face ((,class :background ,bg-alt :foreground ,fg-main)))
+   `(highlight-blocks-depth-3-face ((,class :background ,bg-special-cold :foreground ,fg-main)))
+   `(highlight-blocks-depth-4-face ((,class :background ,bg-special-calm :foreground ,fg-main)))
+   `(highlight-blocks-depth-5-face ((,class :background ,bg-special-warm :foreground ,fg-main)))
+   `(highlight-blocks-depth-6-face ((,class :background ,bg-special-mild :foreground ,fg-main)))
+   `(highlight-blocks-depth-7-face ((,class :background ,bg-inactive :foreground ,fg-main)))
+   `(highlight-blocks-depth-8-face ((,class :background ,bg-active :foreground ,fg-main)))
+   `(highlight-blocks-depth-9-face ((,class :background ,cyan-subtle-bg :foreground ,fg-main)))
+;;;;; highlight-defined
+   `(highlight-defined-builtin-function-name-face ((,class :foreground ,magenta)))
+   `(highlight-defined-face-name-face ((,class :foreground ,fg-main)))
+   `(highlight-defined-function-name-face ((,class :foreground ,magenta)))
+   `(highlight-defined-macro-name-face ((,class :foreground ,magenta-alt)))
+   `(highlight-defined-special-form-name-face ((,class :foreground ,magenta-alt-other)))
+   `(highlight-defined-variable-name-face ((,class :foreground ,cyan)))
+;;;;; highlight-escape-sequences (`hes-mode')
+   `(hes-escape-backslash-face ((,class :inherit bold :foreground ,fg-escape-char-construct)))
+   `(hes-escape-sequence-face ((,class :inherit bold :foreground ,fg-escape-char-backslash)))
+;;;;; highlight-indentation
+   `(highlight-indentation-face ((,class :inherit modus-theme-hl-line)))
+   `(highlight-indentation-current-column-face ((,class :background ,bg-active)))
+;;;;; highlight-numbers
+   `(highlight-numbers-number ((,class :foreground ,blue-alt-other)))
+;;;;; highlight-symbol
+   `(highlight-symbol-face ((,class :inherit modus-theme-special-mild)))
+;;;;; highlight-thing
+   `(highlight-thing ((,class :background ,bg-alt :foreground ,cyan)))
+;;;;; hl-defined
+   `(hdefd-functions ((,class :foreground ,blue)))
+   `(hdefd-undefined ((,class :foreground ,red-alt)))
+   `(hdefd-variables ((,class :foreground ,cyan-alt)))
+;;;;; hl-fill-column
+   `(hl-fill-column-face ((,class :background ,bg-active :foreground ,fg-active)))
+;;;;; hl-todo
+   `(hl-todo ((,class :inherit bold :foreground ,red-alt-other :slant ,modus-theme-slant)))
+;;;;; hydra
+   `(hydra-face-amaranth ((,class :inherit bold :foreground ,yellow)))
+   `(hydra-face-blue ((,class :inherit bold :foreground ,blue-alt)))
+   `(hydra-face-pink ((,class :inherit bold :foreground ,magenta-alt)))
+   `(hydra-face-red ((,class :inherit bold :foreground ,red)))
+   `(hydra-face-teal ((,class :inherit bold :foreground ,cyan)))
+;;;;; hyperlist
+   `(hyperlist-condition ((,class :foreground ,green)))
+   `(hyperlist-hashtag ((,class :foreground ,yellow)))
+   `(hyperlist-operator ((,class :foreground ,blue-alt)))
+   `(hyperlist-paren ((,class :foreground ,cyan-alt-other)))
+   `(hyperlist-quote ((,class :foreground ,cyan-alt)))
+   `(hyperlist-ref ((,class :foreground ,magenta-alt-other)))
+   `(hyperlist-stars ((,class :foreground ,fg-alt)))
+   `(hyperlist-tag ((,class :foreground ,red)))
+   `(hyperlist-toplevel ((,class :inherit bold :foreground ,fg-main)))
+;;;;; icomplete
+   `(icomplete-first-match ((,class :inherit bold
+                                    ,@(modus-operandi-theme-standard-completions
+                                       magenta magenta-nuanced-bg
+                                       magenta-intense-bg fg-main))))
+;;;;; icomplete-vertical
+   `(icomplete-vertical-separator ((,class :foreground ,fg-alt)))
+;;;;; ido-mode
+   `(ido-first-match ((,class :inherit bold
+                              ,@(modus-operandi-theme-standard-completions
+                                 magenta magenta-nuanced-bg
+                                 magenta-subtle-bg fg-main))))
+   `(ido-incomplete-regexp ((,class :inherit error)))
+   `(ido-indicator ((,class :inherit modus-theme-subtle-yellow)))
+   `(ido-only-match ((,class :inherit bold
+                             ,@(modus-operandi-theme-standard-completions
+                                magenta-intense red-nuanced-bg
+                                magenta-intense-bg fg-main))))
+   `(ido-subdir ((,class :foreground ,blue-alt-other)))
+   `(ido-virtual ((,class :foreground ,yellow-alt-other)))
+;;;;; iedit
+   `(iedit-occurrence ((,class :inherit modus-theme-refine-blue)))
+   `(iedit-read-only-occurrence ((,class :inherit modus-theme-intense-yellow)))
+;;;;; iflipb
+   `(iflipb-current-buffer-face ((,class :inherit bold :foreground ,cyan-alt)))
+   `(iflipb-other-buffer-face ((,class :foreground ,fg-alt)))
+;;;;; imenu-list
+   `(imenu-list-entry-face-0 ((,class :foreground ,cyan)))
+   `(imenu-list-entry-face-1 ((,class :foreground ,blue)))
+   `(imenu-list-entry-face-2 ((,class :foreground ,cyan-alt-other)))
+   `(imenu-list-entry-face-3 ((,class :foreground ,blue-alt)))
+   `(imenu-list-entry-subalist-face-0 ((,class :inherit bold :foreground ,magenta-alt-other :underline t)))
+   `(imenu-list-entry-subalist-face-1 ((,class :inherit bold :foreground ,magenta :underline t)))
+   `(imenu-list-entry-subalist-face-2 ((,class :inherit bold :foreground ,green-alt-other :underline t)))
+   `(imenu-list-entry-subalist-face-3 ((,class :inherit bold :foreground ,red-alt-other :underline t)))
+;;;;; indium
+   `(indium-breakpoint-face ((,class :foreground ,red-active)))
+   `(indium-frame-url-face ((,class :foreground ,fg-alt :underline t)))
+   `(indium-keyword-face ((,class :foreground ,magenta-alt-other)))
+   `(indium-litable-face ((,class :foreground ,fg-special-warm :slant ,modus-theme-slant)))
+   `(indium-repl-error-face ((,class :inherit bold :foreground ,red)))
+   `(indium-repl-prompt-face ((,class :foreground ,cyan-alt-other)))
+   `(indium-repl-stdout-face ((,class :foreground ,fg-main)))
+;;;;; info
+   `(Info-quoted ((,class :foreground ,magenta))) ; the capitalisation is canonical
+   `(info-header-node ((,class :inherit bold :foreground ,fg-alt)))
+   `(info-header-xref ((,class :foreground ,blue-active)))
+   `(info-index-match ((,class :inherit match)))
+   `(info-menu-header ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-main
+                               ,@(modus-operandi-theme-scale modus-operandi-theme-scale-2))))
+   `(info-menu-star ((,class :foreground ,fg-main)))
+   `(info-node ((,class :inherit bold)))
+   `(info-title-1 ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-main
+                           ,@(modus-operandi-theme-scale modus-operandi-theme-scale-4))))
+   `(info-title-2 ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-special-warm
+                           ,@(modus-operandi-theme-scale modus-operandi-theme-scale-3))))
+   `(info-title-3 ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-special-cold
+                           ,@(modus-operandi-theme-scale modus-operandi-theme-scale-2))))
+   `(info-title-4 ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-special-mild
+                           ,@(modus-operandi-theme-scale modus-operandi-theme-scale-1))))
+;;;;; info-colors
+   `(info-colors-lisp-code-block ((,class :inherit fixed-pitch)))
+   `(info-colors-ref-item-command ((,class :foreground ,magenta)))
+   `(info-colors-ref-item-constant ((,class :foreground ,blue-alt-other)))
+   `(info-colors-ref-item-function ((,class :foreground ,magenta)))
+   `(info-colors-ref-item-macro ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,magenta-alt-other)))
+   `(info-colors-ref-item-other ((,class :foreground ,cyan)))
+   `(info-colors-ref-item-special-form ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,magenta-alt-other)))
+   `(info-colors-ref-item-syntax-class ((,class :foreground ,magenta)))
+   `(info-colors-ref-item-type ((,class :foreground ,magenta-alt)))
+   `(info-colors-ref-item-user-option ((,class :foreground ,cyan)))
+   `(info-colors-ref-item-variable ((,class :foreground ,cyan)))
+;;;;; interaction-log
+   `(ilog-buffer-face ((,class :foreground ,magenta-alt-other)))
+   `(ilog-change-face ((,class :foreground ,magenta-alt)))
+   `(ilog-echo-face ((,class :foreground ,yellow-alt-other)))
+   `(ilog-load-face ((,class :foreground ,green)))
+   `(ilog-message-face ((,class :foreground ,fg-alt)))
+   `(ilog-non-change-face ((,class :foreground ,blue)))
+;;;;; ioccur
+   `(ioccur-cursor ((,class :foreground ,fg-main)))
+   `(ioccur-invalid-regexp ((,class :foreground ,red)))
+   `(ioccur-match-face ((,class :inherit modus-theme-special-calm)))
+   `(ioccur-match-overlay-face ((,class ,@(and (>= emacs-major-version 27) '(:extend t))
+                                        :inherit modus-theme-special-cold)))
+   `(ioccur-num-line-face ((,class :foreground ,fg-special-warm)))
+   `(ioccur-overlay-face ((,class ,@(and (>= emacs-major-version 27) '(:extend t))
+                                  :inherit modus-theme-refine-blue)))
+   `(ioccur-regexp-face ((,class :inherit (modus-theme-intense-magenta bold))))
+   `(ioccur-title-face ((,class :inherit bold :foreground ,red-alt
+                                ,@(modus-operandi-theme-scale modus-operandi-theme-scale-4))))
+;;;;; isearch, occur, and the like
+   `(isearch ((,class :inherit (modus-theme-intense-green bold))))
+   `(isearch-fail ((,class :inherit modus-theme-refine-red)))
+   `(lazy-highlight ((,class :inherit modus-theme-refine-cyan)))
+   `(match ((,class :inherit modus-theme-special-calm)))
+   `(query-replace ((,class :inherit (modus-theme-intense-yellow bold))))
+;;;;; ivy
+   `(ivy-action ((,class :inherit bold :foreground ,red-alt)))
+   `(ivy-completions-annotations ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
+   `(ivy-confirm-face ((,class :foreground ,cyan)))
+   `(ivy-current-match ((,class ,@(modus-operandi-theme-extra-completions
+                                   'modus-theme-refine-cyan
+                                   'modus-theme-intense-cyan
+                                   'modus-theme-special-warm
+                                   nil
+                                   'bold))))
+   `(ivy-cursor ((,class :background ,fg-main :foreground ,bg-main)))
+   `(ivy-grep-info ((,class :foreground ,cyan-alt)))
+   `(ivy-grep-line-number ((,class :foreground ,fg-special-warm)))
+   `(ivy-highlight-face ((,class :foreground ,magenta)))
+   `(ivy-match-required-face ((,class :inherit error)))
+   `(ivy-minibuffer-match-face-1 ((,class ,@(modus-operandi-theme-extra-completions
+                                             'modus-theme-subtle-neutral
+                                             'modus-theme-intense-neutral
+                                             'modus-theme-subtle-neutral
+                                             fg-alt))))
+   `(ivy-minibuffer-match-face-2 ((,class ,@(modus-operandi-theme-extra-completions
+                                             'modus-theme-subtle-green
+                                             'modus-theme-refine-green
+                                             'modus-theme-nuanced-green
+                                             green-alt-other
+                                             'bold))))
+   `(ivy-minibuffer-match-face-3 ((,class ,@(modus-operandi-theme-extra-completions
+                                             'modus-theme-subtle-cyan
+                                             'modus-theme-refine-cyan
+                                             'modus-theme-nuanced-cyan
+                                             cyan-alt-other
+                                             'bold))))
+   `(ivy-minibuffer-match-face-4 ((,class ,@(modus-operandi-theme-extra-completions
+                                             'modus-theme-subtle-magenta
+                                             'modus-theme-refine-magenta
+                                             'modus-theme-nuanced-magenta
+                                             magenta-alt-other
+                                             'bold))))
+   `(ivy-minibuffer-match-highlight ((,class ,@(modus-operandi-theme-extra-completions
+                                                'modus-theme-subtle-blue
+                                                'modus-theme-intense-blue
+                                                'modus-theme-nuanced-blue
+                                                blue-alt-other
+                                                'bold))))
+   `(ivy-modified-buffer ((,class :foreground ,yellow :slant ,modus-theme-slant)))
+   `(ivy-modified-outside-buffer ((,class :foreground ,yellow-alt :slant ,modus-theme-slant)))
+   `(ivy-org ((,class :foreground ,cyan-alt-other)))
+   `(ivy-prompt-match ((,class :inherit ivy-current-match)))
+   `(ivy-remote ((,class :foreground ,magenta)))
+   `(ivy-separator ((,class :foreground ,fg-alt)))
+   `(ivy-subdir ((,class :foreground ,blue-alt-other)))
+   `(ivy-virtual ((,class :foreground ,magenta-alt-other)))
+   `(ivy-yanked-word ((,class ,@(modus-operandi-theme-extra-completions
+                                 'modus-theme-subtle-blue
+                                 'modus-theme-refine-blue
+                                 'modus-theme-nuanced-blue
+                                 blue-alt))))
+;;;;; ivy-posframe
+   `(ivy-posframe ((,class :background ,bg-dim :foreground ,fg-main)))
+   `(ivy-posframe-border ((,class :background ,bg-active)))
+   `(ivy-posframe-cursor ((,class :background ,fg-main :foreground ,bg-main)))
+;;;;; jira (org-jira)
+   `(jiralib-comment-face ((,class :background ,bg-alt)))
+   `(jiralib-comment-header-face ((,class :inherit bold)))
+   `(jiralib-issue-info-face ((,class :inherit modus-theme-special-warm)))
+   `(jiralib-issue-info-header-face ((,class :inherit (modus-theme-special-warm bold))))
+   `(jiralib-issue-summary-face ((,class :inherit bold)))
+   `(jiralib-link-filter-face ((,class :underline t)))
+   `(jiralib-link-issue-face ((,class :underline t)))
+   `(jiralib-link-project-face ((,class :underline t)))
+;;;;; journalctl-mode
+   `(journalctl-error-face ((,class :inherit bold :foreground ,red)))
+   `(journalctl-finished-face ((,class :inherit bold :foreground ,green)))
+   `(journalctl-host-face ((,class :foreground ,blue)))
+   `(journalctl-process-face ((,class :foreground ,cyan-alt-other)))
+   `(journalctl-starting-face ((,class :foreground ,green)))
+   `(journalctl-timestamp-face ((,class :foreground ,fg-special-cold)))
+   `(journalctl-warning-face ((,class :inherit bold :foreground ,yellow)))
+;;;;; js2-mode
+   `(js2-error ((,class :foreground ,red)))
+   `(js2-external-variable ((,class :foreground ,cyan-alt-other)))
+   `(js2-function-call ((,class :foreground ,magenta)))
+   `(js2-function-param ((,class :foreground ,blue)))
+   `(js2-instance-member ((,class :foreground ,magenta-alt-other)))
+   `(js2-jsdoc-html-tag-delimiter ((,class :foreground ,fg-main)))
+   `(js2-jsdoc-html-tag-name ((,class :foreground ,cyan)))
+   `(js2-jsdoc-tag ((,class :foreground ,fg-special-calm)))
+   `(js2-jsdoc-type ((,class :foreground ,fg-special-cold)))
+   `(js2-jsdoc-value ((,class :foreground ,fg-special-warm)))
+   `(js2-object-property ((,class :foreground ,fg-main)))
+   `(js2-object-property-access ((,class :foreground ,fg-main)))
+   `(js2-private-function-call ((,class :foreground ,green-alt-other)))
+   `(js2-private-member ((,class :foreground ,fg-special-mild)))
+   `(js2-warning ((,class :foreground ,yellow-alt :underline t)))
+;;;;; julia
+   `(julia-macro-face ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,magenta)))
+   `(julia-quoted-symbol-face ((,class :foreground ,blue-alt-other)))
+;;;;; jupyter
+   `(jupyter-eval-overlay ((,class :inherit bold :foreground ,blue)))
+   `(jupyter-repl-input-prompt ((,class :foreground ,cyan-alt-other)))
+   `(jupyter-repl-output-prompt ((,class :foreground ,magenta-alt-other)))
+   `(jupyter-repl-traceback ((,class :inherit modus-theme-intense-red)))
+;;;;; kaocha-runner
+   `(kaocha-runner-error-face ((,class :foreground ,red)))
+   `(kaocha-runner-success-face ((,class :foreground ,green)))
+   `(kaocha-runner-warning-face ((,class :foreground ,yellow)))
+;;;;; keycast
+   `(keycast-command ((,class :inherit bold :foreground ,blue-active)))
+   `(keycast-key ((,class :box ,(modus-operandi-theme-modeline-box blue-alt blue-active t -3)
+                          ,@(modus-operandi-theme-modeline-props
+                             blue-active bg-main
+                             blue-active bg-active))))
+;;;;; line numbers (display-line-numbers-mode and global variant)
+   `(line-number ((,class :background ,bg-dim :foreground ,fg-alt)))
+   `(line-number-current-line ((,class :inherit bold :background ,bg-active :foreground ,fg-active)))
+;;;;; lsp-mode
+   `(lsp-face-highlight-read ((,class :inherit modus-theme-subtle-blue :underline t)))
+   `(lsp-face-highlight-textual ((,class :inherit modus-theme-subtle-blue)))
+   `(lsp-face-highlight-write ((,class :inherit (modus-theme-refine-blue bold))))
+   `(lsp-face-semhl-constant ((,class :foreground ,blue-alt-other)))
+   `(lsp-face-semhl-deprecated
+     ((,(append '((supports :underline (:style wave))) class)
+       :foreground ,yellow :underline (:style wave))
+      (,class :foreground ,yellow :underline t)))
+   `(lsp-face-semhl-enummember ((,class :foreground ,blue-alt-other)))
+   `(lsp-face-semhl-field ((,class :foreground ,cyan-alt)))
+   `(lsp-face-semhl-field-static ((,class :foreground ,cyan-alt :slant ,modus-theme-slant)))
+   `(lsp-face-semhl-function ((,class :foreground ,magenta)))
+   `(lsp-face-semhl-method ((,class :foreground ,magenta)))
+   `(lsp-face-semhl-namespace ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,magenta-alt)))
+   `(lsp-face-semhl-preprocessor ((,class :foreground ,red-alt-other)))
+   `(lsp-face-semhl-static-method ((,class :foreground ,magenta :slant ,modus-theme-slant)))
+   `(lsp-face-semhl-type-class ((,class :foreground ,magenta-alt)))
+   `(lsp-face-semhl-type-enum ((,class :foreground ,magenta-alt)))
+   `(lsp-face-semhl-type-primitive ((,class :foreground ,magenta-alt :slant ,modus-theme-slant)))
+   `(lsp-face-semhl-type-template ((,class :foreground ,magenta-alt :slant ,modus-theme-slant)))
+   `(lsp-face-semhl-type-typedef ((,class :foreground ,magenta-alt :slant ,modus-theme-slant)))
+   `(lsp-face-semhl-variable ((,class :foreground ,cyan)))
+   `(lsp-face-semhl-variable-local ((,class :foreground ,cyan)))
+   `(lsp-face-semhl-variable-parameter ((,class :foreground ,cyan-alt-other)))
+   `(lsp-lens-face ((,class :height 0.8 :foreground ,fg-alt)))
+   `(lsp-lens-mouse-face ((,class :height 0.8 :foreground ,blue-alt-other :underline t)))
+   `(lsp-ui-doc-background ((,class :background ,bg-alt)))
+   `(lsp-ui-doc-header ((,class :background ,bg-header :foreground ,fg-header)))
+   `(lsp-ui-doc-url ((,class :foreground ,blue-alt-other :underline t)))
+   `(lsp-ui-peek-filename ((,class :foreground ,fg-special-warm)))
+   `(lsp-ui-peek-footer ((,class :background ,bg-header :foreground ,fg-header)))
+   `(lsp-ui-peek-header ((,class :background ,bg-header :foreground ,fg-header)))
+   `(lsp-ui-peek-highlight ((,class :inherit modus-theme-subtle-blue)))
+   `(lsp-ui-peek-line-number ((,class :foreground ,fg-alt)))
+   `(lsp-ui-peek-list ((,class :background ,bg-dim)))
+   `(lsp-ui-peek-peek ((,class :background ,bg-alt)))
+   `(lsp-ui-peek-selection ((,class :inherit modus-theme-subtle-cyan)))
+   `(lsp-ui-sideline-code-action ((,class :foreground ,yellow)))
+   `(lsp-ui-sideline-current-symbol ((,class :inherit bold :height 0.99 :box (:line-width -1 :style nil) :foreground ,fg-main)))
+   `(lsp-ui-sideline-symbol ((,class :inherit bold :height 0.99 :box (:line-width -1 :style nil) :foreground ,fg-alt)))
+   `(lsp-ui-sideline-symbol-info ((,class :height 0.99 :slant italic)))
+;;;;; magit
+   `(magit-bisect-bad ((,class :foreground ,red-alt-other)))
+   `(magit-bisect-good ((,class :foreground ,green-alt-other)))
+   `(magit-bisect-skip ((,class :foreground ,yellow-alt-other)))
+   `(magit-blame-date ((,class :foreground ,blue)))
+   `(magit-blame-dimmed ((,class :foreground ,fg-alt)))
+   `(magit-blame-hash ((,class :foreground ,fg-special-warm)))
+   `(magit-blame-heading ((,class :background ,bg-alt)))
+   `(magit-blame-highlight ((,class :inherit modus-theme-nuanced-cyan)))
+   `(magit-blame-margin ((,class :inherit magit-blame-highlight)))
+   `(magit-blame-name ((,class :foreground ,magenta-alt-other)))
+   `(magit-blame-summary ((,class :foreground ,cyan-alt-other)))
+   `(magit-branch-current ((,class :foreground ,blue-alt-other :box t)))
+   `(magit-branch-local ((,class :foreground ,blue-alt)))
+   `(magit-branch-remote ((,class :foreground ,magenta-alt)))
+   `(magit-branch-remote-head ((,class :foreground ,magenta-alt-other :box t)))
+   `(magit-branch-upstream ((,class :slant italic)))
+   `(magit-cherry-equivalent ((,class :background ,bg-main :foreground ,magenta-intense)))
+   `(magit-cherry-unmatched ((,class :background ,bg-main :foreground ,cyan-intense)))
+   `(magit-diff-added ((,class ,@(modus-operandi-theme-diffs
+                                  bg-main green
+                                  bg-diff-added fg-diff-added))))
+   `(magit-diff-added-highlight ((,class ,@(modus-operandi-theme-diffs
+                                            bg-dim green
+                                            bg-diff-focus-added fg-diff-focus-added))))
+   `(magit-diff-base ((,class ,@(modus-operandi-theme-diffs
+                                 bg-main yellow
+                                 bg-diff-changed fg-diff-changed))))
+   `(magit-diff-base-highlight ((,class ,@(modus-operandi-theme-diffs
+                                           bg-dim yellow
+                                           bg-diff-focus-changed fg-diff-focus-changed))))
+   `(magit-diff-context ((,class :foreground ,fg-unfocused)))
+   `(magit-diff-context-highlight ((,class ,@(modus-operandi-theme-diffs
+                                              bg-dim fg-dim
+                                              bg-inactive fg-inactive))))
+   `(magit-diff-file-heading ((,class :inherit bold :foreground ,fg-special-cold)))
+   `(magit-diff-file-heading-highlight ((,class :inherit (modus-theme-special-cold bold))))
+   `(magit-diff-file-heading-selection ((,class :background ,bg-alt :foreground ,cyan)))
+   `(magit-diff-hunk-heading ((,class :inherit bold :background ,bg-active :foreground ,fg-inactive)))
+   `(magit-diff-hunk-heading-highlight ((,class :inherit (modus-theme-diff-heading bold))))
+   `(magit-diff-hunk-heading-selection ((,class :inherit modus-theme-intense-cyan)))
+   `(magit-diff-hunk-region ((,class :inherit bold)))
+   `(magit-diff-lines-boundary ((,class :background ,fg-main)))
+   `(magit-diff-lines-heading ((,class :inherit modus-theme-refine-magenta)))
+   `(magit-diff-removed ((,class ,@(modus-operandi-theme-diffs
+                                    bg-main red
+                                    bg-diff-removed fg-diff-removed))))
+   `(magit-diff-removed-highlight ((,class ,@(modus-operandi-theme-diffs
+                                              bg-dim red
+                                              bg-diff-focus-removed fg-diff-focus-removed))))
+   `(magit-diffstat-added ((,class :foreground ,green)))
+   `(magit-diffstat-removed ((,class :foreground ,red)))
+   `(magit-dimmed ((,class :foreground ,fg-unfocused)))
+   `(magit-filename ((,class :foreground ,fg-special-cold)))
+   `(magit-hash ((,class :foreground ,fg-alt)))
+   `(magit-head ((,class :inherit magit-branch-local)))
+   `(magit-header-line ((,class :inherit bold :foreground ,magenta-active)))
+   `(magit-header-line-key ((,class :inherit bold :foreground ,red-active)))
+   `(magit-header-line-log-select ((,class :inherit bold :foreground ,fg-main)))
+   `(magit-keyword ((,class :foreground ,magenta)))
+   `(magit-keyword-squash ((,class :inherit bold :foreground ,yellow-alt-other)))
+   `(magit-log-author ((,class :foreground ,cyan)))
+   `(magit-log-date ((,class :foreground ,fg-alt)))
+   `(magit-log-graph ((,class :foreground ,fg-dim)))
+   `(magit-mode-line-process ((,class :inherit bold :foreground ,blue-active)))
+   `(magit-mode-line-process-error ((,class :inherit bold :foreground ,red-active)))
+   `(magit-process-ng ((,class :inherit error)))
+   `(magit-process-ok ((,class :inherit success)))
+   `(magit-reflog-amend ((,class :background ,bg-main :foreground ,magenta-intense)))
+   `(magit-reflog-checkout ((,class :background ,bg-main :foreground ,blue-intense)))
+   `(magit-reflog-cherry-pick ((,class :background ,bg-main :foreground ,green-intense)))
+   `(magit-reflog-commit ((,class :background ,bg-main :foreground ,green-intense)))
+   `(magit-reflog-merge ((,class :background ,bg-main :foreground ,green-intense)))
+   `(magit-reflog-other ((,class :background ,bg-main :foreground ,cyan-intense)))
+   `(magit-reflog-rebase ((,class :background ,bg-main :foreground ,magenta-intense)))
+   `(magit-reflog-remote ((,class :background ,bg-main :foreground ,cyan-intense)))
+   `(magit-reflog-reset ((,class :background ,bg-main :foreground ,red-intense)))
+   `(magit-refname ((,class :foreground ,fg-alt)))
+   `(magit-refname-pullreq ((,class :foreground ,fg-alt)))
+   `(magit-refname-stash ((,class :foreground ,fg-alt)))
+   `(magit-refname-wip ((,class :foreground ,fg-alt)))
+   `(magit-section ((,class :background ,bg-dim :foreground ,fg-main)))
+   `(magit-section-heading ((,class :inherit bold :foreground ,cyan)))
+   `(magit-section-heading-selection ((,class :inherit (modus-theme-refine-cyan bold))))
+   `(magit-section-highlight ((,class :background ,bg-alt)))
+   `(magit-sequence-done ((,class :foreground ,green-alt)))
+   `(magit-sequence-drop ((,class :foreground ,red-alt)))
+   `(magit-sequence-exec ((,class :foreground ,magenta-alt)))
+   `(magit-sequence-head ((,class :foreground ,cyan-alt)))
+   `(magit-sequence-onto ((,class :foreground ,fg-alt)))
+   `(magit-sequence-part ((,class :foreground ,yellow-alt)))
+   `(magit-sequence-pick ((,class :foreground ,blue-alt)))
+   `(magit-sequence-stop ((,class :foreground ,red)))
+   `(magit-signature-bad ((,class :inherit bold :foreground ,red)))
+   `(magit-signature-error ((,class :foreground ,red-alt)))
+   `(magit-signature-expired ((,class :foreground ,yellow)))
+   `(magit-signature-expired-key ((,class :foreground ,yellow)))
+   `(magit-signature-good ((,class :foreground ,green)))
+   `(magit-signature-revoked ((,class :foreground ,magenta)))
+   `(magit-signature-untrusted ((,class :foreground ,cyan)))
+   `(magit-tag ((,class :foreground ,yellow-alt-other)))
+;;;;; magit-imerge
+   `(magit-imerge-overriding-value ((,class :inherit bold :foreground ,red-alt)))
+;;;;; man
+   `(Man-overstrike ((,class :inherit bold :foreground ,magenta)))
+   `(Man-reverse ((,class :inherit modus-theme-subtle-magenta)))
+   `(Man-underline ((,class :foreground ,cyan :underline t)))
+;;;;; markdown-mode
+   `(markdown-blockquote-face ((,class :foreground ,fg-special-warm :slant ,modus-theme-slant)))
+   `(markdown-bold-face ((,class :inherit bold)))
+   `(markdown-code-face ((,class :inherit fixed-pitch)))
+   `(markdown-comment-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
+   `(markdown-footnote-marker-face ((,class :inherit bold :foreground ,cyan-alt)))
+   `(markdown-footnote-text-face ((,class :foreground ,fg-main :slant ,modus-theme-slant)))
+   `(markdown-gfm-checkbox-face ((,class :foreground ,cyan-alt-other)))
+   `(markdown-header-delimiter-face ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,fg-dim)))
+   `(markdown-header-face ((,class :inherit bold)))
+   `(markdown-header-rule-face ((,class :inherit bold :foreground ,fg-special-warm)))
+   `(markdown-hr-face ((,class :inherit bold :foreground ,fg-special-warm)))
+   `(markdown-html-attr-name-face ((,class :inherit fixed-pitch :foreground ,cyan)))
+   `(markdown-html-attr-value-face ((,class :inherit fixed-pitch :foreground ,blue)))
+   `(markdown-html-entity-face ((,class :inherit fixed-pitch :foreground ,cyan)))
+   `(markdown-html-tag-delimiter-face ((,class :inherit fixed-pitch :foreground ,fg-special-mild)))
+   `(markdown-html-tag-name-face ((,class :inherit fixed-pitch :foreground ,magenta-alt)))
+   `(markdown-inline-code-face ((,class :inherit fixed-pitch :foreground ,magenta)))
+   `(markdown-italic-face ((,class :foreground ,fg-special-cold :slant italic)))
+   `(markdown-language-info-face ((,class :inherit fixed-pitch :foreground ,fg-special-cold)))
+   `(markdown-language-keyword-face ((,class :inherit fixed-pitch :foreground ,green-alt-other)))
+   `(markdown-line-break-face ((,class :inherit modus-theme-refine-cyan :underline t)))
+   `(markdown-link-face ((,class :inherit link)))
+   `(markdown-link-title-face ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
+   `(markdown-list-face ((,class :foreground ,fg-dim)))
+   `(markdown-markup-face ((,class :foreground ,fg-alt)))
+   `(markdown-math-face ((,class :foreground ,magenta-alt-other)))
+   `(markdown-metadata-key-face ((,class :foreground ,cyan-alt-other)))
+   `(markdown-metadata-value-face ((,class :foreground ,blue-alt)))
+   `(markdown-missing-link-face ((,class :inherit bold :foreground ,yellow)))
+   `(markdown-plain-url-face ((,class :inherit markdown-link-face)))
+   `(markdown-pre-face ((,class ,@(and (>= emacs-major-version 27) '(:extend t))
+                                :inherit fixed-pitch :background ,bg-dim
+                                :foreground ,fg-special-mild)))
+   `(markdown-reference-face ((,class :inherit markdown-markup-face)))
+   `(markdown-strike-through-face ((,class :strike-through t)))
+   `(markdown-table-face ((,class :inherit fixed-pitch :foreground ,fg-special-cold)))
+   `(markdown-url-face ((,class :foreground ,blue)))
+;;;;; markup-faces (`adoc-mode')
+   `(markup-anchor-face ((,class :foreground ,fg-inactive)))
+   `(markup-attribute-face ((,class :foreground ,fg-inactive :slant italic)))
+   `(markup-big-face ((,class :height 1.3 :foreground ,blue-nuanced)))
+   `(markup-bold-face ((,class :inherit bold :foreground ,red-nuanced)))
+   `(markup-code-face ((,class :inherit fixed-pitch :foreground ,magenta)))
+   `(markup-command-face ((,class :foreground ,fg-inactive)))
+   `(markup-comment-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
+   `(markup-complex-replacement-face ((,class :box (:line-width 2 :color nil :style released-button)
+                                              :inherit modus-theme-refine-magenta)))
+   `(markup-emphasis-face ((,class :foreground ,fg-special-cold :slant italic)))
+   `(markup-error-face ((,class :inherit bold :foreground ,red)))
+   `(markup-gen-face ((,class :foreground ,magenta-alt)))
+   `(markup-internal-reference-face ((,class :foreground ,fg-inactive :underline t)))
+   `(markup-italic-face ((,class :foreground ,fg-special-cold :slant italic)))
+   `(markup-list-face ((,class :inherit modus-theme-special-calm)))
+   `(markup-meta-face ((,class :foreground ,fg-inactive)))
+   `(markup-meta-hide-face ((,class :foreground ,fg-alt)))
+   `(markup-passthrough-face ((,class :inherit fixed-pitch :foreground ,cyan)))
+   `(markup-preprocessor-face ((,class :foreground ,red-alt-other)))
+   `(markup-replacement-face ((,class :foreground ,yellow-alt-other)))
+   `(markup-secondary-text-face ((,class :height 0.8 :foreground ,magenta-nuanced)))
+   `(markup-small-face ((,class :height 0.8 :foreground ,fg-main)))
+   `(markup-strong-face ((,class :inherit bold :foreground ,red-nuanced)))
+   `(markup-subscript-face ((,class :height 0.8 :foreground ,fg-special-cold)))
+   `(markup-superscript-face ((,class :height 0.8 :foreground ,fg-special-cold)))
+   `(markup-table-cell-face ((,class :inherit modus-theme-special-cold)))
+   `(markup-table-face ((,class :inherit modus-theme-subtle-cyan)))
+   `(markup-table-row-face ((,class :inherit modus-theme-subtle-cyan)))
+   `(markup-title-0-face ((,class :height 3.0 :foreground ,blue-nuanced)))
+   `(markup-title-1-face ((,class :height 2.4 :foreground ,blue-nuanced)))
+   `(markup-title-2-face ((,class :height 1.8 :foreground ,blue-nuanced)))
+   `(markup-title-3-face ((,class :height 1.4 :foreground ,blue-nuanced)))
+   `(markup-title-4-face ((,class :height 1.2 :foreground ,blue-nuanced)))
+   `(markup-title-5-face ((,class :height 1.2 :foreground ,blue-nuanced :underline t)))
+   `(markup-value-face ((,class :foreground ,fg-inactive)))
+   `(markup-verbatim-face ((,class :inherit modus-theme-special-mild)))
+;;;;; mentor
+   `(mentor-download-message ((,class :foreground ,fg-special-warm)))
+   `(mentor-download-name ((,class :foreground ,fg-special-cold)))
+   `(mentor-download-progress ((,class :foreground ,blue-alt-other)))
+   `(mentor-download-size ((,class :foreground ,magenta-alt-other)))
+   `(mentor-download-speed-down ((,class :foreground ,cyan-alt)))
+   `(mentor-download-speed-up ((,class :foreground ,red-alt)))
+   `(mentor-download-state ((,class :foreground ,yellow-alt)))
+   `(mentor-highlight-face ((,class :inherit modus-theme-subtle-blue)))
+   `(mentor-tracker-name ((,class :foreground ,magenta-alt)))
+;;;;; messages
+   `(message-cited-text-1 ((,class :foreground ,blue-alt)))
+   `(message-cited-text-2 ((,class :foreground ,red-alt)))
+   `(message-cited-text-3 ((,class :foreground ,green-alt)))
+   `(message-cited-text-4 ((,class :foreground ,magenta-alt)))
+   `(message-header-cc ((,class :foreground ,blue-alt)))
+   `(message-header-name ((,class :foreground ,green-alt-other)))
+   `(message-header-newsgroups ((,class :inherit bold :foreground ,blue)))
+   `(message-header-other ((,class :inherit bold :foreground ,cyan-alt-other)))
+   `(message-header-subject ((,class :inherit bold :foreground ,magenta-alt-other)))
+   `(message-header-to ((,class :inherit bold :foreground ,magenta-alt)))
+   `(message-header-xheader ((,class :foreground ,blue-alt-other)))
+   `(message-mml ((,class :foreground ,green-alt)))
+   `(message-separator ((,class :background ,bg-active :foreground ,fg-special-warm)))
+;;;;; minibuffer-line
+   `(minibuffer-line ((,class :foreground ,fg-main)))
+;;;;; minimap
+   `(minimap-active-region-background ((,class :background ,bg-active)))
+   `(minimap-current-line-face ((,class :background ,cyan-intense-bg :foreground ,fg-main)))
+;;;;; modeline
+   `(mode-line ((,class :box ,(modus-operandi-theme-modeline-box bg-active fg-alt t)
+                        ,@(modus-operandi-theme-modeline-props
+                           bg-active fg-dim
+                           bg-active fg-active))))
+   `(mode-line-buffer-id ((,class :inherit bold)))
+   `(mode-line-emphasis ((,class :inherit bold :foreground ,blue-active)))
+   `(mode-line-highlight ((,class :inherit modus-theme-active-blue :box (:line-width -1 :style pressed-button))))
+   `(mode-line-inactive ((,class :box ,(modus-operandi-theme-modeline-box bg-active bg-region)
+                                 ,@(modus-operandi-theme-modeline-props
+                                    bg-dim fg-inactive
+                                    bg-inactive fg-inactive))))
+;;;;; mood-line
+   `(mood-line-modified ((,class :foreground ,magenta-active)))
+   `(mood-line-status-error ((,class :inherit bold :foreground ,red-active)))
+   `(mood-line-status-info ((,class :foreground ,cyan-active)))
+   `(mood-line-status-neutral ((,class :foreground ,blue-active)))
+   `(mood-line-status-success ((,class :foreground ,green-active)))
+   `(mood-line-status-warning ((,class :inherit bold :foreground ,yellow-active)))
+   `(mood-line-unimportant ((,class :foreground ,fg-inactive)))
+;;;;; mu4e
+   `(mu4e-attach-number-face ((,class :inherit bold :foreground ,cyan-alt)))
+   `(mu4e-cited-1-face ((,class :foreground ,blue-alt)))
+   `(mu4e-cited-2-face ((,class :foreground ,red-alt)))
+   `(mu4e-cited-3-face ((,class :foreground ,green-alt)))
+   `(mu4e-cited-4-face ((,class :foreground ,magenta-alt)))
+   `(mu4e-cited-5-face ((,class :foreground ,yellow-alt)))
+   `(mu4e-cited-6-face ((,class :foreground ,cyan-alt)))
+   `(mu4e-cited-7-face ((,class :foreground ,magenta)))
+   `(mu4e-compose-header-face ((,class :inherit mu4e-compose-separator-face)))
+   `(mu4e-compose-separator-face ((,class :background ,bg-active :foreground ,fg-special-warm)))
+   `(mu4e-contact-face ((,class :inherit bold :foreground ,cyan-alt-other)))
+   `(mu4e-context-face ((,class :foreground ,blue-active)))
+   `(mu4e-draft-face ((,class :foreground ,magenta-alt)))
+   `(mu4e-flagged-face ((,class :foreground ,red-alt)))
+   `(mu4e-footer-face ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
+   `(mu4e-forwarded-face ((,class :foreground ,magenta-alt-other)))
+   `(mu4e-header-face ((,class :foreground ,fg-alt)))
+   `(mu4e-header-highlight-face ((,class :inherit modus-theme-hl-line)))
+   `(mu4e-header-key-face ((,class :foreground ,cyan)))
+   `(mu4e-header-marks-face ((,class :inherit bold :foreground ,magenta-alt)))
+   `(mu4e-header-title-face ((,class :foreground ,fg-special-mild)))
+   `(mu4e-header-value-face ((,class :inherit bold :foreground ,magenta-alt-other)))
+   `(mu4e-highlight-face ((,class :inherit bold :foreground ,blue-alt-other)))
+   `(mu4e-link-face ((,class :inherit link)))
+   `(mu4e-modeline-face ((,class :foreground ,magenta-active)))
+   `(mu4e-moved-face ((,class :foreground ,yellow :slant ,modus-theme-slant)))
+   `(mu4e-ok-face ((,class :inherit bold :foreground ,green)))
+   `(mu4e-region-code ((,class :inherit modus-theme-special-calm)))
+   `(mu4e-replied-face ((,class :foreground ,cyan-active)))
+   `(mu4e-special-header-value-face ((,class :inherit bold :foreground ,blue-alt-other)))
+   `(mu4e-system-face ((,class :foreground ,fg-mark-del :slant ,modus-theme-slant)))
+   `(mu4e-title-face ((,class :foreground ,fg-main)))
+   `(mu4e-trashed-face ((,class :foreground ,red)))
+   `(mu4e-unread-face ((,class :inherit bold :foreground ,fg-main)))
+   `(mu4e-url-number-face ((,class :inherit bold :foreground ,cyan-alt-other)))
+   `(mu4e-view-body-face ((,class :foreground ,fg-main)))
+   `(mu4e-warning-face ((,class :inherit warning)))
+;;;;; mu4e-conversation
+   `(mu4e-conversation-header ((,class :inherit modus-theme-special-cold)))
+   `(mu4e-conversation-sender-1 ((,class :foreground ,fg-special-warm)))
+   `(mu4e-conversation-sender-2 ((,class :foreground ,fg-special-cold)))
+   `(mu4e-conversation-sender-3 ((,class :foreground ,fg-special-mild)))
+   `(mu4e-conversation-sender-4 ((,class :foreground ,fg-alt)))
+   `(mu4e-conversation-sender-5 ((,class :foreground ,yellow-refine-fg)))
+   `(mu4e-conversation-sender-6 ((,class :foreground ,cyan-refine-fg)))
+   `(mu4e-conversation-sender-7 ((,class :foreground ,green-refine-fg)))
+   `(mu4e-conversation-sender-8 ((,class :foreground ,blue-refine-fg)))
+   `(mu4e-conversation-sender-me ((,class :foreground ,fg-main)))
+   `(mu4e-conversation-unread ((,class :inherit bold)))
+;;;;; multiple-cursors
+   `(mc/cursor-bar-face ((,class :height 1 :background ,fg-main)))
+   `(mc/cursor-face ((,class :inverse-video t)))
+   `(mc/region-face ((,class :inherit region)))
+;;;;; neotree
+   `(neo-banner-face ((,class :foreground ,magenta)))
+   `(neo-button-face ((,class :inherit button)))
+   `(neo-dir-link-face ((,class :inherit bold :foreground ,blue)))
+   `(neo-expand-btn-face ((,class :foreground ,cyan)))
+   `(neo-file-link-face ((,class :foreground ,fg-main)))
+   `(neo-header-face ((,class :inherit bold :foreground ,fg-main)))
+   `(neo-root-dir-face ((,class :inherit bold :foreground ,cyan-alt)))
+   `(neo-vc-added-face ((,class :foreground ,green)))
+   `(neo-vc-conflict-face ((,class :inherit bold :foreground ,red)))
+   `(neo-vc-default-face ((,class :foreground ,fg-main)))
+   `(neo-vc-edited-face ((,class :foreground ,yellow)))
+   `(neo-vc-ignored-face ((,class :foreground ,fg-inactive)))
+   `(neo-vc-missing-face ((,class :foreground ,red-alt)))
+   `(neo-vc-needs-merge-face ((,class :foreground ,magenta-alt)))
+   `(neo-vc-needs-update-face ((,class :underline t)))
+   `(neo-vc-removed-face ((,class :strike-through t)))
+   `(neo-vc-unlocked-changes-face ((,class :inherit modus-theme-refine-blue)))
+   `(neo-vc-up-to-date-face ((,class :foreground ,fg-alt)))
+   `(neo-vc-user-face ((,class :foreground ,magenta)))
+;;;;; no-emoji
+   `(no-emoji ((,class :foreground ,cyan)))
+;;;;; notmuch
+   `(notmuch-crypto-decryption ((,class :inherit modus-theme-refine-magenta)))
+   `(notmuch-crypto-part-header ((,class :foreground ,magenta-alt-other)))
+   `(notmuch-crypto-signature-bad ((,class :inherit modus-theme-intense-red)))
+   `(notmuch-crypto-signature-good ((,class :inherit modus-theme-refine-green)))
+   `(notmuch-crypto-signature-good-key ((,class :inherit modus-theme-refine-yellow)))
+   `(notmuch-crypto-signature-unknown ((,class :inherit modus-theme-refine-red)))
+   `(notmuch-hello-logo-background ((,class :background ,bg-main)))
+   `(notmuch-message-summary-face ((,class :inherit modus-theme-nuanced-cyan)))
+   `(notmuch-search-flagged-face ((,class :foreground ,red-alt)))
+   `(notmuch-search-matching-authors ((,class :foreground ,fg-main)))
+   `(notmuch-search-non-matching-authors ((,class :foreground ,fg-alt)))
+   `(notmuch-search-unread-face ((,class :inherit bold)))
+   `(notmuch-tag-added
+     ((,(append '((supports :underline (:style wave))) class)
+       :underline (:color ,green :style wave))
+      (,class :foreground ,green :underline t)))
+   `(notmuch-tag-deleted
+     ((,(append '((supports :underline (:style wave))) class)
+       :underline (:color ,red :style wave))
+      (,class :foreground ,red :underline t)))
+   `(notmuch-tag-face ((,class :inherit bold :foreground ,blue-alt)))
+   `(notmuch-tag-flagged ((,class :foreground ,red-alt)))
+   `(notmuch-tag-unread ((,class :foreground ,magenta-alt)))
+   `(notmuch-tree-match-author-face ((,class :foreground ,fg-special-cold)))
+   `(notmuch-tree-match-face ((,class :foreground ,fg-main)))
+   `(notmuch-tree-match-tag-face ((,class :inherit bold :foreground ,blue-alt)))
+   `(notmuch-tree-no-match-face ((,class :foreground ,fg-alt)))
+   `(notmuch-wash-cited-text ((,class :foreground ,cyan)))
+   `(notmuch-wash-toggle-button ((,class :background ,bg-alt :foreground ,fg-alt)))
+;;;;; num3-mode
+   `(num3-face-even ((,class :inherit bold :background ,bg-alt)))
+;;;;; nxml-mode
+   `(nxml-attribute-colon ((,class :foreground ,fg-main)))
+   `(nxml-attribute-local-name ((,class ,@(modus-operandi-theme-syntax-foreground
+                                           cyan-alt cyan-alt-faint))))
+   `(nxml-attribute-prefix ((,class ,@(modus-operandi-theme-syntax-foreground
+                                       cyan-alt-other cyan-alt-other-faint)
+                                    ,@(modus-operandi-theme-bold-weight))))
+   `(nxml-attribute-value ((,class ,@(modus-operandi-theme-syntax-foreground
+                                      blue blue-faint))))
+   `(nxml-cdata-section-CDATA ((,class ,@(modus-operandi-theme-syntax-foreground
+                                          red-alt red-alt-faint)
+                                       ,@(modus-operandi-theme-bold-weight))))
+   `(nxml-cdata-section-delimiter ((,class ,@(modus-operandi-theme-syntax-foreground
+                                              red-alt red-alt-faint))))
+   `(nxml-char-ref-delimiter ((,class ,@(modus-operandi-theme-syntax-foreground
+                                         green-alt-other green-alt-other-faint))))
+   `(nxml-char-ref-number ((,class ,@(modus-operandi-theme-syntax-foreground
+                                      green-alt-other green-alt-other-faint)
+                                   ,@(modus-operandi-theme-bold-weight))))
+   `(nxml-delimited-data ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
+   `(nxml-delimiter ((,class :foreground ,fg-dim)))
+   `(nxml-element-colon ((,class :foreground ,fg-main)))
+   `(nxml-element-local-name ((,class ,@(modus-operandi-theme-syntax-foreground
+                                         magenta magenta-faint))))
+   `(nxml-element-prefix ((,class ,@(modus-operandi-theme-syntax-foreground
+                                     magenta-alt magenta-alt-faint)
+                                  ,@(modus-operandi-theme-bold-weight))))
+   `(nxml-entity-ref-delimiter ((,class ,@(modus-operandi-theme-syntax-foreground
+                                           green-alt-other green-alt-other-faint))))
+   `(nxml-entity-ref-name ((,class ,@(modus-operandi-theme-syntax-foreground
+                                      green-alt-other green-alt-other-faint)
+                                   ,@(modus-operandi-theme-bold-weight))))
+   `(nxml-glyph ((,class :inherit modus-theme-intense-neutral)))
+   `(nxml-hash ((,class ,@(modus-operandi-theme-syntax-foreground
+                           blue-alt blue-alt-faint)
+                        ,@(modus-operandi-theme-bold-weight))))
+   `(nxml-heading ((,class :inherit bold)))
+   `(nxml-name ((,class ,@(modus-operandi-theme-syntax-foreground
+                           magenta-alt magenta-alt-faint)
+                        ,@(modus-operandi-theme-bold-weight))))
+   `(nxml-namespace-attribute-colon ((,class :foreground ,fg-main)))
+   `(nxml-namespace-attribute-prefix ((,class ,@(modus-operandi-theme-syntax-foreground
+                                                 cyan cyan-faint))))
+   `(nxml-processing-instruction-target ((,class ,@(modus-operandi-theme-syntax-foreground
+                                                    magenta-alt-other magenta-alt-other-faint)
+                                                 ,@(modus-operandi-theme-bold-weight))))
+   `(nxml-prolog-keyword ((,class ,@(modus-operandi-theme-syntax-foreground
+                                     magenta-alt-other magenta-alt-other-faint)
+                                  ,@(modus-operandi-theme-bold-weight))))
+   `(nxml-ref ((,class ,@(modus-operandi-theme-syntax-foreground
+                          green-alt-other green-alt-other-faint)
+                       ,@(modus-operandi-theme-bold-weight))))
+;;;;; orderless
+   `(orderless-match-face-0 ((,class :inherit bold
+                                     ,@(modus-operandi-theme-standard-completions
+                                        blue-alt blue-nuanced-bg
+                                        blue-refine-bg blue-refine-fg))))
+   `(orderless-match-face-1 ((,class :inherit bold
+                                     ,@(modus-operandi-theme-standard-completions
+                                        magenta-alt magenta-nuanced-bg
+                                        magenta-refine-bg magenta-refine-fg))))
+   `(orderless-match-face-2 ((,class :inherit bold
+                                     ,@(modus-operandi-theme-standard-completions
+                                        green-alt-other green-nuanced-bg
+                                        green-refine-bg green-refine-fg))))
+   `(orderless-match-face-3 ((,class :inherit bold
+                                     ,@(modus-operandi-theme-standard-completions
+                                        yellow-alt-other yellow-nuanced-bg
+                                        yellow-refine-bg yellow-refine-fg))))
+;;;;; org
+   `(org-agenda-calendar-event ((,class :foreground ,fg-main)))
+   `(org-agenda-calendar-sexp ((,class :foreground ,cyan-alt)))
+   `(org-agenda-clocking ((,class :inherit modus-theme-special-cold)))
+   `(org-agenda-column-dateline ((,class :background ,bg-alt)))
+   `(org-agenda-current-time ((,class :inherit modus-theme-subtle-cyan)))
+   `(org-agenda-date ((,class :inherit ,modus-theme-variable-pitch :foreground ,cyan-alt-other
+                              ,@(modus-operandi-theme-scale modus-operandi-theme-scale-4)
+                              ,@(modus-operandi-theme-heading-block cyan-nuanced-bg cyan-nuanced))))
+   `(org-agenda-date-today ((,class :inherit (bold ,modus-theme-variable-pitch)
+                                    :background ,cyan-intense-bg :foreground ,fg-main
+                                    ,@(modus-operandi-theme-scale modus-operandi-theme-scale-4))))
+   `(org-agenda-date-weekend ((,class :inherit ,modus-theme-variable-pitch :foreground ,cyan
+                                      ,@(modus-operandi-theme-scale modus-operandi-theme-scale-4)
+                                      ,@(modus-operandi-theme-heading-block blue-nuanced-bg cyan-nuanced))))
+   `(org-agenda-diary ((,class :foreground ,fg-main)))
+   `(org-agenda-dimmed-todo-face ((,class :inherit modus-theme-subtle-neutral)))
+   `(org-agenda-done ((,class ,@(modus-operandi-theme-org-todo-block green-nuanced-bg green-nuanced green))))
+   `(org-agenda-filter-category ((,class :inherit bold :foreground ,magenta-active)))
+   `(org-agenda-filter-effort ((,class :inherit bold :foreground ,magenta-active)))
+   `(org-agenda-filter-regexp ((,class :inherit bold :foreground ,magenta-active)))
+   `(org-agenda-filter-tags ((,class :inherit bold :foreground ,magenta-active)))
+   `(org-agenda-restriction-lock ((,class :background ,bg-dim :foreground ,fg-dim)))
+   `(org-agenda-structure ((,class :inherit ,modus-theme-variable-pitch
+                                   :foreground ,fg-special-mild
+                                   ,@(modus-operandi-theme-scale modus-operandi-theme-scale-3))))
+   `(org-archived ((,class :background ,bg-alt :foreground ,fg-alt)))
+   `(org-block ((,class ,@(modus-operandi-theme-org-block bg-dim)
+                        :inherit fixed-pitch :foreground ,fg-main)))
+   `(org-block-begin-line ((,class ,@(modus-operandi-theme-org-block-delim
+                                      bg-dim fg-special-cold
+                                      bg-alt fg-special-mild)
+                                   :inherit fixed-pitch)))
+   `(org-block-end-line ((,class :inherit org-block-begin-line)))
+   `(org-checkbox ((,class :box (:line-width 1 :color ,bg-active)
+                           :background ,bg-inactive :foreground ,fg-active)))
+   `(org-checkbox-statistics-done ((,class :foreground ,green
+                                           ,@(modus-operandi-theme-heading-block
+                                              green-nuanced-bg green-nuanced))))
+   `(org-checkbox-statistics-todo ((,class ,@(modus-operandi-theme-heading-foreground red-alt red)
+                                           ,@(modus-operandi-theme-heading-block
+                                              red-nuanced-bg red-nuanced))))
+   `(org-clock-overlay ((,class :inherit modus-theme-special-cold)))
+   `(org-code ((,class :inherit fixed-pitch :foreground ,magenta)))
+   `(org-column ((,class :background ,bg-alt)))
+   `(org-column-title ((,class :inherit bold :underline t :background ,bg-alt)))
+   `(org-date ((,class :inherit fixed-pitch :foreground ,cyan-alt-other :underline t)))
+   `(org-date-selected ((,class :inherit bold :foreground ,blue-alt :inverse-video t)))
+   `(org-default ((,class :background ,bg-main :foreground ,fg-main)))
+   `(org-document-info ((,class :foreground ,fg-special-cold)))
+   `(org-document-info-keyword ((,class :inherit fixed-pitch :foreground ,fg-alt)))
+   `(org-document-title ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-special-cold
+                                 ,@(modus-operandi-theme-scale modus-operandi-theme-scale-5))))
+   `(org-done ((,class ,@(modus-operandi-theme-org-todo-block green-nuanced-bg green-nuanced green))))
+   `(org-drawer ((,class :foreground ,cyan-alt)))
+   `(org-ellipsis ((,class :foreground nil))) ; inherits from the heading's colour
+   `(org-footnote ((,class :foreground ,blue-alt :underline t)))
+   `(org-formula ((,class :inherit fixed-pitch :foreground ,red-alt)))
+   `(org-habit-alert-face ((,class :inherit modus-theme-intense-yellow)))
+   `(org-habit-alert-future-face ((,class :inherit modus-theme-refine-yellow)))
+   `(org-habit-clear-face ((,class :inherit modus-theme-intense-magenta)))
+   `(org-habit-clear-future-face ((,class :inherit modus-theme-refine-magenta)))
+   `(org-habit-overdue-face ((,class :inherit modus-theme-intense-red)))
+   `(org-habit-overdue-future-face ((,class :inherit modus-theme-refine-red)))
+   `(org-habit-ready-face ((,class :inherit modus-theme-intense-blue)))
+   `(org-habit-ready-future-face ((,class :inherit modus-theme-refine-blue)))
+   `(org-headline-done ((,class :foreground ,green-nuanced
+                                ,@(modus-operandi-theme-heading-block
+                                   green-nuanced-bg green-nuanced))))
+   `(org-hide ((,class :foreground ,bg-main)))
+   `(org-indent ((,class :inherit (fixed-pitch org-hide))))
+   `(org-latex-and-related ((,class :foreground ,magenta-refine-fg)))
+   `(org-level-1 ((,class :inherit (bold ,modus-theme-variable-pitch)
+                          ,@(modus-operandi-theme-heading-foreground fg-main magenta-alt-other)
+                          ,@(modus-operandi-theme-scale modus-operandi-theme-scale-4)
+                          ,@(modus-operandi-theme-heading-block magenta-nuanced-bg magenta-nuanced))))
+   `(org-level-2 ((,class :inherit (bold ,modus-theme-variable-pitch)
+                          ,@(modus-operandi-theme-heading-foreground fg-special-warm magenta-alt)
+                          ,@(modus-operandi-theme-scale modus-operandi-theme-scale-3)
+                          ,@(modus-operandi-theme-heading-block red-nuanced-bg red-nuanced))))
+   `(org-level-3 ((,class :inherit (bold ,modus-theme-variable-pitch)
+                          ,@(modus-operandi-theme-heading-foreground fg-special-cold blue)
+                          ,@(modus-operandi-theme-scale modus-operandi-theme-scale-2)
+                          ,@(modus-operandi-theme-heading-block blue-nuanced-bg blue-nuanced))))
+   `(org-level-4 ((,class :inherit (bold ,modus-theme-variable-pitch)
+                          ,@(modus-operandi-theme-heading-foreground fg-special-mild cyan)
+                          ,@(modus-operandi-theme-scale modus-operandi-theme-scale-1)
+                          ,@(modus-operandi-theme-heading-block cyan-nuanced-bg cyan-nuanced))))
+   `(org-level-5 ((,class :inherit (bold ,modus-theme-variable-pitch)
+                          ,@(modus-operandi-theme-heading-foreground fg-special-calm green-alt-other)
+                          ,@(modus-operandi-theme-heading-block green-nuanced-bg green-nuanced))))
+   `(org-level-6 ((,class :inherit (bold ,modus-theme-variable-pitch)
+                          ,@(modus-operandi-theme-heading-foreground yellow-nuanced yellow-alt-other)
+                          ,@(modus-operandi-theme-heading-block yellow-nuanced-bg yellow-nuanced))))
+   `(org-level-7 ((,class :inherit (bold ,modus-theme-variable-pitch)
+                          ,@(modus-operandi-theme-heading-foreground red-nuanced red-alt)
+                          ,@(modus-operandi-theme-heading-block red-nuanced-bg red-nuanced))))
+   `(org-level-8 ((,class :inherit (bold ,modus-theme-variable-pitch)
+                          ,@(modus-operandi-theme-heading-foreground fg-dim magenta)
+                          ,@(modus-operandi-theme-heading-block bg-alt fg-alt))))
+   `(org-link ((,class :inherit link)))
+   `(org-list-dt ((,class :inherit bold)))
+   `(org-macro ((,class :inherit org-latex-and-related)))
+   `(org-meta-line ((,class :inherit fixed-pitch :background ,cyan-nuanced-bg :foreground ,cyan-nuanced)))
+   `(org-mode-line-clock ((,class :foreground ,fg-main)))
+   `(org-mode-line-clock-overrun ((,class :inherit modus-theme-active-red)))
+   `(org-priority ((,class ,@(modus-operandi-theme-org-todo-block magenta-nuanced-bg magenta-nuanced magenta)
+                           ,@(modus-operandi-theme-heading-foreground magenta magenta-alt-other))))
+   `(org-quote ((,class ,@(if modus-operandi-theme-org-blocks
+                              (append
+                               (and (>= emacs-major-version 27) '(:extend t))
+                               (list :background bg-dim))
+                            (list :background nil))
+                        :foreground ,fg-special-calm :slant ,modus-theme-slant)))
+   `(org-scheduled ((,class :foreground ,fg-special-warm)))
+   `(org-scheduled-previously ((,class :foreground ,yellow-alt-other)))
+   `(org-scheduled-today ((,class :foreground ,magenta-alt-other)))
+   `(org-sexp-date ((,class :inherit org-date)))
+   `(org-special-keyword ((,class ,@(modus-operandi-theme-org-todo-block cyan-nuanced-bg cyan-nuanced cyan-alt))))
+   `(org-table ((,class :inherit fixed-pitch :foreground ,fg-special-cold)))
+   `(org-tag ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,magenta-nuanced)))
+   `(org-tag-group ((,class :inherit bold :foreground ,cyan-nuanced)))
+   `(org-target ((,class :underline t)))
+   `(org-time-grid ((,class :foreground ,fg-unfocused)))
+   `(org-todo ((,class ,@(modus-operandi-theme-org-todo-block red-nuanced-bg red-nuanced red-alt)
+                       ,@(modus-operandi-theme-heading-foreground red-alt red))))
+   `(org-upcoming-deadline ((,class :foreground ,red-alt-other)))
+   `(org-upcoming-distant-deadline ((,class :foreground ,red-nuanced)))
+   `(org-verbatim ((,class :inherit fixed-pitch :background ,bg-alt :foreground ,fg-special-calm)))
+   `(org-verse ((,class :inherit org-quote)))
+   `(org-warning ((,class :inherit bold :foreground ,red-alt-other)))
+;;;;; org-journal
+   `(org-journal-calendar-entry-face ((,class :foreground ,yellow-alt-other :slant ,modus-theme-slant)))
+   `(org-journal-calendar-scheduled-face ((,class :foreground ,red-alt-other :slant ,modus-theme-slant)))
+   `(org-journal-highlight ((,class :foreground ,magenta-alt)))
+;;;;; org-noter
+   `(org-noter-no-notes-exist-face ((,class :inherit bold :foreground ,red-active)))
+   `(org-noter-notes-exist-face ((,class :inherit bold :foreground ,green-active)))
+;;;;; org-pomodoro
+   `(org-pomodoro-mode-line ((,class :foreground ,red-active)))
+   `(org-pomodoro-mode-line-break ((,class :foreground ,cyan-active)))
+   `(org-pomodoro-mode-line-overtime ((,class :inherit bold :foreground ,red-active)))
+;;;;; org-recur
+   `(org-recur ((,class :foreground ,magenta-active)))
+;;;;; org-roam
+   `(org-roam-link ((,class :foreground ,blue-alt-other :underline t)))
+   `(org-roam-backlink ((,class :foreground ,green-alt-other :underline t)))
+;;;;; org-superstar
+   `(org-superstar-item ((,class :foreground ,fg-main)))
+   `(org-superstar-leading ((,class :foreground ,fg-whitespace)))
+;;;;; org-table-sticky-header
+   `(org-table-sticky-header-face ((,class :inherit modus-theme-intense-neutral)))
+;;;;; org-treescope
+   `(org-treescope-faces--markerinternal-midday ((,class :inherit modus-theme-intense-blue)))
+   `(org-treescope-faces--markerinternal-range ((,class :inherit modus-theme-special-mild)))
+;;;;; origami
+   `(origami-fold-header-face ((,class :background ,bg-dim :foreground ,fg-dim :box t)))
+   `(origami-fold-replacement-face ((,class :background ,bg-alt :foreground ,fg-alt)))
+;;;;; outline-mode
+   `(outline-1 ((,class :inherit (bold ,modus-theme-variable-pitch)
+                        ,@(modus-operandi-theme-heading-foreground fg-main magenta-alt-other)
+                        ,@(modus-operandi-theme-scale modus-operandi-theme-scale-4)
+                        ,@(modus-operandi-theme-heading-block magenta-nuanced-bg magenta-nuanced))))
+   `(outline-2 ((,class :inherit (bold ,modus-theme-variable-pitch)
+                        ,@(modus-operandi-theme-heading-foreground fg-special-warm magenta-alt)
+                        ,@(modus-operandi-theme-scale modus-operandi-theme-scale-3)
+                        ,@(modus-operandi-theme-heading-block red-nuanced-bg red-nuanced))))
+   `(outline-3 ((,class :inherit (bold ,modus-theme-variable-pitch)
+                        ,@(modus-operandi-theme-heading-foreground fg-special-cold blue)
+                        ,@(modus-operandi-theme-scale modus-operandi-theme-scale-2)
+                        ,@(modus-operandi-theme-heading-block blue-nuanced-bg blue-nuanced))))
+   `(outline-4 ((,class :inherit (bold ,modus-theme-variable-pitch)
+                        ,@(modus-operandi-theme-heading-foreground fg-special-mild cyan)
+                        ,@(modus-operandi-theme-scale modus-operandi-theme-scale-1)
+                        ,@(modus-operandi-theme-heading-block cyan-nuanced-bg cyan-nuanced))))
+   `(outline-5 ((,class :inherit (bold ,modus-theme-variable-pitch)
+                        ,@(modus-operandi-theme-heading-foreground fg-special-calm green-alt-other)
+                        ,@(modus-operandi-theme-heading-block green-nuanced-bg green-nuanced))))
+   `(outline-6 ((,class :inherit (bold ,modus-theme-variable-pitch)
+                        ,@(modus-operandi-theme-heading-foreground yellow-nuanced yellow-alt-other)
+                        ,@(modus-operandi-theme-heading-block yellow-nuanced-bg yellow-nuanced))))
+   `(outline-7 ((,class :inherit (bold ,modus-theme-variable-pitch)
+                        ,@(modus-operandi-theme-heading-foreground red-nuanced red-alt)
+                        ,@(modus-operandi-theme-heading-block red-nuanced-bg red-nuanced))))
+   `(outline-8 ((,class :inherit (bold ,modus-theme-variable-pitch)
+                        ,@(modus-operandi-theme-heading-foreground fg-dim magenta)
+                        ,@(modus-operandi-theme-heading-block bg-alt fg-alt))))
+;;;;; outline-minor-faces
+   `(outline-minor-0 ((,class ,@(unless modus-operandi-theme-section-headings
+                                  (list :background cyan-nuanced-bg)))))
+;;;;; package (M-x list-packages)
+   `(package-description ((,class :foreground ,fg-special-cold)))
+   `(package-help-section-name ((,class :inherit bold :foreground ,magenta-alt-other)))
+   `(package-name ((,class :inherit link)))
+   `(package-status-avail-obso ((,class :inherit bold :foreground ,red)))
+   `(package-status-available ((,class :foreground ,fg-special-mild)))
+   `(package-status-built-in ((,class :foreground ,magenta)))
+   `(package-status-dependency ((,class :foreground ,magenta-alt-other)))
+   `(package-status-disabled ((,class :inherit modus-theme-subtle-red)))
+   `(package-status-external ((,class :foreground ,cyan-alt-other)))
+   `(package-status-held ((,class :foreground ,yellow-alt)))
+   `(package-status-incompat ((,class :inherit bold :foreground ,yellow)))
+   `(package-status-installed ((,class :foreground ,fg-special-warm)))
+   `(package-status-new ((,class :inherit bold :foreground ,green)))
+   `(package-status-unsigned ((,class :inherit bold :foreground ,red-alt)))
+;;;;; page-break-lines
+   `(page-break-lines ((,class :inherit default :foreground ,fg-window-divider-outer)))
+;;;;; paradox
+   `(paradox-archive-face ((,class :foreground ,fg-special-mild)))
+   `(paradox-comment-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
+   `(paradox-commit-tag-face ((,class :inherit modus-theme-refine-magenta :box t)))
+   `(paradox-description-face ((,class :foreground ,fg-special-cold)))
+   `(paradox-description-face-multiline ((,class :foreground ,fg-special-cold)))
+   `(paradox-download-face ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,blue-alt-other)))
+   `(paradox-highlight-face ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,cyan-alt-other)))
+   `(paradox-homepage-button-face ((,class :foreground ,magenta-alt-other :underline t)))
+   `(paradox-mode-line-face ((,class :inherit bold :foreground ,cyan-active)))
+   `(paradox-name-face ((,class :foreground ,blue :underline t)))
+   `(paradox-star-face ((,class :foreground ,magenta)))
+   `(paradox-starred-face ((,class :foreground ,magenta-alt)))
+;;;;; paren-face
+   `(parenthesis ((,class :foreground ,fg-unfocused)))
+;;;;; parrot
+   `(parrot-rotate-rotation-highlight-face ((,class :inherit modus-theme-refine-magenta)))
+;;;;; pass
+   `(pass-mode-directory-face ((,class :inherit bold :foreground ,fg-special-cold)))
+   `(pass-mode-entry-face ((,class :background ,bg-main :foreground ,fg-main)))
+   `(pass-mode-header-face ((,class :foreground ,fg-special-warm)))
+;;;;; persp-mode
+   `(persp-face-lighter-buffer-not-in-persp ((,class :inherit modus-theme-intense-red)))
+   `(persp-face-lighter-default ((,class :inherit bold :foreground ,blue-active)))
+   `(persp-face-lighter-nil-persp ((,class :inherit bold :foreground ,fg-active)))
+;;;;; perspective
+   `(persp-selected-face ((,class :inherit bold :foreground ,blue-active)))
+;;;;; phi-grep
+   `(phi-grep-heading-face  ((,class :inherit bold :foreground ,red-alt
+                                     ,@(modus-operandi-theme-scale modus-operandi-theme-scale-4))))
+   `(phi-grep-line-number-face ((,class :foreground ,fg-special-warm)))
+   `(phi-grep-match-face ((,class :inherit modus-theme-special-calm)))
+   `(phi-grep-modified-face ((,class :inherit modus-theme-refine-yellow)))
+   `(phi-grep-overlay-face ((,class :inherit modus-theme-refine-blue)))
+;;;;; phi-search
+   `(phi-replace-preview-face ((,class :inherit modus-theme-intense-magenta)))
+   `(phi-search-failpart-face ((,class :inherit modus-theme-refine-red)))
+   `(phi-search-match-face ((,class :inherit modus-theme-refine-cyan)))
+   `(phi-search-selection-face ((,class :inherit (modus-theme-intense-green bold))))
+;;;;; pkgbuild-mode
+   `(pkgbuild-error-face ((,class :underline ,fg-lang-error)))
+;;;;; pomidor
+   `(pomidor-break-face ((,class :foreground ,blue-alt-other)))
+   `(pomidor-overwork-face ((,class :foreground ,red-alt-other)))
+   `(pomidor-skip-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
+   `(pomidor-work-face ((,class :foreground ,green-alt-other)))
+;;;;; powerline
+   `(powerline-active0 ((,class :background ,bg-main :foreground ,blue-faint :inverse-video t)))
+   `(powerline-active1 ((,class :background ,blue-nuanced-bg :foreground ,blue-nuanced)))
+   `(powerline-active2 ((,class :background ,bg-active :foreground ,fg-active)))
+   `(powerline-inactive0 ((,class :background ,bg-special-cold :foreground ,fg-special-cold)))
+   `(powerline-inactive1 ((,class :background ,bg-dim :foreground ,fg-inactive)))
+   `(powerline-inactive2 ((,class :background ,bg-inactive :foreground ,fg-inactive)))
+;;;;; powerline-evil
+   `(powerline-evil-base-face ((,class :background ,fg-main :foreground ,bg-main)))
+   `(powerline-evil-emacs-face ((,class :inherit modus-theme-active-magenta)))
+   `(powerline-evil-insert-face ((,class :inherit modus-theme-active-green)))
+   `(powerline-evil-motion-face ((,class :inherit modus-theme-active-blue)))
+   `(powerline-evil-normal-face ((,class :background ,fg-alt :foreground ,bg-main)))
+   `(powerline-evil-operator-face ((,class :inherit modus-theme-active-yellow)))
+   `(powerline-evil-replace-face ((,class :inherit modus-theme-active-red)))
+   `(powerline-evil-visual-face ((,class :inherit modus-theme-active-cyan)))
+;;;;; proced
+   `(proced-mark ((,class :inherit modus-theme-mark-symbol)))
+   `(proced-marked ((,class :inherit modus-theme-mark-alt)))
+   `(proced-sort-header ((,class :inherit bold :foreground ,fg-special-calm :underline t)))
+;;;;; prodigy
+   `(prodigy-green-face ((,class :foreground ,green)))
+   `(prodigy-red-face ((,class :foreground ,red)))
+   `(prodigy-yellow-face ((,class :foreground ,yellow)))
+;;;;; rainbow-blocks
+   `(rainbow-blocks-depth-1-face ((,class :foreground ,magenta-alt-other)))
+   `(rainbow-blocks-depth-2-face ((,class :foreground ,blue)))
+   `(rainbow-blocks-depth-3-face ((,class :foreground ,magenta-alt)))
+   `(rainbow-blocks-depth-4-face ((,class :foreground ,green)))
+   `(rainbow-blocks-depth-5-face ((,class :foreground ,magenta)))
+   `(rainbow-blocks-depth-6-face ((,class :foreground ,cyan)))
+   `(rainbow-blocks-depth-7-face ((,class :foreground ,yellow)))
+   `(rainbow-blocks-depth-8-face ((,class :foreground ,cyan-alt)))
+   `(rainbow-blocks-depth-9-face ((,class :foreground ,red-alt)))
+   `(rainbow-blocks-unmatched-face ((,class :foreground ,red)))
+;;;;; rainbow-identifiers
+   `(rainbow-identifiers-identifier-1 ((,class :foreground ,green-alt-other)))
+   `(rainbow-identifiers-identifier-2 ((,class :foreground ,magenta-alt-other)))
+   `(rainbow-identifiers-identifier-3 ((,class :foreground ,cyan-alt-other)))
+   `(rainbow-identifiers-identifier-4 ((,class :foreground ,yellow-alt-other)))
+   `(rainbow-identifiers-identifier-5 ((,class :foreground ,blue-alt-other)))
+   `(rainbow-identifiers-identifier-6 ((,class :foreground ,green-alt)))
+   `(rainbow-identifiers-identifier-7 ((,class :foreground ,magenta-alt)))
+   `(rainbow-identifiers-identifier-8 ((,class :foreground ,cyan-alt)))
+   `(rainbow-identifiers-identifier-9 ((,class :foreground ,yellow-alt)))
+   `(rainbow-identifiers-identifier-10 ((,class :foreground ,green)))
+   `(rainbow-identifiers-identifier-11 ((,class :foreground ,magenta)))
+   `(rainbow-identifiers-identifier-12 ((,class :foreground ,cyan)))
+   `(rainbow-identifiers-identifier-13 ((,class :foreground ,yellow)))
+   `(rainbow-identifiers-identifier-14 ((,class :foreground ,blue-alt)))
+   `(rainbow-identifiers-identifier-15 ((,class :foreground ,red-alt)))
+;;;;; rainbow-delimiters
+   `(rainbow-delimiters-base-face-error ((,class :foreground ,red)))
+   `(rainbow-delimiters-base-face ((,class :foreground ,fg-main)))
+   `(rainbow-delimiters-depth-1-face ((,class :foreground ,green-alt-other)))
+   `(rainbow-delimiters-depth-2-face ((,class :foreground ,magenta-alt-other)))
+   `(rainbow-delimiters-depth-3-face ((,class :foreground ,cyan-alt-other)))
+   `(rainbow-delimiters-depth-4-face ((,class :foreground ,yellow-alt-other)))
+   `(rainbow-delimiters-depth-5-face ((,class :foreground ,blue-alt-other)))
+   `(rainbow-delimiters-depth-6-face ((,class :foreground ,green-alt)))
+   `(rainbow-delimiters-depth-7-face ((,class :foreground ,magenta-alt)))
+   `(rainbow-delimiters-depth-8-face ((,class :foreground ,cyan-alt)))
+   `(rainbow-delimiters-depth-9-face ((,class :foreground ,yellow-alt)))
+   `(rainbow-delimiters-mismatched-face ((,class :inherit bold :foreground ,red-alt)))
+   `(rainbow-delimiters-unmatched-face ((,class :inherit bold :foreground ,red)))
+;;;;; rcirc
+   `(rcirc-bright-nick ((,class :inherit bold :foreground ,magenta-alt)))
+   `(rcirc-dim-nick ((,class :foreground ,fg-alt)))
+   `(rcirc-my-nick ((,class :inherit bold :foreground ,magenta)))
+   `(rcirc-nick-in-message ((,class :foreground ,magenta-alt-other)))
+   `(rcirc-nick-in-message-full-line ((,class :inherit bold :foreground ,fg-special-mild)))
+   `(rcirc-other-nick ((,class :inherit bold :foreground ,fg-special-cold)))
+   `(rcirc-prompt ((,class :inherit bold :foreground ,cyan-alt-other)))
+   `(rcirc-server ((,class :foreground ,fg-unfocused)))
+   `(rcirc-timestamp ((,class :foreground ,blue-nuanced)))
+   `(rcirc-url ((,class :foreground ,blue :underline t)))
+;;;;; regexp-builder (re-builder)
+   `(reb-match-0 ((,class :inherit modus-theme-intense-blue)))
+   `(reb-match-1 ((,class :inherit modus-theme-intense-magenta)))
+   `(reb-match-2 ((,class :inherit modus-theme-intense-green)))
+   `(reb-match-3 ((,class :inherit modus-theme-intense-red)))
+   `(reb-regexp-grouping-backslash ((,class :inherit bold :foreground ,fg-escape-char-backslash)))
+   `(reb-regexp-grouping-construct ((,class :inherit bold :foreground ,fg-escape-char-construct)))
+;;;;; rg (rg.el)
+   `(rg-column-number-face ((,class :foreground ,magenta-alt-other)))
+   `(rg-context-face ((,class :foreground ,fg-unfocused)))
+   `(rg-error-face ((,class :inherit bold :foreground ,red)))
+   `(rg-file-tag-face ((,class :foreground ,fg-special-cold)))
+   `(rg-filename-face ((,class :inherit bold :foreground ,fg-special-cold)))
+   `(rg-line-number-face ((,class :foreground ,fg-special-warm)))
+   `(rg-literal-face ((,class :foreground ,blue-alt)))
+   `(rg-match-face ((,class :inherit modus-theme-special-calm)))
+   `(rg-regexp-face ((,class :foreground ,magenta-active)))
+   `(rg-toggle-off-face ((,class :inherit bold :foreground ,fg-inactive)))
+   `(rg-toggle-on-face ((,class :inherit bold :foreground ,cyan-active)))
+   `(rg-warning-face ((,class :inherit bold :foreground ,yellow)))
+;;;;; ripgrep
+   `(ripgrep-context-face ((,class :foreground ,fg-unfocused)))
+   `(ripgrep-error-face ((,class :inherit bold :foreground ,red)))
+   `(ripgrep-hit-face ((,class :foreground ,cyan)))
+   `(ripgrep-match-face ((,class :inherit modus-theme-special-calm)))
+;;;;; rmail
+   `(rmail-header-name ((,class :foreground ,cyan-alt-other)))
+   `(rmail-highlight ((,class :inherit bold :foreground ,magenta-alt)))
+;;;;; ruler-mode
+   `(ruler-mode-column-number ((,class :inherit (ruler-mode-default bold) :foreground ,fg-main)))
+   `(ruler-mode-comment-column ((,class :inherit ruler-mode-default :foreground ,red-active)))
+   `(ruler-mode-current-column ((,class :inherit ruler-mode-default :foreground ,cyan-active :box t)))
+   `(ruler-mode-default ((,class :background ,bg-inactive :foreground ,fg-inactive)))
+   `(ruler-mode-fill-column ((,class :inherit ruler-mode-default :foreground ,green-active)))
+   `(ruler-mode-fringes ((,class :inherit ruler-mode-default :foreground ,blue-active)))
+   `(ruler-mode-goal-column ((,class :inherit ruler-mode-default :foreground ,magenta-active)))
+   `(ruler-mode-margins ((,class :inherit ruler-mode-default :foreground ,bg-main)))
+   `(ruler-mode-pad ((,class :background ,bg-active :foreground ,fg-inactive)))
+   `(ruler-mode-tab-stop ((,class :inherit ruler-mode-default :foreground ,yellow-active)))
+;;;;; sallet
+   `(sallet-buffer-compressed ((,class :foreground ,yellow-nuanced :slant italic)))
+   `(sallet-buffer-default-directory ((,class :foreground ,cyan-nuanced)))
+   `(sallet-buffer-directory ((,class :foreground ,blue-nuanced)))
+   `(sallet-buffer-help ((,class :foreground ,fg-special-cold)))
+   `(sallet-buffer-modified ((,class :foreground ,yellow-alt-other :slant italic)))
+   `(sallet-buffer-ordinary ((,class :foreground ,fg-main)))
+   `(sallet-buffer-read-only ((,class :foreground ,yellow-alt)))
+   `(sallet-buffer-size ((,class :foreground ,fg-special-calm)))
+   `(sallet-buffer-special ((,class :foreground ,magenta-alt-other)))
+   `(sallet-flx-match ((,class ,@(modus-operandi-theme-extra-completions
+                                  'modus-theme-subtle-cyan
+                                  'modus-theme-refine-cyan
+                                  'modus-theme-nuanced-cyan
+                                  cyan-alt-other))))
+   `(sallet-recentf-buffer-name ((,class :foreground ,blue-nuanced)))
+   `(sallet-recentf-file-path ((,class :foreground ,fg-special-mild)))
+   `(sallet-regexp-match ((,class ,@(modus-operandi-theme-extra-completions
+                                     'modus-theme-subtle-magenta
+                                     'modus-theme-refine-magenta
+                                     'modus-theme-nuanced-magenta
+                                     magenta-alt-other))))
+   `(sallet-source-header ((,class :inherit bold :foreground ,red-alt
+                                   ,@(modus-operandi-theme-scale modus-operandi-theme-scale-4))))
+   `(sallet-substring-match ((,class ,@(modus-operandi-theme-extra-completions
+                                        'modus-theme-subtle-blue
+                                        'modus-theme-refine-blue
+                                        'modus-theme-nuanced-blue
+                                        blue-alt-other))))
+;;;;; selectrum
+   `(selectrum-current-candidate ((,class ,@(modus-operandi-theme-extra-completions
+                                             'modus-theme-refine-magenta
+                                             'modus-theme-intense-magenta
+                                             'modus-theme-nuanced-magenta
+                                             magenta
+                                             'bold))))
+   `(selectrum-primary-highlight ((,class ,@(modus-operandi-theme-extra-completions
+                                             'modus-theme-refine-blue
+                                             'modus-theme-intense-blue
+                                             'modus-theme-nuanced-blue
+                                             blue
+                                             'bold))))
+   `(selectrum-secondary-highlight ((,class ,@(modus-operandi-theme-extra-completions
+                                               'modus-theme-refine-cyan
+                                               'modus-theme-intense-cyan
+                                               'modus-theme-nuanced-cyan
+                                               cyan
+                                               'bold))))
+;;;;; semantic
+   `(semantic-complete-inline-face ((,class :foreground ,fg-special-warm :underline t)))
+   `(semantic-decoration-on-private-members-face ((,class :inherit modus-theme-refine-cyan)))
+   `(semantic-decoration-on-protected-members-face ((,class :background ,bg-dim)))
+   `(semantic-highlight-edits-face ((,class :background ,bg-alt)))
+   `(semantic-highlight-func-current-tag-face ((,class :background ,bg-alt)))
+   `(semantic-idle-symbol-highlight ((,class :inherit modus-theme-special-mild)))
+   `(semantic-tag-boundary-face ((,class :overline ,blue-intense)))
+   `(semantic-unmatched-syntax-face ((,class :underline ,fg-lang-error)))
+;;;;; sesman
+   `(sesman-browser-button-face ((,class :foreground ,blue-alt-other :underline t)))
+   `(sesman-browser-highligh-face ((,class :inherit modus-theme-subtle-blue)))
+   `(sesman-buffer-face ((,class :foreground ,magenta)))
+   `(sesman-directory-face ((,class :inherit bold :foreground ,blue)))
+   `(sesman-project-face ((,class :inherit bold :foreground ,magenta-alt-other)))
+;;;;; shell-script-mode
+   `(sh-heredoc ((,class :foreground ,blue-alt)))
+   `(sh-quoted-exec ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,magenta-alt)))
+;;;;; show-paren-mode
+   `(show-paren-match ((,class ,@(modus-operandi-theme-paren bg-paren-match
+                                                             bg-paren-match-intense)
+                               :foreground ,fg-main)))
+   `(show-paren-match-expression ((,class :inherit modus-theme-special-calm)))
+   `(show-paren-mismatch ((,class :inherit modus-theme-intense-red)))
+;;;;; side-notes
+   `(side-notes ((,class :background ,bg-dim :foreground ,fg-dim)))
+;;;;; skewer-mode
+   `(skewer-error-face ((,class :foreground ,red :underline t)))
+;;;;; smart-mode-line
+   `(sml/charging ((,class :foreground ,green-active)))
+   `(sml/discharging ((,class :foreground ,red-active)))
+   `(sml/filename ((,class :inherit bold :foreground ,blue-active)))
+   `(sml/folder ((,class :foreground ,fg-active)))
+   `(sml/git ((,class :inherit bold :foreground ,green-active)))
+   `(sml/global ((,class :foreground ,fg-active)))
+   `(sml/line-number ((,class :inherit sml/global)))
+   `(sml/minor-modes ((,class :inherit sml/global)))
+   `(sml/modes ((,class :inherit bold :foreground ,fg-active)))
+   `(sml/modified ((,class :inherit bold :foreground ,magenta-active)))
+   `(sml/mule-info ((,class :inherit sml/global)))
+   `(sml/name-filling ((,class :foreground ,yellow-active)))
+   `(sml/not-modified ((,class :inherit sml/global)))
+   `(sml/numbers-separator ((,class :inherit sml/global)))
+   `(sml/outside-modified ((,class :inherit modus-theme-intense-red)))
+   `(sml/position-percentage ((,class :inherit sml/global)))
+   `(sml/prefix ((,class :foreground ,green-active)))
+   `(sml/process ((,class :inherit sml/prefix)))
+   `(sml/projectile ((,class :inherit sml/git)))
+   `(sml/read-only ((,class :inherit bold :foreground ,cyan-active)))
+   `(sml/remote ((,class :inherit sml/global)))
+   `(sml/sudo ((,class :inherit modus-theme-subtle-red)))
+   `(sml/time ((,class :inherit sml/global)))
+   `(sml/vc ((,class :inherit sml/git)))
+   `(sml/vc-edited ((,class :inherit bold :foreground ,yellow-active)))
+;;;;; smartparens
+   `(sp-pair-overlay-face ((,class :inherit modus-theme-special-warm)))
+   `(sp-show-pair-enclosing ((,class :inherit modus-theme-special-mild)))
+   `(sp-show-pair-match-face ((,class ,@(modus-operandi-theme-paren bg-paren-match
+                                                                    bg-paren-match-intense)
+                                      :foreground ,fg-main)))
+   `(sp-show-pair-mismatch-face ((,class :inherit modus-theme-intense-red)))
+   `(sp-wrap-overlay-closing-pair ((,class :inherit sp-pair-overlay-face)))
+   `(sp-wrap-overlay-face ((,class :inherit sp-pair-overlay-face)))
+   `(sp-wrap-overlay-opening-pair ((,class :inherit sp-pair-overlay-face)))
+   `(sp-wrap-tag-overlay-face ((,class :inherit sp-pair-overlay-face)))
+;;;;; smerge
+   `(smerge-base ((,class ,@(modus-operandi-theme-diffs
+                             bg-main yellow
+                             bg-diff-focus-changed fg-diff-focus-changed))))
+   `(smerge-lower ((,class ,@(modus-operandi-theme-diffs
+                              bg-main green
+                              bg-diff-focus-added fg-diff-focus-added))))
+   `(smerge-markers ((,class :background ,bg-diff-neutral-2 :foreground ,fg-diff-neutral-2)))
+   `(smerge-refined-added ((,class ,@(modus-operandi-theme-diffs
+                                      bg-diff-added fg-diff-added
+                                      bg-diff-refine-added fg-diff-refine-added))))
+   `(smerge-refined-changed ((,class)))
+   `(smerge-refined-removed ((,class ,@(modus-operandi-theme-diffs
+                                        bg-diff-removed fg-diff-removed
+                                        bg-diff-refine-removed fg-diff-refine-removed))))
+   `(smerge-upper ((,class ,@(modus-operandi-theme-diffs
+                              bg-main red
+                              bg-diff-focus-removed fg-diff-focus-removed))))
+;;;;; spaceline
+   `(spaceline-evil-emacs ((,class :inherit modus-theme-active-magenta)))
+   `(spaceline-evil-insert ((,class :inherit modus-theme-active-green)))
+   `(spaceline-evil-motion ((,class :inherit modus-theme-active-blue)))
+   `(spaceline-evil-normal ((,class :background ,fg-alt :foreground ,bg-alt)))
+   `(spaceline-evil-replace ((,class :inherit modus-theme-active-red)))
+   `(spaceline-evil-visual ((,class :inherit modus-theme-active-cyan)))
+   `(spaceline-flycheck-error ((,class :foreground ,red-active)))
+   `(spaceline-flycheck-info ((,class :foreground ,cyan-active)))
+   `(spaceline-flycheck-warning ((,class :foreground ,yellow-active)))
+   `(spaceline-highlight-face ((,class :inherit modus-theme-fringe-blue)))
+   `(spaceline-modified ((,class :inherit modus-theme-fringe-magenta)))
+   `(spaceline-python-venv ((,class :foreground ,magenta-active)))
+   `(spaceline-read-only ((,class :inherit modus-theme-fringe-red)))
+   `(spaceline-unmodified ((,class :inherit modus-theme-fringe-cyan)))
+;;;;; speedbar
+   `(speedbar-button-face ((,class :inherit link)))
+   `(speedbar-directory-face ((,class :inherit bold :foreground ,blue)))
+   `(speedbar-file-face ((,class :foreground ,fg-main)))
+   `(speedbar-highlight-face ((,class :inherit modus-theme-subtle-blue)))
+   `(speedbar-selected-face ((,class :inherit bold :foreground ,cyan)))
+   `(speedbar-separator-face ((,class :inherit modus-theme-intense-neutral)))
+   `(speedbar-tag-face ((,class :foreground ,yellow-alt-other)))
+;;;;; spell-fu
+   `(spell-fu-incorrect-face
+     ((,(append '((supports :underline (:style wave))) class)
+       :foreground ,fg-lang-error :underline (:style wave))
+      (,class :foreground ,fg-lang-error :underline t)))
+;;;;; stripes
+   `(stripes ((,class :inherit modus-theme-hl-line)))
+;;;;; success
+   `(suggest-heading ((,class :inherit bold :foreground ,yellow-alt-other)))
+;;;;; switch-window
+   `(switch-window-background ((,class :background ,bg-dim)))
+   `(switch-window-label ((,class :height 3.0 :foreground ,blue-intense)))
+;;;;; swiper
+   `(swiper-background-match-face-1 ((,class :inherit modus-theme-subtle-neutral)))
+   `(swiper-background-match-face-2 ((,class :inherit modus-theme-subtle-cyan)))
+   `(swiper-background-match-face-3 ((,class :inherit modus-theme-subtle-magenta)))
+   `(swiper-background-match-face-4 ((,class :inherit modus-theme-subtle-green)))
+   `(swiper-line-face ((,class ,@(and (>= emacs-major-version 27) '(:extend t))
+                               :inherit modus-theme-special-cold)))
+   `(swiper-match-face-1 ((,class :inherit swiper-line-face)))
+   `(swiper-match-face-2 ((,class :inherit swiper-line-face)))
+   `(swiper-match-face-3 ((,class :inherit swiper-line-face)))
+   `(swiper-match-face-4 ((,class :inherit swiper-line-face)))
+;;;;; swoop
+   `(swoop-face-header-format-line ((,class :inherit bold :foreground ,red-alt
+                                            ,@(modus-operandi-theme-scale modus-operandi-theme-scale-3))))
+   `(swoop-face-line-buffer-name ((,class :inherit bold :foreground ,blue-alt
+                                          ,@(modus-operandi-theme-scale modus-operandi-theme-scale-4))))
+   `(swoop-face-line-number ((,class :foreground ,fg-special-warm)))
+   `(swoop-face-target-line ((,class :inherit modus-theme-intense-blue
+                                     ,@(and (>= emacs-major-version 27) '(:extend t)))))
+   `(swoop-face-target-words ((,class :inherit modus-theme-refine-cyan)))
+;;;;; sx
+   `(sx-inbox-item-type ((,class :foreground ,magenta-alt-other)))
+   `(sx-inbox-item-type-unread ((,class :inherit (sx-inbox-item-type bold))))
+   `(sx-question-list-answers ((,class :foreground ,green)))
+   `(sx-question-list-answers-accepted ((,class :box t :foreground ,green)))
+   `(sx-question-list-bounty ((,class :inherit bold :background ,bg-alt :foreground ,yellow)))
+   `(sx-question-list-date ((,class :foreground ,fg-special-cold)))
+   `(sx-question-list-favorite ((,class :inherit bold :foreground ,fg-special-warm)))
+   `(sx-question-list-parent ((,class :foreground ,fg-main)))
+   `(sx-question-list-read-question ((,class :foreground ,fg-alt)))
+   `(sx-question-list-score ((,class :foreground ,fg-special-mild)))
+   `(sx-question-list-score-upvoted ((,class :inherit (sx-question-list-score bold))))
+   `(sx-question-list-unread-question ((,class :inherit bold :foreground ,fg-main)))
+   `(sx-question-mode-accepted ((,class :inherit bold :height 1.3 :foreground ,green)))
+   `(sx-question-mode-closed ((,class :inherit modus-theme-active-yellow :box (:line-width 2 :color nil))))
+   `(sx-question-mode-closed-reason ((,class :box (:line-width 2 :color nil) :foreground ,fg-main)))
+   `(sx-question-mode-content-face ((,class :background ,bg-dim)))
+   `(sx-question-mode-date ((,class :foreground ,blue)))
+   `(sx-question-mode-header ((,class :inherit bold :foreground ,cyan)))
+   `(sx-question-mode-kbd-tag ((,class :inherit bold :height 0.9 :box (:line-width 3 :color ,fg-main :style released-button) :foreground ,fg-main)))
+   `(sx-question-mode-score ((,class :foreground ,fg-dim)))
+   `(sx-question-mode-score-downvoted ((,class :foreground ,yellow)))
+   `(sx-question-mode-score-upvoted ((,class :inherit bold :foreground ,magenta)))
+   `(sx-question-mode-title ((,class :inherit bold :foreground ,fg-main)))
+   `(sx-question-mode-title-comments ((,class :inherit bold :foreground ,fg-alt)))
+   `(sx-tag ((,class :foreground ,magenta-alt)))
+   `(sx-user-name ((,class :foreground ,blue-alt)))
+   `(sx-user-reputation ((,class :foreground ,fg-alt)))
+;;;;; symbol-overlay
+   `(symbol-overlay-default-face ((,class :inherit modus-theme-special-warm)))
+   `(symbol-overlay-face-1 ((,class :inherit modus-theme-intense-blue)))
+   `(symbol-overlay-face-2 ((,class :inherit modus-theme-refine-magenta)))
+   `(symbol-overlay-face-3 ((,class :inherit modus-theme-intense-yellow)))
+   `(symbol-overlay-face-4 ((,class :inherit modus-theme-intense-magenta)))
+   `(symbol-overlay-face-5 ((,class :inherit modus-theme-intense-red)))
+   `(symbol-overlay-face-6 ((,class :inherit modus-theme-refine-red)))
+   `(symbol-overlay-face-7 ((,class :inherit modus-theme-intense-cyan)))
+   `(symbol-overlay-face-8 ((,class :inherit modus-theme-refine-cyan)))
+;;;;; syslog-mode
+   `(syslog-debug ((,class :inherit bold :foreground ,cyan-alt-other)))
+   `(syslog-error ((,class :inherit bold :foreground ,red)))
+   `(syslog-file ((,class :inherit bold :foreground ,fg-special-cold)))
+   `(syslog-hide ((,class :background ,bg-main :foreground ,fg-main)))
+   `(syslog-hour ((,class :inherit bold :foreground ,magenta-alt-other)))
+   `(syslog-info ((,class :inherit bold :foreground ,blue-alt-other)))
+   `(syslog-ip ((,class :inherit bold :foreground ,fg-special-mild :underline t)))
+   `(syslog-su ((,class :inherit bold :foreground ,red-alt)))
+   `(syslog-warn ((,class :inherit bold :foreground ,yellow)))
+;;;;; table (built-in table.el)
+   `(table-cell ((,class :background ,blue-nuanced-bg)))
+;;;;; telephone-line
+   `(telephone-line-accent-active ((,class :background ,fg-inactive :foreground ,bg-inactive)))
+   `(telephone-line-accent-inactive ((,class :background ,bg-active :foreground ,fg-active)))
+   `(telephone-line-error ((,class :inherit bold :foreground ,red-active)))
+   `(telephone-line-evil ((,class :foreground ,fg-main)))
+   `(telephone-line-evil-emacs ((,class :inherit telephone-line-evil :background ,magenta-intense-bg)))
+   `(telephone-line-evil-insert ((,class :inherit telephone-line-evil :background ,green-intense-bg)))
+   `(telephone-line-evil-motion ((,class :inherit telephone-line-evil :background ,yellow-intense-bg)))
+   `(telephone-line-evil-normal ((,class :inherit telephone-line-evil :background ,bg-alt)))
+   `(telephone-line-evil-operator ((,class :inherit telephone-line-evil :background ,yellow-subtle-bg)))
+   `(telephone-line-evil-replace ((,class :inherit telephone-line-evil :background ,red-intense-bg)))
+   `(telephone-line-evil-visual ((,class :inherit telephone-line-evil :background ,cyan-intense-bg)))
+   `(telephone-line-projectile ((,class :foreground ,cyan-active)))
+   `(telephone-line-unimportant ((,class :foreground ,fg-inactive)))
+   `(telephone-line-warning ((,class :inherit bold :foreground ,yellow-active)))
+;;;;; term
+   `(term ((,class :background ,bg-main :foreground ,fg-main)))
+   `(term-bold ((,class :inherit bold)))
+   `(term-color-blue ((,class :background ,blue :foreground ,blue)))
+   `(term-color-cyan ((,class :background ,cyan :foreground ,cyan)))
+   `(term-color-green ((,class :background ,green :foreground ,green)))
+   `(term-color-magenta ((,class :background ,magenta :foreground ,magenta)))
+   `(term-color-red ((,class :background ,red :foreground ,red)))
+   `(term-color-yellow ((,class :background ,yellow :foreground ,yellow)))
+   `(term-underline ((,class :underline t)))
+;;;;; tomatinho
+   `(tomatinho-ok-face ((,class :foreground ,blue-intense)))
+   `(tomatinho-pause-face ((,class :foreground ,yellow-intense)))
+   `(tomatinho-reset-face ((,class :foreground ,fg-alt)))
+;;;;; transient
+   `(transient-active-infix ((,class :inherit modus-theme-special-mild)))
+   `(transient-amaranth ((,class :inherit bold :foreground ,yellow)))
+   `(transient-argument ((,class :inherit bold :foreground ,red-alt)))
+   `(transient-blue ((,class :inherit bold :foreground ,blue)))
+   `(transient-disabled-suffix ((,class :inherit modus-theme-intense-red)))
+   `(transient-enabled-suffix ((,class :inherit modus-theme-intense-green)))
+   `(transient-heading ((,class :inherit bold :foreground ,fg-main)))
+   `(transient-inactive-argument ((,class :foreground ,fg-alt)))
+   `(transient-inactive-value ((,class :foreground ,fg-alt)))
+   `(transient-key ((,class :inherit bold :foreground ,blue)))
+   `(transient-mismatched-key ((,class :underline t)))
+   `(transient-nonstandard-key ((,class :underline t)))
+   `(transient-pink ((,class :inherit bold :foreground ,magenta)))
+   `(transient-red ((,class :inherit bold :foreground ,red-intense)))
+   `(transient-teal ((,class :inherit bold :foreground ,cyan-alt-other)))
+   `(transient-unreachable ((,class :foreground ,fg-unfocused)))
+   `(transient-unreachable-key ((,class :foreground ,fg-unfocused)))
+   `(transient-value ((,class :foreground ,magenta-alt)))
+;;;;; trashed
+   `(trashed-deleted ((,class :inherit modus-theme-mark-del)))
+   `(trashed-directory ((,class :foreground ,blue)))
+   `(trashed-mark ((,class :inherit modus-theme-mark-symbol)))
+   `(trashed-marked ((,class :inherit modus-theme-mark-alt)))
+   `(trashed-restored ((,class :inherit modus-theme-mark-sel)))
+   `(trashed-symlink ((,class :foreground ,cyan-alt :underline t)))
+;;;;; treemacs
+   `(treemacs-directory-collapsed-face ((,class :foreground ,magenta-alt)))
+   `(treemacs-directory-face ((,class :inherit dired-directory)))
+   `(treemacs-file-face ((,class :foreground ,fg-main)))
+   `(treemacs-fringe-indicator-face ((,class :foreground ,fg-main)))
+   `(treemacs-git-added-face ((,class :foreground ,green-intense)))
+   `(treemacs-git-conflict-face ((,class :inherit (modus-theme-intense-red bold))))
+   `(treemacs-git-ignored-face ((,class :foreground ,fg-alt)))
+   `(treemacs-git-modified-face ((,class :foreground ,yellow-alt-other)))
+   `(treemacs-git-renamed-face ((,class :foreground ,cyan-alt-other)))
+   `(treemacs-git-unmodified-face ((,class :foreground ,fg-main)))
+   `(treemacs-git-untracked-face ((,class :foreground ,red-alt-other)))
+   `(treemacs-help-column-face ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,magenta-alt-other :underline t)))
+   `(treemacs-help-title-face ((,class :foreground ,blue-alt-other)))
+   `(treemacs-on-failure-pulse-face ((,class :inherit modus-theme-intense-red)))
+   `(treemacs-on-success-pulse-face ((,class :inherit modus-theme-intense-green)))
+   `(treemacs-root-face ((,class :inherit bold :foreground ,blue-alt-other :height 1.2 :underline t)))
+   `(treemacs-root-remote-disconnected-face ((,class :inherit treemacs-root-remote-face :foreground ,yellow)))
+   `(treemacs-root-remote-face ((,class :inherit treemacs-root-face :foreground ,magenta)))
+   `(treemacs-root-remote-unreadable-face ((,class :inherit treemacs-root-unreadable-face)))
+   `(treemacs-root-unreadable-face ((,class :inherit treemacs-root-face :strike-through t)))
+   `(treemacs-tags-face ((,class :foreground ,blue-alt)))
+   `(treemacs-tags-face ((,class :foreground ,magenta-alt)))
+;;;;; tty-menu
+   `(tty-menu-disabled-face ((,class :background ,bg-alt :foreground ,fg-alt)))
+   `(tty-menu-enabled-face ((,class :inherit bold :background ,bg-alt :foreground ,fg-main)))
+   `(tty-menu-selected-face ((,class :inherit modus-theme-intense-blue)))
+;;;;; tuareg
+   `(caml-types-def-face ((,class :inherit modus-theme-subtle-red)))
+   `(caml-types-expr-face ((,class :inherit modus-theme-subtle-green)))
+   `(caml-types-occ-face ((,class :inherit modus-theme-subtle-green)))
+   `(caml-types-scope-face ((,class :inherit modus-theme-subtle-blue)))
+   `(caml-types-typed-face ((,class :inherit modus-theme-subtle-magenta)))
+   `(tuareg-font-double-semicolon-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                                   red-alt red-alt-faint))))
+   `(tuareg-font-lock-attribute-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                                 magenta magenta-faint))))
+   `(tuareg-font-lock-constructor-face ((,class :foreground ,fg-main)))
+   `(tuareg-font-lock-error-face ((,class :inherit (modus-theme-intense-red bold))))
+   `(tuareg-font-lock-extension-node-face ((,class :background ,bg-alt :foreground ,magenta)))
+   `(tuareg-font-lock-governing-face ((,class :inherit bold :foreground ,fg-main)))
+   `(tuareg-font-lock-infix-extension-node-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                                            magenta magenta-faint))))
+   `(tuareg-font-lock-interactive-directive-face ((,class :foreground ,fg-special-cold)))
+   `(tuareg-font-lock-interactive-error-face ((,class :inherit bold
+                                                      ,@(modus-operandi-theme-syntax-foreground
+                                                         red red-faint))))
+   `(tuareg-font-lock-interactive-output-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                                          blue-alt-other blue-alt-other-faint))))
+   `(tuareg-font-lock-label-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                             cyan-alt-other cyan-alt-other-faint))))
+   `(tuareg-font-lock-line-number-face ((,class :foreground ,fg-special-warm)))
+   `(tuareg-font-lock-module-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                              magenta-alt magenta-alt-faint))))
+   `(tuareg-font-lock-multistage-face ((,class :inherit bold :background ,bg-alt
+                                               ,@(modus-operandi-theme-syntax-foreground
+                                                  blue blue-faint))))
+   `(tuareg-font-lock-operator-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                                red-alt red-alt-faint))))
+   `(tuareg-opam-error-face ((,class :inherit bold
+                                     ,@(modus-operandi-theme-syntax-foreground
+                                        red red-faint))))
+   `(tuareg-opam-pkg-variable-name-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                                    cyan cyan-faint)
+                                                 :slant ,modus-theme-slant)))
+;;;;; undo-tree
+   `(undo-tree-visualizer-active-branch-face ((,class :inherit bold :foreground ,fg-main)))
+   `(undo-tree-visualizer-current-face ((,class :foreground ,blue-intense)))
+   `(undo-tree-visualizer-default-face ((,class :foreground ,fg-alt)))
+   `(undo-tree-visualizer-register-face ((,class :foreground ,magenta-intense)))
+   `(undo-tree-visualizer-unmodified-face ((,class :foreground ,green-intense)))
+;;;;; vc
+   `(vc-conflict-state ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,red-active)))
+   `(vc-edited-state ((,class :foreground ,fg-special-warm)))
+   `(vc-locally-added-state ((,class :foreground ,cyan-active)))
+   `(vc-locked-state ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,magenta-active)))
+   `(vc-missing-state ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,yellow-active)))
+   `(vc-needs-update-state ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,fg-special-mild)))
+   `(vc-removed-state ((,class :foreground ,red-active)))
+   `(vc-state-base ((,class :foreground ,fg-active)))
+   `(vc-up-to-date-state ((,class :foreground ,fg-special-cold)))
+;;;;; vdiff
+   `(vdiff-addition-face ((,class ,@(modus-operandi-theme-diffs
+                                     bg-main green
+                                     bg-diff-focus-added fg-diff-focus-added))))
+   `(vdiff-change-face ((,class ,@(modus-operandi-theme-diffs
+                                   bg-main yellow
+                                   bg-diff-focus-changed fg-diff-focus-changed))))
+   `(vdiff-closed-fold-face ((,class :background ,bg-diff-neutral-1 :foreground ,fg-diff-neutral-1)))
+   `(vdiff-refine-added ((,class ,@(modus-operandi-theme-diffs
+                                    bg-diff-added fg-diff-added
+                                    bg-diff-refine-added fg-diff-refine-added))))
+   `(vdiff-refine-changed ((,class ,@(modus-operandi-theme-diffs
+                                      bg-diff-changed fg-diff-changed
+                                      bg-diff-refine-changed fg-diff-refine-changed))))
+   `(vdiff-subtraction-face ((,class ,@(modus-operandi-theme-diffs
+                                        bg-main red
+                                        bg-diff-focus-removed fg-diff-focus-removed))))
+   `(vdiff-target-face ((,class :inherit modus-theme-intense-blue)))
+;;;;; vimish-fold
+   `(vimish-fold-fringe ((,class :foreground ,cyan-active)))
+   `(vimish-fold-mouse-face ((,class :inherit modus-theme-intense-blue)))
+   `(vimish-fold-overlay ((,class :background ,bg-alt :foreground ,fg-special-cold)))
+;;;;; visible-mark
+   `(visible-mark-active ((,class :background ,blue-intense-bg)))
+   `(visible-mark-face1 ((,class :background ,cyan-intense-bg)))
+   `(visible-mark-face2 ((,class :background ,yellow-intense-bg)))
+   `(visible-mark-forward-face1 ((,class :background ,magenta-intense-bg)))
+   `(visible-mark-forward-face2 ((,class :background ,green-intense-bg)))
+;;;;; visual-regexp
+   `(vr/group-0 ((,class :inherit modus-theme-intense-blue)))
+   `(vr/group-1 ((,class :inherit modus-theme-intense-magenta)))
+   `(vr/group-2 ((,class :inherit modus-theme-intense-green)))
+   `(vr/match-0 ((,class :inherit modus-theme-refine-yellow)))
+   `(vr/match-1 ((,class :inherit modus-theme-refine-yellow)))
+   `(vr/match-separator-face ((,class :inherit (modus-theme-intense-neutral bold))))
+;;;;; volatile-highlights
+   `(vhl/default-face ((,class ,@(and (>= emacs-major-version 27) '(:extend t))
+                               :background ,bg-alt :foreground ,blue-nuanced)))
+;;;;; vterm
+   `(vterm-color-black ((,class :background "black" :foreground "black")))
+   `(vterm-color-blue ((,class :background ,blue :foreground ,blue)))
+   `(vterm-color-cyan ((,class :background ,cyan :foreground ,cyan)))
+   `(vterm-color-default ((,class :background ,bg-main :foreground ,fg-main)))
+   `(vterm-color-green ((,class :background ,green :foreground ,green)))
+   `(vterm-color-inverse-video ((,class :background ,bg-main :inverse-video t)))
+   `(vterm-color-magenta ((,class :background ,magenta :foreground ,magenta)))
+   `(vterm-color-red ((,class :background ,red :foreground ,red)))
+   `(vterm-color-underline ((,class :foreground ,fg-special-warm :underline t)))
+   `(vterm-color-white ((,class :background "white" :foreground "white")))
+   `(vterm-color-yellow ((,class :background ,yellow :foreground ,yellow)))
+;;;;; wcheck-mode
+   `(wcheck-default-face ((,class :foreground ,red :underline t)))
+;;;;; web-mode
+   `(web-mode-annotation-face ((,class :inherit web-mode-comment-face)))
+   `(web-mode-annotation-html-face ((,class :inherit web-mode-comment-face)))
+   `(web-mode-annotation-tag-face ((,class :inherit web-mode-comment-face :underline t)))
+   `(web-mode-block-attr-name-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                               blue blue-faint))))
+   `(web-mode-block-attr-value-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                                cyan-alt-other cyan-alt-other-faint))))
+   `(web-mode-block-comment-face ((,class :inherit web-mode-comment-face)))
+   `(web-mode-block-control-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                             magenta-alt magenta-alt-faint)
+                                          ,@(modus-operandi-theme-bold-weight))))
+   `(web-mode-block-delimiter-face ((,class :foreground ,fg-main)))
+   `(web-mode-block-face ((,class :background ,bg-dim)))
+   `(web-mode-block-string-face ((,class :inherit web-mode-string-face)))
+   `(web-mode-bold-face ((,class :inherit bold)))
+   `(web-mode-builtin-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                       magenta-alt magenta-alt-faint)
+                                    ,@(modus-operandi-theme-bold-weight))))
+   `(web-mode-comment-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
+   `(web-mode-comment-keyword-face ((,class :inherit bold :background ,bg-dim
+                                            ,@(modus-operandi-theme-syntax-foreground
+                                               yellow yellow-faint))))
+   `(web-mode-constant-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                        blue-alt-other blue-alt-other-faint))))
+   `(web-mode-css-at-rule-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                           blue-alt-other blue-alt-other-faint))))
+   `(web-mode-css-color-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                         magenta-alt magenta-alt-faint)
+                                      ,@(modus-operandi-theme-bold-weight))))
+   `(web-mode-css-comment-face ((,class :inherit web-mode-comment-face)))
+   `(web-mode-css-function-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                            magenta-alt magenta-alt-faint)
+                                         ,@(modus-operandi-theme-bold-weight))))
+   `(web-mode-css-priority-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                            yellow-alt yellow-alt-faint)
+                                         ,@(modus-operandi-theme-bold-weight))))
+   `(web-mode-css-property-name-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                                 cyan cyan-faint))))
+   `(web-mode-css-pseudo-class-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                                cyan-alt-other cyan-alt-other-faint))))
+   `(web-mode-css-selector-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                            magenta-alt-other magenta-alt-other-faint)
+                                         ,@(modus-operandi-theme-bold-weight))))
+   `(web-mode-css-string-face ((,class :inherit web-mode-string-face)))
+   `(web-mode-css-variable-face ((,class :foreground ,fg-special-warm)))
+   `(web-mode-current-column-highlight-face ((,class :background ,bg-alt)))
+   `(web-mode-current-element-highlight-face ((,class :inherit modus-theme-special-mild)))
+   `(web-mode-doctype-face ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
+   `(web-mode-error-face ((,class :inherit modus-theme-intense-red)))
+   `(web-mode-filter-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                      magenta magenta-faint))))
+   `(web-mode-folded-face ((,class :underline t)))
+   `(web-mode-function-call-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                             magenta magenta-faint))))
+   `(web-mode-function-name-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                             magenta magenta-faint))))
+   `(web-mode-html-attr-custom-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                                cyan cyan-faint))))
+   `(web-mode-html-attr-engine-face ((,class :foreground ,fg-main)))
+   `(web-mode-html-attr-equal-face ((,class :foreground ,fg-main)))
+   `(web-mode-html-attr-name-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                              cyan cyan-faint))))
+   `(web-mode-html-attr-value-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                               blue-alt-other blue-alt-other-faint))))
+   `(web-mode-html-entity-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                           yellow-alt-other yellow-alt-other-faint)
+                                        :slant ,modus-theme-slant)))
+   `(web-mode-html-tag-bracket-face ((,class :foreground ,fg-dim)))
+   `(web-mode-html-tag-custom-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                               magenta magenta-faint))))
+   `(web-mode-html-tag-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                        magenta magenta-faint))))
+   `(web-mode-html-tag-namespaced-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                                   magenta-alt magenta-alt-faint)
+                                                ,@(modus-operandi-theme-bold-weight))))
+   `(web-mode-html-tag-unclosed-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                                 red red-faint)
+                                              :underline t)))
+   `(web-mode-inlay-face ((,class :background ,bg-alt)))
+   `(web-mode-italic-face ((,class :slant italic)))
+   `(web-mode-javascript-comment-face ((,class :inherit web-mode-comment-face)))
+   `(web-mode-javascript-string-face ((,class :inherit web-mode-string-face)))
+   `(web-mode-json-comment-face ((,class :inherit web-mode-comment-face)))
+   `(web-mode-json-context-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                            magenta-alt magenta-alt-faint))))
+   `(web-mode-json-key-face ((,class :foreground ,blue-nuanced)))
+   `(web-mode-json-string-face ((,class :inherit web-mode-string-face)))
+   `(web-mode-jsx-depth-1-face ((,class :background ,blue-intense-bg :foreground ,fg-main)))
+   `(web-mode-jsx-depth-2-face ((,class :background ,blue-subtle-bg :foreground ,fg-main)))
+   `(web-mode-jsx-depth-3-face ((,class :background ,bg-special-cold :foreground ,fg-special-cold)))
+   `(web-mode-jsx-depth-4-face ((,class :background ,bg-alt :foreground ,blue-refine-fg)))
+   `(web-mode-jsx-depth-5-face ((,class :background ,bg-alt :foreground ,blue-nuanced)))
+   `(web-mode-keyword-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                       magenta-alt-other magenta-alt-other-faint)
+                                    ,@(modus-operandi-theme-bold-weight))))
+   `(web-mode-param-name-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                          magenta magenta-faint))))
+   `(web-mode-part-comment-face ((,class :inherit web-mode-comment-face)))
+   `(web-mode-part-face ((,class :inherit web-mode-block-face)))
+   `(web-mode-part-string-face ((,class :inherit web-mode-string-face)))
+   `(web-mode-preprocessor-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                            red-alt-other red-alt-other-faint))))
+   `(web-mode-script-face ((,class :inherit web-mode-part-face)))
+   `(web-mode-sql-keyword-face ((,class :inherit bold
+                                        ,@(modus-operandi-theme-syntax-foreground
+                                           yellow yellow-faint))))
+   `(web-mode-string-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                      blue-alt blue-alt-faint))))
+   `(web-mode-style-face ((,class :inherit web-mode-part-face)))
+   `(web-mode-symbol-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                      blue-alt-other blue-alt-other-faint))))
+   `(web-mode-type-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                    magenta-alt magenta-alt-faint))))
+   `(web-mode-underline-face ((,class :underline t)))
+   `(web-mode-variable-name-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                             cyan cyan-faint))))
+   `(web-mode-warning-face ((,class :inherit bold :background ,bg-alt
+                                    ,@(modus-operandi-theme-syntax-foreground
+                                       yellow-alt-other yellow-alt-other-faint))))
+   `(web-mode-whitespace-face ((,class :background ,bg-whitespace :foreground ,fg-whitespace)))
+;;;;; wgrep
+   `(wgrep-delete-face ((,class :inherit modus-theme-refine-yellow)))
+   `(wgrep-done-face ((,class :inherit modus-theme-refine-blue)))
+   `(wgrep-face ((,class :inherit modus-theme-refine-green)))
+   `(wgrep-file-face ((,class :foreground ,fg-special-warm)))
+   `(wgrep-reject-face ((,class :inherit (modus-theme-intense-red bold))))
+;;;;; which-function-mode
+   `(which-func ((,class :foreground ,magenta-active)))
+;;;;; which-key
+   `(which-key-command-description-face ((,class :foreground ,cyan)))
+   `(which-key-group-description-face ((,class :foreground ,magenta-alt)))
+   `(which-key-highlighted-command-face ((,class :foreground ,cyan-alt :underline t)))
+   `(which-key-key-face ((,class :inherit bold :foreground ,blue-intense)))
+   `(which-key-local-map-description-face ((,class :foreground ,fg-main)))
+   `(which-key-note-face ((,class :background ,bg-dim :foreground ,fg-special-mild)))
+   `(which-key-separator-face ((,class :foreground ,fg-alt)))
+   `(which-key-special-key-face ((,class :inherit bold :foreground ,yellow-intense)))
+;;;;; whitespace-mode
+   `(whitespace-big-indent ((,class :inherit modus-theme-subtle-red)))
+   `(whitespace-empty ((,class :inherit modus-theme-intense-magenta)))
+   `(whitespace-hspace ((,class :background ,bg-whitespace :foreground ,fg-whitespace)))
+   `(whitespace-indentation ((,class :background ,bg-whitespace :foreground ,fg-whitespace)))
+   `(whitespace-line ((,class :inherit modus-theme-special-warm)))
+   `(whitespace-newline ((,class :background ,bg-whitespace :foreground ,fg-whitespace)))
+   `(whitespace-space ((,class :background ,bg-whitespace :foreground ,fg-whitespace)))
+   `(whitespace-space-after-tab ((,class :inherit modus-theme-subtle-magenta)))
+   `(whitespace-space-before-tab ((,class :inherit modus-theme-subtle-cyan)))
+   `(whitespace-tab ((,class :background ,bg-whitespace :foreground ,fg-whitespace)))
+   `(whitespace-trailing ((,class :inherit modus-theme-intense-red)))
+;;;;; window-divider-mode
+   `(window-divider ((,class :foreground ,fg-window-divider-inner)))
+   `(window-divider-first-pixel ((,class :foreground ,fg-window-divider-outer)))
+   `(window-divider-last-pixel ((,class :foreground ,fg-window-divider-outer)))
+;;;;; winum
+   `(winum-face ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,cyan-active)))
+;;;;; writegood-mode
+   `(writegood-duplicates-face ((,class :background ,bg-alt :foreground ,red-alt :underline t)))
+   `(writegood-passive-voice-face ((,class :foreground ,yellow-nuanced :underline ,fg-lang-warning)))
+   `(writegood-weasels-face ((,class :foreground ,red-nuanced :underline ,fg-lang-error)))
+;;;;; woman
+   `(woman-addition ((,class :foreground ,magenta-alt-other)))
+   `(woman-bold ((,class :inherit bold :foreground ,magenta)))
+   `(woman-italic ((,class :foreground ,cyan :slant italic)))
+   `(woman-unknown ((,class :foreground ,yellow :slant italic)))
+;;;;; xah-elisp-mode
+   `(xah-elisp-at-symbol ((,class :inherit bold
+                                  ,@(modus-operandi-theme-syntax-foreground
+                                     red-alt red-alt-faint))))
+   `(xah-elisp-cap-variable ((,class ,@(modus-operandi-theme-syntax-foreground
+                                        red-alt-other red-alt-other-faint))))
+   `(xah-elisp-command-face ((,class ,@(modus-operandi-theme-syntax-foreground
+                                        cyan-alt-other cyan-alt-other-faint))))
+   `(xah-elisp-dollar-symbol ((,class ,@(modus-operandi-theme-syntax-foreground
+                                         green green-faint))))
+;;;;; xref
+   `(xref-file-header ((,class :inherit bold :foreground ,fg-special-cold)))
+   `(xref-line-number ((,class :foreground ,fg-alt)))
+   `(xref-match ((,class :inherit match)))
+;;;;; yaml-mode
+   `(yaml-tab-face ((,class :inherit modus-theme-intense-red)))
+;;;;; yasnippet
+   `(yas-field-highlight-face ((,class :background ,bg-alt :foreground ,fg-main)))
+;;;;; ztree
+   `(ztreep-arrow-face ((,class :foreground ,fg-inactive)))
+   `(ztreep-diff-header-face ((,class :inherit bold :height 1.2 :foreground ,fg-special-cold)))
+   `(ztreep-diff-header-small-face ((,class :inherit bold :foreground ,fg-special-mild)))
+   `(ztreep-diff-model-add-face ((,class :foreground ,green)))
+   `(ztreep-diff-model-diff-face ((,class :foreground ,red)))
+   `(ztreep-diff-model-ignored-face ((,class :foreground ,fg-alt :strike-through t)))
+   `(ztreep-diff-model-normal-face ((,class :foreground ,fg-alt)))
+   `(ztreep-expand-sign-face ((,class :foreground ,blue)))
+   `(ztreep-header-face ((,class :inherit bold :height 1.2 :foreground ,fg-special-cold)))
+   `(ztreep-leaf-face ((,class :foreground ,cyan)))
+   `(ztreep-node-count-children-face ((,class :foreground ,fg-special-warm)))
+   `(ztreep-node-face ((,class :foreground ,fg-main))))
+;;;; Emacs 27+
+  ;; EXPERIMENTAL this form is subject to review
+  (when (>= emacs-major-version 27)
+    (custom-theme-set-faces
+     'modus-operandi
+;;;;; line numbers (`display-line-numbers-mode' and global variant)
+     ;; NOTE that this is specifically for the faces that were
+     ;; introduced in Emacs 27, as the other faces are already
+     ;; supported.
+     `(line-number-major-tick ((,class (:background ,yellow-nuanced-bg :foreground ,yellow-nuanced))))
+     `(line-number-minor-tick ((,class (:background ,cyan-nuanced-bg :foreground ,cyan-nuanced))))
+;;;;; tab-bar-mode
+     `(tab-bar ((,class :background ,bg-tab-bar :foreground ,fg-main)))
+     `(tab-bar-tab ((,class :inherit bold :box (:line-width 2 :color ,bg-tab-active)
+                            :background ,bg-tab-active :foreground ,fg-main)))
+     `(tab-bar-tab-inactive ((,class :box (:line-width 2 :color ,bg-tab-inactive)
+                                     :background ,bg-tab-inactive :foreground ,fg-dim)))
+;;;;; tab-line-mode
+     `(tab-line ((,class :height 0.95 :background ,bg-tab-bar :foreground ,fg-main)))
+     `(tab-line-close-highlight ((,class :foreground ,red)))
+     `(tab-line-highlight ((,class :background ,blue-subtle-bg :foreground ,fg-dim)))
+     `(tab-line-tab ((,class :inherit bold :box (:line-width 2 :color ,bg-tab-active)
+                             :background ,bg-tab-active :foreground ,fg-main)))
+     `(tab-line-tab-current ((,class :inherit tab-line-tab)))
+     `(tab-line-tab-inactive ((,class :box (:line-width 2 :color ,bg-tab-inactive)
+                                      :background ,bg-tab-inactive :foreground ,fg-dim)))))
+;;; variables
+  (custom-theme-set-variables
+   'modus-operandi
+;;;; ansi-colors
+   `(ansi-color-faces-vector [default bold shadow italic underline success warning error])
+   `(ansi-color-names-vector [,fg-main ,red ,green ,yellow ,blue ,magenta ,cyan ,bg-main])
+;;;; flymake fringe indicators
+   `(flymake-error-bitmap '(flymake-double-exclamation-mark modus-theme-fringe-red))
+   `(flymake-warning-bitmap '(exclamation-mark modus-theme-fringe-yellow))
+   `(flymake-note-bitmap '(exclamation-mark modus-theme-fringe-cyan))
+;;;; ibuffer
+   `(ibuffer-deletion-face 'modus-theme-mark-del)
+   `(ibuffer-filter-group-name-face 'modus-theme-mark-symbol)
+   `(ibuffer-marked-face 'modus-theme-mark-sel)
+   `(ibuffer-title-face 'modus-theme-header)
+;;;; highlight-tail
+   `(highlight-tail-colors
+     '((,green-subtle-bg . 0)
+       (,cyan-subtle-bg . 20)))
+;;;; hl-todo
+   `(hl-todo-keyword-faces
+     '(("HOLD" . ,yellow-alt)
+       ("TODO" . ,magenta)
+       ("NEXT" . ,magenta-alt-other)
+       ("THEM" . ,magenta-alt)
+       ("PROG" . ,cyan)
+       ("OKAY" . ,cyan-alt)
+       ("DONT" . ,green-alt)
+       ("FAIL" . ,red)
+       ("BUG" . ,red)
+       ("DONE" . ,green)
+       ("NOTE" . ,yellow-alt-other)
+       ("KLUDGE" . ,yellow)
+       ("HACK" . ,yellow)
+       ("TEMP" . ,red-nuanced)
+       ("FIXME" . ,red-alt-other)
+       ("XXX+" . ,red-alt)
+       ("REVIEW" . ,cyan-alt-other)
+       ("DEPRECATED" . ,blue-nuanced)))
+;;;; vc-annotate (C-x v g)
+   `(vc-annotate-background nil)
+   `(vc-annotate-background-mode nil)
+   `(vc-annotate-color-map
+     '((20 . ,red)
+       (40 . ,magenta)
+       (60 . ,magenta-alt)
+       (80 . ,red-alt)
+       (100 . ,yellow)
+       (120 . ,yellow-alt)
+       (140 . ,fg-special-warm)
+       (160 . ,fg-special-mild)
+       (180 . ,green)
+       (200 . ,green-alt)
+       (220 . ,cyan-alt-other)
+       (240 . ,cyan-alt)
+       (260 . ,cyan)
+       (280 . ,fg-special-cold)
+       (300 . ,blue)
+       (320 . ,blue-alt)
+       (340 . ,blue-alt-other)
+       (360 . ,magenta-alt-other)))
+   `(vc-annotate-very-old-color nil)
+;;;; xterm-color
+   `(xterm-color-names [,fg-main ,red ,green ,yellow ,blue ,magenta ,cyan ,bg-alt])
+   `(xterm-color-names-bright [,fg-alt ,red-alt ,green-alt ,yellow-alt ,blue-alt ,magenta-alt ,cyan-alt ,bg-main]))
+;;; Conditional theme variables
+;;;; org-src-block-faces
+  ;; this is a user option to add a colour-coded background to source
+  ;; blocks for various programming languages
+  (when (eq modus-operandi-theme-org-blocks 'rainbow)
+    (custom-theme-set-variables
+     'modus-operandi
+     `(org-src-block-faces              ; TODO this list should be expanded
+       `(("emacs-lisp" modus-theme-nuanced-magenta)
+         ("elisp" modus-theme-nuanced-magenta)
+         ("clojure" modus-theme-nuanced-magenta)
+         ("clojurescript" modus-theme-nuanced-magenta)
+         ("c" modus-theme-nuanced-blue)
+         ("c++" modus-theme-nuanced-blue)
+         ("sh" modus-theme-nuanced-green)
+         ("shell" modus-theme-nuanced-green)
+         ("html" modus-theme-nuanced-yellow)
+         ("xml" modus-theme-nuanced-yellow)
+         ("css" modus-theme-nuanced-red)
+         ("scss" modus-theme-nuanced-red)
+         ("python" modus-theme-nuanced-green)
+         ("ipython" modus-theme-nuanced-magenta)
+         ("r" modus-theme-nuanced-cyan)
+         ("yaml" modus-theme-nuanced-cyan)
+         ("conf" modus-theme-nuanced-cyan)
+         ("docker" modus-theme-nuanced-cyan)
+         ("json" modus-theme-nuanced-cyan))))))
+
+;;; library provides
+;;;###autoload
+(when load-file-name
+  (add-to-list 'custom-theme-load-path
+               (file-name-as-directory (file-name-directory load-file-name))))
+
+(provide-theme 'modus-operandi)
+
+(provide 'modus-operandi-theme)
+
+;;; modus-operandi-theme.el ends here
diff --git a/etc/themes/modus-vivendi-theme.el b/etc/themes/modus-vivendi-theme.el
new file mode 100644
index 0000000000..fa1b6be8b8
--- /dev/null
+++ b/etc/themes/modus-vivendi-theme.el
@@ -0,0 +1,4266 @@
+;;; modus-vivendi-theme.el --- Accessible dark theme (WCAG AAA) -*- lexical-binding:t -*-
+
+;; Copyright (c) 2019-2020 Free Software Foundation, Inc.
+
+;; Author: Protesilaos Stavrou <info@protesilaos.com>
+;; URL: https://gitlab.com/protesilaos/modus-themes
+;; Version: 0.12.0
+;; Package-Requires: ((emacs "26.1"))
+;; Keywords: faces, theme, accessibility
+
+;; This file is part of GNU Emacs.
+
+;; This program is free software; you can redistribute it and/or
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+;;
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+;;
+;; This theme is designed for colour-contrast accessibility.
+;;
+;; 1. Provide a consistent minimum contrast ratio between background and
+;; foreground values of 7:1 or higher.  This meets the highest such
+;; accessibility criterion per the guidelines of the Worldwide Web
+;; Consortium's Working Group on Accessibility (WCAG AAA standard).
+;;
+;; 2. Offer as close to full face coverage as possible.  The list is
+;; already quite long (see further below), with more additions to follow
+;; as part of the ongoing development process.
+;;
+;; The theme provides the following customisation options, all of which
+;; are disabled by default:
+;;
+;;     modus-vivendi-theme-slanted-constructs             (boolean)
+;;     modus-vivendi-theme-bold-constructs                (boolean)
+;;     modus-vivendi-theme-variable-pitch-headings        (boolean)
+;;     modus-vivendi-theme-rainbow-headings               (boolean)
+;;     modus-vivendi-theme-section-headings               (boolean)
+;;     modus-vivendi-theme-scale-headings                 (boolean)
+;;     modus-vivendi-theme-fringes                        (choice)
+;;     modus-vivendi-theme-org-blocks                     (choice)
+;;     modus-vivendi-theme-prompts                        (choice)
+;;     modus-vivendi-theme-3d-modeline                    (boolean)
+;;     modus-vivendi-theme-subtle-diffs                   (boolean)
+;;     modus-vivendi-theme-faint-syntax                   (boolean)
+;;     modus-vivendi-theme-intense-hl-line                (boolean)
+;;     modus-vivendi-theme-intense-paren-match            (boolean)
+;;     modus-vivendi-theme-completions                    (choice)
+;;     modus-vivendi-theme-override-colors-alist          (alist)
+;;
+;; The default scale is as follows (it can be customised as well):
+;;
+;;     modus-vivendi-theme-scale-1 1.05
+;;     modus-vivendi-theme-scale-2 1.1
+;;     modus-vivendi-theme-scale-3 1.15
+;;     modus-vivendi-theme-scale-4 1.2
+;;     modus-vivendi-theme-scale-5 1.3
+;;
+;; What follows is the list of explicitly supported packages or face
+;; groups (there are implicitly supported packages as well, which
+;; inherit from font-lock or some basic group).  You are encouraged to
+;; notify me of any missing package or change you would like to see.
+;;
+;;     ace-window
+;;     ag
+;;     alert
+;;     all-the-icons
+;;     annotate
+;;     anzu
+;;     apropos
+;;     apt-sources-list
+;;     artbollocks-mode
+;;     auctex and TeX
+;;     auto-dim-other-buffers
+;;     avy
+;;     bm
+;;     bongo
+;;     boon
+;;     breakpoint (provided by built-in gdb-mi.el)
+;;     buffer-expose
+;;     calendar and diary
+;;     calfw
+;;     centaur-tabs
+;;     change-log and log-view (`vc-print-log' and `vc-print-root-log')
+;;     cider
+;;     circe
+;;     color-rg
+;;     column-enforce-mode
+;;     company-mode
+;;     company-posframe
+;;     compilation-mode
+;;     completions
+;;     counsel
+;;     counsel-css
+;;     counsel-notmuch
+;;     counsel-org-capture-string
+;;     cov
+;;     csv-mode
+;;     ctrlf
+;;     custom (M-x customize)
+;;     dap-mode
+;;     dashboard (emacs-dashboard)
+;;     deadgrep
+;;     debbugs
+;;     define-word
+;;     deft
+;;     dictionary
+;;     diff-hl
+;;     diff-mode
+;;     dim-autoload
+;;     dired
+;;     dired-async
+;;     dired-git
+;;     dired-git-info
+;;     dired-narrow
+;;     dired-subtree
+;;     diredfl
+;;     disk-usage
+;;     doom-modeline
+;;     dynamic-ruler
+;;     easy-jekyll
+;;     easy-kill
+;;     ebdb
+;;     ediff
+;;     eglot
+;;     el-search
+;;     eldoc-box
+;;     elfeed
+;;     elfeed-score
+;;     emms
+;;     enhanced-ruby-mode
+;;     epa
+;;     equake
+;;     erc
+;;     eros
+;;     ert
+;;     eshell
+;;     eshell-fringe-status
+;;     eshell-git-prompt
+;;     eshell-prompt-extras (epe)
+;;     evil (evil-mode)
+;;     evil-goggles
+;;     evil-visual-mark-mode
+;;     eww
+;;     eyebrowse
+;;     fancy-dabbrev
+;;     flycheck
+;;     flycheck-indicator
+;;     flycheck-posframe
+;;     flymake
+;;     flyspell
+;;     flyspell-correct
+;;     flx
+;;     freeze-it
+;;     frog-menu
+;;     focus
+;;     fold-this
+;;     font-lock (generic syntax highlighting)
+;;     forge
+;;     fountain (fountain-mode)
+;;     geiser
+;;     git-commit
+;;     git-gutter (and variants)
+;;     git-lens
+;;     git-rebase
+;;     git-timemachine
+;;     git-walktree
+;;     gnus
+;;     golden-ratio-scroll-screen
+;;     helm
+;;     helm-ls-git
+;;     helm-switch-shell
+;;     helm-xref
+;;     helpful
+;;     highlight-blocks
+;;     highlight-defined
+;;     highlight-escape-sequences (`hes-mode')
+;;     highlight-indentation
+;;     highlight-numbers
+;;     highlight-symbol
+;;     highlight-tail
+;;     highlight-thing
+;;     hl-defined
+;;     hl-fill-column
+;;     hl-line-mode
+;;     hl-todo
+;;     hydra
+;;     hyperlist
+;;     ibuffer
+;;     icomplete
+;;     ido-mode
+;;     iedit
+;;     iflipb
+;;     imenu-list
+;;     indium
+;;     info
+;;     info-colors
+;;     interaction-log
+;;     ioccur
+;;     isearch, occur, etc.
+;;     ivy
+;;     ivy-posframe
+;;     jira (org-jira)
+;;     journalctl-mode
+;;     js2-mode
+;;     julia
+;;     jupyter
+;;     kaocha-runner
+;;     keycast
+;;     line numbers (`display-line-numbers-mode' and global variant)
+;;     lsp-mode
+;;     lsp-ui
+;;     magit
+;;     magit-imerge
+;;     man
+;;     markdown-mode
+;;     markup-faces (`adoc-mode')
+;;     mentor
+;;     messages
+;;     minibuffer-line
+;;     minimap
+;;     modeline
+;;     mood-line
+;;     mu4e
+;;     mu4e-conversation
+;;     multiple-cursors
+;;     neotree
+;;     no-emoji
+;;     notmuch
+;;     num3-mode
+;;     nxml-mode
+;;     orderless
+;;     org
+;;     org-journal
+;;     org-noter
+;;     org-pomodoro
+;;     org-recur
+;;     org-roam
+;;     org-superstar
+;;     org-table-sticky-header
+;;     org-treescope
+;;     origami
+;;     outline-mode
+;;     outline-minor-faces
+;;     package (M-x list-packages)
+;;     page-break-lines
+;;     paradox
+;;     paren-face
+;;     parrot
+;;     pass
+;;     persp-mode
+;;     perspective
+;;     phi-grep
+;;     phi-search
+;;     pkgbuild-mode
+;;     pomidor
+;;     powerline
+;;     powerline-evil
+;;     proced
+;;     prodigy
+;;     rainbow-blocks
+;;     rainbow-identifiers
+;;     rainbow-delimiters
+;;     rcirc
+;;     regexp-builder (also known as `re-builder')
+;;     rg
+;;     ripgrep
+;;     rmail
+;;     ruler-mode
+;;     sallet
+;;     selectrum
+;;     semantic
+;;     sesman
+;;     shell-script-mode
+;;     show-paren-mode
+;;     side-notes
+;;     skewer-mode
+;;     smart-mode-line
+;;     smartparens
+;;     smerge
+;;     spaceline
+;;     speedbar
+;;     spell-fu
+;;     stripes
+;;     suggest
+;;     switch-window
+;;     swiper
+;;     swoop
+;;     sx
+;;     symbol-overlay
+;;     tab-bar-mode
+;;     tab-line-mode
+;;     syslog-mode
+;;     table (built-in table.el)
+;;     telephone-line
+;;     term
+;;     tomatinho
+;;     transient (pop-up windows like Magit's)
+;;     trashed
+;;     treemacs
+;;     tty-menu
+;;     tuareg
+;;     undo-tree
+;;     vc (built-in mode line status for version control)
+;;     vc-annotate (C-x v g)
+;;     vdiff
+;;     vimish-fold
+;;     visible-mark
+;;     visual-regexp
+;;     volatile-highlights
+;;     vterm
+;;     wcheck-mode
+;;     web-mode
+;;     wgrep
+;;     which-function-mode
+;;     which-key
+;;     whitespace-mode
+;;     window-divider-mode
+;;     winum
+;;     writegood-mode
+;;     woman
+;;     xah-elisp-mode
+;;     xref
+;;     xterm-color (and ansi-colors)
+;;     yaml-mode
+;;     yasnippet
+;;     ztree
+
+;;; Code:
+
+
+
+(deftheme modus-vivendi
+  "Dark theme that conforms with the highest accessibility
+  standard for colour contrast between background and
+  foreground elements (WCAG AAA).")
+
+;;; Custom faces
+
+;; These faces will be inherited by actual constructs.  They are meant
+;; for those cases where a face needs to distinguish its output from
+;; the rest of the text, such as `isearch' and `occur'â€¦  We define
+;; these separately in order to combine each colour with its
+;; appropriate foreground value.  This is to ensure a consistent
+;; contrast ratio of >= 7:1.
+(defgroup modus-theme ()
+  "Theme that ensures WCAG AAA accessibility (contrast ratio
+between foreground and background is >= 7:1)."
+  :group 'faces
+  :prefix "modus-theme-"
+  :link '(url-link :tag "GitLab" "https://gitlab.com/protesilaos/modus-themes")
+  :tag "Modus Vivendi")
+
+(defface modus-theme-subtle-red nil nil)
+(defface modus-theme-subtle-green nil nil)
+(defface modus-theme-subtle-yellow nil nil)
+(defface modus-theme-subtle-blue nil nil)
+(defface modus-theme-subtle-magenta nil nil)
+(defface modus-theme-subtle-cyan nil nil)
+(defface modus-theme-subtle-neutral nil nil)
+(defface modus-theme-intense-red nil nil)
+(defface modus-theme-intense-green nil nil)
+(defface modus-theme-intense-yellow nil nil)
+(defface modus-theme-intense-blue nil nil)
+(defface modus-theme-intense-magenta nil nil)
+(defface modus-theme-intense-cyan nil nil)
+(defface modus-theme-intense-neutral nil nil)
+(defface modus-theme-refine-red nil nil)
+(defface modus-theme-refine-green nil nil)
+(defface modus-theme-refine-yellow nil nil)
+(defface modus-theme-refine-blue nil nil)
+(defface modus-theme-refine-magenta nil nil)
+(defface modus-theme-refine-cyan nil nil)
+(defface modus-theme-active-red nil nil)
+(defface modus-theme-active-green nil nil)
+(defface modus-theme-active-yellow nil nil)
+(defface modus-theme-active-blue nil nil)
+(defface modus-theme-active-magenta nil nil)
+(defface modus-theme-active-cyan nil nil)
+(defface modus-theme-fringe-red nil nil)
+(defface modus-theme-fringe-green nil nil)
+(defface modus-theme-fringe-yellow nil nil)
+(defface modus-theme-fringe-blue nil nil)
+(defface modus-theme-fringe-magenta nil nil)
+(defface modus-theme-fringe-cyan nil nil)
+(defface modus-theme-nuanced-red nil nil)
+(defface modus-theme-nuanced-green nil nil)
+(defface modus-theme-nuanced-yellow nil nil)
+(defface modus-theme-nuanced-blue nil nil)
+(defface modus-theme-nuanced-magenta nil nil)
+(defface modus-theme-nuanced-cyan nil nil)
+(defface modus-theme-special-cold nil nil)
+(defface modus-theme-special-mild nil nil)
+(defface modus-theme-special-warm nil nil)
+(defface modus-theme-special-calm nil nil)
+(defface modus-theme-diff-added nil nil)
+(defface modus-theme-diff-changed nil nil)
+(defface modus-theme-diff-removed nil nil)
+(defface modus-theme-diff-refine-added nil nil)
+(defface modus-theme-diff-refine-changed nil nil)
+(defface modus-theme-diff-refine-removed nil nil)
+(defface modus-theme-diff-focus-added nil nil)
+(defface modus-theme-diff-focus-changed nil nil)
+(defface modus-theme-diff-focus-removed nil nil)
+(defface modus-theme-diff-heading nil nil)
+(defface modus-theme-header nil nil)    ; Name is tentative
+(defface modus-theme-mark-alt nil nil)
+(defface modus-theme-mark-del nil nil)
+(defface modus-theme-mark-sel nil nil)
+(defface modus-theme-mark-symbol nil nil)
+(defface modus-theme-hl-line nil nil)
+
+;;; Customisation options
+
+;; User-facing customisation options.  They are all deactivated by
+;; default (users must opt in).
+(defcustom modus-vivendi-theme-slanted-constructs nil
+  "Use slanted text in more code constructs (italics or oblique)."
+  :type 'boolean)
+
+(defcustom modus-vivendi-theme-bold-constructs nil
+  "Use bold text in more code constructs."
+  :type 'boolean)
+
+(define-obsolete-variable-alias 'modus-vivendi-theme-proportional-fonts
+  'modus-vivendi-theme-variable-pitch-headings "`modus-vivendi-theme' 0.11.0")
+
+(defcustom modus-vivendi-theme-proportional-fonts nil
+  "Use proportional fonts (variable-pitch) in headings."
+  :type 'boolean)
+
+(defcustom modus-vivendi-theme-variable-pitch-headings nil
+  "Use proportional fonts (variable-pitch) in headings."
+  :type 'boolean)
+
+(defcustom modus-vivendi-theme-rainbow-headings nil
+  "Use more saturated colours for headings."
+  :type 'boolean)
+
+(defcustom modus-vivendi-theme-section-headings nil
+  "Use a background and an overline in headings."
+  :type 'boolean)
+
+(defcustom modus-vivendi-theme-scale-headings nil
+  "Use font scaling for headings."
+  :type 'boolean)
+
+(defcustom modus-vivendi-theme-scale-1 1.05
+  "Font size that is slightly larger than the base value.
+The default is a floating point that is interpreted as a multiple
+of the base font size.  However, the variable also accepts an
+integer, understood as an absolute height (e.g. a value of 140 is
+the same as setting the font at 14 point size).
+
+For more on the matter, read the documentation of
+`set-face-attribute', specifically the ':height' section."
+  :type 'number)
+
+(defcustom modus-vivendi-theme-scale-2 1.1
+  "Font size slightly larger than `modus-vivendi-theme-scale-1'.
+The default is a floating point that is interpreted as a multiple
+of the base font size.  However, the variable also accepts an
+integer, understood as an absolute height (e.g. a value of 140 is
+the same as setting the font at 14 point size).
+
+For more on the matter, read the documentation of
+`set-face-attribute', specifically the ':height' section."
+  :type 'number)
+
+(defcustom modus-vivendi-theme-scale-3 1.15
+  "Font size slightly larger than `modus-vivendi-theme-scale-2'.
+The default is a floating point that is interpreted as a multiple
+of the base font size.  However, the variable also accepts an
+integer, understood as an absolute height (e.g. a value of 140 is
+the same as setting the font at 14 point size).
+
+For more on the matter, read the documentation of
+`set-face-attribute', specifically the ':height' section."
+  :type 'number)
+
+(defcustom modus-vivendi-theme-scale-4 1.2
+  "Font size slightly larger than `modus-vivendi-theme-scale-3'.
+The default is a floating point that is interpreted as a multiple
+of the base font size.  However, the variable also accepts an
+integer, understood as an absolute height (e.g. a value of 140 is
+the same as setting the font at 14 point size).
+
+For more on the matter, read the documentation of
+`set-face-attribute', specifically the ':height' section."
+  :type 'number)
+
+(defcustom modus-vivendi-theme-scale-5 1.3
+  "Font size slightly larger than `modus-vivendi-theme-scale-4'.
+The default is a floating point that is interpreted as a multiple
+of the base font size.  However, the variable also accepts an
+integer, understood as an absolute height (e.g. a value of 140 is
+the same as setting the font at 14 point size).
+
+For more on the matter, read the documentation of
+`set-face-attribute', specifically the ':height' section."
+  :type 'number)
+
+(define-obsolete-variable-alias 'modus-vivendi-theme-visible-fringes
+  'modus-vivendi-theme-fringes "`modus-vivendi-theme' 0.12.0")
+
+(defcustom modus-vivendi-theme-visible-fringes nil
+  "Use a visible style for fringes."
+  :type 'boolean)
+
+(defcustom modus-vivendi-theme-fringes nil
+  "Define the visibility of fringes.
+
+Nil means the fringes have no background colour.  Option `subtle'
+will apply a greyscale value that is visible yet close to the
+main buffer background colour.  Option `intense' will use a more
+pronounced greyscale value."
+  :type '(choice
+          (const :tag "No visible fringes (default)" nil)
+          (const :tag "Subtle greyscale background" subtle)
+          (const :tag "Intense greyscale background" intense)))
+
+(define-obsolete-variable-alias 'modus-vivendi-theme-distinct-org-blocks
+  'modus-vivendi-theme-org-blocks "`modus-vivendi-theme' 0.11.0")
+
+(defcustom modus-vivendi-theme-distinct-org-blocks nil
+  "Use a distinct neutral background for `org-mode' blocks."
+  :type 'boolean)
+
+(define-obsolete-variable-alias 'modus-vivendi-theme-rainbow-org-src-blocks
+  'modus-vivendi-theme-org-blocks "`modus-vivendi-theme' 0.11.0")
+
+(defcustom modus-vivendi-theme-rainbow-org-src-blocks nil
+  "Use colour-coded backgrounds for `org-mode' source blocks.
+The colour in use depends on the language (send feedback to
+include more languages)."
+  :type 'boolean)
+
+(defcustom modus-vivendi-theme-org-blocks nil
+  "Use a subtle grey or colour-coded background for Org blocks.
+
+Nil means that the block will have no background of its own and
+will use the default that applies to the rest of the buffer.
+
+Option `greyscale' will apply a subtle neutral grey background to
+the block's contents.  It also affects the begin and end lines of
+the block: their background will be extended to the edge of the
+window for Emacs version >= 27 where the ':extend' keyword is
+recognised by `set-face-attribute'.
+
+Option `rainbow' will use an accented background for the contents
+of the block.  The exact colour will depend on the programming
+language and is controlled by the `org-src-block-faces'
+variable (refer to the theme's source code for the current
+association list)."
+  :type '(choice
+          (const :tag "No Org block background (default)" nil)
+          (const :tag "Subtle grey block background" greyscale)
+          (const :tag "Colour-coded background per programming language" rainbow)))
+
+(defcustom modus-vivendi-theme-3d-modeline nil
+  "Use a three-dimensional style for the active mode line."
+  :type 'boolean)
+
+(defcustom modus-vivendi-theme-subtle-diffs nil
+  "Use fewer/dim backgrounds in `diff-mode', `ediff',`magit'."
+  :type 'boolean)
+
+(define-obsolete-variable-alias 'modus-vivendi-theme-intense-standard-completions
+  'modus-vivendi-theme-completions "`modus-vivendi-theme' 0.12.0")
+
+(defcustom modus-vivendi-theme-intense-standard-completions nil
+  "Use prominent backgrounds for Icomplete, Ido, or similar."
+  :type 'boolean)
+
+(defcustom modus-vivendi-theme-completions nil
+  "Apply special styles to the UI of completion frameworks.
+This concerns Icomplete, Ivy, Helm, Selectrum, Ido, as well as
+any other tool meant to enhance their experience.  The effect
+will vary depending on the completion framework.
+
+Nil means to remain faithful to the metaphors that each UI
+establishes.  For example, Icomplete and Ido only use foreground
+colours to style their matches, whereas Ivy or Helm rely on an
+aesthetic that combines coloured backgrounds with appropriate
+text colour.
+
+Option `moderate' will apply a combination of background and
+foreground that is fairly subtle.  For Icomplete and the like,
+this constitutes a departure from their standard style.  While
+Ivy, Helm, and the others, will use less pronounced colours for
+applicable contexts.
+
+Option `opinionated' will apply colour combinations that
+refashion the completion UI.  So Icomplete et al will now use
+styles that resemble the defaults of Ivy and co., while the
+latter group will revert to an even more nuanced aesthetic."
+  :type '(choice
+          (const :tag "Respect the framework's established aesthetic (default)" nil)
+          (const :tag "Subtle backgrounds for various elements" moderate)
+          (const :tag "Radical alternative to the framework's looks" opinionated)))
+
+(defcustom modus-vivendi-theme-prompts nil
+  "Use subtle or intense styles for minibuffer and REPL prompts.
+
+Nil means to only use an accented foreground colour.
+
+Options `subtle' and `intense' will change both the background
+and the foreground values.  The latter has a more pronounced
+effect than the former."
+  :type '(choice
+          (const :tag "No prompt background (default)" nil)
+          (const :tag "Subtle accented background for the prompt" subtle)
+          (const :tag "Intense background and foreground for the prompt" intense)))
+
+(defcustom modus-vivendi-theme-intense-hl-line nil
+  "Use more prominent background for `hl-line-mode'."
+  :type 'boolean)
+
+(defcustom modus-vivendi-theme-intense-paren-match nil
+  "Use more prominent colour for parenthesis matching."
+  :type 'boolean)
+
+(defcustom modus-vivendi-theme-faint-syntax nil
+  "Use less saturated colours for code syntax highlighting."
+  :type 'boolean)
+
+;;; Internal functions
+
+;; Helper functions that are meant to ease the implementation of the
+;; above customisation options.
+(defun modus-vivendi-theme-bold-weight ()
+  "Conditional use of a heavier text weight."
+  (when modus-vivendi-theme-bold-constructs
+    (list :inherit 'bold)))
+
+(defun modus-vivendi-theme-fringe (subtlebg intensebg)
+  "Conditional use of background colours for fringes.
+SUBTLEBG should be a subtle greyscale value.  INTENSEBG must be a
+more pronounced greyscale colour."
+  (pcase modus-vivendi-theme-fringes
+    ('intense (list :background intensebg))
+    ('subtle (list :background subtlebg))
+    (_ (list :background nil))))
+
+(defun modus-vivendi-theme-prompt (mainfg subtlebg subtlefg intensebg intensefg)
+  "Conditional use of background colours for prompts.
+MAINFG is the prompt's standard foreground.  SUBTLEBG should be a
+subtle accented background that works with SUBTLEFG.  INTENSEBG
+must be a more pronounced accented colour that should be
+combinable with INTENSEFG."
+  (pcase modus-vivendi-theme-prompts
+    ('intense (list :background intensebg :foreground intensefg))
+    ('subtle (list :background subtlebg :foreground subtlefg))
+    (_ (list :background nil :foreground mainfg))))
+
+(defun modus-vivendi-theme-paren (normalbg intensebg)
+  "Conditional use of intense colours for matching parentheses.
+NORMALBG should the special palette colour 'bg-paren-match' or
+something similar.  INTENSEBG must be easier to discern next to
+other backgrounds, such as the special palette colour
+'bg-paren-match-intense'."
+  (if modus-vivendi-theme-intense-paren-match
+      (list :background intensebg)
+    (list :background normalbg)))
+
+(defun modus-vivendi-theme-syntax-foreground (normal faint)
+  "Apply foreground value to code syntax.
+NORMAL is the more saturated colour, which should be the default.
+FAINT is the less saturated colour."
+  (if modus-vivendi-theme-faint-syntax
+      (list :foreground faint)
+    (list :foreground normal)))
+
+(defun modus-vivendi-theme-heading-foreground (subtle rainbow)
+  "Apply foreground value to headings.
+SUBTLE is the default aesthetic.  RAINBOW is the saturated one."
+  (if modus-vivendi-theme-rainbow-headings
+      (list :foreground rainbow)
+    (list :foreground subtle)))
+
+(defun modus-vivendi-theme-heading-block (bg fg)
+  "Conditionally extend heading styles.
+Apply BG to background and FG to overline."
+  (if modus-vivendi-theme-section-headings
+      (append
+       (and (>= emacs-major-version 27) '(:extend t))
+       (list :background bg :overline fg))
+    (list :background nil :overline nil)))
+
+(defun modus-vivendi-theme-org-todo-block (bgbox fgbox fg)
+  "Conditionally extend the styles of Org keywords.
+BGBOX applies to the background.  FGBOX applies to the foreground
+and the border.  FG is used when no block style is in effect."
+  (if modus-vivendi-theme-section-headings
+      (list :background bgbox :foreground fgbox :box (list :color fgbox))
+    (list :foreground fg)))
+
+(defun modus-vivendi-theme-org-block (bgblk)
+  "Conditionally set the background of Org blocks.
+BGBLK applies to a distinct neutral background.  Else blocks have
+no background of their own (the default), so they look the same
+as the rest of the buffer.
+
+`modus-vivendi-theme-org-blocks' also accepts a `rainbow' option
+which is applied conditionally to `org-src-block-faces' (see the
+theme's source code)."
+  (if (eq modus-vivendi-theme-org-blocks 'greyscale)
+      (append
+       (and (>= emacs-major-version 27) '(:extend t))
+       (list :background bgblk))
+    (list :background nil)))
+
+(defun modus-vivendi-theme-org-block-delim (bgaccent fgaccent bg fg)
+  "Conditionally set the styles of Org block delimiters.
+BG, FG, BGACCENT, FGACCENT apply a background and foreground
+colour respectively.
+
+The former pair is a greyscale combination that should be more
+distinct than the background of the block.  It is applied to the
+default styles or when `modus-vivendi-theme-org-blocks' is set
+to `greyscale'.
+
+The latter pair should be more subtle than the background of the
+block, as it is used when `modus-vivendi-theme-org-blocks' is
+set to `rainbow'."
+  (pcase modus-vivendi-theme-org-blocks
+    ('greyscale (append (and (>= emacs-major-version 27) '(:extend t))
+                        (list :background bg :foreground fg)))
+    ('rainbow (list :background bgaccent :foreground fgaccent))
+    (_ (list :background bg :foreground fg))))
+
+(defun modus-vivendi-theme-modeline-box (col3d col &optional btn int)
+  "Control the box properties of the mode line.
+COL3D is the border that is intended for the three-dimensional
+modeline.  COL applies to the two-dimensional modeline.  Optional
+BTN provides the 3d button style.  Optional INT defines a border
+width."
+  (let* ((style (if btn 'released-button nil))
+         (int (if int int 1)))
+    (if modus-vivendi-theme-3d-modeline
+        (list :line-width int :color col3d :style style)
+      (list :line-width 1 :color col :style nil))))
+
+(defun modus-vivendi-theme-modeline-props (bg3d fg3d &optional bg fg)
+  "Control the background and foreground of the mode line.
+BG is the modeline's background.  FG is the modeline's
+foreground.  BG3D and FG3D apply to the three-dimensional
+modeline style."
+  (if modus-vivendi-theme-3d-modeline
+      (list :background bg3d :foreground fg3d)
+    (list :background bg :foreground fg)))
+
+(defun modus-vivendi-theme-diffs (subtle-bg subtle-fg intense-bg intense-fg)
+  "Colour combinations for `modus-vivendi-theme-subtle-diffs'.
+
+SUBTLE-BG should be similar or the same as the main background.
+SUBTLE-FG should be an appropriate accent value.  INTENSE-BG
+should be one of the dedicated backgrounds for diffs.  INTENSE-FG
+should be one of the dedicated foregrounds for diffs"
+  (if modus-vivendi-theme-subtle-diffs
+      (list :background subtle-bg :foreground subtle-fg)
+    (list :background intense-bg :foreground intense-fg)))
+
+(defun modus-vivendi-theme-standard-completions (mainfg subtlebg intensebg intensefg)
+  "Combinations for `modus-vivendi-theme-completions'.
+These are intended for Icomplete, Ido, and related.
+
+MAINFG is an accented foreground value.  SUBTLEBG is an accented
+background value that can be combined with MAINFG.  INTENSEBG and
+INTENSEFG are accented colours that are designed to be used in
+tandem."
+  (pcase modus-vivendi-theme-completions
+    ('opinionated (list :background intensebg :foreground intensefg))
+    ('moderate (list :background subtlebg :foreground mainfg))
+    (_ (list :foreground mainfg))))
+
+(defun modus-vivendi-theme-extra-completions (subtleface intenseface altface &optional altfg bold)
+  "Combinations for `modus-vivendi-theme-completions'.
+These are intended for Helm, Ivy, Selectrum, etc.
+
+SUBTLEFACE and INTENSEFACE are custom theme faces that combine a
+background and foreground value.  The difference between the two
+is a matter of degree.
+
+ALTFACE is a combination of colours that represents a departure
+from the UI's default aesthetics.  Optional ALTFG is meant to be
+used in tandem with it.
+
+Optional BOLD will apply a heavier weight to the text."
+  (pcase modus-vivendi-theme-completions
+    ('opinionated (list :inherit (list altface bold)
+                        :foreground (if altfg altfg 'unspecified)))
+    ('moderate (list :inherit (list subtleface bold)))
+    (_ (list :inherit (list intenseface bold)))))
+
+(defun modus-vivendi-theme-scale (amount)
+  "Scale heading by AMOUNT.
+
+AMOUNT is a customisation option."
+  (when modus-vivendi-theme-scale-headings
+    (list :height amount)))
+
+;;; Colour palette
+
+;; Define colour palette.  Each colour must have a >= 7:1 contrast
+;; ratio relative to the foreground/background colour it is rendered
+;; against.
+;;
+;; The design of the colour palette as a macro that maps it to faces is
+;; adapted from zenbern-theme.el, last seen at commit 7dd7968:
+;; https://github.com/bbatsov/zenburn-emacs
+(eval-and-compile
+  (defconst modus-vivendi-theme-default-colors-alist
+    '(;; base values
+      ("bg-main" . "#000000") ("fg-main" . "#ffffff")
+      ("bg-alt" . "#181a20") ("fg-alt" . "#a8a8a8")
+      ("bg-dim" . "#110b11") ("fg-dim" . "#e0e6f0")
+      ;; specifically for on/off states (e.g. `mode-line')
+      ;;
+      ;; must be combined with themselves
+      ("bg-active" . "#2f2f2f") ("fg-active" . "#f5f5f5")
+      ("bg-inactive" . "#202020") ("fg-inactive" . "#bebebe")
+      ;; special base values, used only for cases where the above
+      ;; fg-* or bg-* cannot or should not be used (to avoid confusion)
+      ;; must be combined with: {fg,bg}-{main,alt,dim}
+      ("bg-special-cold" . "#203448") ("fg-special-cold" . "#c6eaff")
+      ("bg-special-mild" . "#00322e") ("fg-special-mild" . "#bfebe0")
+      ("bg-special-warm" . "#382f27") ("fg-special-warm" . "#f8dec0")
+      ("bg-special-calm" . "#392a48") ("fg-special-calm" . "#fbd6f4")
+      ;; styles for the main constructs
+      ;;
+      ;; must be combined with: `bg-main', `bg-alt', `bg-dim'
+      ("red" . "#ff8059") ("green" . "#44bc44")
+      ("yellow" . "#eecc00") ("blue" . "#29aeff")
+      ("magenta" . "#feacd0") ("cyan" . "#00d3d0")
+      ;; styles for common, but still specialised constructs
+      ;;
+      ;; must be combined with: `bg-main', `bg-alt', `bg-dim'
+      ("red-alt" . "#f4923b") ("green-alt" . "#80d200")
+      ("yellow-alt" . "#cfdf30") ("blue-alt" . "#72a4ff")
+      ("magenta-alt" . "#f78fe7") ("cyan-alt" . "#4ae8fc")
+      ;; same purpose as above, just slight differences
+      ;;
+      ;; must be combined with: `bg-main', `bg-alt', `bg-dim'
+      ("red-alt-other" . "#ff9977") ("green-alt-other" . "#00cd68")
+      ("yellow-alt-other" . "#f0ce43") ("blue-alt-other" . "#00bdfa")
+      ("magenta-alt-other" . "#b6a0ff") ("cyan-alt-other" . "#6ae4b9")
+      ;; styles for desaturated foreground text, intended for use with
+      ;; the `modus-vivendi-theme-faint-syntax' option
+      ;;
+      ;; must be combined with: `bg-main', `bg-alt', `bg-dim'
+      ("red-faint" . "#ffa0a0") ("green-faint" . "#88cf88")
+      ("yellow-faint" . "#d2b580") ("blue-faint" . "#92baff")
+      ("magenta-faint" . "#e0b2d6") ("cyan-faint" . "#a0bfdf")
+
+      ("red-alt-faint" . "#f5aa80") ("green-alt-faint" . "#a8cf88")
+      ("yellow-alt-faint" . "#cabf77") ("blue-alt-faint" . "#a4b0ff")
+      ("magenta-alt-faint" . "#ef9fe4") ("cyan-alt-faint" . "#90c4ed")
+
+      ("red-alt-other-faint" . "#ff9fbf") ("green-alt-other-faint" . "#88cfaf")
+      ("yellow-alt-other-faint" . "#d0ba95") ("blue-alt-other-faint" . "#8fc5ff")
+      ("magenta-alt-other-faint" . "#d0b4ff") ("cyan-alt-other-faint" . "#a4d0bb")
+      ;; styles for elements that should be very subtle, yet accented
+      ;;
+      ;; must be combined with: `bg-main', `bg-alt', `bg-dim' or any of
+      ;; the "nuanced" backgrounds
+      ("red-nuanced" . "#ffcccc") ("green-nuanced" . "#b8e2b8")
+      ("yellow-nuanced" . "#dfdfb0") ("blue-nuanced" . "#bfd9ff")
+      ("magenta-nuanced" . "#e5cfef") ("cyan-nuanced" . "#a8e5e5")
+      ;; styles for slightly accented background
+      ;;
+      ;; must be combined with any of the above foreground values
+      ("red-nuanced-bg" . "#2c0614") ("green-nuanced-bg" . "#001904")
+      ("yellow-nuanced-bg" . "#221000") ("blue-nuanced-bg" . "#0f0e39")
+      ("magenta-nuanced-bg" . "#230631") ("cyan-nuanced-bg" . "#041529")
+      ;; styles for elements that should draw attention to themselves
+      ;;
+      ;; must be combined with: `bg-main'
+      ("red-intense" . "#fb6859") ("green-intense" . "#00fc50")
+      ("yellow-intense" . "#ffdd00") ("blue-intense" . "#00a2ff")
+      ("magenta-intense" . "#ff8bd4") ("cyan-intense" . "#30ffc0")
+      ;; styles for background elements that should be visible yet
+      ;; subtle
+      ;;
+      ;; must be combined with: `fg-dim'
+      ("red-subtle-bg" . "#762422") ("green-subtle-bg" . "#2f4a00")
+      ("yellow-subtle-bg" . "#604200") ("blue-subtle-bg" . "#10387c")
+      ("magenta-subtle-bg" . "#49366e") ("cyan-subtle-bg" . "#00415e")
+      ;; styles for background elements that should be visible and
+      ;; distinguishable
+      ;;
+      ;; must be combined with: `fg-main'
+      ("red-intense-bg" . "#a4202a") ("green-intense-bg" . "#006800")
+      ("yellow-intense-bg" . "#874900") ("blue-intense-bg" . "#2a40b8")
+      ("magenta-intense-bg" . "#7042a2") ("cyan-intense-bg" . "#005f88")
+      ;; styles for refined contexts where both the foreground and the
+      ;; background need to have the same/similar hue
+      ;;
+      ;; must be combined with themselves OR the foregrounds can be
+      ;; combined with any of the base backgrounds
+      ("red-refine-bg" . "#77002a") ("red-refine-fg" . "#ffb9ab")
+      ("green-refine-bg" . "#00422a") ("green-refine-fg" . "#9ff0cf")
+      ("yellow-refine-bg" . "#693200") ("yellow-refine-fg" . "#e2d980")
+      ("blue-refine-bg" . "#242679") ("blue-refine-fg" . "#8ec6ff")
+      ("magenta-refine-bg" . "#71206a") ("magenta-refine-fg" . "#ffcaf0")
+      ("cyan-refine-bg" . "#004065") ("cyan-refine-fg" . "#8ae4f2")
+      ;; styles that are meant exclusively for the mode line
+      ;;
+      ;; must be combined with: `bg-active', `bg-inactive'
+      ("red-active" . "#ffa49e") ("green-active" . "#70e030")
+      ("yellow-active" . "#efdf00") ("blue-active" . "#00ccff")
+      ("magenta-active" . "#d0acff") ("cyan-active" . "#00ddc0")
+      ;; styles that are meant exclusively for the fringes
+      ;;
+      ;; must have a minimum contrast ratio of 1.5:1 with `bg-inactive'
+      ;; and be combined with `fg-main' or `fg-dim'
+      ("red-fringe-bg" . "#8f0040") ("green-fringe-bg" . "#006000")
+      ("yellow-fringe-bg" . "#6f4a00") ("blue-fringe-bg" . "#3a30ab")
+      ("magenta-fringe-bg" . "#692089") ("cyan-fringe-bg" . "#0068a0")
+      ;; styles reserved for specific faces
+      ;;
+      ;; `bg-hl-line' is between `bg-dim' and `bg-alt', so it should
+      ;; work with all accents that cover those two, plus `bg-main'
+      ;;
+      ;; `bg-header' is between `bg-active' and `bg-inactive', so it
+      ;; can be combined with any of the "active" values, plus the
+      ;; "special" and base foreground colours
+      ;;
+      ;; `bg-paren-match', `bg-paren-match-intense', `bg-region' and
+      ;; `bg-tab-active' must be combined with `fg-main', while
+      ;; `bg-tab-inactive' should be combined with `fg-dim'
+      ;;
+      ;; `bg-tab-bar' is only intended for the bar that holds the tabs and
+      ;; can only be combined with `fg-main'
+      ;;
+      ;; `fg-tab-active' is meant to be combined with `bg-tab-active',
+      ;; though only for styling special elements, such as underlining
+      ;; the current tab
+      ;;
+      ;; `fg-escape-char-construct' and `fg-escape-char-backslash' can
+      ;; be combined `bg-main', `bg-dim', `bg-alt'
+      ;;
+      ;; `fg-lang-error', `fg-lang-warning', `fg-lang-note' can be
+      ;; combined with `bg-main', `bg-dim', `bg-alt'
+      ;;
+      ;; `fg-mark-sel', `fg-mark-del', `fg-mark-alt' can be combined
+      ;; with `bg-main', `bg-dim', `bg-alt', `bg-hl-line'
+      ;;
+      ;; `fg-unfocused' must be combined with `fg-main'
+      ;;
+      ;; the window divider colours apply to faces with just an fg value
+      ;;
+      ;; all pairs are combinable with themselves
+      ("bg-hl-line" . "#151823")
+      ("bg-paren-match" . "#5f362f")
+      ("bg-paren-match-intense" . "#255650")
+      ("bg-region" . "#3c3c3c")
+
+      ("bg-tab-bar" . "#2c2c2c")
+      ("bg-tab-active" . "#0e0e0e")
+      ("bg-tab-inactive" . "#3d3d3d")
+      ("fg-tab-active" . "#5ac3cf")
+
+      ("fg-escape-char-construct" . "#e7a59a")
+      ("fg-escape-char-backslash" . "#abab00")
+
+      ("fg-lang-error" . "#ef8690")
+      ("fg-lang-warning" . "#b0aa00")
+      ("fg-lang-note" . "#9d9def")
+
+      ("fg-window-divider-inner" . "#646464")
+      ("fg-window-divider-outer" . "#969696")
+
+      ("fg-unfocused" . "#93959b")
+
+      ("bg-header" . "#212121") ("fg-header" . "#dddddd")
+
+      ("bg-whitespace" . "#170016") ("fg-whitespace" . "#a4959f")
+
+      ("bg-diff-heading" . "#304466") ("fg-diff-heading" . "#dadffe")
+      ("bg-diff-added" . "#0a280a") ("fg-diff-added" . "#94ba94")
+      ("bg-diff-changed" . "#2a2000") ("fg-diff-changed" . "#b0ba9f")
+      ("bg-diff-removed" . "#40160f") ("fg-diff-removed" . "#c6adaa")
+
+      ("bg-diff-refine-added" . "#005a36") ("fg-diff-refine-added" . "#e0f6e0")
+      ("bg-diff-refine-changed" . "#585800") ("fg-diff-refine-changed" . "#ffffcc")
+      ("bg-diff-refine-removed" . "#852828") ("fg-diff-refine-removed" . "#ffd9eb")
+
+      ("bg-diff-focus-added" . "#203d20") ("fg-diff-focus-added" . "#b4ddb4")
+      ("bg-diff-focus-changed" . "#4a3a10") ("fg-diff-focus-changed" . "#d0daaf")
+      ("bg-diff-focus-removed" . "#5e2526") ("fg-diff-focus-removed" . "#eebdba")
+
+      ("bg-diff-neutral-0" . "#575757") ("fg-diff-neutral-0" . "#fcfcfc")
+      ("bg-diff-neutral-1" . "#454545") ("fg-diff-neutral-1" . "#dddddd")
+      ("bg-diff-neutral-2" . "#313131") ("fg-diff-neutral-2" . "#bfbfbf")
+
+      ("bg-mark-sel" . "#002f2f") ("fg-mark-sel" . "#60cfa2")
+      ("bg-mark-del" . "#5a0000") ("fg-mark-del" . "#ff99aa")
+      ("bg-mark-alt" . "#3f2210") ("fg-mark-alt" . "#f0aa20"))
+    "The entire palette of `modus-vivendi-theme'.
+Each element has the form (NAME . HEX).")
+
+  (defcustom modus-vivendi-theme-override-colors-alist '()
+    "Association list of palette colour overrides.
+Values can be mapped to variables, using the same syntax as the
+one present in `modus-vivendi-theme-default-colors-alist'.
+
+This is only meant for do-it-yourself usage, with the
+understanding that the user is responsible for the resulting
+contrast ratio between new and existing colours."
+    :type '(alist
+            :key-type (string :tag "Name")
+            :value-type (string :tag " Hex")))
+
+  (defmacro modus-vivendi-theme-with-color-variables (&rest body)
+    "`let' bind all colours around BODY.
+Also bind `class' to ((class color) (min-colors 89))."
+    (declare (indent 0))
+    `(let ((class '((class color) (min-colors 89)))
+           ,@(mapcar (lambda (cons)
+                       (list (intern (car cons)) (cdr cons)))
+                     (append modus-vivendi-theme-default-colors-alist
+                             modus-vivendi-theme-override-colors-alist))
+           ;; simple conditional styles that evaluate user-facing
+           ;; customisation options
+           (modus-theme-slant
+            (if modus-vivendi-theme-slanted-constructs 'italic 'normal))
+           (modus-theme-variable-pitch
+            (if modus-vivendi-theme-variable-pitch-headings 'variable-pitch 'default)))
+       ,@body)))
+
+
+
+;;; Faces
+
+(modus-vivendi-theme-with-color-variables
+  (custom-theme-set-faces
+   'modus-vivendi
+;;;; custom faces
+   ;; these bespoke faces are inherited by other constructs below
+;;;;; subtle coloured backgrounds
+   `(modus-theme-subtle-red ((,class :background ,red-subtle-bg :foreground ,fg-dim)))
+   `(modus-theme-subtle-green ((,class :background ,green-subtle-bg :foreground ,fg-dim)))
+   `(modus-theme-subtle-yellow ((,class :background ,yellow-subtle-bg :foreground ,fg-dim)))
+   `(modus-theme-subtle-blue ((,class :background ,blue-subtle-bg :foreground ,fg-dim)))
+   `(modus-theme-subtle-magenta ((,class :background ,magenta-subtle-bg :foreground ,fg-dim)))
+   `(modus-theme-subtle-cyan ((,class :background ,cyan-subtle-bg :foreground ,fg-dim)))
+   `(modus-theme-subtle-neutral ((,class :background ,bg-inactive :foreground ,fg-inactive)))
+;;;;; intense coloured backgrounds
+   `(modus-theme-intense-red ((,class :background ,red-intense-bg :foreground ,fg-main)))
+   `(modus-theme-intense-green ((,class :background ,green-intense-bg :foreground ,fg-main)))
+   `(modus-theme-intense-yellow ((,class :background ,yellow-intense-bg :foreground ,fg-main)))
+   `(modus-theme-intense-blue ((,class :background ,blue-intense-bg :foreground ,fg-main)))
+   `(modus-theme-intense-magenta ((,class :background ,magenta-intense-bg :foreground ,fg-main)))
+   `(modus-theme-intense-cyan ((,class :background ,cyan-intense-bg :foreground ,fg-main)))
+   `(modus-theme-intense-neutral ((,class :background ,bg-active :foreground ,fg-main)))
+;;;;; refined background and foreground combinations
+   ;; general purpose styles that use an accented foreground against an
+   ;; accented background
+   `(modus-theme-refine-red ((,class :background ,red-refine-bg :foreground ,red-refine-fg)))
+   `(modus-theme-refine-green ((,class :background ,green-refine-bg :foreground ,green-refine-fg)))
+   `(modus-theme-refine-yellow ((,class :background ,yellow-refine-bg :foreground ,yellow-refine-fg)))
+   `(modus-theme-refine-blue ((,class :background ,blue-refine-bg :foreground ,blue-refine-fg)))
+   `(modus-theme-refine-magenta ((,class :background ,magenta-refine-bg :foreground ,magenta-refine-fg)))
+   `(modus-theme-refine-cyan ((,class :background ,cyan-refine-bg :foreground ,cyan-refine-fg)))
+;;;;; "active" combinations, mostly for use on the mode line
+   `(modus-theme-active-red ((,class :background ,red-active :foreground ,bg-active)))
+   `(modus-theme-active-green ((,class :background ,green-active :foreground ,bg-active)))
+   `(modus-theme-active-yellow ((,class :background ,yellow-active :foreground ,bg-active)))
+   `(modus-theme-active-blue ((,class :background ,blue-active :foreground ,bg-active)))
+   `(modus-theme-active-magenta ((,class :background ,magenta-active :foreground ,bg-active)))
+   `(modus-theme-active-cyan ((,class :background ,cyan-active :foreground ,bg-active)))
+;;;;; nuanced backgrounds
+   ;; useful for adding an accented background that is suitable for all
+   ;; main foreground colours (intended for use in Org source blocks)
+   `(modus-theme-nuanced-red ((,class :background ,red-nuanced-bg
+                                      ,@(and (>= emacs-major-version 27) '(:extend t)))))
+   `(modus-theme-nuanced-green ((,class :background ,green-nuanced-bg
+                                        ,@(and (>= emacs-major-version 27) '(:extend t)))))
+   `(modus-theme-nuanced-yellow ((,class :background ,yellow-nuanced-bg
+                                         ,@(and (>= emacs-major-version 27) '(:extend t)))))
+   `(modus-theme-nuanced-blue ((,class :background ,blue-nuanced-bg
+                                       ,@(and (>= emacs-major-version 27) '(:extend t)))))
+   `(modus-theme-nuanced-magenta ((,class :background ,magenta-nuanced-bg
+                                          ,@(and (>= emacs-major-version 27) '(:extend t)))))
+   `(modus-theme-nuanced-cyan ((,class :background ,cyan-nuanced-bg
+                                       ,@(and (>= emacs-major-version 27) '(:extend t)))))
+;;;;; fringe-specific combinations
+   `(modus-theme-fringe-red ((,class :background ,red-fringe-bg :foreground ,fg-dim)))
+   `(modus-theme-fringe-green ((,class :background ,green-fringe-bg :foreground ,fg-dim)))
+   `(modus-theme-fringe-yellow ((,class :background ,yellow-fringe-bg :foreground ,fg-dim)))
+   `(modus-theme-fringe-blue ((,class :background ,blue-fringe-bg :foreground ,fg-dim)))
+   `(modus-theme-fringe-magenta ((,class :background ,magenta-fringe-bg :foreground ,fg-dim)))
+   `(modus-theme-fringe-cyan ((,class :background ,cyan-fringe-bg :foreground ,fg-dim)))
+;;;;; special base values
+   ;; these are closer to the grayscale than the accents defined above
+   ;; and should only be used when the next closest alternative would be
+   ;; a greyscale value than an accented one
+   `(modus-theme-special-cold ((,class :background ,bg-special-cold :foreground ,fg-special-cold)))
+   `(modus-theme-special-mild ((,class :background ,bg-special-mild :foreground ,fg-special-mild)))
+   `(modus-theme-special-warm ((,class :background ,bg-special-warm :foreground ,fg-special-warm)))
+   `(modus-theme-special-calm ((,class :background ,bg-special-calm :foreground ,fg-special-calm)))
+;;;;; diff-specific combinations
+   ;; intended for `diff-mode' or equivalent
+   `(modus-theme-diff-added ((,class :background ,bg-diff-added :foreground ,fg-diff-added)))
+   `(modus-theme-diff-changed ((,class :background ,bg-diff-changed :foreground ,fg-diff-changed)))
+   `(modus-theme-diff-removed ((,class :background ,bg-diff-removed :foreground ,fg-diff-removed)))
+   `(modus-theme-diff-refine-added ((,class :background ,bg-diff-refine-added :foreground ,fg-diff-refine-added)))
+   `(modus-theme-diff-refine-changed ((,class :background ,bg-diff-refine-changed :foreground ,fg-diff-refine-changed)))
+   `(modus-theme-diff-refine-removed ((,class :background ,bg-diff-refine-removed :foreground ,fg-diff-refine-removed)))
+   `(modus-theme-diff-focus-added ((,class :background ,bg-diff-focus-added :foreground ,fg-diff-focus-added)))
+   `(modus-theme-diff-focus-changed ((,class :background ,bg-diff-focus-changed :foreground ,fg-diff-focus-changed)))
+   `(modus-theme-diff-focus-removed ((,class :background ,bg-diff-focus-removed :foreground ,fg-diff-focus-removed)))
+   `(modus-theme-diff-heading ((,class :background ,bg-diff-heading :foreground ,fg-diff-heading)))
+;;;;; mark indicators
+   ;; colour combinations intended for Dired, Ibuffer, or equivalent
+   `(modus-theme-header ((,class :inherit bold :foreground ,fg-main)))
+   `(modus-theme-mark-alt ((,class :inherit bold :background ,bg-mark-alt :foreground ,fg-mark-alt)))
+   `(modus-theme-mark-del ((,class :inherit bold :background ,bg-mark-del :foreground ,fg-mark-del)))
+   `(modus-theme-mark-sel ((,class :inherit bold :background ,bg-mark-sel :foreground ,fg-mark-sel)))
+   `(modus-theme-mark-symbol ((,class :inherit bold :foreground ,blue-alt)))
+;;;;; other custom faces
+   `(modus-theme-hl-line ((,class :background ,(if modus-vivendi-theme-intense-hl-line
+                                                   bg-active bg-hl-line)
+                                  (and (>= emacs-major-version 27) '(:extend t)))))
+;;;; standard faces
+;;;;; absolute essentials
+   `(default ((,class :background ,bg-main :foreground ,fg-main)))
+   `(cursor ((,class :background ,fg-main)))
+   `(fringe ((,class ,@(modus-vivendi-theme-fringe bg-inactive bg-active)
+                     :foreground ,fg-main)))
+   `(vertical-border ((,class :foreground ,fg-window-divider-inner)))
+;;;;; basic and/or ungrouped styles
+   ;; Modify the `bold' face to change the weight of all "bold" elements
+   ;; defined by the theme.  You need a typeface that supports a
+   ;; multitude of heavier weights than the regular one and then you
+   ;; must specify the exact name of the one you wish to apply.  Example
+   ;; for your init.el:
+   ;;
+   ;; (set-face-attribute 'bold nil :weight 'semibold)
+   `(bold ((,class :weight bold)))
+   `(comint-highlight-input ((,class :inherit bold)))
+   `(comint-highlight-prompt ((,class ,@(modus-vivendi-theme-bold-weight)
+                                      ,@(modus-vivendi-theme-prompt cyan
+                                                                    blue-nuanced-bg
+                                                                    blue-alt
+                                                                    blue-refine-bg
+                                                                    fg-main))))
+   `(error ((,class :inherit bold :foreground ,red)))
+   `(escape-glyph ((,class :foreground ,fg-escape-char-construct)))
+   `(file-name-shadow ((,class :foreground ,fg-unfocused)))
+   `(header-line ((,class :background ,bg-header :foreground ,fg-header)))
+   `(header-line-highlight ((,class :inherit modus-theme-active-blue)))
+   `(homoglyph ((,class :foreground ,fg-escape-char-construct)))
+   `(ibuffer-locked-buffer ((,class :foreground ,yellow-alt-other)))
+   `(italic ((,class :slant italic)))
+   `(nobreak-hyphen ((,class :foreground ,fg-escape-char-construct)))
+   `(nobreak-space ((,class :foreground ,fg-escape-char-construct :underline t)))
+   `(minibuffer-prompt ((,class ,@(modus-vivendi-theme-prompt cyan-alt-other
+                                                              cyan-nuanced-bg
+                                                              cyan
+                                                              cyan-refine-bg
+                                                              fg-main))))
+   `(mm-command-output ((,class :foreground ,red-alt-other)))
+   `(mm-uu-extract ((,class :background ,bg-dim :foreground ,fg-special-mild)))
+   `(next-error ((,class :inherit modus-theme-subtle-red)))
+   `(rectangle-preview ((,class :inherit modus-theme-special-mild)))
+   `(region ((,class :background ,bg-region :foreground ,fg-main)))
+   `(secondary-selection ((,class :inherit modus-theme-special-cold)))
+   `(shadow ((,class :foreground ,fg-alt)))
+   `(success ((,class :inherit bold :foreground ,green)))
+   `(trailing-whitespace ((,class :background ,red-intense-bg)))
+   `(warning ((,class :inherit bold :foreground ,yellow)))
+;;;;; buttons, links, widgets
+   `(button ((,class :foreground ,blue-alt-other :underline t)))
+   `(link ((,class :foreground ,blue-alt-other :underline t)))
+   `(link-visited ((,class :foreground ,magenta-alt-other :underline t)))
+   `(tooltip ((,class :background ,bg-special-cold :foreground ,fg-main)))
+   `(widget-button ((,class :inherit button)))
+   `(widget-button-pressed ((,class :inherit button :foreground ,magenta)))
+   `(widget-documentation ((,class :foreground ,green)))
+   `(widget-field ((,class :background ,bg-alt :foreground ,fg-dim)))
+   `(widget-inactive ((,class :background ,bg-inactive :foreground ,fg-inactive)))
+   `(widget-single-line-field ((,class :inherit widget-field)))
+;;;;; ag
+   `(ag-hit-face ((,class :foreground ,fg-special-cold)))
+   `(ag-match-face ((,class :inherit modus-theme-special-calm)))
+;;;;; alert
+   `(alert-high-face ((,class :inherit bold :foreground ,red-alt)))
+   `(alert-low-face ((,class :foreground ,fg-special-mild)))
+   `(alert-moderate-face ((,class :inherit bold :foreground ,yellow)))
+   `(alert-trivial-face ((,class :foreground ,fg-special-calm)))
+   `(alert-urgent-face ((,class :inherit bold :foreground ,red-intense)))
+;;;;; all-the-icons
+   `(all-the-icons-blue ((,class :foreground ,blue)))
+   `(all-the-icons-blue-alt ((,class :foreground ,blue-alt)))
+   `(all-the-icons-cyan ((,class :foreground ,cyan)))
+   `(all-the-icons-cyan-alt ((,class :foreground ,cyan-alt)))
+   `(all-the-icons-dblue ((,class :foreground ,blue-alt-other)))
+   `(all-the-icons-dcyan ((,class :foreground ,cyan-alt-other)))
+   `(all-the-icons-dgreen ((,class :foreground ,green-alt-other)))
+   `(all-the-icons-dired-dir-face ((,class :foreground ,blue)))
+   `(all-the-icons-dmaroon ((,class :foreground ,magenta-alt-other)))
+   `(all-the-icons-dorange ((,class :foreground ,red-alt-other)))
+   `(all-the-icons-dpink ((,class :foreground ,magenta)))
+   `(all-the-icons-dpurple ((,class :foreground ,magenta-alt)))
+   `(all-the-icons-dred ((,class :foreground ,red)))
+   `(all-the-icons-dsilver ((,class :foreground ,fg-special-cold)))
+   `(all-the-icons-dyellow ((,class :foreground ,yellow)))
+   `(all-the-icons-green ((,class :foreground ,green)))
+   `(all-the-icons-lblue ((,class :foreground ,blue-refine-fg)))
+   `(all-the-icons-lcyan ((,class :foreground ,cyan-refine-fg)))
+   `(all-the-icons-lgreen ((,class :foreground ,green-refine-fg)))
+   `(all-the-icons-lmaroon ((,class :foreground ,magenta-refine-fg)))
+   `(all-the-icons-lorange ((,class :foreground ,red-refine-fg)))
+   `(all-the-icons-lpink ((,class :foreground ,magenta-refine-fg)))
+   `(all-the-icons-lpurple ((,class :foreground ,magenta-refine-fg)))
+   `(all-the-icons-lred ((,class :foreground ,red-refine-fg)))
+   `(all-the-icons-lsilver ((,class :foreground ,fg-special-cold)))
+   `(all-the-icons-lyellow ((,class :foreground ,yellow-refine-fg)))
+   `(all-the-icons-maroon ((,class :foreground ,magenta)))
+   `(all-the-icons-orange ((,class :foreground ,red-alt)))
+   `(all-the-icons-pink ((,class :foreground ,magenta)))
+   `(all-the-icons-purple ((,class :foreground ,magenta-alt)))
+   `(all-the-icons-purple-alt ((,class :foreground ,magenta-alt-other)))
+   `(all-the-icons-red ((,class :foreground ,red)))
+   `(all-the-icons-red-alt ((,class :foreground ,red-alt)))
+   `(all-the-icons-silver ((,class :foreground ,fg-special-cold)))
+   `(all-the-icons-yellow ((,class :foreground ,yellow)))
+;;;;; annotate
+   `(annotate-annotation ((,class :inherit modus-theme-subtle-blue)))
+   `(annotate-annotation-secondary ((,class :inherit modus-theme-subtle-green)))
+   `(annotate-highlight ((,class :background ,blue-nuanced-bg :underline ,blue-intense)))
+   `(annotate-highlight-secondary ((,class :background ,green-nuanced-bg :underline ,green-intense)))
+;;;;; anzu
+   `(anzu-match-1 ((,class :inherit modus-theme-subtle-cyan)))
+   `(anzu-match-2 ((,class :inherit modus-theme-subtle-green)))
+   `(anzu-match-3 ((,class :inherit modus-theme-subtle-yellow)))
+   `(anzu-mode-line ((,class :inherit bold :foreground ,green-active)))
+   `(anzu-mode-line-no-match ((,class :inherit bold :foreground ,red-active)))
+   `(anzu-replace-highlight ((,class :inherit modus-theme-refine-yellow :underline t)))
+   `(anzu-replace-to ((,class :inherit (modus-theme-intense-green bold))))
+;;;;; apropos
+   `(apropos-function-button ((,class :foreground ,magenta-alt-other :underline t)))
+   `(apropos-keybinding ((,class :inherit bold :foreground ,cyan)))
+   `(apropos-misc-button ((,class :foreground ,cyan-alt-other :underline t)))
+   `(apropos-property ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,magenta-alt)))
+   `(apropos-symbol ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,blue-nuanced :underline t)))
+   `(apropos-user-option-button ((,class :foreground ,green-alt-other :underline t)))
+   `(apropos-variable-button ((,class :foreground ,blue :underline t)))
+;;;;; apt-sources-list
+   `(apt-sources-list-components ((,class :foreground ,cyan)))
+   `(apt-sources-list-options ((,class :foreground ,yellow)))
+   `(apt-sources-list-suite ((,class :foreground ,green)))
+   `(apt-sources-list-type ((,class :foreground ,magenta)))
+   `(apt-sources-list-uri ((,class :foreground ,blue)))
+;;;;; artbollocks-mode
+   `(artbollocks-face ((,class :foreground ,cyan-nuanced :underline ,fg-lang-note)))
+   `(artbollocks-lexical-illusions-face ((,class :background ,bg-alt :foreground ,red-alt :underline t)))
+   `(artbollocks-passive-voice-face ((,class :foreground ,yellow-nuanced :underline ,fg-lang-warning)))
+   `(artbollocks-weasel-words-face ((,class :foreground ,red-nuanced :underline ,fg-lang-error)))
+;;;;; auctex and Tex
+   `(font-latex-bold-face ((,class :inherit bold :foreground ,fg-special-calm)))
+   `(font-latex-doctex-documentation-face ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
+   `(font-latex-doctex-preprocessor-face ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,red-alt-other)))
+   `(font-latex-italic-face ((,class :foreground ,fg-special-calm :slant italic)))
+   `(font-latex-math-face ((,class :foreground ,cyan-alt-other)))
+   `(font-latex-script-char-face ((,class :foreground ,cyan-alt-other)))
+   `(font-latex-sectioning-0-face ((,class :inherit ,modus-theme-variable-pitch :foreground ,blue-nuanced)))
+   `(font-latex-sectioning-1-face ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,blue-nuanced)))
+   `(font-latex-sectioning-2-face ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,blue-nuanced)))
+   `(font-latex-sectioning-3-face ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,blue-nuanced)))
+   `(font-latex-sectioning-4-face ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,blue-nuanced)))
+   `(font-latex-sectioning-5-face ((,class :inherit ,modus-theme-variable-pitch :foreground ,blue-nuanced)))
+   `(font-latex-sedate-face ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,magenta-alt-other)))
+   `(font-latex-slide-title-face ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,cyan-nuanced
+                                          ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-4))))
+   `(font-latex-string-face ((,class :foreground ,blue-alt)))
+   `(font-latex-subscript-face ((,class :height 0.95)))
+   `(font-latex-superscript-face ((,class :height 0.95)))
+   `(font-latex-verbatim-face ((,class :background ,bg-dim :foreground ,fg-special-mild)))
+   `(font-latex-warning-face ((,class :foreground ,yellow-alt-other)))
+   `(tex-match ((,class :foreground ,blue-alt-other)))
+   `(tex-verbatim ((,class :background ,bg-dim :foreground ,fg-special-mild)))
+   `(texinfo-heading ((,class :foreground ,magenta)))
+   `(TeX-error-description-error ((,class :inherit bold :foreground ,red)))
+   `(TeX-error-description-help ((,class :foreground ,blue)))
+   `(TeX-error-description-tex-said ((,class :foreground ,blue)))
+   `(TeX-error-description-warning ((,class :inherit bold :foreground ,yellow)))
+;;;;; auto-dim-other-buffers
+   `(auto-dim-other-buffers-face ((,class :background ,bg-alt)))
+;;;;; avy
+   `(avy-background-face ((,class :background ,bg-dim :foreground ,fg-dim)))
+   `(avy-goto-char-timer-face ((,class :inherit (modus-theme-intense-yellow bold))))
+   `(avy-lead-face ((,class :inherit (modus-theme-intense-magenta bold))))
+   `(avy-lead-face-0 ((,class :inherit (modus-theme-intense-blue bold))))
+   `(avy-lead-face-1 ((,class :inherit (modus-theme-intense-red bold))))
+   `(avy-lead-face-2 ((,class :inherit (modus-theme-intense-green bold))))
+;;;;; aw (ace-window)
+   `(aw-background-face ((,class :background ,bg-dim :foreground ,fg-dim)))
+   `(aw-key-face ((,class :inherit bold :foreground ,blue-intense)))
+   `(aw-leading-char-face ((,class :inherit bold :height 1.5 :background ,bg-main :foreground ,red-intense)))
+   `(aw-minibuffer-leading-char-face ((,class :foreground ,magenta-active)))
+   `(aw-mode-line-face ((,class :inherit bold)))
+;;;;; bm
+   `(bm-face ((,class :inherit modus-theme-subtle-yellow
+                      ,@(and (>= emacs-major-version 27) '(:extend t)))))
+   `(bm-fringe-face ((,class :inherit modus-theme-fringe-yellow)))
+   `(bm-fringe-persistent-face ((,class :inherit modus-theme-fringe-blue)))
+   `(bm-persistent-face ((,class :inherit modus-theme-intense-blue
+                                 ,@(and (>= emacs-major-version 27) '(:extend t)))))
+;;;;; bongo
+   `(bongo-album-title ((,class :foreground ,cyan-active)))
+   `(bongo-artist ((,class :foreground ,magenta-active)))
+   `(bongo-currently-playing-track ((,class :inherit bold)))
+   `(bongo-elapsed-track-part ((,class :inherit modus-theme-subtle-magenta :underline t)))
+   `(bongo-filled-seek-bar ((,class :background ,blue-subtle-bg :foreground ,fg-main)))
+   `(bongo-marked-track ((,class :foreground ,fg-mark-alt)))
+   `(bongo-marked-track-line ((,class :background ,bg-mark-alt)))
+   `(bongo-played-track ((,class :foreground ,fg-unfocused :strike-through t)))
+   `(bongo-track-length ((,class :foreground ,blue-alt-other)))
+   `(bongo-track-title ((,class :foreground ,blue-active)))
+   `(bongo-unfilled-seek-bar ((,class :background ,blue-nuanced-bg :foreground ,fg-main)))
+;;;;; boon
+   `(boon-modeline-cmd ((,class :inherit modus-theme-active-blue)))
+   `(boon-modeline-ins ((,class :inherit modus-theme-active-red)))
+   `(boon-modeline-off ((,class :inherit modus-theme-active-yellow)))
+   `(boon-modeline-spc ((,class :inherit modus-theme-active-green)))
+;;;;; breakpoint (built-in gdb-mi.el)
+   `(breakpoint-disabled ((,class :foreground ,fg-alt)))
+   `(breakpoint-enabled ((,class :inherit bold :foreground ,red)))
+;;;;; buffer-expose
+   `(buffer-expose-ace-char-face ((,class :inherit bold :foreground ,red-active)))
+   `(buffer-expose-mode-line-face ((,class :foreground ,cyan-active)))
+   `(buffer-expose-selected-face ((,class :inherit modus-theme-special-mild)))
+;;;;; calendar and diary
+   `(calendar-month-header ((,class :inherit bold :foreground ,fg-main)))
+   `(calendar-today ((,class :underline t)))
+   `(calendar-weekday-header ((,class :foreground ,fg-dim)))
+   `(calendar-weekend-header ((,class :foreground ,fg-alt)))
+   `(diary ((,class :foreground ,cyan-alt-other)))
+   `(diary-anniversary ((,class :foreground ,red-alt-other)))
+   `(diary-time ((,class :foreground ,blue-alt)))
+   `(holiday ((,class :foreground ,magenta-alt)))
+;;;;; calfw
+   `(cfw:face-annotation ((,class :background ,bg-alt :foreground ,fg-alt)))
+   `(cfw:face-day-title ((,class :background ,bg-alt :foreground ,fg-main)))
+   `(cfw:face-default-content ((,class :foreground ,green-alt)))
+   `(cfw:face-default-day ((,class :inherit (cfw:face-day-title bold))))
+   `(cfw:face-disable ((,class :background ,bg-inactive :foreground ,fg-inactive)))
+   `(cfw:face-grid ((,class :foreground ,fg-inactive)))
+   `(cfw:face-header ((,class :inherit bold ::foreground ,fg-main)))
+   `(cfw:face-holiday ((,class :inherit bold :background ,bg-alt :foreground ,magenta)))
+   `(cfw:face-periods ((,class :foreground ,cyan-alt-other)))
+   `(cfw:face-saturday ((,class :inherit bold :background ,bg-alt :foreground ,magenta-alt)))
+   `(cfw:face-select ((,class :inherit modus-theme-intense-blue)))
+   `(cfw:face-sunday ((,class :inherit bold :background ,bg-alt :foreground ,magenta-alt-other)))
+   `(cfw:face-title ((,class :inherit ,modus-theme-variable-pitch
+                             :foreground ,fg-special-warm
+                             ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-4))))
+   `(cfw:face-today ((,class :inherit bold :foreground ,blue)))
+   `(cfw:face-today-title ((,class :inherit modus-theme-special-mild :box t)))
+   `(cfw:face-toolbar ((,class :background ,bg-active :foreground ,bg-active)))
+   `(cfw:face-toolbar-button-off ((,class :background ,bg-alt :foreground ,cyan)))
+   `(cfw:face-toolbar-button-on ((,class :inherit bold :background ,bg-main :foreground ,blue-intense)))
+;;;;; centaur-tabs
+   `(centaur-tabs-active-bar-face ((,class :background ,fg-tab-active)))
+   `(centaur-tabs-close-mouse-face ((,class :inherit bold :foreground ,red-active :underline t)))
+   `(centaur-tabs-close-selected ((,class :inherit centaur-tabs-selected)))
+   `(centaur-tabs-close-unselected ((,class :inherit centaur-tabs-unselected)))
+   `(centaur-tabs-modified-marker-selected ((,class :inherit centaur-tabs-selected)))
+   `(centaur-tabs-modified-marker-unselected ((,class :inherit centaur-tabs-unselected)))
+   `(centaur-tabs-default ((,class :background ,bg-main :foreground ,bg-main)))
+   `(centaur-tabs-selected ((,class :inherit bold :background ,bg-tab-active :foreground ,fg-main)))
+   `(centaur-tabs-selected-modified ((,class :background ,bg-tab-active :foreground ,fg-main :slant italic)))
+   `(centaur-tabs-unselected ((,class :background ,bg-tab-inactive :foreground ,fg-dim)))
+   `(centaur-tabs-unselected-modified ((,class :background ,bg-tab-inactive :foreground ,fg-dim :slant italic)))
+;;;;; change-log and log-view (`vc-print-log' and `vc-print-root-log')
+   `(change-log-acknowledgment ((,class :foreground ,fg-alt)))
+   `(change-log-conditionals ((,class :foreground ,magenta-alt)))
+   `(change-log-date ((,class :foreground ,cyan-alt-other)))
+   `(change-log-email ((,class :foreground ,cyan)))
+   `(change-log-file ((,class :foreground ,blue)))
+   `(change-log-function ((,class :foreground ,green-alt-other)))
+   `(change-log-list ((,class :foreground ,magenta-alt-other)))
+   `(change-log-name ((,class :foreground ,cyan)))
+   `(log-edit-header ((,class :inherit bold :foreground ,green-alt-other)))
+   `(log-edit-summary ((,class :foreground ,magenta-alt-other)))
+   `(log-edit-unknown-header ((,class :foreground ,fg-alt)))
+   `(log-view-file ((,class :inherit bold :foreground ,fg-special-cold)))
+   `(log-view-message ((,class :foreground ,fg-alt)))
+;;;;; cider
+   `(cider-debug-code-overlay-face ((,class :background ,bg-alt)))
+   `(cider-debug-prompt-face ((,class :foreground ,magenta-alt :underline t)))
+   `(cider-deprecated-face ((,class :inherit modus-theme-refine-yellow)))
+   `(cider-docview-emphasis-face ((,class :foreground ,fg-special-cold :slant italic)))
+   `(cider-docview-literal-face ((,class :foreground ,blue-alt)))
+   `(cider-docview-strong-face ((,class :inherit bold :foreground ,fg-special-cold)))
+   `(cider-docview-table-border-face ((,class :foreground ,fg-alt)))
+   `(cider-enlightened-face ((,class :box (:line-width -1 :color ,yellow-alt :style nil) :background ,bg-dim)))
+   `(cider-enlightened-local-face ((,class :inherit bold :foreground ,yellow-alt-other)))
+   `(cider-error-highlight-face ((,class :foreground ,red :underline t)))
+   `(cider-fragile-button-face ((,class :box (:line-width 3 :color ,fg-alt :style released-button) :foreground ,yellow)))
+   `(cider-fringe-good-face ((,class :foreground ,green-active)))
+   `(cider-instrumented-face ((,class :box (:line-width -1 :color ,red :style nil) :background ,bg-dim)))
+   `(cider-reader-conditional-face ((,class :foreground ,fg-special-warm :slant italic)))
+   `(cider-repl-input-face ((,class :inherit bold)))
+   `(cider-repl-prompt-face ((,class :foreground ,cyan-alt-other)))
+   `(cider-repl-stderr-face ((,class :inherit bold :foreground ,red)))
+   `(cider-repl-stdout-face ((,class :foreground ,blue)))
+   `(cider-result-overlay-face ((,class :box (:line-width -1 :color ,blue :style nil) :background ,bg-dim)))
+   `(cider-stacktrace-error-class-face ((,class :inherit bold :foreground ,red)))
+   `(cider-stacktrace-error-message-face ((,class :foreground ,red-alt-other :slant italic)))
+   `(cider-stacktrace-face ((,class :foreground ,fg-main)))
+   `(cider-stacktrace-filter-active-face ((,class :foreground ,cyan-alt :underline t)))
+   `(cider-stacktrace-filter-inactive-face ((,class :foreground ,cyan-alt)))
+   `(cider-stacktrace-fn-face ((,class :inherit bold :foreground ,fg-main)))
+   `(cider-stacktrace-ns-face ((,class :foreground ,fg-alt :slant italic)))
+   `(cider-stacktrace-promoted-button-face ((,class :box (:line-width 3 :color ,fg-alt :style released-button) :foreground ,red)))
+   `(cider-stacktrace-suppressed-button-face ((,class :box (:line-width 3 :color ,fg-alt :style pressed-button)
+                                                      :background ,bg-alt :foreground ,fg-alt)))
+   `(cider-test-error-face ((,class :inherit modus-theme-subtle-red)))
+   `(cider-test-failure-face ((,class :inherit (modus-theme-intense-red bold))))
+   `(cider-test-success-face ((,class :inherit modus-theme-intense-green)))
+   `(cider-traced-face ((,class :box (:line-width -1 :color ,cyan :style nil) :background ,bg-dim)))
+   `(cider-warning-highlight-face ((,class :foreground ,yellow :underline t)))
+;;;;; circe (and lui)
+   `(circe-fool-face ((,class :foreground ,fg-alt)))
+   `(circe-highlight-nick-face ((,class :inherit bold :foreground ,blue)))
+   `(circe-prompt-face ((,class :inherit bold :foreground ,cyan-alt-other)))
+   `(circe-server-face ((,class :foreground ,fg-unfocused)))
+   `(lui-button-face ((,class :foreground ,blue :underline t)))
+   `(lui-highlight-face ((,class :foreground ,magenta-alt)))
+   `(lui-time-stamp-face ((,class :foreground ,blue-nuanced)))
+;;;;; color-rg
+   `(color-rg-font-lock-column-number ((,class :foreground ,magenta-alt-other)))
+   `(color-rg-font-lock-command ((,class :inherit bold :foreground ,fg-main)))
+   `(color-rg-font-lock-file ((,class :inherit bold :foreground ,fg-special-cold)))
+   `(color-rg-font-lock-flash ((,class :inherit modus-theme-intense-blue)))
+   `(color-rg-font-lock-function-location ((,class :inherit modus-theme-special-calm)))
+   `(color-rg-font-lock-header-line-directory ((,class :foreground ,blue-active)))
+   `(color-rg-font-lock-header-line-edit-mode ((,class :foreground ,magenta-active)))
+   `(color-rg-font-lock-header-line-keyword ((,class :foreground ,green-active)))
+   `(color-rg-font-lock-header-line-text ((,class :foreground ,fg-active)))
+   `(color-rg-font-lock-line-number ((,class :foreground ,fg-special-warm)))
+   `(color-rg-font-lock-mark-changed ((,class :inherit bold :foreground ,blue)))
+   `(color-rg-font-lock-mark-deleted ((,class :inherit bold :foreground ,red)))
+   `(color-rg-font-lock-match ((,class :inherit modus-theme-special-calm)))
+   `(color-rg-font-lock-position-splitter ((,class :foreground ,fg-alt)))
+;;;;; column-enforce-mode
+   `(column-enforce-face ((,class :inherit modus-theme-refine-yellow)))
+;;;;; company-mode
+   `(company-echo-common ((,class :foreground ,magenta-alt-other)))
+   `(company-preview ((,class :background ,bg-dim :foreground ,fg-dim)))
+   `(company-preview-common ((,class :foreground ,blue-alt)))
+   `(company-preview-search ((,class :inherit modus-theme-special-calm)))
+   `(company-scrollbar-bg ((,class :background ,bg-active)))
+   `(company-scrollbar-fg ((,class :background ,fg-active)))
+   `(company-template-field ((,class :inherit modus-theme-intense-magenta)))
+   `(company-tooltip ((,class :background ,bg-alt :foreground ,fg-alt)))
+   `(company-tooltip-annotation ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
+   `(company-tooltip-annotation-selection ((,class :inherit bold :foreground ,fg-main)))
+   `(company-tooltip-common ((,class :inherit bold :foreground ,blue-alt)))
+   `(company-tooltip-common-selection ((,class :foreground ,fg-main)))
+   `(company-tooltip-mouse ((,class :inherit modus-theme-intense-blue)))
+   `(company-tooltip-search ((,class :inherit (modus-theme-refine-cyan bold))))
+   `(company-tooltip-search-selection ((,class :inherit (modus-theme-intense-green bold) :underline t)))
+   `(company-tooltip-selection ((,class :inherit (modus-theme-subtle-cyan bold))))
+;;;;; company-posframe
+   `(company-posframe-active-backend-name ((,class :inherit bold :background ,bg-active :foreground ,blue-active)))
+   `(company-posframe-inactive-backend-name ((,class :background ,bg-active :foreground ,fg-active)))
+   `(company-posframe-metadata ((,class :background ,bg-inactive :foreground ,fg-inactive)))
+;;;;; compilation feedback
+   `(compilation-column-number ((,class :foreground ,magenta-alt-other)))
+   `(compilation-error ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,red)))
+   `(compilation-info ((,class :foreground ,fg-special-cold)))
+   `(compilation-line-number ((,class :foreground ,fg-special-warm)))
+   `(compilation-mode-line-exit ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,blue-active)))
+   `(compilation-mode-line-fail ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,red-active)))
+   `(compilation-mode-line-run ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,magenta-active)))
+   `(compilation-warning ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,yellow)))
+;;;;; completions
+   `(completions-annotations ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
+   `(completions-common-part ((,class ,@(modus-vivendi-theme-standard-completions
+                                         cyan-alt-other cyan-nuanced-bg
+                                         yellow-refine-bg yellow-refine-fg))))
+   `(completions-first-difference ((,class :inherit bold
+                                           ,@(modus-vivendi-theme-standard-completions
+                                              blue-alt-other blue-nuanced-bg
+                                              cyan-subtle-bg fg-dim))))
+;;;;; counsel
+   `(counsel-active-mode ((,class :foreground ,magenta-alt-other)))
+   `(counsel-application-name ((,class :foreground ,red-alt-other)))
+   `(counsel-key-binding ((,class :inherit bold :foreground ,blue-alt-other)))
+   `(counsel-outline-1 ((,class :inherit outline-1)))
+   `(counsel-outline-2 ((,class :inherit outline-2)))
+   `(counsel-outline-3 ((,class :inherit outline-3)))
+   `(counsel-outline-4 ((,class :inherit outline-4)))
+   `(counsel-outline-5 ((,class :inherit outline-5)))
+   `(counsel-outline-6 ((,class :inherit outline-6)))
+   `(counsel-outline-7 ((,class :inherit outline-7)))
+   `(counsel-outline-8 ((,class :inherit outline-8)))
+   `(counsel-outline-default ((,class :inherit bold :foreground ,green-alt-other)))
+   `(counsel-variable-documentation ((,class :foreground ,yellow-alt-other :slant ,modus-theme-slant)))
+;;;;; counsel-css
+   `(counsel-css-selector-depth-face-1 ((,class :foreground ,blue)))
+   `(counsel-css-selector-depth-face-2 ((,class :foreground ,cyan)))
+   `(counsel-css-selector-depth-face-3 ((,class :foreground ,green)))
+   `(counsel-css-selector-depth-face-4 ((,class :foreground ,yellow)))
+   `(counsel-css-selector-depth-face-5 ((,class :foreground ,magenta)))
+   `(counsel-css-selector-depth-face-6 ((,class :foreground ,red)))
+;;;;; counsel-notmuch
+   `(counsel-notmuch-count-face ((,class :foreground ,cyan)))
+   `(counsel-notmuch-date-face ((,class :foreground ,blue)))
+   `(counsel-notmuch-people-face ((,class :foreground ,magenta)))
+   `(counsel-notmuch-subject-face ((,class :foreground ,magenta-alt-other)))
+;;;;; counsel-org-capture-string
+   `(counsel-org-capture-string-template-body-face ((,class :foreground ,fg-special-cold)))
+;;;;; cov
+   `(cov-coverage-not-run-face ((,class :foreground ,red-intense)))
+   `(cov-coverage-run-face ((,class :foreground ,green-intense)))
+   `(cov-heavy-face ((,class :foreground ,magenta-intense)))
+   `(cov-light-face ((,class :foreground ,blue-intense)))
+   `(cov-med-face ((,class :foreground ,yellow-intense)))
+   `(cov-none-face ((,class :foreground ,cyan-intense)))
+;;;;; csv-mode
+   `(csv-separator-face ((,class :background ,bg-special-cold :foreground ,fg-main)))
+;;;;; ctrlf
+   `(ctrlf-highlight-active ((,class :inherit (modus-theme-intense-green bold))))
+   `(ctrlf-highlight-line ((,class :inherit modus-theme-hl-line)))
+   `(ctrlf-highlight-passive ((,class :inherit modus-theme-refine-cyan)))
+;;;;; custom (M-x customize)
+   `(custom-button ((,class :box (:line-width 2 :color nil :style released-button)
+                            :background ,bg-active :foreground ,fg-main)))
+   `(custom-button-mouse ((,class :box (:line-width 2 :color nil :style released-button)
+                                  :background ,bg-active :foreground ,fg-active)))
+   `(custom-button-pressed ((,class :box (:line-width 2 :color nil :style pressed-button)
+                                    :background ,bg-active :foreground ,fg-main)))
+   `(custom-changed ((,class :inherit modus-theme-subtle-cyan)))
+   `(custom-comment ((,class :foreground ,fg-alt)))
+   `(custom-comment-tag ((,class :background ,bg-alt :foreground ,yellow-alt-other)))
+   `(custom-face-tag ((,class :inherit bold :foreground ,blue-intense)))
+   `(custom-group-tag ((,class :inherit bold :foreground ,green-intense)))
+   `(custom-group-tag-1 ((,class :inherit modus-theme-special-warm)))
+   `(custom-invalid ((,class :inherit (modus-theme-intense-red bold))))
+   `(custom-modified ((,class :inherit modus-theme-subtle-cyan)))
+   `(custom-rogue ((,class :inherit modus-theme-refine-magenta)))
+   `(custom-set ((,class :foreground ,blue-alt)))
+   `(custom-state ((,class :foreground ,cyan-alt-other)))
+   `(custom-themed ((,class :inherit modus-theme-subtle-blue)))
+   `(custom-variable-tag ((,class :inherit bold :foreground ,cyan)))
+;;;;; dap-mode
+   `(dap-mouse-eval-thing-face ((,class :box (:line-width -1 :color ,blue-active :style nil)
+                                        :background ,bg-active :foreground ,fg-main)))
+   `(dap-result-overlay-face ((,class :box (:line-width -1 :color ,bg-active :style nil)
+                                      :background ,bg-active :foreground ,fg-main)))
+   `(dap-ui-breakpoint-verified-fringe ((,class :inherit bold :foreground ,green-active)))
+   `(dap-ui-compile-errline ((,class :inherit bold :foreground ,red-intense)))
+   `(dap-ui-locals-scope-face ((,class :inherit bold :foreground ,magenta :underline t)))
+   `(dap-ui-locals-variable-face ((,class :inherit bold :foreground ,cyan)))
+   `(dap-ui-locals-variable-leaf-face ((,class :foreground ,cyan-alt-other :slant italic)))
+   `(dap-ui-marker-face ((,class :inherit modus-theme-subtle-blue)))
+   `(dap-ui-sessions-stack-frame-face ((,class :inherit bold :foreground ,magenta-alt)))
+   `(dap-ui-sessions-terminated-active-face ((,class :inherit bold :foreground ,fg-alt)))
+   `(dap-ui-sessions-terminated-face ((,class :foreground ,fg-alt)))
+;;;;; dashboard (emacs-dashboard)
+   `(dashboard-banner-logo-title ((,class :inherit bold :foreground ,fg-special-cold)))
+   `(dashboard-footer ((,class :inherit bold :foreground ,fg-special-mild)))
+   `(dashboard-heading ((,class :inherit bold :foreground ,fg-special-warm)))
+   `(dashboard-navigator ((,class :foreground ,cyan-alt-other)))
+   `(dashboard-text-banner ((,class :foreground ,fg-dim)))
+;;;;; deadgrep
+   `(deadgrep-filename-face ((,class :inherit bold :foreground ,fg-special-cold)))
+   `(deadgrep-match-face ((,class :inherit modus-theme-special-calm)))
+   `(deadgrep-meta-face ((,class :foreground ,fg-alt)))
+   `(deadgrep-regexp-metachar-face ((,class :inherit bold :foreground ,yellow-intense)))
+   `(deadgrep-search-term-face ((,class :inherit bold :foreground ,green-intense)))
+;;;;; debbugs
+   `(debbugs-gnu-archived ((,class :inverse-video t)))
+   `(debbugs-gnu-done ((,class :foreground ,fg-alt)))
+   `(debbugs-gnu-forwarded ((,class :foreground ,fg-special-warm)))
+   `(debbugs-gnu-handled ((,class :foreground ,green)))
+   `(debbugs-gnu-new ((,class :foreground ,red)))
+   `(debbugs-gnu-pending ((,class :foreground ,cyan)))
+   `(debbugs-gnu-stale-1 ((,class :foreground ,yellow-nuanced)))
+   `(debbugs-gnu-stale-2 ((,class :foreground ,yellow)))
+   `(debbugs-gnu-stale-3 ((,class :foreground ,yellow-alt)))
+   `(debbugs-gnu-stale-4 ((,class :foreground ,yellow-alt-other)))
+   `(debbugs-gnu-stale-5 ((,class :foreground ,red-alt)))
+   `(debbugs-gnu-tagged ((,class :foreground ,magenta-alt)))
+;;;;; define-word
+   `(define-word-face-1 ((,class :foreground ,yellow)))
+   `(define-word-face-2 ((,class :foreground ,fg-main)))
+;;;;; deft
+   `(deft-filter-string-error-face ((,class :inherit modus-theme-refine-red)))
+   `(deft-filter-string-face ((,class :foreground ,green-intense)))
+   `(deft-header-face ((,class :inherit bold :foreground ,fg-special-warm)))
+   `(deft-separator-face ((,class :foreground ,fg-alt)))
+   `(deft-summary-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
+   `(deft-time-face ((,class :foreground ,fg-special-cold)))
+   `(deft-title-face ((,class :inherit bold :foreground ,fg-main)))
+;;;;; dictionary
+   `(dictionary-button-face ((,class :inherit bold :foreground ,fg-special-cold)))
+   `(dictionary-reference-face ((,class :foreground ,blue-alt-other :underline t)))
+   `(dictionary-word-definition-face ((,class :foreground ,fg-main)))
+   `(dictionary-word-entry-face ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
+;;;;; diff-hl
+   `(diff-hl-change ((,class :inherit modus-theme-fringe-yellow)))
+   `(diff-hl-delete ((,class :inherit modus-theme-fringe-red)))
+   `(diff-hl-dired-change ((,class :inherit diff-hl-change)))
+   `(diff-hl-dired-delete ((,class :inherit diff-hl-delete)))
+   `(diff-hl-dired-ignored ((,class :inherit dired-ignored)))
+   `(diff-hl-dired-insert ((,class :inherit diff-hl-insert)))
+   `(diff-hl-dired-unknown ((,class :inherit dired-ignored)))
+   `(diff-hl-insert ((,class :inherit modus-theme-fringe-green)))
+   `(diff-hl-reverted-hunk-highlight ((,class :inherit (modus-theme-active-magenta bold))))
+;;;;; diff-mode
+   `(diff-added ((,class ,@(modus-vivendi-theme-diffs
+                            bg-main green
+                            bg-diff-focus-added fg-diff-focus-added))))
+   `(diff-changed ((,class ,@(modus-vivendi-theme-diffs
+                              bg-main yellow
+                              bg-diff-focus-changed fg-diff-focus-changed))))
+   `(diff-context ((,class :foreground ,fg-unfocused)))
+   `(diff-file-header ((,class :inherit bold :foreground ,blue)))
+   `(diff-function ((,class :foreground ,fg-special-cold)))
+   `(diff-header ((,class :foreground ,blue-nuanced)))
+   `(diff-hunk-header ((,class ,@(modus-vivendi-theme-diffs
+                                  bg-alt blue-alt
+                                  bg-diff-heading fg-diff-heading))))
+   `(diff-index ((,class :inherit bold :foreground ,blue-alt)))
+   `(diff-indicator-added ((,class :inherit diff-added)))
+   `(diff-indicator-changed ((,class :inherit diff-changed)))
+   `(diff-indicator-removed ((,class :inherit diff-removed)))
+   `(diff-nonexistent ((,class :inherit (modus-theme-neutral bold))))
+   `(diff-refine-added ((,class ,@(modus-vivendi-theme-diffs
+                                   bg-diff-added fg-diff-added
+                                   bg-diff-refine-added fg-diff-refine-added))))
+   `(diff-refine-changed ((,class ,@(modus-vivendi-theme-diffs
+                                     bg-diff-changed fg-diff-changed
+                                     bg-diff-refine-changed fg-diff-refine-changed))))
+   `(diff-refine-removed ((,class ,@(modus-vivendi-theme-diffs
+                                     bg-diff-removed fg-diff-removed
+                                     bg-diff-refine-removed fg-diff-refine-removed))))
+   `(diff-removed ((,class ,@(modus-vivendi-theme-diffs
+                              bg-main red
+                              bg-diff-focus-removed fg-diff-focus-removed))))
+;;;;; dim-autoload
+   `(dim-autoload-cookie-line ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
+;;;;; dired
+   `(dired-directory ((,class :foreground ,blue)))
+   `(dired-flagged ((,class :inherit modus-theme-mark-del)))
+   `(dired-header ((,class :inherit modus-theme-header)))
+   `(dired-ignored ((,class :foreground ,fg-alt)))
+   `(dired-mark ((,class :inherit modus-theme-mark-symbol)))
+   `(dired-marked ((,class :inherit modus-theme-mark-sel)))
+   `(dired-perm-write ((,class :foreground ,fg-special-warm)))
+   `(dired-symlink ((,class :foreground ,cyan-alt :underline t)))
+   `(dired-warning ((,class :inherit bold :foreground ,yellow)))
+;;;;; dired-async
+   `(dired-async-failures ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,red-active)))
+   `(dired-async-message ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,green-active)))
+   `(dired-async-mode-message ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,cyan-active)))
+;;;;; dired-git
+   `(dired-git-branch-else ((,class :inherit bold :foreground ,magenta-alt)))
+   `(dired-git-branch-master ((,class :inherit bold :foreground ,magenta-alt-other)))
+;;;;; dired-git-info
+   `(dgi-commit-message-face ((,class :foreground ,fg-special-mild)))
+;;;;; dired-narrow
+   `(dired-narrow-blink ((,class :inherit (modus-theme-subtle-cyan bold))))
+;;;;; dired-subtree
+   ;; remove background from dired-subtree, else it breaks
+   ;; dired-{flagged,marked} and any other face that sets a background
+   ;; such as hl-line
+   `(dired-subtree-depth-1-face ((,class :background nil)))
+   `(dired-subtree-depth-2-face ((,class :background nil)))
+   `(dired-subtree-depth-3-face ((,class :background nil)))
+   `(dired-subtree-depth-4-face ((,class :background nil)))
+   `(dired-subtree-depth-5-face ((,class :background nil)))
+   `(dired-subtree-depth-6-face ((,class :background nil)))
+;;;;; diredfl
+   `(diredfl-autofile-name ((,class :inherit modus-theme-special-cold)))
+   `(diredfl-compressed-file-name ((,class :foreground ,green-alt-other)))
+   `(diredfl-compressed-file-suffix ((,class :foreground ,green-alt)))
+   `(diredfl-date-time ((,class :foreground ,fg-special-cold)))
+   `(diredfl-deletion ((,class :inherit modus-theme-mark-del)))
+   `(diredfl-deletion-file-name ((,class :inherit modus-theme-mark-del)))
+   `(diredfl-dir-heading ((,class :inherit modus-theme-header)))
+   `(diredfl-dir-name ((,class :inherit dired-directory)))
+   `(diredfl-dir-priv ((,class :foreground ,blue)))
+   `(diredfl-exec-priv ((,class :foreground ,red-alt-other)))
+   `(diredfl-executable-tag ((,class :foreground ,red-alt)))
+   `(diredfl-file-name ((,class :foreground ,fg-main)))
+   `(diredfl-file-suffix ((,class :foreground ,fg-special-warm)))
+   `(diredfl-flag-mark ((,class :inherit modus-theme-mark-sel)))
+   `(diredfl-flag-mark-line ((,class :inherit modus-theme-mark-sel)))
+   `(diredfl-ignored-file-name ((,class :foreground ,fg-inactive)))
+   `(diredfl-link-priv ((,class :foreground ,blue-alt-other)))
+   `(diredfl-no-priv ((,class :foreground ,fg-inactive)))
+   `(diredfl-number ((,class :foreground ,cyan)))
+   `(diredfl-other-priv ((,class :foreground ,yellow)))
+   `(diredfl-rare-priv ((,class :foreground ,magenta-alt-other)))
+   `(diredfl-read-priv ((,class :foreground ,magenta)))
+   `(diredfl-symlink ((,class :foreground ,cyan-alt :underline t)))
+   `(diredfl-tagged-autofile-name ((,class :inherit modus-theme-refine-magenta)))
+   `(diredfl-write-priv ((,class :foreground ,cyan-alt-other)))
+;;;;; disk-usage
+   `(disk-usage-children ((,class :foreground ,yellow)))
+   `(disk-usage-inaccessible ((,class :inherit bold :foreground ,red)))
+   `(disk-usage-percent ((,class :foreground ,green)))
+   `(disk-usage-size ((,class :foreground ,cyan)))
+   `(disk-usage-symlink ((,class :foreground ,blue :underline t)))
+   `(disk-usage-symlink-directory ((,class :inherit bold :foreground ,blue-alt)))
+;;;;; doom-modeline
+   `(doom-modeline-bar ((,class :inherit modus-theme-active-blue)))
+   `(doom-modeline-bar-inactive ((,class :background ,fg-inactive :foreground ,bg-main)))
+   `(doom-modeline-battery-charging ((,class :foreground ,green-active)))
+   `(doom-modeline-battery-critical ((,class :inherit bold :foreground ,red-active)))
+   `(doom-modeline-battery-error ((,class :inherit modus-theme-active-red)))
+   `(doom-modeline-battery-full ((,class :foreground ,blue-active)))
+   `(doom-modeline-battery-normal ((,class :foreground ,fg-active)))
+   `(doom-modeline-battery-warning ((,class :inherit bold :foreground ,yellow-active)))
+   `(doom-modeline-buffer-file ((,class :inherit bold :foreground ,fg-active)))
+   `(doom-modeline-buffer-major-mode ((,class :inherit bold :foreground ,cyan-active)))
+   `(doom-modeline-buffer-minor-mode ((,class :foreground ,fg-inactive)))
+   `(doom-modeline-buffer-modified ((,class :inherit bold :foreground ,magenta-active)))
+   `(doom-modeline-buffer-path ((,class :inherit bold :foreground ,fg-active)))
+   `(doom-modeline-debug ((,class :inherit bold :foreground ,yellow-active)))
+   `(doom-modeline-debug-visual ((,class :inherit bold :foreground ,red-active)))
+   `(doom-modeline-evil-emacs-state ((,class :inherit bold :foreground ,magenta-active)))
+   `(doom-modeline-evil-insert-state ((,class :inherit bold :foreground ,green-active)))
+   `(doom-modeline-evil-motion-state ((,class :inherit bold :foreground ,fg-inactive)))
+   `(doom-modeline-evil-normal-state ((,class :inherit bold :foreground ,fg-active)))
+   `(doom-modeline-evil-operator-state ((,class :inherit bold :foreground ,blue-active)))
+   `(doom-modeline-evil-replace-state ((,class :inherit bold :foreground ,red-active)))
+   `(doom-modeline-evil-visual-state ((,class :inherit bold :foreground ,cyan-active)))
+   `(doom-modeline-highlight ((,class :inherit bold :foreground ,blue-active)))
+   `(doom-modeline-host ((,class :slant italic)))
+   `(doom-modeline-info ((,class :foreground ,green-active)))
+   `(doom-modeline-lsp-error ((,class :inherit bold :foreground ,red-active)))
+   `(doom-modeline-lsp-success ((,class :inherit bold :foreground ,green-active)))
+   `(doom-modeline-lsp-warning ((,class :inherit bold :foreground ,yellow-active)))
+   `(doom-modeline-panel ((,class :inherit modus-theme-active-blue)))
+   `(doom-modeline-persp-buffer-not-in-persp ((,class :foreground ,yellow-active :slant italic)))
+   `(doom-modeline-persp-name ((,class :foreground ,fg-active)))
+   `(doom-modeline-project-dir ((,class :inherit bold :foreground ,blue-active)))
+   `(doom-modeline-project-parent-dir ((,class :foreground ,blue-active)))
+   `(doom-modeline-project-root-dir ((,class :foreground ,fg-active)))
+   `(doom-modeline-unread-number ((,class :foreground ,fg-active :slant italic)))
+   `(doom-modeline-urgent ((,class :inherit bold :foreground ,red-active)))
+   `(doom-modeline-warning ((,class :inherit bold :foreground ,yellow-active)))
+;;;;; dynamic-ruler
+   `(dynamic-ruler-negative-face ((,class :inherit modus-theme-intense-neutral)))
+   `(dynamic-ruler-positive-face ((,class :inherit modus-theme-intense-yellow)))
+;;;;; easy-jekyll
+   `(easy-jekyll-help-face ((,class :background ,bg-dim :foreground ,cyan-alt-other)))
+;;;;; easy-kill
+   `(easy-kill-origin ((,class :inherit modus-theme-subtle-red)))
+   `(easy-kill-selection ((,class :inherit modus-theme-subtle-yellow)))
+;;;;; ebdb
+   `(ebdb-address-default ((,class :foreground ,fg-main)))
+   `(ebdb-db-char ((,class :foreground ,fg-special-cold)))
+   `(ebdb-defunct ((,class :foreground ,fg-alt)))
+   `(ebdb-field-hidden ((,class :foreground ,magenta)))
+   `(ebdb-field-url ((,class :foreground ,blue)))
+   `(ebdb-label ((,class :foreground ,cyan-alt-other)))
+   `(ebdb-mail-default ((,class :foreground ,fg-main)))
+   `(ebdb-mail-primary ((,class :foreground ,blue-alt)))
+   `(ebdb-marked ((,class :background ,cyan-intense-bg)))
+   `(ebdb-organization-name ((,class :foreground ,fg-special-calm)))
+   `(ebdb-person-name ((,class :foreground ,magenta-alt-other)))
+   `(ebdb-phone-default ((,class :foreground ,fg-special-warm)))
+   `(ebdb-role-defunct ((,class :foreground ,fg-alt)))
+   `(eieio-custom-slot-tag-face ((,class :foreground ,red-alt)))
+;;;;; ediff
+   `(ediff-current-diff-A ((,class ,@(modus-vivendi-theme-diffs
+                                      bg-alt red
+                                      bg-diff-removed fg-diff-removed))))
+   `(ediff-current-diff-Ancestor ((,class ,@(modus-vivendi-theme-diffs
+                                             bg-alt fg-special-cold
+                                             bg-special-cold fg-special-cold))))
+   `(ediff-current-diff-B ((,class ,@(modus-vivendi-theme-diffs
+                                      bg-alt green
+                                      bg-diff-added fg-diff-added))))
+   `(ediff-current-diff-C ((,class ,@(modus-vivendi-theme-diffs
+                                      bg-alt yellow
+                                      bg-diff-changed fg-diff-changed))))
+   `(ediff-even-diff-A ((,class :background ,bg-diff-neutral-1 :foreground ,fg-diff-neutral-1)))
+   `(ediff-even-diff-Ancestor ((,class :background ,bg-diff-neutral-2 :foreground ,fg-diff-neutral-1)))
+   `(ediff-even-diff-B ((,class :background ,bg-diff-neutral-1 :foreground ,fg-diff-neutral-1)))
+   `(ediff-even-diff-C ((,class :background ,bg-diff-neutral-2 :foreground ,fg-diff-neutral-2)))
+   `(ediff-fine-diff-A ((,class :background ,bg-diff-focus-removed :foreground ,fg-diff-focus-removed)))
+   `(ediff-fine-diff-Ancestor ((,class :inherit modus-theme-refine-cyan)))
+   `(ediff-fine-diff-B ((,class :background ,bg-diff-focus-added :foreground ,fg-diff-focus-added)))
+   `(ediff-fine-diff-C ((,class :background ,bg-diff-focus-changed :foreground ,fg-diff-focus-changed)))
+   `(ediff-odd-diff-A ((,class :background ,bg-diff-neutral-2 :foreground ,fg-diff-neutral-2)))
+   `(ediff-odd-diff-Ancestor ((,class :background ,bg-diff-neutral-0 :foreground ,fg-diff-neutral-0)))
+   `(ediff-odd-diff-B ((,class :background ,bg-diff-neutral-2 :foreground ,fg-diff-neutral-2)))
+   `(ediff-odd-diff-C ((,class :background ,bg-diff-neutral-1 :foreground ,fg-diff-neutral-1)))
+;;;;; eglot
+   `(eglot-mode-line ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,magenta-active)))
+;;;;; el-search
+   `(el-search-highlight-in-prompt-face ((,class :inherit bold :foreground ,magenta-alt)))
+   `(el-search-match ((,class :inherit modus-theme-intense-green)))
+   `(el-search-other-match ((,class :inherit modus-theme-special-mild)))
+   `(el-search-occur-match ((,class :inherit modus-theme-special-calm)))
+;;;;; eldoc-box
+   `(eldoc-box-body ((,class :background ,bg-alt :foreground ,fg-main)))
+   `(eldoc-box-border ((,class :background ,fg-alt)))
+;;;;; elfeed
+   `(elfeed-log-date-face ((,class :foreground ,cyan-alt)))
+   `(elfeed-log-debug-level-face ((,class :foreground ,magenta)))
+   `(elfeed-log-error-level-face ((,class :foreground ,red)))
+   `(elfeed-log-info-level-face ((,class :foreground ,green)))
+   `(elfeed-log-warn-level-face ((,class :foreground ,yellow)))
+   `(elfeed-search-date-face ((,class :foreground ,cyan)))
+   `(elfeed-search-feed-face ((,class :foreground ,blue)))
+   `(elfeed-search-filter-face ((,class :foreground ,magenta-active)))
+   `(elfeed-search-last-update-face ((,class :foreground ,green-active)))
+   `(elfeed-search-tag-face ((,class :foreground ,cyan-alt-other)))
+   `(elfeed-search-title-face ((,class :foreground ,fg-main)))
+   `(elfeed-search-unread-count-face ((,class :foreground ,blue-active)))
+   `(elfeed-search-unread-title-face ((,class :inherit bold)))
+;;;;; elfeed-score
+   `(elfeed-score-date-face ((,class :foreground ,blue)))
+   `(elfeed-score-debug-level-face ((,class :foreground ,magenta-alt-other)))
+   `(elfeed-score-error-level-face ((,class :foreground ,red)))
+   `(elfeed-score-info-level-face ((,class :foreground ,cyan)))
+   `(elfeed-score-warn-level-face ((,class :foreground ,yellow)))
+;;;;; emms
+   `(emms-playlist-track-face ((,class :foreground ,blue)))
+   `(emms-playlist-selected-face ((,class :inherit bold :foreground ,magenta)))
+;;;;; enhanced-ruby-mode
+   `(enh-ruby-heredoc-delimiter-face ((,class :foreground ,blue-alt-other)))
+   `(enh-ruby-op-face ((,class :foreground ,fg-main)))
+   `(enh-ruby-regexp-delimiter-face ((,class :foreground ,green)))
+   `(enh-ruby-regexp-face ((,class :foreground ,magenta)))
+   `(enh-ruby-string-delimiter-face ((,class :foreground ,blue-alt)))
+   `(erm-syn-errline ((,class :foreground ,red :underline t)))
+   `(erm-syn-warnline ((,class :foreground ,yellow :underline t)))
+;;;;; epa
+   `(epa-field-body ((,class :foreground ,fg-main)))
+   `(epa-field-name ((,class :inherit bold :foreground ,fg-dim)))
+   `(epa-mark ((,class :inherit bold :foreground ,magenta)))
+   `(epa-string ((,class :foreground ,blue-alt)))
+   `(epa-validity-disabled ((,class :inherit modus-theme-refine-red)))
+   `(epa-validity-high ((,class :inherit bold :foreground ,green-alt-other)))
+   `(epa-validity-low ((,class :foreground ,fg-alt)))
+   `(epa-validity-medium ((,class :foreground ,green-alt)))
+;;;;; equake
+   `(equake-buffer-face ((,class :background ,bg-main :foreground ,fg-main)))
+   `(equake-shell-type-eshell ((,class :background ,bg-inactive :foreground ,green-active)))
+   `(equake-shell-type-rash ((,class :background ,bg-inactive :foreground ,red-active)))
+   `(equake-shell-type-shell ((,class :background ,bg-inactive :foreground ,cyan-active)))
+   `(equake-shell-type-term ((,class :background ,bg-inactive :foreground ,yellow-active)))
+   `(equake-shell-type-vterm ((,class :background ,bg-inactive :foreground ,magenta-active)))
+   `(equake-tab-active ((,class :background ,fg-alt :foreground ,bg-alt)))
+   `(equake-tab-inactive ((,class :foreground ,fg-inactive)))
+;;;;; erc
+   `(erc-action-face ((,class :inherit bold :foreground ,cyan)))
+   `(erc-bold-face ((,class :inherit bold)))
+   `(erc-button ((,class :inherit button)))
+   `(erc-command-indicator-face ((,class :inherit bold :foreground ,cyan-alt)))
+   `(erc-current-nick-face ((,class :foreground ,magenta-alt-other)))
+   `(erc-dangerous-host-face ((,class :inherit modus-theme-intense-red)))
+   `(erc-direct-msg-face ((,class :foreground ,magenta)))
+   `(erc-error-face ((,class :inherit bold :foreground ,red)))
+   `(erc-fool-face ((,class :foreground ,fg-inactive)))
+   `(erc-header-line ((,class :background ,bg-header :foreground ,fg-header)))
+   `(erc-input-face ((,class :foreground ,fg-special-calm)))
+   `(erc-inverse-face ((,class :inherit erc-default-face :inverse-video t)))
+   `(erc-keyword-face ((,class :inherit bold :foreground ,magenta-alt)))
+   `(erc-my-nick-face ((,class :inherit bold :foreground ,magenta)))
+   `(erc-my-nick-prefix-face ((,class :inherit erc-my-nick-face)))
+   `(erc-nick-default-face ((,class :inherit bold :foreground ,blue)))
+   `(erc-nick-msg-face ((,class :inherit bold :foreground ,green)))
+   `(erc-nick-prefix-face ((,class :inherit erc-nick-default-face)))
+   `(erc-notice-face ((,class :foreground ,fg-unfocused)))
+   `(erc-pal-face ((,class :inherit bold :foreground ,red-alt)))
+   `(erc-prompt-face ((,class :inherit bold :foreground ,cyan-alt-other)))
+   `(erc-timestamp-face ((,class :foreground ,blue-nuanced)))
+   `(erc-underline-face ((,class :underline t)))
+;;;;; eros
+   `(eros-result-overlay-face ((,class :box (:line-width -1 :color ,blue)
+                                       :background ,bg-dim :foreground ,fg-dim)))
+;;;;; ert
+   `(ert-test-result-expected ((,class :inherit modus-theme-intense-green)))
+   `(ert-test-result-unexpected ((,class :inherit modus-theme-intense-red)))
+;;;;; eshell
+   `(eshell-ls-archive ((,class :inherit bold :foreground ,cyan-alt)))
+   `(eshell-ls-backup ((,class :foreground ,yellow-alt)))
+   `(eshell-ls-clutter ((,class :foreground ,red-alt)))
+   `(eshell-ls-directory ((,class :inherit bold :foreground ,blue-alt)))
+   `(eshell-ls-executable ((,class :foreground ,magenta-alt)))
+   `(eshell-ls-missing ((,class :inherit modus-theme-intense-red)))
+   `(eshell-ls-product ((,class :foreground ,fg-special-warm)))
+   `(eshell-ls-readonly ((,class :foreground ,fg-special-cold)))
+   `(eshell-ls-special ((,class :inherit bold :foreground ,magenta)))
+   `(eshell-ls-symlink ((,class :foreground ,cyan :underline t)))
+   `(eshell-ls-unreadable ((,class :background ,bg-inactive :foreground ,fg-inactive)))
+   `(eshell-prompt ((,class ,@(modus-vivendi-theme-bold-weight)
+                            ,@(modus-vivendi-theme-prompt green-alt-other
+                                                          green-nuanced-bg
+                                                          green-alt
+                                                          green-refine-bg
+                                                          fg-main))))
+;;;;; eshell-fringe-status
+   `(eshell-fringe-status-failure ((,class :foreground ,red)))
+   `(eshell-fringe-status-success ((,class :foreground ,green)))
+;;;;; eshell-git-prompt
+   `(eshell-git-prompt-add-face ((,class :foreground ,fg-alt)))
+   `(eshell-git-prompt-branch-face ((,class :foreground ,fg-alt)))
+   `(eshell-git-prompt-directory-face ((,class :foreground ,cyan)))
+   `(eshell-git-prompt-exit-fail-face ((,class :foreground ,red)))
+   `(eshell-git-prompt-exit-success-face ((,class :foreground ,green)))
+   `(eshell-git-prompt-modified-face ((,class :foreground ,yellow)))
+   `(eshell-git-prompt-powerline-clean-face ((,class :background ,green-refine-bg)))
+   `(eshell-git-prompt-powerline-dir-face ((,class :background ,blue-refine-bg)))
+   `(eshell-git-prompt-powerline-not-clean-face ((,class :background ,magenta-refine-bg)))
+   `(eshell-git-prompt-robyrussell-branch-face ((,class :foreground ,red)))
+   `(eshell-git-prompt-robyrussell-git-dirty-face ((,class :foreground ,yellow)))
+   `(eshell-git-prompt-robyrussell-git-face ((,class :foreground ,blue)))
+;;;;; eshell-prompt-extras (epe)
+   `(epe-dir-face ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,blue)))
+   `(epe-git-dir-face ((,class :foreground ,red-alt-other)))
+   `(epe-git-face ((,class :foreground ,cyan-alt)))
+   `(epe-pipeline-delimiter-face ((,class :foreground ,green-alt)))
+   `(epe-pipeline-host-face ((,class :foreground ,blue)))
+   `(epe-pipeline-time-face ((,class :foreground ,fg-special-warm)))
+   `(epe-pipeline-user-face ((,class :foreground ,magenta)))
+   `(epe-remote-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
+   `(epe-status-face ((,class :foreground ,magenta-alt-other)))
+   `(epe-venv-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
+;;;;; evil-mode
+   `(evil-ex-commands ((,class :foreground ,magenta-alt-other)))
+   `(evil-ex-info ((,class :foreground ,cyan-alt-other)))
+   `(evil-ex-lazy-highlight ((,class :inherit modus-theme-refine-cyan)))
+   `(evil-ex-search ((,class :inherit modus-theme-intense-green)))
+   `(evil-ex-substitute-matches ((,class :inherit modus-theme-refine-yellow :underline t)))
+   `(evil-ex-substitute-replacement ((,class :inherit (modus-theme-intense-green bold))))
+;;;;; evil-goggles
+   `(evil-goggles-change-face ((,class :inherit modus-theme-refine-yellow)))
+   `(evil-goggles-commentary-face ((,class :inherit modus-theme-subtle-neutral :slant ,modus-theme-slant)))
+   `(evil-goggles-default-face ((,class :inherit modus-theme-subtle-neutral)))
+   `(evil-goggles-delete-face ((,class :inherit modus-theme-refine-red)))
+   `(evil-goggles-fill-and-move-face ((,class :inherit evil-goggles-default-face)))
+   `(evil-goggles-indent-face ((,class :inherit evil-goggles-default-face)))
+   `(evil-goggles-join-face ((,class :inherit modus-theme-subtle-green)))
+   `(evil-goggles-nerd-commenter-face ((,class :inherit evil-goggles-commentary-face)))
+   `(evil-goggles-paste-face ((,class :inherit modus-theme-subtle-cyan)))
+   `(evil-goggles-record-macro-face ((,class :inherit modus-theme-special-cold)))
+   `(evil-goggles-replace-with-register-face ((,class :inherit modus-theme-refine-magenta)))
+   `(evil-goggles-set-marker-face ((,class :inherit modus-theme-intense-magenta)))
+   `(evil-goggles-shift-face ((,class :inherit evil-goggles-default-face)))
+   `(evil-goggles-surround-face ((,class :inherit evil-goggles-default-face)))
+   `(evil-goggles-yank-face ((,class :inherit modus-theme-subtle-blue)))
+;;;;; evil-visual-mark-mode
+   `(evil-visual-mark-face ((,class :inherit modus-theme-intense-magenta)))
+;;;;; eww
+   `(eww-invalid-certificate ((,class :foreground ,red-active)))
+   `(eww-valid-certificate ((,class :foreground ,green-active)))
+   `(eww-form-checkbox ((,class :box (:line-width 1 :color ,fg-inactive :style released-button) :background ,bg-inactive :foreground ,fg-main)))
+   `(eww-form-file ((,class :box (:line-width 1 :color ,fg-inactive :style released-button) :background ,bg-active :foreground ,fg-main)))
+   `(eww-form-select ((,class :inherit eww-form-checkbox)))
+   `(eww-form-submit ((,class :inherit eww-form-file)))
+   `(eww-form-text ((,class :box (:line-width 1 :color ,fg-inactive :style none) :background ,bg-active :foreground ,fg-active)))
+   `(eww-form-textarea ((,class :background ,bg-alt :foreground ,fg-main)))
+;;;;; eyebrowse
+   `(eyebrowse-mode-line-active ((,class :inherit bold :foreground ,blue-active)))
+;;;;; fancy-dabbrev
+   `(fancy-dabbrev-menu-face ((,class :background ,bg-alt :foreground ,fg-alt)))
+   `(fancy-dabbrev-preview-face ((,class :foreground ,fg-alt :underline t)))
+   `(fancy-dabbrev-selection-face ((,class :inherit (modus-theme-intense-cyan bold))))
+;;;;; flycheck
+   `(flycheck-error
+     ((,(append '((supports :underline (:style wave))) class)
+       :underline (:color ,fg-lang-error :style wave))
+      (,class :foreground ,fg-lang-error :underline t)))
+   `(flycheck-error-list-checker-name ((,class :foreground ,magenta-active)))
+   `(flycheck-error-list-column-number ((,class :foreground ,fg-special-cold)))
+   `(flycheck-error-list-error ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,red)))
+   `(flycheck-error-list-filename ((,class :foreground ,blue)))
+   `(flycheck-error-list-highlight ((,class :inherit modus-theme-hl-line)))
+   `(flycheck-error-list-id ((,class :foreground ,magenta-alt-other)))
+   `(flycheck-error-list-id-with-explainer ((,class :inherit flycheck-error-list-id :box t)))
+   `(flycheck-error-list-info ((,class :foreground ,cyan)))
+   `(flycheck-error-list-line-number ((,class :foreground ,fg-special-warm)))
+   `(flycheck-error-list-warning ((,class :foreground ,yellow)))
+   `(flycheck-fringe-error ((,class :inherit modus-theme-fringe-red)))
+   `(flycheck-fringe-info ((,class :inherit modus-theme-fringe-cyan)))
+   `(flycheck-fringe-warning ((,class :inherit modus-theme-fringe-yellow)))
+   `(flycheck-info
+     ((,(append '((supports :underline (:style wave))) class)
+       :underline (:color ,fg-lang-note :style wave))
+      (,class :foreground ,fg-lang-note :underline t)))
+   `(flycheck-verify-select-checker ((,class :box (:line-width 1 :color nil :style released-button))))
+   `(flycheck-warning
+     ((,(append '((supports :underline (:style wave))) class)
+       :underline (:color ,fg-lang-warning :style wave))
+      (,class :foreground ,fg-lang-warning :underline t)))
+;;;;; flycheck-indicator
+   `(flycheck-indicator-disabled ((,class :foreground ,fg-inactive :slant ,modus-theme-slant)))
+   `(flycheck-indicator-error ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,red-active)))
+   `(flycheck-indicator-info ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,blue-active)))
+   `(flycheck-indicator-running ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,magenta-active)))
+   `(flycheck-indicator-success ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,green-active)))
+   `(flycheck-indicator-warning ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,yellow-active)))
+;;;;; flycheck-posframe
+   `(flycheck-posframe-background-face ((,class :background ,bg-alt)))
+   `(flycheck-posframe-border-face ((,class :foreground ,fg-alt)))
+   `(flycheck-posframe-error-face ((,class :inherit bold :foreground ,red)))
+   `(flycheck-posframe-face ((,class :foreground ,fg-main :slant ,modus-theme-slant)))
+   `(flycheck-posframe-info-face ((,class :inherit bold :foreground ,cyan)))
+   `(flycheck-posframe-warning-face ((,class :inherit bold :foreground ,yellow)))
+;;;;; flymake
+   `(flymake-error
+     ((,(append '((supports :underline (:style wave))) class)
+       :underline (:color ,fg-lang-error :style wave))
+      (,class :foreground ,fg-lang-error :underline t)))
+   `(flymake-note
+     ((,(append '((supports :underline (:style wave))) class)
+       :underline (:color ,fg-lang-note :style wave))
+      (,class :foreground ,fg-lang-note :underline t)))
+   `(flymake-warning
+     ((,(append '((supports :underline (:style wave))) class)
+       :underline (:color ,fg-lang-warning :style wave))
+      (,class :foreground ,fg-lang-warning :underline t)))
+;;;;; flyspell
+   `(flyspell-duplicate
+     ((,(append '((supports :underline (:style wave))) class)
+       :underline (:color ,fg-lang-warning :style wave))
+      (,class :foreground ,fg-lang-warning :underline t)))
+   `(flyspell-incorrect
+     ((,(append '((supports :underline (:style wave))) class)
+       :underline (:color ,fg-lang-error :style wave))
+      (,class :foreground ,fg-lang-error :underline t)))
+;;;;; flyspell-correct
+   `(flyspell-correct-highlight-face ((,class :inherit modus-theme-refine-green)))
+;;;;; flx
+   `(flx-highlight-face ((,class ,@(modus-vivendi-theme-extra-completions
+                                    'modus-theme-subtle-magenta
+                                    'modus-theme-intense-magenta
+                                    'modus-theme-nuanced-magenta
+                                    magenta-alt-other
+                                    'bold))))
+;;;;; freeze-it
+   `(freeze-it-show ((,class :background ,bg-dim :foreground ,fg-special-warm)))
+;;;;; frog-menu
+   `(frog-menu-action-keybinding-face ((,class :foreground ,blue-alt-other)))
+   `(frog-menu-actions-face ((,class :foreground ,magenta)))
+   `(frog-menu-border ((,class :background ,bg-active)))
+   `(frog-menu-candidates-face ((,class :foreground ,fg-main)))
+   `(frog-menu-posframe-background-face ((,class :background ,bg-dim)))
+   `(frog-menu-prompt-face ((,class :foreground ,cyan)))
+;;;;; focus
+   `(focus-unfocused ((,class :foreground ,fg-unfocused)))
+;;;;; fold-this
+   `(fold-this-overlay ((,class :inherit modus-theme-special-mild)))
+;;;;; font-lock
+   `(font-lock-builtin-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                        magenta-alt magenta-alt-faint)
+                                     ,@(modus-vivendi-theme-bold-weight))))
+   `(font-lock-comment-delimiter-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
+   `(font-lock-comment-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
+   `(font-lock-constant-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                         blue-alt-other blue-alt-other-faint))))
+   `(font-lock-doc-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                    fg-special-cold cyan-alt-other-faint)
+                                 :slant ,modus-theme-slant)))
+   `(font-lock-function-name-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                              magenta magenta-faint))))
+   `(font-lock-keyword-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                        magenta-alt-other magenta-alt-other-faint)
+                                     ,@(modus-vivendi-theme-bold-weight))))
+   `(font-lock-negation-char-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                              yellow yellow-faint)
+                                           ,@(modus-vivendi-theme-bold-weight))))
+   `(font-lock-preprocessor-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                             red-alt-other red-alt-other-faint))))
+   `(font-lock-regexp-grouping-backslash ((,class :inherit bold :foreground ,fg-escape-char-backslash)))
+   `(font-lock-regexp-grouping-construct ((,class :inherit bold :foreground ,fg-escape-char-construct)))
+   `(font-lock-string-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                       blue-alt blue-alt-faint))))
+   `(font-lock-type-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                     magenta-alt magenta-alt-faint))))
+   `(font-lock-variable-name-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                              cyan cyan-faint))))
+   `(font-lock-warning-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                        yellow-active yellow-alt-faint)
+                                     ,@(modus-vivendi-theme-bold-weight))))
+;;;;; forge
+   `(forge-post-author ((,class :inherit bold :foreground ,fg-main)))
+   `(forge-post-date ((,class :foreground ,fg-special-cold)))
+   `(forge-topic-closed ((,class :foreground ,fg-alt)))
+   `(forge-topic-merged ((,class :foreground ,fg-alt)))
+   `(forge-topic-open ((,class :foreground ,fg-special-mild)))
+   `(forge-topic-unmerged ((,class :foreground ,magenta :slant ,modus-theme-slant)))
+   `(forge-topic-unread ((,class :inherit bold :foreground ,fg-main)))
+;;;;; fountain-mode
+   `(fountain-character ((,class :foreground ,blue-alt-other)))
+   `(fountain-comment ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
+   `(fountain-dialog ((,class :foreground ,blue-alt)))
+   `(fountain-metadata-key ((,class :foreground ,green-alt-other)))
+   `(fountain-metadata-value ((,class :foreground ,blue)))
+   `(fountain-non-printing ((,class :foreground ,fg-alt)))
+   `(fountain-note ((,class :foreground ,yellow :slant ,modus-theme-slant)))
+   `(fountain-page-break ((,class :inherit bold :foreground ,red-alt)))
+   `(fountain-page-number ((,class :inherit bold :foreground ,red-alt-other)))
+   `(fountain-paren ((,class :foreground ,cyan)))
+   `(fountain-scene-heading ((,class :inherit bold :foreground ,blue-nuanced)))
+   `(fountain-section-heading ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-main
+                                       ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-4))))
+   `(fountain-section-heading-1 ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-main
+                                         ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-4))))
+   `(fountain-section-heading-2 ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-special-warm
+                                         ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-3))))
+   `(fountain-section-heading-3 ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-special-mild
+                                         ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-2))))
+   `(fountain-section-heading-4 ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-special-calm
+                                         ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-1))))
+   `(fountain-section-heading-5 ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-special-calm)))
+   `(fountain-synopsis ((,class :foreground ,cyan-alt)))
+   `(fountain-trans ((,class :foreground ,yellow-alt-other)))
+;;;;; geiser
+   `(geiser-font-lock-autodoc-current-arg ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                                      magenta magenta-faint))))
+   `(geiser-font-lock-autodoc-identifier ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                                     blue blue-faint))))
+   `(geiser-font-lock-doc-button ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                             cyan-alt cyan-alt-faint)
+                                          :underline t)))
+   `(geiser-font-lock-doc-link ((,class :inherit link)))
+   `(geiser-font-lock-error-link ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                             red-alt red-alt-faint)
+                                          :underline t)))
+   `(geiser-font-lock-image-button ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                               green-alt green-alt-faint)
+                                            :underline t)))
+   `(geiser-font-lock-repl-input ((,class :inherit bold)))
+   `(geiser-font-lock-repl-output ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                              magenta-alt-other magenta-alt-other-faint))))
+   `(geiser-font-lock-repl-prompt ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                              cyan-alt-other cyan-alt-other-faint))))
+   `(geiser-font-lock-xref-header ((,class :inherit bold)))
+   `(geiser-font-lock-xref-link ((,class :inherit link)))
+;;;;; git-commit
+   `(git-commit-comment-action ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
+   `(git-commit-comment-branch-local ((,class :foreground ,blue-alt :slant ,modus-theme-slant)))
+   `(git-commit-comment-branch-remote ((,class :foreground ,magenta-alt :slant ,modus-theme-slant)))
+   `(git-commit-comment-detached ((,class :foreground ,cyan-alt :slant ,modus-theme-slant)))
+   `(git-commit-comment-file ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
+   `(git-commit-comment-heading ((,class :inherit bold :foreground ,fg-alt :slant ,modus-theme-slant)))
+   `(git-commit-keyword ((,class :foreground ,magenta)))
+   `(git-commit-known-pseudo-header ((,class :inherit bold :foreground ,fg-special-warm)))
+   `(git-commit-nonempty-second-line ((,class :inherit modus-theme-refine-yellow)))
+   `(git-commit-overlong-summary ((,class :inherit modus-theme-refine-yellow)))
+   `(git-commit-pseudo-header ((,class :inherit bold :foreground ,fg-alt)))
+   `(git-commit-summary ((,class :foreground ,magenta-alt-other)))
+;;;;; git-gutter
+   `(git-gutter:added ((,class :inherit modus-theme-fringe-green)))
+   `(git-gutter:deleted ((,class :inherit modus-theme-fringe-red)))
+   `(git-gutter:modified ((,class :inherit modus-theme-fringe-yellow)))
+   `(git-gutter:separator ((,class :inherit modus-theme-fringe-cyan)))
+   `(git-gutter:unchanged ((,class :inherit modus-theme-fringe-magenta)))
+;;;;; git-gutter-fr
+   `(git-gutter-fr:added ((,class :inherit modus-theme-fringe-green)))
+   `(git-gutter-fr:deleted ((,class :inherit modus-theme-fringe-red)))
+   `(git-gutter-fr:modified ((,class :inherit modus-theme-fringe-yellow)))
+;;;;; git-{gutter,fringe}+
+   `(git-gutter+-added ((,class :inherit modus-theme-fringe-green)))
+   `(git-gutter+-deleted ((,class :inherit modus-theme-fringe-red)))
+   `(git-gutter+-modified ((,class :inherit modus-theme-fringe-yellow)))
+   `(git-gutter+-separator ((,class :inherit modus-theme-fringe-cyan)))
+   `(git-gutter+-unchanged ((,class :inherit modus-theme-fringe-magenta)))
+   `(git-gutter-fr+-added ((,class :inherit modus-theme-fringe-green)))
+   `(git-gutter-fr+-deleted ((,class :inherit modus-theme-fringe-red)))
+   `(git-gutter-fr+-modified ((,class :inherit modus-theme-fringe-yellow)))
+;;;;; git-lens
+   `(git-lens-added ((,class :inherit bold :foreground ,green)))
+   `(git-lens-deleted ((,class :inherit bold :foreground ,red)))
+   `(git-lens-header ((,class :inherit bold :height 1.1 :foreground ,cyan)))
+   `(git-lens-modified ((,class :inherit bold :foreground ,yellow)))
+   `(git-lens-renamed ((,class :inherit bold :foreground ,magenta)))
+;;;;; git-rebase
+   `(git-rebase-comment-hash ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
+   `(git-rebase-comment-heading ((,class :inherit bold :foreground ,fg-dim :slant ,modus-theme-slant)))
+   `(git-rebase-description ((,class :foreground ,fg-main)))
+   `(git-rebase-hash ((,class :foreground ,cyan-alt-other)))
+;;;;; git-timemachine
+   `(git-timemachine-commit ((,class :inherit bold :foreground ,yellow-active)))
+   `(git-timemachine-minibuffer-author-face ((,class :foreground ,fg-special-warm)))
+   `(git-timemachine-minibuffer-detail-face ((,class :foreground ,red-alt)))
+;;;;; git-walktree
+   `(git-walktree-commit-face ((,class :foreground ,yellow)))
+   `(git-walktree-symlink-face ((,class :foreground ,cyan :underline t)))
+   `(git-walktree-tree-face ((,class :foreground ,magenta)))
+;;;;; gnus
+   `(gnus-button ((,class :inherit button)))
+   `(gnus-cite-1 ((,class :foreground ,blue-alt)))
+   `(gnus-cite-10 ((,class :foreground ,magenta-alt-other)))
+   `(gnus-cite-11 ((,class :foreground ,yellow-alt-other)))
+   `(gnus-cite-2 ((,class :foreground ,red-alt)))
+   `(gnus-cite-3 ((,class :foreground ,green-alt)))
+   `(gnus-cite-4 ((,class :foreground ,magenta-alt)))
+   `(gnus-cite-5 ((,class :foreground ,yellow-alt)))
+   `(gnus-cite-6 ((,class :foreground ,cyan-alt)))
+   `(gnus-cite-7 ((,class :foreground ,blue-alt-other)))
+   `(gnus-cite-8 ((,class :foreground ,red-alt-other)))
+   `(gnus-cite-9 ((,class :foreground ,green-alt-other)))
+   `(gnus-cite-attribution ((,class :foreground ,fg-main :slant italic)))
+   `(gnus-emphasis-highlight-words ((,class :inherit modus-theme-refine-yellow)))
+   `(gnus-group-mail-1 ((,class :inherit bold :foreground ,magenta-alt)))
+   `(gnus-group-mail-1-empty ((,class :foreground ,magenta-alt)))
+   `(gnus-group-mail-2 ((,class :inherit bold :foreground ,magenta)))
+   `(gnus-group-mail-2-empty ((,class :foreground ,magenta)))
+   `(gnus-group-mail-3 ((,class :inherit bold :foreground ,magenta-alt-other)))
+   `(gnus-group-mail-3-empty ((,class :foreground ,magenta-alt-other)))
+   `(gnus-group-mail-low ((,class :inherit bold :foreground ,magenta-nuanced)))
+   `(gnus-group-mail-low-empty ((,class :foreground ,magenta-nuanced)))
+   `(gnus-group-news-1 ((,class :inherit bold :foreground ,green)))
+   `(gnus-group-news-1-empty ((,class :foreground ,green)))
+   `(gnus-group-news-2 ((,class :inherit bold :foreground ,cyan)))
+   `(gnus-group-news-2-empty ((,class :foreground ,cyan)))
+   `(gnus-group-news-3 ((,class :inherit bold :foreground ,yellow-nuanced)))
+   `(gnus-group-news-3-empty ((,class :foreground ,yellow-nuanced)))
+   `(gnus-group-news-4 ((,class :inherit bold :foreground ,cyan-nuanced)))
+   `(gnus-group-news-4-empty ((,class :foreground ,cyan-nuanced)))
+   `(gnus-group-news-5 ((,class :inherit bold :foreground ,red-nuanced)))
+   `(gnus-group-news-5-empty ((,class :foreground ,red-nuanced)))
+   `(gnus-group-news-6 ((,class :inherit bold :foreground ,fg-alt)))
+   `(gnus-group-news-6-empty ((,class :foreground ,fg-alt)))
+   `(gnus-group-news-low ((,class :inherit bold :foreground ,green-nuanced)))
+   `(gnus-group-news-low-empty ((,class :foreground ,green-nuanced)))
+   `(gnus-header-content ((,class :foreground ,fg-special-calm)))
+   `(gnus-header-from ((,class :inherit bold :foreground ,cyan-alt :underline nil)))
+   `(gnus-header-name ((,class :foreground ,cyan-alt-other)))
+   `(gnus-header-newsgroups ((,class :inherit bold :foreground ,blue-alt)))
+   `(gnus-header-subject ((,class :inherit bold :foreground ,magenta-alt-other)))
+   `(gnus-server-agent ((,class :inherit bold :foreground ,cyan)))
+   `(gnus-server-closed ((,class :inherit bold :foreground ,magenta)))
+   `(gnus-server-cloud ((,class :inherit bold :foreground ,cyan-alt)))
+   `(gnus-server-cloud-host ((,class :inherit modus-theme-refine-cyan)))
+   `(gnus-server-denied ((,class :inherit bold :foreground ,red)))
+   `(gnus-server-offline ((,class :inherit bold :foreground ,yellow)))
+   `(gnus-server-opened ((,class :inherit bold :foreground ,green)))
+   `(gnus-signature ((,class :foreground ,fg-special-cold :slant italic)))
+   `(gnus-splash ((,class :foreground ,fg-alt)))
+   `(gnus-summary-cancelled ((,class :inherit modus-theme-mark-alt)))
+   `(gnus-summary-high-ancient ((,class :inherit bold :foreground ,fg-alt)))
+   `(gnus-summary-high-read ((,class :inherit bold :foreground ,fg-special-cold)))
+   `(gnus-summary-high-ticked ((,class :inherit bold :foreground ,red-alt-other)))
+   `(gnus-summary-high-undownloaded ((,class :inherit bold :foreground ,yellow)))
+   `(gnus-summary-high-unread ((,class :inherit bold :foreground ,fg-main)))
+   `(gnus-summary-low-ancient ((,class :foreground ,fg-alt :slant italic)))
+   `(gnus-summary-low-read ((,class :foreground ,fg-special-cold :slant italic)))
+   `(gnus-summary-low-ticked ((,class :foreground ,red-refine-fg :slant italic)))
+   `(gnus-summary-low-undownloaded ((,class :foreground ,yellow-refine-fg :slant italic)))
+   `(gnus-summary-low-unread ((,class :inherit bold :foreground ,fg-special-cold)))
+   `(gnus-summary-normal-ancient ((,class :foreground ,fg-special-calm)))
+   `(gnus-summary-normal-read ((,class :foreground ,fg-special-cold)))
+   `(gnus-summary-normal-ticked ((,class :foreground ,red-alt-other)))
+   `(gnus-summary-normal-undownloaded ((,class :foreground ,yellow)))
+   `(gnus-summary-normal-unread ((,class :foreground ,fg-main)))
+   `(gnus-summary-selected ((,class :inherit modus-theme-subtle-blue)))
+;;;;; golden-ratio-scroll-screen
+   `(golden-ratio-scroll-highlight-line-face ((,class :background ,cyan-subtle-bg :foreground ,fg-main)))
+;;;;; helm
+   `(helm-M-x-key ((,class :inherit bold :foreground ,magenta-alt-other)))
+   `(helm-action ((,class :underline t)))
+   `(helm-bookmark-addressbook ((,class :foreground ,green-alt)))
+   `(helm-bookmark-directory ((,class :inherit bold :foreground ,blue)))
+   `(helm-bookmark-file ((,class :foreground ,fg-main)))
+   `(helm-bookmark-file-not-found ((,class :background ,bg-alt :foreground ,fg-alt)))
+   `(helm-bookmark-gnus ((,class :foreground ,magenta)))
+   `(helm-bookmark-info ((,class :foreground ,cyan-alt)))
+   `(helm-bookmark-man ((,class :foreground ,yellow-alt)))
+   `(helm-bookmark-w3m ((,class :foreground ,blue-alt)))
+   `(helm-buffer-archive ((,class :inherit bold :foreground ,cyan)))
+   `(helm-buffer-directory ((,class :inherit bold :foreground ,blue)))
+   `(helm-buffer-file ((,class :foreground ,fg-main)))
+   `(helm-buffer-modified ((,class :foreground ,yellow-alt)))
+   `(helm-buffer-not-saved ((,class :foreground ,red-alt)))
+   `(helm-buffer-process ((,class :foreground ,magenta)))
+   `(helm-buffer-saved-out ((,class :inherit bold :background ,bg-alt :foreground ,red)))
+   `(helm-buffer-size ((,class :foreground ,fg-alt)))
+   `(helm-candidate-number ((,class :foreground ,cyan-active)))
+   `(helm-candidate-number-suspended ((,class :foreground ,yellow-active)))
+   `(helm-comint-prompts-buffer-name ((,class :foreground ,green-active)))
+   `(helm-comint-prompts-promptidx ((,class :foreground ,cyan-active)))
+   `(helm-delete-async-message ((,class :inherit bold :foreground ,magenta-active)))
+   `(helm-eob-line ((,class :background ,bg-main :foreground ,fg-main)))
+   `(helm-eshell-prompts-buffer-name ((,class :foreground ,green-active)))
+   `(helm-eshell-prompts-promptidx ((,class :foreground ,cyan-active)))
+   `(helm-etags-file ((,class :foreground ,fg-dim :underline t)))
+   `(helm-ff-backup-file ((,class :foreground ,fg-alt)))
+   `(helm-ff-denied ((,class ,@(modus-vivendi-theme-extra-completions
+                                'modus-theme-subtle-red
+                                'modus-theme-intense-red
+                                'modus-theme-nuanced-red
+                                red))))
+   `(helm-ff-directory ((,class :inherit helm-buffer-directory)))
+   `(helm-ff-dirs ((,class :inherit bold :foreground ,blue-alt-other)))
+   `(helm-ff-dotted-directory ((,class :inherit bold :background ,bg-alt :foreground ,fg-alt)))
+   `(helm-ff-dotted-symlink-directory ((,class :inherit helm-ff-dotted-directory :underline t)))
+   `(helm-ff-executable ((,class :foreground ,magenta-alt)))
+   `(helm-ff-file ((,class :foreground ,fg-main)))
+   `(helm-ff-file-extension ((,class :foreground ,fg-special-warm)))
+   `(helm-ff-invalid-symlink ((,class :foreground ,red :underline t)))
+   `(helm-ff-pipe ((,class ,@(modus-vivendi-theme-extra-completions
+                              'modus-theme-refine-magenta
+                              'modus-theme-subtle-magenta
+                              'modus-theme-nuanced-magenta
+                              magenta))))
+   `(helm-ff-prefix ((,class ,@(modus-vivendi-theme-extra-completions
+                                'modus-theme-refine-yellow
+                                'modus-theme-subtle-yellow
+                                'modus-theme-nuanced-yellow
+                                yellow-alt-other))))
+   `(helm-ff-socket ((,class :foreground ,red-alt-other)))
+   `(helm-ff-suid ((,class ,@(modus-vivendi-theme-extra-completions
+                              'modus-theme-subtle-red
+                              'modus-theme-refine-red
+                              'modus-theme-nuanced-yellow
+                              red-alt))))
+   `(helm-ff-symlink ((,class :foreground ,cyan :underline t)))
+   `(helm-ff-truename ((,class :foreground ,blue-alt-other)))
+   `(helm-grep-cmd-line ((,class :foreground ,yellow-alt-other)))
+   `(helm-grep-file ((,class :inherit bold :foreground ,fg-special-cold)))
+   `(helm-grep-finish ((,class :foreground ,green-active)))
+   `(helm-grep-lineno ((,class :foreground ,fg-special-warm)))
+   `(helm-grep-match ((,class :inherit modus-theme-special-calm)))
+   `(helm-header ((,class :inherit bold :foreground ,fg-special-cold)))
+   `(helm-header-line-left-margin ((,class :inherit bold :foreground ,yellow-intense)))
+   `(helm-history-deleted ((,class ,@(modus-vivendi-theme-extra-completions
+                                      'modus-theme-subtle-red
+                                      'modus-theme-intense-red
+                                      'modus-theme-nuanced-red
+                                      red
+                                      'bold))))
+   `(helm-history-remote ((,class :foreground ,red-alt-other)))
+   `(helm-lisp-completion-info ((,class :foreground ,fg-special-warm)))
+   `(helm-lisp-show-completion ((,class ,@(modus-vivendi-theme-extra-completions
+                                           'modus-theme-subtle-yellow
+                                           'modus-theme-refine-yellow
+                                           'modus-theme-nuanced-yellow
+                                           yellow
+                                           'bold))))
+   `(helm-locate-finish ((,class :foreground ,green-active)))
+   `(helm-match ((,class ,@(modus-vivendi-theme-extra-completions
+                            'modus-theme-subtle-cyan
+                            'modus-theme-refine-cyan
+                            'modus-theme-nuanced-cyan
+                            cyan
+                            'bold))))
+   `(helm-match-item ((,class ,@(modus-vivendi-theme-extra-completions
+                                 'modus-theme-subtle-neutral
+                                 'modus-theme-subtle-cyan
+                                 'modus-theme-nuanced-cyan
+                                 cyan-alt-other))))
+   `(helm-minibuffer-prompt ((,class :inherit minibuffer-prompt)))
+   `(helm-moccur-buffer ((,class :foreground ,cyan-alt-other :underline t)))
+   `(helm-mode-prefix ((,class ,@(modus-vivendi-theme-extra-completions
+                                  'modus-theme-subtle-magenta
+                                  'modus-theme-intense-magenta
+                                  'modus-theme-nuanced-magenta
+                                  magenta-alt
+                                  'bold))))
+   `(helm-non-file-buffer ((,class :foreground ,fg-alt)))
+   `(helm-prefarg ((,class :foreground ,red-active)))
+   `(helm-resume-need-update ((,class ,@(modus-vivendi-theme-extra-completions
+                                         'modus-theme-subtle-magenta
+                                         'modus-theme-refine-magenta
+                                         'modus-theme-nuanced-magenta
+                                         magenta-alt-other))))
+   `(helm-selection ((,class ,@(modus-vivendi-theme-extra-completions
+                                'modus-theme-subtle-blue
+                                'modus-theme-refine-blue
+                                'modus-theme-special-cold
+                                nil
+                                'bold))))
+   `(helm-selection-line ((,class :inherit modus-theme-special-cold)))
+   `(helm-separator ((,class :foreground ,fg-special-mild)))
+   `(helm-time-zone-current ((,class :foreground ,green)))
+   `(helm-time-zone-home ((,class :foreground ,magenta)))
+   `(helm-source-header ((,class :inherit bold :foreground ,red-alt
+                                 ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-4))))
+   `(helm-top-columns ((,class :inherit helm-header)))
+   `(helm-ucs-char ((,class :foreground ,yellow-alt-other)))
+   `(helm-visible-mark ((,class :inherit modus-theme-subtle-cyan)))
+;;;;; helm-ls-git
+   `(helm-ls-git-added-copied-face ((,class :foreground ,green-intense)))
+   `(helm-ls-git-added-modified-face ((,class :foreground ,yellow-intense)))
+   `(helm-ls-git-conflict-face ((,class :inherit bold :foreground ,red-intense)))
+   `(helm-ls-git-deleted-and-staged-face ((,class :foreground ,red-nuanced)))
+   `(helm-ls-git-deleted-not-staged-face ((,class :foreground ,red)))
+   `(helm-ls-git-modified-and-staged-face ((,class :foreground ,yellow-nuanced)))
+   `(helm-ls-git-modified-not-staged-face ((,class :foreground ,yellow)))
+   `(helm-ls-git-renamed-modified-face ((,class :foreground ,magenta)))
+   `(helm-ls-git-untracked-face ((,class :foreground ,fg-special-cold)))
+;;;;; helm-switch-shell
+   `(helm-switch-shell-new-shell-face ((,class ,@(modus-vivendi-theme-extra-completions
+                                                  'modus-theme-subtle-magenta
+                                                  'modus-theme-refine-magenta
+                                                  'modus-theme-nuanced-magenta
+                                                  magenta-alt-other
+                                                  'bold))))
+;;;;; helm-xref
+   `(helm-xref-file-name ((,class :inherit bold :foreground ,fg-special-cold)))
+   `(helm-xref-file-name ((,class :foreground ,fg-special-warm)))
+;;;;; helpful
+   `(helpful-heading  ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-main
+                               ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-4))))
+;;;;; highlight region or ad-hoc regexp
+   `(hi-black-b ((,class :background ,fg-main :foreground ,bg-main)))
+   `(hi-blue ((,class :background ,bg-alt :foreground ,blue :underline t)))
+   `(hi-blue-b ((,class :inherit modus-theme-intense-blue)))
+   `(hi-green ((,class :background ,bg-alt :foreground ,green :underline t)))
+   `(hi-green-b ((,class :inherit modus-theme-intense-green)))
+   `(hi-pink ((,class :background ,bg-alt :foreground ,magenta :underline t)))
+   `(hi-red-b ((,class :inherit modus-theme-intense-red)))
+   `(hi-yellow ((,class :background ,bg-alt :foreground ,yellow :underline t)))
+   `(highlight ((,class :inherit modus-theme-subtle-blue)))
+   `(highlight-changes ((,class :foreground ,yellow-alt-other)))
+   `(highlight-changes-delete ((,class :foreground ,red-alt-other :underline t)))
+   `(hl-line ((,class :inherit modus-theme-hl-line)))
+;;;;; highlight-blocks
+   `(highlight-blocks-depth-1-face ((,class :background ,bg-dim :foreground ,fg-main)))
+   `(highlight-blocks-depth-2-face ((,class :background ,bg-alt :foreground ,fg-main)))
+   `(highlight-blocks-depth-3-face ((,class :background ,bg-special-cold :foreground ,fg-main)))
+   `(highlight-blocks-depth-4-face ((,class :background ,bg-special-calm :foreground ,fg-main)))
+   `(highlight-blocks-depth-5-face ((,class :background ,bg-special-warm :foreground ,fg-main)))
+   `(highlight-blocks-depth-6-face ((,class :background ,bg-special-mild :foreground ,fg-main)))
+   `(highlight-blocks-depth-7-face ((,class :background ,bg-inactive :foreground ,fg-main)))
+   `(highlight-blocks-depth-8-face ((,class :background ,bg-active :foreground ,fg-main)))
+   `(highlight-blocks-depth-9-face ((,class :background ,cyan-subtle-bg :foreground ,fg-main)))
+;;;;; highlight-defined
+   `(highlight-defined-builtin-function-name-face ((,class :foreground ,magenta)))
+   `(highlight-defined-face-name-face ((,class :foreground ,fg-main)))
+   `(highlight-defined-function-name-face ((,class :foreground ,magenta)))
+   `(highlight-defined-macro-name-face ((,class :foreground ,magenta-alt)))
+   `(highlight-defined-special-form-name-face ((,class :foreground ,magenta-alt-other)))
+   `(highlight-defined-variable-name-face ((,class :foreground ,cyan)))
+;;;;; highlight-escape-sequences (`hes-mode')
+   `(hes-escape-backslash-face ((,class :inherit bold :foreground ,fg-escape-char-construct)))
+   `(hes-escape-sequence-face ((,class :inherit bold :foreground ,fg-escape-char-backslash)))
+;;;;; highlight-indentation
+   `(highlight-indentation-face ((,class :inherit modus-theme-hl-line)))
+   `(highlight-indentation-current-column-face ((,class :background ,bg-active)))
+;;;;; highlight-numbers
+   `(highlight-numbers-number ((,class :foreground ,blue-alt-other)))
+;;;;; highlight-symbol
+   `(highlight-symbol-face ((,class :inherit modus-theme-special-mild)))
+;;;;; highlight-thing
+   `(highlight-thing ((,class :background ,bg-alt :foreground ,cyan)))
+;;;;; hl-defined
+   `(hdefd-functions ((,class :foreground ,blue)))
+   `(hdefd-undefined ((,class :foreground ,red-alt)))
+   `(hdefd-variables ((,class :foreground ,cyan-alt)))
+;;;;; hl-fill-column
+   `(hl-fill-column-face ((,class :background ,bg-active :foreground ,fg-active)))
+;;;;; hl-todo
+   `(hl-todo ((,class :inherit bold :foreground ,red-alt-other :slant ,modus-theme-slant)))
+;;;;; hydra
+   `(hydra-face-amaranth ((,class :inherit bold :foreground ,yellow)))
+   `(hydra-face-blue ((,class :inherit bold :foreground ,blue-alt)))
+   `(hydra-face-pink ((,class :inherit bold :foreground ,magenta-alt)))
+   `(hydra-face-red ((,class :inherit bold :foreground ,red)))
+   `(hydra-face-teal ((,class :inherit bold :foreground ,cyan)))
+;;;;; hyperlist
+   `(hyperlist-condition ((,class :foreground ,green)))
+   `(hyperlist-hashtag ((,class :foreground ,yellow)))
+   `(hyperlist-operator ((,class :foreground ,blue-alt)))
+   `(hyperlist-paren ((,class :foreground ,cyan-alt-other)))
+   `(hyperlist-quote ((,class :foreground ,cyan-alt)))
+   `(hyperlist-ref ((,class :foreground ,magenta-alt-other)))
+   `(hyperlist-stars ((,class :foreground ,fg-alt)))
+   `(hyperlist-tag ((,class :foreground ,red)))
+   `(hyperlist-toplevel ((,class :inherit bold :foreground ,fg-main)))
+;;;;; icomplete
+   `(icomplete-first-match ((,class :inherit bold
+                                    ,@(modus-vivendi-theme-standard-completions
+                                       magenta magenta-nuanced-bg
+                                       magenta-intense-bg fg-main))))
+;;;;; icomplete-vertical
+   `(icomplete-vertical-separator ((,class :foreground ,fg-alt)))
+;;;;; ido-mode
+   `(ido-first-match ((,class :inherit bold
+                              ,@(modus-vivendi-theme-standard-completions
+                                 magenta magenta-nuanced-bg
+                                 magenta-subtle-bg fg-main))))
+   `(ido-incomplete-regexp ((,class :inherit error)))
+   `(ido-indicator ((,class :inherit modus-theme-subtle-yellow)))
+   `(ido-only-match ((,class :inherit bold
+                             ,@(modus-vivendi-theme-standard-completions
+                                magenta-intense red-nuanced-bg
+                                magenta-intense-bg fg-main))))
+   `(ido-subdir ((,class :foreground ,blue-alt-other)))
+   `(ido-virtual ((,class :foreground ,yellow-alt-other)))
+;;;;; iedit
+   `(iedit-occurrence ((,class :inherit modus-theme-refine-blue)))
+   `(iedit-read-only-occurrence ((,class :inherit modus-theme-intense-yellow)))
+;;;;; iflipb
+   `(iflipb-current-buffer-face ((,class :inherit bold :foreground ,cyan-alt)))
+   `(iflipb-other-buffer-face ((,class :foreground ,fg-alt)))
+;;;;; imenu-list
+   `(imenu-list-entry-face-0 ((,class :foreground ,cyan)))
+   `(imenu-list-entry-face-1 ((,class :foreground ,blue)))
+   `(imenu-list-entry-face-2 ((,class :foreground ,cyan-alt-other)))
+   `(imenu-list-entry-face-3 ((,class :foreground ,blue-alt)))
+   `(imenu-list-entry-subalist-face-0 ((,class :inherit bold :foreground ,magenta-alt-other :underline t)))
+   `(imenu-list-entry-subalist-face-1 ((,class :inherit bold :foreground ,magenta :underline t)))
+   `(imenu-list-entry-subalist-face-2 ((,class :inherit bold :foreground ,green-alt-other :underline t)))
+   `(imenu-list-entry-subalist-face-3 ((,class :inherit bold :foreground ,red-alt-other :underline t)))
+;;;;; indium
+   `(indium-breakpoint-face ((,class :foreground ,red-active)))
+   `(indium-frame-url-face ((,class :foreground ,fg-alt :underline t)))
+   `(indium-keyword-face ((,class :foreground ,magenta-alt-other)))
+   `(indium-litable-face ((,class :foreground ,fg-special-warm :slant ,modus-theme-slant)))
+   `(indium-repl-error-face ((,class :inherit bold :foreground ,red)))
+   `(indium-repl-prompt-face ((,class :foreground ,cyan-alt-other)))
+   `(indium-repl-stdout-face ((,class :foreground ,fg-main)))
+;;;;; info
+   `(Info-quoted ((,class :foreground ,magenta))) ; the capitalisation is canonical
+   `(info-header-node ((,class :inherit bold :foreground ,fg-alt)))
+   `(info-header-xref ((,class :foreground ,blue-active)))
+   `(info-index-match ((,class :inherit match)))
+   `(info-menu-header ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-main
+                               ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-2))))
+   `(info-menu-star ((,class :foreground ,fg-main)))
+   `(info-node ((,class :inherit bold)))
+   `(info-title-1 ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-main
+                           ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-4))))
+   `(info-title-2 ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-special-warm
+                           ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-3))))
+   `(info-title-3 ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-special-cold
+                           ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-2))))
+   `(info-title-4 ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-special-mild
+                           ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-1))))
+;;;;; info-colors
+   `(info-colors-lisp-code-block ((,class :inherit fixed-pitch)))
+   `(info-colors-ref-item-command ((,class :foreground ,magenta)))
+   `(info-colors-ref-item-constant ((,class :foreground ,blue-alt-other)))
+   `(info-colors-ref-item-function ((,class :foreground ,magenta)))
+   `(info-colors-ref-item-macro ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,magenta-alt-other)))
+   `(info-colors-ref-item-other ((,class :foreground ,cyan)))
+   `(info-colors-ref-item-special-form ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,magenta-alt-other)))
+   `(info-colors-ref-item-syntax-class ((,class :foreground ,magenta)))
+   `(info-colors-ref-item-type ((,class :foreground ,magenta-alt)))
+   `(info-colors-ref-item-user-option ((,class :foreground ,cyan)))
+   `(info-colors-ref-item-variable ((,class :foreground ,cyan)))
+;;;;; interaction-log
+   `(ilog-buffer-face ((,class :foreground ,magenta-alt-other)))
+   `(ilog-change-face ((,class :foreground ,magenta-alt)))
+   `(ilog-echo-face ((,class :foreground ,yellow-alt-other)))
+   `(ilog-load-face ((,class :foreground ,green)))
+   `(ilog-message-face ((,class :foreground ,fg-alt)))
+   `(ilog-non-change-face ((,class :foreground ,blue)))
+;;;;; ioccur
+   `(ioccur-cursor ((,class :foreground ,fg-main)))
+   `(ioccur-invalid-regexp ((,class :foreground ,red)))
+   `(ioccur-match-face ((,class :inherit modus-theme-special-calm)))
+   `(ioccur-match-overlay-face ((,class ,@(and (>= emacs-major-version 27) '(:extend t))
+                                        :inherit modus-theme-special-cold)))
+   `(ioccur-num-line-face ((,class :foreground ,fg-special-warm)))
+   `(ioccur-overlay-face ((,class ,@(and (>= emacs-major-version 27) '(:extend t))
+                                  :inherit modus-theme-refine-blue)))
+   `(ioccur-regexp-face ((,class :inherit (modus-theme-intense-magenta bold))))
+   `(ioccur-title-face ((,class :inherit bold :foreground ,red-alt
+                                ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-4))))
+;;;;; isearch, occur, and the like
+   `(isearch ((,class :inherit (modus-theme-intense-green bold))))
+   `(isearch-fail ((,class :inherit modus-theme-refine-red)))
+   `(lazy-highlight ((,class :inherit modus-theme-refine-cyan)))
+   `(match ((,class :inherit modus-theme-special-calm)))
+   `(query-replace ((,class :inherit (modus-theme-intense-yellow bold))))
+;;;;; ivy
+   `(ivy-action ((,class :inherit bold :foreground ,red-alt)))
+   `(ivy-completions-annotations ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
+   `(ivy-confirm-face ((,class :foreground ,cyan)))
+   `(ivy-current-match ((,class ,@(modus-vivendi-theme-extra-completions
+                                   'modus-theme-refine-cyan
+                                   'modus-theme-intense-cyan
+                                   'modus-theme-special-warm
+                                   nil
+                                   'bold))))
+   `(ivy-cursor ((,class :background ,fg-main :foreground ,bg-main)))
+   `(ivy-grep-info ((,class :foreground ,cyan-alt)))
+   `(ivy-grep-line-number ((,class :foreground ,fg-special-warm)))
+   `(ivy-highlight-face ((,class :foreground ,magenta)))
+   `(ivy-match-required-face ((,class :inherit error)))
+   `(ivy-minibuffer-match-face-1 ((,class ,@(modus-vivendi-theme-extra-completions
+                                             'modus-theme-subtle-neutral
+                                             'modus-theme-intense-neutral
+                                             'modus-theme-subtle-neutral
+                                             fg-alt))))
+   `(ivy-minibuffer-match-face-2 ((,class ,@(modus-vivendi-theme-extra-completions
+                                             'modus-theme-subtle-green
+                                             'modus-theme-refine-green
+                                             'modus-theme-nuanced-green
+                                             green-alt-other
+                                             'bold))))
+   `(ivy-minibuffer-match-face-3 ((,class ,@(modus-vivendi-theme-extra-completions
+                                             'modus-theme-subtle-cyan
+                                             'modus-theme-refine-cyan
+                                             'modus-theme-nuanced-cyan
+                                             cyan-alt-other
+                                             'bold))))
+   `(ivy-minibuffer-match-face-4 ((,class ,@(modus-vivendi-theme-extra-completions
+                                             'modus-theme-subtle-magenta
+                                             'modus-theme-refine-magenta
+                                             'modus-theme-nuanced-magenta
+                                             magenta-alt-other
+                                             'bold))))
+   `(ivy-minibuffer-match-highlight ((,class ,@(modus-vivendi-theme-extra-completions
+                                                'modus-theme-subtle-blue
+                                                'modus-theme-intense-blue
+                                                'modus-theme-nuanced-blue
+                                                blue-alt-other
+                                                'bold))))
+   `(ivy-modified-buffer ((,class :foreground ,yellow :slant ,modus-theme-slant)))
+   `(ivy-modified-outside-buffer ((,class :foreground ,yellow-alt :slant ,modus-theme-slant)))
+   `(ivy-org ((,class :foreground ,cyan-alt-other)))
+   `(ivy-prompt-match ((,class :inherit ivy-current-match)))
+   `(ivy-remote ((,class :foreground ,magenta)))
+   `(ivy-separator ((,class :foreground ,fg-alt)))
+   `(ivy-subdir ((,class :foreground ,blue-alt-other)))
+   `(ivy-virtual ((,class :foreground ,magenta-alt-other)))
+   `(ivy-yanked-word ((,class ,@(modus-vivendi-theme-extra-completions
+                                 'modus-theme-subtle-blue
+                                 'modus-theme-refine-blue
+                                 'modus-theme-nuanced-blue
+                                 blue-alt))))
+;;;;; ivy-posframe
+   `(ivy-posframe ((,class :background ,bg-dim :foreground ,fg-main)))
+   `(ivy-posframe-border ((,class :background ,bg-active)))
+   `(ivy-posframe-cursor ((,class :background ,fg-main :foreground ,bg-main)))
+;;;;; jira (org-jira)
+   `(jiralib-comment-face ((,class :background ,bg-alt)))
+   `(jiralib-comment-header-face ((,class :inherit bold)))
+   `(jiralib-issue-info-face ((,class :inherit modus-theme-special-warm)))
+   `(jiralib-issue-info-header-face ((,class :inherit (modus-theme-special-warm bold))))
+   `(jiralib-issue-summary-face ((,class :inherit bold)))
+   `(jiralib-link-filter-face ((,class :underline t)))
+   `(jiralib-link-issue-face ((,class :underline t)))
+   `(jiralib-link-project-face ((,class :underline t)))
+;;;;; journalctl-mode
+   `(journalctl-error-face ((,class :inherit bold :foreground ,red)))
+   `(journalctl-finished-face ((,class :inherit bold :foreground ,green)))
+   `(journalctl-host-face ((,class :foreground ,blue)))
+   `(journalctl-process-face ((,class :foreground ,cyan-alt-other)))
+   `(journalctl-starting-face ((,class :foreground ,green)))
+   `(journalctl-timestamp-face ((,class :foreground ,fg-special-cold)))
+   `(journalctl-warning-face ((,class :inherit bold :foreground ,yellow)))
+;;;;; js2-mode
+   `(js2-error ((,class :foreground ,red)))
+   `(js2-external-variable ((,class :foreground ,cyan-alt-other)))
+   `(js2-function-call ((,class :foreground ,magenta)))
+   `(js2-function-param ((,class :foreground ,blue)))
+   `(js2-instance-member ((,class :foreground ,magenta-alt-other)))
+   `(js2-jsdoc-html-tag-delimiter ((,class :foreground ,fg-main)))
+   `(js2-jsdoc-html-tag-name ((,class :foreground ,cyan)))
+   `(js2-jsdoc-tag ((,class :foreground ,fg-special-calm)))
+   `(js2-jsdoc-type ((,class :foreground ,fg-special-cold)))
+   `(js2-jsdoc-value ((,class :foreground ,fg-special-warm)))
+   `(js2-object-property ((,class :foreground ,fg-main)))
+   `(js2-object-property-access ((,class :foreground ,fg-main)))
+   `(js2-private-function-call ((,class :foreground ,green-alt-other)))
+   `(js2-private-member ((,class :foreground ,fg-special-mild)))
+   `(js2-warning ((,class :foreground ,yellow-alt :underline t)))
+;;;;; julia
+   `(julia-macro-face ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,magenta)))
+   `(julia-quoted-symbol-face ((,class :foreground ,blue-alt-other)))
+;;;;; jupyter
+   `(jupyter-eval-overlay ((,class :inherit bold :foreground ,blue)))
+   `(jupyter-repl-input-prompt ((,class :foreground ,cyan-alt-other)))
+   `(jupyter-repl-output-prompt ((,class :foreground ,magenta-alt-other)))
+   `(jupyter-repl-traceback ((,class :inherit modus-theme-intense-red)))
+;;;;; kaocha-runner
+   `(kaocha-runner-error-face ((,class :foreground ,red)))
+   `(kaocha-runner-success-face ((,class :foreground ,green)))
+   `(kaocha-runner-warning-face ((,class :foreground ,yellow)))
+;;;;; keycast
+   `(keycast-command ((,class :inherit bold :foreground ,blue-active)))
+   `(keycast-key ((,class :box ,(modus-vivendi-theme-modeline-box blue-alt blue-active t -3)
+                          ,@(modus-vivendi-theme-modeline-props
+                             blue-active bg-main
+                             blue-active bg-active))))
+;;;;; line numbers (display-line-numbers-mode and global variant)
+   `(line-number ((,class :background ,bg-dim :foreground ,fg-alt)))
+   `(line-number-current-line ((,class :inherit bold :background ,bg-active :foreground ,fg-active)))
+;;;;; lsp-mode
+   `(lsp-face-highlight-read ((,class :inherit modus-theme-subtle-blue :underline t)))
+   `(lsp-face-highlight-textual ((,class :inherit modus-theme-subtle-blue)))
+   `(lsp-face-highlight-write ((,class :inherit (modus-theme-refine-blue bold))))
+   `(lsp-face-semhl-constant ((,class :foreground ,blue-alt-other)))
+   `(lsp-face-semhl-deprecated
+     ((,(append '((supports :underline (:style wave))) class)
+       :foreground ,yellow :underline (:style wave))
+      (,class :foreground ,yellow :underline t)))
+   `(lsp-face-semhl-enummember ((,class :foreground ,blue-alt-other)))
+   `(lsp-face-semhl-field ((,class :foreground ,cyan-alt)))
+   `(lsp-face-semhl-field-static ((,class :foreground ,cyan-alt :slant ,modus-theme-slant)))
+   `(lsp-face-semhl-function ((,class :foreground ,magenta)))
+   `(lsp-face-semhl-method ((,class :foreground ,magenta)))
+   `(lsp-face-semhl-namespace ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,magenta-alt)))
+   `(lsp-face-semhl-preprocessor ((,class :foreground ,red-alt-other)))
+   `(lsp-face-semhl-static-method ((,class :foreground ,magenta :slant ,modus-theme-slant)))
+   `(lsp-face-semhl-type-class ((,class :foreground ,magenta-alt)))
+   `(lsp-face-semhl-type-enum ((,class :foreground ,magenta-alt)))
+   `(lsp-face-semhl-type-primitive ((,class :foreground ,magenta-alt :slant ,modus-theme-slant)))
+   `(lsp-face-semhl-type-template ((,class :foreground ,magenta-alt :slant ,modus-theme-slant)))
+   `(lsp-face-semhl-type-typedef ((,class :foreground ,magenta-alt :slant ,modus-theme-slant)))
+   `(lsp-face-semhl-variable ((,class :foreground ,cyan)))
+   `(lsp-face-semhl-variable-local ((,class :foreground ,cyan)))
+   `(lsp-face-semhl-variable-parameter ((,class :foreground ,cyan-alt-other)))
+   `(lsp-lens-face ((,class :height 0.8 :foreground ,fg-alt)))
+   `(lsp-lens-mouse-face ((,class :height 0.8 :foreground ,blue-alt-other :underline t)))
+   `(lsp-ui-doc-background ((,class :background ,bg-alt)))
+   `(lsp-ui-doc-header ((,class :background ,bg-header :foreground ,fg-header)))
+   `(lsp-ui-doc-url ((,class :foreground ,blue-alt-other :underline t)))
+   `(lsp-ui-peek-filename ((,class :foreground ,fg-special-warm)))
+   `(lsp-ui-peek-footer ((,class :background ,bg-header :foreground ,fg-header)))
+   `(lsp-ui-peek-header ((,class :background ,bg-header :foreground ,fg-header)))
+   `(lsp-ui-peek-highlight ((,class :inherit modus-theme-subtle-blue)))
+   `(lsp-ui-peek-line-number ((,class :foreground ,fg-alt)))
+   `(lsp-ui-peek-list ((,class :background ,bg-dim)))
+   `(lsp-ui-peek-peek ((,class :background ,bg-alt)))
+   `(lsp-ui-peek-selection ((,class :inherit modus-theme-subtle-cyan)))
+   `(lsp-ui-sideline-code-action ((,class :foreground ,yellow)))
+   `(lsp-ui-sideline-current-symbol ((,class :inherit bold :height 0.99 :box (:line-width -1 :style nil) :foreground ,fg-main)))
+   `(lsp-ui-sideline-symbol ((,class :inherit bold :height 0.99 :box (:line-width -1 :style nil) :foreground ,fg-alt)))
+   `(lsp-ui-sideline-symbol-info ((,class :height 0.99 :slant italic)))
+;;;;; magit
+   `(magit-bisect-bad ((,class :foreground ,red-alt-other)))
+   `(magit-bisect-good ((,class :foreground ,green-alt-other)))
+   `(magit-bisect-skip ((,class :foreground ,yellow-alt-other)))
+   `(magit-blame-date ((,class :foreground ,blue)))
+   `(magit-blame-dimmed ((,class :foreground ,fg-alt)))
+   `(magit-blame-hash ((,class :foreground ,fg-special-warm)))
+   `(magit-blame-heading ((,class :background ,bg-alt)))
+   `(magit-blame-highlight ((,class :inherit modus-theme-nuanced-cyan)))
+   `(magit-blame-margin ((,class :inherit magit-blame-highlight)))
+   `(magit-blame-name ((,class :foreground ,magenta-alt-other)))
+   `(magit-blame-summary ((,class :foreground ,cyan-alt-other)))
+   `(magit-branch-current ((,class :foreground ,blue-alt-other :box t)))
+   `(magit-branch-local ((,class :foreground ,blue-alt)))
+   `(magit-branch-remote ((,class :foreground ,magenta-alt)))
+   `(magit-branch-remote-head ((,class :foreground ,magenta-alt-other :box t)))
+   `(magit-branch-upstream ((,class :slant italic)))
+   `(magit-cherry-equivalent ((,class :background ,bg-main :foreground ,magenta-intense)))
+   `(magit-cherry-unmatched ((,class :background ,bg-main :foreground ,cyan-intense)))
+   `(magit-diff-added ((,class ,@(modus-vivendi-theme-diffs
+                                  bg-main green
+                                  bg-diff-added fg-diff-added))))
+   `(magit-diff-added-highlight ((,class ,@(modus-vivendi-theme-diffs
+                                            bg-dim green
+                                            bg-diff-focus-added fg-diff-focus-added))))
+   `(magit-diff-base ((,class ,@(modus-vivendi-theme-diffs
+                                 bg-main yellow
+                                 bg-diff-changed fg-diff-changed))))
+   `(magit-diff-base-highlight ((,class ,@(modus-vivendi-theme-diffs
+                                           bg-dim yellow
+                                           bg-diff-focus-changed fg-diff-focus-changed))))
+   `(magit-diff-context ((,class :foreground ,fg-unfocused)))
+   `(magit-diff-context-highlight ((,class ,@(modus-vivendi-theme-diffs
+                                              bg-dim fg-dim
+                                              bg-inactive fg-inactive))))
+   `(magit-diff-file-heading ((,class :inherit bold :foreground ,fg-special-cold)))
+   `(magit-diff-file-heading-highlight ((,class :inherit (modus-theme-special-cold bold))))
+   `(magit-diff-file-heading-selection ((,class :background ,bg-alt :foreground ,cyan)))
+   `(magit-diff-hunk-heading ((,class :inherit bold :background ,bg-active :foreground ,fg-inactive)))
+   `(magit-diff-hunk-heading-highlight ((,class :inherit (modus-theme-diff-heading bold))))
+   `(magit-diff-hunk-heading-selection ((,class :inherit modus-theme-intense-cyan)))
+   `(magit-diff-hunk-region ((,class :inherit bold)))
+   `(magit-diff-lines-boundary ((,class :background ,fg-main)))
+   `(magit-diff-lines-heading ((,class :inherit modus-theme-refine-magenta)))
+   `(magit-diff-removed ((,class ,@(modus-vivendi-theme-diffs
+                                    bg-main red
+                                    bg-diff-removed fg-diff-removed))))
+   `(magit-diff-removed-highlight ((,class ,@(modus-vivendi-theme-diffs
+                                              bg-dim red
+                                              bg-diff-focus-removed fg-diff-focus-removed))))
+   `(magit-diffstat-added ((,class :foreground ,green)))
+   `(magit-diffstat-removed ((,class :foreground ,red)))
+   `(magit-dimmed ((,class :foreground ,fg-unfocused)))
+   `(magit-filename ((,class :foreground ,fg-special-cold)))
+   `(magit-hash ((,class :foreground ,fg-alt)))
+   `(magit-head ((,class :inherit magit-branch-local)))
+   `(magit-header-line ((,class :inherit bold :foreground ,magenta-active)))
+   `(magit-header-line-key ((,class :inherit bold :foreground ,red-active)))
+   `(magit-header-line-log-select ((,class :inherit bold :foreground ,fg-main)))
+   `(magit-keyword ((,class :foreground ,magenta)))
+   `(magit-keyword-squash ((,class :inherit bold :foreground ,yellow-alt-other)))
+   `(magit-log-author ((,class :foreground ,cyan)))
+   `(magit-log-date ((,class :foreground ,fg-alt)))
+   `(magit-log-graph ((,class :foreground ,fg-dim)))
+   `(magit-mode-line-process ((,class :inherit bold :foreground ,blue-active)))
+   `(magit-mode-line-process-error ((,class :inherit bold :foreground ,red-active)))
+   `(magit-process-ng ((,class :inherit error)))
+   `(magit-process-ok ((,class :inherit success)))
+   `(magit-reflog-amend ((,class :background ,bg-main :foreground ,magenta-intense)))
+   `(magit-reflog-checkout ((,class :background ,bg-main :foreground ,blue-intense)))
+   `(magit-reflog-cherry-pick ((,class :background ,bg-main :foreground ,green-intense)))
+   `(magit-reflog-commit ((,class :background ,bg-main :foreground ,green-intense)))
+   `(magit-reflog-merge ((,class :background ,bg-main :foreground ,green-intense)))
+   `(magit-reflog-other ((,class :background ,bg-main :foreground ,cyan-intense)))
+   `(magit-reflog-rebase ((,class :background ,bg-main :foreground ,magenta-intense)))
+   `(magit-reflog-remote ((,class :background ,bg-main :foreground ,cyan-intense)))
+   `(magit-reflog-reset ((,class :background ,bg-main :foreground ,red-intense)))
+   `(magit-refname ((,class :foreground ,fg-alt)))
+   `(magit-refname-pullreq ((,class :foreground ,fg-alt)))
+   `(magit-refname-stash ((,class :foreground ,fg-alt)))
+   `(magit-refname-wip ((,class :foreground ,fg-alt)))
+   `(magit-section ((,class :background ,bg-dim :foreground ,fg-main)))
+   `(magit-section-heading ((,class :inherit bold :foreground ,cyan)))
+   `(magit-section-heading-selection ((,class :inherit (modus-theme-refine-cyan bold))))
+   `(magit-section-highlight ((,class :background ,bg-alt)))
+   `(magit-sequence-done ((,class :foreground ,green-alt)))
+   `(magit-sequence-drop ((,class :foreground ,red-alt)))
+   `(magit-sequence-exec ((,class :foreground ,magenta-alt)))
+   `(magit-sequence-head ((,class :foreground ,cyan-alt)))
+   `(magit-sequence-onto ((,class :foreground ,fg-alt)))
+   `(magit-sequence-part ((,class :foreground ,yellow-alt)))
+   `(magit-sequence-pick ((,class :foreground ,blue-alt)))
+   `(magit-sequence-stop ((,class :foreground ,red)))
+   `(magit-signature-bad ((,class :inherit bold :foreground ,red)))
+   `(magit-signature-error ((,class :foreground ,red-alt)))
+   `(magit-signature-expired ((,class :foreground ,yellow)))
+   `(magit-signature-expired-key ((,class :foreground ,yellow)))
+   `(magit-signature-good ((,class :foreground ,green)))
+   `(magit-signature-revoked ((,class :foreground ,magenta)))
+   `(magit-signature-untrusted ((,class :foreground ,cyan)))
+   `(magit-tag ((,class :foreground ,yellow-alt-other)))
+;;;;; magit-imerge
+   `(magit-imerge-overriding-value ((,class :inherit bold :foreground ,red-alt)))
+;;;;; man
+   `(Man-overstrike ((,class :inherit bold :foreground ,magenta)))
+   `(Man-reverse ((,class :inherit modus-theme-subtle-magenta)))
+   `(Man-underline ((,class :foreground ,cyan :underline t)))
+;;;;; markdown-mode
+   `(markdown-blockquote-face ((,class :foreground ,fg-special-warm :slant ,modus-theme-slant)))
+   `(markdown-bold-face ((,class :inherit bold)))
+   `(markdown-code-face ((,class :inherit fixed-pitch)))
+   `(markdown-comment-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
+   `(markdown-footnote-marker-face ((,class :inherit bold :foreground ,cyan-alt)))
+   `(markdown-footnote-text-face ((,class :foreground ,fg-main :slant ,modus-theme-slant)))
+   `(markdown-gfm-checkbox-face ((,class :foreground ,cyan-alt-other)))
+   `(markdown-header-delimiter-face ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,fg-dim)))
+   `(markdown-header-face ((,class :inherit bold)))
+   `(markdown-header-rule-face ((,class :inherit bold :foreground ,fg-special-warm)))
+   `(markdown-hr-face ((,class :inherit bold :foreground ,fg-special-warm)))
+   `(markdown-html-attr-name-face ((,class :inherit fixed-pitch :foreground ,cyan)))
+   `(markdown-html-attr-value-face ((,class :inherit fixed-pitch :foreground ,blue)))
+   `(markdown-html-entity-face ((,class :inherit fixed-pitch :foreground ,cyan)))
+   `(markdown-html-tag-delimiter-face ((,class :inherit fixed-pitch :foreground ,fg-special-mild)))
+   `(markdown-html-tag-name-face ((,class :inherit fixed-pitch :foreground ,magenta-alt)))
+   `(markdown-inline-code-face ((,class :inherit fixed-pitch :foreground ,magenta)))
+   `(markdown-italic-face ((,class :foreground ,fg-special-cold :slant italic)))
+   `(markdown-language-info-face ((,class :inherit fixed-pitch :foreground ,fg-special-cold)))
+   `(markdown-language-keyword-face ((,class :inherit fixed-pitch :foreground ,green-alt-other)))
+   `(markdown-line-break-face ((,class :inherit modus-theme-refine-cyan :underline t)))
+   `(markdown-link-face ((,class :inherit link)))
+   `(markdown-link-title-face ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
+   `(markdown-list-face ((,class :foreground ,fg-dim)))
+   `(markdown-markup-face ((,class :foreground ,fg-alt)))
+   `(markdown-math-face ((,class :foreground ,magenta-alt-other)))
+   `(markdown-metadata-key-face ((,class :foreground ,cyan-alt-other)))
+   `(markdown-metadata-value-face ((,class :foreground ,blue-alt)))
+   `(markdown-missing-link-face ((,class :inherit bold :foreground ,yellow)))
+   `(markdown-plain-url-face ((,class :inherit markdown-link-face)))
+   `(markdown-pre-face ((,class ,@(and (>= emacs-major-version 27) '(:extend t))
+                                :inherit fixed-pitch :background ,bg-dim
+                                :foreground ,fg-special-mild)))
+   `(markdown-reference-face ((,class :inherit markdown-markup-face)))
+   `(markdown-strike-through-face ((,class :strike-through t)))
+   `(markdown-table-face ((,class :inherit fixed-pitch :foreground ,fg-special-cold)))
+   `(markdown-url-face ((,class :foreground ,blue)))
+;;;;; markup-faces (`adoc-mode')
+   `(markup-anchor-face ((,class :foreground ,fg-inactive)))
+   `(markup-attribute-face ((,class :foreground ,fg-inactive :slant italic)))
+   `(markup-big-face ((,class :height 1.3 :foreground ,blue-nuanced)))
+   `(markup-bold-face ((,class :inherit bold :foreground ,red-nuanced)))
+   `(markup-code-face ((,class :inherit fixed-pitch :foreground ,magenta)))
+   `(markup-command-face ((,class :foreground ,fg-inactive)))
+   `(markup-comment-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
+   `(markup-complex-replacement-face ((,class :box (:line-width 2 :color nil :style released-button)
+                                              :inherit modus-theme-refine-magenta)))
+   `(markup-emphasis-face ((,class :foreground ,fg-special-cold :slant italic)))
+   `(markup-error-face ((,class :inherit bold :foreground ,red)))
+   `(markup-gen-face ((,class :foreground ,magenta-alt)))
+   `(markup-internal-reference-face ((,class :foreground ,fg-inactive :underline t)))
+   `(markup-italic-face ((,class :foreground ,fg-special-cold :slant italic)))
+   `(markup-list-face ((,class :inherit modus-theme-special-calm)))
+   `(markup-meta-face ((,class :foreground ,fg-inactive)))
+   `(markup-meta-hide-face ((,class :foreground ,fg-alt)))
+   `(markup-passthrough-face ((,class :inherit fixed-pitch :foreground ,cyan)))
+   `(markup-preprocessor-face ((,class :foreground ,red-alt-other)))
+   `(markup-replacement-face ((,class :foreground ,yellow-alt-other)))
+   `(markup-secondary-text-face ((,class :height 0.8 :foreground ,magenta-nuanced)))
+   `(markup-small-face ((,class :height 0.8 :foreground ,fg-main)))
+   `(markup-strong-face ((,class :inherit bold :foreground ,red-nuanced)))
+   `(markup-subscript-face ((,class :height 0.8 :foreground ,fg-special-cold)))
+   `(markup-superscript-face ((,class :height 0.8 :foreground ,fg-special-cold)))
+   `(markup-table-cell-face ((,class :inherit modus-theme-special-cold)))
+   `(markup-table-face ((,class :inherit modus-theme-subtle-cyan)))
+   `(markup-table-row-face ((,class :inherit modus-theme-subtle-cyan)))
+   `(markup-title-0-face ((,class :height 3.0 :foreground ,blue-nuanced)))
+   `(markup-title-1-face ((,class :height 2.4 :foreground ,blue-nuanced)))
+   `(markup-title-2-face ((,class :height 1.8 :foreground ,blue-nuanced)))
+   `(markup-title-3-face ((,class :height 1.4 :foreground ,blue-nuanced)))
+   `(markup-title-4-face ((,class :height 1.2 :foreground ,blue-nuanced)))
+   `(markup-title-5-face ((,class :height 1.2 :foreground ,blue-nuanced :underline t)))
+   `(markup-value-face ((,class :foreground ,fg-inactive)))
+   `(markup-verbatim-face ((,class :inherit modus-theme-special-mild)))
+;;;;; mentor
+   `(mentor-download-message ((,class :foreground ,fg-special-warm)))
+   `(mentor-download-name ((,class :foreground ,fg-special-cold)))
+   `(mentor-download-progress ((,class :foreground ,blue-alt-other)))
+   `(mentor-download-size ((,class :foreground ,magenta-alt-other)))
+   `(mentor-download-speed-down ((,class :foreground ,cyan-alt)))
+   `(mentor-download-speed-up ((,class :foreground ,red-alt)))
+   `(mentor-download-state ((,class :foreground ,yellow-alt)))
+   `(mentor-highlight-face ((,class :inherit modus-theme-subtle-blue)))
+   `(mentor-tracker-name ((,class :foreground ,magenta-alt)))
+;;;;; messages
+   `(message-cited-text-1 ((,class :foreground ,blue-alt)))
+   `(message-cited-text-2 ((,class :foreground ,red-alt)))
+   `(message-cited-text-3 ((,class :foreground ,green-alt)))
+   `(message-cited-text-4 ((,class :foreground ,magenta-alt)))
+   `(message-header-cc ((,class :foreground ,blue-alt)))
+   `(message-header-name ((,class :foreground ,green-alt-other)))
+   `(message-header-newsgroups ((,class :inherit bold :foreground ,blue)))
+   `(message-header-other ((,class :inherit bold :foreground ,cyan-alt-other)))
+   `(message-header-subject ((,class :inherit bold :foreground ,magenta-alt-other)))
+   `(message-header-to ((,class :inherit bold :foreground ,magenta-alt)))
+   `(message-header-xheader ((,class :foreground ,blue-alt-other)))
+   `(message-mml ((,class :foreground ,green-alt)))
+   `(message-separator ((,class :background ,bg-active :foreground ,fg-special-warm)))
+;;;;; minibuffer-line
+   `(minibuffer-line ((,class :foreground ,fg-main)))
+;;;;; minimap
+   `(minimap-active-region-background ((,class :background ,bg-active)))
+   `(minimap-current-line-face ((,class :background ,cyan-intense-bg :foreground ,fg-main)))
+;;;;; modeline
+   `(mode-line ((,class :box ,(modus-vivendi-theme-modeline-box bg-active fg-alt t)
+                        ,@(modus-vivendi-theme-modeline-props
+                           bg-active fg-dim
+                           bg-active fg-active))))
+   `(mode-line-buffer-id ((,class :inherit bold)))
+   `(mode-line-emphasis ((,class :inherit bold :foreground ,blue-active)))
+   `(mode-line-highlight ((,class :inherit modus-theme-active-blue :box (:line-width -1 :style pressed-button))))
+   `(mode-line-inactive ((,class :box ,(modus-vivendi-theme-modeline-box bg-active bg-region)
+                                 ,@(modus-vivendi-theme-modeline-props
+                                    bg-dim fg-inactive
+                                    bg-inactive fg-inactive))))
+;;;;; mood-line
+   `(mood-line-modified ((,class :foreground ,magenta-active)))
+   `(mood-line-status-error ((,class :inherit bold :foreground ,red-active)))
+   `(mood-line-status-info ((,class :foreground ,cyan-active)))
+   `(mood-line-status-neutral ((,class :foreground ,blue-active)))
+   `(mood-line-status-success ((,class :foreground ,green-active)))
+   `(mood-line-status-warning ((,class :inherit bold :foreground ,yellow-active)))
+   `(mood-line-unimportant ((,class :foreground ,fg-inactive)))
+;;;;; mu4e
+   `(mu4e-attach-number-face ((,class :inherit bold :foreground ,cyan-alt)))
+   `(mu4e-cited-1-face ((,class :foreground ,blue-alt)))
+   `(mu4e-cited-2-face ((,class :foreground ,red-alt)))
+   `(mu4e-cited-3-face ((,class :foreground ,green-alt)))
+   `(mu4e-cited-4-face ((,class :foreground ,magenta-alt)))
+   `(mu4e-cited-5-face ((,class :foreground ,yellow-alt)))
+   `(mu4e-cited-6-face ((,class :foreground ,cyan-alt)))
+   `(mu4e-cited-7-face ((,class :foreground ,magenta)))
+   `(mu4e-compose-header-face ((,class :inherit mu4e-compose-separator-face)))
+   `(mu4e-compose-separator-face ((,class :background ,bg-active :foreground ,fg-special-warm)))
+   `(mu4e-contact-face ((,class :inherit bold :foreground ,cyan-alt-other)))
+   `(mu4e-context-face ((,class :foreground ,blue-active)))
+   `(mu4e-draft-face ((,class :foreground ,magenta-alt)))
+   `(mu4e-flagged-face ((,class :foreground ,red-alt)))
+   `(mu4e-footer-face ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
+   `(mu4e-forwarded-face ((,class :foreground ,magenta-alt-other)))
+   `(mu4e-header-face ((,class :foreground ,fg-alt)))
+   `(mu4e-header-highlight-face ((,class :inherit modus-theme-hl-line)))
+   `(mu4e-header-key-face ((,class :foreground ,cyan)))
+   `(mu4e-header-marks-face ((,class :inherit bold :foreground ,magenta-alt)))
+   `(mu4e-header-title-face ((,class :foreground ,fg-special-mild)))
+   `(mu4e-header-value-face ((,class :inherit bold :foreground ,magenta-alt-other)))
+   `(mu4e-highlight-face ((,class :inherit bold :foreground ,blue-alt-other)))
+   `(mu4e-link-face ((,class :inherit link)))
+   `(mu4e-modeline-face ((,class :foreground ,magenta-active)))
+   `(mu4e-moved-face ((,class :foreground ,yellow :slant ,modus-theme-slant)))
+   `(mu4e-ok-face ((,class :inherit bold :foreground ,green)))
+   `(mu4e-region-code ((,class :inherit modus-theme-special-calm)))
+   `(mu4e-replied-face ((,class :foreground ,cyan-active)))
+   `(mu4e-special-header-value-face ((,class :inherit bold :foreground ,blue-alt-other)))
+   `(mu4e-system-face ((,class :foreground ,fg-mark-del :slant ,modus-theme-slant)))
+   `(mu4e-title-face ((,class :foreground ,fg-main)))
+   `(mu4e-trashed-face ((,class :foreground ,red)))
+   `(mu4e-unread-face ((,class :inherit bold :foreground ,fg-main)))
+   `(mu4e-url-number-face ((,class :inherit bold :foreground ,cyan-alt-other)))
+   `(mu4e-view-body-face ((,class :foreground ,fg-main)))
+   `(mu4e-warning-face ((,class :inherit warning)))
+;;;;; mu4e-conversation
+   `(mu4e-conversation-header ((,class :inherit modus-theme-special-cold)))
+   `(mu4e-conversation-sender-1 ((,class :foreground ,fg-special-warm)))
+   `(mu4e-conversation-sender-2 ((,class :foreground ,fg-special-cold)))
+   `(mu4e-conversation-sender-3 ((,class :foreground ,fg-special-mild)))
+   `(mu4e-conversation-sender-4 ((,class :foreground ,fg-alt)))
+   `(mu4e-conversation-sender-5 ((,class :foreground ,yellow-refine-fg)))
+   `(mu4e-conversation-sender-6 ((,class :foreground ,cyan-refine-fg)))
+   `(mu4e-conversation-sender-7 ((,class :foreground ,green-refine-fg)))
+   `(mu4e-conversation-sender-8 ((,class :foreground ,blue-refine-fg)))
+   `(mu4e-conversation-sender-me ((,class :foreground ,fg-main)))
+   `(mu4e-conversation-unread ((,class :inherit bold)))
+;;;;; multiple-cursors
+   `(mc/cursor-bar-face ((,class :height 1 :background ,fg-main)))
+   `(mc/cursor-face ((,class :inverse-video t)))
+   `(mc/region-face ((,class :inherit region)))
+;;;;; neotree
+   `(neo-banner-face ((,class :foreground ,magenta)))
+   `(neo-button-face ((,class :inherit button)))
+   `(neo-dir-link-face ((,class :inherit bold :foreground ,blue)))
+   `(neo-expand-btn-face ((,class :foreground ,cyan)))
+   `(neo-file-link-face ((,class :foreground ,fg-main)))
+   `(neo-header-face ((,class :inherit bold :foreground ,fg-main)))
+   `(neo-root-dir-face ((,class :inherit bold :foreground ,cyan-alt)))
+   `(neo-vc-added-face ((,class :foreground ,green)))
+   `(neo-vc-conflict-face ((,class :inherit bold :foreground ,red)))
+   `(neo-vc-default-face ((,class :foreground ,fg-main)))
+   `(neo-vc-edited-face ((,class :foreground ,yellow)))
+   `(neo-vc-ignored-face ((,class :foreground ,fg-inactive)))
+   `(neo-vc-missing-face ((,class :foreground ,red-alt)))
+   `(neo-vc-needs-merge-face ((,class :foreground ,magenta-alt)))
+   `(neo-vc-needs-update-face ((,class :underline t)))
+   `(neo-vc-removed-face ((,class :strike-through t)))
+   `(neo-vc-unlocked-changes-face ((,class :inherit modus-theme-refine-blue)))
+   `(neo-vc-up-to-date-face ((,class :foreground ,fg-alt)))
+   `(neo-vc-user-face ((,class :foreground ,magenta)))
+;;;;; no-emoji
+   `(no-emoji ((,class :foreground ,cyan)))
+;;;;; notmuch
+   `(notmuch-crypto-decryption ((,class :inherit modus-theme-refine-magenta)))
+   `(notmuch-crypto-part-header ((,class :foreground ,magenta-alt-other)))
+   `(notmuch-crypto-signature-bad ((,class :inherit modus-theme-intense-red)))
+   `(notmuch-crypto-signature-good ((,class :inherit modus-theme-refine-green)))
+   `(notmuch-crypto-signature-good-key ((,class :inherit modus-theme-refine-yellow)))
+   `(notmuch-crypto-signature-unknown ((,class :inherit modus-theme-refine-red)))
+   `(notmuch-hello-logo-background ((,class :background ,bg-main)))
+   `(notmuch-message-summary-face ((,class :inherit modus-theme-nuanced-cyan)))
+   `(notmuch-search-flagged-face ((,class :foreground ,red-alt)))
+   `(notmuch-search-matching-authors ((,class :foreground ,fg-main)))
+   `(notmuch-search-non-matching-authors ((,class :foreground ,fg-alt)))
+   `(notmuch-search-unread-face ((,class :inherit bold)))
+   `(notmuch-tag-added
+     ((,(append '((supports :underline (:style wave))) class)
+       :underline (:color ,green :style wave))
+      (,class :foreground ,green :underline t)))
+   `(notmuch-tag-deleted
+     ((,(append '((supports :underline (:style wave))) class)
+       :underline (:color ,red :style wave))
+      (,class :foreground ,red :underline t)))
+   `(notmuch-tag-face ((,class :inherit bold :foreground ,blue-alt)))
+   `(notmuch-tag-flagged ((,class :foreground ,red-alt)))
+   `(notmuch-tag-unread ((,class :foreground ,magenta-alt)))
+   `(notmuch-tree-match-author-face ((,class :foreground ,fg-special-cold)))
+   `(notmuch-tree-match-face ((,class :foreground ,fg-main)))
+   `(notmuch-tree-match-tag-face ((,class :inherit bold :foreground ,blue-alt)))
+   `(notmuch-tree-no-match-face ((,class :foreground ,fg-alt)))
+   `(notmuch-wash-cited-text ((,class :foreground ,cyan)))
+   `(notmuch-wash-toggle-button ((,class :background ,bg-alt :foreground ,fg-alt)))
+;;;;; num3-mode
+   `(num3-face-even ((,class :inherit bold :background ,bg-alt)))
+;;;;; nxml-mode
+   `(nxml-attribute-colon ((,class :foreground ,fg-main)))
+   `(nxml-attribute-local-name ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                           cyan-alt cyan-alt-faint))))
+   `(nxml-attribute-prefix ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                       cyan-alt-other cyan-alt-other-faint)
+                                    ,@(modus-vivendi-theme-bold-weight))))
+   `(nxml-attribute-value ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                      blue blue-faint))))
+   `(nxml-cdata-section-CDATA ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                          red-alt red-alt-faint)
+                                       ,@(modus-vivendi-theme-bold-weight))))
+   `(nxml-cdata-section-delimiter ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                              red-alt red-alt-faint))))
+   `(nxml-char-ref-delimiter ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                         green-alt-other green-alt-other-faint))))
+   `(nxml-char-ref-number ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                      green-alt-other green-alt-other-faint)
+                                   ,@(modus-vivendi-theme-bold-weight))))
+   `(nxml-delimited-data ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
+   `(nxml-delimiter ((,class :foreground ,fg-dim)))
+   `(nxml-element-colon ((,class :foreground ,fg-main)))
+   `(nxml-element-local-name ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                         magenta magenta-faint))))
+   `(nxml-element-prefix ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                     magenta-alt magenta-alt-faint)
+                                  ,@(modus-vivendi-theme-bold-weight))))
+   `(nxml-entity-ref-delimiter ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                           green-alt-other green-alt-other-faint))))
+   `(nxml-entity-ref-name ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                      green-alt-other green-alt-other-faint)
+                                   ,@(modus-vivendi-theme-bold-weight))))
+   `(nxml-glyph ((,class :inherit modus-theme-intense-neutral)))
+   `(nxml-hash ((,class ,@(modus-vivendi-theme-syntax-foreground
+                           blue-alt blue-alt-faint)
+                        ,@(modus-vivendi-theme-bold-weight))))
+   `(nxml-heading ((,class :inherit bold)))
+   `(nxml-name ((,class ,@(modus-vivendi-theme-syntax-foreground
+                           magenta-alt magenta-alt-faint)
+                        ,@(modus-vivendi-theme-bold-weight))))
+   `(nxml-namespace-attribute-colon ((,class :foreground ,fg-main)))
+   `(nxml-namespace-attribute-prefix ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                                 cyan cyan-faint))))
+   `(nxml-processing-instruction-target ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                                    magenta-alt-other magenta-alt-other-faint)
+                                                 ,@(modus-vivendi-theme-bold-weight))))
+   `(nxml-prolog-keyword ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                     magenta-alt-other magenta-alt-other-faint)
+                                  ,@(modus-vivendi-theme-bold-weight))))
+   `(nxml-ref ((,class ,@(modus-vivendi-theme-syntax-foreground
+                          green-alt-other green-alt-other-faint)
+                       ,@(modus-vivendi-theme-bold-weight))))
+;;;;; orderless
+   `(orderless-match-face-0 ((,class :inherit bold
+                                     ,@(modus-vivendi-theme-standard-completions
+                                        blue-alt blue-nuanced-bg
+                                        blue-refine-bg blue-refine-fg))))
+   `(orderless-match-face-1 ((,class :inherit bold
+                                     ,@(modus-vivendi-theme-standard-completions
+                                        magenta-alt magenta-nuanced-bg
+                                        magenta-refine-bg magenta-refine-fg))))
+   `(orderless-match-face-2 ((,class :inherit bold
+                                     ,@(modus-vivendi-theme-standard-completions
+                                        green-alt-other green-nuanced-bg
+                                        green-refine-bg green-refine-fg))))
+   `(orderless-match-face-3 ((,class :inherit bold
+                                     ,@(modus-vivendi-theme-standard-completions
+                                        yellow-alt-other yellow-nuanced-bg
+                                        yellow-refine-bg yellow-refine-fg))))
+;;;;; org
+   `(org-agenda-calendar-event ((,class :foreground ,fg-main)))
+   `(org-agenda-calendar-sexp ((,class :foreground ,cyan-alt)))
+   `(org-agenda-clocking ((,class :inherit modus-theme-special-cold)))
+   `(org-agenda-column-dateline ((,class :background ,bg-alt)))
+   `(org-agenda-current-time ((,class :inherit modus-theme-subtle-cyan)))
+   `(org-agenda-date ((,class :inherit ,modus-theme-variable-pitch :foreground ,cyan-alt-other
+                              ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-4)
+                              ,@(modus-vivendi-theme-heading-block cyan-nuanced-bg cyan-nuanced))))
+   `(org-agenda-date-today ((,class :inherit (bold ,modus-theme-variable-pitch)
+                                    :background ,cyan-intense-bg :foreground ,fg-main
+                                    ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-4))))
+   `(org-agenda-date-weekend ((,class :inherit ,modus-theme-variable-pitch :foreground ,cyan
+                                      ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-4)
+                                      ,@(modus-vivendi-theme-heading-block blue-nuanced-bg cyan-nuanced))))
+   `(org-agenda-diary ((,class :foreground ,fg-main)))
+   `(org-agenda-dimmed-todo-face ((,class :inherit modus-theme-subtle-neutral)))
+   `(org-agenda-done ((,class ,@(modus-vivendi-theme-org-todo-block green-nuanced-bg green-nuanced green))))
+   `(org-agenda-filter-category ((,class :inherit bold :foreground ,magenta-active)))
+   `(org-agenda-filter-effort ((,class :inherit bold :foreground ,magenta-active)))
+   `(org-agenda-filter-regexp ((,class :inherit bold :foreground ,magenta-active)))
+   `(org-agenda-filter-tags ((,class :inherit bold :foreground ,magenta-active)))
+   `(org-agenda-restriction-lock ((,class :background ,bg-dim :foreground ,fg-dim)))
+   `(org-agenda-structure ((,class :inherit ,modus-theme-variable-pitch
+                                   :foreground ,fg-special-mild
+                                   ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-3))))
+   `(org-archived ((,class :background ,bg-alt :foreground ,fg-alt)))
+   `(org-block ((,class ,@(modus-vivendi-theme-org-block bg-dim)
+                        :inherit fixed-pitch :foreground ,fg-main)))
+   `(org-block-begin-line ((,class ,@(modus-vivendi-theme-org-block-delim
+                                      bg-dim fg-special-cold
+                                      bg-alt fg-special-mild)
+                                   :inherit fixed-pitch)))
+   `(org-block-end-line ((,class :inherit org-block-begin-line)))
+   `(org-checkbox ((,class :box (:line-width 1 :color ,bg-active)
+                           :background ,bg-inactive :foreground ,fg-active)))
+   `(org-checkbox-statistics-done ((,class :foreground ,green
+                                           ,@(modus-vivendi-theme-heading-block
+                                              green-nuanced-bg green-nuanced))))
+   `(org-checkbox-statistics-todo ((,class ,@(modus-vivendi-theme-heading-foreground red-alt red)
+                                           ,@(modus-vivendi-theme-heading-block
+                                              red-nuanced-bg red-nuanced))))
+   `(org-clock-overlay ((,class :inherit modus-theme-special-cold)))
+   `(org-code ((,class :inherit fixed-pitch :foreground ,magenta)))
+   `(org-column ((,class :background ,bg-alt)))
+   `(org-column-title ((,class :inherit bold :underline t :background ,bg-alt)))
+   `(org-date ((,class :inherit fixed-pitch :foreground ,cyan-alt-other :underline t)))
+   `(org-date-selected ((,class :inherit bold :foreground ,blue-alt :inverse-video t)))
+   `(org-default ((,class :background ,bg-main :foreground ,fg-main)))
+   `(org-document-info ((,class :foreground ,fg-special-cold)))
+   `(org-document-info-keyword ((,class :inherit fixed-pitch :foreground ,fg-alt)))
+   `(org-document-title ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-special-cold
+                                 ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-5))))
+   `(org-done ((,class ,@(modus-vivendi-theme-org-todo-block green-nuanced-bg green-nuanced green))))
+   `(org-drawer ((,class :foreground ,cyan-alt)))
+   `(org-ellipsis ((,class :foreground nil))) ; inherits from the heading's colour
+   `(org-footnote ((,class :foreground ,blue-alt :underline t)))
+   `(org-formula ((,class :inherit fixed-pitch :foreground ,red-alt)))
+   `(org-habit-alert-face ((,class :inherit modus-theme-intense-yellow)))
+   `(org-habit-alert-future-face ((,class :inherit modus-theme-refine-yellow)))
+   `(org-habit-clear-face ((,class :inherit modus-theme-intense-magenta)))
+   `(org-habit-clear-future-face ((,class :inherit modus-theme-refine-magenta)))
+   `(org-habit-overdue-face ((,class :inherit modus-theme-intense-red)))
+   `(org-habit-overdue-future-face ((,class :inherit modus-theme-refine-red)))
+   `(org-habit-ready-face ((,class :inherit modus-theme-intense-blue)))
+   `(org-habit-ready-future-face ((,class :inherit modus-theme-refine-blue)))
+   `(org-headline-done ((,class :foreground ,green-nuanced
+                                ,@(modus-vivendi-theme-heading-block
+                                   green-nuanced-bg green-nuanced))))
+   `(org-hide ((,class :foreground ,bg-main)))
+   `(org-indent ((,class :inherit (fixed-pitch org-hide))))
+   `(org-latex-and-related ((,class :foreground ,magenta-refine-fg)))
+   `(org-level-1 ((,class :inherit (bold ,modus-theme-variable-pitch)
+                          ,@(modus-vivendi-theme-heading-foreground fg-main magenta-alt-other)
+                          ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-4)
+                          ,@(modus-vivendi-theme-heading-block magenta-nuanced-bg magenta-nuanced))))
+   `(org-level-2 ((,class :inherit (bold ,modus-theme-variable-pitch)
+                          ,@(modus-vivendi-theme-heading-foreground fg-special-warm magenta-alt)
+                          ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-3)
+                          ,@(modus-vivendi-theme-heading-block red-nuanced-bg red-nuanced))))
+   `(org-level-3 ((,class :inherit (bold ,modus-theme-variable-pitch)
+                          ,@(modus-vivendi-theme-heading-foreground fg-special-cold blue)
+                          ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-2)
+                          ,@(modus-vivendi-theme-heading-block blue-nuanced-bg blue-nuanced))))
+   `(org-level-4 ((,class :inherit (bold ,modus-theme-variable-pitch)
+                          ,@(modus-vivendi-theme-heading-foreground fg-special-mild cyan)
+                          ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-1)
+                          ,@(modus-vivendi-theme-heading-block cyan-nuanced-bg cyan-nuanced))))
+   `(org-level-5 ((,class :inherit (bold ,modus-theme-variable-pitch)
+                          ,@(modus-vivendi-theme-heading-foreground fg-special-calm green-alt-other)
+                          ,@(modus-vivendi-theme-heading-block green-nuanced-bg green-nuanced))))
+   `(org-level-6 ((,class :inherit (bold ,modus-theme-variable-pitch)
+                          ,@(modus-vivendi-theme-heading-foreground yellow-nuanced yellow-alt-other)
+                          ,@(modus-vivendi-theme-heading-block yellow-nuanced-bg yellow-nuanced))))
+   `(org-level-7 ((,class :inherit (bold ,modus-theme-variable-pitch)
+                          ,@(modus-vivendi-theme-heading-foreground red-nuanced red-alt)
+                          ,@(modus-vivendi-theme-heading-block red-nuanced-bg red-nuanced))))
+   `(org-level-8 ((,class :inherit (bold ,modus-theme-variable-pitch)
+                          ,@(modus-vivendi-theme-heading-foreground fg-dim magenta)
+                          ,@(modus-vivendi-theme-heading-block bg-alt fg-alt))))
+   `(org-link ((,class :inherit link)))
+   `(org-list-dt ((,class :inherit bold)))
+   `(org-macro ((,class :inherit org-latex-and-related)))
+   `(org-meta-line ((,class :inherit fixed-pitch :background ,cyan-nuanced-bg :foreground ,cyan-nuanced)))
+   `(org-mode-line-clock ((,class :foreground ,fg-main)))
+   `(org-mode-line-clock-overrun ((,class :inherit modus-theme-active-red)))
+   `(org-priority ((,class ,@(modus-vivendi-theme-org-todo-block magenta-nuanced-bg magenta-nuanced magenta)
+                           ,@(modus-vivendi-theme-heading-foreground magenta magenta-alt-other))))
+   `(org-quote ((,class ,@(if modus-vivendi-theme-org-blocks
+                              (append
+                               (and (>= emacs-major-version 27) '(:extend t))
+                               (list :background bg-dim))
+                            (list :background nil))
+                        :foreground ,fg-special-calm :slant ,modus-theme-slant)))
+   `(org-scheduled ((,class :foreground ,fg-special-warm)))
+   `(org-scheduled-previously ((,class :foreground ,yellow-alt-other)))
+   `(org-scheduled-today ((,class :foreground ,magenta-alt-other)))
+   `(org-sexp-date ((,class :inherit org-date)))
+   `(org-special-keyword ((,class ,@(modus-vivendi-theme-org-todo-block cyan-nuanced-bg cyan-nuanced cyan-alt))))
+   `(org-table ((,class :inherit fixed-pitch :foreground ,fg-special-cold)))
+   `(org-tag ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,magenta-nuanced)))
+   `(org-tag-group ((,class :inherit bold :foreground ,cyan-nuanced)))
+   `(org-target ((,class :underline t)))
+   `(org-time-grid ((,class :foreground ,fg-unfocused)))
+   `(org-todo ((,class ,@(modus-vivendi-theme-org-todo-block red-nuanced-bg red-nuanced red-alt)
+                       ,@(modus-vivendi-theme-heading-foreground red-alt red))))
+   `(org-upcoming-deadline ((,class :foreground ,red-alt-other)))
+   `(org-upcoming-distant-deadline ((,class :foreground ,red-nuanced)))
+   `(org-verbatim ((,class :inherit fixed-pitch :background ,bg-alt :foreground ,fg-special-calm)))
+   `(org-verse ((,class :inherit org-quote)))
+   `(org-warning ((,class :inherit bold :foreground ,red-alt-other)))
+;;;;; org-journal
+   `(org-journal-calendar-entry-face ((,class :foreground ,yellow-alt-other :slant ,modus-theme-slant)))
+   `(org-journal-calendar-scheduled-face ((,class :foreground ,red-alt-other :slant ,modus-theme-slant)))
+   `(org-journal-highlight ((,class :foreground ,magenta-alt)))
+;;;;; org-noter
+   `(org-noter-no-notes-exist-face ((,class :inherit bold :foreground ,red-active)))
+   `(org-noter-notes-exist-face ((,class :inherit bold :foreground ,green-active)))
+;;;;; org-pomodoro
+   `(org-pomodoro-mode-line ((,class :foreground ,red-active)))
+   `(org-pomodoro-mode-line-break ((,class :foreground ,cyan-active)))
+   `(org-pomodoro-mode-line-overtime ((,class :inherit bold :foreground ,red-active)))
+;;;;; org-recur
+   `(org-recur ((,class :foreground ,magenta-active)))
+;;;;; org-roam
+   `(org-roam-link ((,class :foreground ,blue-alt-other :underline t)))
+   `(org-roam-backlink ((,class :foreground ,green-alt-other :underline t)))
+;;;;; org-superstar
+   `(org-superstar-item ((,class :foreground ,fg-main)))
+   `(org-superstar-leading ((,class :foreground ,fg-whitespace)))
+;;;;; org-table-sticky-header
+   `(org-table-sticky-header-face ((,class :inherit modus-theme-intense-neutral)))
+;;;;; org-treescope
+   `(org-treescope-faces--markerinternal-midday ((,class :inherit modus-theme-intense-blue)))
+   `(org-treescope-faces--markerinternal-range ((,class :inherit modus-theme-special-mild)))
+;;;;; origami
+   `(origami-fold-header-face ((,class :background ,bg-dim :foreground ,fg-dim :box t)))
+   `(origami-fold-replacement-face ((,class :background ,bg-alt :foreground ,fg-alt)))
+;;;;; outline-mode
+   `(outline-1 ((,class :inherit (bold ,modus-theme-variable-pitch)
+                        ,@(modus-vivendi-theme-heading-foreground fg-main magenta-alt-other)
+                        ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-4)
+                        ,@(modus-vivendi-theme-heading-block magenta-nuanced-bg magenta-nuanced))))
+   `(outline-2 ((,class :inherit (bold ,modus-theme-variable-pitch)
+                        ,@(modus-vivendi-theme-heading-foreground fg-special-warm magenta-alt)
+                        ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-3)
+                        ,@(modus-vivendi-theme-heading-block red-nuanced-bg red-nuanced))))
+   `(outline-3 ((,class :inherit (bold ,modus-theme-variable-pitch)
+                        ,@(modus-vivendi-theme-heading-foreground fg-special-cold blue)
+                        ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-2)
+                        ,@(modus-vivendi-theme-heading-block blue-nuanced-bg blue-nuanced))))
+   `(outline-4 ((,class :inherit (bold ,modus-theme-variable-pitch)
+                        ,@(modus-vivendi-theme-heading-foreground fg-special-mild cyan)
+                        ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-1)
+                        ,@(modus-vivendi-theme-heading-block cyan-nuanced-bg cyan-nuanced))))
+   `(outline-5 ((,class :inherit (bold ,modus-theme-variable-pitch)
+                        ,@(modus-vivendi-theme-heading-foreground fg-special-calm green-alt-other)
+                        ,@(modus-vivendi-theme-heading-block green-nuanced-bg green-nuanced))))
+   `(outline-6 ((,class :inherit (bold ,modus-theme-variable-pitch)
+                        ,@(modus-vivendi-theme-heading-foreground yellow-nuanced yellow-alt-other)
+                        ,@(modus-vivendi-theme-heading-block yellow-nuanced-bg yellow-nuanced))))
+   `(outline-7 ((,class :inherit (bold ,modus-theme-variable-pitch)
+                        ,@(modus-vivendi-theme-heading-foreground red-nuanced red-alt)
+                        ,@(modus-vivendi-theme-heading-block red-nuanced-bg red-nuanced))))
+   `(outline-8 ((,class :inherit (bold ,modus-theme-variable-pitch)
+                        ,@(modus-vivendi-theme-heading-foreground fg-dim magenta)
+                        ,@(modus-vivendi-theme-heading-block bg-alt fg-alt))))
+;;;;; outline-minor-faces
+   `(outline-minor-0 ((,class ,@(unless modus-vivendi-theme-section-headings
+                                  (list :background cyan-nuanced-bg)))))
+;;;;; package (M-x list-packages)
+   `(package-description ((,class :foreground ,fg-special-cold)))
+   `(package-help-section-name ((,class :inherit bold :foreground ,magenta-alt-other)))
+   `(package-name ((,class :inherit link)))
+   `(package-status-avail-obso ((,class :inherit bold :foreground ,red)))
+   `(package-status-available ((,class :foreground ,fg-special-mild)))
+   `(package-status-built-in ((,class :foreground ,magenta)))
+   `(package-status-dependency ((,class :foreground ,magenta-alt-other)))
+   `(package-status-disabled ((,class :inherit modus-theme-subtle-red)))
+   `(package-status-external ((,class :foreground ,cyan-alt-other)))
+   `(package-status-held ((,class :foreground ,yellow-alt)))
+   `(package-status-incompat ((,class :inherit bold :foreground ,yellow)))
+   `(package-status-installed ((,class :foreground ,fg-special-warm)))
+   `(package-status-new ((,class :inherit bold :foreground ,green)))
+   `(package-status-unsigned ((,class :inherit bold :foreground ,red-alt)))
+;;;;; page-break-lines
+   `(page-break-lines ((,class :inherit default :foreground ,fg-window-divider-outer)))
+;;;;; paradox
+   `(paradox-archive-face ((,class :foreground ,fg-special-mild)))
+   `(paradox-comment-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
+   `(paradox-commit-tag-face ((,class :inherit modus-theme-refine-magenta :box t)))
+   `(paradox-description-face ((,class :foreground ,fg-special-cold)))
+   `(paradox-description-face-multiline ((,class :foreground ,fg-special-cold)))
+   `(paradox-download-face ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,blue-alt-other)))
+   `(paradox-highlight-face ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,cyan-alt-other)))
+   `(paradox-homepage-button-face ((,class :foreground ,magenta-alt-other :underline t)))
+   `(paradox-mode-line-face ((,class :inherit bold :foreground ,cyan-active)))
+   `(paradox-name-face ((,class :foreground ,blue :underline t)))
+   `(paradox-star-face ((,class :foreground ,magenta)))
+   `(paradox-starred-face ((,class :foreground ,magenta-alt)))
+;;;;; paren-face
+   `(parenthesis ((,class :foreground ,fg-unfocused)))
+;;;;; parrot
+   `(parrot-rotate-rotation-highlight-face ((,class :inherit modus-theme-refine-magenta)))
+;;;;; pass
+   `(pass-mode-directory-face ((,class :inherit bold :foreground ,fg-special-cold)))
+   `(pass-mode-entry-face ((,class :background ,bg-main :foreground ,fg-main)))
+   `(pass-mode-header-face ((,class :foreground ,fg-special-warm)))
+;;;;; persp-mode
+   `(persp-face-lighter-buffer-not-in-persp ((,class :inherit modus-theme-intense-red)))
+   `(persp-face-lighter-default ((,class :inherit bold :foreground ,blue-active)))
+   `(persp-face-lighter-nil-persp ((,class :inherit bold :foreground ,fg-active)))
+;;;;; perspective
+   `(persp-selected-face ((,class :inherit bold :foreground ,blue-active)))
+;;;;; phi-grep
+   `(phi-grep-heading-face  ((,class :inherit bold :foreground ,red-alt
+                                     ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-4))))
+   `(phi-grep-line-number-face ((,class :foreground ,fg-special-warm)))
+   `(phi-grep-match-face ((,class :inherit modus-theme-special-calm)))
+   `(phi-grep-modified-face ((,class :inherit modus-theme-refine-yellow)))
+   `(phi-grep-overlay-face ((,class :inherit modus-theme-refine-blue)))
+;;;;; phi-search
+   `(phi-replace-preview-face ((,class :inherit modus-theme-intense-magenta)))
+   `(phi-search-failpart-face ((,class :inherit modus-theme-refine-red)))
+   `(phi-search-match-face ((,class :inherit modus-theme-refine-cyan)))
+   `(phi-search-selection-face ((,class :inherit (modus-theme-intense-green bold))))
+;;;;; pkgbuild-mode
+   `(pkgbuild-error-face ((,class :underline ,fg-lang-error)))
+;;;;; pomidor
+   `(pomidor-break-face ((,class :foreground ,blue-alt-other)))
+   `(pomidor-overwork-face ((,class :foreground ,red-alt-other)))
+   `(pomidor-skip-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
+   `(pomidor-work-face ((,class :foreground ,green-alt-other)))
+;;;;; powerline
+   `(powerline-active0 ((,class :background ,bg-main :foreground ,blue-faint :inverse-video t)))
+   `(powerline-active1 ((,class :background ,blue-nuanced-bg :foreground ,blue-nuanced)))
+   `(powerline-active2 ((,class :background ,bg-active :foreground ,fg-active)))
+   `(powerline-inactive0 ((,class :background ,bg-special-cold :foreground ,fg-special-cold)))
+   `(powerline-inactive1 ((,class :background ,bg-dim :foreground ,fg-inactive)))
+   `(powerline-inactive2 ((,class :background ,bg-inactive :foreground ,fg-inactive)))
+;;;;; powerline-evil
+   `(powerline-evil-base-face ((,class :background ,fg-main :foreground ,bg-main)))
+   `(powerline-evil-emacs-face ((,class :inherit modus-theme-active-magenta)))
+   `(powerline-evil-insert-face ((,class :inherit modus-theme-active-green)))
+   `(powerline-evil-motion-face ((,class :inherit modus-theme-active-blue)))
+   `(powerline-evil-normal-face ((,class :background ,fg-alt :foreground ,bg-main)))
+   `(powerline-evil-operator-face ((,class :inherit modus-theme-active-yellow)))
+   `(powerline-evil-replace-face ((,class :inherit modus-theme-active-red)))
+   `(powerline-evil-visual-face ((,class :inherit modus-theme-active-cyan)))
+;;;;; proced
+   `(proced-mark ((,class :inherit modus-theme-mark-symbol)))
+   `(proced-marked ((,class :inherit modus-theme-mark-alt)))
+   `(proced-sort-header ((,class :inherit bold :foreground ,fg-special-calm :underline t)))
+;;;;; prodigy
+   `(prodigy-green-face ((,class :foreground ,green)))
+   `(prodigy-red-face ((,class :foreground ,red)))
+   `(prodigy-yellow-face ((,class :foreground ,yellow)))
+;;;;; rainbow-blocks
+   `(rainbow-blocks-depth-1-face ((,class :foreground ,magenta-alt-other)))
+   `(rainbow-blocks-depth-2-face ((,class :foreground ,blue)))
+   `(rainbow-blocks-depth-3-face ((,class :foreground ,magenta-alt)))
+   `(rainbow-blocks-depth-4-face ((,class :foreground ,green)))
+   `(rainbow-blocks-depth-5-face ((,class :foreground ,magenta)))
+   `(rainbow-blocks-depth-6-face ((,class :foreground ,cyan)))
+   `(rainbow-blocks-depth-7-face ((,class :foreground ,yellow)))
+   `(rainbow-blocks-depth-8-face ((,class :foreground ,cyan-alt)))
+   `(rainbow-blocks-depth-9-face ((,class :foreground ,red-alt)))
+   `(rainbow-blocks-unmatched-face ((,class :foreground ,red)))
+;;;;; rainbow-identifiers
+   `(rainbow-identifiers-identifier-1 ((,class :foreground ,green-alt-other)))
+   `(rainbow-identifiers-identifier-2 ((,class :foreground ,magenta-alt-other)))
+   `(rainbow-identifiers-identifier-3 ((,class :foreground ,cyan-alt-other)))
+   `(rainbow-identifiers-identifier-4 ((,class :foreground ,yellow-alt-other)))
+   `(rainbow-identifiers-identifier-5 ((,class :foreground ,blue-alt-other)))
+   `(rainbow-identifiers-identifier-6 ((,class :foreground ,green-alt)))
+   `(rainbow-identifiers-identifier-7 ((,class :foreground ,magenta-alt)))
+   `(rainbow-identifiers-identifier-8 ((,class :foreground ,cyan-alt)))
+   `(rainbow-identifiers-identifier-9 ((,class :foreground ,yellow-alt)))
+   `(rainbow-identifiers-identifier-10 ((,class :foreground ,green)))
+   `(rainbow-identifiers-identifier-11 ((,class :foreground ,magenta)))
+   `(rainbow-identifiers-identifier-12 ((,class :foreground ,cyan)))
+   `(rainbow-identifiers-identifier-13 ((,class :foreground ,yellow)))
+   `(rainbow-identifiers-identifier-14 ((,class :foreground ,blue-alt)))
+   `(rainbow-identifiers-identifier-15 ((,class :foreground ,red-alt)))
+;;;;; rainbow-delimiters
+   `(rainbow-delimiters-base-face-error ((,class :foreground ,red)))
+   `(rainbow-delimiters-base-face ((,class :foreground ,fg-main)))
+   `(rainbow-delimiters-depth-1-face ((,class :foreground ,green-alt-other)))
+   `(rainbow-delimiters-depth-2-face ((,class :foreground ,magenta-alt-other)))
+   `(rainbow-delimiters-depth-3-face ((,class :foreground ,cyan-alt-other)))
+   `(rainbow-delimiters-depth-4-face ((,class :foreground ,yellow-alt-other)))
+   `(rainbow-delimiters-depth-5-face ((,class :foreground ,blue-alt-other)))
+   `(rainbow-delimiters-depth-6-face ((,class :foreground ,green-alt)))
+   `(rainbow-delimiters-depth-7-face ((,class :foreground ,magenta-alt)))
+   `(rainbow-delimiters-depth-8-face ((,class :foreground ,cyan-alt)))
+   `(rainbow-delimiters-depth-9-face ((,class :foreground ,yellow-alt)))
+   `(rainbow-delimiters-mismatched-face ((,class :inherit bold :foreground ,red-alt)))
+   `(rainbow-delimiters-unmatched-face ((,class :inherit bold :foreground ,red)))
+;;;;; rcirc
+   `(rcirc-bright-nick ((,class :inherit bold :foreground ,magenta-alt)))
+   `(rcirc-dim-nick ((,class :foreground ,fg-alt)))
+   `(rcirc-my-nick ((,class :inherit bold :foreground ,magenta)))
+   `(rcirc-nick-in-message ((,class :foreground ,magenta-alt-other)))
+   `(rcirc-nick-in-message-full-line ((,class :inherit bold :foreground ,fg-special-mild)))
+   `(rcirc-other-nick ((,class :inherit bold :foreground ,fg-special-cold)))
+   `(rcirc-prompt ((,class :inherit bold :foreground ,cyan-alt-other)))
+   `(rcirc-server ((,class :foreground ,fg-unfocused)))
+   `(rcirc-timestamp ((,class :foreground ,blue-nuanced)))
+   `(rcirc-url ((,class :foreground ,blue :underline t)))
+;;;;; regexp-builder (re-builder)
+   `(reb-match-0 ((,class :inherit modus-theme-intense-blue)))
+   `(reb-match-1 ((,class :inherit modus-theme-intense-magenta)))
+   `(reb-match-2 ((,class :inherit modus-theme-intense-green)))
+   `(reb-match-3 ((,class :inherit modus-theme-intense-red)))
+   `(reb-regexp-grouping-backslash ((,class :inherit bold :foreground ,fg-escape-char-backslash)))
+   `(reb-regexp-grouping-construct ((,class :inherit bold :foreground ,fg-escape-char-construct)))
+;;;;; rg (rg.el)
+   `(rg-column-number-face ((,class :foreground ,magenta-alt-other)))
+   `(rg-context-face ((,class :foreground ,fg-unfocused)))
+   `(rg-error-face ((,class :inherit bold :foreground ,red)))
+   `(rg-file-tag-face ((,class :foreground ,fg-special-cold)))
+   `(rg-filename-face ((,class :inherit bold :foreground ,fg-special-cold)))
+   `(rg-line-number-face ((,class :foreground ,fg-special-warm)))
+   `(rg-literal-face ((,class :foreground ,blue-alt)))
+   `(rg-match-face ((,class :inherit modus-theme-special-calm)))
+   `(rg-regexp-face ((,class :foreground ,magenta-active)))
+   `(rg-toggle-off-face ((,class :inherit bold :foreground ,fg-inactive)))
+   `(rg-toggle-on-face ((,class :inherit bold :foreground ,cyan-active)))
+   `(rg-warning-face ((,class :inherit bold :foreground ,yellow)))
+;;;;; ripgrep
+   `(ripgrep-context-face ((,class :foreground ,fg-unfocused)))
+   `(ripgrep-error-face ((,class :inherit bold :foreground ,red)))
+   `(ripgrep-hit-face ((,class :foreground ,cyan)))
+   `(ripgrep-match-face ((,class :inherit modus-theme-special-calm)))
+;;;;; rmail
+   `(rmail-header-name ((,class :foreground ,cyan-alt-other)))
+   `(rmail-highlight ((,class :inherit bold :foreground ,magenta-alt)))
+;;;;; ruler-mode
+   `(ruler-mode-column-number ((,class :inherit (ruler-mode-default bold) :foreground ,fg-main)))
+   `(ruler-mode-comment-column ((,class :inherit ruler-mode-default :foreground ,red-active)))
+   `(ruler-mode-current-column ((,class :inherit ruler-mode-default :foreground ,cyan-active :box t)))
+   `(ruler-mode-default ((,class :background ,bg-inactive :foreground ,fg-inactive)))
+   `(ruler-mode-fill-column ((,class :inherit ruler-mode-default :foreground ,green-active)))
+   `(ruler-mode-fringes ((,class :inherit ruler-mode-default :foreground ,blue-active)))
+   `(ruler-mode-goal-column ((,class :inherit ruler-mode-default :foreground ,magenta-active)))
+   `(ruler-mode-margins ((,class :inherit ruler-mode-default :foreground ,bg-main)))
+   `(ruler-mode-pad ((,class :background ,bg-active :foreground ,fg-inactive)))
+   `(ruler-mode-tab-stop ((,class :inherit ruler-mode-default :foreground ,yellow-active)))
+;;;;; sallet
+   `(sallet-buffer-compressed ((,class :foreground ,yellow-nuanced :slant italic)))
+   `(sallet-buffer-default-directory ((,class :foreground ,cyan-nuanced)))
+   `(sallet-buffer-directory ((,class :foreground ,blue-nuanced)))
+   `(sallet-buffer-help ((,class :foreground ,fg-special-cold)))
+   `(sallet-buffer-modified ((,class :foreground ,yellow-alt-other :slant italic)))
+   `(sallet-buffer-ordinary ((,class :foreground ,fg-main)))
+   `(sallet-buffer-read-only ((,class :foreground ,yellow-alt)))
+   `(sallet-buffer-size ((,class :foreground ,fg-special-calm)))
+   `(sallet-buffer-special ((,class :foreground ,magenta-alt-other)))
+   `(sallet-flx-match ((,class ,@(modus-vivendi-theme-extra-completions
+                                  'modus-theme-subtle-cyan
+                                  'modus-theme-refine-cyan
+                                  'modus-theme-nuanced-cyan
+                                  cyan-alt-other))))
+   `(sallet-recentf-buffer-name ((,class :foreground ,blue-nuanced)))
+   `(sallet-recentf-file-path ((,class :foreground ,fg-special-mild)))
+   `(sallet-regexp-match ((,class ,@(modus-vivendi-theme-extra-completions
+                                     'modus-theme-subtle-magenta
+                                     'modus-theme-refine-magenta
+                                     'modus-theme-nuanced-magenta
+                                     magenta-alt-other))))
+   `(sallet-source-header ((,class :inherit bold :foreground ,red-alt
+                                   ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-4))))
+   `(sallet-substring-match ((,class ,@(modus-vivendi-theme-extra-completions
+                                        'modus-theme-subtle-blue
+                                        'modus-theme-refine-blue
+                                        'modus-theme-nuanced-blue
+                                        blue-alt-other))))
+;;;;; selectrum
+   `(selectrum-current-candidate ((,class ,@(modus-vivendi-theme-extra-completions
+                                             'modus-theme-refine-magenta
+                                             'modus-theme-intense-magenta
+                                             'modus-theme-nuanced-magenta
+                                             magenta
+                                             'bold))))
+   `(selectrum-primary-highlight ((,class ,@(modus-vivendi-theme-extra-completions
+                                             'modus-theme-refine-blue
+                                             'modus-theme-intense-blue
+                                             'modus-theme-nuanced-blue
+                                             blue
+                                             'bold))))
+   `(selectrum-secondary-highlight ((,class ,@(modus-vivendi-theme-extra-completions
+                                               'modus-theme-refine-cyan
+                                               'modus-theme-intense-cyan
+                                               'modus-theme-nuanced-cyan
+                                               cyan
+                                               'bold))))
+;;;;; semantic
+   `(semantic-complete-inline-face ((,class :foreground ,fg-special-warm :underline t)))
+   `(semantic-decoration-on-private-members-face ((,class :inherit modus-theme-refine-cyan)))
+   `(semantic-decoration-on-protected-members-face ((,class :background ,bg-dim)))
+   `(semantic-highlight-edits-face ((,class :background ,bg-alt)))
+   `(semantic-highlight-func-current-tag-face ((,class :background ,bg-alt)))
+   `(semantic-idle-symbol-highlight ((,class :inherit modus-theme-special-mild)))
+   `(semantic-tag-boundary-face ((,class :overline ,blue-intense)))
+   `(semantic-unmatched-syntax-face ((,class :underline ,fg-lang-error)))
+;;;;; sesman
+   `(sesman-browser-button-face ((,class :foreground ,blue-alt-other :underline t)))
+   `(sesman-browser-highligh-face ((,class :inherit modus-theme-subtle-blue)))
+   `(sesman-buffer-face ((,class :foreground ,magenta)))
+   `(sesman-directory-face ((,class :inherit bold :foreground ,blue)))
+   `(sesman-project-face ((,class :inherit bold :foreground ,magenta-alt-other)))
+;;;;; shell-script-mode
+   `(sh-heredoc ((,class :foreground ,blue-alt)))
+   `(sh-quoted-exec ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,magenta-alt)))
+;;;;; show-paren-mode
+   `(show-paren-match ((,class ,@(modus-vivendi-theme-paren bg-paren-match
+                                                            bg-paren-match-intense)
+                               :foreground ,fg-main)))
+   `(show-paren-match-expression ((,class :inherit modus-theme-special-calm)))
+   `(show-paren-mismatch ((,class :inherit modus-theme-intense-red)))
+;;;;; side-notes
+   `(side-notes ((,class :background ,bg-dim :foreground ,fg-dim)))
+;;;;; skewer-mode
+   `(skewer-error-face ((,class :foreground ,red :underline t)))
+;;;;; smart-mode-line
+   `(sml/charging ((,class :foreground ,green-active)))
+   `(sml/discharging ((,class :foreground ,red-active)))
+   `(sml/filename ((,class :inherit bold :foreground ,blue-active)))
+   `(sml/folder ((,class :foreground ,fg-active)))
+   `(sml/git ((,class :inherit bold :foreground ,green-active)))
+   `(sml/global ((,class :foreground ,fg-active)))
+   `(sml/line-number ((,class :inherit sml/global)))
+   `(sml/minor-modes ((,class :inherit sml/global)))
+   `(sml/modes ((,class :inherit bold :foreground ,fg-active)))
+   `(sml/modified ((,class :inherit bold :foreground ,magenta-active)))
+   `(sml/mule-info ((,class :inherit sml/global)))
+   `(sml/name-filling ((,class :foreground ,yellow-active)))
+   `(sml/not-modified ((,class :inherit sml/global)))
+   `(sml/numbers-separator ((,class :inherit sml/global)))
+   `(sml/outside-modified ((,class :inherit modus-theme-intense-red)))
+   `(sml/position-percentage ((,class :inherit sml/global)))
+   `(sml/prefix ((,class :foreground ,green-active)))
+   `(sml/process ((,class :inherit sml/prefix)))
+   `(sml/projectile ((,class :inherit sml/git)))
+   `(sml/read-only ((,class :inherit bold :foreground ,cyan-active)))
+   `(sml/remote ((,class :inherit sml/global)))
+   `(sml/sudo ((,class :inherit modus-theme-subtle-red)))
+   `(sml/time ((,class :inherit sml/global)))
+   `(sml/vc ((,class :inherit sml/git)))
+   `(sml/vc-edited ((,class :inherit bold :foreground ,yellow-active)))
+;;;;; smartparens
+   `(sp-pair-overlay-face ((,class :inherit modus-theme-special-warm)))
+   `(sp-show-pair-enclosing ((,class :inherit modus-theme-special-mild)))
+   `(sp-show-pair-match-face ((,class ,@(modus-vivendi-theme-paren bg-paren-match
+                                                                   bg-paren-match-intense)
+                                      :foreground ,fg-main)))
+   `(sp-show-pair-mismatch-face ((,class :inherit modus-theme-intense-red)))
+   `(sp-wrap-overlay-closing-pair ((,class :inherit sp-pair-overlay-face)))
+   `(sp-wrap-overlay-face ((,class :inherit sp-pair-overlay-face)))
+   `(sp-wrap-overlay-opening-pair ((,class :inherit sp-pair-overlay-face)))
+   `(sp-wrap-tag-overlay-face ((,class :inherit sp-pair-overlay-face)))
+;;;;; smerge
+   `(smerge-base ((,class ,@(modus-vivendi-theme-diffs
+                             bg-main yellow
+                             bg-diff-focus-changed fg-diff-focus-changed))))
+   `(smerge-lower ((,class ,@(modus-vivendi-theme-diffs
+                              bg-main green
+                              bg-diff-focus-added fg-diff-focus-added))))
+   `(smerge-markers ((,class :background ,bg-diff-neutral-2 :foreground ,fg-diff-neutral-2)))
+   `(smerge-refined-added ((,class ,@(modus-vivendi-theme-diffs
+                                      bg-diff-added fg-diff-added
+                                      bg-diff-refine-added fg-diff-refine-added))))
+   `(smerge-refined-changed ((,class)))
+   `(smerge-refined-removed ((,class ,@(modus-vivendi-theme-diffs
+                                        bg-diff-removed fg-diff-removed
+                                        bg-diff-refine-removed fg-diff-refine-removed))))
+   `(smerge-upper ((,class ,@(modus-vivendi-theme-diffs
+                              bg-main red
+                              bg-diff-focus-removed fg-diff-focus-removed))))
+;;;;; spaceline
+   `(spaceline-evil-emacs ((,class :inherit modus-theme-active-magenta)))
+   `(spaceline-evil-insert ((,class :inherit modus-theme-active-green)))
+   `(spaceline-evil-motion ((,class :inherit modus-theme-active-blue)))
+   `(spaceline-evil-normal ((,class :background ,fg-alt :foreground ,bg-alt)))
+   `(spaceline-evil-replace ((,class :inherit modus-theme-active-red)))
+   `(spaceline-evil-visual ((,class :inherit modus-theme-active-cyan)))
+   `(spaceline-flycheck-error ((,class :foreground ,red-active)))
+   `(spaceline-flycheck-info ((,class :foreground ,cyan-active)))
+   `(spaceline-flycheck-warning ((,class :foreground ,yellow-active)))
+   `(spaceline-highlight-face ((,class :inherit modus-theme-fringe-blue)))
+   `(spaceline-modified ((,class :inherit modus-theme-fringe-magenta)))
+   `(spaceline-python-venv ((,class :foreground ,magenta-active)))
+   `(spaceline-read-only ((,class :inherit modus-theme-fringe-red)))
+   `(spaceline-unmodified ((,class :inherit modus-theme-fringe-cyan)))
+;;;;; speedbar
+   `(speedbar-button-face ((,class :inherit link)))
+   `(speedbar-directory-face ((,class :inherit bold :foreground ,blue)))
+   `(speedbar-file-face ((,class :foreground ,fg-main)))
+   `(speedbar-highlight-face ((,class :inherit modus-theme-subtle-blue)))
+   `(speedbar-selected-face ((,class :inherit bold :foreground ,cyan)))
+   `(speedbar-separator-face ((,class :inherit modus-theme-intense-neutral)))
+   `(speedbar-tag-face ((,class :foreground ,yellow-alt-other)))
+;;;;; spell-fu
+   `(spell-fu-incorrect-face
+     ((,(append '((supports :underline (:style wave))) class)
+       :foreground ,fg-lang-error :underline (:style wave))
+      (,class :foreground ,fg-lang-error :underline t)))
+;;;;; stripes
+   `(stripes ((,class :inherit modus-theme-hl-line)))
+;;;;; success
+   `(suggest-heading ((,class :inherit bold :foreground ,yellow-alt-other)))
+;;;;; switch-window
+   `(switch-window-background ((,class :background ,bg-dim)))
+   `(switch-window-label ((,class :height 3.0 :foreground ,blue-intense)))
+;;;;; swiper
+   `(swiper-background-match-face-1 ((,class :inherit modus-theme-subtle-neutral)))
+   `(swiper-background-match-face-2 ((,class :inherit modus-theme-subtle-cyan)))
+   `(swiper-background-match-face-3 ((,class :inherit modus-theme-subtle-magenta)))
+   `(swiper-background-match-face-4 ((,class :inherit modus-theme-subtle-green)))
+   `(swiper-line-face ((,class ,@(and (>= emacs-major-version 27) '(:extend t))
+                               :inherit modus-theme-special-cold)))
+   `(swiper-match-face-1 ((,class :inherit swiper-line-face)))
+   `(swiper-match-face-2 ((,class :inherit swiper-line-face)))
+   `(swiper-match-face-3 ((,class :inherit swiper-line-face)))
+   `(swiper-match-face-4 ((,class :inherit swiper-line-face)))
+;;;;; swoop
+   `(swoop-face-header-format-line ((,class :inherit bold :foreground ,red-alt
+                                            ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-3))))
+   `(swoop-face-line-buffer-name ((,class :inherit bold :foreground ,blue-alt
+                                          ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-4))))
+   `(swoop-face-line-number ((,class :foreground ,fg-special-warm)))
+   `(swoop-face-target-line ((,class :inherit modus-theme-intense-blue
+                                     ,@(and (>= emacs-major-version 27) '(:extend t)))))
+   `(swoop-face-target-words ((,class :inherit modus-theme-refine-cyan)))
+;;;;; sx
+   `(sx-inbox-item-type ((,class :foreground ,magenta-alt-other)))
+   `(sx-inbox-item-type-unread ((,class :inherit (sx-inbox-item-type bold))))
+   `(sx-question-list-answers ((,class :foreground ,green)))
+   `(sx-question-list-answers-accepted ((,class :box t :foreground ,green)))
+   `(sx-question-list-bounty ((,class :inherit bold :background ,bg-alt :foreground ,yellow)))
+   `(sx-question-list-date ((,class :foreground ,fg-special-cold)))
+   `(sx-question-list-favorite ((,class :inherit bold :foreground ,fg-special-warm)))
+   `(sx-question-list-parent ((,class :foreground ,fg-main)))
+   `(sx-question-list-read-question ((,class :foreground ,fg-alt)))
+   `(sx-question-list-score ((,class :foreground ,fg-special-mild)))
+   `(sx-question-list-score-upvoted ((,class :inherit (sx-question-list-score bold))))
+   `(sx-question-list-unread-question ((,class :inherit bold :foreground ,fg-main)))
+   `(sx-question-mode-accepted ((,class :inherit bold :height 1.3 :foreground ,green)))
+   `(sx-question-mode-closed ((,class :inherit modus-theme-active-yellow :box (:line-width 2 :color nil))))
+   `(sx-question-mode-closed-reason ((,class :box (:line-width 2 :color nil) :foreground ,fg-main)))
+   `(sx-question-mode-content-face ((,class :background ,bg-dim)))
+   `(sx-question-mode-date ((,class :foreground ,blue)))
+   `(sx-question-mode-header ((,class :inherit bold :foreground ,cyan)))
+   `(sx-question-mode-kbd-tag ((,class :inherit bold :height 0.9 :box (:line-width 3 :color ,fg-main :style released-button) :foreground ,fg-main)))
+   `(sx-question-mode-score ((,class :foreground ,fg-dim)))
+   `(sx-question-mode-score-downvoted ((,class :foreground ,yellow)))
+   `(sx-question-mode-score-upvoted ((,class :inherit bold :foreground ,magenta)))
+   `(sx-question-mode-title ((,class :inherit bold :foreground ,fg-main)))
+   `(sx-question-mode-title-comments ((,class :inherit bold :foreground ,fg-alt)))
+   `(sx-tag ((,class :foreground ,magenta-alt)))
+   `(sx-user-name ((,class :foreground ,blue-alt)))
+   `(sx-user-reputation ((,class :foreground ,fg-alt)))
+;;;;; symbol-overlay
+   `(symbol-overlay-default-face ((,class :inherit modus-theme-special-warm)))
+   `(symbol-overlay-face-1 ((,class :inherit modus-theme-intense-blue)))
+   `(symbol-overlay-face-2 ((,class :inherit modus-theme-refine-magenta)))
+   `(symbol-overlay-face-3 ((,class :inherit modus-theme-intense-yellow)))
+   `(symbol-overlay-face-4 ((,class :inherit modus-theme-intense-magenta)))
+   `(symbol-overlay-face-5 ((,class :inherit modus-theme-intense-red)))
+   `(symbol-overlay-face-6 ((,class :inherit modus-theme-refine-red)))
+   `(symbol-overlay-face-7 ((,class :inherit modus-theme-intense-cyan)))
+   `(symbol-overlay-face-8 ((,class :inherit modus-theme-refine-cyan)))
+;;;;; syslog-mode
+   `(syslog-debug ((,class :inherit bold :foreground ,cyan-alt-other)))
+   `(syslog-error ((,class :inherit bold :foreground ,red)))
+   `(syslog-file ((,class :inherit bold :foreground ,fg-special-cold)))
+   `(syslog-hide ((,class :background ,bg-main :foreground ,fg-main)))
+   `(syslog-hour ((,class :inherit bold :foreground ,magenta-alt-other)))
+   `(syslog-info ((,class :inherit bold :foreground ,blue-alt-other)))
+   `(syslog-ip ((,class :inherit bold :foreground ,fg-special-mild :underline t)))
+   `(syslog-su ((,class :inherit bold :foreground ,red-alt)))
+   `(syslog-warn ((,class :inherit bold :foreground ,yellow)))
+;;;;; table (built-in table.el)
+   `(table-cell ((,class :background ,blue-nuanced-bg)))
+;;;;; telephone-line
+   `(telephone-line-accent-active ((,class :background ,fg-inactive :foreground ,bg-inactive)))
+   `(telephone-line-accent-inactive ((,class :background ,bg-active :foreground ,fg-active)))
+   `(telephone-line-error ((,class :inherit bold :foreground ,red-active)))
+   `(telephone-line-evil ((,class :foreground ,fg-main)))
+   `(telephone-line-evil-emacs ((,class :inherit telephone-line-evil :background ,magenta-intense-bg)))
+   `(telephone-line-evil-insert ((,class :inherit telephone-line-evil :background ,green-intense-bg)))
+   `(telephone-line-evil-motion ((,class :inherit telephone-line-evil :background ,yellow-intense-bg)))
+   `(telephone-line-evil-normal ((,class :inherit telephone-line-evil :background ,bg-alt)))
+   `(telephone-line-evil-operator ((,class :inherit telephone-line-evil :background ,yellow-subtle-bg)))
+   `(telephone-line-evil-replace ((,class :inherit telephone-line-evil :background ,red-intense-bg)))
+   `(telephone-line-evil-visual ((,class :inherit telephone-line-evil :background ,cyan-intense-bg)))
+   `(telephone-line-projectile ((,class :foreground ,cyan-active)))
+   `(telephone-line-unimportant ((,class :foreground ,fg-inactive)))
+   `(telephone-line-warning ((,class :inherit bold :foreground ,yellow-active)))
+;;;;; term
+   `(term ((,class :background ,bg-main :foreground ,fg-main)))
+   `(term-bold ((,class :inherit bold)))
+   `(term-color-blue ((,class :background ,blue :foreground ,blue)))
+   `(term-color-cyan ((,class :background ,cyan :foreground ,cyan)))
+   `(term-color-green ((,class :background ,green :foreground ,green)))
+   `(term-color-magenta ((,class :background ,magenta :foreground ,magenta)))
+   `(term-color-red ((,class :background ,red :foreground ,red)))
+   `(term-color-yellow ((,class :background ,yellow :foreground ,yellow)))
+   `(term-underline ((,class :underline t)))
+;;;;; tomatinho
+   `(tomatinho-ok-face ((,class :foreground ,blue-intense)))
+   `(tomatinho-pause-face ((,class :foreground ,yellow-intense)))
+   `(tomatinho-reset-face ((,class :foreground ,fg-alt)))
+;;;;; transient
+   `(transient-active-infix ((,class :inherit modus-theme-special-mild)))
+   `(transient-amaranth ((,class :inherit bold :foreground ,yellow)))
+   `(transient-argument ((,class :inherit bold :foreground ,red-alt)))
+   `(transient-blue ((,class :inherit bold :foreground ,blue)))
+   `(transient-disabled-suffix ((,class :inherit modus-theme-intense-red)))
+   `(transient-enabled-suffix ((,class :inherit modus-theme-intense-green)))
+   `(transient-heading ((,class :inherit bold :foreground ,fg-main)))
+   `(transient-inactive-argument ((,class :foreground ,fg-alt)))
+   `(transient-inactive-value ((,class :foreground ,fg-alt)))
+   `(transient-key ((,class :inherit bold :foreground ,blue)))
+   `(transient-mismatched-key ((,class :underline t)))
+   `(transient-nonstandard-key ((,class :underline t)))
+   `(transient-pink ((,class :inherit bold :foreground ,magenta)))
+   `(transient-red ((,class :inherit bold :foreground ,red-intense)))
+   `(transient-teal ((,class :inherit bold :foreground ,cyan-alt-other)))
+   `(transient-unreachable ((,class :foreground ,fg-unfocused)))
+   `(transient-unreachable-key ((,class :foreground ,fg-unfocused)))
+   `(transient-value ((,class :foreground ,magenta-alt)))
+;;;;; trashed
+   `(trashed-deleted ((,class :inherit modus-theme-mark-del)))
+   `(trashed-directory ((,class :foreground ,blue)))
+   `(trashed-mark ((,class :inherit modus-theme-mark-symbol)))
+   `(trashed-marked ((,class :inherit modus-theme-mark-alt)))
+   `(trashed-restored ((,class :inherit modus-theme-mark-sel)))
+   `(trashed-symlink ((,class :foreground ,cyan-alt :underline t)))
+;;;;; treemacs
+   `(treemacs-directory-collapsed-face ((,class :foreground ,magenta-alt)))
+   `(treemacs-directory-face ((,class :inherit dired-directory)))
+   `(treemacs-file-face ((,class :foreground ,fg-main)))
+   `(treemacs-fringe-indicator-face ((,class :foreground ,fg-main)))
+   `(treemacs-git-added-face ((,class :foreground ,green-intense)))
+   `(treemacs-git-conflict-face ((,class :inherit (modus-theme-intense-red bold))))
+   `(treemacs-git-ignored-face ((,class :foreground ,fg-alt)))
+   `(treemacs-git-modified-face ((,class :foreground ,yellow-alt-other)))
+   `(treemacs-git-renamed-face ((,class :foreground ,cyan-alt-other)))
+   `(treemacs-git-unmodified-face ((,class :foreground ,fg-main)))
+   `(treemacs-git-untracked-face ((,class :foreground ,red-alt-other)))
+   `(treemacs-help-column-face ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,magenta-alt-other :underline t)))
+   `(treemacs-help-title-face ((,class :foreground ,blue-alt-other)))
+   `(treemacs-on-failure-pulse-face ((,class :inherit modus-theme-intense-red)))
+   `(treemacs-on-success-pulse-face ((,class :inherit modus-theme-intense-green)))
+   `(treemacs-root-face ((,class :inherit bold :foreground ,blue-alt-other :height 1.2 :underline t)))
+   `(treemacs-root-remote-disconnected-face ((,class :inherit treemacs-root-remote-face :foreground ,yellow)))
+   `(treemacs-root-remote-face ((,class :inherit treemacs-root-face :foreground ,magenta)))
+   `(treemacs-root-remote-unreadable-face ((,class :inherit treemacs-root-unreadable-face)))
+   `(treemacs-root-unreadable-face ((,class :inherit treemacs-root-face :strike-through t)))
+   `(treemacs-tags-face ((,class :foreground ,blue-alt)))
+   `(treemacs-tags-face ((,class :foreground ,magenta-alt)))
+;;;;; tty-menu
+   `(tty-menu-disabled-face ((,class :background ,bg-alt :foreground ,fg-alt)))
+   `(tty-menu-enabled-face ((,class :inherit bold :background ,bg-alt :foreground ,fg-main)))
+   `(tty-menu-selected-face ((,class :inherit modus-theme-intense-blue)))
+;;;;; tuareg
+   `(caml-types-def-face ((,class :inherit modus-theme-subtle-red)))
+   `(caml-types-expr-face ((,class :inherit modus-theme-subtle-green)))
+   `(caml-types-occ-face ((,class :inherit modus-theme-subtle-green)))
+   `(caml-types-scope-face ((,class :inherit modus-theme-subtle-blue)))
+   `(caml-types-typed-face ((,class :inherit modus-theme-subtle-magenta)))
+   `(tuareg-font-double-semicolon-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                                   red-alt red-alt-faint))))
+   `(tuareg-font-lock-attribute-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                                 magenta magenta-faint))))
+   `(tuareg-font-lock-constructor-face ((,class :foreground ,fg-main)))
+   `(tuareg-font-lock-error-face ((,class :inherit (modus-theme-intense-red bold))))
+   `(tuareg-font-lock-extension-node-face ((,class :background ,bg-alt :foreground ,magenta)))
+   `(tuareg-font-lock-governing-face ((,class :inherit bold :foreground ,fg-main)))
+   `(tuareg-font-lock-infix-extension-node-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                                            magenta magenta-faint))))
+   `(tuareg-font-lock-interactive-directive-face ((,class :foreground ,fg-special-cold)))
+   `(tuareg-font-lock-interactive-error-face ((,class :inherit bold
+                                                      ,@(modus-vivendi-theme-syntax-foreground
+                                                         red red-faint))))
+   `(tuareg-font-lock-interactive-output-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                                          blue-alt-other blue-alt-other-faint))))
+   `(tuareg-font-lock-label-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                             cyan-alt-other cyan-alt-other-faint))))
+   `(tuareg-font-lock-line-number-face ((,class :foreground ,fg-special-warm)))
+   `(tuareg-font-lock-module-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                              magenta-alt magenta-alt-faint))))
+   `(tuareg-font-lock-multistage-face ((,class :inherit bold :background ,bg-alt
+                                               ,@(modus-vivendi-theme-syntax-foreground
+                                                  blue blue-faint))))
+   `(tuareg-font-lock-operator-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                                red-alt red-alt-faint))))
+   `(tuareg-opam-error-face ((,class :inherit bold
+                                     ,@(modus-vivendi-theme-syntax-foreground
+                                        red red-faint))))
+   `(tuareg-opam-pkg-variable-name-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                                    cyan cyan-faint)
+                                                 :slant ,modus-theme-slant)))
+;;;;; undo-tree
+   `(undo-tree-visualizer-active-branch-face ((,class :inherit bold :foreground ,fg-main)))
+   `(undo-tree-visualizer-current-face ((,class :foreground ,blue-intense)))
+   `(undo-tree-visualizer-default-face ((,class :foreground ,fg-alt)))
+   `(undo-tree-visualizer-register-face ((,class :foreground ,magenta-intense)))
+   `(undo-tree-visualizer-unmodified-face ((,class :foreground ,green-intense)))
+;;;;; vc
+   `(vc-conflict-state ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,red-active)))
+   `(vc-edited-state ((,class :foreground ,fg-special-warm)))
+   `(vc-locally-added-state ((,class :foreground ,cyan-active)))
+   `(vc-locked-state ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,magenta-active)))
+   `(vc-missing-state ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,yellow-active)))
+   `(vc-needs-update-state ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,fg-special-mild)))
+   `(vc-removed-state ((,class :foreground ,red-active)))
+   `(vc-state-base ((,class :foreground ,fg-active)))
+   `(vc-up-to-date-state ((,class :foreground ,fg-special-cold)))
+;;;;; vdiff
+   `(vdiff-addition-face ((,class ,@(modus-vivendi-theme-diffs
+                                     bg-main green
+                                     bg-diff-focus-added fg-diff-focus-added))))
+   `(vdiff-change-face ((,class ,@(modus-vivendi-theme-diffs
+                                   bg-main yellow
+                                   bg-diff-focus-changed fg-diff-focus-changed))))
+   `(vdiff-closed-fold-face ((,class :background ,bg-diff-neutral-1 :foreground ,fg-diff-neutral-1)))
+   `(vdiff-refine-added ((,class ,@(modus-vivendi-theme-diffs
+                                    bg-diff-added fg-diff-added
+                                    bg-diff-refine-added fg-diff-refine-added))))
+   `(vdiff-refine-changed ((,class ,@(modus-vivendi-theme-diffs
+                                      bg-diff-changed fg-diff-changed
+                                      bg-diff-refine-changed fg-diff-refine-changed))))
+   `(vdiff-subtraction-face ((,class ,@(modus-vivendi-theme-diffs
+                                        bg-main red
+                                        bg-diff-focus-removed fg-diff-focus-removed))))
+   `(vdiff-target-face ((,class :inherit modus-theme-intense-blue)))
+;;;;; vimish-fold
+   `(vimish-fold-fringe ((,class :foreground ,cyan-active)))
+   `(vimish-fold-mouse-face ((,class :inherit modus-theme-intense-blue)))
+   `(vimish-fold-overlay ((,class :background ,bg-alt :foreground ,fg-special-cold)))
+;;;;; visible-mark
+   `(visible-mark-active ((,class :background ,blue-intense-bg)))
+   `(visible-mark-face1 ((,class :background ,cyan-intense-bg)))
+   `(visible-mark-face2 ((,class :background ,yellow-intense-bg)))
+   `(visible-mark-forward-face1 ((,class :background ,magenta-intense-bg)))
+   `(visible-mark-forward-face2 ((,class :background ,green-intense-bg)))
+;;;;; visual-regexp
+   `(vr/group-0 ((,class :inherit modus-theme-intense-blue)))
+   `(vr/group-1 ((,class :inherit modus-theme-intense-magenta)))
+   `(vr/group-2 ((,class :inherit modus-theme-intense-green)))
+   `(vr/match-0 ((,class :inherit modus-theme-refine-yellow)))
+   `(vr/match-1 ((,class :inherit modus-theme-refine-yellow)))
+   `(vr/match-separator-face ((,class :inherit (modus-theme-intense-neutral bold))))
+;;;;; volatile-highlights
+   `(vhl/default-face ((,class ,@(and (>= emacs-major-version 27) '(:extend t))
+                               :background ,bg-alt :foreground ,blue-nuanced)))
+;;;;; vterm
+   `(vterm-color-black ((,class :background "black" :foreground "black")))
+   `(vterm-color-blue ((,class :background ,blue :foreground ,blue)))
+   `(vterm-color-cyan ((,class :background ,cyan :foreground ,cyan)))
+   `(vterm-color-default ((,class :background ,bg-main :foreground ,fg-main)))
+   `(vterm-color-green ((,class :background ,green :foreground ,green)))
+   `(vterm-color-inverse-video ((,class :background ,bg-main :inverse-video t)))
+   `(vterm-color-magenta ((,class :background ,magenta :foreground ,magenta)))
+   `(vterm-color-red ((,class :background ,red :foreground ,red)))
+   `(vterm-color-underline ((,class :foreground ,fg-special-warm :underline t)))
+   `(vterm-color-white ((,class :background "white" :foreground "white")))
+   `(vterm-color-yellow ((,class :background ,yellow :foreground ,yellow)))
+;;;;; wcheck-mode
+   `(wcheck-default-face ((,class :foreground ,red :underline t)))
+;;;;; web-mode
+   `(web-mode-annotation-face ((,class :inherit web-mode-comment-face)))
+   `(web-mode-annotation-html-face ((,class :inherit web-mode-comment-face)))
+   `(web-mode-annotation-tag-face ((,class :inherit web-mode-comment-face :underline t)))
+   `(web-mode-block-attr-name-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                               blue blue-faint))))
+   `(web-mode-block-attr-value-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                                cyan-alt-other cyan-alt-other-faint))))
+   `(web-mode-block-comment-face ((,class :inherit web-mode-comment-face)))
+   `(web-mode-block-control-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                             magenta-alt magenta-alt-faint)
+                                          ,@(modus-vivendi-theme-bold-weight))))
+   `(web-mode-block-delimiter-face ((,class :foreground ,fg-main)))
+   `(web-mode-block-face ((,class :background ,bg-dim)))
+   `(web-mode-block-string-face ((,class :inherit web-mode-string-face)))
+   `(web-mode-bold-face ((,class :inherit bold)))
+   `(web-mode-builtin-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                       magenta-alt magenta-alt-faint)
+                                    ,@(modus-vivendi-theme-bold-weight))))
+   `(web-mode-comment-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
+   `(web-mode-comment-keyword-face ((,class :inherit bold :background ,bg-dim
+                                            ,@(modus-vivendi-theme-syntax-foreground
+                                               yellow yellow-faint))))
+   `(web-mode-constant-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                        blue-alt-other blue-alt-other-faint))))
+   `(web-mode-css-at-rule-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                           blue-alt-other blue-alt-other-faint))))
+   `(web-mode-css-color-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                         magenta-alt magenta-alt-faint)
+                                      ,@(modus-vivendi-theme-bold-weight))))
+   `(web-mode-css-comment-face ((,class :inherit web-mode-comment-face)))
+   `(web-mode-css-function-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                            magenta-alt magenta-alt-faint)
+                                         ,@(modus-vivendi-theme-bold-weight))))
+   `(web-mode-css-priority-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                            yellow-alt yellow-alt-faint)
+                                         ,@(modus-vivendi-theme-bold-weight))))
+   `(web-mode-css-property-name-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                                 cyan cyan-faint))))
+   `(web-mode-css-pseudo-class-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                                cyan-alt-other cyan-alt-other-faint))))
+   `(web-mode-css-selector-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                            magenta-alt-other magenta-alt-other-faint)
+                                         ,@(modus-vivendi-theme-bold-weight))))
+   `(web-mode-css-string-face ((,class :inherit web-mode-string-face)))
+   `(web-mode-css-variable-face ((,class :foreground ,fg-special-warm)))
+   `(web-mode-current-column-highlight-face ((,class :background ,bg-alt)))
+   `(web-mode-current-element-highlight-face ((,class :inherit modus-theme-special-mild)))
+   `(web-mode-doctype-face ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
+   `(web-mode-error-face ((,class :inherit modus-theme-intense-red)))
+   `(web-mode-filter-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                      magenta magenta-faint))))
+   `(web-mode-folded-face ((,class :underline t)))
+   `(web-mode-function-call-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                             magenta magenta-faint))))
+   `(web-mode-function-name-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                             magenta magenta-faint))))
+   `(web-mode-html-attr-custom-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                                cyan cyan-faint))))
+   `(web-mode-html-attr-engine-face ((,class :foreground ,fg-main)))
+   `(web-mode-html-attr-equal-face ((,class :foreground ,fg-main)))
+   `(web-mode-html-attr-name-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                              cyan cyan-faint))))
+   `(web-mode-html-attr-value-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                               blue-alt-other blue-alt-other-faint))))
+   `(web-mode-html-entity-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                           yellow-alt-other yellow-alt-other-faint)
+                                        :slant ,modus-theme-slant)))
+   `(web-mode-html-tag-bracket-face ((,class :foreground ,fg-dim)))
+   `(web-mode-html-tag-custom-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                               magenta magenta-faint))))
+   `(web-mode-html-tag-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                        magenta magenta-faint))))
+   `(web-mode-html-tag-namespaced-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                                   magenta-alt magenta-alt-faint)
+                                                ,@(modus-vivendi-theme-bold-weight))))
+   `(web-mode-html-tag-unclosed-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                                 red red-faint)
+                                              :underline t)))
+   `(web-mode-inlay-face ((,class :background ,bg-alt)))
+   `(web-mode-italic-face ((,class :slant italic)))
+   `(web-mode-javascript-comment-face ((,class :inherit web-mode-comment-face)))
+   `(web-mode-javascript-string-face ((,class :inherit web-mode-string-face)))
+   `(web-mode-json-comment-face ((,class :inherit web-mode-comment-face)))
+   `(web-mode-json-context-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                            magenta-alt magenta-alt-faint))))
+   `(web-mode-json-key-face ((,class :foreground ,blue-nuanced)))
+   `(web-mode-json-string-face ((,class :inherit web-mode-string-face)))
+   `(web-mode-jsx-depth-1-face ((,class :background ,blue-intense-bg :foreground ,fg-main)))
+   `(web-mode-jsx-depth-2-face ((,class :background ,blue-subtle-bg :foreground ,fg-main)))
+   `(web-mode-jsx-depth-3-face ((,class :background ,bg-special-cold :foreground ,fg-special-cold)))
+   `(web-mode-jsx-depth-4-face ((,class :background ,bg-alt :foreground ,blue-refine-fg)))
+   `(web-mode-jsx-depth-5-face ((,class :background ,bg-alt :foreground ,blue-nuanced)))
+   `(web-mode-keyword-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                       magenta-alt-other magenta-alt-other-faint)
+                                    ,@(modus-vivendi-theme-bold-weight))))
+   `(web-mode-param-name-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                          magenta magenta-faint))))
+   `(web-mode-part-comment-face ((,class :inherit web-mode-comment-face)))
+   `(web-mode-part-face ((,class :inherit web-mode-block-face)))
+   `(web-mode-part-string-face ((,class :inherit web-mode-string-face)))
+   `(web-mode-preprocessor-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                            red-alt-other red-alt-other-faint))))
+   `(web-mode-script-face ((,class :inherit web-mode-part-face)))
+   `(web-mode-sql-keyword-face ((,class :inherit bold
+                                        ,@(modus-vivendi-theme-syntax-foreground
+                                           yellow yellow-faint))))
+   `(web-mode-string-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                      blue-alt blue-alt-faint))))
+   `(web-mode-style-face ((,class :inherit web-mode-part-face)))
+   `(web-mode-symbol-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                      blue-alt-other blue-alt-other-faint))))
+   `(web-mode-type-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                    magenta-alt magenta-alt-faint))))
+   `(web-mode-underline-face ((,class :underline t)))
+   `(web-mode-variable-name-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                             cyan cyan-faint))))
+   `(web-mode-warning-face ((,class :inherit bold :background ,bg-alt
+                                    ,@(modus-vivendi-theme-syntax-foreground
+                                       yellow-alt-other yellow-alt-other-faint))))
+   `(web-mode-whitespace-face ((,class :background ,bg-whitespace :foreground ,fg-whitespace)))
+;;;;; wgrep
+   `(wgrep-delete-face ((,class :inherit modus-theme-refine-yellow)))
+   `(wgrep-done-face ((,class :inherit modus-theme-refine-blue)))
+   `(wgrep-face ((,class :inherit modus-theme-refine-green)))
+   `(wgrep-file-face ((,class :foreground ,fg-special-warm)))
+   `(wgrep-reject-face ((,class :inherit (modus-theme-intense-red bold))))
+;;;;; which-function-mode
+   `(which-func ((,class :foreground ,magenta-active)))
+;;;;; which-key
+   `(which-key-command-description-face ((,class :foreground ,cyan)))
+   `(which-key-group-description-face ((,class :foreground ,magenta-alt)))
+   `(which-key-highlighted-command-face ((,class :foreground ,cyan-alt :underline t)))
+   `(which-key-key-face ((,class :inherit bold :foreground ,blue-intense)))
+   `(which-key-local-map-description-face ((,class :foreground ,fg-main)))
+   `(which-key-note-face ((,class :background ,bg-dim :foreground ,fg-special-mild)))
+   `(which-key-separator-face ((,class :foreground ,fg-alt)))
+   `(which-key-special-key-face ((,class :inherit bold :foreground ,yellow-intense)))
+;;;;; whitespace-mode
+   `(whitespace-big-indent ((,class :inherit modus-theme-subtle-red)))
+   `(whitespace-empty ((,class :inherit modus-theme-intense-magenta)))
+   `(whitespace-hspace ((,class :background ,bg-whitespace :foreground ,fg-whitespace)))
+   `(whitespace-indentation ((,class :background ,bg-whitespace :foreground ,fg-whitespace)))
+   `(whitespace-line ((,class :inherit modus-theme-special-warm)))
+   `(whitespace-newline ((,class :background ,bg-whitespace :foreground ,fg-whitespace)))
+   `(whitespace-space ((,class :background ,bg-whitespace :foreground ,fg-whitespace)))
+   `(whitespace-space-after-tab ((,class :inherit modus-theme-subtle-magenta)))
+   `(whitespace-space-before-tab ((,class :inherit modus-theme-subtle-cyan)))
+   `(whitespace-tab ((,class :background ,bg-whitespace :foreground ,fg-whitespace)))
+   `(whitespace-trailing ((,class :inherit modus-theme-intense-red)))
+;;;;; window-divider-mode
+   `(window-divider ((,class :foreground ,fg-window-divider-inner)))
+   `(window-divider-first-pixel ((,class :foreground ,fg-window-divider-outer)))
+   `(window-divider-last-pixel ((,class :foreground ,fg-window-divider-outer)))
+;;;;; winum
+   `(winum-face ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,cyan-active)))
+;;;;; writegood-mode
+   `(writegood-duplicates-face ((,class :background ,bg-alt :foreground ,red-alt :underline t)))
+   `(writegood-passive-voice-face ((,class :foreground ,yellow-nuanced :underline ,fg-lang-warning)))
+   `(writegood-weasels-face ((,class :foreground ,red-nuanced :underline ,fg-lang-error)))
+;;;;; woman
+   `(woman-addition ((,class :foreground ,magenta-alt-other)))
+   `(woman-bold ((,class :inherit bold :foreground ,magenta)))
+   `(woman-italic ((,class :foreground ,cyan :slant italic)))
+   `(woman-unknown ((,class :foreground ,yellow :slant italic)))
+;;;;; xah-elisp-mode
+   `(xah-elisp-at-symbol ((,class :inherit bold
+                                  ,@(modus-vivendi-theme-syntax-foreground
+                                     red-alt red-alt-faint))))
+   `(xah-elisp-cap-variable ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                        red-alt-other red-alt-other-faint))))
+   `(xah-elisp-command-face ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                        cyan-alt-other cyan-alt-other-faint))))
+   `(xah-elisp-dollar-symbol ((,class ,@(modus-vivendi-theme-syntax-foreground
+                                         green green-faint))))
+;;;;; xref
+   `(xref-file-header ((,class :inherit bold :foreground ,fg-special-cold)))
+   `(xref-line-number ((,class :foreground ,fg-alt)))
+   `(xref-match ((,class :inherit match)))
+;;;;; yaml-mode
+   `(yaml-tab-face ((,class :inherit modus-theme-intense-red)))
+;;;;; yasnippet
+   `(yas-field-highlight-face ((,class :background ,bg-alt :foreground ,fg-main)))
+;;;;; ztree
+   `(ztreep-arrow-face ((,class :foreground ,fg-inactive)))
+   `(ztreep-diff-header-face ((,class :inherit bold :height 1.2 :foreground ,fg-special-cold)))
+   `(ztreep-diff-header-small-face ((,class :inherit bold :foreground ,fg-special-mild)))
+   `(ztreep-diff-model-add-face ((,class :foreground ,green)))
+   `(ztreep-diff-model-diff-face ((,class :foreground ,red)))
+   `(ztreep-diff-model-ignored-face ((,class :foreground ,fg-alt :strike-through t)))
+   `(ztreep-diff-model-normal-face ((,class :foreground ,fg-alt)))
+   `(ztreep-expand-sign-face ((,class :foreground ,blue)))
+   `(ztreep-header-face ((,class :inherit bold :height 1.2 :foreground ,fg-special-cold)))
+   `(ztreep-leaf-face ((,class :foreground ,cyan)))
+   `(ztreep-node-count-children-face ((,class :foreground ,fg-special-warm)))
+   `(ztreep-node-face ((,class :foreground ,fg-main))))
+;;;; Emacs 27+
+  ;; EXPERIMENTAL this form is subject to review
+  (when (>= emacs-major-version 27)
+    (custom-theme-set-faces
+     'modus-vivendi
+;;;;; line numbers (`display-line-numbers-mode' and global variant)
+     ;; NOTE that this is specifically for the faces that were
+     ;; introduced in Emacs 27, as the other faces are already
+     ;; supported.
+     `(line-number-major-tick ((,class (:background ,yellow-nuanced-bg :foreground ,yellow-nuanced))))
+     `(line-number-minor-tick ((,class (:background ,cyan-nuanced-bg :foreground ,cyan-nuanced))))
+;;;;; tab-bar-mode
+     `(tab-bar ((,class :background ,bg-tab-bar :foreground ,fg-main)))
+     `(tab-bar-tab ((,class :inherit bold :box (:line-width 2 :color ,bg-tab-active)
+                            :background ,bg-tab-active :foreground ,fg-main)))
+     `(tab-bar-tab-inactive ((,class :box (:line-width 2 :color ,bg-tab-inactive)
+                                     :background ,bg-tab-inactive :foreground ,fg-dim)))
+;;;;; tab-line-mode
+     `(tab-line ((,class :height 0.95 :background ,bg-tab-bar :foreground ,fg-main)))
+     `(tab-line-close-highlight ((,class :foreground ,red)))
+     `(tab-line-highlight ((,class :background ,blue-subtle-bg :foreground ,fg-dim)))
+     `(tab-line-tab ((,class :inherit bold :box (:line-width 2 :color ,bg-tab-active)
+                             :background ,bg-tab-active :foreground ,fg-main)))
+     `(tab-line-tab-current ((,class :inherit tab-line-tab)))
+     `(tab-line-tab-inactive ((,class :box (:line-width 2 :color ,bg-tab-inactive)
+                                      :background ,bg-tab-inactive :foreground ,fg-dim)))))
+;;; variables
+  (custom-theme-set-variables
+   'modus-vivendi
+;;;; ansi-colors
+   `(ansi-color-faces-vector [default bold shadow italic underline success warning error])
+   `(ansi-color-names-vector [,bg-main ,red ,green ,yellow ,blue ,magenta ,cyan ,fg-main])
+;;;; flymake fringe indicators
+   `(flymake-error-bitmap '(flymake-double-exclamation-mark modus-theme-fringe-red))
+   `(flymake-warning-bitmap '(exclamation-mark modus-theme-fringe-yellow))
+   `(flymake-note-bitmap '(exclamation-mark modus-theme-fringe-cyan))
+;;;; ibuffer
+   `(ibuffer-deletion-face 'modus-theme-mark-del)
+   `(ibuffer-filter-group-name-face 'modus-theme-mark-symbol)
+   `(ibuffer-marked-face 'modus-theme-mark-sel)
+   `(ibuffer-title-face 'modus-theme-header)
+;;;; highlight-tail
+   `(highlight-tail-colors
+     '((,green-subtle-bg . 0)
+       (,cyan-subtle-bg . 20)))
+;;;; hl-todo
+   `(hl-todo-keyword-faces
+     '(("HOLD" . ,yellow-alt)
+       ("TODO" . ,magenta)
+       ("NEXT" . ,magenta-alt-other)
+       ("THEM" . ,magenta-alt)
+       ("PROG" . ,cyan)
+       ("OKAY" . ,cyan-alt)
+       ("DONT" . ,green-alt)
+       ("FAIL" . ,red)
+       ("BUG" . ,red)
+       ("DONE" . ,green)
+       ("NOTE" . ,yellow-alt-other)
+       ("KLUDGE" . ,yellow)
+       ("HACK" . ,yellow)
+       ("TEMP" . ,red-nuanced)
+       ("FIXME" . ,red-alt-other)
+       ("XXX+" . ,red-alt)
+       ("REVIEW" . ,cyan-alt-other)
+       ("DEPRECATED" . ,blue-nuanced)))
+;;;; vc-annotate (C-x v g)
+   `(vc-annotate-background nil)
+   `(vc-annotate-background-mode nil)
+   `(vc-annotate-color-map
+     '((20 . ,red)
+       (40 . ,magenta)
+       (60 . ,magenta-alt)
+       (80 . ,red-alt)
+       (100 . ,yellow)
+       (120 . ,yellow-alt)
+       (140 . ,fg-special-warm)
+       (160 . ,fg-special-mild)
+       (180 . ,green)
+       (200 . ,green-alt)
+       (220 . ,cyan-alt-other)
+       (240 . ,cyan-alt)
+       (260 . ,cyan)
+       (280 . ,fg-special-cold)
+       (300 . ,blue)
+       (320 . ,blue-alt)
+       (340 . ,blue-alt-other)
+       (360 . ,magenta-alt-other)))
+   `(vc-annotate-very-old-color nil)
+;;;; xterm-color
+   `(xterm-color-names [,bg-main ,red ,green ,yellow ,blue ,magenta ,cyan ,fg-alt])
+   `(xterm-color-names-bright [,bg-alt ,red-alt ,green-alt ,yellow-alt ,blue-alt ,magenta-alt ,cyan-alt ,fg-main]))
+;;; Conditional theme variables
+;;;; org-src-block-faces
+  ;; this is a user option to add a colour-coded background to source
+  ;; blocks for various programming languages
+  (when (eq modus-vivendi-theme-org-blocks 'rainbow)
+    (custom-theme-set-variables
+     'modus-vivendi
+     `(org-src-block-faces              ; TODO this list should be expanded
+       `(("emacs-lisp" modus-theme-nuanced-magenta)
+         ("elisp" modus-theme-nuanced-magenta)
+         ("clojure" modus-theme-nuanced-magenta)
+         ("clojurescript" modus-theme-nuanced-magenta)
+         ("c" modus-theme-nuanced-blue)
+         ("c++" modus-theme-nuanced-blue)
+         ("sh" modus-theme-nuanced-green)
+         ("shell" modus-theme-nuanced-green)
+         ("html" modus-theme-nuanced-yellow)
+         ("xml" modus-theme-nuanced-yellow)
+         ("css" modus-theme-nuanced-red)
+         ("scss" modus-theme-nuanced-red)
+         ("python" modus-theme-nuanced-green)
+         ("ipython" modus-theme-nuanced-magenta)
+         ("r" modus-theme-nuanced-cyan)
+         ("yaml" modus-theme-nuanced-cyan)
+         ("conf" modus-theme-nuanced-cyan)
+         ("docker" modus-theme-nuanced-cyan)
+         ("json" modus-theme-nuanced-cyan))))))
+
+;;; library provides
+;;;###autoload
+(when load-file-name
+  (add-to-list 'custom-theme-load-path
+               (file-name-as-directory (file-name-directory load-file-name))))
+
+(provide-theme 'modus-vivendi)
+
+(provide 'modus-vivendi-theme)
+
+;;; modus-vivendi-theme.el ends here

commit 5a1785d58ad807cb8e4af6903313b1c6b49cf572
Author: Stefan Kangas <stefankangas@gmail.com>
Date:   Thu Aug 27 00:50:59 2020 +0200

    Sort Info index completions alphabetically
    
    * lisp/info.el (Info-complete-menu-item): Sort the list of completions
    alphabetically using 'nreverse'.  This makes no difference for Emacs
    but helps third-party completion frameworks such as Ivy.  (Bug#38614)
    
    Suggested by Howard Melman <hmelman@gmail.com>.

diff --git a/lisp/info.el b/lisp/info.el
index 8810bc7a83..fb47cb4d18 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -2775,6 +2775,8 @@ Because of ambiguities, this should be concatenated with something like
               ;; Go back to the start node (for the next completion).
               (unless (equal Info-current-node orignode)
                 (Info-goto-node orignode))
+              ;; Sort list alphabetically.
+              (setq completions (nreverse completions))
               ;; Update the cache.
               (setq Info-complete-cache
 		   (list Info-current-file Info-current-node

commit 1a167f5a7a87e65c1f9b27ebe6552913b2c2e6d2
Author: Dmitry Gutov <dgutov@yandex.ru>
Date:   Thu Aug 27 00:54:42 2020 +0300

    ; Bump xref version

diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el
index 264c750f01..f5ea940a32 100644
--- a/lisp/progmodes/xref.el
+++ b/lisp/progmodes/xref.el
@@ -1,7 +1,7 @@
 ;;; xref.el --- Cross-referencing commands              -*-lexical-binding:t-*-
 
 ;; Copyright (C) 2014-2020 Free Software Foundation, Inc.
-;; Version: 1.0.2
+;; Version: 1.0.3
 ;; Package-Requires: ((emacs "26.3"))
 
 ;; This is a GNU ELPA :core package.  Avoid functionality that is not

commit c601211e0d2f5174b5e748115a785d583235fe6e
Author: Dmitry Gutov <dgutov@yandex.ru>
Date:   Thu Aug 27 00:54:28 2020 +0300

    Unbreak dired-do-find-regexp in Emacs 26
    
    * lisp/progmodes/xref.el (xref--show-xrefs):
    Support the old convention (bug#42967).

diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el
index 4da7b4ef30..264c750f01 100644
--- a/lisp/progmodes/xref.el
+++ b/lisp/progmodes/xref.el
@@ -963,6 +963,16 @@ Accepts the same arguments as `xref-show-xrefs-function'."
 
 (defun xref--show-xrefs (fetcher display-action)
   (xref--push-markers)
+  (unless (functionp fetcher)
+    ;; Old convention.
+    (let ((xrefs fetcher))
+      (setq fetcher
+            (lambda ()
+              (if (eq xrefs 'called-already)
+                  (user-error "Refresh is not supported")
+                (prog1
+                    xrefs
+                  (setq xrefs 'called-already)))))))
   (funcall xref-show-xrefs-function fetcher
            `((window . ,(selected-window))
              (display-action . ,display-action))))

commit 7f6dba00edcccd6510185108a5c4bbb010393230
Author: Dmitry Gutov <dgutov@yandex.ru>
Date:   Thu Aug 27 00:47:18 2020 +0300

    Unbreak xref-goto-xref in Emacs 26
    
    * lisp/progmodes/xref.el (xref-goto-xref):
    Call next-error-found only if it's defined (bug#42981).

diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el
index bbf899e701..4da7b4ef30 100644
--- a/lisp/progmodes/xref.el
+++ b/lisp/progmodes/xref.el
@@ -608,7 +608,10 @@ buffer."
                    (user-error "No reference at point")))
          (xref--current-item xref))
     (xref--show-location (xref-item-location xref) (if quit 'quit t))
-    (next-error-found buffer (current-buffer))))
+    (if (fboundp 'next-error-found)
+        (next-error-found buffer (current-buffer))
+      ;; Emacs < 27
+      (setq next-error-last-buffer buffer))))
 
 (defun xref-quit-and-goto-xref ()
   "Quit *xref* buffer, then jump to xref on current line."

commit 14fb657ba82da346d36f05f88da26f1c5498b798
Author: Paul Eggert <eggert@cs.ucla.edu>
Date:   Wed Aug 26 13:25:35 2020 -0700

    Fix expand-file-name symlink-to-dir bug
    
    Problem reported by Yegor Timoshenko (Bug#26911),
    and I ran into it myself recently in normal-top-level.
    * doc/lispref/files.texi (File Name Expansion), etc/NEWS: Mention this.
    * src/fileio.c (Fexpand_file_name): Expand "/a/b/." to "/a/b/" not
    "/a/b", to avoid misinterpreting a symlink "/a/b".  Similarly,
    expand "/a/b/c/.." to "/a/b/" not "/a/b".
    * test/lisp/net/tramp-tests.el (tramp-test05-expand-file-name):
    Adjust to match new behavior.
    (tramp-test05-expand-file-name-relative): This test now succeeds,
    at least on Fedora 31.
    * test/src/fileio-tests.el:
    (fileio-tests--expand-file-name-trailing-slash) New test.

diff --git a/doc/lispref/files.texi b/doc/lispref/files.texi
index 92cbc2a1c9..090c54f8cd 100644
--- a/doc/lispref/files.texi
+++ b/doc/lispref/files.texi
@@ -2438,14 +2438,26 @@ This is for the sake of filesystems that have the concept of a
 superroot above the root directory @file{/}.  On other filesystems,
 @file{/../} is interpreted exactly the same as @file{/}.
 
+If a filename must be that of a directory, its expansion must be too.
+For example, if a filename ends in @samp{/} or @samp{/.} or @samp{/..}
+then its expansion ends in @samp{/} so that it cannot be
+misinterpreted as the name of a symbolic link:
+
+@example
+@group
+(expand-file-name "/a///b//.")
+     @result{} "/a/b/"
+@end group
+@end example
+
 Expanding @file{.} or the empty string returns the default directory:
 
 @example
 @group
 (expand-file-name "." "/usr/spool/")
-     @result{} "/usr/spool"
+     @result{} "/usr/spool/"
 (expand-file-name "" "/usr/spool/")
-     @result{} "/usr/spool"
+     @result{} "/usr/spool/"
 @end group
 @end example
 
diff --git a/etc/NEWS b/etc/NEWS
index fae65a2227..14a75ca75d 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1157,6 +1157,12 @@ region's (or buffer's) end.
 This function can be used by modes to add elements to the
 'choice' customization type of a variable.
 
++++
+** 'expand-file-name' no longer omits a trailing slash if the omission
+changes the filename's meaning.  E.g., (expand-file-name "/a/b/.") now
+returns "/a/b/" not "/a/b", which might be misinterpreted as the name
+of a symbolic link rather than of the directory it points to.
+
 +++
 ** New function 'file-modes-number-to-symbolic' to convert a numeric
 file mode specification into symbolic form.
diff --git a/src/fileio.c b/src/fileio.c
index 37072d9b6b..b70dff1c22 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -1065,7 +1065,7 @@ the root directory.  */)
 #endif /* WINDOWSNT */
 #endif /* DOS_NT */
 
-  /* If nm is absolute, look for `/./' or `/../' or `//''sequences; if
+  /* If nm is absolute, look for "/./" or "/../" or "//" sequences; if
      none are found, we can probably return right away.  We will avoid
      allocating a new string if name is already fully expanded.  */
   if (
@@ -1398,7 +1398,7 @@ the root directory.  */)
 
   if (newdir)
     {
-      if (nm[0] == 0 || IS_DIRECTORY_SEP (nm[0]))
+      if (IS_DIRECTORY_SEP (nm[0]))
 	{
 #ifdef DOS_NT
 	  /* If newdir is effectively "C:/", then the drive letter will have
@@ -1433,14 +1433,16 @@ the root directory.  */)
 	  {
 	    *o++ = *p++;
 	  }
-	else if (p[1] == '.'
-		 && (IS_DIRECTORY_SEP (p[2])
-		     || p[2] == 0))
+	else if (p[1] == '.' && IS_DIRECTORY_SEP (p[2]))
 	  {
-	    /* If "/." is the entire filename, keep the "/".  Otherwise,
-	       just delete the whole "/.".  */
-	    if (o == target && p[2] == '\0')
-	      *o++ = *p;
+	    /* Replace "/./" with "/".  */
+	    p += 2;
+	  }
+	else if (p[1] == '.' && !p[2])
+	  {
+	    /* At the end of the file name, replace "/." with "/".
+	       The trailing "/" is for symlinks.  */
+	    *o++ = *p;
 	    p += 2;
 	  }
 	else if (p[1] == '.' && p[2] == '.'
@@ -1459,18 +1461,23 @@ the root directory.  */)
 #ifdef WINDOWSNT
 	    char *prev_o = o;
 #endif
-	    while (o != target && (--o, !IS_DIRECTORY_SEP (*o)))
-	      continue;
+	    while (o != target)
+	      {
+		o--;
+		if (IS_DIRECTORY_SEP (*o))
+		  {
+		    /* Keep "/" at the end of the name, for symlinks.  */
+		    o += p[3] == 0;
+
+		    break;
+		  }
+	      }
 #ifdef WINDOWSNT
 	    /* Don't go below server level in UNC filenames.  */
 	    if (o == target + 1 && IS_DIRECTORY_SEP (*o)
 		&& IS_DIRECTORY_SEP (*target))
 	      o = prev_o;
-	    else
 #endif
-	    /* Keep initial / only if this is the whole name.  */
-	    if (o == target && IS_ANY_SEP (*o) && p[3] == 0)
-	      ++o;
 	    p += 3;
 	  }
 	else if (IS_DIRECTORY_SEP (p[1])
diff --git a/test/lisp/net/tramp-tests.el b/test/lisp/net/tramp-tests.el
index 7e9ae33f84..aa00c07f79 100644
--- a/test/lisp/net/tramp-tests.el
+++ b/test/lisp/net/tramp-tests.el
@@ -2131,16 +2131,16 @@ is greater than 10.
       (expand-file-name "/method:host:/path/../file") "/method:host:/file"))
     (should
      (string-equal
-      (expand-file-name "/method:host:/path/.") "/method:host:/path"))
+      (expand-file-name "/method:host:/path/.") "/method:host:/path/"))
     (should
      (string-equal
       (expand-file-name "/method:host:/path/..") "/method:host:/"))
     (should
      (string-equal
-      (expand-file-name "." "/method:host:/path/") "/method:host:/path"))
+      (expand-file-name "." "/method:host:/path/") "/method:host:/path/"))
     (should
      (string-equal
-      (expand-file-name "" "/method:host:/path/") "/method:host:/path"))
+      (expand-file-name "" "/method:host:/path/") "/method:host:/path/"))
     ;; Quoting local part.
     (should
      (string-equal
@@ -2155,12 +2155,9 @@ is greater than 10.
       "/method:host:/:/~/path/file"))))
 
 ;; The following test is inspired by Bug#26911 and Bug#34834.  They
-;; are rather bugs in `expand-file-name', and it fails for all Emacs
-;; versions.  Test added for later, when they are fixed.
+;; were bugs in `expand-file-name'.
 (ert-deftest tramp-test05-expand-file-name-relative ()
   "Check `expand-file-name'."
-  ;; Mark as failed until bug has been fixed.
-  :expected-result :failed
   (skip-unless (tramp--test-enabled))
 
   ;; These are the methods the test doesn't fail.
diff --git a/test/src/fileio-tests.el b/test/src/fileio-tests.el
index 96b03a0137..1516590795 100644
--- a/test/src/fileio-tests.el
+++ b/test/src/fileio-tests.el
@@ -108,6 +108,17 @@ Also check that an encoding error can appear in a symlink."
       (should (equal (expand-file-name "~/bar") "x:/foo/bar")))
     (setenv "HOME" old-home)))
 
+(ert-deftest fileio-tests--expand-file-name-trailing-slash ()
+  (dolist (fooslashalias '("foo/" "foo//" "foo/." "foo//." "foo///././."
+                           "foo/a/.."))
+    (should (equal (expand-file-name fooslashalias "/") "/foo/"))
+    (should (equal (expand-file-name (concat "/" fooslashalias)) "/foo/")))
+  (should (equal (expand-file-name "." "/usr/spool/") "/usr/spool/"))
+  (should (equal (expand-file-name "" "/usr/spool/") "/usr/spool/"))
+  ;; Trailing "B/C/.." means B must be a directory.
+  (should (equal (expand-file-name "/a/b/c/..") "/a/b/"))
+  (should (equal (expand-file-name "/a/b/c/../") "/a/b/")))
+
 (ert-deftest fileio-tests--insert-file-interrupt ()
   (let ((text "-*- coding: binary -*-\n\xc3\xc3help")
         f)

commit ff864be694247e5f6c8732afcbaeb1c0a8a8a124
Author: Paul Eggert <eggert@cs.ucla.edu>
Date:   Wed Aug 26 10:53:32 2020 -0700

    Fix PWD startup checking with symlinks
    
    * lisp/startup.el (normal-top-level): Do not put "." after "/";
    itâ€™s not needed and with current file-name-as-directory it does
    the wrong thing if PWD is a symlink.

diff --git a/lisp/startup.el b/lisp/startup.el
index d9682eef4c..4827483076 100644
--- a/lisp/startup.el
+++ b/lisp/startup.el
@@ -642,16 +642,13 @@ It is the default value of the variable `top-level'."
 	 (list (default-value 'user-full-name)))
     ;; If the PWD environment variable isn't accurate, delete it.
     (let ((pwd (getenv "PWD")))
-      (and (stringp pwd)
-	   ;; Use FOO/., so that if FOO is a symlink, file-attributes
-	   ;; describes the directory linked to, not FOO itself.
+      (and pwd
 	   (or (and default-directory
 		    (ignore-errors
 		      (equal (file-attributes
-			      (concat (file-name-as-directory pwd) "."))
+			      (file-name-as-directory pwd))
 			     (file-attributes
-			      (concat (file-name-as-directory default-directory)
-				      ".")))))
+			      (file-name-as-directory default-directory)))))
 	       (setq process-environment
 		     (delete (concat "PWD=" pwd)
 			     process-environment)))))

commit dfeb0593128006e4cd1e47d831bf00bde9867437
Author: Paul Eggert <eggert@cs.ucla.edu>
Date:   Wed Aug 26 10:51:48 2020 -0700

    * lisp/files.el (insert-directory): Simplify (if ... X X) to X.

diff --git a/lisp/files.el b/lisp/files.el
index e08f0f0134..3403e257a1 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -7070,6 +7070,8 @@ normally equivalent short `-D' option is just passed on to
                              ((stringp switches) (concat switches " -d"))
                              ((member "-d" switches) switches)
                              (t (append switches '("-d"))))))
+		    (if (string-match "\\`~" file)
+			(setq file (expand-file-name file)))
 		    (apply 'call-process
 			   insert-directory-program nil t nil
 			   (append
@@ -7080,14 +7082,7 @@ normally equivalent short `-D' option is just passed on to
 				(split-string-and-unquote switches)))
 			    ;; Avoid lossage if FILE starts with `-'.
 			    '("--")
-			    (progn
-			      (if (string-match "\\`~" file)
-				  (setq file (expand-file-name file)))
-			      (list
-			       (if full-directory-p
-				   ;; (concat (file-name-as-directory file) ".")
-                                   file
-				 file))))))))
+			    (list file))))))
 
 	  ;; If we got "//DIRED//" in the output, it means we got a real
 	  ;; directory listing, even if `ls' returned nonzero.

commit 6a5f9700846551a7f3795e257356dbab865116f4
Author: Stefan Kangas <stefankangas@gmail.com>
Date:   Wed Aug 26 17:25:53 2020 +0200

    Sync latest SKK-JISYO.L
    
    * leim/SKK-DIC/SKK-JISYO.L: Sync to current upstream version.

diff --git a/leim/SKK-DIC/SKK-JISYO.L b/leim/SKK-DIC/SKK-JISYO.L
index 6b024e3dc4..9098868cae 100644
--- a/leim/SKK-DIC/SKK-JISYO.L
+++ b/leim/SKK-DIC/SKK-JISYO.L
@@ -22978,6 +22978,7 @@ covering /
 coverstory /¥«¥Ð¡¼¥¹¥È¡¼¥ê¡¼/
 coverup /¥«¥Ð¡¼¥¢¥Ã¥×/
 coverversion /¥«¥Ð¡¼¥Ð¡¼¥¸¥ç¥ó/
+covid-19 /¿··¿¥³¥í¥Ê¥¦¥¤¥ë¥¹´¶À÷¾É;Coronavirus disease 2019/
 cow /¥«¥¦/
 cowbell /¥«¥¦¥Ù¥ë/
 cowboy /¥«¥¦¥Ü¡¼¥¤/
@@ -38107,6 +38108,9 @@ sardine /
 sari /¥µ¥ê¡¼/¥µ¥ê/
 sarin /¥µ¥ê¥ó/
 sarod /¥µ¥í¡¼¥É/¥µ¥í¥Ã¥É/
+sars /severe acute respiratory syndrome/½Å¾ÉµÞÀ­¸ÆµÛ´ï¾É¸õ·²/
+sars-cov /severe acute respiratory syndrome coronavirus/SARS¥³¥í¥Ê¥¦¥¤¥ë¥¹
+sars-cov-2 /severe acute respiratory syndrome coronavirus 2/2019¿··¿¥³¥í¥Ê¥¦¥¤¥ë¥¹
 sartre /¥µ¥ë¥È¥ë/
 saruman /¥µ¥ë¥Þ¥ó/
 sasa /¥µ¥µ/

commit 3345dc8e15bbbb96fa07b402106a7ca1f4da9559
Author: leo <gnu_lists@halloleo.hailmail.net>
Date:   Wed Aug 26 15:03:08 2020 +0200

    Allow disabling double buffering at build time
    
    * configure.ac: Allow disabling double buffering (bug#32032).
    
    Copyright-paperwork-exempt: yes

diff --git a/configure.ac b/configure.ac
index fb9aa19d6e..9a51ea1f7e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -463,6 +463,7 @@ OPTION_DEFAULT_ON([m17n-flt],[don't use m17n-flt for text shaping])
 OPTION_DEFAULT_ON([toolkit-scroll-bars],[don't use Motif/Xaw3d/GTK toolkit scroll bars])
 OPTION_DEFAULT_ON([xaw3d],[don't use Xaw3d])
 OPTION_DEFAULT_ON([xim],[at runtime, default X11 XIM to off])
+OPTION_DEFAULT_ON([xdbe],[don't use X11 double buffering support])
 AC_ARG_WITH([ns],[AS_HELP_STRING([--with-ns],
 [use Nextstep (macOS Cocoa or GNUstep) windowing system.
 On by default on macOS.])],[],[with_ns=maybe])
@@ -4023,11 +4024,13 @@ AC_SUBST(XFIXES_LIBS)
 ### Use Xdbe (-lXdbe) if available
 HAVE_XDBE=no
 if test "${HAVE_X11}" = "yes"; then
-  AC_CHECK_HEADER(X11/extensions/Xdbe.h,
-    [AC_CHECK_LIB(Xext, XdbeAllocateBackBufferName, HAVE_XDBE=yes)],
-    [],
-    [#include <X11/Xlib.h>
-    ])
+  if test "${with_xdbe}" != "no"; then
+    AC_CHECK_HEADER(X11/extensions/Xdbe.h,
+      [AC_CHECK_LIB(Xext, XdbeAllocateBackBufferName, HAVE_XDBE=yes)],
+      [],
+      [#include <X11/Xlib.h>
+      ])
+  fi
   if test $HAVE_XDBE = yes; then
     XDBE_LIBS=-lXext
   fi
diff --git a/etc/NEWS b/etc/NEWS
index 7be7aced98..fae65a2227 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -41,6 +41,11 @@ still be available when HarfBuzz is supported, but will not be used by
 default.  We strongly recommend building with HarBuzz support.  'x' is
 still a valid backend.
 
+---
+** Building without double buffering support.
+configure --with-xdbe=no can now be used to disable double buffering
+at build time.
+
 ---
 ** 'configure' now warns about building with libXft support.
 libXft is unmaintained, and causes a number of problems with modern

commit fca0d6e875e7eb3ab3ca117e7552315e1a56b282
Author: Robert Pluim <rpluim@gmail.com>
Date:   Wed Aug 26 14:47:22 2020 +0200

    Allow directories to be called .el in -add-subdirs-to-load-path
    
    * lisp/startup.el (normal-top-level-add-subdirs-to-load-path):
    Allow the directories to be called "<foo>.el" (bug#32266).

diff --git a/lisp/startup.el b/lisp/startup.el
index 364689ccdb..d9682eef4c 100644
--- a/lisp/startup.el
+++ b/lisp/startup.el
@@ -463,9 +463,6 @@ or `CVS', and any subdirectory that contains a file named `.nosearch'."
 	    (and (string-match "\\`[[:alnum:]]" file)
 		 ;; The lower-case variants of RCS and CVS are for DOS/Windows.
 		 (not (member file '("RCS" "CVS" "rcs" "cvs")))
-		 ;; Avoid doing a `stat' when it isn't necessary because
-		 ;; that can cause trouble when an NFS server is down.
-		 (not (string-match "\\.elc?\\'" file))
 		 (file-directory-p file)
 		 (let ((expanded (expand-file-name file)))
 		   (or (file-exists-p (expand-file-name ".nosearch" expanded))

commit f68a8869d1b5d25855bdc5cb1654bb4c1b2a5cb2
Author: Glenn Morris <rgm@gnu.org>
Date:   Wed Aug 26 14:37:13 2020 +0200

    Fix doc-view problem with file names with spaces in them
    
    * lisp/doc-view.el (doc-view-get-bounding-box): Don't bug out on
    file names with spaces in them (bug#33344).

diff --git a/lisp/doc-view.el b/lisp/doc-view.el
index 77c06a8eaf..60f6d6350c 100644
--- a/lisp/doc-view.el
+++ b/lisp/doc-view.el
@@ -1320,26 +1320,31 @@ dragging it to its bottom-right corner.  See also
 
 (defun doc-view-get-bounding-box ()
   "Get the BoundingBox information of the current page."
-  (let* ((page (doc-view-current-page))
-	 (doc (let ((cache-doc (doc-view-current-cache-doc-pdf)))
-		(if (file-exists-p cache-doc)
-		    cache-doc
-		  doc-view--buffer-file-name)))
-	 (o (shell-command-to-string
-	     (concat doc-view-ghostscript-program
-		     " -dSAFER -dBATCH -dNOPAUSE -q -sDEVICE=bbox "
-		     (format "-dFirstPage=%s -dLastPage=%s %s"
-			     page page doc)))))
-    (save-match-data
-      (when (string-match (concat "%%BoundingBox: "
-				  "\\([[:digit:]]+\\) \\([[:digit:]]+\\) "
-				  "\\([[:digit:]]+\\) \\([[:digit:]]+\\)")
-                          o)
-	(mapcar #'string-to-number
-		(list (match-string 1 o)
-		      (match-string 2 o)
-		      (match-string 3 o)
-		      (match-string 4 o)))))))
+  (let ((page (doc-view-current-page))
+	(doc (let ((cache-doc (doc-view-current-cache-doc-pdf)))
+	       (if (file-exists-p cache-doc)
+		   cache-doc
+		 doc-view--buffer-file-name))))
+    (with-temp-buffer
+      (when (eq 0 (ignore-errors
+		    (process-file doc-view-ghostscript-program nil t
+				  nil "-dSAFER" "-dBATCH" "-dNOPAUSE" "-q"
+				  "-sDEVICE=bbox"
+				  (format "-dFirstPage=%s" page)
+				  (format "-dLastPage=%s" page)
+				  doc)))
+	(goto-char (point-min))
+	(save-match-data
+	  (when (re-search-forward
+		 (concat "%%BoundingBox: "
+			 "\\([[:digit:]]+\\) \\([[:digit:]]+\\) "
+			 "\\([[:digit:]]+\\) \\([[:digit:]]+\\)")
+                 nil t)
+	    (mapcar #'string-to-number
+		    (list (match-string 1)
+			  (match-string 2)
+			  (match-string 3)
+			  (match-string 4)))))))))
 
 (defvar doc-view-paper-sizes
   '((a4 595 842)

commit be7af20e732db65c33f5d41402675a403416ce7b
Author: Lars Ingebrigtsen <larsi@gnus.org>
Date:   Wed Aug 26 14:08:21 2020 +0200

    Use format-prompt a couple of places
    
    * lisp/ps-print.el (ps-print-preprint):
    * lisp/help-fns.el (describe-function): Use `format-prompt'
    (bug#12443).

diff --git a/lisp/help-fns.el b/lisp/help-fns.el
index a137c50488..d302c05283 100644
--- a/lisp/help-fns.el
+++ b/lisp/help-fns.el
@@ -152,7 +152,7 @@ When called from lisp, FUNCTION may also be a function object."
           (enable-recursive-minibuffers t)
           (val (completing-read
                 (if fn
-                    (format "Describe function (default %s): " fn)
+                    (format-prompt "Describe function" fn)
                   "Describe function: ")
                 #'help--symbol-completion-table
                 (lambda (f) (or (fboundp f) (get f 'function-documentation)))
diff --git a/lisp/ps-print.el b/lisp/ps-print.el
index 1ca4a23ab2..67ee4d2439 100644
--- a/lisp/ps-print.el
+++ b/lisp/ps-print.el
@@ -4523,7 +4523,7 @@ page-height == ((floor print-height ((th + ls) * zh)) * ((th + ls) * zh)) - th
        (let* ((name   (concat (file-name-nondirectory (or (buffer-file-name)
 							  (buffer-name)))
 			      ".ps"))
-	      (prompt (format "Save PostScript to file (default %s): " name))
+	      (prompt (format-prompt "Save PostScript to file" name))
 	      (res    (read-file-name prompt default-directory name nil)))
 	 (while (cond ((file-directory-p res)
 		       (ding)

commit 0985c0e6c6f1da712d3a48fa88af2861bf218d60
Author: Lars Ingebrigtsen <larsi@gnus.org>
Date:   Wed Aug 26 14:07:25 2020 +0200

    Implement a way to customize "default" values
    
    * doc/lispref/minibuf.texi (Text from Minibuffer): Document them.
    
    * lisp/minibuffer.el (format-prompt): New function (bug#12443).
    (minibuffer-default-prompt-format): New variable.

diff --git a/doc/lispref/minibuf.texi b/doc/lispref/minibuf.texi
index 2488fb3752..8b4240c5d8 100644
--- a/doc/lispref/minibuf.texi
+++ b/doc/lispref/minibuf.texi
@@ -411,6 +411,34 @@ following bindings, in addition to those of @code{minibuffer-local-map}:
 @end table
 @end defvar
 
+@vindex minibuffer-default-prompt-format
+@defun format-prompt prompt default &rest format-args
+Format @var{prompt} with default value @var{default} according to the
+@code{minibuffer-default-prompt-format} variable.
+
+@code{minibuffer-default-prompt-format} is a format string (defaulting
+to @samp{" (default %s)"} that says how the ``default'' bit in prompts
+like @samp{"Local filename (default somefile): "} are to be formatted.
+
+To allow the users to customize how this is displayed, code that
+prompts the user for a value (and has a default) should look something
+along the lines of this code snippet:
+
+@lisp
+(read-file-name
+ (format-prompt "Local filename" file)
+ nil file)
+@end lisp
+
+If @var{format-args} is @code{nil}, @var{prompt} is used as a literal
+string.  If @var{format-args} is non-@code{nil}, @var{prompt} is used
+as a format control string, and @var{prompt} and @var{format-args} are
+passed to @code{format} (@pxref{Formatting Strings}).
+
+@code{minibuffer-default-prompt-format} can be @samp{""}, in which
+case no default values are displayed.
+@end defun
+
 @node Object from Minibuffer
 @section Reading Lisp Objects with the Minibuffer
 @cindex minibuffer input, reading lisp objects
diff --git a/etc/NEWS b/etc/NEWS
index 5cb6fcb934..7be7aced98 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -886,6 +886,16 @@ window after starting).  This variable defaults to nil.
 
 ** Miscellaneous
 
++++
+*** The user can now customize how \"default\" values are prompted for.
+The new utility function 'format-prompt' has been added which uses the
+new 'minibuffer-default-prompt-format' variable to format \"default\"
+prompts.  This means that prompts that look like "Enter a number
+(default 10)" can be customized to look like, for instance, "Enter a
+number [10]", or not have the default displayed at all, like "Enter a
+number".  (This requires that all callers are altered to user
+'format-prompt', though.)
+
 ---
 *** New 'diff-mode' font locking face 'diff-error'.
 This face is used for error messages from diff.
diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el
index 1f2dcc4755..47f28d0010 100644
--- a/lisp/minibuffer.el
+++ b/lisp/minibuffer.el
@@ -3028,6 +3028,19 @@ the commands start with a \"-\" or a SPC."
   :version "24.1"
   :type 'boolean)
 
+(defcustom minibuffer-default-prompt-format " (default %s)"
+  "Format string used to output \"default\" values.
+When prompting for input, there will often be a default value,
+leading to prompts like \"Number of articles (default 50): \".
+The \"default\" part of that prompt is controlled by this
+variable, and can be set to, for instance, \" [%s]\" if you want
+a shorter displayed prompt, or \"\", if you don't want to display
+the default at all.
+
+This variable is used by the `format-prompt' function."
+  :version "28.1"
+  :type 'string)
+
 (defun completion-pcm--pattern-trivial-p (pattern)
   (and (stringp (car pattern))
        ;; It can be followed by `point' and "" and still be trivial.
@@ -3845,6 +3858,19 @@ the minibuffer was activated, and execute the forms."
   (with-minibuffer-selected-window
     (scroll-other-window-down arg)))
 
+(defun format-prompt (prompt default &rest format-args)
+  "Format PROMPT with DEFAULT according to `minibuffer-default-prompt-format'.
+If FORMAT-ARGS is nil, PROMPT is used as a plain string.  If
+FORMAT-ARGS is non-nil, PROMPT is used as a format control
+string, and FORMAT-ARGS are the arguments to be substituted into
+it.  See `format' for details."
+  (concat
+   (if (null format-args)
+       prompt
+     (apply #'format prompt format-args))
+   (format minibuffer-default-prompt-format default)
+   ": "))
+
 (provide 'minibuffer)
 
 ;;; minibuffer.el ends here

commit a4d57add69fd2077bd21ce917ea8ca3b22621ec0
Author: Lars Ingebrigtsen <larsi@gnus.org>
Date:   Wed Aug 26 13:22:55 2020 +0200

    Make the epa key display slightly more informative
    
    * lisp/epa.el (epa--button-key-text): Say what the validity
    characters output by GPG mean (bug#34726).

diff --git a/lisp/epa.el b/lisp/epa.el
index 3c804361c3..b065887cef 100644
--- a/lisp/epa.el
+++ b/lisp/epa.el
@@ -255,18 +255,25 @@ You should bind this variable with `let', but do not set it globally.")
         (validity (epg-sub-key-validity (car (epg-key-sub-key-list key)))))
     (propertize
      (concat
-      (format "%c "
-	      (if (epg-sub-key-validity primary-sub-key)
-		  (car (rassq (epg-sub-key-validity primary-sub-key)
-			      epg-key-validity-alist))
-	        ? ))
-      (epg-sub-key-id primary-sub-key)
-      " "
-      (if primary-user-id
-	  (if (stringp (epg-user-id-string primary-user-id))
-	      (epg-user-id-string primary-user-id)
-	    (epg-decode-dn (epg-user-id-string primary-user-id)))
-        ""))
+      (propertize
+       (format "%c "
+	       (if (epg-sub-key-validity primary-sub-key)
+		   (car (rassq (epg-sub-key-validity primary-sub-key)
+			       epg-key-validity-alist))
+	         ? ))
+       'help-echo (format "Validity: %s"
+                          (epg-sub-key-validity primary-sub-key)))
+      (propertize
+       (concat
+        (epg-sub-key-id primary-sub-key)
+        " "
+        (if primary-user-id
+	    (if (stringp (epg-user-id-string primary-user-id))
+	        (epg-user-id-string primary-user-id)
+	      (epg-decode-dn (epg-user-id-string primary-user-id)))
+          ""))
+       'help-echo (format "Show %s"
+	                  (epg-sub-key-id (car (epg-key-sub-key-list key))))))
      'face
      (if validity
          (cdr (assq validity epa-validity-face-alist))
@@ -334,9 +341,7 @@ If ARG is non-nil, mark the key."
     (insert
      (propertize
       (concat "  " (epa--button-key-text key))
-      'epa-key key
-      'help-echo (format "Show %s"
-	                 (epg-sub-key-id (car (epg-key-sub-key-list key))))))
+      'epa-key key))
     (insert "\n")))
 
 (defun epa--list-keys (name secret &optional doc)

commit e48c60e7c9b4d6e5a11fc11cdd5dded868321b80
Author: Å tÄ›pÃ¡n NÄ›mec <stepnem@gmail.com>
Date:   Thu Apr 9 16:17:57 2020 +0200

    Document ispell comment/string checking commands in the user manual
    
    * doc/emacs/fixit.texi (Spelling): Mention
    'ispell-comments-and-strings' and 'ispell-comment-or-string-at-point'.
    (bug#6411)

diff --git a/doc/emacs/fixit.texi b/doc/emacs/fixit.texi
index 6633848716..db77ae4ec2 100644
--- a/doc/emacs/fixit.texi
+++ b/doc/emacs/fixit.texi
@@ -277,6 +277,10 @@ Check and correct spelling in the region.
 @item M-x ispell-message
 Check and correct spelling in a draft mail message, excluding cited
 material.
+@item M-x ispell-comments-and-strings
+Check and correct spelling of comments and strings in the buffer or region.
+@item M-x ispell-comment-or-string-at-point
+Check the comment or string at point.
 @item M-x ispell-change-dictionary @key{RET} @var{dict} @key{RET}
 Restart the spell-checker process, using @var{dict} as the dictionary.
 @item M-x ispell-kill-ispell
@@ -304,6 +308,8 @@ region; @pxref{Disabled Transient Mark}.)
 @findex ispell
 @findex ispell-buffer
 @findex ispell-region
+@findex ispell-comments-and-strings
+@findex ispell-comment-or-string-at-point
 @cindex spell-checking the active region
   Similarly, the command @kbd{M-x ispell} performs spell-checking in
 the region if one is active, or in the entire buffer otherwise.  The
@@ -312,7 +318,10 @@ explicitly perform spell-checking on the entire buffer or the region
 respectively.  To check spelling in an email message you are writing,
 use @w{@kbd{M-x ispell-message}}; that command checks the whole buffer,
 except for material that is indented or appears to be cited from other
-messages.  @xref{Sending Mail}.
+messages.  @xref{Sending Mail}.  When dealing with source code, you
+can use @kbd{M-x ispell-comments-and-strings} or @w{@kbd{M-x
+ispell-comment-or-string-at-point}} to check only comments or string
+literals.
 
   When one of these commands encounters what appears to be an
 incorrect word, it asks you what to do.  It usually displays a list of
diff --git a/etc/NEWS b/etc/NEWS
index 05105a1e68..5cb6fcb934 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -383,11 +383,11 @@ The menu-bar Help menu now has a "Show Recent Inputs" item under the
 
 ** Ispell
 
----
++++
 *** 'ispell-comments-and-strings' now accepts START and END arguments,
 defaulting to active region when used interactively.
 
----
++++
 *** New command 'ispell-comment-or-string-at-point' is provided.
 
 ---

commit 2aefd5590431bc84a70f2740f6949c2f771c2b55
Author: Å tÄ›pÃ¡n NÄ›mec <stepnem@gmail.com>
Date:   Wed Apr 8 20:32:51 2020 +0200

    ispell: Commands to check comments or strings at point or in region
    
    * lisp/textmodes/ispell.el (ispell-comments-and-strings): Accept START
    and END arguments, defaulting to active region in interactive calls.
    (ispell-comment-or-string-at-point): New command. (bug#6411)

diff --git a/etc/NEWS b/etc/NEWS
index 2f8e5eb855..05105a1e68 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -381,6 +381,15 @@ take the actual screenshot, and defaults to "ImageMagick import".
 The menu-bar Help menu now has a "Show Recent Inputs" item under the
 "Describe" sub-menu.
 
+** Ispell
+
+---
+*** 'ispell-comments-and-strings' now accepts START and END arguments,
+defaulting to active region when used interactively.
+
+---
+*** New command 'ispell-comment-or-string-at-point' is provided.
+
 ---
 ** The old non-SMIE indentation of 'sh-mode' has been removed.
 
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index 8252da604e..6eaa0582aa 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -44,6 +44,7 @@
 ;;   ispell-buffer
 ;;   ispell-message
 ;;   ispell-comments-and-strings
+;;   ispell-comment-or-string-at-point
 ;;   ispell-continue
 ;;   ispell-complete-word
 ;;   ispell-complete-word-interior-frag
@@ -3580,24 +3581,40 @@ Returns the sum SHIFT due to changes in word replacements."
 
 
 ;;;###autoload
-(defun ispell-comments-and-strings ()
-  "Check comments and strings in the current buffer for spelling errors."
-  (interactive)
-  (goto-char (point-min))
+(defun ispell-comments-and-strings (&optional start end)
+  "Check comments and strings in the current buffer for spelling errors.
+If called interactively with an active region, check only comments and
+strings in the region.
+When called from Lisp, START and END buffer positions can be provided
+to limit the check."
+  (interactive (when (use-region-p) (list (region-beginning) (region-end))))
+  (unless end (setq end (point-max)))
+  (goto-char (or start (point-min)))
   (let (state done)
     (while (not done)
       (setq done t)
-      (setq state (parse-partial-sexp (point) (point-max)
-				      nil nil state 'syntax-table))
+      (setq state (parse-partial-sexp (point) end nil nil state 'syntax-table))
       (if (or (nth 3 state) (nth 4 state))
 	  (let ((start (point)))
-	    (setq state (parse-partial-sexp start (point-max)
+	    (setq state (parse-partial-sexp start end
 					    nil nil state 'syntax-table))
 	    (if (or (nth 3 state) (nth 4 state))
 		(error "Unterminated string or comment"))
 	    (save-excursion
 	      (setq done (not (ispell-region start (point))))))))))
 
+;;;###autoload
+(defun ispell-comment-or-string-at-point ()
+  "Check the comment or string containing point for spelling errors."
+  (interactive)
+  (save-excursion
+    (let ((state (syntax-ppss)))
+      (if (or (nth 3 state) (nth 4 state))
+          (ispell-region (nth 8 state)
+                         (progn (parse-partial-sexp (point) (point-max)
+                                                    nil nil state 'syntax-table)
+                                (point)))
+        (user-error "Not inside a string or comment")))))
 
 ;;;###autoload
 (defun ispell-buffer ()

commit 32f4fa80b59513e26a50eebb90045ba4d2a8003f
Author: Eli Zaretskii <eliz@gnu.org>
Date:   Wed Aug 26 13:46:56 2020 +0300

    ; * doc/lispref/backups.texi (Auto-Saving): Fix wording of last change.

diff --git a/doc/lispref/backups.texi b/doc/lispref/backups.texi
index e651ef8c55..379279575c 100644
--- a/doc/lispref/backups.texi
+++ b/doc/lispref/backups.texi
@@ -467,27 +467,26 @@ non-@code{nil} and @code{buffer-saved-size} (see below) is non-zero.
 @end deffn
 
 @defvar auto-save-file-name-transforms
-This variable lists transforms to apply to buffer file name before
-making auto-save file name.
+This variable lists transforms to apply to buffer's file name before
+making the auto-save file name.
 
-Each transform is a list of the form @code{(@var{regexp}
-@var{replacement} [@var{uniquify}])}: @var{regexp} is a regular
-expression to match against the file name.  If it matches,
+Each transform is a list of the form @w{@code{(@var{regexp}
+@var{replacement} [@var{uniquify}])}}.  @var{regexp} is a regular
+expression to match against the file name; if it matches,
 @code{replace-match} is used to replace the matching part with
 @var{replacement}.  If the optional element @var{uniquify} is non-nil,
-the auto-save file name is constructed by taking the directory part of
-the replaced file-name, concatenated with the buffer file name with
-all directory separators changed to @samp{!} to prevent clashes.  This
-will not work correctly if your filesystem truncates the resulting
-name.
+the auto-save file name is constructed by concatenating the directory
+part of the transformed file name with the buffer's file name in which
+all directory separators were changed to @samp{!} to prevent clashes.
+(This will not work correctly if your filesystem truncates the
+resulting name.)
 
 All the transforms in the list are tried, in the order they are listed.
 When one transform applies, its result is final;
 no further transforms are tried.
 
-The default value is set up to put the auto-save file into the
-temporary directory (@pxref{Unique File Names}) for editing a
-remote file.
+The default value is set up to put the auto-save files of remote files
+into the temporary directory (@pxref{Unique File Names}).
 
 On MS-DOS filesystems without long names this variable is always
 ignored.

commit 7e809b9ef7b8e07851525ffb9c03a02c5ea6af82
Author: Noam Postavsky <npostavs@gmail.com>
Date:   Wed Aug 26 12:37:24 2020 +0200

    Don't recommend redefining auto-save filename functions
    
    * doc/lispref/backups.texi (Auto-Saving): Document
    auto-save-file-name-transforms.
    * lisp/files.el (make-auto-save-file-name)
    (auto-save-file-name-p): Remove suggestion to redefine for
    customization (bug#34911).

diff --git a/doc/lispref/backups.texi b/doc/lispref/backups.texi
index e14f77f9fc..e651ef8c55 100644
--- a/doc/lispref/backups.texi
+++ b/doc/lispref/backups.texi
@@ -466,6 +466,33 @@ Auto Save mode is enabled if @code{buffer-auto-save-file-name} is
 non-@code{nil} and @code{buffer-saved-size} (see below) is non-zero.
 @end deffn
 
+@defvar auto-save-file-name-transforms
+This variable lists transforms to apply to buffer file name before
+making auto-save file name.
+
+Each transform is a list of the form @code{(@var{regexp}
+@var{replacement} [@var{uniquify}])}: @var{regexp} is a regular
+expression to match against the file name.  If it matches,
+@code{replace-match} is used to replace the matching part with
+@var{replacement}.  If the optional element @var{uniquify} is non-nil,
+the auto-save file name is constructed by taking the directory part of
+the replaced file-name, concatenated with the buffer file name with
+all directory separators changed to @samp{!} to prevent clashes.  This
+will not work correctly if your filesystem truncates the resulting
+name.
+
+All the transforms in the list are tried, in the order they are listed.
+When one transform applies, its result is final;
+no further transforms are tried.
+
+The default value is set up to put the auto-save file into the
+temporary directory (@pxref{Unique File Names}) for editing a
+remote file.
+
+On MS-DOS filesystems without long names this variable is always
+ignored.
+@end defvar
+
 @defun auto-save-file-name-p filename
 This function returns a non-@code{nil} value if @var{filename} is a
 string that could be the name of an auto-save file.  It assumes
@@ -487,21 +514,6 @@ name.  The argument @var{filename} should not contain a directory part.
      @result{} nil
 @end group
 @end example
-
-The standard definition of this function is as follows:
-
-@example
-@group
-(defun auto-save-file-name-p (filename)
-  "Return non-nil if FILENAME can be yielded by..."
-  (string-match "^#.*#$" filename))
-@end group
-@end example
-
-This function exists so that you can customize it if you wish to
-change the naming convention for auto-save files.  If you redefine it,
-be sure to redefine the function @code{make-auto-save-file-name}
-correspondingly.
 @end defun
 
 @defun make-auto-save-file-name
@@ -517,31 +529,6 @@ function should check that variable first.
      @result{} "/xcssun/users/rms/lewis/#backups.texi#"
 @end group
 @end example
-
-Here is a simplified version of the standard definition of this
-function:
-
-@example
-@group
-(defun make-auto-save-file-name ()
-  "Return file name to use for auto-saves \
-of current buffer.."
-  (if buffer-file-name
-@end group
-@group
-      (concat
-       (file-name-directory buffer-file-name)
-       "#"
-       (file-name-nondirectory buffer-file-name)
-       "#")
-    (expand-file-name
-     (concat "#%" (buffer-name) "#"))))
-@end group
-@end example
-
-This exists as a separate function so that you can redefine it to
-customize the naming convention for auto-save files.  Be sure to
-change @code{auto-save-file-name-p} in a corresponding way.
 @end defun
 
 @defopt auto-save-visited-file-name
diff --git a/lisp/files.el b/lisp/files.el
index 9a20ad41ba..e08f0f0134 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -6483,7 +6483,7 @@ Also rename any existing auto save file, if it was made in this session."
 (defun make-auto-save-file-name ()
   "Return file name to use for auto-saves of current buffer.
 Does not consider `auto-save-visited-file-name' as that variable is checked
-before calling this function.  You can redefine this for customization.
+before calling this function.
 See also `auto-save-file-name-p'."
   (if buffer-file-name
       (let ((handler (find-file-name-handler buffer-file-name
@@ -6590,7 +6590,8 @@ See also `auto-save-file-name-p'."
 
 (defun auto-save-file-name-p (filename)
   "Return non-nil if FILENAME can be yielded by `make-auto-save-file-name'.
-FILENAME should lack slashes.  You can redefine this for customization."
+FILENAME should lack slashes.
+See also `make-auto-save-file-name'."
   (string-match "\\`#.*#\\'" filename))
 
 (defun wildcard-to-regexp (wildcard)

commit fa3959f5cbd2c0c4642999bde987ba852373e0dd
Author: Phil Sainty <psainty@orcon.net.nz>
Date:   Wed Aug 26 12:03:32 2020 +0200

    term.el: Use correct exit status in suggested dir-tracking functions
    
    * lisp/term.el: Make some of the examples better (bug#43055).

diff --git a/lisp/term.el b/lisp/term.el
index 3c65b63911..e77c2c1331 100644
--- a/lisp/term.el
+++ b/lisp/term.el
@@ -241,9 +241,9 @@
 ;;		printf '\033AnSiTu %s\n' "$USER"
 ;;		printf '\033AnSiTc %s\n' "$PWD"
 ;;
-;;		cd()    { command cd    "$@"; printf '\033AnSiTc %s\n' "$PWD"; }
-;;		pushd() { command pushd "$@"; printf '\033AnSiTc %s\n' "$PWD"; }
-;;		popd()  { command popd  "$@"; printf '\033AnSiTc %s\n' "$PWD"; }
+;;		cd()    { command cd    "$@" && printf '\033AnSiTc %s\n' "$PWD"; }
+;;		pushd() { command pushd "$@" && printf '\033AnSiTc %s\n' "$PWD"; }
+;;		popd()  { command popd  "$@" && printf '\033AnSiTc %s\n' "$PWD"; }
 ;;
 ;;		# Use custom dircolors in term buffers.
 ;;		# eval $(dircolors $HOME/.emacs_dircolors)

commit 6d84853de8d4644fcce571e099a5b3443b62bfd4
Author: Brian Leung <leungbk@mailfence.com>
Date:   Wed Aug 26 12:01:14 2020 +0200

    eshell: Remove unnecessary check in em-hist
    
    * lisp/eshell/em-hist.el
    (eshell-previous-matching-input-string-position): Both before and
    within the while loop, n is always smaller than n (bug#43056).
    
    Copyright-paperwork-exempt: yes

diff --git a/lisp/eshell/em-hist.el b/lisp/eshell/em-hist.el
index 267936583e..5cee1bad36 100644
--- a/lisp/eshell/em-hist.el
+++ b/lisp/eshell/em-hist.el
@@ -862,7 +862,7 @@ Moves relative to START, or `eshell-history-index'."
       (setq prev n
 	    n (mod (+ n motion) len))
       ;; If we haven't reached a match, step some more.
-      (while (and (< n len) (not tried-each-ring-item)
+      (while (and (not tried-each-ring-item)
 		  (not (string-match regexp (eshell-get-history n))))
 	(setq n (mod (+ n motion) len)
 	      ;; If we have gone all the way around in this search.

commit 99fe2a2643ce67f04a908ffd3fe07746860486f0
Author: Lars Ingebrigtsen <larsi@gnus.org>
Date:   Wed Aug 26 11:28:18 2020 +0200

    Remove side-effect-free markup for assoc-default
    
    * lisp/subr.el (assoc-default): assoc-default isn't
    side-effect-free, because it takes a :test parameter that can do
    anything (bug#37943).

diff --git a/lisp/subr.el b/lisp/subr.el
index 660367642a..08ff38ff8c 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -766,7 +766,6 @@ If that is non-nil, the element matches; then `assoc-default'
 
 If no element matches, the value is nil.
 If TEST is omitted or nil, `equal' is used."
-  (declare (side-effect-free t))
   (let (found (tail alist) value)
     (while (and tail (not found))
       (let ((elt (car tail)))

commit 1926fe6527ac5c3220dd736a2a1a9643f11d8220
Author: Mattias EngdegÃ¥rd <mattiase@acm.org>
Date:   Wed Aug 26 10:34:29 2020 +0200

    Fix lexical misunderstandings in gnus-icalendar-tests.el (bug#39782)
    
    * test/lisp/gnus/gnus-icalendar-tests.el:
    (icalendar-tests--get-ical-event): Remove unused function accidentally
    copy-pasted from icalendar-tests.el.
    (gnus-icalendar-parse, gnus-icalendary-byday):
    Remove unintended initial newlines.
    Duplicate comma-escaping backslashes so that they have intended
    effects, conforming to RFC 5545.
    Remove ineffective comma-escaping backslashes where not intended.

diff --git a/test/lisp/gnus/gnus-icalendar-tests.el b/test/lisp/gnus/gnus-icalendar-tests.el
index 48a9996e7a..be23c90af3 100644
--- a/test/lisp/gnus/gnus-icalendar-tests.el
+++ b/test/lisp/gnus/gnus-icalendar-tests.el
@@ -38,18 +38,10 @@
       (setq event (gnus-icalendar-event-from-buffer (buffer-name) participant)))
     event))
 
-(defun icalendar-tests--get-ical-event (ical-string)
-  "Return iCalendar event for ICAL-STRING."
-  (save-excursion
-    (with-temp-buffer
-      (insert ical-string)
-      (goto-char (point-min))
-      (car (icalendar--read-element nil nil)))))
-
 (ert-deftest gnus-icalendar-parse ()
   "test"
   (let ((tz (getenv "TZ"))
-        (event (gnus-icalendar-tests--get-ical-event "
+        (event (gnus-icalendar-tests--get-ical-event "\
 BEGIN:VCALENDAR
 PRODID:-//Google Inc//Google Calendar 70.9054//EN
 VERSION:2.0
@@ -83,7 +75,7 @@ UID:iipdt88slddpeu7hheuu09sfmd@google.com
 X-MICROSOFT-CDO-OWNERAPPTID:-362490173
 RECURRENCE-ID;TZID=America/New_York:20201208T091500
 CREATED:20200309T134939Z
-DESCRIPTION:In this meeting\, we will cover topics from product and enginee
+DESCRIPTION:In this meeting\\, we will cover topics from product and enginee
  ring presentations and demos to new hire announcements to watching the late
 LAST-MODIFIED:20200728T182852Z
 LOCATION:New York-22-Town Hall Space (250) [Chrome Box]
@@ -106,7 +98,7 @@ END:VCALENDAR
           (with-slots (organizer summary description location end-time uid rsvp participation-type) event
                       (should (string= organizer "liveintent.com_3bm6fh805bme9uoeliqcle1sag@group.calendar.google.com"))
                       (should (string= summary "Townhall | All Company Meeting"))
-                      (should (string= description "In this meeting\, we will cover topics from product and engineering presentations and demos to new hire announcements to watching the late"))
+                      (should (string= description "In this meeting, we will cover topics from product and engineering presentations and demos to new hire announcements to watching the late"))
                       (should (string= location "New York-22-Town Hall Space (250) [Chrome Box]"))
                       (should (string= (format-time-string "%Y-%m-%d %H:%M" end-time) "2020-12-08 16:00"))
                       (should (string= uid "iipdt88slddpeu7hheuu09sfmd@google.com"))
@@ -117,7 +109,7 @@ END:VCALENDAR
 (ert-deftest gnus-icalendary-byday ()
   ""
   (let ((tz (getenv "TZ"))
-        (event (gnus-icalendar-tests--get-ical-event "
+        (event (gnus-icalendar-tests--get-ical-event "\
 BEGIN:VCALENDAR
 PRODID:Zimbra-Calendar-Provider
 VERSION:2.0
@@ -142,7 +134,7 @@ END:VTIMEZONE
 BEGIN:VEVENT
 UID:903a5415-9067-4f63-b499-1b6205f49c88
 RRULE:FREQ=DAILY;UNTIL=20200825T035959Z;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR
-SUMMARY:appointment every weekday\, start jul 24\, 2020\, end aug 24\, 2020
+SUMMARY:appointment every weekday\\, start jul 24\\, 2020\\, end aug 24\\, 2020
 ATTENDEE;CN=Mark Hershberger;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP
  =TRUE:mailto:hexmode <at> gmail.com
 ORGANIZER;CN=Mark A. Hershberger:mailto:mah <at> nichework.com
@@ -175,7 +167,7 @@ END:VCALENDAR" (list "Mark Hershberger"))))
     (should (string= (gnus-icalendar-event:start event) "2020-07-24 15:00"))
     (with-slots (organizer summary description location end-time uid rsvp participation-type) event
       (should (string= organizer "mah <at> nichework.com"))
-      (should (string= summary "appointment every weekday\, start jul 24\, 2020\, end aug 24\, 2020"))
+      (should (string= summary "appointment every weekday, start jul 24, 2020, end aug 24, 2020"))
       (should (string= description "The following is a new meeting request:"))
       (should (null location))
       (should (string= (format-time-string "%Y-%m-%d %H:%M" end-time) "2020-07-24 15:30"))
