diff --git a/script.js b/script.js
index f499b73..a2d145b 100644
--- a/script.js
+++ b/script.js
@@ -1,5 +1,5 @@
/* AI DEATH CLOCK — browser/DOM layer (minified) */
-"use strict";(function(){const{BASE_TOKENS:Kt,TOKENS_PER_SECOND:O,BASE_DATE_ISO:Gt,HISTORICAL_DATA:Yt,MILESTONES:I,RATE_SCHEDULE:Vt,SESSION_CHALLENGE_DEFS:$o,TOKEN_TIPS:jt,COMPANY_ROLES:ge,AI_AGENTS:pe,formatTokenCount:S,formatTokenCountShort:_,getTriggeredMilestones:Jt,getNextMilestone:zt,predictMilestoneDate:Re,calculateEnvironmentalImpact:A,generateProjectionData:Qt,formatDate:Pe,getTimeDelta:Oe,milestoneProgress:he,getRateAtDate:L,calculateTipImpact:Xt,generateEquivalences:Ne,calculatePersonalFootprint:He,sessionEquivalences:Zt,getNextMilestoneForPlayer:We,computeComboMultiplier:en,getSessionChallenges:tn,formatDoomPoints:X,computePassiveRate:fe,getCompanyStage:nn,getSimulatedViewerCount:on}=window.DeathClockCore,{SITE_VERSION:ye="",CHANGELOG_RELEASES:Ee=[]}=typeof window!="undefined"&&window.ChangelogData||{},{PROJECT_PR_COUNT:Ue=0,PROJECT_TOTAL_TOKENS:qe=0}=typeof window!="undefined"&&window.ProjectStatsData||{},sn=new Date(Gt).getTime(),x=Date.now();let be="dark",B=null;const Ke="tokenDeathclockFirstArrival",Ge="tokenDeathclockTheme";let Z=x;try{const e=parseInt(localStorage.getItem(Ke)||"0",10);e>0&&e<=x?Z=e:localStorage.setItem(Ke,String(x))}catch(e){}function $(){const e=(Date.now()-sn)/1e3;return Kt+O*e}function an(e){return e>=1e15?(e/1e15).toFixed(3)+" Quadrillion":e>=1e12?(e/1e12).toFixed(3)+" Trillion":S(e)}function Ye(e){document.documentElement.setAttribute("data-theme",e);const t=document.getElementById("themeToggle");t&&(t.textContent=e==="dark"?"\u2600\uFE0F":"\u{1F319}"),be=e,B&&mn()}function rn(){const e=be==="dark"?"light":"dark";Ye(e);try{localStorage.setItem(Ge,e)}catch(t){}e==="light"&&k("optimist")}function Ve(){const e=Date.now(),t=$(),n=L(new Date(e)),o=Math.round((e-Z)/1e3*n),s=Math.floor((e-Z)/1e3),i=document.getElementById("totalCounter"),r=document.getElementById("sessionCounter"),c=document.getElementById("sessionTime"),d=document.getElementById("rateCounter"),m=document.getElementById("rateEvent");if(i&&(i.textContent=an(t)),r&&(r.textContent=S(o)),c){const g=Math.floor(s/60),f=s%60,p=Z!==x?"since first visit":"on page";c.textContent=g>0?`${g}m ${f}s ${p}`:`${f}s ${p}`}if(d&&(d.textContent=S(n)),m){const g=[...Vt].reverse().find(f=>e>=new Date(f.date).getTime());g&&(m.textContent=g.event+" \xB7 tokens/sec")}const h=A(t);ee("statKwh",_(h.kWh)),ee("statCo2",_(h.co2Kg)),ee("statWater",_(h.waterL)),ee("statTrees",_(h.treesEquivalent)),Ft(t);const b=Jt(t,I);I.forEach((g,f)=>{const p=document.getElementById("milestone-"+g.id);if(!p)return;const T=p.classList.contains("triggered");t>=g.tokens&&!T&&(p.classList.add("triggered"),$t.has(g.id)||($t.add(g.id),yo(g)));const D=p.querySelector(".progress-fill");if(D){const y=f===0?0:I[f-1].tokens,v=he(t,y,g.tokens);D.style.width=v+"%";const C=p.querySelector(".progress-pct");C&&(C.textContent=v.toFixed(1)+"%")}}),requestAnimationFrame(Ve)}function ee(e,t){const n=document.getElementById(e);n&&(n.textContent=t)}function cn(){const e=document.getElementById("milestonesGrid");if(!e)return;const t=$();e.innerHTML="",I.forEach((n,o)=>{const s=t>=n.tokens,i=o===0?0:I[o-1].tokens,r=he(t,i,n.tokens),c=Re(t,O,n.tokens),d=document.createElement("div");d.className="milestone-card"+(s?" triggered":""),d.id="milestone-"+n.id,d.innerHTML=`
+"use strict";(function(){const{BASE_TOKENS:Kt,TOKENS_PER_SECOND:N,BASE_DATE_ISO:Gt,HISTORICAL_DATA:Yt,MILESTONES:I,RATE_SCHEDULE:Vt,SESSION_CHALLENGE_DEFS:Lo,TOKEN_TIPS:jt,COMPANY_ROLES:ge,AI_AGENTS:pe,formatTokenCount:S,formatTokenCountShort:_,getTriggeredMilestones:Jt,getNextMilestone:zt,predictMilestoneDate:Re,calculateEnvironmentalImpact:A,generateProjectionData:Qt,formatDate:Pe,getTimeDelta:Ne,milestoneProgress:he,getRateAtDate:L,calculateTipImpact:Xt,generateEquivalences:Oe,calculatePersonalFootprint:He,sessionEquivalences:Zt,getNextMilestoneForPlayer:We,computeComboMultiplier:en,getSessionChallenges:tn,formatDoomPoints:X,computePassiveRate:fe,getCompanyStage:nn,getSimulatedViewerCount:on}=window.DeathClockCore,{SITE_VERSION:ye="",CHANGELOG_RELEASES:be=[]}=typeof window!="undefined"&&window.ChangelogData||{},{PROJECT_PR_COUNT:Ue=0,PROJECT_TOTAL_TOKENS:qe=0}=typeof window!="undefined"&&window.ProjectStatsData||{},sn=new Date(Gt).getTime(),x=Date.now();let Ee="dark",M=null;const Ke="tokenDeathclockFirstArrival",Ge="tokenDeathclockTheme";let Z=x;try{const e=parseInt(localStorage.getItem(Ke)||"0",10);e>0&&e<=x?Z=e:localStorage.setItem(Ke,String(x))}catch(e){}function $(){const e=(Date.now()-sn)/1e3;return Kt+N*e}function an(e){return e>=1e15?(e/1e15).toFixed(3)+" Quadrillion":e>=1e12?(e/1e12).toFixed(3)+" Trillion":S(e)}function Ye(e){document.documentElement.setAttribute("data-theme",e);const t=document.getElementById("themeToggle");t&&(t.textContent=e==="dark"?"\u2600\uFE0F":"\u{1F319}"),Ee=e,M&&mn()}function rn(){const e=Ee==="dark"?"light":"dark";Ye(e);try{localStorage.setItem(Ge,e)}catch(t){}e==="light"&&k("optimist")}function Ve(){const e=Date.now(),t=$(),n=L(new Date(e)),o=Math.round((e-Z)/1e3*n),s=Math.floor((e-Z)/1e3),i=document.getElementById("totalCounter"),r=document.getElementById("sessionCounter"),c=document.getElementById("sessionTime"),d=document.getElementById("rateCounter"),m=document.getElementById("rateEvent");if(i&&(i.textContent=an(t)),r&&(r.textContent=S(o)),c){const g=Math.floor(s/60),f=s%60,p=Z!==x?"since first visit":"on page";c.textContent=g>0?`${g}m ${f}s ${p}`:`${f}s ${p}`}if(d&&(d.textContent=S(n)),m){const g=[...Vt].reverse().find(f=>e>=new Date(f.date).getTime());g&&(m.textContent=g.event+" \xB7 tokens/sec")}const h=A(t);ee("statKwh",_(h.kWh)),ee("statCo2",_(h.co2Kg)),ee("statWater",_(h.waterL)),ee("statTrees",_(h.treesEquivalent)),Ft(t);const E=Jt(t,I);I.forEach((g,f)=>{const p=document.getElementById("milestone-"+g.id);if(!p)return;const T=p.classList.contains("triggered");t>=g.tokens&&!T&&(p.classList.add("triggered"),$t.has(g.id)||($t.add(g.id),yo(g)));const D=p.querySelector(".progress-fill");if(D){const y=f===0?0:I[f-1].tokens,v=he(t,y,g.tokens);D.style.width=v+"%";const C=p.querySelector(".progress-pct");C&&(C.textContent=v.toFixed(1)+"%")}}),requestAnimationFrame(Ve)}function ee(e,t){const n=document.getElementById(e);n&&(n.textContent=t)}function cn(){const e=document.getElementById("milestonesGrid");if(!e)return;const t=$();e.innerHTML="",I.forEach((n,o)=>{const s=t>=n.tokens,i=o===0?0:I[o-1].tokens,r=he(t,i,n.tokens),c=Re(t,N,n.tokens),d=document.createElement("div");d.className="milestone-card"+(s?" triggered":""),d.id="milestone-"+n.id,d.innerHTML=`
- ${c?`
\u23F1 Predicted: ${u(Pe(c))} (${u(Oe(c))})
`:""}
+ ${c?`
\u23F1 Predicted: ${u(Pe(c))} (${u(Ne(c))})
`:""}
${n.reference?`
\u{1F4CE} Source`:""}
- `,e.appendChild(d)})}function ln(){const e=document.getElementById("predictionsBody");if(!e)return;const t=$();e.innerHTML="",I.forEach(n=>{const o=t>=n.tokens,s=o?null:Re(t,O,n.tokens),i=document.createElement("tr");i.innerHTML=`
+ `,e.appendChild(d)})}function ln(){const e=document.getElementById("predictionsBody");if(!e)return;const t=$();e.innerHTML="",I.forEach(n=>{const o=t>=n.tokens,s=o?null:Re(t,N,n.tokens),i=document.createElement("tr");i.innerHTML=`
${u(n.icon)} ${u(n.name)} |
${u(n.shortDesc)} |
${o?'PASSED':"\u23F3 Pending"} |
${o?"\u2014":u(Pe(s))} |
-
${o?'Already triggered':u(Oe(s))} |
- `,e.appendChild(i)})}function dn(){const e=$(),t=Yt.map(o=>({x:o.date,y:o.tokensT})),n=Qt(e,O,60,void 0,.5).map(o=>({x:o.date,y:+o.tokensT.toFixed(2)}));return{historical:t,projection:n}}function je(){const e=be==="dark";return{histLine:e?"#ff3333":"#cc0000",projLine:e?"#ff8800":"#cc6600",gridColor:e?"rgba(255,255,255,0.07)":"rgba(0,0,0,0.08)",tickColor:e?"#888":"#555",bg:e?"#161616":"#ffffff"}}function un(){const e=document.getElementById("tokenChart");if(!e||typeof Chart=="undefined")return;const{historical:t,projection:n}=dn(),o=je(),s={};I.forEach((i,r)=>{s["milestone_"+r]={type:"line",yMin:i.tokens/1e12,yMax:i.tokens/1e12,borderColor:"rgba(0,204,119,0.4)",borderWidth:1,borderDash:[4,4],label:{content:i.icon+" "+i.shortDesc,display:!1}}}),B=new Chart(e,{type:"line",data:{datasets:[{label:"Historical (estimated)",data:t,borderColor:o.histLine,backgroundColor:"transparent",borderWidth:2,pointRadius:3,pointHoverRadius:5,tension:.35,fill:!1},{label:"Projected",data:n,borderColor:o.projLine,backgroundColor:"transparent",borderWidth:2,borderDash:[6,4],pointRadius:0,tension:.35,fill:!1}]},options:{responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},scales:{x:{type:"time",time:{tooltipFormat:"MMM yyyy",displayFormats:{month:"MMM yy",year:"yyyy",quarter:"MMM yy"}},grid:{color:o.gridColor},ticks:{color:o.tickColor,maxRotation:45}},y:{type:"logarithmic",title:{display:!0,text:"Cumulative Tokens (Trillions, log scale)",color:o.tickColor,font:{size:11}},grid:{color:o.gridColor},ticks:{color:o.tickColor,callback:i=>_(i*1e12)}}},plugins:{legend:{labels:{color:o.tickColor,boxWidth:20,padding:16,font:{size:12}}},tooltip:{callbacks:{label:i=>" "+S(i.parsed.y*1e12)+" tokens"}}}}})}function mn(){if(!B)return;const e=je();B.data.datasets[0].borderColor=e.histLine,B.data.datasets[1].borderColor=e.projLine,B.options.scales.x.grid.color=e.gridColor,B.options.scales.y.grid.color=e.gridColor,B.options.scales.x.ticks.color=e.tickColor,B.options.scales.y.ticks.color=e.tickColor,B.options.scales.y.title.color=e.tickColor,B.options.plugins.legend.labels.color=e.tickColor,B.update("none")}function u(e){return typeof e!="string"?"":e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}const Je=I.find(e=>e.extinctionMarker)||I[I.length-1],l={level:"days",day:null,hour:null,minute:null,rafId:null,lastSec:-1,lastMin:-1,lastHr:-1,lastDayMs:0,exploding:!1};function ve(){const e=$();if(e>=Je.tokens)return Date.now();const t=(Je.tokens-e)/O;return Date.now()+t*1e3}function gn(){const e=ve()-Date.now();return Math.max(0,Math.ceil(e/864e5))}function F(e){const t=new Date(e);return t.setHours(0,0,0,0),t.getTime()}function ke(e,t,n){const o=e+t;return n>=o?"dead":n>=e?"dying":"future"}function N(e,t){return F(t)+e*864e5}function te(e,t,n,o){return`
${o?'
Already triggered':u(Ne(s))}
+ `,e.appendChild(i)})}function dn(){const e=$(),t=Yt.map(o=>({x:o.date,y:o.tokensT})),n=Qt(e,N,60,void 0,.5).map(o=>({x:o.date,y:+o.tokensT.toFixed(2)}));return{historical:t,projection:n}}function je(){const e=Ee==="dark";return{histLine:e?"#ff3333":"#cc0000",projLine:e?"#ff8800":"#cc6600",gridColor:e?"rgba(255,255,255,0.07)":"rgba(0,0,0,0.08)",tickColor:e?"#888":"#555",bg:e?"#161616":"#ffffff"}}function un(){const e=document.getElementById("tokenChart");if(!e||typeof Chart=="undefined")return;const{historical:t,projection:n}=dn(),o=je(),s={};I.forEach((i,r)=>{s["milestone_"+r]={type:"line",yMin:i.tokens/1e12,yMax:i.tokens/1e12,borderColor:"rgba(0,204,119,0.4)",borderWidth:1,borderDash:[4,4],label:{content:i.icon+" "+i.shortDesc,display:!1}}}),M=new Chart(e,{type:"line",data:{datasets:[{label:"Historical (estimated)",data:t,borderColor:o.histLine,backgroundColor:"transparent",borderWidth:2,pointRadius:3,pointHoverRadius:5,tension:.35,fill:!1},{label:"Projected",data:n,borderColor:o.projLine,backgroundColor:"transparent",borderWidth:2,borderDash:[6,4],pointRadius:0,tension:.35,fill:!1}]},options:{responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},scales:{x:{type:"time",time:{tooltipFormat:"MMM yyyy",displayFormats:{month:"MMM yy",year:"yyyy",quarter:"MMM yy"}},grid:{color:o.gridColor},ticks:{color:o.tickColor,maxRotation:45}},y:{type:"logarithmic",title:{display:!0,text:"Cumulative Tokens (Trillions, log scale)",color:o.tickColor,font:{size:11}},grid:{color:o.gridColor},ticks:{color:o.tickColor,callback:i=>_(i*1e12)}}},plugins:{legend:{labels:{color:o.tickColor,boxWidth:20,padding:16,font:{size:12}}},tooltip:{callbacks:{label:i=>" "+S(i.parsed.y*1e12)+" tokens"}}}}})}function mn(){if(!M)return;const e=je();M.data.datasets[0].borderColor=e.histLine,M.data.datasets[1].borderColor=e.projLine,M.options.scales.x.grid.color=e.gridColor,M.options.scales.y.grid.color=e.gridColor,M.options.scales.x.ticks.color=e.tickColor,M.options.scales.y.ticks.color=e.tickColor,M.options.scales.y.title.color=e.tickColor,M.options.plugins.legend.labels.color=e.tickColor,M.update("none")}function u(e){return typeof e!="string"?"":e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}const Je=I.find(e=>e.extinctionMarker)||I[I.length-1],l={level:"days",day:null,hour:null,minute:null,rafId:null,lastSec:-1,lastMin:-1,lastHr:-1,lastDayMs:0,exploding:!1};function ve(){const e=$();if(e>=Je.tokens)return Date.now();const t=(Je.tokens-e)/N;return Date.now()+t*1e3}function gn(){const e=ve()-Date.now();return Math.max(0,Math.ceil(e/864e5))}function F(e){const t=new Date(e);return t.setHours(0,0,0,0),t.getTime()}function ke(e,t,n){const o=e+t;return n>=o?"dead":n>=e?"dying":"future"}function O(e,t){return F(t)+e*864e5}function te(e,t,n,o){return`
${o}
`}function ne(e,t,n,o){return`
${o}
`}const q=3650;function pn(e,t){const n=gn(),o=Math.min(n,q),s=F(t),i=(t-s)/864e5*100,c=new Date(ve()).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"});let d=`
`;d+=te('data-day="0"',i,"Today \u2014 burning away","");for(let m=1;m<=o;m++)d+=ne("future",`data-day="${m}"`,`Day ${m} from now`,"");n>q&&(d+=`
- +${Math.round((n-q)/365)}y
`),d+="
",e.innerHTML=d,document.getElementById("lb-info").textContent=`${n.toLocaleString()} days until extinction \xB7 predicted ${c}`}function hn(e,t,n){const o=N(t,n),s=t===0;let i='
';for(let c=0;c<24;c++){const d=o+c*36e5,m=s?ke(d,36e5,n):"future",h=`${String(c).padStart(2,"0")}:00`,b=`${String(c).padStart(2,"0")}`;if(m==="dying"){const g=(n-d)/36e5*100;i+=te(`data-hour="${c}"`,g,h,b)}else i+=ne(m,`data-hour="${c}"`,h,b)}i+="
",e.innerHTML=i;const r=t===0?"Today":`Day +${t}`;document.getElementById("lb-info").textContent=`${r} \u2014 select an hour`}function fn(e,t,n,o){const i=N(t,o)+n*36e5,r=t===0&&o>=i&&o
${String(d).padStart(2,"0")}`;if(h==="dying"){const f=(o-m)/6e4*100;c+=te(`data-minute="${d}"`,f,b,g)}else c+=ne(h,`data-minute="${d}"`,b,g)}c+="",e.innerHTML=c,document.getElementById("lb-info").textContent=`${String(n).padStart(2,"0")}:xx \u2014 select a minute`}function yn(e,t,n,o,s){const r=N(t,s)+n*36e5+o*6e4,c=t===0&&s>=r&&s
${String(m).padStart(2,"0")}`;if(b==="dying"){const p=(s-h)/1e3*100;d+=te(`data-second="${m}"`,p,g,f)}else d+=ne(b,`data-second="${m}"`,g,f)}d+="",e.innerHTML=d,document.getElementById("lb-info").textContent=`${String(n).padStart(2,"0")}:${String(o).padStart(2,"0")}:xx`}function En(){const e=document.getElementById("lb-breadcrumb");if(!e)return;const t=[{label:"\u{1F480} Days",level:"days"}];l.level!=="days"&&t.push({label:`Day ${l.day===0?"Today":"+"+l.day}`,level:"hours"}),(l.level==="minutes"||l.level==="seconds")&&t.push({label:`Hour ${String(l.hour).padStart(2,"0")}`,level:"minutes"}),l.level==="seconds"&&t.push({label:`Min ${String(l.minute).padStart(2,"0")}`,level:"seconds"}),e.innerHTML=t.map((n,o)=>o===t.length-1?`