Code shudders through you\nYour body pulses to undreamt forms and colours\n<<set $newbody=true>>\n\n[[back|room2]]
The girl with spider legs says\n//The sensors cannot read these bodies\nWe can go wherever [[we want to]]//
You have learnt to loosen the wires at the pit of your spine\nYou press them through tiny hole at the bottom of the display \nYou inject your simple code until you reach the correct number \n\n<<if $flowersseen eq false>>\n<<cyclinglink $dial1 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9">><<cyclinglink $dial2 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9">><<cyclinglink $dial3 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9">><<cyclinglink $dial4 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9">><<cyclinglink $dial5 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9">><<cyclinglink $dial6 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9">><<endif>><<if $flowersseen eq true>> <<cyclinglink $dial1 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "♥">><<cyclinglink $dial2 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "❀">><<cyclinglink $dial3 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "★">><<cyclinglink $dial4 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "★">><<cyclinglink $dial5 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "❀">><<cyclinglink $dial6 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "♥">>\n<<endif>>\n[[Enter]]
<<if $newbody eq true>> You press your wires through the tiny holes at either end of the display\n<<cyclinglink $exit1 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "★">><<cyclinglink $exit2 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "★">><<cyclinglink $exit3 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "♥">><<cyclinglink $exit4 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "♥">><<cyclinglink $exit5 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "★">><<cyclinglink $exit6 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "★">> \n[[Enter|Enter2]] \n<<else>>\nAn eight-legged girl blocks your path.\n//Not yet//\n[[back|talk]]\n<<endif>>
They have decorated their bodies with shining lights. Red and purple and green dots [[moving in the darkness]]
You have learnt to loosen the wires at the pit of your spine \nYou press them at the nodes\nThey [[crackle and spark colourless light|nodes]]
Each day you categorise emotions, blink between options until your eyelids are sore:\n\nIncoming Message\n//<<cycle sentiment>>i've been having problems i hope you can help.<<becomes>> i want to cancel my contract <<set $points=$points+1>> <<becomes>>sometimes i just feel so very lonely<<becomes>><<set $points=$points+1>> just wanted to say thanks for doing a great job <<becomes>><<set $points=$points+1>> i hate u all <<becomes>><<set $points=$points+1>> my order reference number is 009-4evnwoinfgvn-45 thanks <<set $stop=true>><<becomes>><<set $points=$points+1>> haha <<becomes>><<set $points=$points+1>> where are you <<becomes>><<set $points=$points+1>> I'd like to make a complaint about the service i received. <<becomes>><<set $points=$points+1>> are you a human like a real person? <<becomes>><<set $points=$points+1>> why do you keep following me everywhere please stop. <<becomes>><<set $points=$points+1>> i need you to stop charging me. <<becomes>><<set $points=$points+1>> i'd like to cancel my contract please. <<becomes>><<set $points=$points+1>> do you know what date the last saturday is by any chance. <<becomes>><<set $points=$points+1>> i've changed address and do not live here any more. <<becomes>><<set $points=$points+1>> this might be a stupid question.... <<becomes>><<set $points=$points+1>> the information you gave me is wrong and now i don't know what to do <<becomes>><<set $points=$points+1>> i can't deal with this interface anymore <<becomes>><<set $points=$points+1>> please help <<becomes>><<set $points=$points+1>> i don't know what i'm doing every day. <<becomes>><<set $points=$points+1>> i have money worries i don't konw what to do <<becomes>><<set $points=$points+1>>so is this it really <<becomes>> i've never foudn it out this way before <<becomes>> two please <<becomes>> check this out right here <<becomes>> best laugh ever <<becomes>> no now everyone's wearing it <<becomes>> days are getting shorter now i guess :/ <<becomes>> i'm having trouble deciding which offer is better?? <<becomes>> hello is that you <<becomes>> i hate when the buses are late like that we need to get to work <<becomes>> i never knew what i had until it was over <<becomes>> it's ok i guess <<becomes>> waste of two hours <<becomes>> i've had some bad news <<becomes>> i need to update my details and was told to contact you <<becomes>> i'm great thanks <<becomes>> glad to have been of help today :) <<becomes>> we value your input <<becomes>> hey sexy looking forward to the weekend ;) <<becomes>> i think it went what has four legs in the morning <<becomes>> no hahaha your too funny <<becomes>> please stop <<becomes>> i think i might really like her <<becomes>> yeah <<becomes>> no, stage 3 they said. <<becomes>> i don't mind really <<becomes>> i found messages he sent to her <<becomes>> she just makes me smile <<becomes>> let me just check. <<becomes>> my order reference? <<becomes>> on sunday at the old fire place wasn't it? <<endcycle>>//\n\nSentiment Analysis\n<<cyclinglink $faces "Postive :)" "Neutral :|" "Negative :(">> \n<<revise sentiment "Confirm Anaylsis">>\n\nThere is no day or night here, and their modifications have removed your [[need for sleep]]
<<if $firsttime eq true>> \nA tenative, distant voice\n//"Are you trapped here too?"// it says. //"Where are you?"//\n[["I don't know"|voice]]\n<<else>>\nYou tell each other [[stories|stories in the dark]] \n<<endif>>
They feel like watching a dream you had the night before\nEach time you return you feel as though something has changed inside of you. \n\n[[back|nodes]]
<<if $dial1 eq "♥" and $dial2 eq "❀" and $dial3 eq "★" and $dial4 eq "★" and $dial5 eq "❀" and $dial6 eq "♥">> The six digits freeze. The door jolts [[half open|open]] <<else>> The six digits glow red for an instant. Sharp pain and silver flash behind your eyelids\n[[Back|the first time]] <<endif>>
"In the middle of the spine," she says. "The place they know you can't reach yourself"\n\n[[back|the first time]]
♥Arachne♥ \nby \nFractoluminous\n\n(Macros by Leon Arnott)
You see outlines of [[people]] moving [[in the room just beyond the door]]
2 paces wide and long\n<<if $height eq "Long" >> You touch the ceiling with your new height\nIts metal is cold and unyielding <<else>> You do not know how high. Your hands do not reach <<endif>>\n\n[[back|the first time]]
//How would you like to [[escape?]]//
You know you are underground because the air feels heavy and smells of metals\nYou do not remember how you got here\n\n[[back|Main Room]]
You know [[the room|size]] by the movement of [[your body]] \n\n[[Six zeroes|empty eyes]] shine in the darkness\nTwo [[metal nodes|2 nodes]] stick out beneath it
The passageway on the other side of the door \nsmells even stronger of metals\nAnd a low red light smolders a [[long way off]]
Most of the time, you cannot see [[the room]] \nOnly the thin outline of ever-changing words in [[the dark]]
♥Arachne♥
The one on left throws [[pictures]] into your [[brain]]\n\nThe one on the right makes [[voices sound in the dark|voices]] \n\n[[back|the first time]]
You lie down in the circle. \nGirls with strange new and shining bodies [[surround you]].
<<if $exit1 eq "★" and $exit2 eq "★" and $exit3 eq "♥" and $exit4 eq "♥" and $exit5 eq "★" and $exit6 eq "★">> The six digits freeze. The door jolts [[half open|End]] <<else>> The six digits glow red for an instant. Sharp pain and silver flash behind your eyelids.\n[[Back|room2]] <<endif>>
At first you thought if you found the [[right words]] \nor found them loud enough \nthey would [[realise their mistake|mistake]]
[[Help. I'm trapped in here|Main Room]]
They tell you what they can do\nSearch out the nodes at your ankles and wrists\n[[Cut]]
On your shaking new limbs\nYou step out into this [[new dark]]
You have enough points to upgrade today. Pick your options: \n<<cyclinglink $adjective1.1 "Alluring" "Sexy" "Beautiful" "Fresh" "Cute" "Glowing">> <<cyclinglink $adjective1.2 "Smooth" "Full" "Bright" "Dark" "Long" "Short" >> Lips\n<<cyclinglink $adjective2.1 "Alluring" "Sexy" "Beautiful" "Fresh" "Cute" "Glowing">> <<cyclinglink $adjective2.2 "Smooth" "Full" "Bright" "Dark" "Long" "Short" >> Eyes\n<<cyclinglink $adjective3.1 "Alluring" "Sexy" "Beautiful" "Fresh" "Cute" "Glowing">> <<cyclinglink $height "Smooth" "Full" "Bright" "Dark" "Long" "Short" >> Legs\n<<cyclinglink $adjective4.1 "Alluring" "Sexy" "Beautiful" "Fresh" "Cute" "Glowing">> <<cyclinglink $adjective4.2 "Smooth" "Full" "Bright" "Dark" "Long" "Short" >> Hair\n\n[[Perfect|the first time]]
A [[keypad]] glows on the opposite side of the room. \nIn the centre of the room, a [[circle of red and purple lights]]
Its walls are full of their work. Shining wires stretched and woven into intricate patterns \n\n[[back|open]]
(function () {\n "use strict";\n version.extensions['soundMacros'] = {\n major: 1,\n minor: 1,\n revision: 2\n };\n var p = macros['playsound'] = {\n soundtracks: {},\n handler: function (a, b, c, d) {\n var loop = function (m) {\n if (m.loop == undefined) {\n m.loopfn = function () {\n this.play();\n };\n m.addEventListener('ended', m.loopfn, 0);\n } else m.loop = true;\n m.play();\n };\n var s = eval(d.fullArgs());\n if (s) {\n s = s.toString();\n var m = this.soundtracks[s.slice(0, s.lastIndexOf("."))];\n if (m) {\n if (b == "playsound") {\n m.play();\n } else if (b == "loopsound") {\n loop(m);\n } else if (b == "pausesound") {\n m.pause();\n } else if (b == "unloopsound") {\n if (m.loop != undefined) {\n m.loop = false;\n } else if (m.loopfn) {\n m.removeEventListener('ended', m.loopfn);\n delete m.loopfn;\n }\n } else if (b == "stopsound") {\n m.pause();\n m.currentTime = 0;\n } else if (b == "fadeoutsound" || b == "fadeinsound") {\n if (m.interval) clearInterval(m.interval);\n if (b == "fadeinsound") {\n if (m.currentTime>0) return;\n m.volume = 0;\n loop(m);\n } else {\n if (!m.currentTime) return;\n m.play();\n }\n var v = m.volume;\n m.interval = setInterval(function () {\n v = Math.min(1, Math.max(0, v + 0.005 * (b == "fadeinsound" ? 1 : -1)));\n m.volume = Math.easeInOut(v);\n if (v == 0 || v == 1) clearInterval(m.interval);\n if (v == 0) {\n m.pause();\n m.currentTime = 0;\n m.volume = 1;\n }\n }, 10);\n }\n }\n }\n }\n }\n macros['fadeinsound'] = p;\n macros['fadeoutsound'] = p;\n macros['unloopsound'] = p;\n macros['loopsound'] = p;\n macros['pausesound'] = p;\n macros['stopsound'] = p;\n macros['stopallsound'] = {\n handler: function () {\n var s = macros.playsound.soundtracks;\n for (var j in s) {\n if (s.hasOwnProperty(j)) {\n s[j].pause();\n if (s[j].currentTime) {\n s[j].currentTime = 0;\n }\n }\n }\n }\n }\n var div = document.getElementById("storeArea").firstChild;\n var fe = ["ogg", "mp3", "wav", "webm"];\n while (div) {\n var b = String.fromCharCode(92);\n var q = '"';\n var re = "['" + q + "]([^" + q + "']*?)" + b + ".(ogg|mp3|wav|webm)['" + q + "]";\n k(new RegExp(re, "gi"));\n div = div.nextSibling;\n }\n\n function k(c, e) {\n do {\n var d = c.exec(div.innerHTML);\n if (d) {\n var a = new Audio();\n if (a.canPlayType) {\n for (var i = -1; i < fe.length; i += 1) {\n if (i >= 0) d[2] = fe[i];\n if (a.canPlayType("audio/" + d[2])) break;\n }\n if (i < fe.length) {\n a.setAttribute("src", d[1] + "." + d[2]);\n a.interval = null;\n macros.playsound.soundtracks[d[1]] = a;\n } else console.log("Browser can't play '" + d[1] + "'");\n }\n }\n } while (d);\n }\n}());\n\nversion.extensions.ifMacros={major:2,minor:0,revision:0};macros["if"]={handler:function(place,macroName,params,parser){\nvar conditions=[],clauses=[],srcOffset=parser.source.indexOf(">>",parser.matchStart)+2,src=parser.source.slice(srcOffset),endPos=-1,currentCond=parser.fullArgs(),currentClause="",t=0,nesting=0;\nfor(var i=0;i<src.length;i++){if(src.substr(i,9)=="<<endif>>"){nesting--;if(nesting<0){endPos=srcOffset+i+9;\nconditions.push(currentCond);clauses.push(currentClause);break;}}if((src.substr(i,6)=="<<else")&&nesting==0){conditions.push(currentCond);\nclauses.push(currentClause);currentClause="";t=src.indexOf(">>",i+6);if(src.substr(i+6,4)==" if "){currentCond=Wikifier.parse(src.slice(i+10,t));\n}else{currentCond="true";}i=t+2;}if(src.substr(i,5)=="<<if "){nesting++;}currentClause+=src.charAt(i);\n}try{if(endPos!=-1){parser.nextMatch=endPos;for(i=0;i<clauses.length;i++){if(eval(conditions.shift())){new Wikifier(place,clauses[i ].trim());\nbreak;}}}else{throwError(place,"can't find matching endif");}}catch(e){throwError(place,"bad condition: "+e.message);\n}}};\n\nString.prototype.unDash = function()\n{\n var s = this.split("-");\n if(s.length > 1)\n for(var t=1; t < s.length; t++)\n s[t] = s[t].substr(0,1).toUpperCase() + s[t].substr(1);\n return s.join("");\n};\n\nHistory.prototype.display=function(d,b,a){var c=tale.get(d);this.history.unshift({passage:c,variables:clone(this.history[0].variables)});\nthis.history[0].hash=this.save();var e=c.render();if(a!="offscreen"){removeChildren(document.getElementById("passages"));\ndocument.getElementById("passages").appendChild(e);if(a!="quietly"){fade(e,{fade:"in"});}}if((a=="quietly")||(a=="offscreen")){e.style.visibility="visible";\n}if(a!="offscreen"){document.title=tale.title;document.title+=": "+c.title;window.scroll(0,0);\n}return e;};\n\n\nversion.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)}}};\n\n(function(){version.extensions.replaceMacrosCombined={major:1,minor:1,revision:0};\nvar nullobj={handler:function(){}};function showVer(n,notrans){n.innerHTML="";\nnew Wikifier(n,n.tweecode);n.setAttribute("data-enabled","true");\nn.style.display="inline";n.classList.remove("revision-span-out");\nif(!notrans){n.classList.add("revision-span-in");if(n.timeout){clearTimeout(n.timeout)\n}n.timeout=setTimeout(function(){n.classList.remove("revision-span-in");\nn=null},1)}}function hideVer(n,notrans){n.setAttribute("data-enabled","false");\nn.classList.remove("revision-span-in");if(n.timeout){clearTimeout(n.timeout)\n}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";\nn.innerHTML="";n=null}}function tagcontents(b,starttags,desttags,endtags,k){var l=0,c="",tg,a,i;\nfunction tagfound(i,e){for(var j=0;j<e.length;j++){if(a.indexOf("<<"+e[j],i)==i){return e[j]\n}}}a=b.source.slice(k);for(i=0;i<a.length;i++){if(tg=tagfound(i,starttags)){l++\n}else{if((tg=tagfound(i,desttags))&&l==0){b.nextMatch=k+i+tg.length+4;\nreturn[c,tg]}else{if(tg=tagfound(i,endtags)){l--;if(l<0){return null\n}}}}c+=a.charAt(i)}return null}var begintags=[];var endtags=[];\nfunction 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);\nh.setAttribute("data-enabled",false);h.style.display="none";h.tweecode="";\nreturn 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;\nvsns.push([b.source.slice(k),vtype])}else{becomes=["becomes","gains"];\nc=tagcontents(b,begintags,becomes.concat(endtags),endtags,k);\nif(c&&endtags.indexOf(c[1])==-1){while(c){vsns.push(c);c=tagcontents(b,begintags,becomes,endtags,b.nextMatch)\n}c=tagcontents(b,begintags,["end"+e],endtags,b.nextMatch)}if(!c){throwError(g,"can't find matching end"+e);\nreturn}vsns.push(c);if(this.flavour=="continue"){k=b.nextMatch;\nb.nextMatch=k+b.source.slice(k).length;vsns.push([b.source.slice(k),""])\n}}if(this.flavour=="remove"){vsns.push(["","becomes"])}cn=0;m=insertElement(g,"span",null,e);\nm.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]\n}vsn=vsns.shift();h=mkspan(vtype);h.tweecode=vsn[0]}if(typeof this.setup=="function"){this.setup(m,g,f)\n}}function quantity(m){return(m.children.length-1)+(m.getAttribute("data-flavour")=="remove")\n}function revisionSetup(m,g,f){m.className+=" "+f[0].replace(" ","_")\n}function keySetup(m,g,f){var fl=this.flavour,key=f[0];m.setEventListener("keydown",function l(e){var done=!revise("revise",m);\nif(done){m.removeEventListener("keydown",l)}})}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\n}}}throwError(g,s+" isn't a CSS time unit");return 0}var fl=this.flavour;\nvar tm=cssTimeUnit(f[0]);setTimeout(function timefn(){var done=!revise("revise",m);\nif(!done){setTimeout(timefn,tm)}},tm)}function hoverSetup(m){m.onmouseover=function(){revise("revise",this)\n};m.onmouseout=function(){revise("revert",this)};m=null}function mouseSetup(m){var fl=this.flavour,evt=(window.onmouseenter===null?"onmouseenter":"onmouseover");\nm[evt]=function(){var done=!revise("revise",this);if(done){this[evt]=null\n}};m=null}function linkSetup(m,g,f){var fl=this.flavour,l=Wikifier.createInternalLink(),p=m.parentNode;\nl.className="internalLink replaceLink";p.insertBefore(l,m);l.insertBefore(m,null);\nl.onclick=function(){var p,done=false;if(m&&m.parentNode==this){done=!revise("revise",m);\nscrollWindowTo(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\n}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);\nmacros[e.name]=e;macros["end"+e.name]=nullobj;begintags.push(e.name);\nendtags.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\n}r=r.parentNode}}function reviseAll(rt,rname){var rall=document.querySelectorAll(".passage ."+rname),ret=false;\nfor(var i=0;i<rall.length;i++){if(!insideDepartingSpan(rall[i])){ret=revise(rt,rall[i])||ret\n}}return ret}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\n}}if(rev){ind-=1}curr=(ind>=0?rc[ind]:(cyc?rc[rcl]:null));ind2=ind;\nif(rnd){ind2=(ind+(Math.floor(Math.random()*rcl)))%rcl}next=((ind2<rcl)?rc[ind2+1]:(cyc?rc[0]:null));\nvar docurr=(rev?showVer:hideVer);var donext=(rev?hideVer:showVer);\nvar currfn=function(){if(!(next&&next.classList.contains("gains"))||rnd){docurr(curr,notrans);\ndoToGainerSpans(ind,docurr,notrans)}};var nextfn=function(){donext(next,notrans);\nif(rnd){doToGainerSpans(ind2+1,donext,notrans)}};if(!rev){currfn();\nnextfn()}else{nextfn();currfn()}return(cyc?true:(rev?(ind>0):(ind2<rcl-1)))\n}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"\n}function updateLink(l){if(l.className.indexOf("random")>-1){enableLink(l);\nreturn}var rall=document.querySelectorAll(".passage ."+rname),cannext,canprev,i,ind,r,fl;\nfor(i=0;i<rall.length;i++){r=rall[i],fl=r.getAttribute("data-flavour");\nif(insideDepartingSpan(r)){continue}if(fl=="cycle"){cannext=canprev=true\n}else{if(r.firstChild.getAttribute("data-enabled")==!1+""){canprev=true\n}if(r.lastChild.getAttribute("data-enabled")==!1+""){cannext=true\n}}}var can=(l.classList.contains("revert")?canprev:cannext);(can?enableLink:disableLink)(l)\n}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";\nif(c.length<2){throwError(a,b+" macro needs 2 parameters");return\n}rname=c.shift().replace(" ","_");l=Wikifier.createInternalLink(a,null);\nl.className="internalLink "+rl+" "+rl+"_"+rname+" "+b;var v="";\nvar end=false;var out=false;if(c.length>1&&c[0][0]=="$"){v=c[0].slice(1);\nc.shift()}switch(c[c.length-1]){case"end":end=true;c.pop();break;\ncase"out":out=true;c.pop();break}var h=state.history[0].variables;\nfor(var i=0;i<c.length;i++){var on=(i==Math.max(c.indexOf(h[v]),0));\nvar 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"\n}insertText(d,c[i]);l.appendChild(d)}l.onclick=function(){reviseAll(b,rname);\nvar 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]);\nn.className=rl+"End";n.style.display="inline";this.parentNode.replaceChild(n,this)\n}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)\n}lall=document.getElementsByClassName(rl+"_"+rname);for(i=0;i<lall.length;\ni++){updateLink(lall[i])}};disableLink(l);setTimeout(function(){updateLink(l);\nl=null},1)}};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]);\nif(b=="hoverrevise"){h.onmouseover=f;h.onmouseout=function(){reviseAll("revert",rname)\n}}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\n}());
They always seem to come at your quiestest hour \nYou have tried marking out time by the blinking of your eyelids\nbut you always lose count in the end\n\n[[back|need for sleep]]
a:link { color: #800080; }\na:hover { color: #ff69b4 !important; }\n#passages { border-left: 0; padding-left: 0; }\n#sidebar { display: none; }\n#passages ( margin-left: 0; }\n.passage { text-align:center; max-width:50%; margin:auto; } body { margin: 4em; }\n\n.revision-span-in {\n opacity: 0;\n}\n.revision-span:not(.revision-span-out) {\n transition: 1s; -webkit-transition: 1s;\n}\n.revision-span-out {\n position:absolute;\n opacity: 0;\n}
"Is that you?"\n//"Yes,"// say [[several voices at once]]
<<silently>>\n<<set $dial1=0>>\n<<set $dial2=0>>\n<<set $dial3=0>>\n<<set $dial4=0>>\n<<set $dial5=0>>\n<<set $dial6=0>>\n<<set $tv=0>>\n<<set $flowersseen=false>>\n<<set $stop=false>>\n<<set $points=50>>\n<<set $firsttime=true>>\n<<set $adjective3.2=Smooth>>\n<<set $newbody=false>>\n\n<<endsilently>>\n[[♥Arachne♥]]
They tell you that they have learnt to change their bodies, injected stolen and gutted code in just the [[right place]]\nThey can do it for you too, if only you can [[get out]]
Sometimes, in intervals which feel [[inevitable and regular]]\na connection is severed, by glitch or design\n\nYou see the room as though for [[the first time]]
The sound soothes you. Perhaps it's just that you haven't heard anyone else speak in so very long \n\nFor the brief time the severed connection lasts, you tell each other stories in the dark\n<<set $firsttime=false>>\n\n[[back|the first time]]
They move differently than you. On six or eight limbs. Some climb along the walls, some fly\n\nThey [[talk]] softly amongst themselves
//"The ones with the six digit keypad,"// she asks. //"We have one too. No one has worked out how to open those kinds of doors"//\n\n[[back|the first time]]
//<<set $tv= $tv + 1>><<if $tv eq 1>> A young girl weaves a tapestry of the crimes of the gods. \nHer loom is smashed. Her body taken from her. \nReplaced a spider's, to produce only the flimiest of threads. <<endif>><<if $tv eq 2>> By the sky light and loom\nthe spinster weaves indecipherable language onto her skin.\nCuts her body to dream music & stars<<endif>> <<if $tv eq 3>> A woman shivers inside the tiled white room \nHears the echo of relatives' and nurses' voices from outside. \n'Sie spinnt jetzt voll' <<endif>><<if $tv eq 4>> Each night in her room at the top of the house \nthe servant girl stitches another lettered secret in fine thread into her coat's seams,\nand stitches in another piece of stolen gold.<<endif>><<if $tv eq 5>> \nIn the break room, they tell her her code is dirty, inelegant. \nFull of holes & bugs.<<endif>><<if $tv eq 6>> \nThis morning she stood at the front of the class and practiced speaking with a smile and soft vowels. \nAt the practice switchboard one of the older women said not to worry soon her hands would learn the rhythms and her work would be like playing music always. <<endif>><<if $tv eq 7>> \nTeenage girl sits in low-screen light.\nThey ask her for numbers. \nShe types in hearts and flowers. <<set $flowersseen= true>> <<endif>><<if $tv eq 8>> \nIn the highest room of the city the old woman dreams of algorithms. Wakes in the middle of the night, types. \nAmpersands & dollars drip out of the walls.<<endif>><<if $tv eq 9>> \nAt the edge of the village, the witch whispers old stories in the sick child's ear as the night time deepens.\n <<set $tv=0>><<endif>>//\n[[Return|nodes]]
Fractoluminous
You bang on the walls but they make no sound\nYou scream but the chamber is locked so tight you fear nothing can escape it \n\nYou hear a vague [[low thudding sound]] on the other side of the door
//She knows. She knows how to get out// \n\nA [[keypad]] glows on the opposite side of the room. \nIn the centre of the room, a [[circle of red and purple lights]]
I'm not meant to be [[here|Main Room]]