diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,20 @@
 # Changelog for pandoc-filter-indent
 
+## 0.3.3.1 Nov 17 2025
+
+### Documentation
+  - Improve Hackage package page presentation
+    - Split documentation into README.md and DESCRIPTION.md
+    - README.md: Concise, user-friendly quick-start guide
+    - DESCRIPTION.md: Full academic documentation with YAML metadata
+    - Fix incomplete code block example in package description
+    - Resolves YAML frontmatter display issue on Hackage
+
+### Packaging
+  - Relax lower bounds to support older LTS snapshots
+    - Tested with LTS 20.15 (GHC 9.2.7) and LTS 24.20 (GHC 9.10.3)
+    - Widens compatibility while maintaining PVP-compliant upper bounds
+
 ## 0.3.3.0 Nov 17 2025
 
 ### Unicode and Operator Support
diff --git a/pandoc-filter-indent.cabal b/pandoc-filter-indent.cabal
--- a/pandoc-filter-indent.cabal
+++ b/pandoc-filter-indent.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           pandoc-filter-indent
-version:        0.3.3.0
+version:        0.3.3.1
 synopsis:       Pandoc filter formatting Haskell code fragments using GHC lexer.
 description:    Formats marked code fragments, and allows `pandoc` to safely process rest of your literate program.
                 Mark code blocks with .haskell attribute:
@@ -67,16 +67,16 @@
   hs-source-dirs:
       src
   build-depends:
-      HaTeX >=3.23.0 && <4
+      HaTeX >=3.22.3 && <4
     , base >=4.7 && <5
-    , blaze-html >=0.9.2 && <1
-    , blaze-markup >=0.8.3 && <1
-    , ghc-syntax-highlighter >=0.0.12 && <1
+    , blaze-html >=0.9.1 && <1
+    , blaze-markup >=0.8.2 && <1
+    , ghc-syntax-highlighter >=0.0.8 && <1
     , optics-core >=0.4.1 && <1
     , optics-th >=0.4.1 && <1
-    , pandoc-types >=1.23.1 && <2
-    , skylighting >=0.14.7 && <1
-    , text >=2.0.2 && <3
+    , pandoc-types >=1.22.2 && <2
+    , skylighting >=0.13.2 && <1
+    , text >=1.2.5 && <3
   default-language: Haskell2010
 
 executable pandoc-filter-indent
@@ -87,19 +87,19 @@
       app
   ghc-options: -threaded -rtsopts -with-rtsopts=-N
   build-depends:
-      HaTeX >=3.23.0 && <4
+      HaTeX >=3.22.3 && <4
     , base >=4.7 && <5
-    , blaze-html >=0.9.2 && <1
-    , blaze-markup >=0.8.3 && <1
-    , containers >=0.6.7 && <1
-    , ghc-syntax-highlighter >=0.0.12 && <1
+    , blaze-html >=0.9.1 && <1
+    , blaze-markup >=0.8.2 && <1
+    , containers >=0.6.5 && <1
+    , ghc-syntax-highlighter >=0.0.8 && <1
     , optics-core >=0.4.1 && <1
     , optics-th >=0.4.1 && <1
-    , optparse-applicative >=0.19.0 && <1
+    , optparse-applicative >=0.17.0 && <1
     , pandoc-filter-indent
-    , pandoc-types >=1.23.1 && <2
-    , skylighting >=0.14.7 && <1
-    , text >=2.0.2 && <3
+    , pandoc-types >=1.22.2 && <2
+    , skylighting >=0.13.2 && <1
+    , text >=1.2.5 && <3
   default-language: Haskell2010
 
 test-suite pandoc-filter-indent-test
@@ -113,18 +113,18 @@
       test
   ghc-options: -threaded -rtsopts -with-rtsopts=-N
   build-depends:
-      HaTeX >=3.23.0 && <4
+      HaTeX >=3.22.3 && <4
     , QuickCheck
     , base >=4.7 && <5
-    , blaze-html >=0.9.2 && <1
-    , blaze-markup >=0.8.3 && <1
+    , blaze-html >=0.9.1 && <1
+    , blaze-markup >=0.8.2 && <1
     , ghc-lib-parser
-    , ghc-syntax-highlighter >=0.0.12 && <1
+    , ghc-syntax-highlighter >=0.0.8 && <1
     , optics-core >=0.4.1 && <1
     , optics-th >=0.4.1 && <1
     , pandoc-filter-indent
-    , pandoc-types >=1.23.1 && <2
+    , pandoc-types >=1.22.2 && <2
     , quickcheck-text
-    , skylighting >=0.14.7 && <1
-    , text >=2.0.2 && <3
+    , skylighting >=0.13.2 && <1
+    , text >=1.2.5 && <3
   default-language: Haskell2010
