(function(){
"use strict";
if("scrollRestoration" in history) history.scrollRestoration="manual";
const progress=document.getElementById("scrollProgress");
const header=document.querySelector(".site-header");
const reveals=[...document.querySelectorAll(".reveal")];
const navLinks=[...document.querySelectorAll(".site-header nav a")];
const sections=navLinks.map(link=>({link,target:document.querySelector(link.getAttribute("href"))})).filter(x=>x.target);
const lifecycle=document.getElementById("behind");
const performance=document.getElementById("team-value");
const layerRail=document.getElementById("layerRail");
const railStatus=document.getElementById("railStatus");
const layerLinks=[...document.querySelectorAll(".layer-rail [data-layer]")];
const layerSections=[...document.querySelectorAll("[data-layer-section]")];
const labels={overview:"04 · 工程链入口",select:"05 · 目标展开",acquire:"06 · 获取阶段",dag:"07 · 依赖图",resource:"08 · 资源准入",optimize:"09 · 动态分配",feedback:"10 · 运行反馈",complete:"11 · 验证提交"};
const observer=new IntersectionObserver(entries=>entries.forEach(entry=>{if(entry.isIntersecting){entry.target.classList.add("visible");observer.unobserve(entry.target);}}),{threshold:.12,rootMargin:"0px 0px -7% 0px"});
reveals.forEach((item,index)=>{item.style.transitionDelay=`${Math.min(index%5,3)*45}ms`;observer.observe(item);});
function update(){
const scrollable=document.documentElement.scrollHeight-innerHeight;
progress.style.width=`${scrollable>0?Math.min(100,Math.max(0,scrollY/scrollable*100)):0}%`;
header.classList.toggle("scrolled",scrollY>20);
let active=null; sections.forEach(item=>{if(item.target.getBoundingClientRect().top<=innerHeight*.38)active=item;});
navLinks.forEach(link=>link.classList.toggle("active",Boolean(active&&link===active.link)));
const started=lifecycle&&lifecycle.getBoundingClientRect().top<=innerHeight*.45;
layerRail?.classList.toggle("visible",Boolean(started));
const complete=performance&&performance.getBoundingClientRect().top<=innerHeight*.42;
let activeLayer=null; layerSections.forEach(section=>{if(section.getBoundingClientRect().top<=innerHeight*.42)activeLayer=section.dataset.layerSection;});
const activeIndex=layerLinks.findIndex(link=>link.dataset.layer===activeLayer);
layerLinks.forEach((link,index)=>{link.classList.toggle("active",index===activeIndex&&!complete);link.classList.toggle("passed",complete||(activeIndex>=0&&index<activeIndex));});
layerRail?.classList.toggle("complete",Boolean(complete));
if(railStatus)railStatus.textContent=complete?"后台工作已完整揭示":activeLayer?labels[activeLayer]:"一次安装 · 准备开始";
}
addEventListener("scroll",update,{passive:true}); addEventListener("resize",update,{passive:true});
addEventListener("load",()=>{if(!location.hash||location.hash==="#top")scrollTo(0,0);else document.querySelector(location.hash)?.scrollIntoView();update();});
update();
})();