# Photo credits — app/salon ("One appointment, start to finish")

All photographs are from [Unsplash](https://unsplash.com) and used under the
[Unsplash License](https://unsplash.com/license) (free to use commercially,
no permission or attribution required — credited here as good practice).
Files are local, resized copies (`?w=…&q=80&fm=jpg&fit=crop`) of the
originals below.

| File | Subject | Photographer | Source |
| --- | --- | --- | --- |
| `hero-interior.jpg` | Dark salon interior, illuminated arched mirror, empty chair | Emanuel Haas | https://unsplash.com/photos/salon-chair-with-arched-neon-mirror-Alw5pVQYG4c |
| `consultation.jpg` | Salon floor, stylist at the counter | Giorgio Trovato | https://unsplash.com/photos/woman-in-white-shirt-standing-near-black-leather-chairs-OKXwmdbdXkk |
| `colour.jpg` | Colourist painting balayage onto foiled hair | Ionela Mat | https://unsplash.com/photos/a-man-cutting-a-womans-hair-with-a-pair-of-scissors-lps3FolQ6Ro |
| `cut.jpg` | A hand holding open a pair of scissors, ready to cut | Daria Andriianova | https://unsplash.com/photos/a-person-holding-a-pair-of-scissors-in-their-hand-Dq2CoSqalnM |
| `finish.jpg` | Blow-dry styling, client's face turned away | Adam Winger | https://unsplash.com/photos/hairstylist-blow-drying-client-hair-FkAZqQJTbXM |
| `leave-lighter.jpg` | Finished sleek bob, from behind | Lu | https://unsplash.com/photos/womans-sleek-brown-bob-haircut-from-behind-TcWwRcf92GY |
| `products.jpg` | Unlabelled apothecary-style bottles on dark wooden shelves | Moon Kim | https://unsplash.com/photos/white-labeled-jars-in-floating-shelves-X0mEW18tAuQ |
| `tools-flatlay.jpg` | A pair of gold hairdressing scissors on a plain background | Markus Winkler | https://unsplash.com/photos/silver-scissors-on-pink-textile-RzUhB5oHcJs |
| `balayage-wave.jpg` | Finished balayage waves, from behind | "Jessie Dee" Dabrowski | https://unsplash.com/photos/person-wearing-black-top-W6cwaL7PMSw |
| `sectioning.jpg` | Stylist sectioning hair on the salon floor | Giorgio Trovato | https://unsplash.com/photos/woman-in-black-tank-top-XQlRnx0nfAs |

`colour.jpg` and `balayage-wave.jpg` are reused as the before/after slider
(mid-process foils → finished, glossy waves).

## `leave-lighter-hair-mask.png` — the "Try a shade" hair mask

The "Try a shade" tool colours only the hair pixels of `leave-lighter.jpg`.
That's done with a real segmentation mask, not a hand-drawn shape:

1. `hair_segmenter.tflite` — Google's official MediaPipe hair segmentation
   model — was downloaded once from
   `storage.googleapis.com/mediapipe-models/image_segmenter/hair_segmenter/float32/latest/hair_segmenter.tflite`.
2. It was run **offline**, outside this repo, using `@mediapipe/tasks-vision`
   in a throwaway scratch project driven by headless Chromium (Playwright) —
   the model and that package are never installed into this site or its
   `package.json`.
3. The model's confidence mask for the "hair" category was exported as a
   white-on-transparent PNG at the source photo's native resolution, then
   feathered with a ~2px Gaussian blur on the alpha channel so colour
   blends into flyaway strands instead of stopping at a hard edge.

At runtime the site only ever loads this static PNG as a CSS `mask-image`
— there is no ML model, WASM, or extra dependency shipped to the browser.

Maison Vey is a fictional business; these photographs illustrate the
concept only and do not depict a real salon, its staff, or its clients.
Where a face is visible it belongs to an Unsplash contributor's photo
used under license, not a real Maison Vey client.
