SQUISHIES.GR / SQUISH CARNIVAL / v2.0
19 October 2026

Open dist/index.html through a local HTTP server to explore the storefront.
Open dist/brand.html for the full nine-part brand guide.
The guide supports print / save as PDF and provides downloadable SVG assets.

Included interactions: product filtering, sorting and search; quick view;
wishlist and bag stored in this browser; quantity controls; mood finder;
press-and-hold Squish Lab with two return speeds.

Original game characters are illustrative concepts. Retail products, prices and images come from the B2B feed.
Retail catalogue and availability now sync from B2B. Checkout, shipping and payment services remain unconfigured.
Real product records and safety evidence must be supplied before launch.
The existing published preview retains its public audience.

Fonts: Fredoka and DM Sans via Google Fonts; system fallback fonts are configured.
Editable SVG logo text requires the font. Outline text before final print use.
Original character artwork and the game contact sheet were generated using the built-in image generation tool. The current homepage hero uses original supplier catalogue photos.
See image-prompts.txt for the final prompts.

Current palette: Happy Violet #7639EF; Soft Cream #FFF9E8;
Bubblegum Pink #FF80B4; Electric Sunshine #FFF056;
Mochi Mint #BCEFCF; Daydream Lilac #DAC5FF; Deep Ink #29204A.


BILINGUAL UPDATE / v1.1
Greek is the default at /. English is available at /en/.
Both the storefront and brand guide have complete static language variants.
The EL/EN switch remembers an explicit choice in this browser.
?lang=el or ?lang=en explicitly selects a language.
Product IDs, favourites and bag storage are shared between languages.
Prices use el-GR or en-IE locale formatting. Search supports Greek and English.
Greek headings use Comfortaa; Greek body uses Arial. The logo remains Fredoka.
Run node build-locales.cjs after editing src/index.html, src/brand.html or src/el.json.
The downloadable kit contains both language variants and their shared assets.

DESIGN UPDATE / v1.2
Bolder collectible-toy visual direction, transparent floating character art,
illustrated collection filters, tactile product cards and a redesigned Squish Lab.
The hero characters respond to press-and-hold, including keyboard controls.
Reduced-motion preferences disable the decorative floating animation.
Inter replaces Comfortaa for Greek display typography and is the shared body font.
Brand guide and downloadable kit updated to match.
Original generated image: dist/assets/hero-v2.png. Prompt: image-prompts-v2.txt.

TACTILE UPDATE / v1.3
Press and hold product images with mouse, touch, Space or Enter.
Details remain available from the product title and Details button.
Slow-rise cards return in 1.1s; the star returns in 0.45s.
Sound effects are synthesized locally with Web Audio at low volume.
Sound starts off, remembers an explicit preference across languages,
and never plays on page load or hover. The fixed Sound switch mutes immediately.
Reduced motion uses a static press highlight instead of card deformation.
Pointer cancellation, focus loss and removed cards reset active gestures.
No extra audio files, tracking or network services are used.

DESIGN & NAVIGATION UPDATE / v1.4
Lilac editorial hero, aligned cards and clearer typography.
Sticky desktop header with illustrated collection menu.
Mobile navigation drawer, menu search, collection and favourite routes.
Native dialog focus handling, Escape dismissal and keyboard navigation.
Collection routes clear stale searches and retain shared bag and favourites.
Brand guide and downloadable kit updated to match.

PRODUCT PAGE UPDATE / v1.5
Individual product links: product.html?id=axo (also berry, star, frog).
English equivalents: en/product.html?id=axo. Language changes keep the product ID.
Large image, same-artwork detail crop, full-screen enlargement and interactive squish mode.
Three digital return speeds; keyboard/touch controls and reduced motion are supported.
Materials, dimensions, scent, age, warnings and safety records show supplier-data status.
All product properties remain unverified. No certification or live-purchase claims.
Shared shop-core.js owns catalogue, bag, favourites, dialogs and finder on both page types.
Product pages inherit the storefront shell during the bilingual build.

BAG & CHECKOUT UPDATE / v1.6
Redesigned bag drawer with 1–99 quantity controls, line totals and undo removal.
Item subtotals are calculated in integer cents. Shipping and taxes remain unconfigured.
Checkout preview: checkout.html and en/checkout.html. Three guest steps: details, delivery, review.
Sample-details helper, field validation, mobile summary and keyboard-accessible step navigation.
Demo contact/address draft lives in sessionStorage for this tab, never in localStorage or a URL.
No form submissions, card fields, network requests, payments or orders. Finishing clears the draft.
The bag remains intact after finishing the preview. An empty bag offers a route back to the shop.
Greek is the default; both pages and the brand kit include complete English/Greek variants.

SEARCH & FILTER UPDATE / v1.7
Always-visible bilingual search, accent-insensitive word matching, quick ideas, live counts, individual filter chips and reset.
Brand, texture, size and age use a responsive draft/apply drawer with contextual option counts.
Multiple choices are OR within a facet and AND across facets. URLs retain choices through language changes and browser navigation.
Supplier metadata belongs in product.specs: brand, texture, sizeCm (longest dimension), minimumAge (manufacturer minimum).
Missing metadata is pending, never inferred from artwork, character names or digital animations. Age options match confirmed minimum ages exactly.
The original concepts currently have no confirmed supplier metadata. Verified-only options remain unavailable until populated.

REAL RETAIL CATALOGUE & STOCK / v1.8
The shop reads https://b2b.gricgroup.gr/wp-json/gric-squishies/v1/catalogue on load and every two minutes while visible.
Source plugin: integrations/gric-squishies-feed (installed on the live B2B site). Server cache lasts up to 120 seconds and invalidates on product/meta/term changes.
Only published Greek originals in Squishies are included; CDU-only display units are excluded. English copy uses validated WPML SKU/brand identity or a clearly labelled Greek fallback.
Retail prices use retail_price exactly; no wholesale prices or stock quantities are exported. Bands: 10+ plenty (green), 1-9 low (orange), unknown available (green), preorder (violet), sold-out (muted violet).
Recorded expected dates are shown with their day/month precision; past dates and missing dates never imply an imminent return.
Shipping dimensions are not treated as toy size. Explicit product-size-cm or an explicit source-description diameter may populate size filtering. Missing age/material/texture stays pending.
Original characters now belong to the Squish Lab, character personality quiz and four-pair memory game. They are excluded from the commercial catalogue and bag.
All shopping and product pages use real product IDs, real images and shared real-product bag/favourites. Checkout remains a design preview; no payment or order processing is enabled.
On a feed failure, last received items are labelled by the last check and new additions are disabled until a successful refresh. No concept products are used as fallback stock.

SQUISH CARNIVAL MAIN DESIGN / v2.0
Squish Carnival is the default at every normal shop route, in both languages. No preview chooser appears in the main shopping flow. Greek remains the default for fresh visitors; an explicit English choice is remembered. Earlier design previews remain accessible only by explicit design query or /designs.

CUSTOMER CATALOGUE POLICY
Supplier brand names are removed from product names, both language search names, descriptions, short descriptions, image alt text, materials, age text, warnings and display attributes. Brand/manufacturer rows and brand-led navigation/facets are removed. Brand-aware identity validation still happens upstream; original supplier photos and packaging are unaltered. New feed brand values are automatically included in text removal.
Browse Ready to squish, Last little squishes and On the way instead. Texture, physical size, confirmed minimum age, search, sorting, wishlist, bag, interactive previews, optional sound and all Lab games remain.
Map the validated feed before any storefront, search, related product, favourite, bag or product route consumes it. In-stock items remain eligible. Out-of-stock and preorder items require a supplied valid restock date: today or later for day precision; the current or a later month for month precision. Compare in Europe/Athens. Missing, malformed, impossible and expired dates are excluded without inventing an ETA. A newly hidden item is removed from the bag/favourites on sync and its direct product page becomes unavailable. The rules are reevaluated on every refresh.

Current public-feed validation on 19 October: 23 records supplied; 18 eligible (16 in stock, two dated preorder arrivals), five undated sold-out items hidden. This is a check, not a fixed inventory list.

FLOATING REAL PRODUCT HOMEPAGE HERO
The hero uses reviewed transparent product cutouts for Nice Buns, Boba Tea and Capybara. Photographed colours, faces, printed details and textures are preserved; backgrounds, hands, packaging and supplier captions are removed. Gentle floating motion pauses during digital squishes and is disabled by reduced-motion preferences. Separate name/price links open the exact real products.
Only matching reviewed SKUs from the live in-stock, priced simple catalogue are shown. Unavailable items disappear; fewer reviewed eligible items means fewer toys. No unreviewed supplier poster or concept character is substituted. Prices and availability still update from GricGroup. Greek remains the default.
Original supplier photos remain available in the product galleries. The original characters stay in the Squish Lab, quiz and memory game.
Official additional manufacturer media, provenance and exact built-in image-editing prompts: integrations/product-media/. The three reviewed official galleries contain 17 photos and no playable product video URL.
Implementation: dist/retail-hero.js and dist/retail-hero.css; source markup in src/index.html.

PRODUCT CARDS AND EXPANDED GALLERIES
Reviewed cutouts lead the matching Nice Buns, Boba Tea and Capybara cards, product pages, related items and bag previews. The curated local module matches both SKU and GricGroup ID. All 17 extra official manufacturer photos are hosted unchanged alongside existing B2B photos; each matching product currently has a 12-image gallery including its cutout. A bilingual counter, previous/next controls, scrollable thumbnails and zoom make the photos accessible on mobile. The digital squish demo always returns to the primary cutout.
The original feed URL validator, prices, availability, materials/safety facts, catalogue exclusions and Greek default remain unchanged. Source URLs, local photo paths and integrity hashes are recorded in integrations/product-media/sources.json.

CATALOGUE CUTOUTS AND VERIFIED ATTRIBUTE FALLBACKS (19 OCTOBER 2026)
SHOP SETUP PREPARATION: integrations/commerce/ contains the current setup record, remaining operating decisions and tested quote preparation. It is not a deployed order API. Checkout adds an optional delivery phone and Greek postcode checks in both languages; orders and payments remain unconnected.
DOWNLOADS: Extract brand-kit.zip first. Extract the companion product-cutouts.zip inside its assets folder, creating assets/cutouts/. The two downloads together contain the complete site and its reviewed media.
All 18 currently eligible products use their reviewed real-product cutout first, across cards, product pages and bags. The other gallery photos remain intact. Fifteen new cutouts and their original source URLs/prompts/hashes are recorded in integrations/product-media/catalogue-cutout-prompts.json.
Missing specifications are enriched only from exact-product reviewed sources, matched by SKU and GricGroup ID. Live supplier attributes take precedence. Prices and stock are not imported from external retailers. See integrations/product-facts/README.md, reviewed.json and audit.json for evidence, remaining gaps and rejected dimension/material conflicts.

CLOUDPANEL AND VIVA RETURN PAGES / 20 OCTOBER 2026
The storefront is deployed at https://squishies.gr/ on existing CloudPanel hosting, using a trusted certificate and forced HTTPS. Greek remains the default. No Shopify or WordPress.com account is needed.
Payment return pages: payment-success.html and payment-failed.html, with English equivalents under en/. The pages never take a payment, clear the bag or mark an order paid based on the URL. Read-only checks require a matching scoped WooCommerce order and verified Viva transaction. Direct visits show unverified.
The cart/order/ACS flow remains a preview; real orders and payments are not enabled. Backend module 1.3.0 is active, with existing product/quote checks preserved. See integrations/commerce/payment-returns.md and README.md for the future order contract, source/credentials and email/ERP prerequisites.
