anchor.diff:  (defmethod nyxt:on-signal-notify-uri ((mode style-mode) url)
     (apply-style mode url))
   
  -(defmethod style-for-url ((mode style-mode) url)
  -  (flet ((domain= (association)
  -           (and (style-association-url association)
  -                (equal
  -                 (quri:uri-domain url)
  -                 (quri:uri-domain (style-association-url association)))))
  -         (match-predicate-p (association)
  -           (and (style-association-predicate association)
  -                (funcall-safely (style-association-predicate association) url))))
  -    (sera:and-let* ((result
  -                     (find-if (alex:disjoin #'domain= #'match-predicate-p)
  -                              (style-associations mode))))
  -      (style-association-style result))))
  -
   (define-mode dark-mode (style-mode)
     "Mode for styling documents."
     ((css-cache-path (make-instance 'css-cache-data-path
  
positive.code:                                             "dark-mode-css-cache")))))
  
  (defmethod apply-style ((mode dark-mode) url)
    (let ((style (style-for-url mode url)))
      (if style
          (let ((style (markup:markup (:style style))))
            (ffi-buffer-evaluate-javascript-async
             (buffer mode)
             (ps:ps (ps:chain document body
                              (|insertAdjacentHTML| "afterbegin"
                                                    (ps:lisp style))))))
          (nyxt::darken (buffer mode)))))
  
negative.code:   (trivial-package-local-nicknames:add-package-local-nickname :alex :alexandria)
    (trivial-package-local-nicknames:add-package-local-nickname :sera :serapeum))
  
  (define-mode style-mode ()
    "Mode for styling documents."
    ((css-cache-path (make-instance 'css-cache-data-path
                                    :dirname (uiop:xdg-data-home
                                              nyxt::+data-root+
                                              "style-mode-css-cache")))
     (style-url nil
                :type (or null quri:uri)
                :documentation "Remote CSS file.  If supplied, set `style' to the
  content of the URL.  The resource is cached so it needs to be downloaded only
  once.  To refresh the cached files, you must manually delete the old copies.")
     (style-file nil
                 :type (or null string pathname)
                 :documentation "Local CSS file.
  If supplied, set `style' to the content of the file.
  Otherwise, look for CSS in `style-url'.")
     (style nil
            :type (or null string)
            :documentation "Style as CSS.
  If nil, look for CSS in `style-file' or `style-url'.")
     (constructor
      (lambda (mode)
        (initialize mode))))
    :documentation
    "Style can be set by one of the `style', `style-file' or `style-url' slots.")
  
  (defmethod initialize ((mode style-mode))
    (ensure-parent-exists (expand-path (css-cache-path mode)))
    (unless (style mode)
      (setf (style mode)
            (or (ignore-errors (uiop:read-file-string
                                (style-file mode)))
                (open-or-cache-url mode (style-url mode)))))
    (apply-style mode (url (buffer mode))))
  
  (defmethod apply-style ((mode style-mode) url)
    (when (style mode)
      (let ((style (markup:markup (:style (mode style)))))
        (ffi-buffer-evaluate-javascript-async
         (buffer mode)
         (ps:ps (ps:chain document body
                          (|insertAdjacentHTML| "afterbegin"
                                                (ps:lisp style))))))))
  
  (defmethod open-or-cache-url ((mode style-mode) url)
    (let ((path (uri-file-path mode url)))
  