536a166b35
Build and Push Docker Images / Build Backend (FastAPI) (push) Successful in 13s
Build and Push Docker Images / Build Frontend (Next.js) (push) Failing after 43s
Build and Push Docker Images / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 12s
Build and Push Docker Images / Trigger Portainer Update (push) Has been skipped
Uses IntersectionObserver on each section element. Multiple thresholds (0, 0.1, 0.25, 0.5, 0.75, 1.0) track the intersection ratio of every section simultaneously; whichever has the highest visible ratio at any moment becomes the active item. rootMargin offsets for the sticky nav height so a section is only considered active once it's genuinely in view beneath the bar. Active link gets .sectionNavLinkActive — coral background + white text, matching the phase tab active style used elsewhere in the product. Observer is cleaned up on unmount. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>