{title}
+{text}
+ {categories.length > 0 && ( +-
+ {categories.map((category) => (
+
- {category} + ))} +
diff --git a/assets-to-refine/INDEX.csv b/assets-to-refine/INDEX.csv
new file mode 100644
index 0000000..04f8efc
--- /dev/null
+++ b/assets-to-refine/INDEX.csv
@@ -0,0 +1,40 @@
+category,refined_filename,original_source
+hero,hero-01-viscose.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.11.40.jpeg
+hero,hero-02-tencel-cotton.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.11.41.jpeg
+hero,hero-03-blue-texture.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.11.55 (3).jpeg
+hero,hero-04-polyester-tencel.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.10.51 (1).jpeg
+hero,hero-05-cotton-viscose-comparison.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.10.49.jpeg
+products/polyester,polyester-01.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.10.51 (1).jpeg
+products/polyester,polyester-02.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.11.52.jpeg
+products/polyester,polyester-03.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.11.55 (1).jpeg
+products/polyester,polyester-04.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.12.00.jpeg
+products/polyester,polyester-05.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.12.02.jpeg
+products/active-wear,active-wear-01-football.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.12.00 (3).jpeg
+products/active-wear,active-wear-02-osaka-rib.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.12.04 (1).jpeg
+products/active-wear,active-wear-03-cotton-lycra.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.12.05 (1).jpeg
+products/active-wear,active-wear-04-technical-mesh.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.12.06 (3).jpeg
+products/active-wear,active-wear-05-structured.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.12.11.jpeg
+products/imported-exclusive,exclusive-01-alpine-fleece.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.11.50.jpeg
+products/imported-exclusive,exclusive-02-bamboo.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.11.49 (2).jpeg
+products/imported-exclusive,exclusive-03-blue-construction.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.11.50 (1).jpeg
+products/imported-exclusive,exclusive-04-madagascar.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.12.11 (2).jpeg
+products/imported-exclusive,exclusive-05-premium-structure.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.12.14 (1).jpeg
+products/cotton-viscose,cotton-viscose-01-comparison.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.10.49.jpeg
+products/cotton-viscose,cotton-viscose-02-viscose.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.11.40.jpeg
+products/cotton-viscose,cotton-viscose-03-tencel-cotton.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.11.41.jpeg
+products/cotton-viscose,cotton-viscose-04-blue-blend.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.11.55 (3).jpeg
+products/cotton-viscose,cotton-viscose-05-open-structure.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.12.07 (2).jpeg
+gallery,gallery-01.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.10.53.jpeg
+gallery,gallery-02.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.10.54.jpeg
+gallery,gallery-03.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.11.53 (2).jpeg
+gallery,gallery-04.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.11.56.jpeg
+gallery,gallery-05.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.11.58 (1).jpeg
+gallery,gallery-06.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.11.59.jpeg
+gallery,gallery-07.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.12.00 (1).jpeg
+gallery,gallery-08.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.12.02 (1).jpeg
+gallery,gallery-09.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.12.06 (2).jpeg
+gallery,gallery-10.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.12.07 (2).jpeg
+gallery,gallery-11.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.12.08.jpeg
+gallery,gallery-12.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.12.11 (2).jpeg
+gallery,gallery-13.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.12.13.jpeg
+gallery,gallery-14.jpeg,/mnt/1TB-HDD/WhatsApp Image 2026-09-25 at 12.12.14 (1).jpeg
diff --git a/assets-to-refine/PROMPT.md b/assets-to-refine/PROMPT.md
new file mode 100644
index 0000000..c22679e
--- /dev/null
+++ b/assets-to-refine/PROMPT.md
@@ -0,0 +1,12 @@
+# General AI refinement prompt
+
+Refine this photographed textile sample into a clean, premium product image for a professional textile-manufacturing website. Preserve the exact knit structure, weave geometry, fibre texture, pattern scale, colour relationships, and all visible material characteristics of the original sample. Remove stickers, handwriting, printed labels, plastic wrapping, glare, harsh shadows, dust, background clutter, and camera distortion. Correct white balance and exposure, improve edge definition, and apply restrained photographic sharpening without inventing fibres or changing the construction. Place the fabric on a clean warm-neutral studio background (#F5F3EE) with soft, realistic, diffuse lighting. Extend the existing fabric naturally beyond the original frame where needed for the requested composition. Do not add garments, machinery, logos, text, labels, decorative props, new patterns, seams, folds, or surface details that are not present in the source. Do not make the fabric look synthetic, illustrated, plastic, overly smooth, or AI-generated. The result must remain an accurate commercial representation of the supplied fabric.
+
+Output variants:
+1. Hero: 16:9 landscape, fabric filling the frame, quiet negative space on the left for website copy.
+2. Product card: 4:3 landscape, evenly framed texture, no text.
+3. Gallery: 1:1 square macro crop showing the construction clearly, no text.
+
+Quality: photorealistic, natural textile detail, high resolution, consistent colour, web-ready.
+
+Important: compare the result against the original before approval. Reject any output that alters the knit pattern, hole spacing, rib direction, yarn thickness, fibre content appearance, or colour.
diff --git a/assets-to-refine/RefinedGallery/Gemini_Generated_Image_gwchf4gwchf4gwch.jpeg b/assets-to-refine/RefinedGallery/Gemini_Generated_Image_gwchf4gwchf4gwch.jpeg
new file mode 100644
index 0000000..fa921e8
Binary files /dev/null and b/assets-to-refine/RefinedGallery/Gemini_Generated_Image_gwchf4gwchf4gwch.jpeg differ
diff --git a/assets-to-refine/RefinedGallery/Gemini_Generated_Image_n36uden36uden36u.jpeg b/assets-to-refine/RefinedGallery/Gemini_Generated_Image_n36uden36uden36u.jpeg
new file mode 100644
index 0000000..35227b9
Binary files /dev/null and b/assets-to-refine/RefinedGallery/Gemini_Generated_Image_n36uden36uden36u.jpeg differ
diff --git a/assets-to-refine/RefinedGallery/Gemini_Generated_Image_v9lfrwv9lfrwv9lf.jpeg b/assets-to-refine/RefinedGallery/Gemini_Generated_Image_v9lfrwv9lfrwv9lf.jpeg
new file mode 100644
index 0000000..324f171
Binary files /dev/null and b/assets-to-refine/RefinedGallery/Gemini_Generated_Image_v9lfrwv9lfrwv9lf.jpeg differ
diff --git a/assets-to-refine/RefinedHero/Gemini_Generated_Image_41gc6n41gc6n41gc.jpeg b/assets-to-refine/RefinedHero/Gemini_Generated_Image_41gc6n41gc6n41gc.jpeg
new file mode 100644
index 0000000..547ccfa
Binary files /dev/null and b/assets-to-refine/RefinedHero/Gemini_Generated_Image_41gc6n41gc6n41gc.jpeg differ
diff --git a/assets-to-refine/RefinedHero/Gemini_Generated_Image_al58e4al58e4al58.jpeg b/assets-to-refine/RefinedHero/Gemini_Generated_Image_al58e4al58e4al58.jpeg
new file mode 100644
index 0000000..d4e7e1f
Binary files /dev/null and b/assets-to-refine/RefinedHero/Gemini_Generated_Image_al58e4al58e4al58.jpeg differ
diff --git a/assets-to-refine/RefinedHero/Gemini_Generated_Image_jqdm25jqdm25jqdm.jpeg b/assets-to-refine/RefinedHero/Gemini_Generated_Image_jqdm25jqdm25jqdm.jpeg
new file mode 100644
index 0000000..1da1b18
Binary files /dev/null and b/assets-to-refine/RefinedHero/Gemini_Generated_Image_jqdm25jqdm25jqdm.jpeg differ
diff --git a/assets-to-refine/RefinedHero/Gemini_Generated_Image_my47hhmy47hhmy47.jpeg b/assets-to-refine/RefinedHero/Gemini_Generated_Image_my47hhmy47hhmy47.jpeg
new file mode 100644
index 0000000..e21a60c
Binary files /dev/null and b/assets-to-refine/RefinedHero/Gemini_Generated_Image_my47hhmy47hhmy47.jpeg differ
diff --git a/assets-to-refine/RefinedProducts/RefinedActiveWear/Gemini_Generated_Image_6iim9q6iim9q6iim.jpeg b/assets-to-refine/RefinedProducts/RefinedActiveWear/Gemini_Generated_Image_6iim9q6iim9q6iim.jpeg
new file mode 100644
index 0000000..f305620
Binary files /dev/null and b/assets-to-refine/RefinedProducts/RefinedActiveWear/Gemini_Generated_Image_6iim9q6iim9q6iim.jpeg differ
diff --git a/assets-to-refine/RefinedProducts/RefinedActiveWear/Gemini_Generated_Image_w9uvs8w9uvs8w9uv.jpeg b/assets-to-refine/RefinedProducts/RefinedActiveWear/Gemini_Generated_Image_w9uvs8w9uvs8w9uv.jpeg
new file mode 100644
index 0000000..5c68bca
Binary files /dev/null and b/assets-to-refine/RefinedProducts/RefinedActiveWear/Gemini_Generated_Image_w9uvs8w9uvs8w9uv.jpeg differ
diff --git a/assets-to-refine/RefinedProducts/RefinedActiveWear/Gemini_Generated_Image_xc9waxc9waxc9wax.jpeg b/assets-to-refine/RefinedProducts/RefinedActiveWear/Gemini_Generated_Image_xc9waxc9waxc9wax.jpeg
new file mode 100644
index 0000000..63ed2de
Binary files /dev/null and b/assets-to-refine/RefinedProducts/RefinedActiveWear/Gemini_Generated_Image_xc9waxc9waxc9wax.jpeg differ
diff --git a/assets-to-refine/RefinedProducts/RefinedActiveWear/Gemini_Generated_Image_ysg0d0ysg0d0ysg0.jpeg b/assets-to-refine/RefinedProducts/RefinedActiveWear/Gemini_Generated_Image_ysg0d0ysg0d0ysg0.jpeg
new file mode 100644
index 0000000..061536e
Binary files /dev/null and b/assets-to-refine/RefinedProducts/RefinedActiveWear/Gemini_Generated_Image_ysg0d0ysg0d0ysg0.jpeg differ
diff --git a/assets-to-refine/RefinedProducts/RefinedPolyster/Gemini_Generated_Image_cl17jacl17jacl17.jpeg b/assets-to-refine/RefinedProducts/RefinedPolyster/Gemini_Generated_Image_cl17jacl17jacl17.jpeg
new file mode 100644
index 0000000..bcd7866
Binary files /dev/null and b/assets-to-refine/RefinedProducts/RefinedPolyster/Gemini_Generated_Image_cl17jacl17jacl17.jpeg differ
diff --git a/assets-to-refine/RefinedProducts/RefinedPolyster/Gemini_Generated_Image_dsdddmdsdddmdsdd.jpeg b/assets-to-refine/RefinedProducts/RefinedPolyster/Gemini_Generated_Image_dsdddmdsdddmdsdd.jpeg
new file mode 100644
index 0000000..be1a5e1
Binary files /dev/null and b/assets-to-refine/RefinedProducts/RefinedPolyster/Gemini_Generated_Image_dsdddmdsdddmdsdd.jpeg differ
diff --git a/assets-to-refine/RefinedProducts/RefinedPolyster/Gemini_Generated_Image_v0zjkuv0zjkuv0zj.jpeg b/assets-to-refine/RefinedProducts/RefinedPolyster/Gemini_Generated_Image_v0zjkuv0zjkuv0zj.jpeg
new file mode 100644
index 0000000..2842928
Binary files /dev/null and b/assets-to-refine/RefinedProducts/RefinedPolyster/Gemini_Generated_Image_v0zjkuv0zjkuv0zj.jpeg differ
diff --git a/assets-to-refine/gallery/gallery-01.jpeg b/assets-to-refine/gallery/gallery-01.jpeg
new file mode 100644
index 0000000..a8b4503
Binary files /dev/null and b/assets-to-refine/gallery/gallery-01.jpeg differ
diff --git a/assets-to-refine/gallery/gallery-02.jpeg b/assets-to-refine/gallery/gallery-02.jpeg
new file mode 100644
index 0000000..0f6adb4
Binary files /dev/null and b/assets-to-refine/gallery/gallery-02.jpeg differ
diff --git a/assets-to-refine/gallery/gallery-03.jpeg b/assets-to-refine/gallery/gallery-03.jpeg
new file mode 100644
index 0000000..fbbfd03
Binary files /dev/null and b/assets-to-refine/gallery/gallery-03.jpeg differ
diff --git a/assets-to-refine/gallery/gallery-04.jpeg b/assets-to-refine/gallery/gallery-04.jpeg
new file mode 100644
index 0000000..711613c
Binary files /dev/null and b/assets-to-refine/gallery/gallery-04.jpeg differ
diff --git a/assets-to-refine/gallery/gallery-05.jpeg b/assets-to-refine/gallery/gallery-05.jpeg
new file mode 100644
index 0000000..747be62
Binary files /dev/null and b/assets-to-refine/gallery/gallery-05.jpeg differ
diff --git a/assets-to-refine/gallery/gallery-06.jpeg b/assets-to-refine/gallery/gallery-06.jpeg
new file mode 100644
index 0000000..bffd99f
Binary files /dev/null and b/assets-to-refine/gallery/gallery-06.jpeg differ
diff --git a/assets-to-refine/gallery/gallery-07.jpeg b/assets-to-refine/gallery/gallery-07.jpeg
new file mode 100644
index 0000000..55dbd15
Binary files /dev/null and b/assets-to-refine/gallery/gallery-07.jpeg differ
diff --git a/assets-to-refine/gallery/gallery-08.jpeg b/assets-to-refine/gallery/gallery-08.jpeg
new file mode 100644
index 0000000..ff8c723
Binary files /dev/null and b/assets-to-refine/gallery/gallery-08.jpeg differ
diff --git a/assets-to-refine/gallery/gallery-09.jpeg b/assets-to-refine/gallery/gallery-09.jpeg
new file mode 100644
index 0000000..3b4ce0f
Binary files /dev/null and b/assets-to-refine/gallery/gallery-09.jpeg differ
diff --git a/assets-to-refine/gallery/gallery-10.jpeg b/assets-to-refine/gallery/gallery-10.jpeg
new file mode 100644
index 0000000..6f973d2
Binary files /dev/null and b/assets-to-refine/gallery/gallery-10.jpeg differ
diff --git a/assets-to-refine/gallery/gallery-11.jpeg b/assets-to-refine/gallery/gallery-11.jpeg
new file mode 100644
index 0000000..8c97754
Binary files /dev/null and b/assets-to-refine/gallery/gallery-11.jpeg differ
diff --git a/assets-to-refine/gallery/gallery-12.jpeg b/assets-to-refine/gallery/gallery-12.jpeg
new file mode 100644
index 0000000..7de29fe
Binary files /dev/null and b/assets-to-refine/gallery/gallery-12.jpeg differ
diff --git a/assets-to-refine/gallery/gallery-13.jpeg b/assets-to-refine/gallery/gallery-13.jpeg
new file mode 100644
index 0000000..1d9691e
Binary files /dev/null and b/assets-to-refine/gallery/gallery-13.jpeg differ
diff --git a/assets-to-refine/gallery/gallery-14.jpeg b/assets-to-refine/gallery/gallery-14.jpeg
new file mode 100644
index 0000000..d136411
Binary files /dev/null and b/assets-to-refine/gallery/gallery-14.jpeg differ
diff --git a/assets-to-refine/hero/hero-01-viscose.jpeg b/assets-to-refine/hero/hero-01-viscose.jpeg
new file mode 100644
index 0000000..d3383e1
Binary files /dev/null and b/assets-to-refine/hero/hero-01-viscose.jpeg differ
diff --git a/assets-to-refine/hero/hero-02-tencel-cotton.jpeg b/assets-to-refine/hero/hero-02-tencel-cotton.jpeg
new file mode 100644
index 0000000..4526032
Binary files /dev/null and b/assets-to-refine/hero/hero-02-tencel-cotton.jpeg differ
diff --git a/assets-to-refine/hero/hero-03-blue-texture.jpeg b/assets-to-refine/hero/hero-03-blue-texture.jpeg
new file mode 100644
index 0000000..31eea9b
Binary files /dev/null and b/assets-to-refine/hero/hero-03-blue-texture.jpeg differ
diff --git a/assets-to-refine/hero/hero-04-polyester-tencel.jpeg b/assets-to-refine/hero/hero-04-polyester-tencel.jpeg
new file mode 100644
index 0000000..6c175b2
Binary files /dev/null and b/assets-to-refine/hero/hero-04-polyester-tencel.jpeg differ
diff --git a/assets-to-refine/hero/hero-05-cotton-viscose-comparison.jpeg b/assets-to-refine/hero/hero-05-cotton-viscose-comparison.jpeg
new file mode 100644
index 0000000..b4e31df
Binary files /dev/null and b/assets-to-refine/hero/hero-05-cotton-viscose-comparison.jpeg differ
diff --git a/assets-to-refine/products/active-wear/active-wear-01-football.jpeg b/assets-to-refine/products/active-wear/active-wear-01-football.jpeg
new file mode 100644
index 0000000..1f7c2e7
Binary files /dev/null and b/assets-to-refine/products/active-wear/active-wear-01-football.jpeg differ
diff --git a/assets-to-refine/products/active-wear/active-wear-02-osaka-rib.jpeg b/assets-to-refine/products/active-wear/active-wear-02-osaka-rib.jpeg
new file mode 100644
index 0000000..0fc32c1
Binary files /dev/null and b/assets-to-refine/products/active-wear/active-wear-02-osaka-rib.jpeg differ
diff --git a/assets-to-refine/products/active-wear/active-wear-03-cotton-lycra.jpeg b/assets-to-refine/products/active-wear/active-wear-03-cotton-lycra.jpeg
new file mode 100644
index 0000000..b0fba81
Binary files /dev/null and b/assets-to-refine/products/active-wear/active-wear-03-cotton-lycra.jpeg differ
diff --git a/assets-to-refine/products/active-wear/active-wear-04-technical-mesh.jpeg b/assets-to-refine/products/active-wear/active-wear-04-technical-mesh.jpeg
new file mode 100644
index 0000000..148013c
Binary files /dev/null and b/assets-to-refine/products/active-wear/active-wear-04-technical-mesh.jpeg differ
diff --git a/assets-to-refine/products/active-wear/active-wear-05-structured.jpeg b/assets-to-refine/products/active-wear/active-wear-05-structured.jpeg
new file mode 100644
index 0000000..78509dc
Binary files /dev/null and b/assets-to-refine/products/active-wear/active-wear-05-structured.jpeg differ
diff --git a/assets-to-refine/products/cotton-viscose/cotton-viscose-01-comparison.jpeg b/assets-to-refine/products/cotton-viscose/cotton-viscose-01-comparison.jpeg
new file mode 100644
index 0000000..b4e31df
Binary files /dev/null and b/assets-to-refine/products/cotton-viscose/cotton-viscose-01-comparison.jpeg differ
diff --git a/assets-to-refine/products/cotton-viscose/cotton-viscose-02-viscose.jpeg b/assets-to-refine/products/cotton-viscose/cotton-viscose-02-viscose.jpeg
new file mode 100644
index 0000000..d3383e1
Binary files /dev/null and b/assets-to-refine/products/cotton-viscose/cotton-viscose-02-viscose.jpeg differ
diff --git a/assets-to-refine/products/cotton-viscose/cotton-viscose-03-tencel-cotton.jpeg b/assets-to-refine/products/cotton-viscose/cotton-viscose-03-tencel-cotton.jpeg
new file mode 100644
index 0000000..4526032
Binary files /dev/null and b/assets-to-refine/products/cotton-viscose/cotton-viscose-03-tencel-cotton.jpeg differ
diff --git a/assets-to-refine/products/cotton-viscose/cotton-viscose-04-blue-blend.jpeg b/assets-to-refine/products/cotton-viscose/cotton-viscose-04-blue-blend.jpeg
new file mode 100644
index 0000000..31eea9b
Binary files /dev/null and b/assets-to-refine/products/cotton-viscose/cotton-viscose-04-blue-blend.jpeg differ
diff --git a/assets-to-refine/products/cotton-viscose/cotton-viscose-05-open-structure.jpeg b/assets-to-refine/products/cotton-viscose/cotton-viscose-05-open-structure.jpeg
new file mode 100644
index 0000000..6f973d2
Binary files /dev/null and b/assets-to-refine/products/cotton-viscose/cotton-viscose-05-open-structure.jpeg differ
diff --git a/assets-to-refine/products/imported-exclusive/exclusive-01-alpine-fleece.jpeg b/assets-to-refine/products/imported-exclusive/exclusive-01-alpine-fleece.jpeg
new file mode 100644
index 0000000..22ce062
Binary files /dev/null and b/assets-to-refine/products/imported-exclusive/exclusive-01-alpine-fleece.jpeg differ
diff --git a/assets-to-refine/products/imported-exclusive/exclusive-02-bamboo.jpeg b/assets-to-refine/products/imported-exclusive/exclusive-02-bamboo.jpeg
new file mode 100644
index 0000000..7212fca
Binary files /dev/null and b/assets-to-refine/products/imported-exclusive/exclusive-02-bamboo.jpeg differ
diff --git a/assets-to-refine/products/imported-exclusive/exclusive-03-blue-construction.jpeg b/assets-to-refine/products/imported-exclusive/exclusive-03-blue-construction.jpeg
new file mode 100644
index 0000000..4c25398
Binary files /dev/null and b/assets-to-refine/products/imported-exclusive/exclusive-03-blue-construction.jpeg differ
diff --git a/assets-to-refine/products/imported-exclusive/exclusive-04-madagascar.jpeg b/assets-to-refine/products/imported-exclusive/exclusive-04-madagascar.jpeg
new file mode 100644
index 0000000..7de29fe
Binary files /dev/null and b/assets-to-refine/products/imported-exclusive/exclusive-04-madagascar.jpeg differ
diff --git a/assets-to-refine/products/imported-exclusive/exclusive-05-premium-structure.jpeg b/assets-to-refine/products/imported-exclusive/exclusive-05-premium-structure.jpeg
new file mode 100644
index 0000000..d136411
Binary files /dev/null and b/assets-to-refine/products/imported-exclusive/exclusive-05-premium-structure.jpeg differ
diff --git a/assets-to-refine/products/polyester/polyester-01.jpeg b/assets-to-refine/products/polyester/polyester-01.jpeg
new file mode 100644
index 0000000..6c175b2
Binary files /dev/null and b/assets-to-refine/products/polyester/polyester-01.jpeg differ
diff --git a/assets-to-refine/products/polyester/polyester-02.jpeg b/assets-to-refine/products/polyester/polyester-02.jpeg
new file mode 100644
index 0000000..61b61b9
Binary files /dev/null and b/assets-to-refine/products/polyester/polyester-02.jpeg differ
diff --git a/assets-to-refine/products/polyester/polyester-03.jpeg b/assets-to-refine/products/polyester/polyester-03.jpeg
new file mode 100644
index 0000000..0c038d3
Binary files /dev/null and b/assets-to-refine/products/polyester/polyester-03.jpeg differ
diff --git a/assets-to-refine/products/polyester/polyester-04.jpeg b/assets-to-refine/products/polyester/polyester-04.jpeg
new file mode 100644
index 0000000..dde7a84
Binary files /dev/null and b/assets-to-refine/products/polyester/polyester-04.jpeg differ
diff --git a/assets-to-refine/products/polyester/polyester-05.jpeg b/assets-to-refine/products/polyester/polyester-05.jpeg
new file mode 100644
index 0000000..8221019
Binary files /dev/null and b/assets-to-refine/products/polyester/polyester-05.jpeg differ
diff --git a/public/images/library/exclusive-04-madagascar.jpeg b/public/images/library/exclusive-04-madagascar.jpeg
new file mode 100644
index 0000000..7de29fe
Binary files /dev/null and b/public/images/library/exclusive-04-madagascar.jpeg differ
diff --git a/public/images/library/exclusive-05-premium-structure.jpeg b/public/images/library/exclusive-05-premium-structure.jpeg
new file mode 100644
index 0000000..d136411
Binary files /dev/null and b/public/images/library/exclusive-05-premium-structure.jpeg differ
diff --git a/public/images/library/gallery-01.jpeg b/public/images/library/gallery-01.jpeg
new file mode 100644
index 0000000..a8b4503
Binary files /dev/null and b/public/images/library/gallery-01.jpeg differ
diff --git a/public/images/library/gallery-02.jpeg b/public/images/library/gallery-02.jpeg
new file mode 100644
index 0000000..0f6adb4
Binary files /dev/null and b/public/images/library/gallery-02.jpeg differ
diff --git a/public/images/library/gallery-03.jpeg b/public/images/library/gallery-03.jpeg
new file mode 100644
index 0000000..fbbfd03
Binary files /dev/null and b/public/images/library/gallery-03.jpeg differ
diff --git a/public/images/library/gallery-04.jpeg b/public/images/library/gallery-04.jpeg
new file mode 100644
index 0000000..711613c
Binary files /dev/null and b/public/images/library/gallery-04.jpeg differ
diff --git a/public/images/library/hero-01-viscose.jpeg b/public/images/library/hero-01-viscose.jpeg
new file mode 100644
index 0000000..d3383e1
Binary files /dev/null and b/public/images/library/hero-01-viscose.jpeg differ
diff --git a/public/images/library/hero-02-tencel-cotton.jpeg b/public/images/library/hero-02-tencel-cotton.jpeg
new file mode 100644
index 0000000..4526032
Binary files /dev/null and b/public/images/library/hero-02-tencel-cotton.jpeg differ
diff --git a/public/images/library/hero-03-blue-texture.jpeg b/public/images/library/hero-03-blue-texture.jpeg
new file mode 100644
index 0000000..31eea9b
Binary files /dev/null and b/public/images/library/hero-03-blue-texture.jpeg differ
diff --git a/public/images/library/polyester-04.jpeg b/public/images/library/polyester-04.jpeg
new file mode 100644
index 0000000..dde7a84
Binary files /dev/null and b/public/images/library/polyester-04.jpeg differ
diff --git a/public/images/library/polyester-05.jpeg b/public/images/library/polyester-05.jpeg
new file mode 100644
index 0000000..8221019
Binary files /dev/null and b/public/images/library/polyester-05.jpeg differ
diff --git a/public/images/refined/gallery/Gemini_Generated_Image_gwchf4gwchf4gwch.jpeg b/public/images/refined/gallery/Gemini_Generated_Image_gwchf4gwchf4gwch.jpeg
new file mode 100644
index 0000000..fa921e8
Binary files /dev/null and b/public/images/refined/gallery/Gemini_Generated_Image_gwchf4gwchf4gwch.jpeg differ
diff --git a/public/images/refined/gallery/Gemini_Generated_Image_n36uden36uden36u.jpeg b/public/images/refined/gallery/Gemini_Generated_Image_n36uden36uden36u.jpeg
new file mode 100644
index 0000000..35227b9
Binary files /dev/null and b/public/images/refined/gallery/Gemini_Generated_Image_n36uden36uden36u.jpeg differ
diff --git a/public/images/refined/gallery/Gemini_Generated_Image_v9lfrwv9lfrwv9lf.jpeg b/public/images/refined/gallery/Gemini_Generated_Image_v9lfrwv9lfrwv9lf.jpeg
new file mode 100644
index 0000000..324f171
Binary files /dev/null and b/public/images/refined/gallery/Gemini_Generated_Image_v9lfrwv9lfrwv9lf.jpeg differ
diff --git a/public/images/refined/hero/Gemini_Generated_Image_41gc6n41gc6n41gc.jpeg b/public/images/refined/hero/Gemini_Generated_Image_41gc6n41gc6n41gc.jpeg
new file mode 100644
index 0000000..0a4bfca
Binary files /dev/null and b/public/images/refined/hero/Gemini_Generated_Image_41gc6n41gc6n41gc.jpeg differ
diff --git a/public/images/refined/hero/Gemini_Generated_Image_al58e4al58e4al58.jpeg b/public/images/refined/hero/Gemini_Generated_Image_al58e4al58e4al58.jpeg
new file mode 100644
index 0000000..40fdf5d
Binary files /dev/null and b/public/images/refined/hero/Gemini_Generated_Image_al58e4al58e4al58.jpeg differ
diff --git a/public/images/refined/hero/Gemini_Generated_Image_jqdm25jqdm25jqdm.jpeg b/public/images/refined/hero/Gemini_Generated_Image_jqdm25jqdm25jqdm.jpeg
new file mode 100644
index 0000000..727e1ec
Binary files /dev/null and b/public/images/refined/hero/Gemini_Generated_Image_jqdm25jqdm25jqdm.jpeg differ
diff --git a/public/images/refined/hero/Gemini_Generated_Image_my47hhmy47hhmy47.jpeg b/public/images/refined/hero/Gemini_Generated_Image_my47hhmy47hhmy47.jpeg
new file mode 100644
index 0000000..32d8742
Binary files /dev/null and b/public/images/refined/hero/Gemini_Generated_Image_my47hhmy47hhmy47.jpeg differ
diff --git a/public/images/refined/products/active-wear/Gemini_Generated_Image_6iim9q6iim9q6iim.jpeg b/public/images/refined/products/active-wear/Gemini_Generated_Image_6iim9q6iim9q6iim.jpeg
new file mode 100644
index 0000000..7d836ac
Binary files /dev/null and b/public/images/refined/products/active-wear/Gemini_Generated_Image_6iim9q6iim9q6iim.jpeg differ
diff --git a/public/images/refined/products/active-wear/Gemini_Generated_Image_w9uvs8w9uvs8w9uv.jpeg b/public/images/refined/products/active-wear/Gemini_Generated_Image_w9uvs8w9uvs8w9uv.jpeg
new file mode 100644
index 0000000..b2ff67f
Binary files /dev/null and b/public/images/refined/products/active-wear/Gemini_Generated_Image_w9uvs8w9uvs8w9uv.jpeg differ
diff --git a/public/images/refined/products/active-wear/Gemini_Generated_Image_xc9waxc9waxc9wax.jpeg b/public/images/refined/products/active-wear/Gemini_Generated_Image_xc9waxc9waxc9wax.jpeg
new file mode 100644
index 0000000..1f29998
Binary files /dev/null and b/public/images/refined/products/active-wear/Gemini_Generated_Image_xc9waxc9waxc9wax.jpeg differ
diff --git a/public/images/refined/products/active-wear/Gemini_Generated_Image_ysg0d0ysg0d0ysg0.jpeg b/public/images/refined/products/active-wear/Gemini_Generated_Image_ysg0d0ysg0d0ysg0.jpeg
new file mode 100644
index 0000000..204ff91
Binary files /dev/null and b/public/images/refined/products/active-wear/Gemini_Generated_Image_ysg0d0ysg0d0ysg0.jpeg differ
diff --git a/public/images/refined/products/cotton-viscose/cotton-viscose-02-viscose.jpeg b/public/images/refined/products/cotton-viscose/cotton-viscose-02-viscose.jpeg
new file mode 100644
index 0000000..d3383e1
Binary files /dev/null and b/public/images/refined/products/cotton-viscose/cotton-viscose-02-viscose.jpeg differ
diff --git a/public/images/refined/products/cotton-viscose/cotton-viscose-03-tencel-cotton.jpeg b/public/images/refined/products/cotton-viscose/cotton-viscose-03-tencel-cotton.jpeg
new file mode 100644
index 0000000..4526032
Binary files /dev/null and b/public/images/refined/products/cotton-viscose/cotton-viscose-03-tencel-cotton.jpeg differ
diff --git a/public/images/refined/products/cotton-viscose/cotton-viscose-04-blue-blend.jpeg b/public/images/refined/products/cotton-viscose/cotton-viscose-04-blue-blend.jpeg
new file mode 100644
index 0000000..31eea9b
Binary files /dev/null and b/public/images/refined/products/cotton-viscose/cotton-viscose-04-blue-blend.jpeg differ
diff --git a/public/images/refined/products/imported-exclusive/exclusive-01-alpine-fleece.jpeg b/public/images/refined/products/imported-exclusive/exclusive-01-alpine-fleece.jpeg
new file mode 100644
index 0000000..22ce062
Binary files /dev/null and b/public/images/refined/products/imported-exclusive/exclusive-01-alpine-fleece.jpeg differ
diff --git a/public/images/refined/products/imported-exclusive/exclusive-02-bamboo.jpeg b/public/images/refined/products/imported-exclusive/exclusive-02-bamboo.jpeg
new file mode 100644
index 0000000..7212fca
Binary files /dev/null and b/public/images/refined/products/imported-exclusive/exclusive-02-bamboo.jpeg differ
diff --git a/public/images/refined/products/imported-exclusive/exclusive-03-blue-construction.jpeg b/public/images/refined/products/imported-exclusive/exclusive-03-blue-construction.jpeg
new file mode 100644
index 0000000..4c25398
Binary files /dev/null and b/public/images/refined/products/imported-exclusive/exclusive-03-blue-construction.jpeg differ
diff --git a/public/images/refined/products/polyester/Gemini_Generated_Image_cl17jacl17jacl17.jpeg b/public/images/refined/products/polyester/Gemini_Generated_Image_cl17jacl17jacl17.jpeg
new file mode 100644
index 0000000..1862d29
Binary files /dev/null and b/public/images/refined/products/polyester/Gemini_Generated_Image_cl17jacl17jacl17.jpeg differ
diff --git a/public/images/refined/products/polyester/Gemini_Generated_Image_dsdddmdsdddmdsdd.jpeg b/public/images/refined/products/polyester/Gemini_Generated_Image_dsdddmdsdddmdsdd.jpeg
new file mode 100644
index 0000000..51d9310
Binary files /dev/null and b/public/images/refined/products/polyester/Gemini_Generated_Image_dsdddmdsdddmdsdd.jpeg differ
diff --git a/public/images/refined/products/polyester/Gemini_Generated_Image_v0zjkuv0zjkuv0zj.jpeg b/public/images/refined/products/polyester/Gemini_Generated_Image_v0zjkuv0zjkuv0zj.jpeg
new file mode 100644
index 0000000..ffd228c
Binary files /dev/null and b/public/images/refined/products/polyester/Gemini_Generated_Image_v0zjkuv0zjkuv0zj.jpeg differ
diff --git a/scripts/optimize-carousel-images.py b/scripts/optimize-carousel-images.py
new file mode 100644
index 0000000..9e8dea1
--- /dev/null
+++ b/scripts/optimize-carousel-images.py
@@ -0,0 +1,42 @@
+"""Pre-scale the carousel imagery so browsers never upscale it.
+
+The refined fabric shots top out at 1024-1376px, but the full-bleed hero paints
+them across up to ~1920 CSS px (3840 device px on retina). Browsers enlarge them
+at render time and the knit stitches smear. Resampling once with Lanczos plus a
+light unsharp pass keeps the texture readable and, at these sizes, costs about
+the same bytes as the originals. Requires Pillow. Generated assets are committed;
+runtime needs nothing.
+"""
+from pathlib import Path
+import sys
+from PIL import Image, ImageFilter
+
+ROOT = Path(__file__).resolve().parents[1]
+TARGETS = [ROOT / "public" / "images" / "refined" / "hero",
+ ROOT / "public" / "images" / "refined" / "products"]
+LONG_EDGE = 2048
+QUALITY = 82
+
+
+def optimize(path):
+ with Image.open(path) as source:
+ image = source.convert("RGB")
+ scale = LONG_EDGE / max(image.size)
+ if scale > 1:
+ image = image.resize(
+ (round(image.width * scale), round(image.height * scale)),
+ Image.Resampling.LANCZOS,
+ )
+ image = image.filter(ImageFilter.UnsharpMask(radius=1.0, percent=60, threshold=3))
+ before = path.stat().st_size
+ image.save(path, quality=QUALITY, optimize=True, progressive=True)
+ after = path.stat().st_size
+ print(f"{path.relative_to(ROOT)} {image.size} {before // 1024}KB -> {after // 1024}KB")
+
+
+if __name__ == "__main__":
+ files = sorted(p for target in TARGETS for p in target.rglob("*.jpeg"))
+ if not files:
+ sys.exit("no carousel images found")
+ for file in files:
+ optimize(file)
diff --git a/src/components/Gallery.jsx b/src/components/Gallery.jsx
index 8eef726..c311675 100644
--- a/src/components/Gallery.jsx
+++ b/src/components/Gallery.jsx
@@ -2,7 +2,15 @@ import { developments } from "../data";
import { Action, SectionHeading } from "./Primitives";
import "./Gallery.css";
-const textures = ["fine", "natural", "structured"];
+const textures = [
+ "/images/refined/gallery/Gemini_Generated_Image_gwchf4gwchf4gwch.jpeg",
+ "/images/refined/gallery/Gemini_Generated_Image_n36uden36uden36u.jpeg",
+ "/images/refined/gallery/Gemini_Generated_Image_v9lfrwv9lfrwv9lf.jpeg",
+ "/images/library/gallery-01.jpeg",
+ "/images/library/gallery-02.jpeg",
+ "/images/library/gallery-03.jpeg",
+ "/images/library/gallery-04.jpeg",
+];
export default function Gallery({ preview = false }) {
const items = preview ? developments.slice(0, 3) : developments;
@@ -22,7 +30,7 @@ export default function Gallery({ preview = false }) {
>
) : (
<>
- From greige
+ From grey
to possibility.
>
@@ -32,7 +40,7 @@ export default function Gallery({ preview = false }) {
{preview ? "A selection of knitted structures showing how yarn, composition and machine setup shape the final fabric character." - : "Selected developments are processed separately as reference samples to explore how a construction can translate after dyeing and finishing. RRS commercially manufactures greige fabric only."} + : "Selected developments are processed separately as reference samples to explore how a construction can translate after dyeing and finishing. RRS commercially manufactures grey fabric only."}
{preview && (
{caption && (
- Radhe Radhe Synthetics is a specialist manufacturer of greige knitted + Radhe Radhe Synthetics is a specialist manufacturer of grey knitted fabrics with a focus on consistent bulk production and continuous fabric development.
diff --git a/src/pages/Contact.jsx b/src/pages/Contact.jsx index 5bd6a0a..03e552e 100644 --- a/src/pages/Contact.jsx +++ b/src/pages/Contact.jsx @@ -60,7 +60,7 @@ export default function Contact() { fabric requirement. > } - texture="structured" + src="/images/library/hero-02-tencel-cotton.jpeg" >
Share an existing requirement, bulk quantity or new construction with
diff --git a/src/pages/Fabrics.jsx b/src/pages/Fabrics.jsx
index 60b1908..16aece2 100644
--- a/src/pages/Fabrics.jsx
+++ b/src/pages/Fabrics.jsx
@@ -10,6 +10,7 @@ export default function Fabrics() {
<>
- RRS manufactures greige knitted fabrics across diverse yarns, fibres
- and blends, with constructions developed according to the required
+ RRS manufactures grey knitted fabrics across diverse yarns, fibres and
+ blends, with constructions developed according to the required
texture, appearance and apparel application.
- Greige knitted fabrics developed around yarn, structure and
+ Grey knitted fabrics developed around yarn, structure and
application—then manufactured for consistent commercial supply.
- RRS specialises in circular-knitted greige fabrics developed for
+ RRS specialises in circular-knitted grey fabrics developed for
varied apparel applications.
@@ -118,7 +117,7 @@ export default function Home() {
See our capability
+ Explore the product families RRS manufactures across everyday,
+ active, exclusive and natural-fibre applications.
+
+ Illustrative product imagery · RRS photography to follow
+
+ Each family can be developed around the required structure, yarn,
+ handle and commercial quantity.
+ {text}
+
- Greige is where
+ Grey is where
it begins.
+ Knitted for
+
+
+ everyday performance.
+
+ the application.
+ >
+ }
+ >
+ {title}
+
+ {categories.map((category) => (
+
+ )}
+