version.extensions.timedgotoMacro={major:1,minor:2,revision:0};\nmacros["goto"]=macros.timedgoto={timer:null,handler:function(a,b,c,d){function cssTimeUnit(s){if(typeof s=="string"){if(s.slice(-2).toLowerCase()=="ms"){return +(s.slice(0,-2))||0\n}else{if(s.slice(-1).toLowerCase()=="s"){return +(s.slice(0,-1))*1000||0\n}}}throwError(a,s+" isn't a CSS time unit");return 0}var t,d,m,s;\nt=c[c.length-1];d=d.fullArgs();m=0;if(b!="goto"){d=d.slice(0,d.lastIndexOf(t));\nm=cssTimeUnit(t)}d=eval(Wikifier.parse(d));if(d+""&&state&&state.init){if(macros["goto"].timer){clearTimeout(macros["goto"].timer)\n}s=state.history[0].passage.title;macros["goto"].timer=setTimeout(function(){if(state.history[0].passage.title==s){state.display(d,a)\n}},m)}}};
\n\n\nThe wall onto the past is very thin.\n\n\n\n\n\n\n\n\n\n\n [[Get out of here.|up9]]\n [[//Come back to me.//|up11]]
<span class="blurry-text">It's something with the locks. A closing door,\na turning key.\n And somewhere quite obscure,\nsomething working, sliding shut. Tick, tick tick.\n\nIt’s something in the gut - a skeleton clock,\na turning cog.\n Something working, sliding shut.\nA small thing, sliding this way, moving there.</span>\n \n\n\n[[//Smoke//|MMSSSS]] [[//Mirror//|SSMS]]
<<if $linone eq "He says he never thinks of her - but when">><<if $lintwo eq "an empty room can fill with her, the way">><<if $linthree eq "an empty sky fills up before the rain -">><<if $linfour eq "the wall onto the past is very thin.">>One flimsy sheet of glass rigged up between\nher life and yours. And every night she plays \nin crackled blues and blacks upon its screen -\nthe wall onto the past is very thin.\n\n[[He never -]]\n\n<<else>>\n<span style="color: #ff0000;">Nil, my love.</span>\n<<endif>>\n<<else>>\n<span style="color: #ff0000;">Nil, my love.</span>\n<<endif>>\n<<else>>\n<span style="color: #ff0000;">Nil, my love.</span>\n<<endif>>\n<<else>>\n<span style="color: #ff0000;">Nil, my love.</span>\n<<endif>>\n
It’s something in the gut – a skeleton clock,\na turning cog. \n Something working, sliding shut.\nA small thing, snicking this way, moving there,\n\nand tallied with the keys. Your skeleton crew.\nOne for every time \n you bent or broke yourself \nin two. The way that opens up. That way. [[Go|onwards]].\n
<span class="blurry-text">It’s something in the gut – a skeleton clock,\na turning cog.\n Something working, sliding shut.\nA small thing, snicking this way, moving there,</span> \n\n\n\n\n\n\n\n\n\n[[//Smoke//|M]] [[//Mirror//|SSSSS]]
\n\nThe wall onto the past is very thin.\n\n\n\n\n\n<<timedinsert 2s>> [[//Lights on.//|lightson]]<<endtimedinsert>>\n\n\n\n\n\n\n\n\n\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n [[Get out of here.|down2]]\nThe wall onto the past is very thin. [[//Come back to me.//|0again]]
\n\n\n\n\n\n\n\n\n\n\n\n\n\n [[Get out of here.|down4]]\n [[//Come back to me.//|down2]]\n\nThe wall onto the past is very thin.
\n\n\n\n\n\n\n\n\n\n\n\n\n\n [[Get out of here.|down3]]\n [[//Come back to me.//|down1]]\nThe wall onto the past is very thin.
He never really loved her anyway.\nAnd when she comes, it’s just to do the scene,\nrepeat a gesture, spin a tired phrase -\nhow effortless it is to slip away.\n\n<<timedinsert 8s>>\nBut there’s a hidden room beside the one\nyou live in now. And when she went away,\nhe shut it up, and something else moved in.\n<<timedinsert 5s>>And if he says she’s gone, perhaps she’s gone,\n<<timedinsert 2s>>\n but then again,\n\n<<timedinsert 2s>>\n[[The wall onto the past is //very// thin.|final0]]\n<<endtimedinsert>>\n<<endtimedinsert>>\n<<endtimedinsert>>\n<<endtimedinsert>>\n\n\n\n\n\n\n\n\n\n\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n [[Get out of here.|down5]]\n [[//Come back to me.//|down3]]\n\n\nThe wall onto the past is very thin.
<span class="blurry-text">It’s something in the gut - a skeleton clock,\na turning cog.\n Something working, sliding shut.\nA small thing, sliding this way, moving there.\n\nIt's something with the keys. Ramshackle crew\nof russet, fawn and fox.\n So many notches cut.\nSo many two-bit skeletons. A door, snicking shut.</span>\n\n \n\n[[//Smoke//|MM]] [[//Mirror//|SSSSMS]]
<<if $key eq "key">>\n\n\n<center>\n<big>\nYou're free to go.\n</center>\n</big>\n\n\n<<else>>\n\n<span style="color: #ff0000;">Still here, my dear?</span>\n\n<<endif>>
<center>\n<big>\n\nRoom Escape</big>\n\n<<timedinsert 2s>>\n//The mind has compartments for holding opinions and modes of judgement which conflict when they come together... and one is particularly conscious of anything that mixes them up.//\n\n</center>\n<<timedinsert 3s>>\n[[Start|line]]\n\n<<endtimedinsert>>\n<<endtimedinsert>>\n\n
/* Your story will use the CSS in this passage to style the page.\nGive this passage more tags, and it will only affect passages with those tags.\nExample selectors: */\n\nbody {\n\t/* This affects the entire page */\n\t\n\t\n}\n.passage {\n\t/* This only affects passages */\n\t\n\t\n}\n.passage a {\n\tcolor: #000000;\n\t\n\t\n}\n.passage a:hover {\n\t/* This affects links while the cursor is over them */\n\t\n\t\n}
/* Your story will use the CSS in this passage to style the page.\nGive this passage more tags, and it will only affect passages with those tags.\nExample selectors: */\n\nbody {\n\t\n\t\n\t\n}\n.passage {\n\n\t\n\t\n}\n.passage a {\n\t/* This affects passage links */\n\t\n\t\n}\n.passage a:hover {\n\t/* This affects links while the cursor is over them */\n\t\n\t\n}\n
function reshowAll(e){var t=document.querySelectorAll(".passage ."+e.replace(" ","_")),n=false;for(var r=0;r<t.length;r++){n=reshow(t[r])}return n}function reshow(e){e.innerHTML="";new Wikifier(e,e.tweecode);e.classList.remove("revision-span-out");e.classList.add("revision-span-in");if(e.timeout){clearTimeout(e.timeout)}e.timeout=setTimeout(function(){e.classList.remove("revision-span-in")},1)}macros.pane={handler:function(place,macroName,params,parser){var name=params[0][0]=="$"?eval(Wikifier.parse(params[0])):params[0];var passage=params[1][0]=="$"?eval(Wikifier.parse(params[1])):params[1];var pane=document.createElement("span");var contents=document.createElement("span");pane.id=name.replace(" ","_");contents.className=" "+name.replace(" ","_");contents.tweecode='<<set $_ to $_current.push ("'+name+'")>><<display $_'+name+">><<set $_ to $_current.pop()>>";var h=state.history[0].variables;h["_"+name]=passage;if(typeof h._current=="undefined"){h._current=[]}pane.insertBefore(contents,null);place.insertBefore(pane,null);new Wikifier(contents,contents.tweecode)}};macros.link=macros.linkTo={handler:function(place,macroName,params,parser){var to,text,target;var h=state.history[0].variables;if(typeof h._current=="undefined"){h._current=[]}if(macroName=="link"){if(params.length<2){throwError(place,macroName+" macro needs 2 parameters");return}to=params[0][0]=="$"?eval(Wikifier.parse(params[0])):params[0];text=params[1][0]=="$"?eval(Wikifier.parse(params[1])):params[1];target=h._current[h._current.length-1]}else{if(params.length<3){throwError(place,macroName+" macro needs 3 parameters");return}target=params[0][0]=="$"?eval(Wikifier.parse(params[0])):params[0];to=params[1][0]=="$"?eval(Wikifier.parse(params[1])):params[1];text=params[2][0]=="$"?eval(Wikifier.parse(params[2])):params[2]}var link=Wikifier.createInternalLink();link.className="internalLink paneLink";link.id=to;link.insertBefore(document.createTextNode(text),null);link.onclick=function(){h["_"+target]=to;reshowAll(target)};place.insertBefore(link,null)}};macros.linkMany={handler:function(place,macroName,params,parser){if(params.length<3||params.length%2!=1){throwError(place,macroName+": invalid args, needs [pane passage...] link text");return}var h=state.history[0].variables;if(typeof h._current=="undefined"){h._current=[]}var text=params[params.length-1][0]=="$"?eval(Wikifier.parse(params[params.length-1])):params[params.length-1];var to,target;var link=Wikifier.createInternalLink();link.className="internalLink paneLink";link.insertBefore(document.createTextNode(text),null);link.onclick=function(){while(params.length!=1){target=params.shift();target=text[0]=="$"?eval(Wikifier.parse(target)):target;to=params.shift();to=to[0]=="$"?eval(Wikifier.parse(to)):to;h["_"+target]=to;reshowAll(target)}};place.insertBefore(link,null)}}
\n\n\n\n\n\n\n\n\n\n\n\n\n\nThe wall onto the past is very thin.<<timedinsert 2s>> [[Get out of here.|down1]]<<timedinsert 1s>>\n [[//Come back to me.//|up1]]<<endtimedinsert>>\n<<endtimedinsert>>
\n\nThe walls are thin. Perhaps you hear\nthe skirmish on the mezzanine,\nthose thin, tangential might-have-beens,\n\nwhat with the walls so fine between\nthe thin thing in the mezzotint, \neying up the house, and this other one,\n\nright here,\nthat’s made its home beneath the stairs\nand tears the house <<cyclinglink $object "in two" "into">>\n\n[[//Go//|2]]\n\n
<<cyclinglink $lineone "The wall onto the past is very thin." "How effortless it is to slip away." "And if he says she's gone, perhaps she’s gone -" "the wall onto the past is very thin.">> \n<<cyclinglink $linetwo "The wall onto the past is very thin." "How effortless it is to slip away." "And if he says she's gone, perhaps she’s gone -" "the wall onto the past is very thin.">>\n<<cyclinglink $linethree "The wall onto the past is very thin." "How effortless it is to slip away." "And if he says she's gone, perhaps she's gone -" "the wall onto the past is very thin.">>\n<<cyclinglink $linefour "The wall onto the past is very thin." "How effortless it is to slip away." "And if he says she's gone, perhaps she's gone -" "the wall onto the past is very thin.">>\n\n[[He says -]]\n\n\n\n\n\n
Something,\n Something's missing\nfrom the picture,\n the enemy who knows\n the system, skeleton \n who's in the know.\n The jack that \n springs the lock - \n the guest who\n wouldn't wait -\n the lavish little\n curlicue that\n stands guard\n at the\n gate.
<span class="blurry-text">It’s something in the gut – a skeleton clock,\na turning cog.</span> \n\n\n\n\n\n\n\n\n\n\n[[//Smoke//|SM0]] [[//Mirror//|SSSSMS]]
\n\nThe wall<span style="color: #4899E9;">s</span> a<span style="color: #4899E9;">re</span> thin.\n\n\n\n\n\n [[//Lights out.//|lightsout]]
<<pane "left" "Blurred Pane 1">><<pane "right" "Blurred Pane 2">>\n\n\n\n\n\n\n\n\n\n\n[[//Smoke//|World of Pane]] [[//Mirror//|MMS]]
Something,\n Something's missing\nfrom the picture,\n the enemy who knows\n the system, skeleton \n who's in the know.\n The jack that \n springs the lock - \n the guest who\n wouldn't wait -\n the lavish little\n curlicue that\n stands guard\n at the\n gate. \n\n<<textinput $key>> \n\n<<button [[Next]]>>
(function(){version.extensions.replaceMacrosCombined={major:1,minor:1,revision:7};var nullobj={handler:function(){}};function showVer(n,notrans){if(!n){return;}n.innerHTML="";\nnew Wikifier(n,n.tweecode);n.setAttribute("data-enabled","true");n.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");n=null;},20);}}function hideVer(n,notrans){if(!n){return;\n}n.setAttribute("data-enabled","false");n.classList.remove("revision-span-in");if(n.timeout){clearTimeout(n.timeout);}if(!notrans){n.classList.add("revision-span-out");\nn.timeout=setTimeout(function(){if(n.getAttribute("data-enabled")=="false"){n.classList.remove("revision-span-out");n.style.display="none";n.innerHTML="";}n=null;\n},1000);}else{n.style.display="none";n.innerHTML="";n=null;}}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;i<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;}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);h.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"]);}}if(this.flavour=="continue"&&flen){b.nextMatch=k+b.source.slice(k).length;\nvsns.push([b.source.slice(k),vtype]);}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);}if(!c){throwError(g,"can't find matching end"+e);\nreturn;}vsns.push(c);if(this.flavour=="continue"){k=b.nextMatch;b.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");vsn=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);}}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];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;}}}throwError(g,s+" isn't a CSS time unit");return 0;}var tm=cssTimeUnit(f[0]);var s=state.history[0].passage.title;\nsetTimeout(function timefn(){if(state.history[0].passage.title==s){var done=!revise("revise",m);if(!done){setTimeout(timefn,tm);}}},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);while(efp&&efp!==this){efp=efp.parentNode;}if(!efp){return;\n}if(this.getAttribute("data-enabled")!="false"){revise("revise",this.parentNode);}};m2.onmouseleave=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("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;}}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;if(m&&m.parentNode==this){done=!revise("revise",m);\nscrollWindowTo(m);}if(done){this.parentNode.insertBefore(m,this);this.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);}if(shv[os].hasOwnProperty(d)){shv[os][d]+=1;\n}}}[{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;begintags.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;}}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;}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);}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;if(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);var 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();nextfn();}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;function 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);return;}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;}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);(can?enableLink:disableLink)(l);}function toggleText(w){w.classList.toggle(rl+"Enabled");\nw.classList.toggle(rl+"Disabled");w.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;var v="";var end=false;var out=false;\nif(c.length>1&&c[0][0]=="$"){v=c[0].slice(1);c.shift();}switch(c[c.length-1]){case"end":end=true;c.pop();break;case"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));var d=insertElement(null,"span",null,rl+((on)?"En":"Dis")+"abled");if(on){h[v]=c[i];l.setAttribute("data-cycle",i);\n}else{d.style.display="none";}insertText(d,c[i]);l.appendChild(d);}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";this.parentNode.replaceChild(n,this);}else{this.parentNode.removeChild(this);\nreturn;}}else{toggleText(t[u]);u=(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);};}(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);if(b!="hoverrevise"&&done){this[evt]=null;\n}};new Wikifier(h,t[0]);if(b=="hoverrevise"){h.onmouseover=f;h.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;}());
\n\n\n\n\n\n\n\n\n\n\n\n\n\nThe wall onto the past is very thin. [[Get out of here.|down1]]\n [[//Come back to me.//|up1]]
<<if $object eq "into">>\n[[Into|SM0]]\n\n\n\n<<endif>>\n\n<<if $object eq "in two">>\n\n<span style="color: #ff0000;">Nil, my love.</span>\n\n<<endif>>\n
<span class="blurry-text">It's something with the keys. Ramshackle crew\nof russet, fawn and fox.\n So many notches cut.\nSo many two-bit skeletons. A door, snicking shut.\n\nIt’s something with the locks. A closing door,\na turning key.\n And somewhere quite obscure, \nsomething working, sliding shut. Tick, tick, tick.</span>\n \n\n\n[[//Smoke//|MMSS]] [[//Mirror//|World of Blurred Pane]]
<<pane "left" "Pane 1">><<pane "right" "Pane 2">>
\n\n\n\n\n\nThe wall onto the past is very thin.\n\n\n\n\n\n\n\n [[Get out of here.|up7]]\n [[//Come back to me.//|up9]]
\n\n\n\n\nThe wall onto the past is very thin.\n\n\n\n\n\n\n\n\n [[Get out of here.|up8]]\n [[//Come back to me.//|up10]]
\n\n\n\n\n\n\n\nThe wall onto the past is very thin.\n\n\n\n\n\n [[Get out of here.|up5]]\n [[//Come back to me.//|up7]]
Room Escape\n
\n\n\n\n\n\n\n\n\n\nThe wall onto the past is very thin.\n\n\n\n [[Get out of here.|up3]]\n [[//Come back to me.//|up5]]
/* Your story will use the CSS in this passage to style the page.\nGive this passage more tags, and it will only affect passages with those tags.\nExample selectors: */\n\nbody {\n\tbackground-color: #FFFFFF;\n\n color: #000000;\n\t\n\t\n}\n.passage {\n\t/* This only affects passages */\n\t\n\tbackground-color: #FFFFFF;\n}\n.passage a {\n\t/* This affects passage links */\n\t\n\t\n}\n.passage a:hover {\n\t/* This affects links while the cursor is over them */\n\t\n\t\n}
\n\n\n\n\n\n\n\n\n\n\n\nThe wall onto the past is very thin.\n\n [[Get out of here.|up1]]\n [[//Come back to me.//|up3]]
\n\n\n\n\n\n\n\n\n\n\nThe wall onto the past is very thin.\n\n\n [[Get out of here.|up2]]\n [[//Come back to me.//|up4]]
\n\n\n\n\n\n\n\n\n\n\n\n\nThe wall onto the past is very thin.\n [[Get out of here.|0again]]\n [[//Come back to me.//|up2]]
It’s something in the gut - a skeleton clock,\na turning cog.\n Something working, sliding shut.\nA small thing, sliding this way, moving there.\n\nIt's something with the keys. Ramshackle crew\nof russet, fawn and fox.\n So many notches cut.\nSo many two-bit skeletons. A door, snicking shut.\n\n \n\n[[//Smoke//|MMSSSSS]] [[//Mirror//|SSSSM]]
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [[//Come back to me.//|down4]]\n\n\n\n
It's something with the keys. Ramshackle crew\nof russet, fawn and fox.\n So many notches cut.\nSo many two-bit skeletons. A door, snicking shut.\n\n\n\n\n\n\n\n\n[[//Smoke//|MS]] [[//Mirror//|MM]]
<span class="blurry-text">It’s something with the locks. A closing door,\na turning key.\n And somewhere quite obscure, \nsomething working, sliding shut. Tick, tick, tick.</span> \n\n\n\n\n\n\n\n\n\n[[//Smoke//|SSSSM]] [[//Mirror//|MMSSS]]
It’s something in the gut – a skeleton clock,\na turning cog. \n\n\n\n\n\n\n\n\n\n\n[[//Smoke//|SSSSS]] [[//Mirror//|SSSSM]]
<span class="blurry-text">It's something with the keys. Ramshackle crew\nof russet, fawn and fox.</span>\n\n\n\n\n\n\n\n\n\n\n[[//Smoke//|SS]] [[//Mirror//|MS]]
It's something with the keys. Ramshackle crew\nof russet, fawn and fox.\n So many notches cut.\nSo many two-bit skeletons. A door, snicking shut.\n\nIt’s something with the locks. A closing door,\na turning key.\n And somewhere quite obscure, \nsomething working, sliding shut. Tick, tick, tick.
<<pane "left" "S">><<pane "right" "SS">>
\n\n\n\n\n\n\nThe wall onto the past is very thin.\n\n\n\n\n\n\n [[Get out of here.|up6]]\n [[//Come back to me.//|up8]]
[[The wall onto the past is very thin.|Pepper]]\n\n\n
It’s something in the gut – a skeleton clock,\na turning cog.\n Something working, sliding shut.\nA small thing, snicking this way, moving there. \n\n\n\n\n\n\n\n\n\n[[//Smoke//|SSSSMS]] [[//Mirror//|SSSS]]
<span class="blurry-text">It's something with the keys. Ramshackle crew\nof russet, fawn and fox.\n So many notches cut.\nSo many two-bit skeletons. A door, snicking shut.\n\nIt’s something with the locks. A closing door,\na turning key.\n And somewhere quite obscure, \nsomething working, sliding shut. Tick, tick, tick.</span>
It's something with the locks. A closing door,\na turning key.\n And somewhere quite obscure,\nsomething working, sliding shut. Tick, tick tick.\n\nIt’s something in the gut - a skeleton clock,\na turning cog.\n Something working, sliding shut.\nA small thing, sliding this way, moving there.\n \n\n\n[[//Smoke//|MMSSS]] [[//Mirror//|SSM]]
\n\n\n\n\n\n\n\n\nThe wall onto the past is very thin.\n\n\n\n\n [[Get out of here.|up4]]\n [[//Come back to me.//|up6]]
It’s something with the locks. A closing door,\na turning key. \n\n\n\n\n\n\n\n\n\n\n[[//Smoke//|SSS]] [[//Mirror//|SSM]]
<span class="blurry-text">It’s something in the gut – a skeleton clock,\na turning cog. \n Something working, sliding shut.\nA small thing, snicking this way, moving there,\n\nand tallied with the keys. Your skeleton crew.\nOne for every time \n you bent or broke yourself \nin two. The way that opens up. That way. Go.</span>\n
version.extensions.timedgotoMacro={major:1,minor:2,revision:0};\nmacros["goto"]=macros.timedgoto={timer:null,handler:function(a,b,c,d){function cssTimeUnit(s){if(typeof s=="string"){if(s.slice(-2).toLowerCase()=="ms"){return +(s.slice(0,-2))||0\n}else{if(s.slice(-1).toLowerCase()=="s"){return +(s.slice(0,-1))*1000||0\n}}}throwError(a,s+" isn't a CSS time unit");return 0}var t,d,m,s;\nt=c[c.length-1];d=d.fullArgs();m=0;if(b!="goto"){d=d.slice(0,d.lastIndexOf(t));\nm=cssTimeUnit(t)}d=eval(Wikifier.parse(d));if(d+""&&state&&state.init){if(macros["goto"].timer){clearTimeout(macros["goto"].timer)\n}s=state.history[0].passage.title;macros["goto"].timer=setTimeout(function(){if(state.history[0].passage.title==s){state.display(d,a)\n}},m)}}};
/* Your story will use the CSS in this passage to style the page.\nGive this passage more tags, and it will only affect passages with those tags.\nExample selectors: */\n\nbody {\n/* This affects the entire page */\nfont-size: 16px;\n\nfont-family: Georgia, Times, serif; \n\t\nmargin-left: 0;\n\npadding-left: 0;\n\t\n}\n\n.passage {\n/* This only affects passages */\n\tbackground-color: #000000;\n\nmin-width: 900px;\t\n\t\n}\n.passage a {\n/* This affects passage links */\n\tcolor: #FFFFFF;\n\t\n\t\n}\n.passage a:hover {\n\t/* This affects links while the cursor is over them */\n\t\n}\n\n#sidebar {\n\ndisplay: none;\n\n}\n\n#passages {\n\nmargin-left: 0;\n\nborder-left: 0;\n\npadding-left: 10em;\n\n}\n\n.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}\n\n.blurry-text {\n color: transparent;\n text-shadow: 0 0 5px #ffffff;\n}\n\n#left {\nfloat: left;\nmin-width: 20%;\npadding: 0;\n}\n\n#right{\nfloat: left;\nmin-width: 400px;\npadding-left: 20px;\n}
<span class="blurry-text">It’s something with the locks. A closing door,\na turning key.</span> \n\n\n\n\n\n\n\n\n\n\n[[//Smoke//|SSSS]] [[//Mirror//|SSMS]]
It's something with the keys. Ramshackle crew\nof russet, fawn and fox.\n\n\n\n\n\n\n\n\n\n\n[[//Smoke//|S]] [[//Mirror//|M]]
It’s something with the locks. A closing door,\na turning key.\n And somewhere quite obscure, \nsomething working, sliding shut. Tick, tick, tick. \n\n\n\n\n\n\n\n\n\n[[//Smoke//|SSMS]] [[//Mirror//|MMSS]]
It's something with the keys. Ramshackle crew\nof russet, fawn and fox.\n So many notches cut.\nSo many two-bit skeletons. A door, snicking shut.\n\nIt’s something with the locks. A closing door,\na turning key.\n And somewhere quite obscure, \nsomething working, sliding shut. Tick, tick, tick.\n \n\n\n[[//Smoke//|MMS]] [[//Mirror//|World of Pane]]
<span class="blurry-text">It's something with the keys. Ramshackle crew\nof russet, fawn and fox.\n So many notches cut.\nSo many two-bit skeletons. A door, snicking shut.</span>\n\n\n\n\n\n\n\n\n[[//Smoke//|SSM]] [[//Mirror//|MMS]]
\n\nThe wall a thin.\n\n\n\n\n\n [[//Lights off.//|lightsoff]]
<<if $lineone eq "The wall onto the past is very thin.">><<if $linetwo eq "How effortless it is to slip away.">><<if $linethree eq "And if he says she's gone, perhaps she's gone -">><<if $linefour eq "the wall onto the past is very thin.">><<cyclinglink $linone "He says he never thinks of her." "He says he never thinks of her - but when" "an empty sky fills up before the rain -" "an empty room can fill with her, the way" "the wall onto the past is very thin.">> \n<<cyclinglink $lintwo "He says he never thinks of her." "He says he never thinks of her - but when" "the wall onto the past is very thin." "an empty sky fills up before the rain -" "an empty room can fill with her, the way">>\n<<cyclinglink $linthree "He says he never thinks of her." "He says he never thinks of her - but when" "an empty room can fill with her, the way" "the wall onto the past is very thin." "an empty sky fills up before the rain -">>\n<<cyclinglink $linfour "He says he never thinks of her." "He says he never thinks of her - but when" "an empty sky fills up before the rain -" "an empty room can fill with her, the way" "the wall onto the past is very thin.">>\n\n\n[[One -]]\n\n<<else>>\n<span style="color: #ff0000;">Nothing, my love.</span>\n<<endif>>\n<<else>>\n<span style="color: #ff0000;">Nothing, my love.</span>\n<<endif>>\n<<else>>\n<span style="color: #ff0000;">Nothing, my love.</span>\n<<endif>>\n<<else>>\n<span style="color: #ff0000;">Nothing, my love.</span>\n<<endif>>\n\n\n\n\n
\n\n<<timedreplace 3s>>The walls are thin.<<becomes>>The walls are thin.<<endtimedreplace>> <<timedinsert 5s>>Perhaps you hear\n<<timedinsert 2s>>a skirmish on the mezzanine,\n<<timedinsert 2s>>those lean, tangential might-have-beens,\n\n<<timedinsert 3s>>what with the wall so fine between\nthe thin thing in the mezzotint, \neying up the house, and this other one,\n\n<<timedinsert 3s>>[[right here,]]\n\n<<endtimedinsert>><<endtimedinsert>><<endtimedinsert>><<endtimedinsert>><<endtimedinsert>>
[[Just one more thing -|But]]
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)}}};