The human brain holds, like, <<replace "2.5pb">>2.5 petabytes (that's like <<replace "1785714285.71 floppy discs">>1785714285.71 floppy discs, or as you probably know them, saveicons<<endreplace>>)<<endreplace>>. But soooo much of that's just random junk! You don't even use it; you certainly won't need it once the upload is completed.\n\n[[K, let's get started.|Let's get started.]]
<<timedinsert .8s>><div class="glitch" data-text="COMPRESSION GHOSTS">COMPRESSION GHOSTS</div>\nby Laura E. Hall\n\n<<timedinsert 1.3s>>300 word twine for <a href="https://itch.io/jam/twiny">Twiny jam</a>.\n\n<<timedinsert 1.8s>>//Inspirations//\n\n<a href="http://theghostinthemp3.com/">The Ghost in the MP3</a>\n\n<em><a href="http://www.imdb.com/title/tt2085059/">Black Mirror</a></em>\n\n<a href="http://arstechnica.com/science/2015/03/stepping-into-the-digital-brain-library-the-google-earth-of-neuroscience/">brain banks, fenestration</a>\n\n<<endtimedinsert>><<endtimedinsert>><<endtimedinsert>>
/*body {\n background: black;\n font-family: 'Varela', sans-serif;\n}\n\n.glitch {\n color: white;\n font-size: 100px;\n position: relative;\n width: 400px;\n margin: 0 auto;\n}*/\n\n@keyframes noise-anim {\n 0% {\n clip: rect(80px, 9999px, 16px, 0);\n }\n 5% {\n clip: rect(94px, 9999px, 17px, 0);\n }\n 10% {\n clip: rect(9px, 9999px, 92px, 0);\n }\n 15.0% {\n clip: rect(37px, 9999px, 4px, 0);\n }\n 20% {\n clip: rect(53px, 9999px, 47px, 0);\n }\n 25% {\n clip: rect(99px, 9999px, 69px, 0);\n }\n 30.0% {\n clip: rect(15px, 9999px, 49px, 0);\n }\n 35% {\n clip: rect(83px, 9999px, 81px, 0);\n }\n 40% {\n clip: rect(55px, 9999px, 43px, 0);\n }\n 45% {\n clip: rect(28px, 9999px, 27px, 0);\n }\n 50% {\n clip: rect(64px, 9999px, 28px, 0);\n }\n 55.0% {\n clip: rect(76px, 9999px, 91px, 0);\n }\n 60.0% {\n clip: rect(29px, 9999px, 72px, 0);\n }\n 65% {\n clip: rect(70px, 9999px, 10px, 0);\n }\n 70% {\n clip: rect(5px, 9999px, 84px, 0);\n }\n 75% {\n clip: rect(46px, 9999px, 81px, 0);\n }\n 80% {\n clip: rect(7px, 9999px, 85px, 0);\n }\n 85.0% {\n clip: rect(17px, 9999px, 89px, 0);\n }\n 90% {\n clip: rect(41px, 9999px, 59px, 0);\n }\n 95% {\n clip: rect(53px, 9999px, 90px, 0);\n }\n 100% {\n clip: rect(10px, 9999px, 30px, 0);\n }\n}\n\n@-webkit-keyframes noise-anim {\n 0% {\n clip: rect(80px, 9999px, 16px, 0);\n }\n 5% {\n clip: rect(94px, 9999px, 17px, 0);\n }\n 10% {\n clip: rect(9px, 9999px, 92px, 0);\n }\n 15.0% {\n clip: rect(37px, 9999px, 4px, 0);\n }\n 20% {\n clip: rect(53px, 9999px, 47px, 0);\n }\n 25% {\n clip: rect(99px, 9999px, 69px, 0);\n }\n 30.0% {\n clip: rect(15px, 9999px, 49px, 0);\n }\n 35% {\n clip: rect(83px, 9999px, 81px, 0);\n }\n 40% {\n clip: rect(55px, 9999px, 43px, 0);\n }\n 45% {\n clip: rect(28px, 9999px, 27px, 0);\n }\n 50% {\n clip: rect(64px, 9999px, 28px, 0);\n }\n 55.0% {\n clip: rect(76px, 9999px, 91px, 0);\n }\n 60.0% {\n clip: rect(29px, 9999px, 72px, 0);\n }\n 65% {\n clip: rect(70px, 9999px, 10px, 0);\n }\n 70% {\n clip: rect(5px, 9999px, 84px, 0);\n }\n 75% {\n clip: rect(46px, 9999px, 81px, 0);\n }\n 80% {\n clip: rect(7px, 9999px, 85px, 0);\n }\n 85.0% {\n clip: rect(17px, 9999px, 89px, 0);\n }\n 90% {\n clip: rect(41px, 9999px, 59px, 0);\n }\n 95% {\n clip: rect(53px, 9999px, 90px, 0);\n }\n 100% {\n clip: rect(10px, 9999px, 30px, 0);\n }\n}\n\n.glitch:after {\n content: attr(data-text);\n position: absolute;\n left: 2px;\n text-shadow: -1px 0 red;\n top: 0;\n color: white;\n background: black;\n overflow: hidden;\n clip: rect(0, 900px, 0, 0);\n animation: noise-anim 2s infinite linear alternate-reverse;\n -webkit-animation: noise-anim 2s infinite linear alternate-reverse;\n}\n\n@keyframes noise-anim-2 {\n 0% {\n clip: rect(84px, 9999px, 3px, 0);\n }\n 5% {\n clip: rect(31px, 9999px, 69px, 0);\n }\n 10% {\n clip: rect(37px, 9999px, 33px, 0);\n }\n 15.0% {\n clip: rect(18px, 9999px, 6px, 0);\n }\n 20% {\n clip: rect(25px, 9999px, 87px, 0);\n }\n 25% {\n clip: rect(100px, 9999px, 8px, 0);\n }\n 30.0% {\n clip: rect(24px, 9999px, 87px, 0);\n }\n 35% {\n clip: rect(39px, 9999px, 16px, 0);\n }\n 40% {\n clip: rect(96px, 9999px, 25px, 0);\n }\n 45% {\n clip: rect(16px, 9999px, 100px, 0);\n }\n 50% {\n clip: rect(92px, 9999px, 76px, 0);\n }\n 55.0% {\n clip: rect(29px, 9999px, 40px, 0);\n }\n 60.0% {\n clip: rect(40px, 9999px, 39px, 0);\n }\n 65% {\n clip: rect(94px, 9999px, 44px, 0);\n }\n 70% {\n clip: rect(2px, 9999px, 78px, 0);\n }\n 75% {\n clip: rect(86px, 9999px, 50px, 0);\n }\n 80% {\n clip: rect(2px, 9999px, 46px, 0);\n }\n 85.0% {\n clip: rect(41px, 9999px, 71px, 0);\n }\n 90% {\n clip: rect(75px, 9999px, 15px, 0);\n }\n 95% {\n clip: rect(41px, 9999px, 8px, 0);\n }\n 100% {\n clip: rect(23px, 9999px, 75px, 0);\n }\n}\n\n@-webkit-keyframes noise-anim-2 {\n 0% {\n clip: rect(84px, 9999px, 3px, 0);\n }\n 5% {\n clip: rect(31px, 9999px, 69px, 0);\n }\n 10% {\n clip: rect(37px, 9999px, 33px, 0);\n }\n 15.0% {\n clip: rect(18px, 9999px, 6px, 0);\n }\n 20% {\n clip: rect(25px, 9999px, 87px, 0);\n }\n 25% {\n clip: rect(100px, 9999px, 8px, 0);\n }\n 30.0% {\n clip: rect(24px, 9999px, 87px, 0);\n }\n 35% {\n clip: rect(39px, 9999px, 16px, 0);\n }\n 40% {\n clip: rect(96px, 9999px, 25px, 0);\n }\n 45% {\n clip: rect(16px, 9999px, 100px, 0);\n }\n 50% {\n clip: rect(92px, 9999px, 76px, 0);\n }\n 55.0% {\n clip: rect(29px, 9999px, 40px, 0);\n }\n 60.0% {\n clip: rect(40px, 9999px, 39px, 0);\n }\n 65% {\n clip: rect(94px, 9999px, 44px, 0);\n }\n 70% {\n clip: rect(2px, 9999px, 78px, 0);\n }\n 75% {\n clip: rect(86px, 9999px, 50px, 0);\n }\n 80% {\n clip: rect(2px, 9999px, 46px, 0);\n }\n 85.0% {\n clip: rect(41px, 9999px, 71px, 0);\n }\n 90% {\n clip: rect(75px, 9999px, 15px, 0);\n }\n 95% {\n clip: rect(41px, 9999px, 8px, 0);\n }\n 100% {\n clip: rect(23px, 9999px, 75px, 0);\n }\n}\n\n.glitch:before {\n content: attr(data-text);\n position: absolute;\n left: -2px;\n text-shadow: 1px 0 blue;\n top: 0;\n color: white;\n background: black;\n overflow: hidden;\n clip: rect(0, 900px, 0, 0);\n animation: noise-anim-2 3s infinite linear alternate-reverse;\n -webkit-animation: noise-anim 2s infinite linear alternate-reverse;\n}\n
Oof, here’s a bulky one. You’ll need to <<replace "trim it.">>trim it.\n\n\n\nIt was <<mousereplace "bitterly cold outside, so you huddled close together.">>cold.<<endmousereplace>> <<mousereplace "The dizzying alcohol buzz.">>Tipsy. <<endmousereplace>><<mousereplace "The thrill of a hand brushing the back of your knee. Their hands on your waist, in your hair. ">>Hands. <<endmousereplace>><<mousereplace "Their mouth on yours. ">>The kiss. <<replace "Yes.">>\n\nAvailable space: 2tb. <<replace "Perfect.">>\n\n<<replace "That wasn't so bad.">>Upload complete.\n\n<em>If you’d like to upgrade, please contact your MEMORIEX sales representative.</em>\n\n[[.|end]]\n\n<<endmousereplace>><<endreplace>><<endreplace>><<endreplace>><<endreplace>>
Gosh, I can see a few things that can go! \n\nThere are lots of automatic funcitons that go into maintaining that weird, sticky organic vessel of a human body.\n\n<<replace "And you're not going to need those anymore, are you?">>\s\n<<mouseremove>>Balance.<<endmouseremove>> <<mouseremove>>Temperature regulation.<<endmouseremove>> <<mouseremove>>Heart rate.<<endmouseremove>> <<mouseremove>>Breathing.<<endmouseremove>> <<mouseremove>>Digestion.<<endmouseremove>> <<mouseremove>>Swallowing.<<endmouseremove>> <<mouseremove>>Blinking.<<endmouseremove>> <<mouseremove>>Blood pressure.<<endmouseremove>>\n\n<<replace "Ahhh, that's sooo much better already.">>\nAvailable space: 1.4tb (2tb required)\n\nNormally you'd still want <em>a few</em> functions, like database management, virus scanning...all things that keep your digital self running smoothly. But lucky for <em>you</em>, those are just a few of the many convenient services we offer as part of your MEMORIEX package!\n\n[[Let's move on, shall we?|Let's move on.]]\n<<endreplace>>\n<<endreplace>>\n<<endreplace>>
addStyle(".passage { opacity:1 !important; } "); function fade(f, c) { if(c.onComplete) { c.onComplete()}}
Ooh, there's loads of detritus in there! Let's start with some easy ones...\n\n<<hoverreplace>>Stuff you haven't accessed in years.<<becomes>>The smell of your first apartment.<<endhoverreplace>>\n\n<<hoverreplace>>Anything under a certain wavelength.<<becomes>>Every memory before the age of 3.<<endhoverreplace>>\n\n<<hoverreplace>>Pieces of adult mundanity.<<becomes>>What you had for dinner last week.<<endhoverreplace>>\n\n<<hoverreplace>>Boredom. Ennui.<<becomes>>Staring out of the window during elementary school, watching clouds.<<endhoverreplace>>\n\n[[Making progress!]]
<div class="glitch" data-text="MEMORIEX System Upload Assistant">MEMORIEX System Upload Assistant</div> \n\nWelcome, user! \n\nAvailable space: 1tb (2tb required for upload)\n\n[[Let's begin!]]
(function(){version.extensions.replaceMacrosCombined={major:1,minor:1,revision:5};var nullobj={handler:function(){}};\nfunction showVer(n,notrans){if(!n){return}n.innerHTML="";new Wikifier(n,n.tweecode);n.setAttribute("data-enabled","true");\nn.style.display="inline";n.classList.remove("revision-span-out");if(!notrans){n.classList.add("revision-span-in");\nif(n.timeout){clearTimeout(n.timeout)}n.timeout=setTimeout(function(){n.classList.remove("revision-span-in");\nn=null},1)}}function hideVer(n,notrans){if(!n){return}n.setAttribute("data-enabled","false");n.classList.remove("revision-span-in");\nif(n.timeout){clearTimeout(n.timeout)}if(!notrans){n.classList.add("revision-span-out");n.timeout=setTimeout(function(){if(n.getAttribute("data-enabled")=="false"){n.classList.remove("revision-span-out");\nn.style.display="none";n.innerHTML=""}n=null},1000)}else{n.style.display="none";n.innerHTML="";n=null\n}}function tagcontents(b,starttags,desttags,endtags,k){var l=0,c="",tg,a,i;function tagfound(i,e,endtag){for(var j=0;\nj<e.length;j++){if(a.indexOf("<<"+e[j]+(endtag?">>":""),i)==i){return e[j]}}}a=b.source.slice(k);for(i=0;\ni<a.length;i++){if(tg=tagfound(i,starttags)){l++}else{if((tg=tagfound(i,desttags,true))&&l==0){b.nextMatch=k+i+tg.length+4;\nreturn[c,tg]}else{if(tg=tagfound(i,endtags,true)){l--;if(l<0){return null}}}}c+=a.charAt(i)}return null\n}var begintags=[];var endtags=[];function revisionSpanHandler(g,e,f,b){var k=b.source.indexOf(">>",b.matchStart)+2,vsns=[],vtype=e,flen=f.length,becomes,c,cn,m,h,vsn;\nfunction mkspan(vtype){h=insertElement(m,"span",null,"revision-span "+vtype);h.setAttribute("data-enabled",false);\nh.style.display="none";h.tweecode="";return h}if(this.shorthand&&flen){while(f.length>0){vsns.push([f.shift(),(this.flavour=="insert"?"gains":"becomes")])\n}}else{if(this.flavour=="insert"||(this.flavour=="continue"&&this.trigger=="time")){vsns.push(["","becomes"])\n}}if(this.flavour=="continue"&&flen){b.nextMatch=k+b.source.slice(k).length;vsns.push([b.source.slice(k),vtype])\n}else{becomes=["becomes","gains"];c=tagcontents(b,begintags,becomes.concat(endtags),endtags,k);if(c&&endtags.indexOf(c[1])==-1){while(c){vsns.push(c);\nc=tagcontents(b,begintags,becomes,endtags,b.nextMatch)}c=tagcontents(b,begintags,["end"+e],endtags,b.nextMatch)\n}if(!c){throwError(g,"can't find matching end"+e);return}vsns.push(c);if(this.flavour=="continue"){k=b.nextMatch;\nb.nextMatch=k+b.source.slice(k).length;vsns.push([b.source.slice(k),""])}}if(this.flavour=="remove"){vsns.push(["","becomes"])\n}cn=0;m=insertElement(g,"span",null,e);m.setAttribute("data-flavour",this.flavour);h=mkspan("initial");\nvsn=vsns.shift();h.tweecode=vsn[0];showVer(h,true);while(vsns.length>0){if(vsn){vtype=vsn[1]}vsn=vsns.shift();\nh=mkspan(vtype);h.tweecode=vsn[0]}if(typeof this.setup=="function"){this.setup(m,g,f)}}function quantity(m){return(m.children.length-1)+(m.getAttribute("data-flavour")=="remove")\n}function revisionSetup(m,g,f){m.className+=" "+f[0].replace(" ","_")}function keySetup(m,g,f){var key=f[0];\nm.setEventListener("keydown",function l(e){var done=!revise("revise",m);if(done){m.removeEventListener("keydown",l)\n}})}function timeSetup(m,g,f){function cssTimeUnit(s){if(typeof s=="string"){if(s.slice(-2).toLowerCase()=="ms"){return Number(s.slice(0,-2))||0\n}else{if(s.slice(-1).toLowerCase()=="s"){return Number(s.slice(0,-1))*1000||0}}}throwError(g,s+" isn't a CSS time unit");\nreturn 0}var tm=cssTimeUnit(f[0]);setTimeout(function timefn(){var done=!revise("revise",m);if(!done){setTimeout(timefn,tm)\n}},tm)}function hoverSetup(m){var fn,noMouseEnter=(document.head.onmouseenter!==null),m1=m.children[0],m2=m.children[1],gains=m2.className.indexOf("gains")>-1;\nif(!m1||!m2){return}m1.onmouseenter=function(e){var efp=document.elementFromPoint(e.clientX,e.clientY);\nwhile(efp&&efp!==this){efp=efp.parentNode}if(!efp){return}if(this.getAttribute("data-enabled")!="false"){revise("revise",this.parentNode)\n}};m2.onmouseleave=function(e){var efp=document.elementFromPoint(e.clientX,e.clientY);while(efp&&efp!==this){efp=efp.parentNode\n}if(efp){return}if(this.getAttribute("data-enabled")!="false"){revise("revert",this.parentNode)}};if(gains){m1.onmouseleave=m2.onmouseleave\n}if(noMouseEnter){fn=function(n){return function(e){if(!event.relatedTarget||(event.relatedTarget!=this&&!(this.compareDocumentPosition(event.relatedTarget)&Node.DOCUMENT_POSITION_CONTAINED_BY))){this[n]()\n}}};m1.onmouseover=fn("onmouseenter");m2.onmouseout=fn("onmouseleave");if(gains){m1.onmouseout=m2.onmouseout\n}}m=null}function mouseSetup(m){var evt=(document.head.onmouseenter===null?"onmouseenter":"onmouseover");\nm[evt]=function(){var done=!revise("revise",this);if(done){this[evt]=null}};m=null}function linkSetup(m,g,f){var l=Wikifier.createInternalLink(),p=m.parentNode;\nl.className="internalLink replaceLink";p.insertBefore(l,m);l.insertBefore(m,null);l.onclick=function(){var p,done=false;\nif(m&&m.parentNode==this){done=!revise("revise",m);scrollWindowTo(m)}if(done){this.parentNode.insertBefore(m,this);\nthis.parentNode.removeChild(this)}};l=null}function visitedSetup(m,g,f){var i,done,shv=state.history[0].variables,os="once seen",d=(m.firstChild&&(this.flavour=="insert"?m.firstChild.nextSibling:m.firstChild).tweecode);\nshv[os]=shv[os]||{};if(d&&!shv[os].hasOwnProperty(d)){shv[os][d]=1}else{for(i=shv[os][d];i>0&&!done;i--){done=!revise("revise",m,true)\n}if(shv[os].hasOwnProperty(d)){shv[os][d]+=1}}}[{name:"insert",flavour:"insert",trigger:"link",setup:linkSetup},{name:"timedinsert",flavour:"insert",trigger:"time",setup:timeSetup},{name:"insertion",flavour:"insert",trigger:"revisemacro",setup:revisionSetup},{name:"later",flavour:"insert",trigger:"visited",setup:visitedSetup},{name:"keyinsert",flavour:"insert",trigger:"key",setup:keySetup},{name:"replace",flavour:"replace",trigger:"link",setup:linkSetup},{name:"timedreplace",flavour:"replace",trigger:"time",setup:timeSetup},{name:"mousereplace",flavour:"replace",trigger:"mouse",setup:mouseSetup},{name:"hoverreplace",flavour:"replace",trigger:"hover",setup:hoverSetup},{name:"revision",flavour:"replace",trigger:"revisemacro",setup:revisionSetup},{name:"keyreplace",flavour:"replace",trigger:"key",setup:keySetup},{name:"timedremove",flavour:"remove",trigger:"time",setup:timeSetup},{name:"mouseremove",flavour:"remove",trigger:"mouse",setup:mouseSetup},{name:"hoverremove",flavour:"remove",trigger:"hover",setup:hoverSetup},{name:"removal",flavour:"remove",trigger:"revisemacro",setup:revisionSetup},{name:"once",flavour:"remove",trigger:"visited",setup:visitedSetup},{name:"keyremove",flavour:"remove",trigger:"key",setup:keySetup},{name:"continue",flavour:"continue",trigger:"link",setup:linkSetup},{name:"timedcontinue",flavour:"continue",trigger:"time",setup:timeSetup},{name:"mousecontinue",flavour:"continue",trigger:"mouse",setup:mouseSetup},{name:"keycontinue",flavour:"continue",trigger:"key",setup:keySetup},{name:"cycle",flavour:"cycle",trigger:"revisemacro",setup:revisionSetup},{name:"mousecycle",flavour:"cycle",trigger:"mouse",setup:mouseSetup},{name:"timedcycle",flavour:"cycle",trigger:"time",setup:timeSetup},{name:"keycycle",flavour:"replace",trigger:"key",setup:keySetup}].forEach(function(e){e.handler=revisionSpanHandler;\ne.shorthand=(["link","mouse","hover"].indexOf(e.trigger)>-1);macros[e.name]=e;macros["end"+e.name]=nullobj;\nbegintags.push(e.name);endtags.push("end"+e.name)});function insideDepartingSpan(elem){var r=elem.parentNode;\nwhile(!r.classList.contains("passage")){if(r.classList.contains("revision-span-out")){return true}r=r.parentNode\n}}function reviseAll(rt,rname){var rall=document.querySelectorAll(".passage [data-flavour]."+rname),ret=false;\nfor(var i=0;i<rall.length;i++){if(!insideDepartingSpan(rall[i])){ret=revise(rt,rall[i])||ret}}return ret\n}function revise(rt,r,notrans){var ind2,curr,next,ind=-1,rev=(rt=="revert"),rnd=(rt.indexOf("random")>-1),fl=r.getAttribute("data-flavour"),rc=r.childNodes,cyc=(fl=="cycle"),rcl=rc.length-1;\nfunction doToGainerSpans(n,fn){for(var k=n-1;k>=0;k--){if(rc[k+1].classList.contains("gains")){fn(rc[k],notrans)\n}else{break}}}for(var k=0;k<=rcl;k++){if(rc[k].getAttribute("data-enabled")=="true"){ind=k}}if(rev){ind-=1\n}curr=(ind>=0?rc[ind]:(cyc?rc[rcl]:null));ind2=ind;if(rnd){ind2=(ind+(Math.floor(Math.random()*rcl)))%rcl\n}next=((ind2<rcl)?rc[ind2+1]:(cyc?rc[0]:null));var docurr=(rev?showVer:hideVer);var donext=(rev?hideVer:showVer);\nvar currfn=function(){if(!(next&&next.classList.contains("gains"))||rnd){docurr(curr,notrans);doToGainerSpans(ind,docurr,notrans)\n}};var nextfn=function(){donext(next,notrans);if(rnd){doToGainerSpans(ind2+1,donext,notrans)}};if(!rev){currfn();\nnextfn()}else{nextfn();currfn()}return(cyc?true:(rev?(ind>0):(ind2<rcl-1)))}macros.revert=macros.revise=macros.randomise=macros.randomize={handler:function(a,b,c){var l,rev,rname;\nfunction disableLink(l){l.style.display="none"}function enableLink(l){l.style.display="inline"}function updateLink(l){if(l.className.indexOf("random")>-1){enableLink(l);\nreturn}var rall=document.querySelectorAll(".passage [data-flavour]."+rname),cannext,canprev,i,ind,r,fl;\nfor(i=0;i<rall.length;i++){r=rall[i],fl=r.getAttribute("data-flavour");if(insideDepartingSpan(r)){continue\n}if(fl=="cycle"){cannext=canprev=true}else{if(r.firstChild.getAttribute("data-enabled")==!1+""){canprev=true\n}if(r.lastChild.getAttribute("data-enabled")==!1+""){cannext=true}}}var can=(l.classList.contains("revert")?canprev:cannext);\n(can?enableLink:disableLink)(l)}function toggleText(w){w.classList.toggle(rl+"Enabled");w.classList.toggle(rl+"Disabled");\nw.style.display=((w.style.display=="none")?"inline":"none")}var rl="reviseLink";if(c.length<2){throwError(a,b+" macro needs 2 parameters");\nreturn}rname=c.shift().replace(" ","_");l=Wikifier.createInternalLink(a,null);l.className="internalLink "+rl+" "+rl+"_"+rname+" "+b;\nvar v="";var end=false;var out=false;if(c.length>1&&c[0][0]=="$"){v=c[0].slice(1);c.shift()}switch(c[c.length-1]){case"end":end=true;\nc.pop();break;case"out":out=true;c.pop();break}var h=state.history[0].variables;for(var i=0;i<c.length;\ni++){var on=(i==Math.max(c.indexOf(h[v]),0));var d=insertElement(null,"span",null,rl+((on)?"En":"Dis")+"abled");\nif(on){h[v]=c[i];l.setAttribute("data-cycle",i)}else{d.style.display="none"}insertText(d,c[i]);l.appendChild(d)\n}l.onclick=function(){reviseAll(b,rname);var t=this.childNodes,u=this.getAttribute("data-cycle")-0,m=t.length,n,lall,i;\nif((end||out)&&u>=m-(end?2:1)){if(end){n=this.removeChild(t[u+1]||t[u]);n.className=rl+"End";n.style.display="inline";\nthis.parentNode.replaceChild(n,this)}else{this.parentNode.removeChild(this);return}}else{toggleText(t[u]);\nu=(u+1)%m;if(v){h[v]=c[u]}toggleText(t[u]);this.setAttribute("data-cycle",u)}lall=document.getElementsByClassName(rl+"_"+rname);\nfor(i=0;i<lall.length;i++){updateLink(lall[i])}};disableLink(l);setTimeout((function(l){return function(){updateLink(l)\n}}(l)),1);l=null}};macros.mouserevise=macros.hoverrevise={handler:function(a,b,c,d){var endtags=["end"+b],evt=(window.onmouseenter===null?"onmouseenter":"onmouseover"),t=tagcontents(d,[b],endtags,endtags,d.source.indexOf(">>",d.matchStart)+2);\nif(t){var rname=c[0].replace(" ","_"),h=insertElement(a,"span",null,"hoverrevise hoverrevise_"+rname),f=function(){var done=!reviseAll("revise",rname);\nif(b!="hoverrevise"&&done){this[evt]=null}};new Wikifier(h,t[0]);if(b=="hoverrevise"){h.onmouseover=f;\nh.onmouseout=function(){reviseAll("revert",rname)}}else{h[evt]=f}h=null}}};macros.instantrevise={handler:function(a,b,c,d){reviseAll("revise",c[0].replace(" ","_"))\n}};macros.endmouserevise=nullobj;macros.endhoverrevise=nullobj}());
version.extensions.cyclinglinkMacro={major:3,minor:3,revision:0};\nmacros.cyclinglink={handler:function(a,b,c){var rl="cyclingLink";\nfunction toggleText(w){w.classList.remove("cyclingLinkInit");\nw.classList.toggle(rl+"Enabled");w.classList.toggle(rl+"Disabled");\nw.style.display=((w.style.display=="none")?"inline":"none")}switch(c[c.length-1]){case"end":var end=true;\nc.pop();break;case"out":var out=true;c.pop();break}var v="";if(c.length&&c[0][0]=="$"){v=c[0].slice(1);\nc.shift()}var h=state.history[0].variables;if(out&&h[v]===""){return\n}var l=Wikifier.createInternalLink(a,null);l.className="internalLink cyclingLink";\nl.setAttribute("data-cycle",0);for(var i=0;i<c.length;i++){var on=(i==Math.max(c.indexOf(h[v]),0));\nvar d=insertElement(null,"span",null,"cyclingLinkInit cyclingLink"+((on)?"En":"Dis")+"abled");\nif(on){h[v]=c[i];l.setAttribute("data-cycle",i)}else{d.style.display="none"\n}insertText(d,c[i]);if(on&&end&&i==c.length-1){l.parentNode.replaceChild(d,l)\n}else{l.appendChild(d)}}l.onclick=function(){var t=this.childNodes;\nvar u=this.getAttribute("data-cycle")-0;var m=t.length;toggleText(t[u]);\nu=(u+1);if(!(out&&u==m)){u%=m;if(v){h[v]=c[u]}}else{h[v]=""}if((end||out)&&u==m-(end?1:0)){if(end){var n=this.removeChild(t[u]);\nn.className=rl+"End";n.style.display="inline";this.parentNode.replaceChild(n,this)\n}else{this.parentNode.removeChild(this);return}return}toggleText(t[u]);\nthis.setAttribute("data-cycle",u)}}};
COMPRESSION GHOSTS
<div class="glitch" data-text="COMPRESSION GHOSTS">COMPRESSION GHOSTS</div>\n\n\n\n\n\n<<hoverreplace>>A bunch of stuff under a certain wavelength.<<becomes>>Staring out of the window during elementary school. The smell of your first apartment.<<endhoverreplace>>\n\n\n\n<<replace "But you're not going to need those anymore, are you?">>\s\n<<mousecontinue>>Balance.<<endmousecontinue>> \s\n<<mousecontinue>>Temperature regulation.<<endmousecontinue>> \s\n<<mousecontinue>>Breathing.<<endmousecontinue>> \s\n<<mousecontinue>>Blinking.<<endmousecontinue>>
Laura E. Hall
.revision-span-in {\n\topacity: 0;\n}\n.revision-span:not(.revision-span-out) {\n\ttransition: 1s; -webkit-transition: 1s;\n}\n.revision-span-out {\n\tposition:absolute;\n\topacity: 0;\n}