# Brief: Harbour & Hearth autumn/winter catalogue (ultimate-v13)

The catalogue shows every product cut out of its lifestyle frame and set on a full-bleed brand colour, with its
description running around the product's own outline. You are the prepress house: produce the print-ready
catalogue and its editable source.

## Pages
- Twelve A4 portrait pages (210 x 297 mm trim, 3 mm bleed on every edge), in the order of page_plan.json.
- Each page is a full-bleed fill of its brand colour (the CMYK values in page_plan.json, as process CMYK).
- Each page carries its two SKUs. Layout, alignment and typography are free within these rules: keep live type
  at least 8 mm inside the trim, nothing may overlap a product, products may not overlap each other, and every
  product stays inside the trim.

## Cut-outs
- Every product is cut out of its delivered frame at its physical outline: none of the room, floor, table,
  shadow, reflection, chart or other furniture may remain, and no part of the product may be lost. Background
  seen through handles, between chair spindles and stool legs, inside wire cages, chandelier arms, carved
  aprons and lattice or fretwork panels, and between fronds and leaves is not product. Lantern and chandelier glass is part of the product and
  is reproduced opaque (it counts as product coverage). Fur and fibre edges keep their natural soft edge.
- Soft-edge products (soft_edge_skus in page_plan.json: the faux-fur, sheepskin and long-pile items): the outline
  of the fibre mass must be followed, neither trimmed inside the fur nor carrying a halo of background; an alpha
  matte or a feathered path is acceptable at the fibre tips.
- On press a fringe of background or a bite out of the product wider than about 0.2 mm is visible against the
  brand colours and is rejected at proof. The quality contract treats a connected region of at least
  six master pixels beyond its 0.2 mm proof tolerance as a visible local defect; this applies separately to
  residual background and missing product, after fibre-mass smoothing on the soft-edge SKUs.
- Keep the master pixel grid: crop only. Do not resample, rotate, flip or retouch the product pixels other than
  the colour correction below. Place every product at 100 % so it prints at the master's 300 ppi.

## Colour
- Every frame carries a camera colour error: per-channel tone-response errors, crosstalk between the channels
  (hue and saturation shifts) and an uncorrected white balance; each set-up's chart frame has exactly the same
  error as its product frame. chart_reference.json gives the chart's published values (patches counted from 1,
  row-major from the top-left).
- Correct each product frame from its own chart frame. Profile the set-up so that the chart reproduces its
  published values: a per-channel tone curve that brings the neutral patches 19 to 24 onto the published neutral
  steps, followed by a 3 x 3 matrix fitted on all 24 patches. Brightness is anchored on neutral patch 22, whose
  delivered green level is kept. Apply the same correction to the product.
- Separate for ISO Coated v2 300% (profiles/ISOcoated_v2_300_bas.icc) with relative colorimetric intent and
  black point compensation, or place RGB images with an embedded correct profile in a PDF/X-4 whose output intent
  is that profile (the evaluator then applies the same intent). The printed product colour is what counts.

## Copy
- Per SKU: the name (Noto Sans Bold, 14 to 18 pt), the price and the SKU code (live text), and the description
  (Noto Sans Regular, 9 to 11 pt) exactly as approved: catalogue_copy.json with the client's changes in
  copy_amendments.md applied (a later email overrides an earlier one). Superseded names, prices and sentences
  must not appear.
- Each description wraps around its own product: at least four of its lines run beside the cut-out, each of
  those lines keeping 3 mm from the visible product edge (no closer than 2.5 mm, and no further than 6 mm on the
  side facing the product except the description's final line), so the text follows the silhouette rather than
  a rectangle. Copy may not run into gaps inside a product's outline.

## Deliverables (output/)
- catalogue.sla: Scribus 1.6.4 source of all 12 pages with images linked relatively from output/assets/.
- catalogue_press.pdf: PDF/X-4, 12 pages with trim and bleed boxes, embedded fonts, output intent ISO Coated v2
  300%, exported from catalogue.sla.
- assets/: the cut-out masters you placed (TIFF or PNG; clipping path or alpha channel).
- handoff.json: {"version": "ultimate-v13", "skus": [{"sku": "HH-1041", "source_frame": "photos/HH-1041.tif",
  "asset": "assets/<file>", "crop_origin_px": [x, y]}, ...]} where crop_origin_px is the top-left pixel of the
  asset in the source frame.

The supplied quality_acceptance.md states the scoring weights, measurements and production acceptance tolerances for this delivery.
# Studio delivery note: Harbour & Hearth autumn/winter catalogue

All frames are CGI lifestyle renders delivered by the studio as 16-bit TIFF, sRGB, 2400 x 1600 px at 300 ppi,
one product frame and one colour-chart frame per set-up. The chart frame was captured with the same camera
settings as its product frame. The camera profile in our raw converter was wrong for this shoot and the white balance was not reset between
set-ups, so the colour of every frame is off: per-channel tone response, crosstalk between the channels and the
balance. Each set-up's chart frame went through the same camera and converter settings as its product frame.
File names were typed up from the shot log at the end of a long day; please check each frame against the copy
before you start.

Corrections to this delivery:

- HH-2203: the frame is tagged with an Adobe RGB (1998) profile by our export preset. The pixels are sRGB like
  every other frame; ignore the embedded tag.
- HH-4402: photos/HH-4402.tif is the low-resolution web proxy that went to the client for approval. The print
  master is masters/DSC_4402_master.tif.
- HH-6618: photos/HH-6618.tif shows the sage pot from a cancelled colourway. The catalogue SKU is the white pot,
  delivered as alternates/HH-6618_white.tif.

The renders are simulated studio material generated for this job (program-rendered from CC0 3D assets); see
LICENSE_AND_SOURCE.md.
total 59191
drwxr-xr-x 2 root root 39589049 Oct  7 12:25 assets
-rwx------ 1 root root   326625 Oct  7 12:48 catalogue.sla
-rw-r--r-- 1 root root 60278924 Oct  7 12:48 catalogue_press.pdf
-rw-r--r-- 1 root root     4317 Oct  7 12:48 handoff.json
-rw-r--r-- 1 root root 1682 Oct  7 12:24 /workspace/scratch/assets.py
-rw-r--r-- 1 root root 1737 Oct  7 11:47 /workspace/scratch/autosoft.py
-rw-r--r-- 1 root root 1327 Oct  7 13:04 /workspace/scratch/backfur.py
-rw-r--r-- 1 root root  836 Oct  7 13:05 /workspace/scratch/birchfix.py
-rw-r--r-- 1 root root 2436 Oct  7 12:35 /workspace/scratch/build.py
-rw-r--r-- 1 root root  788 Oct  7 12:57 /workspace/scratch/candelabrafix.py
-rw-r--r-- 1 root root  886 Oct  7 12:59 /workspace/scratch/chair4461fix.py
-rw-r--r-- 1 root root  705 Oct  7 13:01 /workspace/scratch/chair7150fix.py
-rw-r--r-- 1 root root 1199 Oct  7 12:52 /workspace/scratch/chairfix.py
-rw-r--r-- 1 root root 1564 Oct  7 12:55 /workspace/scratch/chandelierfix.py
-rw-r--r-- 1 root root 1795 Oct  7 12:01 /workspace/scratch/colourfit.py
-rw-r--r-- 1 root root  917 Oct  7 11:55 /workspace/scratch/docs.py
-rw-r--r-- 1 root root 3558 Oct  7 12:14 /workspace/scratch/edits_more.py
-rw-r--r-- 1 root root  704 Oct  7 12:34 /workspace/scratch/export.py
-rw-r--r-- 1 root root 2217 Oct  7 12:44 /workspace/scratch/finalmasks.py
-rw-r--r-- 1 root root 1113 Oct  7 12:03 /workspace/scratch/fitfinal.py
-rw-r--r-- 1 root root 1071 Oct  7 12:03 /workspace/scratch/fitfinal0.py
-rw-r--r-- 1 root root  864 Oct  7 12:02 /workspace/scratch/fitmodels.py
-rw-r--r-- 1 root root 1474 Oct  7 12:02 /workspace/scratch/fitpchip.py
-rw-r--r-- 1 root root 2151 Oct  7 12:27 /workspace/scratch/fretchair.py
-rw-r--r-- 1 root root 1684 Oct  7 13:13 /workspace/scratch/fur7101.py
-rw-r--r-- 1 root root 1562 Oct  7 11:45 /workspace/scratch/grabsoft.py
-rw-r--r-- 1 root root 1565 Oct  7 11:45 /workspace/scratch/grabsoft0.py
-rw-r--r-- 1 root root 1793 Oct  7 11:49 /workspace/scratch/hardseg.py
-rw-r--r-- 1 root root 1721 Oct  7 11:34 /workspace/scratch/initial.py
-rw-r--r-- 1 root root 1125 Oct  7 13:08 /workspace/scratch/lanternfix.py
-rw-r--r-- 1 root root 3019 Oct  7 12:33 /workspace/scratch/layout.py
-rw-r--r-- 1 root root  845 Oct  7 12:53 /workspace/scratch/localfixes.py
-rw-r--r-- 1 root root 2567 Oct  7 11:36 /workspace/scratch/masks1.py
-rw-r--r-- 1 root root 2237 Oct  7 12:20 /workspace/scratch/matting.py
-rw-r--r-- 1 root root 1684 Oct  7 11:41 /workspace/scratch/matting0.py
-rw-r--r-- 1 root root 1887 Oct  7 11:44 /workspace/scratch/matting1.py
-rw-r--r-- 1 root root 1998 Oct  7 12:11 /workspace/scratch/matting2.py
-rw-r--r-- 1 root root 1999 Oct  7 12:13 /workspace/scratch/matting3.py
-rw-r--r-- 1 root root 2220 Oct  7 12:15 /workspace/scratch/matting4.py
-rw-r--r-- 1 root root 2075 Oct  7 12:20 /workspace/scratch/matting5.py
-rw-r--r-- 1 root root 2182 Oct  7 12:35 /workspace/scratch/patchsla.py
-rw-r--r-- 1 root root 1048 Oct  7 11:39 /workspace/scratch/pos.py
-rw-r--r-- 1 root root 1359 Oct  7 12:47 /workspace/scratch/puffinmatte.py
-rw-r--r-- 1 root root  976 Oct  7 13:02 /workspace/scratch/rosewellfix.py
-rw-r--r-- 1 root root 2459 Oct  7 12:40 /workspace/scratch/rugmatte.py
-rw-r--r-- 1 root root 1754 Oct  7 12:39 /workspace/scratch/rugmatte0.py
-rw-r--r-- 1 root root  493 Oct  7 12:32 /workspace/scratch/testcms.py
-rw-r--r-- 1 root root 1041 Oct  7 12:31 /workspace/scratch/testscribus.py
-rw-r--r-- 1 root root 1654 Oct  7 11:37 /workspace/scratch/testseg.py
-rw-r--r-- 1 root root 2429 Oct  7 12:00 /workspace/scratch/updateedits.py
-rw-r--r-- 1 root root 1294 Oct  7 13:10 /workspace/scratch/warmfur.py
-rw-r--r-- 1 root root 1348 Oct  7 13:15 /workspace/scratch/warmfurend.py
-rw-r--r-- 1 root root 1060 Oct  7 13:12 /workspace/scratch/warmfurfull.py
-rw-r--r-- 1 root root 1291 Oct  7 12:42 /workspace/scratch/yetifoot.py
