<!doctype html><meta charset=utf-8><meta content="width=device-width,user-scalable=no,initial-scale=1,maximum-scale=1,minimum-scale=1"name=viewport><meta content="ie=edge"http-equiv=X-UA-Compatible><title>CHAINSPACE.app</title><style>@font-face{font-family:Garamond;font-weight:400;font-style:normal}body{padding:0;margin:0;text-align:center;overflow:hidden;background:#eaeaea;height:100vh;display:flex;align-items:center;justify-content:center}body.mobile #tv{margin-top:0}body,p{font-family:Garamond,monospace}canvas,video{display:none}p{pointer-events:none;margin:0;display:flex;justify-content:center;align-items:center;transform:scaleX(-1);-webkit-transform:scaleX(-1)}#tv{background:#111;padding:14px;font-size:26px;display:flex;justify-content:center;transform:scaleX(-1);-webkit-transform:scaleX(-1);cursor:pointer}.grid{display:grid;padding:0;width:auto;margin:0 auto;grid-gap:0;justify-content:center;pointer-events:none}button{background:#fff;border:1px solid #111;padding:3px 10px;font-family:monospace;font-weight:700;cursor:pointer;outline:inherit;color:#111;border-radius:3px}#w{display:flex;flex-direction:column;align-items:center;justify-content:center}h5{margin:0;color:#fff;font-family:monospace}#h{text-align:center;padding:0;margin-top:20px;margin-bottom:4px}#f{background:#222;border-radius:20px;padding:16px;box-shadow:0 0 16px 0 rgba(0,0,0,.5);margin-bottom:16px}#h h5{margin-bottom:0;font-size:13px}</style><div id=w><div><video id=v>Portal is closed.</video><canvas id=cv></canvas></div><div id=f><div id=tv></div><div id=h><h5>⌬ ɎØɄ ₳ⱤɆ ₮ⱧɆ ₳Ɽ₮ ⌬</h5></div></div><button id=stop>Curse</button></div><script>(function(){function e(){function l(){return typeof window.orientation!=="undefined"||navigator.userAgent.indexOf("IEMobile")!==-1}const t=document.getElementById("v");t.setAttribute("autoplay","");t.setAttribute("muted","");t.setAttribute("playsinline","");const n=document.getElementById("tv");const c=document.getElementById("cv");const o=c.getContext("2d",{willReadFrequently:true});let e;let i;let d;let s;let a=true;let r=0;let u=l();const f=[..."𓁹█▓░░▒▒▒▒▓城益城益𝖃𝖃𝖃╳╲╲╲╳▆▇▆▇▉▊▋█╚░░╝═╣══╝⻳⽹城⺢⻆⻲⺢⺼⽹░░▒▓▓▒▒▒░༽༼༼༼༼༼༽⋰⋰⋮⋮⋮⋯⋯⋱⋱█▓░░▒▒▒▒▓⽹⽹⁘⁛⁚⁙⁘⁜⁜⁜█▓░░▒▒▒▒▓❂❁❦✺❦❇❦✱❦❉❦❋❦"];const m=["#f98284","#feaae4","#b0a9e4","#accce4","#b3e3da","#b0eb93","#fff7a0","#ffc384","#dea38b","#28282e","#00272B","#FF6663","#FF7471","#FF817E","#FF8C8A","#d9ed92","#b5e48c","#FFFFFF","#99d98c","#76c893","#52b69a","#34a0a4","#168aad","#1a759f","#1e6091","#184e77","#03071e","#370617","#6a040f","#FFFFFF","#9d0208","#d00000","#dc2f02","#e85d04","#f48c06","#faa307","#ffba08","#333533","#333533","#242423","#242423","#EBEBEA","#FFFFFF","#FFFFFF","#F4F7F3","#CFDBD5","#A2B9AD"];let g=true;function h(){e=Math.min(window.innerWidth,450);i=Math.min(window.innerHeight,l()?600:450);d=Math.floor(i/10);s=Math.floor(e/6.9)}let p;window.onresize=function(){clearTimeout(p);p=setTimeout(h,100)};const w=()=>{h();document.body.classList.add(u?"mobile":null);navigator.mediaDevices.getUserMedia({video:true,audio:false}).then(function(e){t.srcObject=e;t.play()}).catch(function(e){g=false})};const y=e=>{if(s&&d){c.width=s;c.height=d;e.drawImage(t,0,0,s,d)}};const b=e=>{const t=e.getImageData(0,0,c.width,c.height);const o=t.data;let i=0;const l=new Array(d).fill(0).map(()=>[]);for(let t=0,n=0;t<o.length;t+=4){const a=(o[t]+o[t+1]+o[t+2])/5;let e=l[i];e.push(a);if(n<s){n++}if(n===s){n=0;i+=1}}if(u){return l.map(e=>e.slice(e.length/4,e.length-e.length/4))}return l};const v=e=>{const t=Math.floor((e+r)/255*f.length);return f[t%f.length]};const E=e=>{const t=Math.floor((e+r)/255*m.length);return m[t%m.length]};const M=(e,n)=>{let t=l()?15:10;const o=document.createElement("div");o.className="grid";o.style.gridTemplateColumns=`repeat(${n[0].length}, ${t}px)`;o.style.gridTemplateRows=`repeat(${n.length}, ${t}px)`;for(let t=0;t<n.length;t++){for(let e=0;e<n[t].length;e++){const i=document.createElement("p");i.style.color=E(n[t][e]);i.innerHTML=v(n[t][e]);o.appendChild(i)}}e.textContent="";e.appendChild(o)};const I=()=>requestAnimationFrame(()=>{y(o);const e=b(o);M(n,e);if(g){I()}if(a){r++}});w();I();document.getElementById("stop").addEventListener("click",e=>{g=!g;if(g){I()}});document.getElementById("tv").onclick=()=>{a=!a}}window.addEventListener("DOMContentLoaded",()=>{e()},false)})();</script>