Remove experimental status for progressive, layered and scaling mode
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 740ae65..09985ff 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,6 +8,11 @@
 
 ## [Unreleased]
 
+### Removed since 1.4.0
+
+* Remove experimental status for the following options of avifenc: --progressive,
+  --layered and --scaling-mode, and the extraLayerCount option of avifEncoder.
+
 ## [1.4.0] - 2026-03-04
 
 ### Added since 1.3.0
diff --git a/apps/avifenc.c b/apps/avifenc.c
index 82e7f94..be8ad96 100644
--- a/apps/avifenc.c
+++ b/apps/avifenc.c
@@ -238,8 +238,8 @@
     printf("                                        Use 2 for any you wish to leave unspecified\n");
     printf("    -r,--range RANGE                  : YUV range, one of 'limited' or 'l', 'full' or 'f'. (JPEG/PNG only, default: full; For y4m or stdin, range is retained)\n");
     printf("    --target-size S                   : Set target file size in bytes (up to 7 times slower)\n");
-    printf("    --progressive                     : EXPERIMENTAL: Automatically set parameters to encode a simple layered image supporting progressive rendering from a single input frame.\n");
-    printf("    --layered                         : EXPERIMENTAL: Encode a layered AVIF. Each input is encoded as one layer and at most %d layers can be encoded.\n",
+    printf("    --progressive                     : Automatically set parameters to encode a simple layered image supporting progressive rendering from a single input frame.\n");
+    printf("    --layered                         : Encode a layered AVIF. Each input is encoded as one layer and at most %d layers can be encoded.\n",
            AVIF_MAX_AV1_LAYER_COUNT);
     printf("    -g,--grid MxN                     : Encode a single-image grid AVIF with M cols & N rows. Either supply MxN identical W/H/D images, or a single\n");
     printf("                                        image that can be evenly split into the MxN grid and follow AVIF grid image restrictions. The grid will adopt\n");
@@ -299,7 +299,7 @@
     printf("    --max QP                          : Deprecated, use -q 0..100 instead\n");
     printf("    --minalpha QP                     : Deprecated, use --qalpha 0..100 instead\n");
     printf("    --maxalpha QP                     : Deprecated, use --qalpha 0..100 instead\n");
-    printf("    --scaling-mode N[/D]              : EXPERIMENTAL: Set frame (layer) scaling mode as given fraction. If omitted, the denominator defaults to 1. (Default: 1/1)\n");
+    printf("    --scaling-mode N[/D]              : Set frame (layer) scaling mode as given fraction. If omitted, the denominator defaults to 1. (Default: 1/1)\n");
     printf("    --duration D                      : Frame durations (in timescales) (default: 1). This option always applies to following inputs with or without the `:u` suffix.\n");
     printf("    -a,--advanced KEY[=VALUE]         : Pass an advanced, codec-specific key/value string pair directly to the codec. avifenc will warn on any not used by the codec.\n");
     printf("\n");
diff --git a/doc/avifenc.1.md b/doc/avifenc.1.md
index d6e3412..52b3311 100644
--- a/doc/avifenc.1.md
+++ b/doc/avifenc.1.md
@@ -92,10 +92,10 @@
 :   Set target file size in bytes (up to 7 times slower)
 
 **\--progressive**
-:   EXPERIMENTAL: Automatically set parameters to encode a simple layered image supporting progressive rendering from a single input frame.
+:   Automatically set parameters to encode a simple layered image supporting progressive rendering from a single input frame.
 
 **\--layered**
-:   EXPERIMENTAL: Encode a layered AVIF. Each input is encoded as one layer and at most 4 layers can be encoded.
+:   Encode a layered AVIF. Each input is encoded as one layer and at most 4 layers can be encoded.
 
 **-g**, **\--grid** _MxN_
 :   Encode a single-image grid AVIF with M cols & N rows. Either supply MxN identical W/H/D images, or a single
@@ -197,7 +197,7 @@
     avifenc starts in automatic tiling mode.
 
 **\--scaling-mode** _N_[/_D_]
-:   EXPERIMENTAL: Set frame (layer) scaling mode as given fraction. If omitted, the denominator defaults to 1. (Default: 1/1).
+:   Set frame (layer) scaling mode as given fraction. If omitted, the denominator defaults to 1. (Default: 1/1).
 
 **\--duration** _D_
 :   Frame durations (in timescales) (default: 1). This option always applies to following inputs with or without the `:u` suffix.
diff --git a/include/avif/avif.h b/include/avif/avif.h
index 693e202..1b19fdb 100644
--- a/include/avif/avif.h
+++ b/include/avif/avif.h
@@ -1533,7 +1533,7 @@
     // played back `n + 1` times. Defaults to AVIF_REPETITION_COUNT_INFINITE.
     int repetitionCount;
 
-    // EXPERIMENTAL: A non-zero value indicates a layered (progressive) image.
+    // A non-zero value indicates a layered (progressive) image.
     // Range: [0 - (AVIF_MAX_AV1_LAYER_COUNT-1)].
     // To encode a progressive image, set `extraLayerCount` to the number of extra images, then call
     // `avifEncoderAddImage()` or `avifEncoderAddImageGrid()` exactly `encoder->extraLayerCount+1` times.