# Changelog All notable changes to the Apex Turf landing page. ## [1.0.0] — 2026-08-24 ### Added - Initial build of the `dist/` landing page (`index.html`, `css/styles.css`, `js/main.js`) from the three reference mockups in `website-ideas/` and the copy/structure in `pdfs/`. - Full-bleed diagonal split hero: fixed Residential/Landscaping pane (lion) + auto-rotating Sport Turf pane cycling Pádel (shark) → Football (panther) → Golf (eagle), with manual tabs and pause-on-hover/focus. - Sticky header with scroll-spy nav highlighting and mobile hamburger menu. - Value pillars section, 4-card specialties quick-nav grid, and four alternating-layout detail sections (Landscaping / Pádel / Football / Golf). - About/trust section (Installers First, Apex Guarantee cards). - Visual gallery/showcase strip. - Front-end-only quote request form with client-side validation and success state. - Footer with contact info, quick links, and social icons. - Scroll-reveal animations, smooth-scroll-with-offset, back-to-top button. - Copied and web-optimized image assets from `animals/` and `logos/` into `dist/assets/images/` (JPEG re-compression + logo resizing to cut total image weight roughly in half). ### Fixed (found via automated visual/interaction testing during the build) - **Hero right pane not filling its full height.** The rotating Pádel/Football/Golf pane was sized to its text content instead of the full pane (an absolutely-positioned image nested inside a flex-aligned container without an explicit fill), so the background photo appeared as a small floating box instead of full-bleed like the reference mockups. Fixed by making the scene layers fill the pane via `inset: 0` and moving the pane's padding onto the scene layer itself. - **Scroll-reveal content could get stuck invisible.** The fade-in-on-scroll effect relied solely on `IntersectionObserver` firing; if it didn't (or fired late), content stayed at `opacity: 0` forever. Added a try/catch fallback, a 2.5s force-reveal safety timeout, and a `