This page requires JavaScript to display.
ADEILÉ OPERATIONS · GROWTH · SYSTEMS
Unpacking...
// ── NAV ─────────────────────────────────────────────────────────── function initNav(){ const pill=document.getElementById('np'),btns=document.querySelectorAll('.nav-btn[data-page]'); const mv=btn=>{if(!btn)return;pill.style.width=btn.offsetWidth+'px';pill.style.left=btn.offsetLeft+'px'}; setTimeout(()=>mv(document.querySelector('.nav-btn.active')),80); btns.forEach(btn=>btn.addEventListener('click',()=>{ btns.forEach(b=>b.classList.remove('active'));btn.classList.add('active');mv(btn); document.querySelectorAll('.page').forEach(p=>p.classList.remove('active')); document.getElementById(`page-${btn.dataset.page}`).classList.add('active'); window.scrollTo({top:0,behavior:'smooth'}); })); window.addEventListener('resize',()=>{const a=document.querySelector('.nav-btn.active');if(a)mv(a)}); } function switchPage(id){ const btn=document.querySelector(`[data-page="${id}"]`); if(btn)btn.click(); } // ── GLARE ───────────────────────────────────────────────────────── function initGlare(){ const nav=document.getElementById('gn'),g=document.getElementById('ng'); if(!g)return; document.addEventListener('mousemove',e=>{ const r=nav.getBoundingClientRect(); if(g.style)g.style.setProperty('--mx',(e.clientX-r.left)+'px'); }); } // ── THEME ───────────────────────────────────────────────────────── function initTheme(){ const saved=localStorage.getItem('adeile_theme'); if(saved)document.documentElement.dataset.theme=saved; document.getElementById('tb').addEventListener('click',()=>{ const h=document.documentElement; const next=h.dataset.theme==='dark'?'light':'dark'; h.dataset.theme=next; localStorage.setItem('adeile_theme',next); }); } // ── TITLE ROTATOR ───────────────────────────────────────────────── function initTitles(){ const titles=['Operations Lead','Growth Strategist','Systems Architect']; let i=0;const el=document.getElementById('tr'); if(!el)return; setInterval(()=>{ i=(i+1)%titles.length;el.style.animation='none';el.offsetHeight; el.textContent=titles[i];el.style.animation='ts 2.8s ease'; },2800); } // ── CHAT ────────────────────────────────────────────────────────── let msgs=[],cmode='ask'; function initChat(){ const input=document.getElementById('cinput'),send=document.getElementById('csend'),cm=document.getElementById('cm'); document.querySelectorAll('.ctab').forEach(tab=>tab.addEventListener('click',()=>{ document.querySelectorAll('.ctab').forEach(t=>t.classList.remove('active')); tab.classList.add('active');cmode=tab.dataset.c;msgs=[]; cm.innerHTML=`

${cmode==='jd'?"Paste any job description. I'll assess Adeilé's fit honestly, with strengths, gaps, a score out of 10, and a straight verdict.":"I know Adeilé's full work history. Ask me about a role, a capability, or whether they'd be right for your team."}

`; input.placeholder=cmode==='jd'?'Paste a job description here…':'Ask me anything about Adeilé…'; input.rows=cmode==='jd'?3:1; })); async function doSend(){ const txt=input.value.trim();if(!txt||send.disabled)return; input.value='';send.disabled=true;msgs.push({role:'user',content:txt}); const ud=document.createElement('div');ud.className='cmsg u';ud.innerHTML=`
${txt}
`;cm.appendChild(ud); const td=document.createElement('div');td.className='cmsg ai'; td.innerHTML=`
`; cm.appendChild(td);cm.scrollTop=cm.scrollHeight; try{ const r=await fetch('/api/chat',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({model:'claude-sonnet-4-20250514',max_tokens:1000,system:SYS,messages:msgs})}); const data=await r.json(); const reply=data.content?.map(b=>b.text||'').join('\n')||'No response.'; msgs.push({role:'assistant',content:reply});td.querySelector('.cbubble').textContent=reply; }catch{td.querySelector('.cbubble').textContent='Something went wrong. Please try again.';} cm.scrollTop=cm.scrollHeight;send.disabled=false; } send.addEventListener('click',doSend); input.addEventListener('keydown',e=>{if(e.key==='Enter'&&!e.shiftKey){e.preventDefault();doSend();}}); } // ── BOOKING ─────────────────────────────────────────────────────── function initBooking(){ const modal=document.getElementById('bookingModal'); const MSGS=[ {sub:"Demo Session Request — System Ops OS",body:e=>`Hi Adeilé,\n\nI'd like to see the System Ops OS built live. Can we schedule a demo at your earliest convenience?\n\nYou can reach me at: ${e||'[your email]'}\n\nLooking forward to hearing from you.`}, {sub:"Operational Needs Inquiry — System Ops OS",body:e=>`Hi Adeilé,\n\nI have specific operational challenges I'd like to explore. I want to understand how the System Ops OS could be built around my company's needs.\n\nYou can reach me at: ${e||'[your email]'}\n\nLooking forward to the conversation.`}, {sub:"Consultation Call Request — System Ops OS",body:e=>`Hi Adeilé,\n\nI'd like to schedule a call to learn more about your consultation process and how you typically work with companies before committing to a session.\n\nYou can reach me at: ${e||'[your email]'}\n\nLooking forward to connecting.`}, ]; let sel=0; const open=()=>modal.classList.add('open'); const close=()=>modal.classList.remove('open'); document.querySelectorAll('.ctabtn').forEach(b=>b.addEventListener('click',open)); document.getElementById('modalClose').addEventListener('click',close); document.getElementById('modalBackdrop').addEventListener('click',close); document.addEventListener('keydown',e=>{if(e.key==='Escape')close()}); document.querySelectorAll('.msg-opt').forEach(opt=>opt.addEventListener('click',()=>{ document.querySelectorAll('.msg-opt').forEach(o=>o.classList.remove('selected')); opt.classList.add('selected');sel=parseInt(opt.dataset.idx); })); document.getElementById('modalSend').addEventListener('click',()=>{ const email=document.getElementById('senderEmail').value.trim(); const m=MSGS[sel]; window.location.href=`mailto:me@adeile.com?subject=${encodeURIComponent(m.sub)}&body=${encodeURIComponent(m.body(email))}`; }); } document.addEventListener('DOMContentLoaded',()=>{ renderRoles();renderSkills(); initNav();initGlare();initTheme();initTitles();initChat();initBooking(); });