(function(){
'use strict';
function initMobileNav(){
var toggle=document.querySelector('.menu-toggle');
var nav=document.getElementById('site-navigation');
var menu=document.getElementById('primary-menu');
if(! toggle||! nav){
return;
}
toggle.addEventListener('click', function(){
var expanded=toggle.getAttribute('aria-expanded')==='true';
toggle.setAttribute('aria-expanded', String(! expanded) );
nav.classList.toggle('nav-open');
document.body.classList.toggle('menu-is-open');
});
document.addEventListener('click', function(event){
if(nav.classList.contains('nav-open') &&
! nav.contains(event.target) &&
! toggle.contains(event.target) ){
toggle.setAttribute('aria-expanded', 'false');
nav.classList.remove('nav-open');
document.body.classList.remove('menu-is-open');
}});
document.addEventListener('keydown', function(event){
if(event.key==='Escape'&&nav.classList.contains('nav-open') ){
toggle.setAttribute('aria-expanded', 'false');
nav.classList.remove('nav-open');
document.body.classList.remove('menu-is-open');
toggle.focus();
}});
}
function initSmoothScroll(){
var anchors=document.querySelectorAll('a[href^="#"]');
anchors.forEach(function(anchor){
anchor.addEventListener('click', function(event){
var targetId=this.getAttribute('href');
if(targetId==='#'||targetId.length <=1){
return;
}
var target=document.querySelector(targetId);
if(target){
event.preventDefault();
var headerHeight=document.getElementById('masthead').offsetHeight||0;
var targetPos=target.getBoundingClientRect().top + window.pageYOffset - headerHeight - 20;
window.scrollTo({
top: targetPos,
behavior: 'smooth'
});
}});
});
}
function initStaggerAnimations(){
if(window.matchMedia('(prefers-reduced-motion: reduce)').matches){
var allAnimated=document.querySelectorAll('.column-card, .guest-card, .host-card, .lead-story, .section-heading, .rule-divider, .platform-link');
allAnimated.forEach(function(el){
el.classList.add('is-visible');
});
return;
}
var observerOptions={
root: null,
rootMargin: '0px 0px -50px 0px',
threshold: 0.1
};
var observer=new IntersectionObserver(function(entries){
entries.forEach(function(entry){
if(entry.isIntersecting){
var parent=entry.target.parentElement;
var siblings=parent ? Array.from(parent.children):[];
var index=siblings.indexOf(entry.target);
var delay=index * 100;
entry.target.style.transitionDelay=delay + 'ms';
entry.target.classList.add('is-visible');
observer.unobserve(entry.target);
}});
}, observerOptions);
var targets=document.querySelectorAll('.column-card, .guest-card, .host-card, .lead-story__article, .section-heading, .platform-link');
targets.forEach(function(target){
observer.observe(target);
});
}
function initScrollHeader(){
var header=document.getElementById('masthead');
if(! header){
return;
}
var lastScroll=0;
var ticking=false;
function updateHeader(){
var scrollTop=window.pageYOffset||document.documentElement.scrollTop;
if(scrollTop > 100){
header.classList.add('is-scrolled');
}else{
header.classList.remove('is-scrolled');
}
lastScroll=scrollTop;
ticking=false;
}
window.addEventListener('scroll', function(){
if(! ticking){
window.requestAnimationFrame(updateHeader);
ticking=true;
}}, { passive: true });
}
function init(){
initMobileNav();
initSmoothScroll();
initStaggerAnimations();
initScrollHeader();
}
if(document.readyState==='loading'){
document.addEventListener('DOMContentLoaded', init);
}else{
init();
}})();