Creating a blog

~11787 words. ~58 minutes.

tags: meta programming emacs

Table of Contents

Introduction

I have been blogging by manually exporting my org-mode files into HTML with a custom CSS file and then SCP-ing the generated HTML file into my SDF personal page. While this works fine, The page doesn't have any SSL certificate, which just makes my website look bad. So I have recently decided to switch my blog over to Codeberg and utilize their pages facility.

The implementation

After some research, I've found out that Codeberg pages doesn't have any support for static site generators like Github pages does, But I am not deterred by this. I have devised a plan to use Codeberg effectively.

Firstly, I have created a private repository with all my articles on it (in org-mode format of course), I also have the scripts necessary to perform this on there, which are

  • An Emacs lisp script, and
  • A shell script

Emacs Lisp script

The Emacs lisp script actually exports the Emacs Org-files into a HTML directory.

I will go over each (interesting) part one by one.

Cleaning public

(message "Cleaning public/")
(shell-command "rm public/*")
(message "Done!")

This block just removes the old public directory, this is done to ensure that no files that were "removed" or "drafted" stay public.

Customizing HTML output

;; Customize the HTML output
(setq org-html-postamble t                    ; use org-html-export-format
      org-html-head-include-scripts nil       ; Use our own scripts
      org-html-head-include-default-style nil ; Use our own styles
      org-confirm-babel-evaluate nil          ; Don't ask permission for evaluating source blocks
      org-html-html5-fancy t
      org-html-htmlize-output-type 'css
      user-full-name "tusharhero"
      user-mail-address "tusharhero@sdf.org"
      org-html-with-latex 'verbatim
      )

I would say the most interesting part is the line where I disable prompt for asking permission before evaluating the babel source blocks, that is because, I am using emacs-lisp org-babel source blocks to generate text here and there, particularly I am using it right now to copy code from actual files during build time. I won't go over how exactly that is done, because I am still figuring it out.

Add setup.org to every page

;; add setup.org to every page
(add-hook 'org-export-before-processing-hook
          #'(lambda (backend)
              (insert "#+INCLUDE: \"../setup.org\"\n")))
;; done

I currently use this to add a tag list to each page.

#+HTML_HEAD: <meta name="darkreader-lock">
#+HTML_HEAD: <link rel="stylesheet" href="style.css">
#+HTML_HEAD: <link rel="alternate" type="application/rss+xml" href="rss.xml" title="RSS 2.0">
#+HTML_HEAD: <meta name="fediverse:creator" content="@tusharhero@mathstodon.xyz">

#+name: word-count
#+begin_src elisp :results raw :exports results
  (let* ((word-count (save-excursion (search-forward "#+title:" nil nil 2)
                                   (forward-line 3)
                                   (count-words (point) (point-max))))
         (reading-speed 200)
         (reading-time (/ word-count reading-speed)))
    (format "/~%s words. ~%d minutes./" word-count reading-time))
#+end_src

#+name: tagging
#+begin_src elisp :results html :exports results
  (defun p/get-tags ()
    "Get the tags in buffer."
    (save-excursion 
      (goto-char (point-min))
      (search-forward "#+tags:" nil nil 2)
      (string-split
       (string-trim (thing-at-point 'line t) ".*tags:\s*")
       ":")))

  (let ((tags (delete "special" (p/get-tags))))
    (if (not (= (length tags) 0))
        (format "<div class=\"tagbar\"><span><a href=\"tags.html\">tags:</a></span> %s</div>"
                (string-join (mapcar (lambda (tag) (format "<span><a href=\"tags.html#%s\">%s</a></span>" tag tag)) tags) " "))
      ""))
#+end_src
#+OPTIONS: toc:nil
#+TOC: headlines 5

I also have a listing of all pages according to their tags here.

Defining publishing project

;; Define the publishing project

Now, all of this is pretty standard, I think you can just guess what each part does, but the most interesting part is :html-home/up-format option, it allows to put the navigation bar in the general HTML, even though I could have done by defining a completely new element, but I decided that reusing old functionality is probably best here.

CSS minifier at home

As you can see in Styling, my CSS is a bit too large (by my standards). So I decided to minify it a bit… and this is what I wrote

(message "Starting the minification of CSS...")
(save-excursion
  (find-file "public/style.css")

  ;; Remove comments
  (replace-regexp-buffer
   (rx "/*"
       (zero-or-more (or (not (any "*")) (seq "*" (not (any "/")))))
       (one-or-more "*") "/")
   "")

  ;; Remove new lines
  (replace-regexp-buffer (rx "\n") "")

  ;; Replace multple spaces
  (replace-regexp-buffer  (rx (>= 2 "\s")) " ")

  ;; Remove some useless spaces
  (dolist (symbol (list ?{ ?} ?\; ?, ?> ?~ ?-))
    (replace-regexp-buffer (format "%s " symbol) (format "%s" symbol))
    (replace-regexp-buffer (format " %s" symbol) (format "%s" symbol)))
  (replace-regexp-buffer  (rx ": ") ":")

  (save-buffer))

Here is the definition of replace-regexp-buffer.

(defun replace-regexp-buffer (regexp to-string)

It is a very basic minifer it doesn't really do anything complicated but I have managed to save up to 2.4KB using it, which is pretty good.

Full script

Here is the script, (It's licensed under the GPLv3 Copyright @ tusharhero 2024, although most of it has been taken from this tutorial.)

;;; build-script.el --- Build Script for website  -*- lexical-binding: t; after-save-hook: (lambda nil (compile "./build.sh")); -*-
;;; Commentary:
;; Licensed under GPLv3 Copyright @ tusharhero 2024
;;; Code:

(message "Cleaning public/")
(shell-command "rm public/*")
(message "Done!")

(message "Getting dependencies, may take some time...")

;; Add melpa
(require 'package)
(setq package-user-dir (expand-file-name "./.packages"))

;; Initialize the package system
(package-initialize)
(unless package-archive-contents
  (package-refresh-contents))

;; Install dependencies
(dolist (package '(htmlize
                   webfeeder
                   dash))
  (unless (package-installed-p package)
    (package-install package)))

;; From https://github.com/alphapapa/unpackaged.el#export-to-html-with-useful-anchors

(require 'dash)

(define-minor-mode unpackaged/org-export-html-with-useful-ids-mode
  "Attempt to export Org as HTML with useful link IDs.
Instead of random IDs like \"#orga1b2c3\", use heading titles,
made unique when necessary."
  :global t
  (if unpackaged/org-export-html-with-useful-ids-mode
      (advice-add #'org-export-get-reference :override #'unpackaged/org-export-get-reference)
    (advice-remove #'org-export-get-reference #'unpackaged/org-export-get-reference)))

(defun unpackaged/org-export-get-reference (datum info)
  "Like `org-export-get-reference', except uses heading titles instead of random numbers."
  (let ((cache (plist-get info :internal-references)))
    (or (car (rassq datum cache))
        (let* ((crossrefs (plist-get info :crossrefs))
               (cells (org-export-search-cells datum))
               ;; Preserve any pre-existing association between
               ;; a search cell and a reference, i.e., when some
               ;; previously published document referenced a location
               ;; within current file (see
               ;; `org-publish-resolve-external-link').
               ;;
               ;; However, there is no guarantee that search cells are
               ;; unique, e.g., there might be duplicate custom ID or
               ;; two headings with the same title in the file.
               ;;
               ;; As a consequence, before re-using any reference to
               ;; an element or object, we check that it doesn't refer
               ;; to a previous element or object.
               (new (or (cl-some
                         (lambda (cell)
                           (let ((stored (cdr (assoc cell crossrefs))))
                             (when stored
                               (let ((old (org-export-format-reference stored)))
                                 (and (not (assoc old cache)) stored)))))
                         cells)
                        (when (org-element-property :raw-value datum)
                          ;; Heading with a title
                          (unpackaged/org-export-new-title-reference datum cache))
                        ;; NOTE: This probably breaks some Org Export
                        ;; feature, but if it does what I need, fine.
                        (org-export-format-reference
                         (org-export-new-reference cache))))
               (reference-string new))
          ;; Cache contains both data already associated to
          ;; a reference and in-use internal references, so as to make
          ;; unique references.
          (dolist (cell cells) (push (cons cell new) cache))
          ;; Retain a direct association between reference string and
          ;; DATUM since (1) not every object or element can be given
          ;; a search cell (2) it permits quick lookup.
          (push (cons reference-string datum) cache)
          (plist-put info :internal-references cache)
          reference-string))))

(defun unpackaged/org-export-new-title-reference (datum cache)
  "Return new reference for DATUM that is unique in CACHE."
  (cl-macrolet ((inc-suffixf (place)
                  `(progn
                     (string-match (rx bos
                                       (minimal-match (group (1+ anything)))
                                       (optional "--" (group (1+ digit)))
                                       eos)
                                   ,place)
                     ;; HACK: `s1' instead of a gensym.
                     (-let* (((s1 suffix) (list (match-string 1 ,place)
                                                (match-string 2 ,place)))
                             (suffix (if suffix
                                         (string-to-number suffix)
                                       0)))
                       (setf ,place (format "%s--%s" s1 (cl-incf suffix)))))))
    (let* ((title (org-element-property :raw-value datum))
           (ref (url-hexify-string (substring-no-properties title)))
           (parent (org-element-property :parent datum)))
      (while (--any (equal ref (car it))
                    cache)
        ;; Title not unique: make it so.
        (if parent
            ;; Append ancestor title.
            (setf title (concat (org-element-property :raw-value parent)
                                "--" title)
                  ref (url-hexify-string (substring-no-properties title))
                  parent (org-element-property :parent parent))
          ;; No more ancestors: add and increment a number.
          (inc-suffixf ref)))
      ref)))

(unpackaged/org-export-html-with-useful-ids-mode)

;; Load the publishing system
(require 'ox-publish)
(message "Done!")


(message "Setting customizations...")
;; Customize the HTML output
(setq org-html-postamble t                    ; use org-html-export-format
      org-html-head-include-scripts nil       ; Use our own scripts
      org-html-head-include-default-style nil ; Use our own styles
      org-confirm-babel-evaluate nil          ; Don't ask permission for evaluating source blocks
      org-html-html5-fancy t
      org-html-htmlize-output-type 'css
      user-full-name "tusharhero"
      user-mail-address "tusharhero@sdf.org"
      org-html-with-latex 'verbatim
      )

(setq org-html-postamble-format
      `(("en" ,(concat
                "<p class=\"author\">Author: %a"
                "<details>"
                ;; Email obfuscation.
                "<summary>email</summary>"
                "replace [at] with @, and put the domain for username, and vice versa: "
                (string-join
                 (reverse (string-split user-mail-address "@")) " [at] ")
                "</details>"
                "</p>
<p class=\"license\">
© tusharhero 2024-2026, check <a href=\"/licenses.html\">licenses page</a> for details.
</p>
<p class=\"date\">Date: %d</p>
<p class=\"creator\">%c</p>"))))


(setq org-html-home/up-format
      "<div class=\"navbar\" id=\"org-div-home-and-up\">
<a accesskey=\"H\" %s href=\"%s\">tusharhero's pages</a>
<span class=\"craftering\">
  <a class=\"arrow\" href=\"https://craftering.systemcrafters.net/@tusharhero/previous\">←</a>
  <a href=\"https://craftering.systemcrafters.net/\">craftering</a>
  <a class=\"arrow\" href=\"https://craftering.systemcrafters.net/@tusharhero/next\">→</a>
</span>
</div>"
      )

(setopt org-export-global-macros (list (cons "video"
                                             "
#+BEGIN_EXPORT html
<div class=\"video-title\">$2</div>
<video controls title=\"$2\">
<source src=\"$1\">
<a href=\"$1\">$2</a>
</video>
#+END_EXPORT
")
                                       (cons "screenshot"
                                             "
#+BEGIN_EXPORT html
<div class=\"screenshot-title\">$2</div>
<img title=\"$2\" src=\"$1\">
#+END_EXPORT
")))

;; add setup.org to every page
(add-hook 'org-export-before-processing-hook
          #'(lambda (backend)
              (insert "#+INCLUDE: \"../setup.org\"\n")))
;; done

;; Define the publishing project
(setq org-publish-project-alist
      (list
       (list "org-site:main"
             :recursive t
             :base-directory "./content"
             :publishing-function 'org-html-publish-to-html
             :publishing-directory "./public"
             :exclude-tags '("draft" "noexport")
             :exclude "draft*"
             :with-author  t
             :with-creator t
             :with-toc t
             :with-email t
             :html-link-home "/"
             :section-numbers nil
             :time-stamp-file nil)))

(message "Complete!")

(defun remove-org-element (string)
  "Delete the first element which contains STRING."
  (save-excursion
    (search-backward string nil t 2)
    (goto-char (match-beginning 0))
    (org-mark-element)
    (delete-region (region-beginning) (region-end))))

(defun replace-org-element (string new-string)
  "Replace the first element which contains STRING with NEW-STRING."
  (save-excursion
    (search-backward string nil t 2)
    (goto-char (match-beginning 0))
    (org-mark-element)
    (replace-region-contents (region-beginning) (region-end) new-string))
  nil)

(message "Actually building the files...")
(org-publish-all t)
(message "Complete!")

(message "Copying CSS file over to public directory...")
(copy-file "style.css" "public/style.css")
(message "Done!")

(message "Copying favicon file over to public directory...")
(copy-file "favicon.ico" "public/favicon.ico")
(message "Done!")

(message "Copying domains file over to public directory...")
(copy-file ".domains" "public/.domains" t)
(message "Done!")

(defun replace-regexp-buffer (regexp to-string)
  "Replace things macthing REGEXP with TO-STRING in all of the buffer."
  (goto-char (point-min))
  (while (re-search-forward regexp nil t)
    (replace-match to-string nil nil)))

(defmacro get-file-size (filename)
  "Get the size of FILENAME."
  (file-attribute-size (file-attributes filename)))

(message "Starting the minification of CSS...")
(save-excursion
  (find-file "public/style.css")

  ;; Remove comments
  (replace-regexp-buffer
   (rx "/*"
       (zero-or-more (or (not (any "*")) (seq "*" (not (any "/")))))
       (one-or-more "*") "/")
   "")

  ;; Remove new lines
  (replace-regexp-buffer (rx "\n") "")

  ;; Replace multple spaces
  (replace-regexp-buffer  (rx (>= 2 "\s")) " ")

  ;; Remove some useless spaces
  (dolist (symbol (list ?{ ?} ?\; ?, ?> ?~ ?-))
    (replace-regexp-buffer (format "%s " symbol) (format "%s" symbol))
    (replace-regexp-buffer (format " %s" symbol) (format "%s" symbol)))
  (replace-regexp-buffer  (rx ": ") ":")

  (save-buffer))

(message "Done, saved %s in the CSS!"
         (file-size-human-readable
          (- (get-file-size "style.css") (get-file-size "public/style.css"))))

;; Generate rss feed.
(org-babel-load-file (expand-file-name "tags.org" "content"))
(webfeeder-build
 "rss.xml"
 "./public"
 "https://tusharhero.codeberg.page/"
 (let ((filenames (directory-files "./public" t directory-files-no-dot-files-regexp)))
   (dolist (filename
            (append (mapcar (lambda (file) (expand-file-name file "public"))
                            (list ".git" "favicon.ico" "style.css" "style.css~" ".domains"))
                    (delq nil (mapcar (lambda (article)
                                        (when-let* ((tags (nth 2 article))
                                                    ((member "special" tags))
                                                    (filename (car article))
                                                    (webpage (expand-file-name
                                                              (file-name-with-extension
                                                               (file-name-nondirectory filename)
                                                               "html")
                                                              "public")))
                                          webpage))
                                      (p/tags-table)))))
     (setq filenames (delete filename filenames)))
   (mapcar (lambda (filename)
             (file-name-nondirectory filename))
           filenames))
 :title "tusharhero's pages"
 :description "Articles written by tusharhero (and some other stuff)!"
 :builder 'webfeeder-make-rss)

(webfeeder-build
 "emacs.xml"
 "./public"
 "https://tusharhero.codeberg.page/"
 (delq nil (mapcar (lambda (article)
                     (when-let* ((tags (nth 2 article))
                                 ((member "emacs" tags))
                                 (filename (car article))
                                 (webpage (file-name-with-extension
                                           (file-name-nondirectory filename)
                                           "html")))
                       webpage))
                   (p/tags-table)))
 :title "tusharhero's pages about Emacs"
 :description "Emacs related articles"
 :builder 'webfeeder-make-rss)

(provide 'build-site)
;;; build-site.el ends here

The shell script

But commit-pushing twice is a bit repetitive, and things that are repetitive should be scripted away. So here is the script, It's licensed under the GPLv3 Copyright @ tusharhero 2024

This script checks if there are any new changes in the remote (in this case my private repository containing the sources of all the articles in org format), if there are it runs the build.sh script after which it makes a commit in the pages repository and pushes it.

#!/bin/sh
git fetch
DIFFNUMBER=$(git diff origin/master | wc -l | sed -e 's/ .*//')
echo $DIFFNUMBER

if [ $DIFFNUMBER = 0 ]
then echo "Nope! Nothing on the remote!"
     exit
fi

echo "We seem to have new content!"
git pull

./build.sh

cd public
git add .
git commit -am "Automated Content Update"
git push

Web hook

I run this web hook script every time there is a push to my repository.

#!/bin/bash

http_response="HTTP/1.1 202 Accepted\nContent-Type: text/plain\nContent-Length: 4\r\n\nOkay"

while true;
do
    nc -l -p $WEBHOOK_PORT -c "echo \"$http_response\""
    ./buildauto.sh
done

Styling

For styling I have this custom CSS file, its not really anything super interesting so I won't bother explaining anything.

body {
    color: #232323;
    background-color: #fcffff;
    margin: auto;
    width: 60em; max-width: 98%;
}

.tagbar {
    color: #7a5f2f;
    padding: 0.2em;
}

pre,
code,
.status,
.tagbar,
.navbar,
hr {
    border-style: dashed;
    border-width: 0.1em;
    border-color: #b0b7c0;
    border-radius: 0.1em;    
}

:is(h1, h2, h3, h4, h5, h6, h7, h8, h9) {
    font-weight: bold;
}

h1 {
    color: #007a85;
}
h2 {
    color: #004fc0;
}
h3 {
    color: #00845f;
}
h4 {
    color: #7f5ae0;
}
h5 {
    color: #1f6fbf;
}
h6 {
    color: #4244ef;
}
h7 {
    color: #468400;
}
h8 {
    color: #aa44c5;
}
h9 {
    color: #3a6dd2;
}

::selection {
    background-color: #d4eaf3;
}

p.verse {
    font-size: 1em;
    font-style: italic;
    margin-bottom: 10px;
}

img,
video {
    overflow-x: scroll;
    scrollbar-width: none;
    max-width: 100%;
    height: auto;
    margin: 0.2em 0;
}

.video-title,
.screenshot-title {
    position: relative;
    overflow: auto;
    padding: 1pt;
    font-family: monospace;
    margin-left: 3%;
    font-size: 0.8em;
}

.navbar {
    border-color: #cceff5;
    border-top: 0;
    border-width: 0.12em;
    padding: 0.1em;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
}

a {
    color: #1f6fbf;
    text-decoration: none;
}

a:hover {
    color: #aa44c5;
    text-decoration: underline;
}

code {
    background: #eaefef;
}

/* Org-mode stuff (Copied and modified from org output)*/

#content { max-width: 60em; margin: auto; }
.title  { text-align: center;
          margin-bottom: .2em; }
.subtitle { text-align: center;
            font-size: medium;
            font-weight: bold;
            margin-top:0; }
.todo   { font-family: monospace; color: #f00; }
.done   { font-family: monospace; color: #008000; }
.priority { font-family: monospace; color: #ffa500; }
.tag    { background-color: #eee; font-family: monospace;
          padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.org-right  { margin-left: auto; margin-right: 0px;  text-align: right; }
.org-left   { margin-left: 0px;  margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; }
pre {
    padding: 8pt;
    font-family: monospace;
    overflow: auto;
    margin: 1.2em;
}
pre.src {
    position: relative;
    overflow: auto;
}
.org-src-container:before {
    position: relative;
    overflow: auto;
    padding: 1pt;
    font-family: monospace;
    margin-left: 3%;
    font-size: 0.8em;
    opacity: 50%;
}
/* Not really a language, but I added it anyway.*/
.org-src-container:has(pre.src-diff):before { content: 'diff'; }

/* Languages per Org manual */
.org-src-container:has(pre.src-asymptote):before { content: 'Asymptote'; }
.org-src-container:has(pre.src-awk):before { content: 'Awk'; }
.org-src-container:has(pre.src-authinfo)::before { content: 'Authinfo'; }
.org-src-container:has(pre.src-C):before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
.org-src-container:has(pre.src-clojure):before { content: 'Clojure'; }
.org-src-container:has(pre.src-css):before { content: 'CSS'; }
.org-src-container:has(pre.src-D):before { content: 'D'; }
.org-src-container:has(pre.src-ditaa):before { content: 'ditaa'; }
.org-src-container:has(pre.src-dot):before { content: 'Graphviz'; }
.org-src-container:has(pre.src-calc):before { content: 'Emacs Calc'; }
.org-src-container:has(pre.src-emacs-lisp):before { content: 'Emacs Lisp'; }
.org-src-container:has(pre.src-elisp):before { content: 'Emacs Lisp'; }
.org-src-container:has(pre.src-fortran):before { content: 'Fortran'; }
.org-src-container:has(pre.src-gnuplot):before { content: 'gnuplot'; }
.org-src-container:has(pre.src-haskell):before { content: 'Haskell'; }
.org-src-container:has(pre.src-hledger):before { content: 'hledger'; }
.org-src-container:has(pre.src-java):before { content: 'Java'; }
.org-src-container:has(pre.src-js):before { content: 'Javascript'; }
.org-src-container:has(pre.src-latex):before { content: 'LaTeX'; }
.org-src-container:has(pre.src-ledger):before { content: 'Ledger'; }
.org-src-container:has(pre.src-lisp):before { content: 'Lisp'; }
.org-src-container:has(pre.src-lilypond):before { content: 'Lilypond'; }
.org-src-container:has(pre.src-lua):before { content: 'Lua'; }
.org-src-container:has(pre.src-matlab):before { content: 'MATLAB'; }
.org-src-container:has(pre.src-mscgen):before { content: 'Mscgen'; }
.org-src-container:has(pre.src-ocaml):before { content: 'Objective Caml'; }
.org-src-container:has(pre.src-octave):before { content: 'Octave'; }
.org-src-container:has(pre.src-org):before { content: 'Org mode'; }
.org-src-container:has(pre.src-oz):before { content: 'OZ'; }
.org-src-container:has(pre.src-plantuml):before { content: 'Plantuml'; }
.org-src-container:has(pre.src-processing):before { content: 'Processing.js'; }
.org-src-container:has(pre.src-python):before { content: 'Python'; }
.org-src-container:has(pre.src-R):before { content: 'R'; }
.org-src-container:has(pre.src-ruby):before { content: 'Ruby'; }
.org-src-container:has(pre.src-sass):before { content: 'Sass'; }
.org-src-container:has(pre.src-scheme):before { content: 'Scheme'; }
.org-src-container:has(pre.src-screen):before { content: 'Gnu Screen'; }
.org-src-container:has(pre.src-sed):before { content: 'Sed'; }
.org-src-container:has(pre.src-sh):before { content: 'shell'; }
.org-src-container:has(pre.src-sql):before { content: 'SQL'; }
.org-src-container:has(pre.src-sqlite):before { content: 'SQLite'; }
/* additional languages in org.el's org-babel-load-languages alist */
.org-src-container:has(pre.src-forth):before { content: 'Forth'; }
.org-src-container:has(pre.src-io):before { content: 'IO'; }
.org-src-container:has(pre.src-J):before { content: 'J'; }
.org-src-container:has(pre.src-makefile):before { content: 'Makefile'; }
.org-src-container:has(pre.src-maxima):before { content: 'Maxima'; }
.org-src-container:has(pre.src-perl):before { content: 'Perl'; }
.org-src-container:has(pre.src-picolisp):before { content: 'Pico Lisp'; }
.org-src-container:has(pre.src-scala):before { content: 'Scala'; }
.org-src-container:has(pre.src-shell):before { content: 'Shell Script'; }
.org-src-container:has(pre.src-ebnf2ps):before { content: 'ebfn2ps'; }
/* additional language identifiers per "defun org-babel-execute"
       in ob-*.el */
.org-src-container:has(pre.src-cpp):before  { content: 'C++'; }
.org-src-container:has(pre.src-abc):before  { content: 'ABC'; }
.org-src-container:has(pre.src-coq):before  { content: 'Coq'; }
.org-src-container:has(pre.src-groovy):before  { content: 'Groovy'; }
/* additional language identifiers from org-babel-shell-names in
     ob-shell.el: ob-shell is the only babel language using a lambda to put
     the execution function name together. */
.org-src-container:has(pre.src-bash):before  { content: 'bash'; }
.org-src-container:has(pre.src-csh):before  { content: 'csh'; }
.org-src-container:has(pre.src-ash):before  { content: 'ash'; }
.org-src-container:has(pre.src-dash):before  { content: 'dash'; }
.org-src-container:has(pre.src-ksh):before  { content: 'ksh'; }
.org-src-container:has(pre.src-mksh):before  { content: 'mksh'; }
.org-src-container:has(pre.src-posh):before  { content: 'posh'; }
/* Additional Emacs modes also supported by the LaTeX listings package */
.org-src-container:has(pre.src-ada):before { content: 'Ada'; }
.org-src-container:has(pre.src-asm):before { content: 'Assembler'; }
.org-src-container:has(pre.src-caml):before { content: 'Caml'; }
.org-src-container:has(pre.src-delphi):before { content: 'Delphi'; }
.org-src-container:has(pre.src-html):before { content: 'HTML'; }
.org-src-container:has(pre.src-idl):before { content: 'IDL'; }
.org-src-container:has(pre.src-mercury):before { content: 'Mercury'; }
.org-src-container:has(pre.src-metapost):before { content: 'MetaPost'; }
.org-src-container:has(pre.src-modula-2):before { content: 'Modula-2'; }
.org-src-container:has(pre.src-pascal):before { content: 'Pascal'; }
.org-src-container:has(pre.src-ps):before { content: 'PostScript'; }
.org-src-container:has(pre.src-prolog):before { content: 'Prolog'; }
.org-src-container:has(pre.src-simula):before { content: 'Simula'; }
.org-src-container:has(pre.src-tcl):before { content: 'tcl'; }
.org-src-container:has(pre.src-tex):before { content: 'TeX'; }
.org-src-container:has(pre.src-plain-tex):before { content: 'Plain TeX'; }
.org-src-container:has(pre.src-verilog):before { content: 'Verilog'; }
.org-src-container:has(pre.src-vhdl):before { content: 'VHDL'; }
.org-src-container:has(pre.src-xml):before { content: 'XML'; }
.org-src-container:has(pre.src-nxml):before { content: 'XML'; }
/* add a generic configuration mode; LaTeX export needs an additional
     (add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
.org-src-container:has(pre.src-conf):before { content: 'Configuration File'; }
.org-src-container:has(pre.src-conf-toml):before { content: 'TOML Configuration File'; }

table { border-collapse:collapse; }
caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top;  }
th.org-right  { text-align: center;  }
th.org-left   { text-align: center;   }
th.org-center { text-align: center; }
td.org-right  { text-align: right;  }
td.org-left   { text-align: left;   }
td.org-center { text-align: center; }
dt { font-weight: bold; }
.footpara { display: inline; }
.footdef  { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
.equation-container {
    display: table;
    text-align: center;
    width: 100%;
}
.equation {
    vertical-align: middle;
}
.equation-label {
    display: table-cell;
    text-align: right;
    vertical-align: middle;
}
.inlinetask {
    padding: 10px;
    border: 2px outset #808080;
    margin: 10px;
    background: #ffffcc;
}
textarea { overflow-x: auto; }
.linenr { font-size: smaller }
.code-highlighted { background-color: #ffff00; }
.org-info-js_info-navigation { border-style: none; }
#org-info-js_console-label
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { }

/* I extracted these from `org-html-htmlize-generate-css' */

.org-abbrev-table-name {
    /* abbrev-table-name */
    color: #004fc0;
    font-weight: bold;
}
.org-ansi-color-black {
    /* ansi-color-black */
    color: #000000;
    background-color: #000000;
}
.org-ansi-color-blue {
    /* ansi-color-blue */
    color: #004fc0;
    background-color: #004fc0;
}
.org-ansi-color-bold {
    /* ansi-color-bold */
    font-weight: bold;
}
.org-ansi-color-bright-black {
    /* ansi-color-bright-black */
    color: #595959;
    background-color: #595959;
}
.org-ansi-color-bright-blue {
    /* ansi-color-bright-blue */
    color: #4244ef;
    background-color: #4244ef;
}
.org-ansi-color-bright-cyan {
    /* ansi-color-bright-cyan */
    color: #007a85;
    background-color: #007a85;
}
.org-ansi-color-bright-green {
    /* ansi-color-bright-green */
    color: #00845f;
    background-color: #00845f;
}
.org-ansi-color-bright-magenta {
    /* ansi-color-bright-magenta */
    color: #7f5ae0;
    background-color: #7f5ae0;
}
.org-ansi-color-bright-red {
    /* ansi-color-bright-red */
    color: #d03003;
    background-color: #d03003;
}
.org-ansi-color-bright-white {
    /* ansi-color-bright-white */
    color: #ffffff;
    background-color: #ffffff;
}
.org-ansi-color-bright-yellow {
    /* ansi-color-bright-yellow */
    color: #b6532f;
    background-color: #b6532f;
}
.org-ansi-color-cyan {
    /* ansi-color-cyan */
    color: #1f6fbf;
    background-color: #1f6fbf;
}
.org-ansi-color-faint {
}
.org-ansi-color-fast-blink {
}
.org-ansi-color-green {
    /* ansi-color-green */
    color: #008a00;
    background-color: #008a00;
}
.org-ansi-color-inverse {
}
.org-ansi-color-italic {
    /* ansi-color-italic */
    font-style: italic;
}
.org-ansi-color-magenta {
    /* ansi-color-magenta */
    color: #aa44c5;
    background-color: #aa44c5;
}
.org-ansi-color-red {
    /* ansi-color-red */
    color: #c42d2f;
    background-color: #c42d2f;
}
.org-ansi-color-slow-blink {
}
.org-ansi-color-underline {
    /* ansi-color-underline */
    text-decoration: underline;
}
.org-ansi-color-white {
    /* ansi-color-white */
    color: #a6a6a6;
    background-color: #a6a6a6;
}
.org-ansi-color-yellow {
    /* ansi-color-yellow */
    color: #aa6100;
    background-color: #aa6100;
}
.org-blink-matching-paren-offscreen {
    /* blink-matching-paren-offscreen */
    background-color: #cab0ef;
}
.org-bold {
    /* bold */
    font-weight: bold;
}
.org-bookmark {
    /* bookmark-face */
    color: #008a00;
}
.org-bookmark-menu-bookmark {
    /* bookmark-menu-bookmark */
    color: #3a6dd2;
}
.org-border {
}
.org-bracket {
    /* font-lock-bracket-face */
    color: #232323;
}
.org-breadcrumb {
    /* breadcrumb-face */
    color: #204f9a;
}
.org-breadcrumb-imenu-crumbs {
    /* breadcrumb-imenu-crumbs-face */
    color: #204f9a;
}
.org-breadcrumb-imenu-leaf {
    /* breadcrumb-imenu-leaf-face */
    color: #002580;
}
.org-breadcrumb-project-base {
    /* breadcrumb-project-base-face */
    color: #204f9a;
}
.org-breadcrumb-project-crumbs {
    /* breadcrumb-project-crumbs-face */
    color: #204f9a;
}
.org-breadcrumb-project-leaf {
}
.org-browse-url-button {
    /* browse-url-button */
    color: #1f6fbf;
    text-decoration: underline;
}
.org-buffer-menu-buffer {
    /* buffer-menu-buffer */
    color: #3a6dd2;
}
.org-bui-action-button {
    /* bui-action-button */
    color: #232323;
    background-color: #b5b8b8;
}
.org-bui-action-button-mouse {
    /* bui-action-button-mouse */
    color: #232323;
    background-color: #eab5ff;
}
.org-bui-file-name {
    /* bui-file-name */
    color: #1f6fbf;
    text-decoration: underline;
}
.org-bui-hint-key {
    /* bui-hint-key */
    color: #996c4f;
}
.org-bui-history-button {
    /* bui-history-button */
    color: #1f6fbf;
    text-decoration: underline;
}
.org-bui-info-heading {
    /* bui-info-heading */
    font-size: 120%;
    font-weight: bold;
}
.org-bui-info-param-title {
    /* bui-info-param-title */
    color: #7f5ae0;
}
.org-bui-time {
    /* bui-time */
    color: #065fff;
}
.org-bui-url {
    /* bui-url */
    color: #1f6fbf;
    text-decoration: underline;
}
.org-builtin {
    /* font-lock-builtin-face */
    color: #1f6fbf;
}
.org-button {
    /* button */
    color: #1f6fbf;
    text-decoration: underline;
}
.org-c-annotation {
    /* c-annotation-face */
    color: #065fff;
}
.org-calc-nonselected {
    /* calc-nonselected-face */
    color: #66657f;
    font-style: italic;
}
.org-calc-selected {
    /* calc-selected-face */
    font-weight: bold;
}
.org-calendar-month-header {
}
.org-calendar-today {
    /* calendar-today */
    color: #232323;
}
.org-calendar-weekday-header {
    /* calendar-weekday-header */
    color: #1f6fbf;
}
.org-calendar-weekend-header {
    /* calendar-weekend-header */
    color: #9a4366;
}
.org-change-log-acknowledgment {
    /* change-log-acknowledgment */
    color: #605f9f;
}
.org-change-log-conditionals {
    /* change-log-conditionals */
    color: #c42d2f;
}
.org-change-log-date {
    /* change-log-date */
    color: #007a85;
}
.org-change-log-email {
    /* change-log-email */
    color: #204f9a;
}
.org-change-log-file {
}
.org-change-log-function {
    /* change-log-function */
    color: #996c4f;
}
.org-change-log-list {
}
.org-change-log-name {
    /* change-log-name */
    color: #3a6dd2;
}
.org-child-frame-border {
    /* child-frame-border */
    background-color: #b0b7c0;
}
.org-comint-highlight-input {
}
.org-comint-highlight-prompt {
    /* comint-highlight-prompt */
    color: #1f6fbf;
}
.org-comment {
    /* font-lock-comment-face */
    color: #7a5f2f;
}
.org-comment-delimiter {
    /* font-lock-comment-delimiter-face */
    color: #7a5f2f;
}
.org-compilation-column-number {
    /* compilation-column-number */
    color: #66657f;
}
.org-compilation-error {
    /* compilation-error */
    color: #c42d2f;
}
.org-compilation-info {
    /* compilation-info */
    color: #008a00;
}
.org-compilation-line-number {
    /* compilation-line-number */
    color: #66657f;
}
.org-compilation-mode-line-exit {
}
.org-compilation-mode-line-fail {
    /* compilation-mode-line-fail */
    color: #7f0000;
}
.org-compilation-mode-line-run {
    /* compilation-mode-line-run */
    color: #5f0070;
}
.org-compilation-warning {
    /* compilation-warning */
    color: #996c4f;
}
.org-completion-preview {
    /* completion-preview */
    color: #66657f;
}
.org-completion-preview-common {
    /* completion-preview-common */
    color: #66657f;
    text-decoration: underline;
}
.org-completion-preview-highlight {
    /* completion-preview-highlight */
    color: #232323;
    background-color: #eab5ff;
}
.org-completions-annotations {
    /* completions-annotations */
    color: #605f9f;
}
.org-completions-common-part {
    /* completions-common-part */
    color: #4244ef;
    font-weight: bold;
}
.org-completions-first-difference {
    /* completions-first-difference */
    color: #00845f;
    font-weight: bold;
}
.org-completions-group-separator {
    /* completions-group-separator */
    color: #66657f;
    text-decoration: line-through;
}
.org-completions-group-title {
    /* completions-group-title */
    color: #66657f;
    font-style: italic;
}
.org-completions-highlight {
    /* completions-highlight */
    background-color: #cceff5;
    font-weight: bold;
}
.org-confusingly-reordered {
    /* confusingly-reordered */
    text-decoration: underline;
}
.org-constant {
    /* font-lock-constant-face */
    color: #065fff;
}
.org-consult-async-failed {
    /* consult-async-failed */
    color: #c42d2f;
}
.org-consult-async-finished {
    /* consult-async-finished */
    color: #008a00;
}
.org-consult-async-option {
    /* consult-async-option */
    color: #996c4f;
}
.org-consult-async-running {
    /* consult-async-running */
    color: #996c4f;
}
.org-consult-async-split {
    /* consult-async-split */
    color: #c42d2f;
}
.org-consult-bookmark {
    /* consult-bookmark */
    color: #065fff;
}
.org-consult-buffer {
}
.org-consult-file {
    /* consult-file */
    color: #008a00;
}
.org-consult-grep-context {
    /* consult-grep-context */
    color: #66657f;
}
.org-consult-help {
    /* consult-help */
    color: #66657f;
}
.org-consult-highlight-mark {
    /* consult-highlight-mark */
    color: #232323;
    background-color: #ffe9bf;
}
.org-consult-highlight-match {
    /* consult-highlight-match */
    color: #232323;
    background-color: #ffe9bf;
}
.org-consult-line-number {
    /* consult-line-number */
    color: #66657f;
}
.org-consult-line-number-prefix {
    /* consult-line-number-prefix */
    color: #66657f;
}
.org-consult-line-number-wrapped {
    /* consult-line-number-wrapped */
    color: #996c4f;
}
.org-consult-narrow-indicator {
    /* consult-narrow-indicator */
    color: #996c4f;
}
.org-consult-preview-insertion {
    /* consult-preview-insertion */
    background-color: #eaefef;
}
.org-consult-preview-line {
    /* consult-preview-line */
    background-color: #eaefef;
}
.org-consult-preview-match {
    /* consult-preview-match */
    color: #232323;
    background-color: #fac200;
}
.org-consult-separator {
    /* consult-separator */
    color: #ccc;
}
.org-css-property {
    /* css-property */
    color: #004fc0;
}
.org-css-selector {
    /* css-selector */
    color: #00845f;
}
.org-cursor {
    /* cursor */
    background-color: #0055bb;
}
.org-custom-button {
    /* custom-button */
    color: #232323;
    background-color: #b5b8b8;
}
.org-custom-button-mouse {
    /* custom-button-mouse */
    color: #232323;
    background-color: #eab5ff;
}
.org-custom-button-pressed {
    /* custom-button-pressed */
    color: #232323;
    background-color: #fcffff;
}
.org-custom-button-pressed-unraised {
    /* custom-button-pressed-unraised */
    color: #8b008b;
    text-decoration: underline;
}
.org-custom-button-unraised {
    /* custom-button-unraised */
    text-decoration: underline;
}
.org-custom-changed {
    /* custom-changed */
    background-color: #f4e8bd;
}
.org-custom-comment {
    /* custom-comment */
    color: #7a5f2f;
}
.org-custom-comment-tag {
    /* custom-comment-tag */
    color: #7a5f2f;
}
.org-custom-documentation {
}
.org-custom-face-tag {
    /* custom-face-tag */
    color: #7f5ae0;
}
.org-custom-group-subtitle {
    /* custom-group-subtitle */
    font-weight: bold;
}
.org-custom-group-tag {
    /* custom-group-tag */
    color: #1f6fbf;
}
.org-custom-group-tag-1 {
    /* custom-group-tag-1 */
    color: #065fff;
}
.org-custom-invalid {
    /* custom-invalid */
    color: #c42d2f;
    text-decoration: line-through;
}
.org-custom-link {
    /* custom-link */
    color: #1f6fbf;
    text-decoration: underline;
}
.org-custom-modified {
    /* custom-modified */
    background-color: #f4e8bd;
}
.org-custom-rogue {
    /* custom-rogue */
    color: #c42d2f;
    text-decoration: line-through;
}
.org-custom-saved {
    /* custom-saved */
    text-decoration: underline;
}
.org-custom-set {
    /* custom-set */
    color: #008a00;
}
.org-custom-state {
    /* custom-state */
    color: #996c4f;
}
.org-custom-themed {
    /* custom-themed */
    background-color: #f4e8bd;
}
.org-custom-variable-button {
    /* custom-variable-button */
    font-weight: bold;
    text-decoration: underline;
}
.org-custom-variable-obsolete {
    /* custom-variable-obsolete */
    color: #66657f;
}
.org-custom-variable-tag {
    /* custom-variable-tag */
    color: #3a6dd2;
}
.org-custom-visibility {
    /* custom-visibility */
    color: #1f6fbf;
    font-size: 80%;
    text-decoration: underline;
}
.org-default {
    /* default */
    color: #232323;
    background-color: #fcffff;
}
.org-delimiter {
    /* font-lock-delimiter-face */
    color: #232323;
}
.org-diary {
    /* diary */
    color: #007a85;
}
.org-diary-anniversary {
    /* diary-anniversary */
    color: #c0469a;
}
.org-diary-button {
}
.org-diary-time {
    /* diary-time */
    color: #007a85;
}
.org-diff-added {
    /* diff-added */
    color: #004840;
    background-color: #c9ffea;
}
.org-diff-changed {
    /* diff-changed */
    color: #553d00;
    background-color: #f4e8bd;
}
.org-diff-changed-unspecified {
    /* diff-changed-unspecified */
    color: #553d00;
    background-color: #f4e8bd;
}
.org-diff-context {
}
.org-diff-error {
    /* diff-error */
    color: #c42d2f;
}
.org-diff-file-header {
}
.org-diff-function {
    /* diff-function */
    background-color: #f7f9f9;
}
.org-diff-header {
}
.org-diff-hunk-header {
    /* diff-hunk-header */
    background-color: #f7f9f9;
}
.org-diff-index {
}
.org-diff-indicator-added {
    /* diff-indicator-added */
    color: #006700;
    background-color: #c9ffea;
}
.org-diff-indicator-changed {
    /* diff-indicator-changed */
    color: #655000;
    background-color: #f4e8bd;
}
.org-diff-indicator-removed {
    /* diff-indicator-removed */
    color: #aa2222;
    background-color: #ffd6e0;
}
.org-diff-nonexistent {
}
.org-diff-refine-added {
    /* diff-refine-added */
    color: #004840;
    background-color: #b3efdf;
}
.org-diff-refine-changed {
    /* diff-refine-changed */
    color: #553d00;
    background-color: #efd299;
}
.org-diff-refine-removed {
    /* diff-refine-removed */
    color: #8f1313;
    background-color: #f5bfc8;
}
.org-diff-removed {
    /* diff-removed */
    color: #8f1313;
    background-color: #ffd6e0;
}
.org-dired-broken-symlink {
    /* dired-broken-symlink */
    color: #c42d2f;
    text-decoration: underline;
}
.org-dired-directory {
    /* dired-directory */
    color: #4244ef;
}
.org-dired-flagged {
    /* dired-flagged */
    color: #c42d2f;
    background-color: #ffdfda;
    font-weight: bold;
}
.org-dired-header {
}
.org-dired-ignored {
    /* dired-ignored */
    color: #66657f;
}
.org-dired-mark {
}
.org-dired-marked {
    /* dired-marked */
    color: #008a00;
    background-color: #ccefcf;
    font-weight: bold;
}
.org-dired-perm-write {
    /* dired-perm-write */
    color: #66657f;
}
.org-dired-set-id {
    /* dired-set-id */
    color: #996c4f;
}
.org-dired-special {
    /* dired-special */
    color: #3a6dd2;
}
.org-dired-symlink {
    /* dired-symlink */
    color: #204f9a;
    text-decoration: underline;
}
.org-dired-warning {
    /* dired-warning */
    color: #996c4f;
}
.org-display-time-date-and-time {
}
.org-doc {
    /* font-lock-doc-face */
    color: #605f9f;
}
.org-doc-markup {
    /* font-lock-doc-markup-face */
    color: #605f9f;
}
.org-doc-view-svg {
    /* doc-view-svg-face */
    color: #000000;
    background-color: #ffffff;
}
.org-ecfpawXscratch-buffer-subtitle {
}
.org-ecfpawXscratch-buffer-title {
    /* ECFPAW/scratch-buffer-title */
    font-size: 200%;
    font-style: italic;
}
.org-edebug-disabled-breakpoint {
    /* edebug-disabled-breakpoint */
    background-color: #ddffdd;
}
.org-edebug-enabled-breakpoint {
    /* edebug-enabled-breakpoint */
    color: #232323;
    background-color: #eab5ff;
}
.org-ediff-current-diff-a {
    /* ediff-current-diff-A */
    color: #8f1313;
    background-color: #ffd6e0;
}
.org-ediff-current-diff-ancestor {
    /* ediff-current-diff-Ancestor */
    background-color: #d4eaf3;
}
.org-ediff-current-diff-b {
    /* ediff-current-diff-B */
    color: #004840;
    background-color: #c9ffea;
}
.org-ediff-current-diff-c {
    /* ediff-current-diff-C */
    color: #553d00;
    background-color: #f4e8bd;
}
.org-ediff-even-diff-a {
    /* ediff-even-diff-A */
    background-color: #eaefef;
}
.org-ediff-even-diff-ancestor {
    /* ediff-even-diff-Ancestor */
    background-color: #eaefef;
}
.org-ediff-even-diff-b {
    /* ediff-even-diff-B */
    background-color: #eaefef;
}
.org-ediff-even-diff-c {
    /* ediff-even-diff-C */
    background-color: #eaefef;
}
.org-ediff-fine-diff-a {
    /* ediff-fine-diff-A */
    color: #8f1313;
    background-color: #f5bfc8;
}
.org-ediff-fine-diff-ancestor {
    /* ediff-fine-diff-Ancestor */
    color: #232323;
    background-color: #b5b8b8;
}
.org-ediff-fine-diff-b {
    /* ediff-fine-diff-B */
    color: #004840;
    background-color: #b3efdf;
}
.org-ediff-fine-diff-c {
    /* ediff-fine-diff-C */
    color: #553d00;
    background-color: #efd299;
}
.org-ediff-odd-diff-a {
    /* ediff-odd-diff-A */
    background-color: #eaefef;
}
.org-ediff-odd-diff-ancestor {
    /* ediff-odd-diff-Ancestor */
    background-color: #eaefef;
}
.org-ediff-odd-diff-b {
    /* ediff-odd-diff-B */
    background-color: #eaefef;
}
.org-ediff-odd-diff-c {
    /* ediff-odd-diff-C */
    background-color: #eaefef;
}
.org-edit-indirect-edited-region {
    /* edit-indirect-edited-region */
    color: #232323;
    background-color: #aae0bf;
}
.org-edmacro-label {
    /* edmacro-label */
    color: #4244ef;
}
.org-eldoc-highlight-function-argument {
    /* eldoc-highlight-function-argument */
    color: #996c4f;
    background-color: #ffe9bf;
}
.org-elisp-shorthand-font-lock {
    /* elisp-shorthand-font-lock-face */
    color: #aa44c5;
}

.org-error {
    /* error */
    color: #c42d2f;
}
.org-ert-test-result-expected {
    /* ert-test-result-expected */
    color: #008a00;
    background-color: #ccefcf;
}
.org-ert-test-result-unexpected {
    /* ert-test-result-unexpected */
    color: #c42d2f;
    background-color: #ffdfda;
}
.org-escape {
    /* font-lock-escape-face */
    color: #aa44c5;
}
.org-escape-glyph {
    /* escape-glyph */
    color: #065fff;
}
.org-eww-form-checkbox {
    /* eww-form-checkbox */
    color: #232323;
    background-color: #eaefef;
}
.org-eww-form-file {
    /* eww-form-file */
    color: #232323;
    background-color: #b5b8b8;
}
.org-eww-form-select {
    /* eww-form-select */
    color: #232323;
    background-color: #b5b8b8;
}
.org-eww-form-submit {
    /* eww-form-submit */
    color: #232323;
    background-color: #b5b8b8;
}
.org-eww-form-text {
    /* eww-form-text */
    color: #232323;
    background-color: #eaefef;
    text-decoration: underline;
}
.org-eww-form-textarea {
    /* eww-form-textarea */
    color: #232323;
    background-color: #eaefef;
    text-decoration: underline;
}
.org-eww-invalid-certificate {
    /* eww-invalid-certificate */
    color: #c42d2f;
}
.org-eww-valid-certificate {
    /* eww-valid-certificate */
    color: #008a00;
}
.org-ffap {
    /* ffap */
    color: #232323;
    background-color: #eab5ff;
}
.org-file-name-shadow {
    /* file-name-shadow */
    color: #66657f;
}
.org-fill-column-indicator {
    /* fill-column-indicator */
    color: #b5b8b8;
    background-color: #b5b8b8;
}
.org-fixed-pitch {
}
.org-fixed-pitch-serif {
}
.org-flyspell-duplicate {
    /* flyspell-duplicate */
    text-decoration: underline;
}
.org-flyspell-incorrect {
    /* flyspell-incorrect */
    text-decoration: underline;
}
.org-fringe {
    /* fringe */
    color: #232323;
}
.org-function-call {
    /* font-lock-function-call-face */
    color: #517f3c;
}
.org-function-name {
    /* font-lock-function-name-face */
    color: #00845f;
}
.org-geiser-font-lock-autodoc-current-arg {
    /* geiser-font-lock-autodoc-current-arg */
    color: #996c4f;
    background-color: #ffe9bf;
}
.org-geiser-font-lock-autodoc-identifier {
    /* geiser-font-lock-autodoc-identifier */
    color: #605f9f;
}
.org-geiser-font-lock-doc-button {
    /* geiser-font-lock-doc-button */
    color: #1f6fbf;
    text-decoration: underline;
}
.org-geiser-font-lock-doc-link {
    /* geiser-font-lock-doc-link */
    color: #1f6fbf;
    text-decoration: underline;
}
.org-geiser-font-lock-doc-title {
    /* geiser-font-lock-doc-title */
    font-weight: bold;
}
.org-geiser-font-lock-error-link {
    /* geiser-font-lock-error-link */
    color: #c42d2f;
    text-decoration: underline;
}
.org-geiser-font-lock-image-button {
    /* geiser-font-lock-image-button */
    color: #008a00;
    text-decoration: underline;
}
.org-geiser-font-lock-repl-input {
}
.org-geiser-font-lock-repl-output {
    /* geiser-font-lock-repl-output */
    color: #004fc0;
}
.org-geiser-font-lock-repl-prompt {
    /* geiser-font-lock-repl-prompt */
    color: #1f6fbf;
}
.org-geiser-font-lock-xref-header {
}
.org-geiser-font-lock-xref-link {
    /* geiser-font-lock-xref-link */
    color: #1f6fbf;
    text-decoration: underline;
}
.org-git-commit-comment-action {
    /* git-commit-comment-action */
    color: #7a5f2f;
}
.org-git-commit-comment-branch-local {
    /* git-commit-comment-branch-local */
    color: #4244ef;
}
.org-git-commit-comment-branch-remote {
    /* git-commit-comment-branch-remote */
    color: #00845f;
}
.org-git-commit-comment-detached {
    /* git-commit-comment-detached */
    color: #4244ef;
}
.org-git-commit-comment-file {
    /* git-commit-comment-file */
    color: #c0469a;
}
.org-git-commit-keyword {
    /* git-commit-keyword */
    color: #004fc0;
}
.org-git-commit-nonempty-second-line {
    /* git-commit-nonempty-second-line */
    color: #c42d2f;
}
.org-git-commit-overlong-summary {
    /* git-commit-overlong-summary */
    color: #996c4f;
}
.org-git-commit-summary {
    /* git-commit-summary */
    color: #204f9a;
}
.org-git-commit-trailer-token {
    /* git-commit-trailer-token */
    color: #004fc0;
}
.org-git-commit-trailer-value {
    /* git-commit-trailer-value */
    color: #4244ef;
}
.org-glyphless-char {
    /* glyphless-char */
    font-size: 60%;
}
.org-grep-heading {
    /* grep-heading */
    color: #008a00;
}
.org-hbut {
    /* hbut-face */
    color: #232323;
    background-color: #b5b8b8;
}
.org-hbut-flash {
    /* hbut-flash */
    color: #232323;
    background-color: #ff8f88;
}
.org-hbut-item {
    /* hbut-item-face */
    color: #008a00;
}
.org-header-line {
    /* header-line */
    background-color: #eaefef;
}
.org-header-line-active {
    /* header-line-active */
    background-color: #eaefef;
}
.org-header-line-highlight {
    /* header-line-highlight */
    color: #232323;
    background-color: #eab5ff;
}
.org-header-line-inactive {
    /* header-line-inactive */
    color: #66657f;
    background-color: #eaefef;
}
.org-help-argument-name {
    /* help-argument-name */
    color: #3a6dd2;
}
.org-help-for-help-header {
    /* help-for-help-header */
    font-size: 126%;
}
.org-hi-aquamarine {
    /* hi-aquamarine */
    color: #232323;
    background-color: #88c8ff;
}
.org-hi-black-b {
    /* hi-black-b */
    color: #fcffff;
    background-color: #232323;
}
.org-hi-black-hb {
    /* hi-black-hb */
    color: #fcffff;
    background-color: #204f9a;
}
.org-hi-blue {
    /* hi-blue */
    color: #232323;
    background-color: #baeeff;
}
.org-hi-blue-b {
    /* hi-blue-b */
    color: #232323;
    background-color: #cbcfff;
}
.org-hi-green {
    /* hi-green */
    color: #232323;
    background-color: #b3f6d0;
}
.org-hi-green-b {
    /* hi-green-b */
    color: #232323;
    background-color: #8adf90;
}
.org-hi-pink {
    /* hi-pink */
    color: #232323;
    background-color: #df8fff;
}
.org-hi-red-b {
    /* hi-red-b */
    color: #232323;
    background-color: #ff8f88;
}
.org-hi-salmon {
    /* hi-salmon */
    color: #63192a;
    background-color: #f1c8b5;
}
.org-hi-yellow {
    /* hi-yellow */
    color: #232323;
    background-color: #fac200;
}
.org-highlight {
    /* highlight */
    color: #232323;
    background-color: #eab5ff;
}
.org-hl-line {
    /* hl-line */
    background-color: #dff6e4;
}
.org-holiday {
    /* holiday */
    color: #c0469a;
}
.org-homoglyph {
    /* homoglyph */
    color: #996c4f;
}
.org-ibut {
    /* ibut-face */
    color: #204f9a;
    text-decoration: underline;
}
.org-icomplete-first-match {
    /* icomplete-first-match */
    color: #4244ef;
    font-weight: bold;
}
.org-icomplete-section {
    /* icomplete-section */
    color: #66657f;
    font-style: italic;
}
.org-icomplete-selected-match {
    /* icomplete-selected-match */
    background-color: #cceff5;
    font-weight: bold;
}
.org-icomplete-vertical-selected-prefix-indicator {
    /* icomplete-vertical-selected-prefix-indicator-face */
    color: #065fff;
}
.org-icomplete-vertical-unselected-prefix-indicator {
    /* icomplete-vertical-unselected-prefix-indicator-face */
    color: #66657f;
}
.org-icon {
}
.org-icon-button {
    /* icon-button */
    color: #232323;
    background-color: #b5b8b8;
}
.org-info-header-node {
    /* info-header-node */
    color: #66657f;
}
.org-info-header-xref {
    /* info-header-xref */
    color: #1f6fbf;
}
.org-info-index-match {
    /* info-index-match */
    color: #232323;
    background-color: #ffe9bf;
}
.org-info-menu-header {
    /* info-menu-header */
    color: #4244ef;
    font-weight: bold;
}
.org-info-menu-star {
    /* info-menu-star */
    color: #c42d2f;
}
.org-info-node {
}
.org-info-quoted {
    /* Info-quoted */
    color: #c0469a;
}
.org-info-title-1 {
    /* info-title-1 */
    color: #004fc0;
    font-weight: bold;
}
.org-info-title-2 {
    /* info-title-2 */
    color: #00845f;
    font-weight: bold;
}
.org-info-title-3 {
    /* info-title-3 */
    color: #7f5ae0;
    font-weight: bold;
}
.org-info-title-4 {
    /* info-title-4 */
    color: #1f6fbf;
    font-weight: bold;
}
.org-info-xref {
    /* info-xref */
    color: #1f6fbf;
    text-decoration: underline;
}
.org-internal-border {
}
.org-isearch {
    /* isearch */
    color: #232323;
    background-color: #fac200;
}
.org-isearch-fail {
    /* isearch-fail */
    color: #c42d2f;
    background-color: #ffdfda;
}
.org-isearch-group-1 {
    /* isearch-group-1 */
    color: #232323;
    background-color: #df8fff;
}
.org-isearch-group-2 {
    /* isearch-group-2 */
    color: #232323;
    background-color: #8adf90;
}
.org-italic {
    /* italic */
    font-style: italic;
}
.org-keyword {
    /* font-lock-keyword-face */
    color: #004fc0;
}
.org-kmacro-menu-flagged {
    /* kmacro-menu-flagged */
    color: #c42d2f;
    background-color: #ffdfda;
    font-weight: bold;
}
.org-kmacro-menu-mark {
}
.org-kmacro-menu-marked {
    /* kmacro-menu-marked */
    color: #008a00;
    background-color: #ccefcf;
    font-weight: bold;
}
.org-lazy-highlight {
    /* lazy-highlight */
    color: #232323;
    background-color: #cbcfff;
}
.org-link {
    /* link */
    color: #1f6fbf;
    text-decoration: underline;
}
.org-link-visited {
    /* link-visited */
    color: #aa44c5;
    text-decoration: underline;
}
.org-llama-XX-macro {
    /* llama-\#\#-macro */
    color: #517f3c;
}
.org-llama-deleted-argument {
}
.org-llama-llama-macro {
    /* llama-llama-macro */
    color: #004fc0;
}
.org-llama-mandatory-argument {
    /* llama-mandatory-argument */
    color: #305f9f;
}
.org-llama-optional-argument {
    /* llama-optional-argument */
    color: #7f5ae0;
}
.org-log-edit-header {
}
.org-log-edit-headers-separator {
    /* log-edit-headers-separator */
    background-color: #b0b7c0;
}
.org-log-edit-summary {
    /* log-edit-summary */
    color: #204f9a;
}
.org-log-edit-unknown-header {
    /* log-edit-unknown-header */
    color: #66657f;
}
.org-log-view-commit-body {
}
.org-log-view-file {
}
.org-log-view-message {
    /* log-view-message */
    color: #605f9f;
}
.org-magit-bisect-bad {
    /* magit-bisect-bad */
    color: #c42d2f;
}
.org-magit-bisect-good {
    /* magit-bisect-good */
    color: #008a00;
}
.org-magit-bisect-skip {
    /* magit-bisect-skip */
    color: #996c4f;
}
.org-magit-blame-date {
}
.org-magit-blame-dimmed {
    /* magit-blame-dimmed */
    color: #66657f;
}
.org-magit-blame-hash {
}
.org-magit-blame-heading {
    /* magit-blame-heading */
    color: #232323;
    background-color: #b5b8b8;
}
.org-magit-blame-highlight {
    /* magit-blame-highlight */
    color: #232323;
    background-color: #b5b8b8;
}
.org-magit-blame-margin {
    /* magit-blame-margin */
    color: #232323;
    background-color: #b5b8b8;
}
.org-magit-blame-name {
}
.org-magit-blame-summary {
}
.org-magit-branch-current {
    /* magit-branch-current */
    color: #4244ef;
}
.org-magit-branch-local {
    /* magit-branch-local */
    color: #4244ef;
}
.org-magit-branch-remote {
    /* magit-branch-remote */
    color: #00845f;
}
.org-magit-branch-remote-head {
    /* magit-branch-remote-head */
    color: #00845f;
}
.org-magit-branch-upstream {
}
.org-magit-branch-warning {
    /* magit-branch-warning */
    color: #996c4f;
}
.org-magit-cherry-equivalent {
}
.org-magit-cherry-unmatched {
    /* magit-cherry-unmatched */
    color: #c42d2f;
}
.org-magit-diff-added {
    /* magit-diff-added */
    color: #004840;
    background-color: #d7fff5;
}
.org-magit-diff-added-highlight {
    /* magit-diff-added-highlight */
    color: #004840;
    background-color: #c9ffea;
}
.org-magit-diff-base {
    /* magit-diff-base */
    color: #553d00;
    background-color: #f9efcb;
}
.org-magit-diff-base-highlight {
    /* magit-diff-base-highlight */
    color: #553d00;
    background-color: #f4e8bd;
}
.org-magit-diff-conflict-heading {
    /* magit-diff-conflict-heading */
    background-color: #f7f9f9;
}
.org-magit-diff-conflict-heading-highlight {
    /* magit-diff-conflict-heading-highlight */
    background-color: #b5b8b8;
}
.org-magit-diff-context {
    /* magit-diff-context */
    color: #66657f;
}
.org-magit-diff-context-highlight {
    /* magit-diff-context-highlight */
    background-color: #eaefef;
}
.org-magit-diff-file-heading {
    /* magit-diff-file-heading */
    color: #4244ef;
}
.org-magit-diff-file-heading-highlight {
    /* magit-diff-file-heading-highlight */
    color: #4244ef;
    background-color: #d7dbdb;
}
.org-magit-diff-file-heading-selection {
    /* magit-diff-file-heading-selection */
    background-color: #aae0bf;
}
.org-magit-diff-hunk-heading {
    /* magit-diff-hunk-heading */
    background-color: #f7f9f9;
}
.org-magit-diff-hunk-heading-highlight {
    /* magit-diff-hunk-heading-highlight */
    background-color: #b5b8b8;
}
.org-magit-diff-hunk-heading-selection {
    /* magit-diff-hunk-heading-selection */
    background-color: #aae0bf;
}
.org-magit-diff-hunk-region {
}
.org-magit-diff-lines-boundary {
    /* magit-diff-lines-boundary */
    background-color: #232323;
}
.org-magit-diff-lines-heading {
    /* magit-diff-lines-heading */
    color: #fcffff;
    background-color: #66657f;
}
.org-magit-diff-our {
    /* magit-diff-our */
    color: #8f1313;
    background-color: #ffe9e6;
}
.org-magit-diff-our-highlight {
    /* magit-diff-our-highlight */
    color: #8f1313;
    background-color: #ffd6e0;
}
.org-magit-diff-removed {
    /* magit-diff-removed */
    color: #8f1313;
    background-color: #ffe9e6;
}
.org-magit-diff-removed-highlight {
    /* magit-diff-removed-highlight */
    color: #8f1313;
    background-color: #ffd6e0;
}
.org-magit-diff-revision-summary {
    /* magit-diff-revision-summary */
    background-color: #f7f9f9;
}
.org-magit-diff-revision-summary-highlight {
    /* magit-diff-revision-summary-highlight */
    background-color: #b5b8b8;
}
.org-magit-diff-their {
    /* magit-diff-their */
    color: #004840;
    background-color: #d7fff5;
}
.org-magit-diff-their-highlight {
    /* magit-diff-their-highlight */
    color: #004840;
    background-color: #c9ffea;
}
.org-magit-diff-whitespace-warning {
    /* magit-diff-whitespace-warning */
    background-color: #fac200;
}
.org-magit-diffstat-added {
    /* magit-diffstat-added */
    color: #006700;
}
.org-magit-diffstat-removed {
    /* magit-diffstat-removed */
    color: #aa2222;
}
.org-magit-dimmed {
    /* magit-dimmed */
    color: #66657f;
}
.org-magit-filename {
    /* magit-filename */
    color: #c0469a;
}
.org-magit-hash {
    /* magit-hash */
    color: #605f9f;
}
.org-magit-head {
    /* magit-head */
    color: #4244ef;
}
.org-magit-header-line {
}
.org-magit-header-line-log-select {
}
.org-magit-keyword {
    /* magit-keyword */
    color: #004fc0;
}
.org-magit-keyword-squash {
    /* magit-keyword-squash */
    color: #996c4f;
}
.org-magit-left-margin {
    /* magit-left-margin */
    color: #232323;
    background-color: #fcffff;
}
.org-magit-log-author {
    /* magit-log-author */
    color: #3a6dd2;
}
.org-magit-log-date {
    /* magit-log-date */
    color: #007a85;
}
.org-magit-log-graph {
    /* magit-log-graph */
    color: #66657f;
}
.org-magit-mode-line-process {
    /* magit-mode-line-process */
    color: #002580;
}
.org-magit-mode-line-process-error {
    /* magit-mode-line-process-error */
    color: #7f0000;
}
.org-magit-popup-argument {
    /* magit-popup-argument */
    color: #996c4f;
}
.org-magit-popup-disabled-argument {
    /* magit-popup-disabled-argument */
    color: #66657f;
}
.org-magit-popup-heading {
    /* magit-popup-heading */
    color: #004fc0;
}
.org-magit-popup-key {
    /* magit-popup-key */
    color: #1f6fbf;
}
.org-magit-popup-option-value {
    /* magit-popup-option-value */
    color: #4244ef;
}
.org-magit-process-ng {
    /* magit-process-ng */
    color: #c42d2f;
}
.org-magit-process-ok {
    /* magit-process-ok */
    color: #008a00;
}
.org-magit-reflog-amend {
    /* magit-reflog-amend */
    color: #996c4f;
}
.org-magit-reflog-checkout {
}
.org-magit-reflog-cherry-pick {
    /* magit-reflog-cherry-pick */
    color: #008a00;
}
.org-magit-reflog-commit {
}
.org-magit-reflog-merge {
    /* magit-reflog-merge */
    color: #008a00;
}
.org-magit-reflog-other {
    /* magit-reflog-other */
    color: #065fff;
}
.org-magit-reflog-rebase {
    /* magit-reflog-rebase */
    color: #c0469a;
}
.org-magit-reflog-remote {
    /* magit-reflog-remote */
    color: #00845f;
}
.org-magit-reflog-reset {
    /* magit-reflog-reset */
    color: #c42d2f;
}
.org-magit-refname {
    /* magit-refname */
    color: #66657f;
}
.org-magit-refname-pullreq {
    /* magit-refname-pullreq */
    color: #66657f;
}
.org-magit-refname-stash {
    /* magit-refname-stash */
    color: #66657f;
}
.org-magit-refname-wip {
    /* magit-refname-wip */
    color: #66657f;
}
.org-magit-section-child-count {
}
.org-magit-section-heading {
    /* magit-section-heading */
    color: #204f9a;
}
.org-magit-section-heading-selection {
    /* magit-section-heading-selection */
    background-color: #aae0bf;
}
.org-magit-section-highlight {
    /* magit-section-highlight */
    background-color: #d7dbdb;
}
.org-magit-section-secondary-heading {
}
.org-magit-sequence-done {
    /* magit-sequence-done */
    color: #008a00;
}
.org-magit-sequence-drop {
    /* magit-sequence-drop */
    color: #c42d2f;
}
.org-magit-sequence-exec {
}
.org-magit-sequence-head {
    /* magit-sequence-head */
    color: #4244ef;
}
.org-magit-sequence-onto {
    /* magit-sequence-onto */
    color: #66657f;
}
.org-magit-sequence-part {
    /* magit-sequence-part */
    color: #996c4f;
}
.org-magit-sequence-pick {
}
.org-magit-sequence-stop {
    /* magit-sequence-stop */
    color: #c42d2f;
}
.org-magit-signature-bad {
    /* magit-signature-bad */
    color: #c42d2f;
}
.org-magit-signature-error {
    /* magit-signature-error */
    color: #c42d2f;
}
.org-magit-signature-expired {
    /* magit-signature-expired */
    color: #996c4f;
}
.org-magit-signature-expired-key {
    /* magit-signature-expired-key */
    color: #996c4f;
}
.org-magit-signature-good {
    /* magit-signature-good */
    color: #008a00;
}
.org-magit-signature-revoked {
    /* magit-signature-revoked */
    color: #996c4f;
}
.org-magit-signature-untrusted {
    /* magit-signature-untrusted */
    color: #66657f;
}
.org-magit-tag {
    /* magit-tag */
    color: #065fff;
}
.org-makefile-makepp-perl {
    /* makefile-makepp-perl */
    background-color: #eaefef;
}
.org-makefile-shell {
    /* makefile-shell */
    color: #232323;
    background-color: #fcffff;
}
.org-makefile-space {
    /* makefile-space */
    background-color: #f7f9f9;
}
.org-makefile-targets {
    /* makefile-targets */
    color: #00845f;
}
.org-man-overstrike {
    /* Man-overstrike */
    color: #4244ef;
    font-weight: bold;
}
.org-man-reverse {
    /* Man-reverse */
    color: #232323;
    background-color: #eab5ff;
}
.org-man-underline {
    /* Man-underline */
    color: #00845f;
    text-decoration: underline;
}
.org-marginalia-archive {
    /* marginalia-archive */
    color: #4244ef;
}
.org-marginalia-char {
    /* marginalia-char */
    color: #c0469a;
}
.org-marginalia-date {
    /* marginalia-date */
    color: #007a85;
}
.org-marginalia-documentation {
    /* marginalia-documentation */
    color: #605f9f;
}
.org-marginalia-file-name {
    /* marginalia-file-name */
    color: #66657f;
}
.org-marginalia-file-owner {
    /* marginalia-file-owner */
    color: #66657f;
}
.org-marginalia-file-priv-dir {
    /* marginalia-file-priv-dir */
    color: #4244ef;
}
.org-marginalia-file-priv-exec {
    /* marginalia-file-priv-exec */
    color: #00845f;
}
.org-marginalia-file-priv-link {
    /* marginalia-file-priv-link */
    color: #1f6fbf;
}
.org-marginalia-file-priv-no {
    /* marginalia-file-priv-no */
    color: #66657f;
}
.org-marginalia-file-priv-other {
    /* marginalia-file-priv-other */
    color: #c0469a;
}
.org-marginalia-file-priv-rare {
    /* marginalia-file-priv-rare */
    color: #065fff;
}
.org-marginalia-file-priv-read {
    /* marginalia-file-priv-read */
    color: #232323;
}
.org-marginalia-file-priv-write {
    /* marginalia-file-priv-write */
    color: #4244ef;
}
.org-marginalia-function {
    /* marginalia-function */
    color: #00845f;
}
.org-marginalia-installed {
    /* marginalia-installed */
    color: #008a00;
}
.org-marginalia-lighter {
    /* marginalia-lighter */
    color: #66657f;
}
.org-marginalia-list {
    /* marginalia-list */
    color: #065fff;
}
.org-marginalia-mode {
    /* marginalia-mode */
    color: #065fff;
}
.org-marginalia-modified {
    /* marginalia-modified */
    color: #996c4f;
}
.org-marginalia-null {
    /* marginalia-null */
    color: #66657f;
}
.org-marginalia-number {
    /* marginalia-number */
    color: #065fff;
}
.org-marginalia-off {
    /* marginalia-off */
    color: #c42d2f;
}
.org-marginalia-on {
    /* marginalia-on */
    color: #008a00;
}
.org-marginalia-size {
    /* marginalia-size */
    color: #3a6dd2;
}
.org-marginalia-string {
    /* marginalia-string */
    color: #4244ef;
}
.org-marginalia-symbol {
    /* marginalia-symbol */
    color: #1f6fbf;
}
.org-marginalia-true {
}
.org-marginalia-type {
    /* marginalia-type */
    color: #7f5ae0;
}
.org-marginalia-value {
    /* marginalia-value */
    color: #66657f;
}
.org-marginalia-version {
    /* marginalia-version */
    color: #007a85;
}
.org-markdown-blockquote {
    /* markdown-blockquote-face */
    color: #605f9f;
}
.org-markdown-bold {
    /* markdown-bold-face */
    font-weight: bold;
}
.org-markdown-code {
    /* markdown-code-face */
    background-color: #eaefef;
}
.org-markdown-comment {
    /* markdown-comment-face */
    color: #7a5f2f;
}
.org-markdown-footnote-marker {
    /* markdown-footnote-marker-face */
    color: #66657f;
}
.org-markdown-footnote-text {
    /* markdown-footnote-text-face */
    color: #7a5f2f;
}
.org-markdown-gfm-checkbox {
    /* markdown-gfm-checkbox-face */
    color: #996c4f;
}
.org-markdown-header {
}
.org-markdown-header-delimiter {
    /* markdown-header-delimiter-face */
    color: #66657f;
}
.org-markdown-header-face-1 {
    /* markdown-header-face-1 */
    color: #004fc0;
    font-weight: bold;
}
.org-markdown-header-face-2 {
    /* markdown-header-face-2 */
    color: #00845f;
    font-weight: bold;
}
.org-markdown-header-face-3 {
    /* markdown-header-face-3 */
    color: #7f5ae0;
    font-weight: bold;
}
.org-markdown-header-face-4 {
    /* markdown-header-face-4 */
    color: #1f6fbf;
    font-weight: bold;
}
.org-markdown-header-face-5 {
    /* markdown-header-face-5 */
    color: #4244ef;
    font-weight: bold;
}
.org-markdown-header-face-6 {
    /* markdown-header-face-6 */
    color: #468400;
    font-weight: bold;
}
.org-markdown-header-rule {
    /* markdown-header-rule-face */
    color: #66657f;
}
.org-markdown-highlight {
    /* markdown-highlight-face */
    color: #232323;
    background-color: #eab5ff;
}
.org-markdown-highlighting {
    /* markdown-highlighting-face */
    color: #232323;
    background-color: #aae0bf;
}
.org-markdown-hr {
    /* markdown-hr-face */
    color: #66657f;
}
.org-markdown-html-attr-name {
    /* markdown-html-attr-name-face */
    color: #3a6dd2;
}
.org-markdown-html-attr-value {
    /* markdown-html-attr-value-face */
    color: #4244ef;
}
.org-markdown-html-entity {
    /* markdown-html-entity-face */
    color: #3a6dd2;
}
.org-markdown-html-tag-delimiter {
    /* markdown-html-tag-delimiter-face */
    color: #66657f;
}
.org-markdown-html-tag-name {
    /* markdown-html-tag-name-face */
    color: #7f5ae0;
}
.org-markdown-inline-code {
    /* markdown-inline-code-face */
    color: #007a85;
}
.org-markdown-italic {
    /* markdown-italic-face */
    font-style: italic;
}
.org-markdown-language-info {
    /* markdown-language-info-face */
    color: #4244ef;
}
.org-markdown-language-keyword {
    /* markdown-language-keyword-face */
    color: #66657f;
    background-color: #eaefef;
}
.org-markdown-line-break {
    /* markdown-line-break-face */
    color: #c42d2f;
    text-decoration: underline;
}
.org-markdown-link {
    /* markdown-link-face */
    color: #1f6fbf;
    text-decoration: underline;
}
.org-markdown-link-title {
    /* markdown-link-title-face */
    color: #7a5f2f;
}
.org-markdown-list {
    /* markdown-list-face */
    color: #66657f;
}
.org-markdown-markup {
    /* markdown-markup-face */
    color: #66657f;
}
.org-markdown-math {
    /* markdown-math-face */
    color: #4244ef;
}
.org-markdown-metadata-key {
}
.org-markdown-metadata-value {
    /* markdown-metadata-value-face */
    color: #4244ef;
}
.org-markdown-missing-link {
    /* markdown-missing-link-face */
    color: #996c4f;
}
.org-markdown-plain-url {
    /* markdown-plain-url-face */
    color: #1f6fbf;
    text-decoration: underline;
}
.org-markdown-pre {
    /* markdown-pre-face */
    background-color: #eaefef;
}
.org-markdown-reference {
    /* markdown-reference-face */
    color: #66657f;
}
.org-markdown-strike-through {
    /* markdown-strike-through-face */
    text-decoration: line-through;
}
.org-markdown-table {
    /* markdown-table-face */
    color: #204f9a;
}
.org-markdown-url {
    /* markdown-url-face */
    color: #204f9a;
}
.org-match {
    /* match */
    color: #232323;
    background-color: #ffe9bf;
}
.org-menu {
    /* menu */
    color: #232323;
    background-color: #b5b8b8;
}
.org-message-cited-text-1 {
    /* message-cited-text-1 */
    color: #004fc0;
}
.org-message-cited-text-2 {
    /* message-cited-text-2 */
    color: #007a85;
}
.org-message-cited-text-3 {
    /* message-cited-text-3 */
    color: #996c4f;
}
.org-message-cited-text-4 {
    /* message-cited-text-4 */
    color: #7f5ae0;
}
.org-message-header-cc {
    /* message-header-cc */
    color: #3a6dd2;
}
.org-message-header-name {
}
.org-message-header-newsgroups {
    /* message-header-newsgroups */
    color: #1f6fbf;
}
.org-message-header-other {
    /* message-header-other */
    color: #1f6fbf;
}
.org-message-header-subject {
    /* message-header-subject */
    color: #065fff;
}
.org-message-header-to {
    /* message-header-to */
    color: #3a6dd2;
}
.org-message-header-xheader {
    /* message-header-xheader */
    color: #1f6fbf;
}
.org-message-mml {
    /* message-mml */
    color: #1f6fbf;
}
.org-message-separator {
    /* message-separator */
    color: #232323;
    background-color: #f7f9f9;
}
.org-message-signature-separator {
    /* message-signature-separator */
    font-weight: bold;
}
.org-mh-folder-address {
    /* mh-folder-address */
    color: #00008b;
}
.org-mh-folder-allowlisted {
    /* mh-folder-allowlisted */
    color: #b8860b;
}
.org-mh-folder-blocklisted {
    /* mh-folder-blocklisted */
    color: #8b8989;
}
.org-mh-folder-body {
    /* mh-folder-body */
    color: #8b8989;
}
.org-mh-folder-cur-msg-number {
    /* mh-folder-cur-msg-number */
    color: #8b8989;
    font-weight: bold;
}
.org-mh-folder-date {
    /* mh-folder-date */
    color: #8b8989;
}
.org-mh-folder-deleted {
    /* mh-folder-deleted */
    color: #8b8989;
}
.org-mh-folder-followup {
    /* mh-folder-followup */
    color: #0000cd;
}
.org-mh-folder-msg-number {
    /* mh-folder-msg-number */
    color: #8b8989;
}
.org-mh-folder-refiled {
    /* mh-folder-refiled */
    color: #b8860b;
}
.org-mh-folder-sent-to-me-hint {
    /* mh-folder-sent-to-me-hint */
    color: #8b8989;
}
.org-mh-folder-sent-to-me-sender {
    /* mh-folder-sent-to-me-sender */
    color: #0000cd;
}
.org-mh-folder-subject {
    /* mh-folder-subject */
    color: #00008b;
}
.org-mh-folder-tick {
    /* mh-folder-tick */
    background-color: #dddf7e;
}
.org-mh-folder-to {
    /* mh-folder-to */
    color: #bc8f8f;
}
.org-mh-letter-header-field {
    /* mh-letter-header-field */
    background-color: #e5e5e5;
}
.org-mh-search-folder {
    /* mh-search-folder */
    color: #006400;
    font-weight: bold;
}
.org-mh-show-cc {
    /* mh-show-cc */
    color: #b8860b;
}
.org-mh-show-date {
    /* mh-show-date */
    color: #228b22;
}
.org-mh-show-from {
    /* mh-show-from */
    color: #cd0000;
}
.org-mh-show-header {
    /* mh-show-header */
    color: #bc8f8f;
}
.org-mh-show-pgg-bad {
    /* mh-show-pgg-bad */
    color: #ff1493;
    font-weight: bold;
}
.org-mh-show-pgg-good {
    /* mh-show-pgg-good */
    color: #32cd32;
    font-weight: bold;
}
.org-mh-show-pgg-unknown {
    /* mh-show-pgg-unknown */
    color: #eead0e;
    font-weight: bold;
}
.org-mh-show-signature {
    /* mh-show-signature */
    font-style: italic;
}
.org-mh-show-subject {
    /* mh-show-subject */
    color: #00008b;
}
.org-mh-show-to {
    /* mh-show-to */
    color: #8b4513;
}
.org-mh-speedbar-folder {
    /* mh-speedbar-folder */
    color: #00008b;
}
.org-mh-speedbar-folder-with-unseen-messages {
    /* mh-speedbar-folder-with-unseen-messages */
    color: #00008b;
    font-weight: bold;
}
.org-mh-speedbar-selected-folder {
    /* mh-speedbar-selected-folder */
    color: #ff0000;
    text-decoration: underline;
}
.org-mh-speedbar-selected-folder-with-unseen-messages {
    /* mh-speedbar-selected-folder-with-unseen-messages */
    color: #ff0000;
    font-weight: bold;
    text-decoration: underline;
}
.org-minibuffer-prompt {
    /* minibuffer-prompt */
    color: #1f6fbf;
}
.org-misc-punctuation {
    /* font-lock-misc-punctuation-face */
    color: #232323;
}
.org-mm-command-output {
    /* mm-command-output */
    color: #1f6fbf;
}
.org-mm-uu-extract {
    /* mm-uu-extract */
    color: #1f6fbf;
}
.org-mode-line {
    /* mode-line */
    color: #051524;
    background-color: #9ad0ff;
}
.org-mode-line-active {
    /* mode-line-active */
    color: #051524;
    background-color: #9ad0ff;
}
.org-mode-line-buffer-id {
    /* mode-line-buffer-id */
    font-weight: bold;
}
.org-mode-line-emphasis {
    /* mode-line-emphasis */
    color: #002580;
    font-style: italic;
}
.org-mode-line-highlight {
    /* mode-line-highlight */
    color: #232323;
    background-color: #eab5ff;
}
.org-mode-line-inactive {
    /* mode-line-inactive */
    color: #66657f;
    background-color: #d7dbdb;
}
.org-modus-themes-bold {
}
.org-modus-themes-button {
    /* modus-themes-button */
    color: #232323;
    background-color: #b5b8b8;
}
.org-modus-themes-completion-match-0 {
    /* modus-themes-completion-match-0 */
    color: #4244ef;
    font-weight: bold;
}
.org-modus-themes-completion-match-1 {
    /* modus-themes-completion-match-1 */
    color: #00845f;
    font-weight: bold;
}
.org-modus-themes-completion-match-2 {
    /* modus-themes-completion-match-2 */
    color: #c0469a;
    font-weight: bold;
}
.org-modus-themes-completion-match-3 {
    /* modus-themes-completion-match-3 */
    color: #065fff;
    font-weight: bold;
}
.org-modus-themes-completion-selected {
    /* modus-themes-completion-selected */
    background-color: #cceff5;
    font-weight: bold;
}
.org-modus-themes-fixed-pitch {
}
.org-modus-themes-heading-0 {
    /* modus-themes-heading-0 */
    color: #007a85;
    font-weight: bold;
}
.org-modus-themes-heading-1 {
    /* modus-themes-heading-1 */
    color: #004fc0;
    font-weight: bold;
}
.org-modus-themes-heading-2 {
    /* modus-themes-heading-2 */
    color: #00845f;
    font-weight: bold;
}
.org-modus-themes-heading-3 {
    /* modus-themes-heading-3 */
    color: #7f5ae0;
    font-weight: bold;
}
.org-modus-themes-heading-4 {
    /* modus-themes-heading-4 */
    color: #1f6fbf;
    font-weight: bold;
}
.org-modus-themes-heading-5 {
    /* modus-themes-heading-5 */
    color: #4244ef;
    font-weight: bold;
}
.org-modus-themes-heading-6 {
    /* modus-themes-heading-6 */
    color: #468400;
    font-weight: bold;
}
.org-modus-themes-heading-7 {
    /* modus-themes-heading-7 */
    color: #aa44c5;
    font-weight: bold;
}
.org-modus-themes-heading-8 {
    /* modus-themes-heading-8 */
    color: #3a6dd2;
    font-weight: bold;
}
.org-modus-themes-prompt {
    /* modus-themes-prompt */
    color: #1f6fbf;
}
.org-modus-themes-reset-soft {
    /* modus-themes-reset-soft */
    color: #232323;
    background-color: #fcffff;
}
.org-modus-themes-slant {
}
.org-modus-themes-ui-variable-pitch {
}
.org-mouse {
}
.org-mouse-drag-and-drop-region {
    /* mouse-drag-and-drop-region */
    background-color: #d4eaf3;
}
.org-negation-char {
    /* font-lock-negation-char-face */
    color: #c42d2f;
}
.org-next-error {
    /* next-error */
    color: #c42d2f;
    background-color: #ffdfda;
}
.org-next-error-message {
    /* next-error-message */
    color: #232323;
    background-color: #eab5ff;
}
.org-nobreak-hyphen {
    /* nobreak-hyphen */
    color: #c42d2f;
}
.org-nobreak-space {
    /* nobreak-space */
    color: #c42d2f;
    text-decoration: underline;
}
.org-number {
    /* font-lock-number-face */
    color: #232323;
}
.org-olivetti-fringe {
}
.org-operator {
    /* font-lock-operator-face */
    color: #232323;
}
.org-org-agenda-calendar-daterange {
    /* org-agenda-calendar-daterange */
    color: #204f9a;
}
.org-org-agenda-calendar-event {
    /* org-agenda-calendar-event */
    color: #204f9a;
}
.org-org-agenda-calendar-sexp {
    /* org-agenda-calendar-sexp */
    color: #204f9a;
}
.org-org-agenda-clocking {
    /* org-agenda-clocking */
    color: #996c4f;
    background-color: #ffe9bf;
}
.org-org-agenda-column-dateline {
    /* org-agenda-column-dateline */
    background-color: #f7f9f9;
}
.org-org-agenda-current-time {
    /* org-agenda-current-time */
    color: #232323;
}
.org-org-agenda-date {
    /* org-agenda-date */
    color: #1f6fbf;
    font-weight: bold;
}
.org-org-agenda-date-today {
    /* org-agenda-date-today */
    color: #1f6fbf;
    font-weight: bold;
    text-decoration: underline;
}
.org-org-agenda-date-weekend {
    /* org-agenda-date-weekend */
    color: #9a4366;
    font-weight: bold;
}
.org-org-agenda-date-weekend-today {
    /* org-agenda-date-weekend-today */
    color: #9a4366;
    font-weight: bold;
    text-decoration: underline;
}
.org-org-agenda-diary {
    /* org-agenda-diary */
    color: #204f9a;
}
.org-org-agenda-dimmed-todo {
    /* org-agenda-dimmed-todo-face */
    color: #66657f;
}
.org-org-agenda-done {
    /* org-agenda-done */
    color: #008a00;
}
.org-org-agenda-filter-category {
    /* org-agenda-filter-category */
    color: #7f0000;
}
.org-org-agenda-filter-effort {
    /* org-agenda-filter-effort */
    color: #7f0000;
}
.org-org-agenda-filter-regexp {
    /* org-agenda-filter-regexp */
    color: #7f0000;
}
.org-org-agenda-filter-tags {
    /* org-agenda-filter-tags */
    color: #7f0000;
}
.org-org-agenda-restriction-lock {
    /* org-agenda-restriction-lock */
    color: #66657f;
    background-color: #eaefef;
}
.org-org-agenda-structure {
    /* org-agenda-structure */
    color: #204f9a;
    font-weight: bold;
}
.org-org-agenda-structure-filter {
    /* org-agenda-structure-filter */
    color: #996c4f;
    font-weight: bold;
}
.org-org-agenda-structure-secondary {
    /* org-agenda-structure-secondary */
    color: #605f9f;
}
.org-org-archived {
    /* org-archived */
    color: #232323;
    background-color: #f7f9f9;
}
.org-org-block {
    /* org-block */
    background-color: #eaefef;
}
.org-org-block-begin-line {
    /* org-block-begin-line */
    color: #66657f;
    background-color: #eaefef;
}
.org-org-block-end-line {
    /* org-block-end-line */
    color: #66657f;
    background-color: #eaefef;
}
.org-org-checkbox {
    /* org-checkbox */
    color: #996c4f;
}
.org-org-checkbox-statistics-done {
    /* org-checkbox-statistics-done */
    color: #008a00;
}
.org-org-checkbox-statistics-todo {
    /* org-checkbox-statistics-todo */
    color: #c42d2f;
}
.org-org-cite {
    /* org-cite */
    color: #1f6fbf;
    text-decoration: underline;
}
.org-org-cite-key {
    /* org-cite-key */
    color: #1f6fbf;
    text-decoration: underline;
}
.org-org-clock-overlay {
    /* org-clock-overlay */
    color: #232323;
    background-color: #aae0bf;
}
.org-org-code {
    /* org-code */
    color: #007a85;
}
.org-org-column {
    /* org-column */
    color: #232323;
    background-color: #eaefef;
}
.org-org-date {
    /* org-date */
    color: #007a85;
}
.org-org-date-selected {
    /* org-date-selected */
    color: #007a85;
}
.org-org-default {
    /* org-default */
    color: #232323;
    background-color: #fcffff;
}
.org-org-dispatcher-highlight {
    /* org-dispatcher-highlight */
    color: #008a00;
    background-color: #ccefcf;
    font-weight: bold;
}
.org-org-document-info {
    /* org-document-info */
    color: #204f9a;
}
.org-org-document-info-keyword {
    /* org-document-info-keyword */
    color: #66657f;
}
.org-org-document-title {
    /* org-document-title */
    color: #007a85;
    font-weight: bold;
}
.org-org-done {
    /* org-done */
    color: #008a00;
}
.org-org-drawer {
    /* org-drawer */
    color: #66657f;
}
.org-org-ellipsis {
}
.org-org-footnote {
    /* org-footnote */
    color: #1f6fbf;
    text-decoration: underline;
}
.org-org-formula {
    /* org-formula */
    color: #996c4f;
}
.org-org-habit-alert {
    /* org-habit-alert-face */
    background-color: #ffcf00;
}
.org-org-habit-alert-future {
    /* org-habit-alert-future-face */
    background-color: #f9ff00;
}
.org-org-habit-clear {
    /* org-habit-clear-face */
    background-color: #7f90ff;
}
.org-org-habit-clear-future {
    /* org-habit-clear-future-face */
    background-color: #a6c0ff;
}
.org-org-habit-overdue {
    /* org-habit-overdue-face */
    background-color: #ef7969;
}
.org-org-habit-overdue-future {
    /* org-habit-overdue-future-face */
    background-color: #ffaab4;
}
.org-org-habit-ready {
    /* org-habit-ready-face */
    background-color: #45c050;
}
.org-org-habit-ready-future {
    /* org-habit-ready-future-face */
    background-color: #75ef30;
}
.org-org-headline-done {
    /* org-headline-done */
    color: #008a00;
}
.org-org-headline-todo {
    /* org-headline-todo */
    color: #c42d2f;
}
.org-org-hide {
    /* org-hide */
    color: #fcffff;
}
.org-org-imminent-deadline {
    /* org-imminent-deadline */
    color: #c42d2f;
}
.org-org-indent {
    /* org-indent */
    color: #fcffff;
}
.org-org-inline-src-block {
    /* org-inline-src-block */
    background-color: #eaefef;
}
.org-org-latex-and-related {
    /* org-latex-and-related */
    color: #7f5ae0;
}
.org-org-level-1 {
    /* org-level-1 */
    color: #004fc0;
    font-weight: bold;
}
.org-org-level-2 {
    /* org-level-2 */
    color: #00845f;
    font-weight: bold;
}
.org-org-level-3 {
    /* org-level-3 */
    color: #7f5ae0;
    font-weight: bold;
}
.org-org-level-4 {
    /* org-level-4 */
    color: #1f6fbf;
    font-weight: bold;
}
.org-org-level-5 {
    /* org-level-5 */
    color: #4244ef;
    font-weight: bold;
}
.org-org-level-6 {
    /* org-level-6 */
    color: #468400;
    font-weight: bold;
}
.org-org-level-7 {
    /* org-level-7 */
    color: #aa44c5;
    font-weight: bold;
}
.org-org-level-8 {
    /* org-level-8 */
    color: #3a6dd2;
    font-weight: bold;
}
.org-org-link {
    /* org-link */
    color: #1f6fbf;
    text-decoration: underline;
}
.org-org-list-dt {
    /* org-list-dt */
    color: #204f9a;
}
.org-org-macro {
    /* org-macro */
    color: #7f5ae0;
}
.org-org-meta-line {
    /* org-meta-line */
    color: #66657f;
}
.org-org-mode-line-clock {
}
.org-org-mode-line-clock-overrun {
    /* org-mode-line-clock-overrun */
    color: #7f0000;
}
.org-org-priority {
    /* org-priority */
    color: #7a5f2f;
}
.org-org-property-value {
    /* org-property-value */
    color: #204f9a;
}
.org-org-quote {
    /* org-quote */
    background-color: #eaefef;
}
.org-org-scheduled {
    /* org-scheduled */
    color: #7a5f2f;
}
.org-org-scheduled-today {
    /* org-scheduled-today */
    color: #996c4f;
}
.org-org-sexp-date {
    /* org-sexp-date */
    color: #007a85;
}
.org-org-special-keyword {
    /* org-special-keyword */
    color: #66657f;
}
.org-org-table {
    /* org-table */
    color: #204f9a;
}
.org-org-table-row {
    /* org-table-row */
    color: #204f9a;
}
.org-org-tag {
    /* org-tag */
    color: #7a5f2f;
}
.org-org-tag-group {
    /* org-tag-group */
    color: #7a5f2f;
}
.org-org-target {
    /* org-target */
    text-decoration: underline;
}
.org-org-time-grid {
    /* org-time-grid */
    color: #66657f;
}
.org-org-todo {
    /* org-todo */
    color: #c42d2f;
}
.org-org-upcoming-deadline {
    /* org-upcoming-deadline */
    color: #9a4366;
}
.org-org-upcoming-distant-deadline {
    /* org-upcoming-distant-deadline */
    color: #232323;
}
.org-org-verbatim {
    /* org-verbatim */
    color: #c0469a;
}
.org-org-verse {
    /* org-verse */
    background-color: #eaefef;
}
.org-org-warning {
    /* org-warning */
    color: #996c4f;
}
.org-outline-1 {
    /* outline-1 */
    color: #004fc0;
    font-weight: bold;
}
.org-outline-2 {
    /* outline-2 */
    color: #00845f;
    font-weight: bold;
}
.org-outline-3 {
    /* outline-3 */
    color: #7f5ae0;
    font-weight: bold;
}
.org-outline-4 {
    /* outline-4 */
    color: #1f6fbf;
    font-weight: bold;
}
.org-outline-5 {
    /* outline-5 */
    color: #4244ef;
    font-weight: bold;
}
.org-outline-6 {
    /* outline-6 */
    color: #468400;
    font-weight: bold;
}
.org-outline-7 {
    /* outline-7 */
    color: #aa44c5;
    font-weight: bold;
}
.org-outline-8 {
    /* outline-8 */
    color: #3a6dd2;
    font-weight: bold;
}
.org-preprocessor {
    /* font-lock-preprocessor-face */
    color: #aa44c5;
}
.org-property-name {
    /* font-lock-property-name-face */
    color: #1f6fbf;
}
.org-property-use {
    /* font-lock-property-use-face */
    color: #1f6fbf;
}
.org-pulse-highlight {
    /* pulse-highlight-face */
    background-color: #1640b0;
}
.org-pulse-highlight-start {
    /* pulse-highlight-start-face */
    background-color: #cbcfff;
}
.org-punctuation {
    /* font-lock-punctuation-face */
    color: #232323;
}
.org-query-replace {
    /* query-replace */
    color: #232323;
    background-color: #ff8f88;
}
.org-rainbow-delimiters-base {
    /* rainbow-delimiters-base-face */
    color: #232323;
}
.org-rainbow-delimiters-base-error {
    /* rainbow-delimiters-base-error-face */
    color: #c42d2f;
    background-color: #ffdfda;
}
.org-rainbow-delimiters-depth-1 {
    /* rainbow-delimiters-depth-1-face */
    color: #007a85;
}
.org-rainbow-delimiters-depth-2 {
    /* rainbow-delimiters-depth-2-face */
    color: #004fc0;
}
.org-rainbow-delimiters-depth-3 {
    /* rainbow-delimiters-depth-3-face */
    color: #00845f;
}
.org-rainbow-delimiters-depth-4 {
    /* rainbow-delimiters-depth-4-face */
    color: #7f5ae0;
}
.org-rainbow-delimiters-depth-5 {
    /* rainbow-delimiters-depth-5-face */
    color: #1f6fbf;
}
.org-rainbow-delimiters-depth-6 {
    /* rainbow-delimiters-depth-6-face */
    color: #4244ef;
}
.org-rainbow-delimiters-depth-7 {
    /* rainbow-delimiters-depth-7-face */
    color: #468400;
}
.org-rainbow-delimiters-depth-8 {
    /* rainbow-delimiters-depth-8-face */
    color: #aa44c5;
}
.org-rainbow-delimiters-depth-9 {
    /* rainbow-delimiters-depth-9-face */
    color: #3a6dd2;
}
.org-rainbow-delimiters-mismatched {
    /* rainbow-delimiters-mismatched-face */
    color: #996c4f;
    background-color: #ffe9bf;
}
.org-rainbow-delimiters-unmatched {
    /* rainbow-delimiters-unmatched-face */
    color: #c42d2f;
    background-color: #ffdfda;
}
.org-read-multiple-choice {
    /* read-multiple-choice-face */
    color: #008a00;
    background-color: #ccefcf;
    font-weight: bold;
}
.org-rectangle-preview {
    /* rectangle-preview */
    color: #232323;
    background-color: #b5b8b8;
}
.org-regexp {
    /* font-lock-regexp-face */
    color: #4244ef;
}
.org-regexp-grouping-backslash {
    /* font-lock-regexp-grouping-backslash */
    color: #aa44c5;
}
.org-regexp-grouping-construct {
    /* font-lock-regexp-grouping-construct */
    color: #cf2f4f;
}
.org-region {
    /* region */
    background-color: #d4eaf3;
}
.org-rmail-header-name {
    /* rmail-header-name */
    font-weight: bold;
}
.org-rmail-highlight {
    /* rmail-highlight */
    color: #1f6fbf;
    font-weight: bold;
}
.org-scroll-bar {
    /* scroll-bar */
    color: #b0b7c0;
}
.org-secondary-selection {
    /* secondary-selection */
    color: #232323;
    background-color: #aae0bf;
}
.org-separator-line {
    /* separator-line */
    text-decoration: underline;
}
.org-sgml-namespace {
    /* sgml-namespace */
    color: #1f6fbf;
}
.org-sh-escaped-newline {
    /* sh-escaped-newline */
    color: #4244ef;
}
.org-sh-heredoc {
    /* sh-heredoc */
    color: #4244ef;
}
.org-sh-quoted-exec {
    /* sh-quoted-exec */
    color: #1f6fbf;
}
.org-shadow {
    /* shadow */
    color: #66657f;
}
.org-shell-highlight-undef-alias {
    /* shell-highlight-undef-alias-face */
    color: #3a6dd2;
}
.org-shell-highlight-undef-defined {
    /* shell-highlight-undef-defined-face */
    color: #00845f;
}
.org-shell-highlight-undef-undefined {
    /* shell-highlight-undef-undefined-face */
    color: #996c4f;
}
.org-shortdoc-heading {
    /* shortdoc-heading */
    color: #004fc0;
    font-weight: bold;
}
.org-shortdoc-section {
}
.org-show-paren-match {
    /* show-paren-match */
    color: #232323;
    background-color: #cab0ef;
}
.org-show-paren-match-expression {
    /* show-paren-match-expression */
    background-color: #efd3f5;
}
.org-show-paren-mismatch {
    /* show-paren-mismatch */
    color: #c42d2f;
    background-color: #ffdfda;
}
.org-shr-abbreviation {
    /* shr-abbreviation */
    text-decoration: underline;
}
.org-shr-code {
    /* shr-code */
    color: #c0469a;
}
.org-shr-h1 {
    /* shr-h1 */
    color: #004fc0;
    font-weight: bold;
}
.org-shr-h2 {
    /* shr-h2 */
    color: #00845f;
    font-weight: bold;
}
.org-shr-h3 {
    /* shr-h3 */
    color: #7f5ae0;
    font-weight: bold;
}
.org-shr-h4 {
    /* shr-h4 */
    color: #1f6fbf;
    font-weight: bold;
}
.org-shr-h5 {
    /* shr-h5 */
    color: #4244ef;
    font-weight: bold;
}
.org-shr-h6 {
    /* shr-h6 */
    color: #468400;
    font-weight: bold;
}
.org-shr-link {
    /* shr-link */
    color: #1f6fbf;
    text-decoration: underline;
}
.org-shr-mark {
    /* shr-mark */
    color: #232323;
    background-color: #ffe9bf;
}
.org-shr-selected-link {
    /* shr-selected-link */
    color: #008a00;
    background-color: #ccefcf;
    font-weight: bold;
}
.org-shr-sliced-image {
}
.org-shr-strike-through {
    /* shr-strike-through */
    text-decoration: line-through;
}
.org-shr-sup {
    /* shr-sup */
    font-size: 80%;
}
.org-shr-text {
    /* shr-text */
    font-size: 110%;
}
.org-string {
    /* font-lock-string-face */
    color: #4244ef;
}
.org-success {
    /* success */
    color: #008a00;
}
.org-tab-bar {
    /* tab-bar */
    background-color: #d7dbdb;
}
.org-tab-bar-tab {
    /* tab-bar-tab */
    background-color: #fcffff;
}
.org-tab-bar-tab-group-current {
    /* tab-bar-tab-group-current */
    color: #204f9a;
    background-color: #fcffff;
}
.org-tab-bar-tab-group-inactive {
    /* tab-bar-tab-group-inactive */
    color: #204f9a;
    background-color: #d7dbdb;
}
.org-tab-bar-tab-highlight {
    /* tab-bar-tab-highlight */
    color: #232323;
    background-color: #eab5ff;
}
.org-tab-bar-tab-inactive {
    /* tab-bar-tab-inactive */
    background-color: #b5b8b8;
}
.org-tab-bar-tab-ungrouped {
    /* tab-bar-tab-ungrouped */
    background-color: #b5b8b8;
}
.org-tab-line {
    /* tab-line */
    background-color: #d7dbdb;
    font-size: 95%;
}
.org-table-cell {
    /* table-cell */
    background-color: #eaefef;
}
.org-tabulated-list-fake-header {
    /* tabulated-list-fake-header */
    font-weight: bold;
    text-decoration: underline;
    text-decoration: overline;
}
.org-texinfo-heading {
    /* texinfo-heading */
    color: #00845f;
}
.org-textsec-suspicious {
}
.org-trailing-whitespace {
    /* trailing-whitespace */
    background-color: #fac200;
}
.org-treesit-explorer-anonymous-node {
    /* treesit-explorer-anonymous-node */
    color: #66657f;
}
.org-treesit-explorer-field-name {
}
.org-tty-menu-disabled {
    /* tty-menu-disabled-face */
    color: #66657f;
    background-color: #f7f9f9;
}
.org-tty-menu-enabled {
    /* tty-menu-enabled-face */
    color: #232323;
    background-color: #f7f9f9;
    font-weight: bold;
}
.org-tty-menu-selected {
    /* tty-menu-selected-face */
    color: #232323;
    background-color: #cbcfff;
}
.org-tutorial-warning {
    /* tutorial-warning-face */
    color: #996c4f;
}
.org-type {
    /* font-lock-type-face */
    color: #7f5ae0;
}
.org-underline {
    /* underline */
    text-decoration: underline;
}
.org-variable-name {
    /* font-lock-variable-name-face */
    color: #3a6dd2;
}
.org-variable-pitch {
}
.org-variable-pitch-text {
    /* variable-pitch-text */
    font-size: 110%;
}
.org-variable-use {
    /* font-lock-variable-use-face */
    color: #305f9f;
}
.org-warning {
    /* warning */
    color: #996c4f;
}
.org-warning-1 {
    /* font-lock-warning-face */
    color: #996c4f;
}


/* Local Variables: */
/* after-save-hook: (lambda () (copy-file "style.css" "public/style.css" t)) */
/* End: */

Future plans

These are the future plans:

  • [X] Rewrite the style sheet
  • [ ] Make the index "interesting"
  • [ ] Tag based searching
  • [X] Show tags on each page
  • [X] RSS feeds

Author: tusharhero

emailreplace [at] with @, and put the domain for username, and vice versa: sdf.org [at] tusharhero

© tusharhero 2024-2026, check licenses page for details.

Date: 2025-04-25 Fri 00:00

Emacs 31.0.50 (Org mode 9.7.11)