for(const room of document.querySelectorAll('.decision-room')){ const tabs=[...room.querySelectorAll('[role=tab]')],panels=[...room.querySelectorAll('[role=tabpanel]')]; room.dataset.enhanced='true'; function select(index,focus=false){tabs.forEach((tab,i)=>{tab.setAttribute('aria-selected',String(i===index));tab.tabIndex=i===index?0:-1;panels[i].hidden=i!==index;});if(focus)tabs[index].focus({preventScroll:true});} tabs.forEach((tab,i)=>{tab.addEventListener('click',()=>select(i));tab.addEventListener('keydown',event=>{let next;if(event.key==='ArrowDown'||event.key==='ArrowRight')next=(i+1)%tabs.length;if(event.key==='ArrowUp'||event.key==='ArrowLeft')next=(i+tabs.length-1)%tabs.length;if(event.key==='Home')next=0;if(event.key==='End')next=tabs.length-1;if(next!==undefined){event.preventDefault();select(next,true);}});}); } for(const rail of document.querySelectorAll('.beauty-rail')){ const controls=document.createElement('div');controls.className='beauty-controls';controls.innerHTML='';rail.before(controls); const [prev,next]=controls.querySelectorAll('button'),status=controls.querySelector('[role=status]'); const update=()=>{const stride=rail.firstElementChild.getBoundingClientRect().width+20,start=Math.floor((rail.scrollLeft+2)/stride)+1,end=Math.min(rail.children.length,Math.ceil((rail.scrollLeft+rail.clientWidth)/stride));status.textContent=`${start===end?start:start+'–'+end} / ${rail.children.length}`;prev.disabled=rail.scrollLeft<2;next.disabled=rail.scrollLeft>=rail.scrollWidth-rail.clientWidth-2;}; const move=step=>rail.scrollBy({left:step*(rail.firstElementChild.getBoundingClientRect().width+20),behavior:matchMedia('(prefers-reduced-motion: reduce)').matches?'instant':'smooth'}); prev.addEventListener('click',()=>move(-1));next.addEventListener('click',()=>move(1));rail.addEventListener('scroll',update,{passive:true});addEventListener('resize',update);update(); } // Keep sound from multiple portfolio films from overlapping. document.querySelectorAll('video').forEach(video=>video.addEventListener('play',()=>document.querySelectorAll('video').forEach(other=>{if(other!==video)other.pause();})));